MCPcopy Create free account
hub / github.com/KhronosGroup/SPIRV-Tools / ProcessFunction

Method ProcessFunction

source/opt/licm_pass.cpp:39–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37}
38
39Pass::Status LICMPass::ProcessFunction(Function* f) {
40 Status status = Status::SuccessWithoutChange;
41 LoopDescriptor* loop_descriptor = context()->GetLoopDescriptor(f);
42
43 // Process each loop in the function
44 for (auto it = loop_descriptor->begin();
45 it != loop_descriptor->end() && status != Status::Failure; ++it) {
46 Loop& loop = *it;
47 // Ignore nested loops, as we will process them in order in ProcessLoop
48 if (loop.IsNested()) {
49 continue;
50 }
51 status = CombineStatus(status, ProcessLoop(&loop, f));
52 }
53 return status;
54}
55
56Pass::Status LICMPass::ProcessLoop(Loop* loop, Function* f) {
57 Status status = Status::SuccessWithoutChange;

Callers

nothing calls this directly

Calls 5

CombineStatusFunction · 0.85
IsNestedMethod · 0.80
GetLoopDescriptorMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected