mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-03-07 11:59:09 +00:00
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
b71ec8d1cf
commit
e9c4c19b27
@ -1351,6 +1351,12 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT,
|
||||
|
||||
// Fold operations.
|
||||
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:
|
||||
// (X & 0) -> 0. This commonly occurs when legalizing i64 values, so it's
|
||||
// worth handling here.
|
||||
|
Loading…
x
Reference in New Issue
Block a user