I was reading through this document http://llvm.org/docs/WritingAnLLVMPass.html, where in I came across CallGraphSCCPass. I searched for SCC abbreviation, but wasn't able to find one. What does SCC stand for? Where can I read more about it?
Asked
Active
Viewed 5,812 times
3 Answers
26
According to The LLVM Lexicon, It stands for "strongly connected component".
The source-code comments explain it this way:
Because there may be cycles in the call graph, passes of this type operate on the call-graph in SCC order: that is, they process function bottom-up, except for recursive functions, which they process all at once.
(But the only reason I was able to find the lexicon is that I figured out that they must mean "strongly connected component", and then I Googled for that phrase on site:llvm.org
to confirm. It doesn't seem to be prominently linked.)

ruakh
- 175,680
- 26
- 273
- 307
-
To my understanding, they actually contract SCCs into single vertices, and the graphs become a DAG, which could be bottom-up passed. Is it correct? – zsf222 Feb 08 '19 at 03:25
-
@zsf222: Yes, that's my understanding. – ruakh Feb 08 '19 at 04:47
-
Accidentally, SCC also stands for 'source code comments'... – Ofek Shilon Jun 01 '23 at 14:14
7
I believe it stands for Strongly Connected Components, since that documentation talks about Tarjan's algorithm.

Mat
- 202,337
- 40
- 393
- 406