summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorDaniel Sanders <daniel_l_sanders@apple.com>2019-10-16 23:53:35 +0000
committerDaniel Sanders <daniel_l_sanders@apple.com>2019-10-16 23:53:35 +0000
commitec5208fd65668ec6415eb274294d284835f3d5dd (patch)
tree2fac90b4e440d37d71538370a3f585e3ea5476ff /llvm/lib/Target
parent168ef8a8d695eb374e8997e9d163c96c51f38624 (diff)
downloadbcm5719-llvm-ec5208fd65668ec6415eb274294d284835f3d5dd.tar.gz
bcm5719-llvm-ec5208fd65668ec6415eb274294d284835f3d5dd.zip
[gicombiner] Hoist pure C++ combine into the tablegen definition
Summary: This is just moving the existing C++ code around and will be NFC w.r.t AArch64. Renamed 'CombineBr' to something more descriptive ('ElideByByInvertingCond') at the same time. The remaining combines in AArch64PreLegalizeCombiner require features that aren't implemented at this point and will be hoisted as they are added. Depends on D68424 Reviewers: bogner, volkan Subscribers: kristof.beyls, hiraditya, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68426 llvm-svn: 375057
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/AArch64/AArch64Combine.td3
-rw-r--r--llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp8
2 files changed, 3 insertions, 8 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64Combine.td b/llvm/lib/Target/AArch64/AArch64Combine.td
index c4658f73b8d..89567301cad 100644
--- a/llvm/lib/Target/AArch64/AArch64Combine.td
+++ b/llvm/lib/Target/AArch64/AArch64Combine.td
@@ -12,4 +12,5 @@
include "llvm/Target/GlobalISel/Combine.td"
def AArch64PreLegalizerCombinerHelper: GICombinerHelper<
- "AArch64GenPreLegalizerCombinerHelper">;
+ "AArch64GenPreLegalizerCombinerHelper", [all_combines,
+ elide_br_by_inverting_cond]>;
diff --git a/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp b/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp
index bea75b83517..cf0fc90b105 100644
--- a/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp
+++ b/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp
@@ -58,12 +58,6 @@ bool AArch64PreLegalizerCombinerInfo::combine(GISelChangeObserver &Observer,
CombinerHelper Helper(Observer, B, KB, MDT);
switch (MI.getOpcode()) {
- default:
- return false;
- case TargetOpcode::COPY:
- return Helper.tryCombineCopy(MI);
- case TargetOpcode::G_BR:
- return Helper.tryCombineBr(MI);
case TargetOpcode::G_LOAD:
case TargetOpcode::G_SEXTLOAD:
case TargetOpcode::G_ZEXTLOAD: {
@@ -118,7 +112,7 @@ public:
private:
bool IsOptNone;
};
-}
+} // end anonymous namespace
void AArch64PreLegalizerCombiner::getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<TargetPassConfig>();
OpenPOWER on IntegriCloud