mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Know some identities about tokenfactor nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19699 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
88218ef706
commit
39908e0ce0
@ -549,6 +549,10 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT,
|
||||
SDOperand N1, SDOperand N2) {
|
||||
#ifndef NDEBUG
|
||||
switch (Opcode) {
|
||||
case ISD::TokenFactor:
|
||||
assert(VT == MVT::Other && N1.getValueType() == MVT::Other &&
|
||||
N2.getValueType() == MVT::Other && "Invalid token factor!");
|
||||
break;
|
||||
case ISD::AND:
|
||||
case ISD::OR:
|
||||
case ISD::XOR:
|
||||
@ -739,6 +743,13 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT,
|
||||
|
||||
// Finally, fold operations that do not require constants.
|
||||
switch (Opcode) {
|
||||
case ISD::TokenFactor:
|
||||
if (N1.getOpcode() == ISD::EntryToken)
|
||||
return N2;
|
||||
if (N2.getOpcode() == ISD::EntryToken)
|
||||
return N1;
|
||||
break;
|
||||
|
||||
case ISD::AND:
|
||||
case ISD::OR:
|
||||
if (SetCCSDNode *LHS = dyn_cast<SetCCSDNode>(N1.Val))
|
||||
|
Loading…
Reference in New Issue
Block a user