oota-llvm.git
14 years agosplit out an encoder for memri operands, allowing a relocation to be plopped
Chris Lattner [Mon, 15 Nov 2010 08:22:03 +0000 (08:22 +0000)]
split out an encoder for memri operands, allowing a relocation to be plopped
into the immediate field.  This allows us to encode stuff like this:

        lbz r3, lo16(__ZL4init)(r4)     ; globalopt.cpp:5
                                        ; encoding: [0x88,0x64,A,A]
                                        ;   fixup A - offset: 0, value: lo16(__ZL4init), kind: fixup_ppc_lo16

        stw r3, lo16(__ZL1s)(r5)        ; globalopt.cpp:6
                                        ; encoding: [0x90,0x65,A,A]
                                        ;   fixup A - offset: 0, value: lo16(__ZL1s), kind: fixup_ppc_lo16

With this, we should have a completely function MCCodeEmitter for PPC, wewt.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119134 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd support for encoding the lo14 forms used for a few PPC64 addressing
Chris Lattner [Mon, 15 Nov 2010 08:02:41 +0000 (08:02 +0000)]
add support for encoding the lo14 forms used for a few PPC64 addressing
modes.  For example, we now get:

ld r3, lo16(_G)(r3)             ; encoding: [0xe8,0x63,A,0bAAAAAA00]
                                        ;   fixup A - offset: 0, value: lo16(_G), kind: fixup_ppc_lo14

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119133 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix a regression with the new instprinter: we lost the ability to
Chris Lattner [Mon, 15 Nov 2010 07:52:06 +0000 (07:52 +0000)]
fix a regression with the new instprinter: we lost the ability to
print DBG_VALUE instructions.  This should unbreak the llvm-gcc-powerpc-darwin9
buildbot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119132 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agopull the code to get the operand value out of the loop.
Chris Lattner [Mon, 15 Nov 2010 07:09:28 +0000 (07:09 +0000)]
pull the code to get the operand value out of the loop.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119130 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agosplit the giant encoder loop into two new helper functions.
Chris Lattner [Mon, 15 Nov 2010 06:59:17 +0000 (06:59 +0000)]
split the giant encoder loop into two new helper functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119129 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoreduce nesting and minor cleanups, no functionality change.
Chris Lattner [Mon, 15 Nov 2010 06:42:13 +0000 (06:42 +0000)]
reduce nesting and minor cleanups, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119128 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoimplement the start of support for lo16 and ha16, allowing us to get stuff like:
Chris Lattner [Mon, 15 Nov 2010 06:33:39 +0000 (06:33 +0000)]
implement the start of support for lo16 and ha16, allowing us to get stuff like:

        lis r4, ha16(__ZL4init)         ; encoding: [0x3c,0x80,A,A]
                                        ;   fixup A - offset: 0, value: ha16(__ZL4init), kind: fixup_ppc_ha16

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119127 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd a fixup for conditional branches, giving us output like this:
Chris Lattner [Mon, 15 Nov 2010 06:12:22 +0000 (06:12 +0000)]
add a fixup for conditional branches, giving us output like this:

        beq cr0, LBB0_4                 ; encoding: [0x41,0x82,A,0bAAAAAA00]
                                        ;   fixup A - offset: 0, value: LBB0_4, kind: fixup_ppc_brcond14

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119126 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agochange direct branches to encode with the same encoding method
Chris Lattner [Mon, 15 Nov 2010 06:09:35 +0000 (06:09 +0000)]
change direct branches to encode with the same encoding method
as direct calls.  Change conditional branches to encode with
their own method, simplifying the JIT encoder and making room
for adding an mc fixup.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119125 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoeliminate a now-unneeded operand printer.
Chris Lattner [Mon, 15 Nov 2010 06:01:10 +0000 (06:01 +0000)]
eliminate a now-unneeded operand printer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119124 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agosplit call operands out to their own encoding class, simplifying
Chris Lattner [Mon, 15 Nov 2010 05:57:53 +0000 (05:57 +0000)]
split call operands out to their own encoding class, simplifying
code in the JIT.  Use this to form the first fixup for the PPC backend,
giving us stuff like this:

