oota-llvm.git
17 years agoAdd a new dense hash table implementation
Chris Lattner [Thu, 1 Feb 2007 07:49:59 +0000 (07:49 +0000)]
Add a new dense hash table implementation

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

17 years agoimprove comments, add an assertion
Chris Lattner [Thu, 1 Feb 2007 05:33:21 +0000 (05:33 +0000)]
improve comments, add an assertion

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

17 years agorename DenseMap to IndexedMap.
Chris Lattner [Thu, 1 Feb 2007 05:32:05 +0000 (05:32 +0000)]
rename DenseMap to IndexedMap.

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

17 years agorename DenseMap -> IndexedMap.
Chris Lattner [Thu, 1 Feb 2007 05:28:10 +0000 (05:28 +0000)]
rename DenseMap -> IndexedMap.

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

17 years agosilence some warnings when assertions are disabled.
Chris Lattner [Thu, 1 Feb 2007 04:59:37 +0000 (04:59 +0000)]
silence some warnings when assertions are disabled.

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

17 years agosilence warning
Chris Lattner [Thu, 1 Feb 2007 04:57:00 +0000 (04:57 +0000)]
silence warning

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

17 years agoFit in 80 columns
Chris Lattner [Thu, 1 Feb 2007 04:55:59 +0000 (04:55 +0000)]
Fit in 80 columns

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

17 years ago.set pc relative displacement bug: label should be moved down one instruction
Evan Cheng [Thu, 1 Feb 2007 03:04:49 +0000 (03:04 +0000)]
.set pc relative displacement bug: label should be moved down one instruction
to just before the add r1, pc:

Before:
        .set PCRELV0, (LJTI1_0_0-(LPCRELL0+4))
LPCRELL0:
        mov r1, #PCRELV0
        add r1, pc

Now:
        .set PCRELV0, (LJTI1_0_0-(LPCRELL0+4))
        mov r1, #PCRELV0
LPCRELL0:
        add r1, pc

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

17 years agoAdd a note.
Evan Cheng [Thu, 1 Feb 2007 02:46:20 +0000 (02:46 +0000)]
Add a note.

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

17 years agoAdd a test case.
Evan Cheng [Thu, 1 Feb 2007 02:27:24 +0000 (02:27 +0000)]
Add a test case.

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

17 years agoAlso set alignment of stack-based structs to 4 in thumb mode.
Evan Cheng [Thu, 1 Feb 2007 02:18:36 +0000 (02:18 +0000)]
Also set alignment of stack-based structs to 4 in thumb mode.

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

17 years agoAdded a thumb vararg test.
Evan Cheng [Thu, 1 Feb 2007 01:56:43 +0000 (01:56 +0000)]
Added a thumb vararg test.

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

17 years agoSpecial epilogue for vararg functions. We cannot do a pop to pc because
Evan Cheng [Thu, 1 Feb 2007 01:49:46 +0000 (01:49 +0000)]
Special epilogue for vararg functions. We cannot do a pop to pc because
there follows a sp increment for the va register save region. Instead issue
a separate pop to another register, increment sp, and then return:
        pop {r4, r5, r6, r7}
        pop {r3}
        add sp, #3 * 4
        bx r3

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

17 years agoAdd printVersion(). Linker can use it to print LLVM version number.
Devang Patel [Thu, 1 Feb 2007 01:46:06 +0000 (01:46 +0000)]
Add printVersion(). Linker can use it to print LLVM version number.

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

17 years agoAdd PrintVersionMessage() that tools can use to print version number
Devang Patel [Thu, 1 Feb 2007 01:43:37 +0000 (01:43 +0000)]
Add PrintVersionMessage() that tools can use to print version number
without exiting program.

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

17 years agoEmit a better assertion message for PR1133
Chris Lattner [Thu, 1 Feb 2007 01:21:12 +0000 (01:21 +0000)]
Emit a better assertion message for PR1133

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

17 years agoInclude Makefile.config before testing OS.
Devang Patel [Thu, 1 Feb 2007 01:18:57 +0000 (01:18 +0000)]
Include Makefile.config before testing OS.

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

17 years agoPessmistically assume the .align 2 before the first constpool entry adds
Evan Cheng [Thu, 1 Feb 2007 01:09:47 +0000 (01:09 +0000)]
Pessmistically assume the .align 2 before the first constpool entry adds
two bytes padding.

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

