Commit Graph

25563 Commits

Author SHA1 Message Date
Rafael Espindola 75269be065 skeleton of a lowerCall implementation for ARM
llvm-svn: 29159
2006-07-16 01:02:57 +00:00
Evan Cheng 69367fedd2 Reduce instruction selection code size and stack frame size by factoring
code that emit target specific nodes into emit functions that are uniquified
and shared among selection routines.
e.g. This reduces X86ISelDAGToDAG.o (release) from ~2M to ~1.5M. Stack frame
size of Select_store from ~13k down to ~8k.
This is the first step. Further work to enable more sharing will follow.

llvm-svn: 29158
2006-07-15 08:45:20 +00:00
Chris Lattner fd5a8ebb74 On 64-bit targets like ppc64, we should use .quad to output pointer directives,
not .long.

llvm-svn: 29157
2006-07-15 01:34:12 +00:00
Chris Lattner e1758d4cef Remove what little AIX support we have. It has never been tested and isn't
complete.

llvm-svn: 29156
2006-07-15 01:24:23 +00:00
Chris Lattner 45fcadc9f0 The generated index array should be const.
llvm-svn: 29155
2006-07-14 23:14:02 +00:00
Chris Lattner 436c2dd927 Add an out-of-line virtual function to home class.
llvm-svn: 29154
2006-07-14 23:08:47 +00:00
Chris Lattner 2e1d01541a Add an out-of-line virtual method for X86DwarfWriter to give it a home.
llvm-svn: 29153
2006-07-14 23:05:05 +00:00
Chris Lattner e32982cc52 Emit the string information for the asm writer as a single large string
and index into it, instead of emitting it like this:

  static const char * const OpStrs[] = {
    "PHINODE\n",        // PHI
    0,  // INLINEASM
    "adc ",     // ADC32mi
    "adc ",     // ADC32mi8
   ...

The old way required thousands of relocations that slows down link time and
dynamic load times.

This also cuts about 10K off each of the X86 asmprinters, and should shrink
the others as well.

llvm-svn: 29152
2006-07-14 22:59:11 +00:00
Chris Lattner 1025840417 Add two helpers for escaping and unescaping strings.
llvm-svn: 29151
2006-07-14 22:54:39 +00:00
Chris Lattner 81e6cc0999 Add two helper functions
llvm-svn: 29150
2006-07-14 22:54:06 +00:00
Chris Lattner 19247f36ea eliminate some ugly code, using ConstantExpr::getWithOperands instead.
llvm-svn: 29149
2006-07-14 22:21:31 +00:00
Chris Lattner 227816348c Add a new helper, simplify ConstantExpr::getWithOperandReplaced at Gabor's
request :)

llvm-svn: 29148
2006-07-14 22:20:01 +00:00
Chris Lattner d9a2c2a5e7 Add another helper method.
llvm-svn: 29147
2006-07-14 22:19:18 +00:00
Patrick Jenkins 9536ec7f39 Fixed an issue where the user specified gcc was not the gcc we report to the nightly test server.
llvm-svn: 29144
2006-07-14 20:44:09 +00:00
Chris Lattner 7c1018aef7 Add a new method for bugpoint to use
llvm-svn: 29143
2006-07-14 19:37:40 +00:00
Chris Lattner 7a196b73c2 Add a new method for bugpoint to use.
llvm-svn: 29142
2006-07-14 19:37:01 +00:00
Owen Anderson bea70ee1de Hopefully the final attempt at making IndVars preserve LCSSA.
This should fix PR 831.

llvm-svn: 29141
2006-07-14 18:49:15 +00:00
Chris Lattner 96aecb5d76 Add missing PPC64 extload/truncstores
llvm-svn: 29140
2006-07-14 04:42:02 +00:00
Chris Lattner 950dffaed6 Add a note
llvm-svn: 29139
2006-07-14 04:07:29 +00:00
Jim Laskey 4f3db1e542 Bring the Xcode project up to date.
llvm-svn: 29138
2006-07-13 22:17:58 +00:00
Jim Laskey 10d4b040ac Clean up.
llvm-svn: 29137
2006-07-13 22:17:08 +00:00
Chris Lattner 077b86a078 Another fix in the rotate encodings, needed when the first two operands are not
the same.

llvm-svn: 29136
2006-07-13 21:52:41 +00:00
Jim Laskey a44f6269bf 1. Simplfy bit operations.
2. Coalesce instruction cases.

