Displaying 2 results from an estimated 2 matches for "scce".
Did you mean:
scc
2006 Sep 29
2
[LLVMdev] FunctionPass requiring SCCs
I have a FunctionPass F that needs a list of all the SCCs for use in its
doFinalization() method. Let's say I write a CallGraphSCCPass C that
creates an array of all SCCs. Let C be required by F, and let F call
getAnalysis<C>() from its doFinalization() method. Am I guaranteed that
C's runOnSCC() method will have executed on all SCCs before F's
doFinalization() method?
2006 Sep 29
0
[LLVMdev] FunctionPass requiring SCCs
...able to build the array of SCCs? If not, how else might I structure things?
That should work. I've written such code, something like:
bool doFinalization(Module &M) {
CallGraph &CG = getAnalysis<CallGraph>();
for (scc_iterator<CallGraph*> SCCI = scc_begin(&CG),
SCCE = scc_end(&CG); SCCI != SCCE; ++SCCI) {
unsigned size = (*SCCI).size();
for (unsigned i = 0; i < size; ++i) {
Function *F = (*SCCI)[i]->getFunction();
......
}
}
....
}
Check out scc_* iterators. Also note that the call graph
is not aware of the indirect calls...