[PATCH] D90688: [CaptureTracking] Avoid overly restrictive dominates check

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 5 11:50:33 PST 2020


nikic added a comment.

In D90688#2376495 <https://reviews.llvm.org/D90688#2376495>, @anna wrote:

> In D90688#2376444 <https://reviews.llvm.org/D90688#2376444>, @nikic wrote:
>
>> This change causes a large compile-time regression on some benchmarks: https://llvm-compile-time-tracker.com/compare.php?from=79d16764dd29aeddb7e6400e6b2d89d31653886c&to=15694fd6ad955c6a16b446a6324364111a49ae8b&stat=instructions
>>
>> tramp3d-v4 is particularly badly affected, with a 25% instruction count regression in the ThinLTO configuration.
>
> Thanks for pointing that out. I was under the impression the path check is more expensive than the dominates check (and the dominates was done to prevent compile time increase) and our bailouts are also higher (32 basic blocks for the path check). 
> It looks like this limitation of checking for dominates exists to avoid compile time regressions of this sort.

Right. It may be possible to salvage this though. One very simple thing to try would be to cache the reachability query. This should make it much cheaper if there are many uses in the same block.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D90688



More information about the llvm-commits mailing list