summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2018-05-03 07:09:33 +0000
committerMartin Storsjo <martin@martin.st>2018-05-03 07:09:33 +0000
commit67fdea490d09dfc23ab666f58008b67393b8540d (patch)
treeee9a57e56baac5a80426d08d2c046bd0e4a23f67 /llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
parent369a38ba0f8402d89d5b682a57ff61bc60892a7d (diff)
downloadbcm5719-llvm-67fdea490d09dfc23ab666f58008b67393b8540d.tar.gz
bcm5719-llvm-67fdea490d09dfc23ab666f58008b67393b8540d.zip
Revert "[SelectionDAG] Selection of DBG_VALUE using a PHI node result (pt 2)"
This reverts SVN r331337, see PR37321 for details on the regression it introduced. llvm-svn: 331441
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp37
1 files changed, 6 insertions, 31 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index 561459e506c..2ac4d3a7b24 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -5257,37 +5257,12 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) {
// PHI nodes have already been selected, so we should know which VReg that
// is assigns to already.
if (isa<PHINode>(V)) {
- auto VMI = FuncInfo.ValueMap.find(V);
- if (VMI != FuncInfo.ValueMap.end()) {
- unsigned Reg = VMI->second;
- // The PHI node may be split up into several MI PHI nodes (in
- // FunctionLoweringInfo::set).
- RegsForValue RFV(V->getContext(), TLI, DAG.getDataLayout(), Reg,
- V->getType(), false);
- if (RFV.occupiesMultipleRegs()) {
- unsigned I = 0;
- unsigned Offset = 0;
- for (auto CountAndVT : zip_first(RFV.RegCount, RFV.RegVTs)) {
- unsigned RegCount = std::get<0>(CountAndVT);
- MVT RegisterVT = std::get<1>(CountAndVT);
- unsigned RegisterSize = RegisterVT.getSizeInBits();
- for (unsigned E = I + RegCount; I != E; ++I) {
- auto FragmentExpr = DIExpression::createFragmentExpression(
- Expression, Offset, RegisterSize);
- if (!FragmentExpr)
- continue;
- // The vregs are guaranteed to be allocated in sequence.
- SDV = DAG.getVRegDbgValue(Variable, *FragmentExpr, Reg + I,
- false, dl, SDNodeOrder);
- DAG.AddDbgValue(SDV, nullptr, false);
- Offset += RegisterSize;
- }
- }
- } else {
- SDV = DAG.getVRegDbgValue(Variable, Expression, Reg, false, dl,
- SDNodeOrder);
- DAG.AddDbgValue(SDV, nullptr, false);
- }
+ auto It = FuncInfo.ValueMap.find(V);
+ if (It != FuncInfo.ValueMap.end()) {
+ unsigned Reg = It->second;
+ SDV = DAG.getVRegDbgValue(Variable, Expression, Reg, false, dl,
+ SDNodeOrder);
+ DAG.AddDbgValue(SDV, nullptr, false);
return nullptr;
}
}
OpenPOWER on IntegriCloud