diff options
author | Tobias Stadler <mail@stadler-tobias.de> | 2024-08-15 14:40:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-15 14:40:16 +0200 |
commit | 846f790216e1a0c40f8890d489904c3d716cc998 (patch) | |
tree | 5ed70eeb140acf78d3823652392d9337cf3b985a /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | |
parent | f71b63865140cf3c286baf3a77ba3e467f929504 (diff) | |
download | llvm-846f790216e1a0c40f8890d489904c3d716cc998.zip llvm-846f790216e1a0c40f8890d489904c3d716cc998.tar.gz llvm-846f790216e1a0c40f8890d489904c3d716cc998.tar.bz2 |
[GlobalISel] Combiner: Observer-based DCE and retrying of combines
Continues the work for disabling fixed-point iteration in the Combiner
(#94291).
This introduces improved Observer-based heuristics in the
GISel Combiner to retry combining defs/uses of modified instructions and
for performing sparse dead code elimination.
I have experimented a lot with the heuristics and this seems to be the
minimal set of heuristics that allows disabling fixed-point iteration
for AArch64 CTMark O2 without regressions.
Enabling this globally would pass all regression tests for all official
targets (apart from small benign diffs), but I have made this fully
opt-in for now, because I can't quantify the impact for other targets.
This should mostly be on-par with how the WorkList-aware functions
in the InstCombiner and DAGCombiner handle rescheduling instructions
for recombining.
For performance numbers see my follow-up patch for AArch64 (#102167)
Pull Request: https://github.com/llvm/llvm-project/pull/102163
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
0 files changed, 0 insertions, 0 deletions