mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Fix an infinite loop I caused by making sure to legalize the flag operand
of CALLSEQ_* nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25582 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1276,6 +1276,19 @@ void SDNode::setAdjCallChain(SDOperand N) {
|
||||
OperandList[0].Val->Uses.push_back(this);
|
||||
}
|
||||
|
||||
// setAdjCallFlag - This method changes the flag input of an
|
||||
// CALLSEQ_START/END node to be the specified operand.
|
||||
void SDNode::setAdjCallFlag(SDOperand N) {
|
||||
assert(N.getValueType() == MVT::Flag);
|
||||
assert((getOpcode() == ISD::CALLSEQ_START ||
|
||||
getOpcode() == ISD::CALLSEQ_END) && "Cannot adjust this node!");
|
||||
|
||||
SDOperand &FlagOp = OperandList[getNumOperands()-1];
|
||||
assert(FlagOp.getValueType() == MVT::Flag);
|
||||
FlagOp.Val->removeUser(this);
|
||||
FlagOp = N;
|
||||
FlagOp.Val->Uses.push_back(this);
|
||||
}
|
||||
|
||||
|
||||
SDOperand SelectionDAG::getLoad(MVT::ValueType VT,
|
||||
|
Reference in New Issue
Block a user