17 years agoPossible JT improvements.
Evan Cheng [Thu, 1 Feb 2007 01:07:48 +0000 (01:07 +0000)]
Possible JT improvements.

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

17 years agoFix CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll
Chris Lattner [Thu, 1 Feb 2007 00:39:08 +0000 (00:39 +0000)]
Fix CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll

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

17 years agonew testcase
Chris Lattner [Thu, 1 Feb 2007 00:38:56 +0000 (00:38 +0000)]
new testcase

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

17 years agoFix test case.
Evan Cheng [Wed, 31 Jan 2007 23:51:35 +0000 (23:51 +0000)]
Fix test case.

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

17 years agoDon't emit unnecessary .align directive.
Evan Cheng [Wed, 31 Jan 2007 23:39:39 +0000 (23:39 +0000)]
Don't emit unnecessary .align directive.

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

17 years agoHandle an interesting corner case: the constpool_entry being reference is two
Evan Cheng [Wed, 31 Jan 2007 23:35:18 +0000 (23:35 +0000)]
Handle an interesting corner case: the constpool_entry being reference is two
instructions away, i.e. its address is equal to PC.
        %r0 = tLDRpci <cp#0>
        bx
        CONSTPOOL_ENTRY 0 <cp#0>, 4

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

17 years agoDon't want to add FramePtr to callee save spill list twice.
Evan Cheng [Wed, 31 Jan 2007 23:17:29 +0000 (23:17 +0000)]
Don't want to add FramePtr to callee save spill list twice.

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

17 years agoFix build breakage by using correct arguments to getIndexedType in the
Reid Spencer [Wed, 31 Jan 2007 22:30:26 +0000 (22:30 +0000)]
Fix build breakage by using correct arguments to getIndexedType in the
GEP constructors.

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

17 years agoFix test cases.
Evan Cheng [Wed, 31 Jan 2007 22:27:07 +0000 (22:27 +0000)]
Fix test cases.

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

17 years agoDarwin ABI requires FP to point to stack slot of prev FP.
Evan Cheng [Wed, 31 Jan 2007 22:25:33 +0000 (22:25 +0000)]
Darwin ABI requires FP to point to stack slot of prev FP.

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

17 years agoAdd entry.
Evan Cheng [Wed, 31 Jan 2007 22:11:38 +0000 (22:11 +0000)]
Add entry.

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

17 years agoThumb add sp, #imm requires the immediate value be multiple of 4. For now,
Evan Cheng [Wed, 31 Jan 2007 22:08:40 +0000 (22:08 +0000)]
Thumb add sp, #imm requires the immediate value be multiple of 4. For now,
change preferred alignment of short, byte, bool to 4.

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

17 years agoUpdate comment.
Evan Cheng [Wed, 31 Jan 2007 22:06:44 +0000 (22:06 +0000)]
Update comment.

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

17 years agoPreview of the shift instructions becoming Binary Operators.
Reid Spencer [Wed, 31 Jan 2007 21:39:12 +0000 (21:39 +0000)]
Preview of the shift instructions becoming Binary Operators.

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

17 years agoDead comment.
Evan Cheng [Wed, 31 Jan 2007 21:31:25 +0000 (21:31 +0000)]
Dead comment.

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

17 years agoAdd some debug output.
Reid Spencer [Wed, 31 Jan 2007 21:27:38 +0000 (21:27 +0000)]
Add some debug output.

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

17 years agoThumb asm syntax does not want 's' suffix for flag setting opcodes.
Evan Cheng [Wed, 31 Jan 2007 20:12:31 +0000 (20:12 +0000)]
Thumb asm syntax does not want 's' suffix for flag setting opcodes.

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

17 years agoshutdown the app when done.
Chris Lattner [Wed, 31 Jan 2007 20:10:54 +0000 (20:10 +0000)]
shutdown the app when done.

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

17 years agoremove temporary vectors.
Chris Lattner [Wed, 31 Jan 2007 20:08:52 +0000 (20:08 +0000)]
remove temporary vectors.

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

17 years agoadd missing ctor
Chris Lattner [Wed, 31 Jan 2007 20:08:34 +0000 (20:08 +0000)]
add missing ctor

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

