Commit Graph

26425 Commits

Author SHA1 Message Date
Chris Lattner
9306fac571 Keep track of the start of MBB's in a separate map from instructions. This
is faster and is needed for future improvements.

llvm-svn: 30383
2006-09-15 03:57:23 +00:00
Evan Cheng
e9bbf85e5e Remove a unnecessary check.
llvm-svn: 30382
2006-09-14 23:55:02 +00:00
Chris Lattner
8b65094e0f Relax this check.
llvm-svn: 30381
2006-09-14 23:54:24 +00:00
Devang Patel
0d540a2f9a Undo previous check-in.
Reintroduce recursive assignDFSNumber().

llvm-svn: 30380
2006-09-14 21:43:24 +00:00
Chris Lattner
c3f56368db Fold (X & C1) | (Y & C2) -> (X|Y) & C3 when possible.
This implements CodeGen/X86/and-or-fold.ll

llvm-svn: 30379
2006-09-14 21:11:37 +00:00
Chris Lattner
6f105ed622 New testcase
llvm-svn: 30378
2006-09-14 21:10:06 +00:00
Chris Lattner
ce85ffa396 add a note
llvm-svn: 30377
2006-09-14 20:56:30 +00:00
Chris Lattner
dbe8078c76 Split rotate matching code out to its own function. Make it stronger, by
matching things like ((x >> c1) & c2) | ((x << c3) & c4) to (rot x, c5) & c6

llvm-svn: 30376
2006-09-14 20:50:57 +00:00
Anton Korobeynikov
24c070f50d Adding generated files for the last commit
llvm-svn: 30375
2006-09-14 18:25:26 +00:00
Anton Korobeynikov
6e19f80688 Adding dllimport, dllexport and external weak linkage types.
DLL* linkages got full (I hope) codegeneration support in C & both x86
assembler backends.
External weak linkage added for future use, we don't provide any
codegeneration, etc. support for it.

llvm-svn: 30374
2006-09-14 18:23:27 +00:00
Evan Cheng
571e7f730e Use getOffset() instead.
llvm-svn: 30327
2006-09-14 07:41:12 +00:00
Evan Cheng
3bd61a0be5 Use MachineConstantPoolEntry getOffset() and getType() accessors.
llvm-svn: 30326
2006-09-14 07:35:00 +00:00
Evan Cheng
489428e6f8 Add MachineConstantPoolEntry getOffset() accessor.
llvm-svn: 30325
2006-09-14 07:32:32 +00:00
Evan Cheng
b25fd42e43 The top bit is used to determine whether it's a MachineConstantPoolValue.
llvm-svn: 30324
2006-09-14 07:30:48 +00:00
Chris Lattner
31e8414b3f revert accidentally committed file
llvm-svn: 30323
2006-09-14 06:42:17 +00:00
Chris Lattner
2544818d6b Remove dead methods, add getNumBlockIDs() method
llvm-svn: 30322
2006-09-14 06:40:48 +00:00
Chris Lattner
7a1210a86c Use new config.h macro
llvm-svn: 30321
2006-09-14 06:21:59 +00:00
Reid Spencer
2a3ab75d50 Add a HAVE_MACH_MACH_H #define to detect the presence of the mach/mach.h
header file on Darwin.

llvm-svn: 30319
2006-09-14 06:17:21 +00:00
Chris Lattner
93e6f9d3b7 add a new (hidden) -disable-core-files option
llvm-svn: 30318
2006-09-14 06:17:09 +00:00
Chris Lattner
b233122a83 On Mac OS/X, make Process::PreventCoreFiles disable crash reporter for
the process in addition to disabling core file emission.  This speeds up
bugpoint on default-configured macs by several orders of magnitude.

llvm-svn: 30317
2006-09-14 06:01:41 +00:00
Evan Cheng
58d454a49e A MachineConstantPool may have mixed Constant* and MachineConstantPoolValue* values.
llvm-svn: 30316
2006-09-14 05:50:57 +00:00
Devang Patel
2d7d441483 Add comment.
llvm-svn: 30315
2006-09-14 05:49:10 +00:00
Evan Cheng
b68bfafe09 Mirrors ConstantPoolSDNode.
llvm-svn: 30314
2006-09-14 05:48:39 +00:00
Nick Lewycky
4c07b09c0e Document new --enable-valgrind option.
llvm-svn: 30313
2006-09-14 04:33:29 +00:00
Nick Lewycky
3c0bf01e9b Fix --enable-valgrind. Add room for the new arguments, and don't keep
a pointer to a temporary.

llvm-svn: 30312
2006-09-14 04:20:17 +00:00
Nick Lewycky
fcd43d78a2 Add --enable-valgrind option to run optimizations through valgrind to
pick up on memory errors.

llvm-svn: 30311
2006-09-14 03:49:54 +00:00
Devang Patel
d2db52f4ee GlobalValue with InternalLinkage may have operands with ExternalLinkage
type. Do not ignore these operands while finding external references.

llvm-svn: 30310
2006-09-14 01:35:13 +00:00
Devang Patel
2983c628cd Avoid recursion in assignDFSNumber(). Move def from ET-Forest.h
to Dominators.h

