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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Evan Cheng [Tue, 30 Jan 2007 01:18:38 +0000 (01:18 +0000)]
- In thumb mode, if size of MachineFunction is >= 2048, force LR to be
spilled (if it is not already).
- If LR is spilled, use BL to implement far jumps. LR is not used as a GPR
in thumb mode so it can be clobbered if it is properly spilled / restored
in prologue / epilogue.
- If LR is force spilled but no far jump has been emitted, try undo'ing the
spill by:
push lr -> delete
pop pc -> bx lr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33650
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 30 Jan 2007 01:13:37 +0000 (01:13 +0000)]
Use BL to implement Thumb far jumps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33649
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 29 Jan 2007 23:55:20 +0000 (23:55 +0000)]
test that the 'ir' constraint works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33646
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 29 Jan 2007 23:45:17 +0000 (23:45 +0000)]
Factor GetInstSize() out of constpool island pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33644
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 29 Jan 2007 23:45:14 +0000 (23:45 +0000)]
add initial support for handling inline asms with multiple constraints.
This doesn't do the "right thing" but will probably work in most cases.
This implements CodeGen/PowerPC/2007-01-29-lbrx-asm.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33643
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 29 Jan 2007 23:45:03 +0000 (23:45 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33642
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 29 Jan 2007 23:40:33 +0000 (23:40 +0000)]
Out of line function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33641
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 29 Jan 2007 23:29:54 +0000 (23:29 +0000)]
Use StartPassTimer() and StopPassManager()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33640
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 29 Jan 2007 23:20:22 +0000 (23:20 +0000)]
Only gather frame info if debug or eh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33639
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 29 Jan 2007 23:10:37 +0000 (23:10 +0000)]
- Undo previous check-in (i.e. Do not export TimingInfo class through
PassManagers.h).
- Add StopPassTimer() and StartPassTimer() to expose TimingInfo to
CallGraphPassManager
- Use these two APIs in CalLgraphPassManager to measure timings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33638
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 29 Jan 2007 22:58:52 +0000 (22:58 +0000)]
Finish off bug 680, allowing targets to custom lower frame and return
address nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33636
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 29 Jan 2007 22:57:48 +0000 (22:57 +0000)]
We'd still like to register allocate r2 on darwin before the callee-save
regs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33635
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 29 Jan 2007 22:40:03 +0000 (22:40 +0000)]
rename flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33634
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 29 Jan 2007 22:23:02 +0000 (22:23 +0000)]
Comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33633
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 29 Jan 2007 22:22:24 +0000 (22:22 +0000)]
Remember if LR register has been spilled in this function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33632
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 29 Jan 2007 21:28:01 +0000 (21:28 +0000)]
Save all registers by default, as they can be used to pass parameters
for "inreg" calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33631
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 29 Jan 2007 21:21:22 +0000 (21:21 +0000)]
Update some of the llvm in the readme
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33630
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Mon, 29 Jan 2007 21:20:42 +0000 (21:20 +0000)]
Properly support cstrings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33629
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 29 Jan 2007 20:48:32 +0000 (20:48 +0000)]
Flag to control exception handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33628
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 29 Jan 2007 20:08:03 +0000 (20:08 +0000)]
Measure timings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33627
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 29 Jan 2007 20:06:26 +0000 (20:06 +0000)]
Move TimingInfo into PassManagers.h so that other libs can use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33626
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 29 Jan 2007 20:01:41 +0000 (20:01 +0000)]
Disable zero landing pads for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33625
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 Jan 2007 19:08:46 +0000 (19:08 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33624
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 Jan 2007 19:07:18 +0000 (19:07 +0000)]
For PR1142:
When an unresolved definition is found, check to see if it is only unresolved
because the csretcc was upgraded to the sret param attribute. Such changes
change the function type and lead to unresolved definitions. In such cases, just
cast the function to the type expected by the CallInst. That is, cast to the
version of the function that has the sret param attribute.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33623
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 29 Jan 2007 18:51:14 +0000 (18:51 +0000)]
Landing pad-less eh for PPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33622
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 29 Jan 2007 18:45:08 +0000 (18:45 +0000)]
Update project
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33621
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 Jan 2007 17:55:50 +0000 (17:55 +0000)]
Remove tabs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33620
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 Jan 2007 17:51:02 +0000 (17:51 +0000)]
Implement use of new IntrinsicLowering interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33619
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 Jan 2007 17:42:06 +0000 (17:42 +0000)]
Use TargetData to obtain the correct size of the "size_t" argument for
functions like memcpy, memmove and memset. Ensure only one prototype is
used for these functions and that it matches the system definition by
using the appropriate type for the size argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33618
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 Jan 2007 17:39:50 +0000 (17:39 +0000)]
IntrinsicLowering now requires TargetData.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33617
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 29 Jan 2007 15:09:35 +0000 (15:09 +0000)]
Update project.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33616
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 Jan 2007 05:41:34 +0000 (05:41 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33615
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 Jan 2007 05:41:09 +0000 (05:41 +0000)]
Upgrade old csret calling convention into sret parameter attribute.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33614
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 29 Jan 2007 05:40:02 +0000 (05:40 +0000)]
Update this test case to look for sret parameter attribute not csret cc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33613
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 29 Jan 2007 02:56:54 +0000 (02:56 +0000)]
Simplify names of lattice values. SGTUNE becomes SGT, for example.
Fix initializeConstant, now initializeInt. Fixes major performance
bottleneck.
X == Y || X->DominatedBy(Y) is redundant. Remove the X == Y part.
Fix crasher in makeEqual where getOrInsertNode would add a new constant,
producing an NE relationship between the two members we're trying to make
equal. This now allows us to mark more BBs as unreachable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33612
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 29 Jan 2007 02:18:13 +0000 (02:18 +0000)]
Read from the right place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33611
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 29 Jan 2007 00:21:34 +0000 (00:21 +0000)]
Fix PR1139
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33610
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 29 Jan 2007 00:09:00 +0000 (00:09 +0000)]
Make doxygen happy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33609
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 28 Jan 2007 22:28:00 +0000 (22:28 +0000)]
For PR1138:
Force memcpy to be the 32-bit variant. Since this is only used with
CBE and lli which both target 32-bit machines, this should be okay.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33608
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 28 Jan 2007 22:26:42 +0000 (22:26 +0000)]
Adjust a comment to reflect reality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33607
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 28 Jan 2007 18:01:49 +0000 (18:01 +0000)]
Arguments are counting from 1. not from 0. Maybe we should change
numbering somehow? E.g. make return argument the last?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33606
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 28 Jan 2007 16:04:40 +0000 (16:04 +0000)]
More cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33605
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 28 Jan 2007 15:51:15 +0000 (15:51 +0000)]
Drop CSRET from here too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33604
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 28 Jan 2007 15:39:16 +0000 (15:39 +0000)]
Fix compile error "jump to case label crosses initialization".
What compiler are people using that accepts this code?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33603
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 28 Jan 2007 15:27:21 +0000 (15:27 +0000)]
Grammar fix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33602
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 28 Jan 2007 15:25:24 +0000 (15:25 +0000)]
Merge error at my side. Fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33601
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 28 Jan 2007 14:30:45 +0000 (14:30 +0000)]
Document 'inreg' & 'sret'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33600
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 28 Jan 2007 13:37:39 +0000 (13:37 +0000)]
Regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33599
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 28 Jan 2007 13:36:18 +0000 (13:36 +0000)]
Drop CSRET CC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33598
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 28 Jan 2007 13:31:35 +0000 (13:31 +0000)]
Propagate changes from my local tree. This patch includes:
1. New parameter attribute called 'inreg'. It has meaning "place this
parameter in registers, if possible". This is some generalization of
gcc's regparm(n) attribute. It's currently used only in X86-32 backend.
2. Completely rewritten CC handling/lowering code inside X86 backend.
Merged stdcall + c CCs and fastcall + fast CC.
3. Dropped CSRET CC. We cannot add struct return variant for each
target-specific CC (e.g. stdcall + csretcc and so on).
4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in
on first attribute has meaning 'This is hidden pointer to structure
return. Handle it gently'.
5. Fixed small bug in llvm-extract + add new feature to
FunctionExtraction pass, which relinks all internal-linkaged callees
from deleted function to external linkage. This will allow further
linking everything together.
NOTEs: 1. Documentation will be updated soon.
2. llvm-upgrade should be improved to translate csret => sret.
Before this, there will be some unexpected test fails.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33597
91177308-0d34-0410-b5e6-
96231b3b80d8