17 years agoeliminate temporary vectors
Chris Lattner [Wed, 31 Jan 2007 20:07:32 +0000 (20:07 +0000)]
eliminate temporary vectors

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

17 years agoeliminate temporary vectors
Chris Lattner [Wed, 31 Jan 2007 19:59:55 +0000 (19:59 +0000)]
eliminate temporary vectors

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

17 years agoWhen determining whether a pc relative branch / load displacement fits in the
Evan Cheng [Wed, 31 Jan 2007 19:57:44 +0000 (19:57 +0000)]
When determining whether a pc relative branch / load displacement fits in the
instruction field, adjust it for PC value (4 for thumb, 8 for arm).

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

17 years agoeliminate a temporary vector while parsing gep's from bc files.
Chris Lattner [Wed, 31 Jan 2007 19:56:15 +0000 (19:56 +0000)]
eliminate a temporary vector while parsing gep's from bc files.

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

17 years agoA relatively simple PPC optimization.
Chris Lattner [Wed, 31 Jan 2007 19:49:20 +0000 (19:49 +0000)]
A relatively simple PPC optimization.

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

17 years agoimplement the new GEP instruction ctors.
Chris Lattner [Wed, 31 Jan 2007 19:47:18 +0000 (19:47 +0000)]
implement the new GEP instruction ctors.

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

17 years agoSome comments.
Evan Cheng [Wed, 31 Jan 2007 18:29:27 +0000 (18:29 +0000)]
Some comments.

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

17 years agoConstPool island bug: watch out for cases where UserMI is the last MI of the BB.
Evan Cheng [Wed, 31 Jan 2007 18:19:07 +0000 (18:19 +0000)]
ConstPool island bug: watch out for cases where UserMI is the last MI of the BB.

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

17 years agoRevert another incorrectly applied chunk, which fixes InstCombine/vec_insert_to_shuff...
Chris Lattner [Wed, 31 Jan 2007 18:09:17 +0000 (18:09 +0000)]
Revert another incorrectly applied chunk, which fixes InstCombine/vec_insert_to_shuffle.ll

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

17 years agoFix a minor bug in my patch yesterday that broken ConstProp/bswap.ll
Chris Lattner [Wed, 31 Jan 2007 18:04:55 +0000 (18:04 +0000)]
Fix a minor bug in my patch yesterday that broken ConstProp/bswap.ll

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

17 years agoARM fix: Miscompilation when frame pointer can't be eliminated. Uninitialized frame...
Lauro Ramos Venancio [Wed, 31 Jan 2007 13:12:46 +0000 (13:12 +0000)]
ARM fix: Miscompilation when frame pointer can't be eliminated. Uninitialized frame pointer register is used.

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

17 years agoSpecify the right CC for comparison libcalls.
Evan Cheng [Wed, 31 Jan 2007 09:30:58 +0000 (09:30 +0000)]
Specify the right CC for comparison libcalls.

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

17 years agoAllow the target to override the ISD::CondCode that's to be used to test the
Evan Cheng [Wed, 31 Jan 2007 09:29:11 +0000 (09:29 +0000)]
Allow the target to override the ISD::CondCode that's to be used to test the
result of the comparison libcall against zero.

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

17 years agoAdded O_F32 and O_64 in addition to UO_F32 and UO_64 even though by
Evan Cheng [Wed, 31 Jan 2007 09:26:31 +0000 (09:26 +0000)]
Added O_F32 and O_64 in addition to UO_F32 and UO_64 even though by
default they call the same libgcc routine. The result of the calls are
"tested" differently.

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

17 years agoObserve -soft-float.
Evan Cheng [Wed, 31 Jan 2007 08:40:13 +0000 (08:40 +0000)]
Observe -soft-float.

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

17 years agominor cleanups. Fix off-by-one in accounting the number of nodes when the
Chris Lattner [Wed, 31 Jan 2007 06:04:41 +0000 (06:04 +0000)]
minor cleanups.  Fix off-by-one in accounting the number of nodes when the
table grows.

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

17 years agoshutdown at end of run
Chris Lattner [Wed, 31 Jan 2007 04:45:28 +0000 (04:45 +0000)]
shutdown at end of run

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

17 years agoregenerate
Chris Lattner [Wed, 31 Jan 2007 04:44:08 +0000 (04:44 +0000)]
regenerate

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