llvm-svn: 30309
2006-09-14 01:27:42 +00:00
Chris Lattner
0e9985d635 add note about switch lowering
llvm-svn: 30308
2006-09-13 23:37:16 +00:00
Chris Lattner
60207ce1f7 Second half of the fix for Transforms/Inline/inline_cleanup.ll
This folds unconditional branches that are often produced by code
specialization.

llvm-svn: 30307
2006-09-13 21:27:00 +00:00
Nick Lewycky
d8a64a4b2a Add some more consistency checks.
llvm-svn: 30305
2006-09-13 19:32:53 +00:00
Nick Lewycky
29d605880a Fix unionSets so that it can merge correctly.
llvm-svn: 30304
2006-09-13 19:24:01 +00:00
Chris Lattner
e55d70cedc Implement the first half of Transforms/Inline/inline_cleanup.ll
llvm-svn: 30303
2006-09-13 19:23:57 +00:00
Chris Lattner
abbd902669 new testcase
llvm-svn: 30302
2006-09-13 19:23:43 +00:00
Evan Cheng
e98acdbf59 Skip over first operand when determining REX prefix for two-address code.
llvm-svn: 30300
2006-09-13 19:07:28 +00:00
Nick Lewycky
315cc49646 Erase dead instructions.
llvm-svn: 30298
2006-09-13 18:55:37 +00:00
Chris Lattner
367d6e340e The sense of this branch was backwards
llvm-svn: 30296
2006-09-13 17:58:57 +00:00
Chris Lattner
5a00b32eec Turn X < 0 -> TEST X,X js
llvm-svn: 30294
2006-09-13 17:04:54 +00:00
Chris Lattner
d2b6dcd4bf The sense of this branch was inverted :(
llvm-svn: 30293
2006-09-13 16:56:12 +00:00
Chris Lattner
0b75dc90a7 Fix a ton of jit failures
llvm-svn: 30292
2006-09-13 16:21:10 +00:00
Rafael Espindola
1a3020bfcf add shifts to addressing mode 1
llvm-svn: 30291
2006-09-13 12:09:43 +00:00
Chris Lattner
fdf4c06dac If LSR went through a lot of trouble to put constants (e.g. the addr of a global
in a specific BB, don't undo this!).  This allows us to compile
CodeGen/X86/loop-hoist.ll into:

_foo:
        xorl %eax, %eax
***     movl L_Arr$non_lazy_ptr, %ecx
        movl 4(%esp), %edx
LBB1_1: #cond_true
        movl %eax, (%ecx,%eax,4)
        incl %eax
        cmpl %edx, %eax
        jne LBB1_1      #cond_true
LBB1_2: #return
        ret

instead of:

_foo:
        xorl %eax, %eax
        movl 4(%esp), %ecx
LBB1_1: #cond_true
***     movl L_Arr$non_lazy_ptr, %edx
        movl %eax, (%edx,%eax,4)
        incl %eax
        cmpl %ecx, %eax
        jne LBB1_1      #cond_true
LBB1_2: #return
        ret

This was noticed in 464.h264ref.  This doesn't usually affect PPC,
but strikes X86 all the time.

llvm-svn: 30290
2006-09-13 06:02:42 +00:00
Chris Lattner
d76c6beb06 new testcase
llvm-svn: 30289
2006-09-13 05:59:25 +00:00
Chris Lattner
89d7fe3917 Fix a regression in the 32-bit port from the 64-bit port landing.
We now compile CodeGen/X86/lea-2.ll into:

_test:
        movl 4(%esp), %eax
        movl 8(%esp), %ecx
        leal -5(%ecx,%eax,4), %eax
        ret

instead of:

_test:
        movl 4(%esp), %eax
        leal (,%eax,4), %eax
        addl 8(%esp), %eax
        addl $4294967291, %eax
        ret

llvm-svn: 30288
2006-09-13 04:45:25 +00:00
Chris Lattner
d250848118 New testcase
llvm-svn: 30287
2006-09-13 04:43:26 +00:00
Chris Lattner
fb0e19072c new note
llvm-svn: 30286
2006-09-13 04:19:50 +00:00
Chris Lattner
56e461c7d2 new note
llvm-svn: 30285
2006-09-13 03:54:54 +00:00
Chris Lattner
81566af673 Compile X << 1 (where X is a long-long) to:
addl %ecx, %ecx
        adcl %eax, %eax

instead of:

        movl %ecx, %edx
        addl %edx, %edx
        shrl $31, %ecx
        addl %eax, %eax
        orl %ecx, %eax

and to:

        addc r5, r5, r5
        adde r4, r4, r4

instead of:

        slwi r2,r9,1
        srwi r0,r11,31
        slwi r3,r11,1
        or r2,r0,r2

on PPC.

llvm-svn: 30284
2006-09-13 03:50:39 +00:00
Chris Lattner
806ef17e5b Compile X > -1 -> text X,X; js dest
This implements CodeGen/X86/jump_sign.ll.

llvm-svn: 30283
2006-09-13 03:22:10 +00:00
Chris Lattner
f37df66e09 new testcase
llvm-svn: 30282
2006-09-13 03:21:27 +00:00