Hi ,
I was trying to disable 'X86 DAG->DAG Instruction Selection ’ pass to see the impact on optimization. Could anyone please guide how to disable this pass from the command line using clang .
Hi ,
I was trying to disable 'X86 DAG->DAG Instruction Selection ’ pass to see the impact on optimization. Could anyone please guide how to disable this pass from the command line using clang .
The DAG->DAG instruction selection pass (for various architectures) converts LLVM IR into the architecture-specific machine IR. You don’t ever want to disable that pass, nor would you want to for several other passes in the backend (e.g., register allocation).
Thanks for your response .
In my project , I have to disable all the passes which are running for O0, O1, O2 and O3 and need to observe the impact of individual pass. So , would you able to help me how can I get all the Backend passes name( Those can be disable and can not disable )
In general, any pass which runs at -O0 is a mandatory pass that cannot be disabled.
In a broader sense, trying to track down individual, per-pass impacts on optimization can be misleading. Some passes are run several times (InstCombine is a notorious offender here). Some passes are partial supersets of other passes. Some passes assume that later passes are going to need to run to clean up some of the things they do.
I got your points. Is there any way to see what the passes are running for O0 , O1 and O3 ? I checked with -opt-bisect-limit=-1 but it seems a few backend passes are also running which are not coming into the list.
I want to get the list of passes running for each opt level and also want to know default passes list . Then I can see the impact for each pass on optimization.
Thanks
Soma
On Fri, Aug 18, 2023 at 2:16 PM Joshua Cranmer via LLVM Discussion Forums <notifications@llvm.discoursemail.com> wrote:
jcranmer
August 18In general, any pass which runs at -O0 is a mandatory pass that cannot be disabled.
In a broader sense, trying to track down individual, per-pass impacts on optimization can be misleading. Some passes are run several times (InstCombine is a notorious offender here). Some passes are partial supersets of other passes. Some passes assume that later passes are going to need to run to clean up some of the things they do.
Visit Topic or reply to this email to respond.
To unsubscribe from these emails, click here.