bl L_foo$stub ; encoding: [0b010010AA,A,A,0bAAAAAA01]
                                        ;   fixup A - offset: 0, value: L_foo$stub, kind: fixup_ppc_br24

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119123 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agocorrect the fixup comment printer to work on big endian platforms.
Chris Lattner [Mon, 15 Nov 2010 05:56:19 +0000 (05:56 +0000)]
correct the fixup comment printer to work on big endian platforms.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119122 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd proper encoding for MTCRF instead of using a hack.
Chris Lattner [Mon, 15 Nov 2010 05:19:25 +0000 (05:19 +0000)]
add proper encoding for MTCRF instead of using a hack.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119121 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd fields to the .td files unconditionally, simplifying tblgen a bit.
Chris Lattner [Mon, 15 Nov 2010 05:19:05 +0000 (05:19 +0000)]
add fields to the .td files unconditionally, simplifying tblgen a bit.
Switch the ARM backend to use 'let' instead of 'set' with this change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119120 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoremove a pointless testcase.
Chris Lattner [Mon, 15 Nov 2010 05:07:03 +0000 (05:07 +0000)]
remove a pointless testcase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119119 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd basic encoding support for immediates and registers, allowing us
Chris Lattner [Mon, 15 Nov 2010 04:51:55 +0000 (04:51 +0000)]
add basic encoding support for immediates and registers, allowing us
to encode all of these instructions correctly (for example):

        mflr r0                         ; encoding: [0x7c,0x08,0x02,0xa6]
        stw r0, 8(r1)                   ; encoding: [0x90,0x01,0x00,0x08]
        stwu r1, -64(r1)                ; encoding: [0x94,0x21,0xff,0xc0]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119118 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd a dummy entry to fix a build error
Chris Lattner [Mon, 15 Nov 2010 04:47:16 +0000 (04:47 +0000)]
add a dummy entry to fix a build error

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119117 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoImplement a basic MCCodeEmitter for PPC. This doesn't handle
Chris Lattner [Mon, 15 Nov 2010 04:16:32 +0000 (04:16 +0000)]
Implement a basic MCCodeEmitter for PPC.  This doesn't handle
fixups yet, and doesn't handle actually encoding operand values,
but this is enough for llc -show-mc-encoding to show the base
instruction encoding information, e.g.:

mflr r0                         ; encoding: [0x7c,0x08,0x02,0xa6]
stw r0, 8(r1)                   ; encoding: [0x90,0x00,0x00,0x00]
stwu r1, -64(r1)                ; encoding: [0x94,0x00,0x00,0x00]
Ltmp0:
lhz r4, 4(r3)                   ; encoding: [0xa0,0x00,0x00,0x00]
cmplwi cr0, r4, 8               ; encoding: [0x28,0x00,0x00,0x00]
beq cr0, LBB0_2                 ; encoding: [0x40,0x00,0x00,0x00]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119116 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agodissolve some more hacks.
Chris Lattner [Mon, 15 Nov 2010 03:53:53 +0000 (03:53 +0000)]
dissolve some more hacks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119115 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix some fixme's, removing dead code.
Chris Lattner [Mon, 15 Nov 2010 03:51:13 +0000 (03:51 +0000)]
fix some fixme's, removing dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119114 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoremove asmstrings (which can never be printed) from pseudo
Chris Lattner [Mon, 15 Nov 2010 03:48:58 +0000 (03:48 +0000)]
remove asmstrings (which can never be printed) from pseudo
instructions, allowing is to eliminate some dead operand
printing methods from the instprinter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119113 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agostrength reduce TOC temp label generation, no functionality change.
Chris Lattner [Mon, 15 Nov 2010 03:42:54 +0000 (03:42 +0000)]
strength reduce TOC temp label generation, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119112 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agorip out a ton of old instruction printing junk now that the
Chris Lattner [Mon, 15 Nov 2010 03:39:06 +0000 (03:39 +0000)]
rip out a ton of old instruction printing junk now that the
new instprinting logic is there.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119111 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoObject: Add missing makefile.
Michael J. Spencer [Mon, 15 Nov 2010 03:33:14 +0000 (03:33 +0000)]
Object: Add missing makefile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119110 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMake sure ARM multi load / store pass copies memoperands when forming ldrd / strd...
Evan Cheng [Mon, 15 Nov 2010 03:30:30 +0000 (03:30 +0000)]
Make sure ARM multi load / store pass copies memoperands when forming ldrd / strd. pr8113.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119109 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTurn on the new instprinter by default.
Chris Lattner [Mon, 15 Nov 2010 03:27:05 +0000 (03:27 +0000)]
Turn on the new instprinter by default.

