|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| | and have isel apply to to call operands as required.  This allows
us to get $stub suffixes on label references on ppc/tiger with the
new instprinter, fixing two tests.  Only 2 to go.
llvm-svn: 119093 | 
| | 
| 
| 
| | llvm-svn: 119092 | 
| | 
| 
| 
| 
| 
| | lowering support for MovePCtoLR[8].  Down to 4 failures again.
llvm-svn: 119090 | 
| | 
| 
| 
| 
| 
| 
| | since it is trivial and will be shared between ppc and x86.
This substantially simplifies the X86 backend also.
llvm-svn: 119089 | 
| | 
| 
| 
| | llvm-svn: 119088 | 
| | 
| 
| 
| 
| 
| 
| 
| | on the operand, required for .o file writing and fixing 
the PowerPC/mult-alt-generic-powerpc64.ll failure with the new
instprinter.
llvm-svn: 119087 | 
| | 
| 
| 
| 
| 
| | the aborting printSpecial() method.  This gets us to 8 failures.
llvm-svn: 119084 | 
| | 
| 
| 
| 
| 
| | printing nothing.  This gets us back up to 24 failures.
llvm-svn: 119083 | 
| | 
| 
| 
| 
| 
| | about handling $stub, lo/hi etc.
llvm-svn: 119082 | 
| | 
| 
| 
| | llvm-svn: 119081 | 
| | 
| 
| 
| 
| 
| 
| | ops the asmprinter supported, fixing PowerPC/rlwimi2.ll
among others.  Down to 20 failures.
llvm-svn: 119080 | 
| | 
| 
| 
| 
| 
| | us further along.  Only 28 failures now.
llvm-svn: 119079 | 
| | 
| 
| 
| 
| 
| | and printing support for call operands.  Down to 77 failures.
llvm-svn: 119078 | 
| | 
| 
| 
| | llvm-svn: 119075 | 
| | 
| 
| 
| | llvm-svn: 119074 | 
| | 
| 
| 
| 
| 
| | directive.
llvm-svn: 119073 | 
| | 
| 
| 
| | llvm-svn: 119072 | 
| | 
| 
| 
| | llvm-svn: 119071 | 
| | 
| 
| 
| 
| 
| 
| | a single function instead of a class.  It doesn't need the
complexity that X86 does.
llvm-svn: 119070 | 
| | 
| 
| 
| | llvm-svn: 119068 | 
| | 
| 
| 
| | llvm-svn: 119067 | 
| | 
| 
| 
| | llvm-svn: 119066 | 
| | 
| 
| 
| 
| 
| | this fixes 3 more ppc tests.
llvm-svn: 119065 | 
| | 
| 
| 
| 
| 
| | failures in CodeGen/PowerPC from 120 -> 117
llvm-svn: 119063 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | add support for darwin vs aix syntax.  We now can print instructions
like this:
	add r3, r3, r4
	blr 
and (in aix mode):
	add 3, 3, 4
	blr 
llvm-svn: 119062 | 
| | 
| 
| 
| 
| 
| | instprinter when -enable-ppc-inst-printer is passed to llc.
llvm-svn: 119061 | 
| | 
| 
| 
| | llvm-svn: 119060 | 
| | 
| 
| 
| | llvm-svn: 119059 | 
| | 
| 
| 
| 
| 
| 
| | that should be split out is the InstPrinter (if a target is mc'ized).
This change makes all the targets be consistent.
llvm-svn: 119056 | 
| | 
| 
| 
| 
| 
| | it to get better phi node simplification.
llvm-svn: 119055 | 
| | 
| 
| 
| | llvm-svn: 119054 | 
| | 
| 
| 
| | llvm-svn: 119053 | 
| | 
| 
| 
| 
| 
| | and the Alpha backend isn't MCized yet.  Approved by Andrew.
llvm-svn: 119051 | 
| | 
| 
| 
| | llvm-svn: 119049 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | offload the work to hasConstantValue rather than do something more
complicated (such handling mutually recursive phis) because (1) it is
not clear it is worth it; and (2) if it is worth it, maybe such logic
would be better placed in hasConstantValue.  Adjust some GVN tests
which are now cleaned up much further (eg: all phi nodes are removed).
llvm-svn: 119043 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | operands are the phi node itself or undef, then return undef.
This logic already existed at a higher level so in practice it
shouldn't make the slightest difference.  Note that this code
could be replaced by a call to PN->hasConstantValue().  However
since we bail out the moment we see a non-constant operand, it
is more efficient to have a specialized version of that logic.
llvm-svn: 119041 | 
| | 
| 
| 
| | llvm-svn: 119038 | 
| | 
| 
| 
| | llvm-svn: 119029 | 
| | 
| 
| 
| 
| 
| 
| | signature symbol causes a local symbol to be created unless there is
some other use of the symbol.
llvm-svn: 119026 | 
| | 
| 
| 
| 
| 
| | the symbols.
llvm-svn: 119022 | 
| | 
| 
| 
| | llvm-svn: 119021 | 
| | 
| 
| 
| | llvm-svn: 119007 | 
| | 
| 
| 
| | llvm-svn: 119006 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | SimplifyAssociativeOrCommutative) "(A op C1) op C2" -> "A op (C1 op C2)",
which previously was only done if C1 and C2 were constants, to occur whenever
"C1 op C2" simplifies (a la InstructionSimplify).  Since the simplifying operand
combination can no longer be assumed to be the right-hand terms, consider all of
the possible permutations.  When compiling "gcc as one big file", transform 2
(i.e. using right-hand operands) fires about 4000 times but it has to be said
that most of the time the simplifying operands are both constants.  Transforms
3, 4 and 5 each fired once.  Transform 6, which is an existing transform that
I didn't change, never fired.  With this change, the testcase is now optimized
perfectly with one run of instcombine (previously it required instcombine +
reassociate + instcombine, and it may just have been luck that this worked).
llvm-svn: 119002 | 
| | 
| 
| 
| | llvm-svn: 119001 | 
| | 
| 
| 
| | llvm-svn: 119000 | 
| | 
| 
| 
| | llvm-svn: 118999 | 
| | 
| 
| 
| | llvm-svn: 118998 | 
| | 
| 
| 
| 
| 
| 
| | - Get the opcode once.
- Add a ParserMatchClass to reglist.
llvm-svn: 118997 | 
| | 
| 
| 
| 
| 
| 
| | future to separate out the ia, ib, da, db variants of the load/store multiple
instructions.
llvm-svn: 118995 |