17 years agoeliminate a temporary vector
Chris Lattner [Wed, 31 Jan 2007 04:43:46 +0000 (04:43 +0000)]
eliminate a temporary vector

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

17 years agoelimiante a temporary vector
Chris Lattner [Wed, 31 Jan 2007 04:42:05 +0000 (04:42 +0000)]
elimiante a temporary vector

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

17 years agoeliminate temporary vectors
Chris Lattner [Wed, 31 Jan 2007 04:40:53 +0000 (04:40 +0000)]
eliminate temporary vectors

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

17 years agoRevise APIs for creating constantexpr GEPs to not require the use of vectors.
Chris Lattner [Wed, 31 Jan 2007 04:40:28 +0000 (04:40 +0000)]
Revise APIs for creating constantexpr GEPs to not require the use of vectors.
This allows us to eliminate many temporary vectors, and theirassociated malloc/free pairs.

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

17 years agoRevise APIs for creating constantexpr GEPs to not require the use of
Chris Lattner [Wed, 31 Jan 2007 04:39:29 +0000 (04:39 +0000)]
Revise APIs for creating constantexpr GEPs to not require the use of
vectors.  This allows us to eliminate many temporary vectors, and their
associated malloc/free pairs.

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

17 years ago- Added Thumb constpool island support.
Evan Cheng [Wed, 31 Jan 2007 02:22:22 +0000 (02:22 +0000)]
- Added Thumb constpool island support.
- Islands are inserted right after the user MI since thumb LDR cannot encode
  negative offset.

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

17 years agoFix version information for new instructions.
Reid Spencer [Wed, 31 Jan 2007 01:18:59 +0000 (01:18 +0000)]
Fix version information for new instructions.

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

17 years agoMove symbolic constant folding code to libanalysis.
Chris Lattner [Wed, 31 Jan 2007 00:53:10 +0000 (00:53 +0000)]
Move symbolic constant folding code to libanalysis.

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

17 years agoMove some symbolic constant folding code out of instcombine into a place
Chris Lattner [Wed, 31 Jan 2007 00:51:48 +0000 (00:51 +0000)]
Move some symbolic constant folding code out of instcombine into a place
it can be used by multiple clients.  This specifically allows the inliner
to constant fold symbolically.

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

17 years agoCorrect the instruction op codes to meet current head changes.
Reid Spencer [Wed, 31 Jan 2007 00:38:46 +0000 (00:38 +0000)]
Correct the instruction op codes to meet current head changes.

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

17 years agoExcise documentation about Compaction Tables.
Reid Spencer [Wed, 31 Jan 2007 00:26:08 +0000 (00:26 +0000)]
Excise documentation about Compaction Tables.

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

17 years agoThe local "ConstantFold" method is now just a watered down version of
Chris Lattner [Tue, 30 Jan 2007 23:52:44 +0000 (23:52 +0000)]
The local "ConstantFold" method is now just a watered down version of
ConstantFoldInstOperands.  Switch to ConstantFoldInstOperands and remove
ConstantFold.

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

17 years agoMake this a *real* header:
Chris Lattner [Tue, 30 Jan 2007 23:47:35 +0000 (23:47 +0000)]
Make this a *real* header:
  1. Remove using namespace llvm;
  2. Remove unneeded #includes.
  3. Add #include guard.

Also add prototypes for new code moved from transformutils to libanalysis.

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

17 years agomove constant folding code out of Utils/Local into libanalysis
Chris Lattner [Tue, 30 Jan 2007 23:46:43 +0000 (23:46 +0000)]
move constant folding code out of Utils/Local into libanalysis

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

17 years agoAdjust #includes to match movement of constant folding code from transformutils to...
Chris Lattner [Tue, 30 Jan 2007 23:46:24 +0000 (23:46 +0000)]
Adjust #includes to match movement of constant folding code from transformutils to libanalysis.

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

17 years agomove a bunch of constant folding code f rom Transforms/Utils/Local.cpp into
Chris Lattner [Tue, 30 Jan 2007 23:45:45 +0000 (23:45 +0000)]
move a bunch of constant folding code f rom Transforms/Utils/Local.cpp into
libanalysis/ConstantFolding.cpp.

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

17 years agoremove now-dead code.
Chris Lattner [Tue, 30 Jan 2007 23:29:47 +0000 (23:29 +0000)]
remove now-dead code.

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

