[PATCH] D98212: [wip][basicaa] look through phis and selects when searching for underlying object

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 9 07:43:51 PST 2021


nikic added a comment.

> DecomposeGEP needed to be in sync with getUnderlyingObject in a very fragile manner. However, I can't find any good reason for this. Simple recursing through the base of the decomposed gep gives us the same number of recursive calls, and it doesn't seem to matter if the underlying object search is ahead of the recursion. All it does is add a small constant amount of additional work per step, at worst.

Yes, I believe this is just a historical leftover. It should be safe to not have these in sync.

What this patch does generally makes sense to me, but unfortunately the compile-time impact is fairly significant: https://llvm-compile-time-tracker.com/compare.php?from=e81d813717b2ef227c5b995057153d2cca027afb&to=5adf4f2dab6c553151b76929726959759e6bd8dd&stat=instructions The impact is somewhat unexpected to me -- the additional checks done here don't look expensive and tightly limited.


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

https://reviews.llvm.org/D98212



More information about the llvm-commits mailing list