diff options
| author | Aditya Nandakumar <aditya_nandakumar@apple.com> | 2018-10-19 20:11:52 +0000 |
|---|---|---|
| committer | Aditya Nandakumar <aditya_nandakumar@apple.com> | 2018-10-19 20:11:52 +0000 |
| commit | cd04e366d76c2ea0e30b71c08f4f1a374328e10a (patch) | |
| tree | d845095bb04900f5356ba538f43fdafc7041d1bc | |
| parent | 80ed0fd6e0560b69c7996328cd786de9cfbfbf6e (diff) | |
| download | bcm5719-llvm-cd04e366d76c2ea0e30b71c08f4f1a374328e10a.tar.gz bcm5719-llvm-cd04e366d76c2ea0e30b71c08f4f1a374328e10a.zip | |
[GISel]: Allow PHIs to be DCEd
https://reviews.llvm.org/D53304
Currently dead phis are not cleaned up during DCE. This patch allows
dead PHI and G_PHI insts to be deleted.
Reviewed by: dsanders
llvm-svn: 344811
| -rw-r--r-- | llvm/lib/CodeGen/GlobalISel/Utils.cpp | 2 | ||||
| -rw-r--r-- | llvm/test/CodeGen/AArch64/GlobalISel/legalize-phi.mir | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/Utils.cpp b/llvm/lib/CodeGen/GlobalISel/Utils.cpp index 1a5f88743d5..4d3a3753559 100644 --- a/llvm/lib/CodeGen/GlobalISel/Utils.cpp +++ b/llvm/lib/CodeGen/GlobalISel/Utils.cpp @@ -137,7 +137,7 @@ bool llvm::isTriviallyDead(const MachineInstr &MI, // If we can move an instruction, we can remove it. Otherwise, it has // a side-effect of some sort. bool SawStore = false; - if (!MI.isSafeToMove(/*AA=*/nullptr, SawStore)) + if (!MI.isSafeToMove(/*AA=*/nullptr, SawStore) && !MI.isPHI()) return false; // Instructions without side-effects are dead iff they only define dead vregs. diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-phi.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-phi.mir index 7c4bbfcc63f..d8f2542d907 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-phi.mir +++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-phi.mir @@ -121,6 +121,7 @@ body: | bb.3: %9(s1) = G_PHI %5(s1), %bb.1, %8(s1), %bb.2 + %11:_(s1) = G_PHI %5(s1), %bb.1, %8(s1), %bb.2 %10(s32) = G_ZEXT %9(s1) $w0 = COPY %10(s32) RET_ReallyLR implicit $w0 |

