#include "source/opt/struct_cfg_analysis.h"
#include "source/opt/ir_context.h"
namespace spvtools {
namespace opt {
namespace {
constexpr uint32_t kMergeNodeIndex = …;
constexpr uint32_t kContinueNodeIndex = …;
}
StructuredCFGAnalysis::StructuredCFGAnalysis(IRContext* ctx) : … { … }
void StructuredCFGAnalysis::AddBlocksInFunction(Function* func) { … }
uint32_t StructuredCFGAnalysis::ContainingConstruct(Instruction* inst) { … }
uint32_t StructuredCFGAnalysis::MergeBlock(uint32_t bb_id) { … }
uint32_t StructuredCFGAnalysis::NestingDepth(uint32_t bb_id) { … }
uint32_t StructuredCFGAnalysis::LoopMergeBlock(uint32_t bb_id) { … }
uint32_t StructuredCFGAnalysis::LoopContinueBlock(uint32_t bb_id) { … }
uint32_t StructuredCFGAnalysis::LoopNestingDepth(uint32_t bb_id) { … }
uint32_t StructuredCFGAnalysis::SwitchMergeBlock(uint32_t bb_id) { … }
bool StructuredCFGAnalysis::IsContinueBlock(uint32_t bb_id) { … }
bool StructuredCFGAnalysis::IsInContainingLoopsContinueConstruct(
uint32_t bb_id) { … }
bool StructuredCFGAnalysis::IsInContinueConstruct(uint32_t bb_id) { … }
bool StructuredCFGAnalysis::IsMergeBlock(uint32_t bb_id) { … }
std::unordered_set<uint32_t>
StructuredCFGAnalysis::FindFuncsCalledFromContinue() { … }
}
}