[all-commits] [llvm/llvm-project] 846f79: [GlobalISel] Combiner: Observer-based DCE and retr...
Tobias Stadler via All-commits
all-commits at lists.llvm.org
Thu Aug 15 05:40:38 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 846f790216e1a0c40f8890d489904c3d716cc998
https://github.com/llvm/llvm-project/commit/846f790216e1a0c40f8890d489904c3d716cc998
Author: Tobias Stadler <mail at stadler-tobias.de>
Date: 2024-08-15 (Thu, 15 Aug 2024)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/Combiner.h
M llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h
M llvm/lib/CodeGen/GlobalISel/Combiner.cpp
Log Message:
-----------
[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
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list