From 10c218d4afd30ffe2f63349e31d683f898029b1a Mon Sep 17 00:00:00 2001 From: David Bolvansky Date: Thu, 10 May 2018 11:47:36 +0000 Subject: [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 --- llvm/lib/Analysis/CFLGraph.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'llvm/lib/Analysis/CFLGraph.h') 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 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 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); -- cgit v1.2.3