[llvm] e21bb31 - CodeGen: Require SSA to run PeepholeOptimizer
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 11 15:03:10 PDT 2020
Author: Matt Arsenault
Date: 2020-09-11T18:03:04-04:00
New Revision: e21bb31eb6c6fcff652ecfb338e8558362473150
URL: https://github.com/llvm/llvm-project/commit/e21bb31eb6c6fcff652ecfb338e8558362473150
DIFF: https://github.com/llvm/llvm-project/commit/e21bb31eb6c6fcff652ecfb338e8558362473150.diff
LOG: CodeGen: Require SSA to run PeepholeOptimizer
Added:
Modified:
llvm/lib/CodeGen/PeepholeOptimizer.cpp
llvm/test/CodeGen/AMDGPU/fold_16bit_imm.mir
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/PeepholeOptimizer.cpp b/llvm/lib/CodeGen/PeepholeOptimizer.cpp
index 05c843078fb1..ed2a50e90ffe 100644
--- a/llvm/lib/CodeGen/PeepholeOptimizer.cpp
+++ b/llvm/lib/CodeGen/PeepholeOptimizer.cpp
@@ -178,6 +178,11 @@ namespace {
}
}
+ MachineFunctionProperties getRequiredProperties() const override {
+ return MachineFunctionProperties()
+ .set(MachineFunctionProperties::Property::IsSSA);
+ }
+
/// Track Def -> Use info used for rewriting copies.
using RewriteMapTy = SmallDenseMap<RegSubRegPair, ValueTrackerResult>;
diff --git a/llvm/test/CodeGen/AMDGPU/fold_16bit_imm.mir b/llvm/test/CodeGen/AMDGPU/fold_16bit_imm.mir
index 458bdcef1a58..eae7e4807f76 100644
--- a/llvm/test/CodeGen/AMDGPU/fold_16bit_imm.mir
+++ b/llvm/test/CodeGen/AMDGPU/fold_16bit_imm.mir
@@ -16,21 +16,6 @@ body: |
...
----
-name: fold_simm_16_sub_to_sub
-body: |
- bb.0:
-
- ; GCN-LABEL: name: fold_simm_16_sub_to_sub
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 2048
- ; GCN: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 2048
- ; GCN: SI_RETURN_TO_EPILOG [[S_MOV_B32_1]]
- %0:sreg_32 = S_MOV_B32 2048
- %1.lo16:sreg_32 = COPY killed %0.lo16
- SI_RETURN_TO_EPILOG %1
-
-...
-
---
name: fold_simm_16_sub_to_phys
body: |
@@ -46,36 +31,6 @@ body: |
...
----
-name: fold_aimm_16_sub_to_sub_2048
-body: |
- bb.0:
-
- ; GCN-LABEL: name: fold_aimm_16_sub_to_sub_2048
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 2048
- ; GCN: %1.lo16:agpr_32 = COPY killed [[S_MOV_B32_]].lo16
- ; GCN: SI_RETURN_TO_EPILOG %1
- %0:sreg_32 = S_MOV_B32 2048
- %1.lo16:agpr_32 = COPY killed %0.lo16
- SI_RETURN_TO_EPILOG %1
-
-...
-
----
-name: fold_aimm_16_sub_to_sub_0
-body: |
- bb.0:
-
- ; GCN-LABEL: name: fold_aimm_16_sub_to_sub_0
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 0
- ; GCN: [[V_ACCVGPR_WRITE_B32_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32 0, implicit $exec
- ; GCN: SI_RETURN_TO_EPILOG [[V_ACCVGPR_WRITE_B32_]]
- %0:sreg_32 = S_MOV_B32 0
- %1.lo16:agpr_32 = COPY killed %0.lo16
- SI_RETURN_TO_EPILOG %1
-
-...
-
---
name: fold_aimm_16_sub_to_phys
body: |
@@ -106,21 +61,6 @@ body: |
...
----
-name: fold_vimm_16_sub_to_sub
-body: |
- bb.0:
-
- ; GCN-LABEL: name: fold_vimm_16_sub_to_sub
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 2048
- ; GCN: %1.lo16:vgpr_32 = COPY killed [[S_MOV_B32_]].lo16
- ; GCN: SI_RETURN_TO_EPILOG %1
- %0:sreg_32 = S_MOV_B32 2048
- %1.lo16:vgpr_32 = COPY killed %0.lo16
- SI_RETURN_TO_EPILOG %1
-
-...
-
---
name: fold_vimm_16_sub_to_phys
body: |
@@ -135,123 +75,3 @@ body: |
SI_RETURN_TO_EPILOG $vgpr0_lo16
...
-
----
-name: fold_vimm_16_lo_to_hi
-body: |
- bb.0:
-
- ; GCN-LABEL: name: fold_vimm_16_lo_to_hi
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 2048
- ; GCN: %1.hi16:vgpr_32 = COPY killed [[S_MOV_B32_]].lo16
- ; GCN: SI_RETURN_TO_EPILOG %1
- %0:sreg_32 = S_MOV_B32 2048
- %1.hi16:vgpr_32 = COPY killed %0.lo16
- SI_RETURN_TO_EPILOG %1
-
-...
-
----
-name: fold_vimm_16_hi_to_lo
-body: |
- bb.0:
-
- ; GCN-LABEL: name: fold_vimm_16_hi_to_lo
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 2048
- ; GCN: %1.lo16:vgpr_32 = COPY killed [[S_MOV_B32_]].hi16
- ; GCN: SI_RETURN_TO_EPILOG %1
- %0:sreg_32 = S_MOV_B32 2048
- %1.lo16:vgpr_32 = COPY killed %0.hi16
- SI_RETURN_TO_EPILOG %1
-
-...
-
----
-name: fold_simm_16_sub_to_sub_lo_to_hi
-body: |
- bb.0:
-
- ; GCN-LABEL: name: fold_simm_16_sub_to_sub_lo_to_hi
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 2048
- ; GCN: %1.hi16:sreg_32 = COPY killed [[S_MOV_B32_]].lo16
- ; GCN: SI_RETURN_TO_EPILOG %1
- %0:sreg_32 = S_MOV_B32 2048
- %1.hi16:sreg_32 = COPY killed %0.lo16
- SI_RETURN_TO_EPILOG %1
-
-...
-
----
-name: fold_simm_16_sub_to_sub_hi_to_lo_2048
-body: |
- bb.0:
-
- ; GCN-LABEL: name: fold_simm_16_sub_to_sub_hi_to_lo_2048
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 2048
- ; GCN: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 0
- ; GCN: SI_RETURN_TO_EPILOG [[S_MOV_B32_1]]
- %0:sreg_32 = S_MOV_B32 2048
- %1.lo16:sreg_32 = COPY killed %0.hi16
- SI_RETURN_TO_EPILOG %1
-
-...
-
----
-name: fold_simm_16_sub_to_sub_hi_to_lo_shifted_2048
-body: |
- bb.0:
-
- ; GCN-LABEL: name: fold_simm_16_sub_to_sub_hi_to_lo_shifted_2048
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 134217728
- ; GCN: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 2048
- ; GCN: SI_RETURN_TO_EPILOG [[S_MOV_B32_1]]
- %0:sreg_32 = S_MOV_B32 134217728
- %1.lo16:sreg_32 = COPY killed %0.hi16
- SI_RETURN_TO_EPILOG %1
-
-...
-
----
-name: fold_aimm_16_sub_to_sub_hi_to_lo_2048
-body: |
- bb.0:
-
- ; GCN-LABEL: name: fold_aimm_16_sub_to_sub_hi_to_lo_2048
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 2048
- ; GCN: [[V_ACCVGPR_WRITE_B32_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32 0, implicit $exec
- ; GCN: SI_RETURN_TO_EPILOG [[V_ACCVGPR_WRITE_B32_]]
- %0:sreg_32 = S_MOV_B32 2048
- %1.lo16:agpr_32 = COPY killed %0.hi16
- SI_RETURN_TO_EPILOG %1
-
-...
-
----
-name: fold_aimm_16_sub_to_sub_hi_to_lo_shifted_1
-body: |
- bb.0:
-
- ; GCN-LABEL: name: fold_aimm_16_sub_to_sub_hi_to_lo_shifted_1
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 65536
- ; GCN: [[V_ACCVGPR_WRITE_B32_:%[0-9]+]]:agpr_32 = V_ACCVGPR_WRITE_B32 1, implicit $exec
- ; GCN: SI_RETURN_TO_EPILOG [[V_ACCVGPR_WRITE_B32_]]
- %0:sreg_32 = S_MOV_B32 65536
- %1.lo16:agpr_32 = COPY killed %0.hi16
- SI_RETURN_TO_EPILOG %1
-
-...
-
----
-name: fold_aimm_16_sub_to_sub_hi_to_lo_shifted_2048
-body: |
- bb.0:
-
- ; GCN-LABEL: name: fold_aimm_16_sub_to_sub_hi_to_lo_shifted_2048
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 134217728
- ; GCN: %1.lo16:agpr_32 = COPY killed [[S_MOV_B32_]].hi16
- ; GCN: SI_RETURN_TO_EPILOG %1
- %0:sreg_32 = S_MOV_B32 134217728
- %1.lo16:agpr_32 = COPY killed %0.hi16
- SI_RETURN_TO_EPILOG %1
-
-...
More information about the llvm-commits
mailing list