#include "source/opt/function.h"
#include <ostream>
#include "ir_context.h"
#include "source/util/bit_vector.h"
namespace spvtools {
namespace opt {
Function* Function::Clone(IRContext* ctx) const { … }
void Function::ForEachInst(const std::function<void(Instruction*)>& f,
bool run_on_debug_line_insts,
bool run_on_non_semantic_insts) { … }
void Function::ForEachInst(const std::function<void(const Instruction*)>& f,
bool run_on_debug_line_insts,
bool run_on_non_semantic_insts) const { … }
bool Function::WhileEachInst(const std::function<bool(Instruction*)>& f,
bool run_on_debug_line_insts,
bool run_on_non_semantic_insts) { … }
bool Function::WhileEachInst(const std::function<bool(const Instruction*)>& f,
bool run_on_debug_line_insts,
bool run_on_non_semantic_insts) const { … }
void Function::ForEachParam(const std::function<void(Instruction*)>& f,
bool run_on_debug_line_insts) { … }
void Function::ForEachParam(const std::function<void(const Instruction*)>& f,
bool run_on_debug_line_insts) const { … }
void Function::ForEachDebugInstructionsInHeader(
const std::function<void(Instruction*)>& f) { … }
BasicBlock* Function::InsertBasicBlockAfter(
std::unique_ptr<BasicBlock>&& new_block, BasicBlock* position) { … }
BasicBlock* Function::InsertBasicBlockBefore(
std::unique_ptr<BasicBlock>&& new_block, BasicBlock* position) { … }
bool Function::HasEarlyReturn() const { … }
bool Function::IsRecursive() const { … }
std::ostream& operator<<(std::ostream& str, const Function& func) { … }
void Function::Dump() const { … }
std::string Function::PrettyPrint(uint32_t options) const { … }
void Function::ReorderBasicBlocksInStructuredOrder() { … }
}
}