The only change in the output is:

1) we get a better comment on mfcr, we get:
mfcr r2                         ; cr2
  instead of:
  mfcr r2 ; 32

2) we no longer emit $stub's on powerpc/leopard.  The Leopard
   linker autosynthesizes them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119108 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd LLVMObject Library.
Michael J. Spencer [Mon, 15 Nov 2010 03:21:41 +0000 (03:21 +0000)]
Add LLVMObject Library.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119107 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoconvert the operand bits into bitfields since they are all combinable in
Chris Lattner [Mon, 15 Nov 2010 03:13:19 +0000 (03:13 +0000)]
convert the operand bits into bitfields since they are all combinable in
different ways.  Add $non_lazy_ptr support, and proper lowering for
global values.

Now all the ppc regression tests pass with the new instruction printer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119106 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd targetoperand flags for jump tables, constant pool and block address
Chris Lattner [Mon, 15 Nov 2010 02:46:57 +0000 (02:46 +0000)]
add targetoperand flags for jump tables, constant pool and block address
nodes to indicate when ha16/lo16 modifiers should be used.  This lets
us pass PowerPC/indirectbr.ll.

The one annoying thing about this patch is that the MCSymbolExpr isn't
expressive enough to represent ha16(label1-label2) which we need on
PowerPC.  I have a terrible hack in the meantime, but this will have
to be revisited at some point.

