diff options
author | David Bolvansky <david.bolvansky@gmail.com> | 2018-05-10 11:47:36 +0000 |
---|---|---|
committer | David Bolvansky <david.bolvansky@gmail.com> | 2018-05-10 11:47:36 +0000 |
commit | 10c218d4afd30ffe2f63349e31d683f898029b1a (patch) | |
tree | a1fc505d918ccd0a6636b5ab0ed9ca91f29f6079 /llvm/lib/Analysis/CFLGraph.h | |
parent | 456f473ea8f2ca7b85773ba09140c5862f9c3ad7 (diff) | |
download | bcm5719-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
Diffstat (limited to 'llvm/lib/Analysis/CFLGraph.h')
-rw-r--r-- | llvm/lib/Analysis/CFLGraph.h | 7 |
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); |