summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2016-03-17 15:30:52 +0000
committerSanjay Patel <spatel@rotateright.com>2016-03-17 15:30:52 +0000
commit9e23fedaf0f84d4a020514df4beefe65fe6da50b (patch)
tree420dd16d18265ca8093bee18ef4d625e3d3d4f3e /llvm/lib
parent071a099102a4183309dbc80d52fc2454a9222f1e (diff)
downloadbcm5719-llvm-9e23fedaf0f84d4a020514df4beefe65fe6da50b.tar.gz
bcm5719-llvm-9e23fedaf0f84d4a020514df4beefe65fe6da50b.zip
propagate 'unpredictable' metadata on select instructions
This is similar to D18133 where we allowed profile weights on select instructions. This extends that change to also allow the 'unpredictable' attribute of branches to apply to selects. A test to check that 'unpredictable' metadata is preserved when cloning instructions was checked in at: http://reviews.llvm.org/rL263648 Differential Revision: http://reviews.llvm.org/D18220 llvm-svn: 263716
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Transforms/Utils/SimplifyCFG.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
index bf94e2629ca..7d210e6cb78 100644
--- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+++ b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
@@ -1935,10 +1935,9 @@ static bool FoldTwoEntryPHINode(PHINode *PN, const TargetTransformInfo &TTI,
Value *TrueVal = PN->getIncomingValue(PN->getIncomingBlock(0) == IfFalse);
Value *FalseVal = PN->getIncomingValue(PN->getIncomingBlock(0) == IfTrue);
- MDNode *MDN = InsertPt->getMetadata(LLVMContext::MD_prof);
- Value *Select = Builder.CreateSelect(IfCond, TrueVal, FalseVal, "", MDN);
- PN->replaceAllUsesWith(Select);
- Select->takeName(PN);
+ Value *Sel = Builder.CreateSelect(IfCond, TrueVal, FalseVal, "", InsertPt);
+ PN->replaceAllUsesWith(Sel);
+ Sel->takeName(PN);
PN->eraseFromParent();
}
OpenPOWER on IntegriCloud