17 years agothe inliner pass now passes targetdata down through the inliner api's
Chris Lattner [Tue, 30 Jan 2007 23:28:39 +0000 (23:28 +0000)]
the inliner pass now passes targetdata down through the inliner api's

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

17 years agoThe inliner/cloner can now optionally take TargetData info, which can be
Chris Lattner [Tue, 30 Jan 2007 23:22:39 +0000 (23:22 +0000)]
The inliner/cloner can now optionally take TargetData info, which can be
used by constant folding.

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

17 years agoreformat comment
Chris Lattner [Tue, 30 Jan 2007 23:16:22 +0000 (23:16 +0000)]
reformat comment

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

17 years agopass TD to constant folding apis
Chris Lattner [Tue, 30 Jan 2007 23:16:15 +0000 (23:16 +0000)]
pass TD to constant folding apis

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

17 years agoadjust to constant folding api changes.
Chris Lattner [Tue, 30 Jan 2007 23:15:43 +0000 (23:15 +0000)]
adjust to constant folding api changes.

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

17 years agouse smallvector instead of vector to make constant folding a bit more efficient
Chris Lattner [Tue, 30 Jan 2007 23:15:19 +0000 (23:15 +0000)]
use smallvector instead of vector to make constant folding a bit more efficient

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

17 years agoadjust to api change
Chris Lattner [Tue, 30 Jan 2007 23:14:52 +0000 (23:14 +0000)]
adjust to api change

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

17 years agoChange constant folding APIs to take an optional TargetData, and change
Chris Lattner [Tue, 30 Jan 2007 23:13:49 +0000 (23:13 +0000)]
Change constant folding APIs to take an optional TargetData, and change
ConstantFoldInstOperands/ConstantFoldCall to take a pointer to an array
of operands + size, instead of an std::vector.

In some cases, switch to using a SmallVector instead of a vector.
This allows us to get rid of some special case gross code that was there
to avoid the cost of constructing a vector.

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

17 years agoChange constant folding APIs to take an optional TargetData, and change
Chris Lattner [Tue, 30 Jan 2007 23:12:47 +0000 (23:12 +0000)]
Change constant folding APIs to take an optional TargetData, and change
ConstantFoldInstOperands/ConstantFoldCall to take a pointer to an array
of operands + size, instead of an std::vector.

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

17 years agoCombine two tests.
Evan Cheng [Tue, 30 Jan 2007 23:06:22 +0000 (23:06 +0000)]
Combine two tests.

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

