]> granicus.if.org Git - llvm/commit
[gicombiner] Add the boring boilerplate for the declarative combiner
authorDaniel Sanders <daniel_l_sanders@apple.com>
Wed, 2 Oct 2019 21:13:07 +0000 (21:13 +0000)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Wed, 2 Oct 2019 21:13:07 +0000 (21:13 +0000)
commit03bb65ceece39a9c44d33577ca5cc66b91c973d9
treeb97315adf30c411b7dea18cee101ab995807be40
parentd6cf1c6f817bbafd27befcc821b0df58f4cedf08
[gicombiner] Add the boring boilerplate for the declarative combiner

Summary:
This is the first of a series of patches extracted from a much bigger WIP
patch. It merely establishes the tblgen pass and the way empty combiner
helpers are declared and integrated into a combiner info.

The tablegen pass takes a -combiners option to select the combiner helper
that will be generated. This can be given multiple values to generate
multiple combiner helpers at once. Doing so helps to minimize parsing
overhead.

The reason for creating a GlobalISel subdirectory in utils/TableGen is that
there will be quite a lot of non-pass files (~15) by the time the patch
series is done.

Reviewers: volkan

Subscribers: mgorny, hiraditya, simoncook, Petar.Avramovic, s.egerton, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@373527 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/GlobalISel/Combine.td [new file with mode: 0644]
lib/Target/AArch64/AArch64.td
lib/Target/AArch64/AArch64Combine.td [new file with mode: 0644]
lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp
lib/Target/AArch64/CMakeLists.txt
utils/TableGen/CMakeLists.txt
utils/TableGen/GICombinerEmitter.cpp [new file with mode: 0644]
utils/TableGen/TableGen.cpp
utils/TableGen/TableGenBackends.h