]> granicus.if.org Git - llvm/commit
[gicombiner] Add the run-time rule disable option
authorDaniel Sanders <daniel_l_sanders@apple.com>
Thu, 17 Oct 2019 00:37:04 +0000 (00:37 +0000)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Thu, 17 Oct 2019 00:37:04 +0000 (00:37 +0000)
commit5e378fa78dd2755ddc8bda1bf060ffefb9872fa4
treec571643599458eceabda28caee0d319a003a4ba7
parent17cdb7fdd53811bbaa5581cf5362ccc0ba0beca6
[gicombiner] Add the run-time rule disable option

Summary:
Each generated helper can be configured to generate an option that disables
rules in that helper. This can be used to bisect rulesets.

The disable bits are stored in a SparseVector as this is very cheap for the
common case where nothing is disabled. It gets more expensive the more rules
are disabled but you're generally doing that for debug purposes where
performance is less of a concern.

Depends on D68426

Reviewers: volkan, bogner

Reviewed By: volkan

Subscribers: hiraditya, Petar.Avramovic, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68438

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@375067 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/GlobalISel/Combine.td
lib/CodeGen/GlobalISel/Combiner.cpp
lib/Target/AArch64/AArch64Combine.td
lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp
test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-copy-prop-disabled.mir [new file with mode: 0644]
utils/TableGen/GICombinerEmitter.cpp