17 years agoDuring PEI, if the immediate value of sp + offset is too large (i.e. something
Evan Cheng [Tue, 30 Jan 2007 23:01:46 +0000 (23:01 +0000)]
During PEI, if the immediate value of sp + offset is too large (i.e. something
that would require > 3 instructions to materialize), load the immediate from a
constpool entry.

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

17 years agoremove some bits that are not yet meant to land.
Chris Lattner [Tue, 30 Jan 2007 22:50:32 +0000 (22:50 +0000)]
remove some bits that are not yet meant to land.

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

17 years agoSymbolically evaluate constant expressions like &A[123] - &A[4].f.
Chris Lattner [Tue, 30 Jan 2007 22:32:46 +0000 (22:32 +0000)]
Symbolically evaluate constant expressions like &A[123] - &A[4].f.

This occurs in C++ code like:

#include <iostream>
#include <iterator>
int a[] = { 1, 2, 3, 4, 5 };
int main() {
  using namespace std;
  copy(a, a + sizeof(a)/sizeof(a[0]), ostream_iterator<int>(cout, "\n"));
  return 0;
}

Before we would decide the loop trip count is:
sdiv (i32 sub (i32 ptrtoint (i32* getelementptr ([5 x i32]* @a, i32 0, i32 5) to i32), i32 ptrtoint ([5 x i32]* @a to i32)), i32 4)

Now we decide it is "5".  Amazing.

This code will need to be refactored, but I'm doing that as a separate
commit.

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

17 years ago- Fix codegen for pc relative constant (e.g. JT) in thumb mode:
Evan Cheng [Tue, 30 Jan 2007 20:37:08 +0000 (20:37 +0000)]
- Fix codegen for pc relative constant (e.g. JT) in thumb mode:
        .set PCRELV0, (LJTI1_0_0-(LPCRELL0+4))
LPCRELL0:
        add r1, pc, #PCRELV0
This is not legal since add r1, pc, #c requires the constant be a multiple of 4.
Do the following instead:
        .set PCRELV0, (LJTI1_0_0-(LPCRELL0+4))
LPCRELL0:
        mov r1, #PCRELV0
        add r1, pc

- In thumb mode, it's not possible to use .set generate a pc relative stub
  address. The stub is ARM code which is in a different section from the thumb
  code. Load the value from a constpool instead.
- Some asm printing clean up.

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

17 years agoFor PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
Reid Spencer [Tue, 30 Jan 2007 20:08:39 +0000 (20:08 +0000)]
For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
confusion with external linkage types.

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

17 years agoCompaction tables no longer supported, remove its block ID.
Reid Spencer [Tue, 30 Jan 2007 19:37:26 +0000 (19:37 +0000)]
Compaction tables no longer supported, remove its block ID.

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

17 years agoBye, Bye Compaction Tables. The benefit compaction tables provides doesn't
Reid Spencer [Tue, 30 Jan 2007 19:36:46 +0000 (19:36 +0000)]
Bye, Bye Compaction Tables. The benefit compaction tables provides doesn't
outweight its computational costs. This patch removes all compaction
table handling from the bcreader and bcwriter. For the record, here's the
difference betweeen having and not having compaction tables for some tests:

Test             With       Without   Size Chg
Olden/mst       5,602         5,598      +0.1%
viterbi        18,026        17,795      +1.3%
obsequi       162,133       166,663      -2.8%
burg          224,090       228,148      -1.8%
kimwitu++   4,933,263     5,121,159      -3.8%
176.gcc     8,470,424     9,141,539      -7.3%

It seems that it is more beneficial to larger files, but even on the largest
test case we have (176.gcc) it only amounts ot an I/O saving of 7.3%.

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

17 years agoFor PR411:
Reid Spencer [Tue, 30 Jan 2007 16:16:01 +0000 (16:16 +0000)]
For PR411:
Update these tests to not use the same name even though the type of the
value differs. After PR411 hits, type planes will be gone and it will be
illegal for a name to be used twice, regardless of type.

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

17 years agoAdd a gxxcmd variable for the g++ command line used to build llvm.
Reid Spencer [Tue, 30 Jan 2007 16:06:55 +0000 (16:06 +0000)]
Add a gxxcmd variable for the g++ command line used to build llvm.

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

17 years agoCopy and paste bug.
Evan Cheng [Tue, 30 Jan 2007 08:22:33 +0000 (08:22 +0000)]
Copy and paste bug.

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

17 years agoDarwin -static should codegen static ctors / dtors to .constructor / .destructor...
Evan Cheng [Tue, 30 Jan 2007 08:04:53 +0000 (08:04 +0000)]
Darwin -static should codegen static ctors / dtors to .constructor / .destructor sections.

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

17 years agoMisseed thumb jumptable branch.
Evan Cheng [Tue, 30 Jan 2007 08:03:06 +0000 (08:03 +0000)]
Misseed thumb jumptable branch.

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

17 years agoMake the input legal.
Reid Spencer [Tue, 30 Jan 2007 06:32:25 +0000 (06:32 +0000)]
Make the input legal.

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

17 years agoAdd / merge tests.
Evan Cheng [Tue, 30 Jan 2007 03:06:19 +0000 (03:06 +0000)]
Add / merge tests.

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

17 years agoIn thumb mode, round up stack frame size to multiple of 4 since add/sub
Evan Cheng [Tue, 30 Jan 2007 02:57:02 +0000 (02:57 +0000)]
In thumb mode, round up stack frame size to multiple of 4 since add/sub
sp, imm instructions implicitly multiply the offset by 4.

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

17 years agoThumb eliminateFrameIndex fixes.
Evan Cheng [Tue, 30 Jan 2007 02:36:01 +0000 (02:36 +0000)]
Thumb eliminateFrameIndex fixes.

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

17 years agoChange the operand orders to t_addrmode_s* to make it easier to morph
Evan Cheng [Tue, 30 Jan 2007 02:35:32 +0000 (02:35 +0000)]
Change the operand orders to t_addrmode_s* to make it easier to morph
instructions that use these address modes to instructions that use
t_addrmode_sp.

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