llvm-svn: 29135
2006-07-13 21:02:53 +00:00
Chris Lattner 9b6c02ebe4 Revert this patch temporarily until PR831 is fixed.
llvm-svn: 29134
2006-07-13 19:05:20 +00:00
Patrick Jenkins fd95b6934a Syntax error. I will run perl -c before commiting perl scripts.
llvm-svn: 29133
2006-07-13 16:58:42 +00:00
Patrick Jenkins 26d5bd5bee Fixed some small bugs exposed when trying to get a sparc machine to run the script. Specifically some misnamed variables.
llvm-svn: 29132
2006-07-13 16:56:48 +00:00
Jim Laskey 194bef7ff4 Fixed a bug handling void function types.
Requires rebuild of llvm-gcc4 (touch llvm-debug.cpp.)

llvm-svn: 29131
2006-07-13 15:27:42 +00:00
Chris Lattner b42a945fd2 Print negative immediates as negative values instead of large constants
when using the immshifted addressing mode.

llvm-svn: 29130
2006-07-12 23:24:02 +00:00
Chris Lattner 78731ab1b8 Turn an if into an else if.
llvm-svn: 29129
2006-07-12 22:37:18 +00:00
Chris Lattner dd57ac4871 Fix encoding of rotates, such as rldicl
llvm-svn: 29128
2006-07-12 22:08:13 +00:00
Chris Lattner b3c64f7ab3 Handle instructions in the map, but that map to a null pointer.
This unbreaks smg2000.

llvm-svn: 29127
2006-07-12 21:37:11 +00:00
Owen Anderson dea9202e3b IndVars now (correctly) preserves LCSSA form.
llvm-svn: 29126
2006-07-12 21:29:14 +00:00
Chris Lattner 5b17dee741 Implement PPC64 relocations types
llvm-svn: 29125
2006-07-12 21:23:20 +00:00
Chris Lattner 1ec5e73b32 An overaggressive #ifdef allows a function to fall off the bottom of the
function instead of returning a value.  This sometimes allowed the ppc32 jit
to be used in 64-bit mode.

llvm-svn: 29123
2006-07-12 20:42:10 +00:00
Jim Laskey 23bd480cea Move base value of instruction to lookup table to prepare for case reduction.
llvm-svn: 29122
2006-07-12 19:15:43 +00:00
Chris Lattner 6148456ec2 In addition to deleting calls, the inliner can constant fold them as well.
Handle this case, which doesn't require a new callgraph edge.  This fixes
a crash compiling MallocBench/gs.

llvm-svn: 29121
2006-07-12 18:37:18 +00:00
Chris Lattner 5de3b8b262 Change the callgraph representation to store the callsite along with the
target CG node.  This allows the inliner to properly update the callgraph
when using the pruning inliner.  The pruning inliner may not copy over all
call sites from a callee to a caller, so the edges corresponding to those
call sites should not be copied over either.

This fixes PR827 and Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll

llvm-svn: 29120
2006-07-12 18:29:36 +00:00
Chris Lattner c7012cc9e9 testcase for PR827
llvm-svn: 29119
2006-07-12 18:27:13 +00:00
Chris Lattner c8db10725b Add information preventing several register class constraints from working.
This implements PR828 and CodeGen/X86/2006-07-12-InlineAsmQConstraint.ll

llvm-svn: 29118
2006-07-12 16:59:49 +00:00
Chris Lattner ed5a82b63e Testcase for PR828.
llvm-svn: 29117
2006-07-12 16:59:09 +00:00
Evan Cheng e910c355d3 Fix test failure on non-Apple systems.
llvm-svn: 29116
2006-07-12 06:48:47 +00:00
Chris Lattner 156907198e Remove non-portable optimization that isn't worth it
llvm-svn: 29115
2006-07-12 00:31:47 +00:00
Chris Lattner 6e662083d9 The PPC64 JIT needs register numbers to encode instructions.
llvm-svn: 29114
2006-07-11 20:53:55 +00:00
Chris Lattner fa289940c7 Revamp this doc to be accurate w.r.t. building llvmgcc4
llvm-svn: 29113
2006-07-11 20:47:00 +00:00
Chris Lattner b7e1ef54af Fix PR826, testcase here: Regression/Verifier/2006-07-11-StoreStruct.ll
llvm-svn: 29112
2006-07-11 20:29:49 +00:00
Chris Lattner 7a00b86720 Testcase for PR826
llvm-svn: 29111
2006-07-11 20:29:21 +00:00
Evan Cheng d5a086ab12 Emit inc / dec of registers as one byte instruction.
llvm-svn: 29110
2006-07-11 19:49:49 +00:00
Chris Lattner 4a48245919 Profile builds should always have debug info enabled.
llvm-svn: 29109
2006-07-11 18:33:50 +00:00
Chris Lattner 091b6ea847 Silence a warning produced in assertions-disabled mode
llvm-svn: 29108
2006-07-11 18:31:26 +00:00
Devang Patel d14fd43f4b Fix typo.
llvm-svn: 29107
2006-07-11 18:25:57 +00:00