Last major conversion item left is global variable references.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119105 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoremove some extraneous quotes to make the new instprinter match.
Chris Lattner [Mon, 15 Nov 2010 02:43:46 +0000 (02:43 +0000)]
remove some extraneous quotes to make the new instprinter match.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119104 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agosilence a ton of warnings from clang.
Chris Lattner [Mon, 15 Nov 2010 01:45:44 +0000 (01:45 +0000)]
silence a ton of warnings from clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119102 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAttempt to unbreak cmake-based builds
Anton Korobeynikov [Mon, 15 Nov 2010 00:48:12 +0000 (00:48 +0000)]
Attempt to unbreak cmake-based builds

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119098 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFirst step of huge frame-related refactoring: move emit{Prologue,Epilogue} out of...
Anton Korobeynikov [Mon, 15 Nov 2010 00:06:54 +0000 (00:06 +0000)]
First step of huge frame-related refactoring: move emit{Prologue,Epilogue} out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119097 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoWhitespace cleanup
Anton Korobeynikov [Mon, 15 Nov 2010 00:06:05 +0000 (00:06 +0000)]
Whitespace cleanup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119096 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMove the logic to decide with which symbol we produce a relocation (if any) to
Rafael Espindola [Sun, 14 Nov 2010 23:53:26 +0000 (23:53 +0000)]
Move the logic to decide with which symbol we produce a relocation (if any) to
a central location. This also makes us a bit more compatible with gas.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119094 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoimplement support for the MO_DARWIN_STUB TargetOperand flag,
Chris Lattner [Sun, 14 Nov 2010 23:42:06 +0000 (23:42 +0000)]
implement support for the MO_DARWIN_STUB TargetOperand flag,
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119093 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agotidy up, no functionality change.
Chris Lattner [Sun, 14 Nov 2010 23:32:42 +0000 (23:32 +0000)]
tidy up, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119092 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agowith the picbase nonsense starting to be figured out, implement
Chris Lattner [Sun, 14 Nov 2010 22:56:43 +0000 (22:56 +0000)]
with the picbase nonsense starting to be figured out, implement
lowering support for MovePCtoLR[8].  Down to 4 failures again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119090 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomove the pic base symbol stuff up to MachineFunction
Chris Lattner [Sun, 14 Nov 2010 22:48:15 +0000 (22:48 +0000)]
move the pic base symbol stuff up to MachineFunction
since it is trivial and will be shared between ppc and x86.
This substantially simplifies the X86 backend also.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119089 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agosimplify getPICBaseSymbol a bit.
Chris Lattner [Sun, 14 Nov 2010 22:37:11 +0000 (22:37 +0000)]
simplify getPICBaseSymbol a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119088 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoreimplement ppc asmprinter "toc" handling to use a VariantKind
Chris Lattner [Sun, 14 Nov 2010 22:22:59 +0000 (22:22 +0000)]
reimplement ppc asmprinter "toc" handling to use a VariantKind
on the operand, required for .o file writing and fixing
the PowerPC/mult-alt-generic-powerpc64.ll failure with the new
instprinter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119087 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd some nounwind's.
Chris Lattner [Sun, 14 Nov 2010 22:22:14 +0000 (22:22 +0000)]
add some nounwind's.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119086 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agolower PPC::MFCRpseud when transforming to MC, avoiding calling
Chris Lattner [Sun, 14 Nov 2010 22:03:15 +0000 (22:03 +0000)]
lower PPC::MFCRpseud when transforming to MC, avoiding calling
the aborting printSpecial() method.  This gets us to 8 failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119084 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomake the stubbed-out printer methods abort instead of
Chris Lattner [Sun, 14 Nov 2010 21:54:34 +0000 (21:54 +0000)]
make the stubbed-out printer methods abort instead of
printing nothing.  This gets us back up to 24 failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119083 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agowire up a few more things, down to 4 test failures, all
Chris Lattner [Sun, 14 Nov 2010 21:51:37 +0000 (21:51 +0000)]
wire up a few more things, down to 4 test failures, all
about handling $stub, lo/hi etc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119082 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoproperly wire up the instprinter to the ppc64 backend, down to 5 failures.
Chris Lattner [Sun, 14 Nov 2010 21:42:53 +0000 (21:42 +0000)]
properly wire up the instprinter to the ppc64 backend, down to 5 failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119081 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoimplement pretty printing support for the various pseudo
Chris Lattner [Sun, 14 Nov 2010 21:39:51 +0000 (21:39 +0000)]
implement pretty printing support for the various pseudo
ops the asmprinter supported, fixing PowerPC/rlwimi2.ll
among others.  Down to 20 failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119080 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoWire up symbol hi/lo printing. We don't print hi()/lo(), but this gets
Chris Lattner [Sun, 14 Nov 2010 21:33:07 +0000 (21:33 +0000)]
Wire up symbol hi/lo printing.  We don't print hi()/lo(), but this gets
us further along.  Only 28 failures now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119079 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoimplement basic support for symbol operand lowering,
Chris Lattner [Sun, 14 Nov 2010 21:20:46 +0000 (21:20 +0000)]
implement basic support for symbol operand lowering,
and printing support for call operands.  Down to 77 failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119078 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDetect presence of AsmPrinter's. Remove some cruft too.
Oscar Fuentes [Sun, 14 Nov 2010 21:17:13 +0000 (21:17 +0000)]
Detect presence of AsmPrinter's. Remove some cruft too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119077 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUpdated CMake library dependencies.
Oscar Fuentes [Sun, 14 Nov 2010 21:17:08 +0000 (21:17 +0000)]
Updated CMake library dependencies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119076 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agotrim #includes.
Chris Lattner [Sun, 14 Nov 2010 21:16:04 +0000 (21:16 +0000)]
trim #includes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119075 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoswitch PPC to a simplified MCInstLowering model.
Chris Lattner [Sun, 14 Nov 2010 21:12:33 +0000 (21:12 +0000)]
switch PPC to a simplified MCInstLowering model.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119074 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix another case of a .comm directive without a corresponding .type
Rafael Espindola [Sun, 14 Nov 2010 21:11:16 +0000 (21:11 +0000)]
Fix another case of a .comm directive without a corresponding .type
directive.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119073 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix PPC.h to not pull in TargetMachine.h
Chris Lattner [Sun, 14 Nov 2010 21:09:28 +0000 (21:09 +0000)]
fix PPC.h to not pull in TargetMachine.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119072 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agorename LowerToMCInst -> LowerARMMachineInstrToMCInst.
Chris Lattner [Sun, 14 Nov 2010 21:00:02 +0000 (21:00 +0000)]
rename LowerToMCInst -> LowerARMMachineInstrToMCInst.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119071 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoeven more simplifications. ARM MCInstLowering is now just
Chris Lattner [Sun, 14 Nov 2010 20:58:38 +0000 (20:58 +0000)]
even more simplifications.  ARM MCInstLowering  is now just
a single function instead of a class.  It doesn't need the
complexity that X86 does.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119070 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agohopefully unbreak the cmake build, patch by frits van bommel.
Chris Lattner [Sun, 14 Nov 2010 20:51:15 +0000 (20:51 +0000)]
hopefully unbreak the cmake build, patch by frits van bommel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119069 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomore shrinkification
Chris Lattner [Sun, 14 Nov 2010 20:41:53 +0000 (20:41 +0000)]
more shrinkification

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119068 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomore simplifications.
Chris Lattner [Sun, 14 Nov 2010 20:40:08 +0000 (20:40 +0000)]
more simplifications.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119067 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agosimplify and tidy up
Chris Lattner [Sun, 14 Nov 2010 20:31:06 +0000 (20:31 +0000)]
simplify and tidy up

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119066 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoimplement basic support for memory operands and crbit operands,
Chris Lattner [Sun, 14 Nov 2010 20:22:56 +0000 (20:22 +0000)]
implement basic support for memory operands and crbit operands,
this fixes 3 more ppc tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119065 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCMakeLists.txt: removed mismatched endif predicate.
Oscar Fuentes [Sun, 14 Nov 2010 20:15:05 +0000 (20:15 +0000)]
CMakeLists.txt: removed mismatched endif predicate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119064 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoimplement several trivial operand printers, reducing
Chris Lattner [Sun, 14 Nov 2010 20:11:21 +0000 (20:11 +0000)]
implement several trivial operand printers, reducing
failures in CodeGen/PowerPC from 120 -> 117

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119063 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoImplement support for printing register and immediate operands,
Chris Lattner [Sun, 14 Nov 2010 20:02:39 +0000 (20:02 +0000)]
Implement support for printing register and immediate operands,
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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119062 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agostub out PPCMCInstLowering, add a new option that uses it and the new
Chris Lattner [Sun, 14 Nov 2010 19:53:02 +0000 (19:53 +0000)]
stub out PPCMCInstLowering, add a new option that uses it and the new
instprinter when -enable-ppc-inst-printer is passed to llc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119061 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix the type of a symbol created with .comm and no corresponding .type.
Rafael Espindola [Sun, 14 Nov 2010 19:40:55 +0000 (19:40 +0000)]
Fix the type of a symbol created with .comm and no corresponding .type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119060 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agostub out a powerpc MCInstPrinter implementation.
Chris Lattner [Sun, 14 Nov 2010 19:40:38 +0000 (19:40 +0000)]
stub out a powerpc MCInstPrinter implementation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119059 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agohopefully fix cmake as well.
Chris Lattner [Sun, 14 Nov 2010 19:12:57 +0000 (19:12 +0000)]
hopefully fix cmake as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119058 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix the autoconf script to detect "has asmprinter"ness of a target by
Chris Lattner [Sun, 14 Nov 2010 19:10:47 +0000 (19:10 +0000)]
fix the autoconf script to detect "has asmprinter"ness of a target by
looking for lib/Target/*AsmPrinter.cpp.  Fix llvm-config to handle targets
that don't have an explicit AsmPrinter library.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119057 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomove all the target's asmprinters into the main target. The piece
Chris Lattner [Sun, 14 Nov 2010 18:43:56 +0000 (18:43 +0000)]
move all the target's asmprinters into the main target.  The piece
that should be split out is the InstPrinter (if a target is mc'ized).
This change makes all the targets be consistent.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119056 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoIf dom tree information is available, make it possible to pass
Duncan Sands [Sun, 14 Nov 2010 18:36:10 +0000 (18:36 +0000)]
If dom tree information is available, make it possible to pass
it to get better phi node simplification.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119055 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomove PPCAsmPrinter into the main PPC library, like ARM and X86.
Chris Lattner [Sun, 14 Nov 2010 18:33:33 +0000 (18:33 +0000)]
move PPCAsmPrinter into the main PPC library, like ARM and X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119054 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix cmake
Chris Lattner [Sun, 14 Nov 2010 18:27:11 +0000 (18:27 +0000)]
fix cmake

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119053 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agono alpha jit support.
Chris Lattner [Sun, 14 Nov 2010 18:25:50 +0000 (18:25 +0000)]
no alpha jit support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119052 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoremove JIT support from the Alpha backend. The JIT will be moving to MC,
Chris Lattner [Sun, 14 Nov 2010 18:24:41 +0000 (18:24 +0000)]
remove JIT support from the Alpha backend.  The JIT will be moving to MC,
and the Alpha backend isn't MCized yet.  Approved by Andrew.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119051 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSegregate tests by target.
Dale Johannesen [Sun, 14 Nov 2010 18:14:32 +0000 (18:14 +0000)]
Segregate tests by target.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119050 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agorandom acts of tidiness.
Chris Lattner [Sun, 14 Nov 2010 18:09:50 +0000 (18:09 +0000)]
random acts of tidiness.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119049 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTeach InstructionSimplify about phi nodes. I chose to have it simply
Duncan Sands [Sun, 14 Nov 2010 13:30:18 +0000 (13:30 +0000)]
Teach InstructionSimplify about phi nodes.  I chose to have it simply
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).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119043 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoBoost the power of phi node constant folding slightly: if all
Duncan Sands [Sun, 14 Nov 2010 12:53:18 +0000 (12:53 +0000)]
Boost the power of phi node constant folding slightly: if all
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119041 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agounittests/CMakeLists.txt: Add missing VMCore/ValueMapTest.cpp to VMCoreTests.
NAKAMURA Takumi [Sun, 14 Nov 2010 12:37:51 +0000 (12:37 +0000)]
unittests/CMakeLists.txt: Add missing VMCore/ValueMapTest.cpp to VMCoreTests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119040 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoStrip trailing whitespace.
Duncan Sands [Sun, 14 Nov 2010 11:23:23 +0000 (11:23 +0000)]
Strip trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119038 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agorename test.
Chris Lattner [Sun, 14 Nov 2010 07:03:49 +0000 (07:03 +0000)]
rename test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119033 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofilecheckize, remove an old and useless test
Chris Lattner [Sun, 14 Nov 2010 07:03:38 +0000 (07:03 +0000)]
filecheckize, remove an old and useless test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119032 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agothis test is pretty pointless and "propogation" isn't a word (or so Misha claims).
Chris Lattner [Sun, 14 Nov 2010 07:02:03 +0000 (07:02 +0000)]
this test is pretty pointless and "propogation" isn't a word (or so Misha claims).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119031 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSecond attempt at providing correct encodings for Thumb2 binary operators.
Owen Anderson [Sun, 14 Nov 2010 05:37:38 +0000 (05:37 +0000)]
Second attempt at providing correct encodings for Thumb2 binary operators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119029 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoHandle a peculiar comdat case: Creating a section with an undefined
Rafael Espindola [Sun, 14 Nov 2010 04:17:37 +0000 (04:17 +0000)]
Handle a peculiar comdat case: Creating a section with an undefined
signature symbol causes a local symbol to be created unless there is
some other use of the symbol.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119026 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFileCheck: Eliminate DOSish \r from input file.
NAKAMURA Takumi [Sun, 14 Nov 2010 03:28:22 +0000 (03:28 +0000)]
FileCheck: Eliminate DOSish \r from input file.

It can pass two tests below on Win32.
  - Clang :: CodeGenCXX/dyncast.cpp
  - LLVM :: CodeGen/ARM/globals.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119023 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSimplify getSymbolIndexInSymbolTable by setting the actual index of
Rafael Espindola [Sun, 14 Nov 2010 03:12:24 +0000 (03:12 +0000)]
Simplify getSymbolIndexInSymbolTable by setting the actual index of
the symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119022 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix warning.
Rafael Espindola [Sun, 14 Nov 2010 01:34:31 +0000 (01:34 +0000)]
Fix warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119021 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTestcase to go along with commit 118923 ("Have GVN simplify instructions
Duncan Sands [Sat, 13 Nov 2010 21:33:19 +0000 (21:33 +0000)]
Testcase to go along with commit 118923 ("Have GVN simplify instructions
as it goes").  Before -std-compile-opts only got it down to
  %a = tail call i32 @foo(i32 0) readnone
  %x = tail call i32 @foo(i32 %a) readnone
  %y = tail call i32 @foo(i32 %a) readnone
  %z = icmp eq i32 %x, %y
  ret i1 %z
while now -basicaa -gvn alone reduce it to
  %a = call i32 @foo(i32 0) readnone
  %x = call i32 @foo(i32 %a) readnone
  ret i1 true

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119009 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRecognise 32-bit ror-based bswap implementation used by uclibc
Peter Collingbourne [Sat, 13 Nov 2010 19:54:30 +0000 (19:54 +0000)]
Recognise 32-bit ror-based bswap implementation used by uclibc

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119007 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSupport ; as asm separator
Peter Collingbourne [Sat, 13 Nov 2010 19:54:23 +0000 (19:54 +0000)]
Support ; as asm separator

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119006 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoGeneralize the reassociation transform in SimplifyCommutative (now renamed to
Duncan Sands [Sat, 13 Nov 2010 15:10:37 +0000 (15:10 +0000)]
Generalize the reassociation transform in SimplifyCommutative (now renamed to
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).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119002 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix typo pointed out by Trevor Harmon.
Duncan Sands [Sat, 13 Nov 2010 12:16:27 +0000 (12:16 +0000)]
Fix typo pointed out by Trevor Harmon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119001 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoComment out the defms until they're activated.
Bill Wendling [Sat, 13 Nov 2010 11:20:05 +0000 (11:20 +0000)]
Comment out the defms until they're activated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119000 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd uses of the *_ldst_multi multiclasses. These aren't used yet.
Bill Wendling [Sat, 13 Nov 2010 10:57:02 +0000 (10:57 +0000)]
Add uses of the *_ldst_multi multiclasses. These aren't used yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118999 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoConvert the modes to lower case.
Bill Wendling [Sat, 13 Nov 2010 10:43:34 +0000 (10:43 +0000)]
Convert the modes to lower case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118998 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMinor cleanups:
Bill Wendling [Sat, 13 Nov 2010 10:40:19 +0000 (10:40 +0000)]
Minor cleanups:

- Get the opcode once.
- Add a ParserMatchClass to reglist.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118997 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd *_ldst_mult multiclasses to the ARM back-end. These will be used in the
Bill Wendling [Sat, 13 Nov 2010 09:09:38 +0000 (09:09 +0000)]
Add *_ldst_mult multiclasses to the ARM back-end. These will be used in the
future to separate out the ia, ib, da, db variants of the load/store multiple
instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118995 91177308-0d34-0410-b5e6-96231b3b80d8