summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Bolvansky <david.bolvansky@gmail.com>2018-05-10 11:47:36 +0000
committerDavid Bolvansky <david.bolvansky@gmail.com>2018-05-10 11:47:36 +0000
commit10c218d4afd30ffe2f63349e31d683f898029b1a (patch)
treea1fc505d918ccd0a6636b5ab0ed9ca91f29f6079
parent456f473ea8f2ca7b85773ba09140c5862f9c3ad7 (diff)
downloadbcm5719-llvm-10c218d4afd30ffe2f63349e31d683f898029b1a.tar.gz
bcm5719-llvm-10c218d4afd30ffe2f63349e31d683f898029b1a.zip
[CFLGraph] Fixed Select instruction handling
Summary: Operand 0 is the condition, not the true value. Use op 1 and op 2 as the correct values. Reviewers: george.burgess.iv, nlopes, efriedma Reviewed By: george.burgess.iv Subscribers: craig.topper, rjmccall, lebedev.ri, llvm-commits Differential Revision: https://reviews.llvm.org/D46343 llvm-svn: 331976
-rw-r--r--llvm/lib/Analysis/CFLGraph.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/CFLGraph.h b/llvm/lib/Analysis/CFLGraph.h
index 6b4ec67afd9..357951bdf54 100644
--- a/llvm/lib/Analysis/CFLGraph.h
+++ b/llvm/lib/Analysis/CFLGraph.h
@@ -541,6 +541,12 @@ template <typename CFLAA> class CFLGraphBuilder {
break;
}
+ case Instruction::Select: {
+ addAssignEdge(CE->getOperand(1), CE);
+ addAssignEdge(CE->getOperand(2), CE);
+ break;
+ }
+
case Instruction::InsertElement:
case Instruction::InsertValue: {
addAssignEdge(CE->getOperand(0), CE);
@@ -573,7 +579,6 @@ template <typename CFLAA> class CFLGraphBuilder {
case Instruction::AShr:
case Instruction::ICmp:
case Instruction::FCmp:
- case Instruction::Select:
case Instruction::ShuffleVector: {
addAssignEdge(CE->getOperand(0), CE);
addAssignEdge(CE->getOperand(1), CE);
OpenPOWER on IntegriCloud