[llvm-branch-commits] [AArch64][GlobalISel] Disable fixed-point iteration in all Combiners (PR #102167)
Tobias Stadler via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Aug 6 11:31:27 PDT 2024
tobias-stadler wrote:
> Is this a fundamental issue of the combiner or do we have to revisit the situation when the combiner becomes slowly more powerful?
This is a fundamental issue of combiner-style algorithms. Fixed-point iteration just burns too much compile-time for no good reason. Both the InstCombiner and the DAGCombiner don't use fixed-point iteration anymore for the same compile-time reasons. The heuristics I have implemented should be mostly on-par with how thoroughly the other combiner implementations currently handle retrying combines. The main difference is that we can rely on the Observer to detect changes for retrying combines and the other combiner implementations need to use WorkList-aware functions for performing changes on the IR. If this approach is good enough for SelectionDAG, I don't see this approach becoming a problem for GlobalISel.
https://github.com/llvm/llvm-project/pull/102167
More information about the llvm-branch-commits
mailing list