Chris Lattner
3117d33f74
Add an ugly note.
...
llvm-svn: 50029
2008-04-21 04:46:30 +00:00
Chris Lattner
1554876e9d
Add jump threading to liblto.
...
llvm-svn: 50028
2008-04-21 04:31:40 +00:00
Chris Lattner
8d8e939418
run the jump threading pass in llvm-ld also
...
llvm-svn: 50027
2008-04-21 04:28:40 +00:00
Chris Lattner
c9547a13e5
enable jump threading pass by default. This causes no miscompilations
...
and can significantly shrinkify some code, particularly from C++ land.
llvm-svn: 50025
2008-04-21 04:22:09 +00:00
Chris Lattner
26468c09af
fix a bug introduced by Nicholas' "unwinds to" stuff: we
...
lost newlines between blocks.
llvm-svn: 50024
2008-04-21 04:20:33 +00:00
Chris Lattner
ca82082080
don't assume that the argument passed to fprintf("%s" is a string. This
...
fixes a crash in opt on 433.milc.
llvm-svn: 50023
2008-04-21 03:18:33 +00:00
Chris Lattner
9a21fbcf81
Use the new SplitBlockPredecessors to implement a todo.
...
llvm-svn: 50022
2008-04-21 02:57:57 +00:00
Chris Lattner
57e11a167d
Move SplitBlockPredecessors out of loopsimplify into BasicBlockUtils.h
...
as a global helper function. At the same type, switch it from taking
a vector of predecessors to an arbitrary sequential input. This allows
us to switch LoopSimplify to use a SmallVector for various temporary
vectors that it passed into SplitBlockPredecessors.
llvm-svn: 50020
2008-04-21 01:28:02 +00:00
Chris Lattner
ba4567c335
Move domtree/frontier updating earlier, allowing us to use it to update phi
...
nodes, removing a hack.
llvm-svn: 50019
2008-04-21 01:05:08 +00:00
Chris Lattner
53fa4554be
Factor dominator tree and frontier updating into SplitBlockPredecessors
...
instead of doing it after every call.
llvm-svn: 50018
2008-04-21 00:54:38 +00:00
Chris Lattner
34894abd7f
fit some more code in 80 cols.
...
llvm-svn: 50016
2008-04-21 00:25:49 +00:00
Chris Lattner
7da61d5766
simplify code, fit in 80 cols.
...
llvm-svn: 50015
2008-04-21 00:23:14 +00:00
Chris Lattner
45b3ace5a3
fit in 80 cols
...
llvm-svn: 50014
2008-04-21 00:19:16 +00:00
Nicolas Geoffray
aaa764cf3a
Be pessimistic in computing the buffer size when aligning.
...
llvm-svn: 50008
2008-04-20 23:39:44 +00:00
Nicolas Geoffray
036fb2bebf
Don't forget to update the current operand when getting the size of an instruction.
...
llvm-svn: 50007
2008-04-20 23:36:47 +00:00
Chris Lattner
56fbe56c25
finish the first cut of a jump threading pass implementation.
...
llvm-svn: 50006
2008-04-20 22:39:42 +00:00
Chris Lattner
4037996a0c
replace a slow and verbose version of Instruction::isUsedOutsideOfBlock with
...
a call to Instruction::isUsedOutsideOfBlock.
llvm-svn: 50005
2008-04-20 22:18:22 +00:00
Chris Lattner
368e2b28bf
add a handy helper method to instruction, useful for determining
...
whether it is used outside of some block. This can be used to see
if there are any non-local references, for example.
llvm-svn: 50004
2008-04-20 22:11:30 +00:00
Chris Lattner
c714a8cee8
we can only thread blocks when there is a pred we can determine the succ of.
...
llvm-svn: 50003
2008-04-20 21:18:09 +00:00
Chris Lattner
4fcfb808fb
improve comments, infrastructure, and add some validity checks for threading.
...
Add a cost function.
llvm-svn: 50002
2008-04-20 21:13:06 +00:00
Chris Lattner
c8c74f39db
Add a new Jump Threading pass, which will handle cases
...
such as those in PR2235. Right now the pass is not very
effective. :)
llvm-svn: 50000
2008-04-20 20:35:01 +00:00
Chris Lattner
75df16a5b0
hopefully resolve PR2240
...
llvm-svn: 49999
2008-04-20 19:59:12 +00:00
Chris Lattner
2bed045e5e
rearrange some code, simplify handling of shifts.
...
llvm-svn: 49995
2008-04-20 18:24:14 +00:00
Dale Johannesen
15969b664d
Check we aren't trying to convert PPC long double.
...
This fixes the testsuite failure on ppcf128-4.ll.
llvm-svn: 49994
2008-04-20 18:23:46 +00:00
Nicolas Geoffray
c80229e1c7
Cosmetic changes, as suggested by Evan. No functionality changes.
...
llvm-svn: 49993
2008-04-20 17:44:19 +00:00
Dale Johannesen
3453a89a31
(re)fix handling of UGT. Pointed out by Nick Lewycky.
...
llvm-svn: 49991
2008-04-20 16:58:57 +00:00
Torok Edwin
e038c595c1
g++-4.3 build-fix: CHAR_BIT requires <climits>.
...
llvm-svn: 49989
2008-04-20 08:33:11 +00:00
Nicolas Geoffray
5fdce98ebd
Do not hold the JIT lock when materializing a function and verify if the
...
function has already been codegen'd. This is required by the Java class loading
mechanism which executes Java code when materializing a function.
llvm-svn: 49988
2008-04-20 08:33:02 +00:00
Chris Lattner
2c5b96fbee
A better fix for my previous patch, MOVZQI2PQIrr just requires SSE2.
...
llvm-svn: 49986
2008-04-20 05:52:46 +00:00
Chris Lattner
8503e2d236
Not all x86-64 machines have sse3 apparently.
...
llvm-svn: 49985
2008-04-20 05:47:56 +00:00
Dale Johannesen
675fca3ee1
Check that APFloat::convert is not trying to target
...
ppc long double, which doesn't work.
This may break some stuff temporarily, but I want to
avoid the propagation of code that assumes this works.
llvm-svn: 49983
2008-04-20 01:34:03 +00:00
Chris Lattner
33e206ef89
regenerate
...
llvm-svn: 49978
2008-04-20 00:41:19 +00:00
Chris Lattner
f390d62b7f
Switch to using Simplified ConstantFP::get API.
...
llvm-svn: 49977
2008-04-20 00:41:09 +00:00
Chris Lattner
0cda383725
Use simplified ConstantFP::get method, fix a bug handling frem x, 0 with long doubles.
...
llvm-svn: 49976
2008-04-20 00:26:06 +00:00
Chris Lattner
5b6f941e70
free(null) -> noop
...
llvm-svn: 49972
2008-04-19 22:41:32 +00:00
Chris Lattner
a9d8d647ca
rename *.llx -> *.ll, last batch.
...
llvm-svn: 49971
2008-04-19 22:32:52 +00:00
Chris Lattner
c310b1f1f3
rename *.llx -> *.ll
...
llvm-svn: 49970
2008-04-19 22:29:10 +00:00
Chris Lattner
63bd1df323
rename *.llx -> *.ll
...
llvm-svn: 49969
2008-04-19 22:26:29 +00:00
Gabor Greif
441be4d65b
merge of 49966 from branches/ggreif/use-diet to trunk. these are already active API changes
...
llvm-svn: 49968
2008-04-19 22:25:09 +00:00
Chris Lattner
8cde1e71f0
Implement PR2206.
...
llvm-svn: 49967
2008-04-19 22:17:26 +00:00
Chris Lattner
1303e72c66
refactor handling of symbolic constant folding, picking up
...
a few new cases( see Integer/a1.ll), but not anything that
would happen in practice.
llvm-svn: 49965
2008-04-19 21:58:19 +00:00
Chris Lattner
57bd4076b5
indentation fix.
...
llvm-svn: 49964
2008-04-19 21:13:00 +00:00
Chris Lattner
2f237756c5
Some clarifications suggested by Jon Sargeant
...
llvm-svn: 49963
2008-04-19 21:01:16 +00:00
Chris Lattner
d299f7b8cf
Allow argpromote to promote struct arguments with a specified number
...
of elements. Patch by Matthijs Kooijman!
llvm-svn: 49962
2008-04-19 19:50:01 +00:00
Evan Cheng
f583b3feb6
64-bit atomic operations.
...
llvm-svn: 49949
2008-04-19 02:30:38 +00:00
Evan Cheng
1c54ebbe2f
Also LXCHG64 -> XCHG64rm.
...
llvm-svn: 49948
2008-04-19 02:05:42 +00:00
Evan Cheng
09e77f6b83
PPC32 atomic operations.
...
llvm-svn: 49947
2008-04-19 01:30:48 +00:00
Evan Cheng
b1d240f973
xchg which references a memory operand does not need to lock prefix. Atomicity is guaranteed.
...
llvm-svn: 49946
2008-04-19 01:20:30 +00:00
Dan Gohman
ac2fac937c
Teach llvm-as to accept function types with multiple return types.
...
llvm-svn: 49945
2008-04-19 00:24:39 +00:00
Dale Johannesen
c1b7e0b477
Fix a scalar evolution bug. Reversing everything
...
does not work because of 0; 2>0 but -2U is also >0.
llvm-svn: 49928
2008-04-18 21:38:31 +00:00