Passes document

Reading the Passes.html document, I have many questions that are unanswered by the doc. For each pass listed, I would like to know:

1) What other passes need to be run before this one in order for this one to work?
2) What other passes should not be run before this one, but should instead be run after? (In other words, what is the recommended order of the passes.)
3) What is the C++ name of the pass? Sometimes the name in the doc doesn't always match the name in the code.

On a related question: Is this the correct list to be posting these kinds of questions? Specifically, I see that most of the traffic on this list is about *developing* LLVM, whereas my interest is primarily in *using* LLVM.

-- Talin

1) What other passes need to be run before this one in order
for this one to work?

You need this info out of curiousity? Because normally you don't
need to care, the PassManager does that for you.

If you need this info, you can deduce this from the source code.
For example, look for calls to getAnalysisUsage().

You find more about this in
Writing an LLVM Pass — LLVM 18.0.0git documentation.

1) What other passes need to be run before this one in order for this
one to work?

This is not something you have to worry about on the command line. The pass manager takes care of this for you.

2) What other passes should not be run before this one, but should
instead be run after? (In other words, what is the recommended order of
the passes.)

Use -std-compile-opts. Otherwise, this a tricky problem and depends on what you are trying to achieve and what the program is. There is no one solution for everything.

3) What is the C++ name of the pass? Sometimes the name in the doc
doesn't always match the name in the code.

Check out opt --help. That will give you what you need.

On a related question: Is this the correct list to be posting these
kinds of questions? Specifically, I see that most of the traffic on this
list is about *developing* LLVM, whereas my interest is primarily in
*using* LLVM.

This mailing list is the correct one. We may someday have a separate users list, but thats far off right now.

-Tanya