#include "source/opt/basic_block.h"
#include <ostream>
#include "source/opt/ir_context.h"
#include "source/opt/reflect.h"
#include "source/util/make_unique.h"
namespace spvtools {
namespace opt {
namespace {
constexpr uint32_t kLoopMergeContinueBlockIdInIdx = …;
constexpr uint32_t kLoopMergeMergeBlockIdInIdx = …;
constexpr uint32_t kSelectionMergeMergeBlockIdInIdx = …;
}
BasicBlock* BasicBlock::Clone(IRContext* context) const { … }
const Instruction* BasicBlock::GetMergeInst() const { … }
Instruction* BasicBlock::GetMergeInst() { … }
const Instruction* BasicBlock::GetLoopMergeInst() const { … }
Instruction* BasicBlock::GetLoopMergeInst() { … }
void BasicBlock::KillAllInsts(bool killLabel) { … }
void BasicBlock::ForEachSuccessorLabel(
const std::function<void(const uint32_t)>& f) const { … }
bool BasicBlock::WhileEachSuccessorLabel(
const std::function<bool(const uint32_t)>& f) const { … }
void BasicBlock::ForEachSuccessorLabel(
const std::function<void(uint32_t*)>& f) { … }
bool BasicBlock::IsSuccessor(const BasicBlock* block) const { … }
void BasicBlock::ForMergeAndContinueLabel(
const std::function<void(const uint32_t)>& f) { … }
uint32_t BasicBlock::MergeBlockIdIfAny() const { … }
uint32_t BasicBlock::MergeBlockId() const { … }
uint32_t BasicBlock::ContinueBlockIdIfAny() const { … }
uint32_t BasicBlock::ContinueBlockId() const { … }
std::ostream& operator<<(std::ostream& str, const BasicBlock& block) { … }
void BasicBlock::Dump() const { … }
std::string BasicBlock::PrettyPrint(uint32_t options) const { … }
BasicBlock* BasicBlock::SplitBasicBlock(IRContext* context, uint32_t label_id,
iterator iter) { … }
}
}