forked from OSchip/llvm-project
fold trivial token factor nodes. This allows us to compile
test/CodeGen/X86/fp-stack-ret.ll into: movl 4(%esp), %eax fldl (%eax) ret instead of: subl $12, %esp movl 16(%esp), %eax movsd (%eax), %xmm0 movsd %xmm0, (%esp) fldl (%esp) addl $12, %esp ret by eliminating a token factor that blocked a check. llvm-svn: 34584
This commit is contained in:
parent
26ef86b6fe
commit
387f464121
|
@ -1351,6 +1351,12 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT,
|
||||||
|
|
||||||
// Fold operations.
|
// Fold operations.
|
||||||
switch (Opcode) {
|
switch (Opcode) {
|
||||||
|
case ISD::TokenFactor:
|
||||||
|
// Fold trivial token factors.
|
||||||
|
if (N1.getOpcode() == ISD::EntryToken) return N2;
|
||||||
|
if (N2.getOpcode() == ISD::EntryToken) return N1;
|
||||||
|
break;
|
||||||
|
|
||||||
case ISD::AND:
|
case ISD::AND:
|
||||||
// (X & 0) -> 0. This commonly occurs when legalizing i64 values, so it's
|
// (X & 0) -> 0. This commonly occurs when legalizing i64 values, so it's
|
||||||
// worth handling here.
|
// worth handling here.
|
||||||
|
|
Loading…
Reference in New Issue