Files
Florian Hahn 95decf7ce8 [BasicAA] Allow some more recursion across GEPs/phis. (#205010)
Allow recursive base-object analysis for some GEPs. The new version
still retains some bail-outs to avoid some redundant work.

This has a notable impact across a large IR corpus (32k modules from
large set of C/C++ workloads).

Some of the highlights include:

   aa.NumNoAlias                  +1.52%
   aa.NumMayAlias                 −0.10%
   licm.NumMovedLoads             +20.47%
   licm.NumHoisted                +2.03%
   early-cse.NumCSELoad           +1.59%
   SLP.NumVectorInstructions      +0.86%
   loop-vectorize.LoopsVectorized +0.21%
   instcount.TotalInsts           −0.05%
   instcount.NumLoadInst          −0.10%
   basicaa.SearchTimes            +0.98%
   basicaa.SearchLimitReached     +14.39%
   LV runtime alias check         −1.3%

Compile-time has 2 notable changes

    stage1-ReleaseThinLTO: +0.04%
    stage1-ReleaseLTO-g: +0.18%


https://llvm-compile-time-tracker.com/compare.php?from=26ed0c17c0de84add0513a0e9699479f8c88b8fe&to=476e7466c5f543ac74c86bad728d79892f668f73&stat=instructions:u

The stage1-ReleaseLTO-g regression in particular is almost exclusively
due to tramp3d-v4, for which we also generate +1.18% more code, so the
majority of the increase is coming from additional transforms/codegen,
not the analysis itself.

PR: https://github.com/llvm/llvm-project/pull/205010
2026-06-23 18:57:28 +00:00
..
…
…