[PATCH] D100802: [PassManager] add late LICM to LTO pipeline to undo InstCombine sinking

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 20 07:39:48 PDT 2021


spatel added a comment.

In D100802#2701501 <https://reviews.llvm.org/D100802#2701501>, @lebedev.ri wrote:

> Err, after rereading this twice, this only touches LTO pipelines, doesn't it :]

Right - sorry that wasn't clear. I'm only trying to get closer to parity/consensus between the regular and LTO pipelines with this patch.

I don't know why the pipelines would diverge at this stage of the compile - there might be a good reason, or it just evolved to this state unintentionally?

So if we look at this section of the pipeline (from vectorization to proposed LICM) in non-LTO mode, we have (table formatted for Phab):

| **Regular**             | **LTO**           |
| LoopVectorizePass       | LoopVectorizePass |
| LoopLoadEliminationPass | LoopUnrollPass    | ??? |
| InstCombinePass         | InstCombinePass   |
| SimplifyCFGPass         | SimplifyCFGPass   |
|                         | SCCPPass          | ??? |
|                         | InstCombinePass   | ??? |
|                         | BDCEPass          | ??? |
| SLPVectorizerPass       | SLPVectorizerPass |
| VectorCombinePass       | VectorCombinePass |
| InstCombinePass         | InstCombinePass   |
| LoopUnrollPass          | JumpThreadingPass | ??? |
| InstCombinePass         |                   | ??? |
| LICMPass                | LICMPass          |
|

Maybe we should reconcile the pass differences ahead of LICM in the pipeline before adding LICM?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100802/new/

https://reviews.llvm.org/D100802



More information about the llvm-commits mailing list