Skip to content

Instantly share code, notes, and snippets.

@vddvss
Created October 19, 2019 20:09
Show Gist options
  • Save vddvss/a3dd10701f982c4fe39744fde12c3874 to your computer and use it in GitHub Desktop.
Save vddvss/a3dd10701f982c4fe39744fde12c3874 to your computer and use it in GitHub Desktop.
llvm optimization fix
From 8a774f05eb559437b2ac40dbe62f2b78ac9287a9 Mon Sep 17 00:00:00 2001
From: Colin Samples <colin.samples+git@gmail.com>
Date: Sat, 19 Oct 2019 15:57:08 -0400
Subject: [PATCH] fix optimization
---
llvm/lib/Target/PowerPC/PPCMIPeephole.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp b/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
index ac8ac060f46..f260aff073b 100644
--- a/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
+++ b/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
@@ -386,7 +386,8 @@ bool PPCMIPeephole::simplifyCode(void) {
unsigned FeedReg2 =
TRI->lookThruCopyLike(DefMI->getOperand(2).getReg(), MRI);
- if ((FeedImmed == 0 || FeedImmed == 3) && FeedReg1 == FeedReg2) {
+ if ((FeedImmed == 0 || FeedImmed == 3) && FeedReg1 == FeedReg2 &&
+ MRI->hasOneDef(FeedReg1)) {
LLVM_DEBUG(dbgs() << "Optimizing splat/swap or splat/splat "
"to splat/copy: ");
LLVM_DEBUG(MI.dump());
--
2.23.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment