Lines Matching defs:SCC

49     // runOnSCC - Analyze the SCC, performing the transformation if possible.
50 bool runOnSCC(CallGraphSCC &SCC);
52 // AddReadAttrs - Deduce readonly/readnone attributes for the SCC.
53 bool AddReadAttrs(const CallGraphSCC &SCC);
55 // AddNoCaptureAttrs - Deduce nocapture attributes for the SCC.
56 bool AddNoCaptureAttrs(const CallGraphSCC &SCC);
62 // AddNoAliasAttrs - Deduce noalias attributes for the SCC.
63 bool AddNoAliasAttrs(const CallGraphSCC &SCC);
86 /// AddReadAttrs - Deduce readonly/readnone attributes for the SCC.
87 bool FunctionAttrs::AddReadAttrs(const CallGraphSCC &SCC) {
90 // Fill SCCNodes with the elements of the SCC. Used for quickly
91 // looking up whether a given CallGraphNode is in this SCC.
92 for (CallGraphSCC::iterator I = SCC.begin(), E = SCC.end(); I != E; ++I)
95 // Check if any of the functions in the SCC read or write memory. If they
98 for (CallGraphSCC::iterator I = SCC.begin(), E = SCC.end(); I != E; ++I) {
129 // Ignore calls to functions in the same SCC.
198 // Success! Functions in this SCC do not access memory, or only read memory.
201 for (CallGraphSCC::iterator I = SCC.begin(), E = SCC.end(); I != E; ++I) {
231 // in the same SCC that the pointer data flows into. We use this to build an
232 // SCC of the arguments.
270 // This tracker checks whether callees are in the SCC, and if so it does not
305 bool Captured; // True only if certainly captured (used outside our SCC).
306 SmallVector<Argument*, 4> Uses; // Uses within our SCC.
339 /// AddNoCaptureAttrs - Deduce nocapture attributes for the SCC.
340 bool FunctionAttrs::AddNoCaptureAttrs(const CallGraphSCC &SCC) {
345 // Fill SCCNodes with the elements of the SCC. Used for quickly
346 // looking up whether a given CallGraphNode is in this SCC.
347 for (CallGraphSCC::iterator I = SCC.begin(), E = SCC.end(); I != E; ++I) {
357 for (CallGraphSCC::iterator I = SCC.begin(), E = SCC.end(); I != E; ++I) {
396 // then it must be calling into another function in our SCC. Save
397 // its particulars for Argument-SCC analysis later.
404 // Otherwise, it's captured. Don't bother doing SCC analysis on it.
540 /// AddNoAliasAttrs - Deduce noalias attributes for the SCC.
541 bool FunctionAttrs::AddNoAliasAttrs(const CallGraphSCC &SCC) {
544 // Fill SCCNodes with the elements of the SCC. Used for quickly
545 // looking up whether a given CallGraphNode is in this SCC.
546 for (CallGraphSCC::iterator I = SCC.begin(), E = SCC.end(); I != E; ++I)
551 for (CallGraphSCC::iterator I = SCC.begin(), E = SCC.end(); I != E; ++I) {
577 for (CallGraphSCC::iterator I = SCC.begin(), E = SCC.end(); I != E; ++I) {
590 bool FunctionAttrs::runOnSCC(CallGraphSCC &SCC) {
593 bool Changed = AddReadAttrs(SCC);
594 Changed |= AddNoCaptureAttrs(SCC);
595 Changed |= AddNoAliasAttrs(SCC);