mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-23 17:29:19 +00:00
[SDAG] Don't insert the VRBase into a mapping from SDValues when the def
doesn't actually correspond to an SDValue at all. Fixes most of the remaining asserts on out-of-range SDValue result numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213930 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
068898df79
commit
38ccfe9761
@ -265,12 +265,16 @@ void InstrEmitter::CreateVirtualRegisters(SDNode *Node,
|
||||
MIB.addReg(VRBase, RegState::Define);
|
||||
}
|
||||
|
||||
SDValue Op(Node, i);
|
||||
if (IsClone)
|
||||
VRBaseMap.erase(Op);
|
||||
bool isNew = VRBaseMap.insert(std::make_pair(Op, VRBase)).second;
|
||||
(void)isNew; // Silence compiler warning.
|
||||
assert(isNew && "Node emitted out of order - early");
|
||||
// If this def corresponds to a result of the SDNode insert the VRBase into
|
||||
// the lookup map.
|
||||
if (i < NumResults) {
|
||||
SDValue Op(Node, i);
|
||||
if (IsClone)
|
||||
VRBaseMap.erase(Op);
|
||||
bool isNew = VRBaseMap.insert(std::make_pair(Op, VRBase)).second;
|
||||
(void)isNew; // Silence compiler warning.
|
||||
assert(isNew && "Node emitted out of order - early");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user