[gicombiner] Allow generated combiners to store additional members
authorDaniel Sanders <daniel_l_sanders@apple.com>
Tue, 16 Jun 2020 21:15:36 +0000 (14:15 -0700)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Tue, 16 Jun 2020 21:47:04 +0000 (14:47 -0700)
commite35ba09961c89faa4801b45c33b70a8b3a64fe84
treebc7cc13a96ea4725bd7e194a74b4ca2594d4eccb
parentb3e77c6d55853eea5f5c32ec8a3510c0b0e438e1
[gicombiner] Allow generated combiners to store additional members

Summary:
Adds the ability to add members to a generated combiner via
a State base class. In the current AArch64PreLegalizerCombiner
this is used to make Helper available without having to
provide it to every call.

As part of this, split the command line processing into a
separate object so that it still only runs once even though
the generated combiner is constructed more frequently.

Depends on D81862

Reviewers: aditya_nandakumar, bogner, volkan, aemerson, paquette, arsenm

Reviewed By: arsenm

Subscribers: jvesely, wdng, nhaehnle, kristof.beyls, hiraditya, kerbowa, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D81863
llvm/include/llvm/Target/GlobalISel/Combine.td
llvm/lib/Target/AArch64/AArch64Combine.td
llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp
llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp
llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
llvm/utils/TableGen/GICombinerEmitter.cpp