Chris Lattner
17550c456c
Use the target triple to pick this target.
...
llvm-svn: 18830
2004-12-12 17:40:28 +00:00
Chris Lattner
1adea147ba
Get rid of subbullets for all of the "known problems" section. None of the
...
other sections have subbullets, and it make the TOC look like the whole
document is known problems!
llvm-svn: 18829
2004-12-12 17:20:23 +00:00
Brian Gaeke
23b2bc54b0
Complete the list of MultiSource failures.
...
llvm-svn: 18826
2004-12-12 08:22:11 +00:00
Chris Lattner
b92fd6006c
Do not internalize a module if -link-as-library is passed.
...
llvm-svn: 18825
2004-12-12 07:53:51 +00:00
Brian Gaeke
ed9346820d
hbd should be working now.
...
llvm-svn: 18824
2004-12-12 07:42:59 +00:00
Brian Gaeke
27358a44d1
Finally enable the setcc-branch folding code.
...
Also, fix a bug where ubyte 255 would sometimes be output as -1. This
was afflicting hbd.
llvm-svn: 18823
2004-12-12 07:42:58 +00:00
Brian Gaeke
e5351ad5f0
Add (currently disabled) code for canFoldSetCC
...
llvm-svn: 18820
2004-12-12 06:22:30 +00:00
Chris Lattner
1cbd5be7a1
Though the previous xform applies to literally dozens (hundreds?) of variables
...
in SPEC, the subsequent optimziations that we are after don't play with
with FP values, so disable this xform for them. Really we just don't want
stuff like:
double G; (always 0 or 412312.312)
= G;
turning into:
bool G_b;
= G_b ? 412312.312 : 0;
We'd rather just do the load.
-Chris
llvm-svn: 18819
2004-12-12 06:03:06 +00:00
Brian Gaeke
aa40b7d080
Add stubs for setcc-branch folding support.
...
llvm-svn: 18818
2004-12-12 06:01:26 +00:00
Chris Lattner
40e4cec9ee
If a variable can only hold two values, and is not already a bool, shrink it
...
down to actually BE a bool. This allows simple value range propagation
stuff work harder, deleting comparisons in bzip2 in some hot loops.
This implements GlobalOpt/integer-bool.ll, which is the essence of the
loop condition distilled into a testcase.
llvm-svn: 18817
2004-12-12 05:53:50 +00:00
Chris Lattner
17fbc80f31
New testcase. Shrinking the variable to a bool allows instcombine to delete
...
the condition.
llvm-svn: 18816
2004-12-12 05:52:12 +00:00
Chris Lattner
cbc0161d1f
If one side of and/or is known to be 0/-1, it doesn't matter
...
if the other side is overdefined.
This allows us to fold conditions like: if (X < Y || Y > Z) in some cases.
llvm-svn: 18807
2004-12-11 23:15:19 +00:00
Chris Lattner
2c14b32e2b
New testcase. If one side of and/or is known to be 0/-1, it doesn't matter
...
if the other side is overdefined.
llvm-svn: 18806
2004-12-11 23:14:40 +00:00
Brian Gaeke
25ac83565e
Print llvm code one function at a time.
...
llvm-svn: 18805
2004-12-11 22:17:07 +00:00
Chris Lattner
8d0b1b2a82
Check in the file I forgot last night, to solve all of the crashes in every
...
test in the suite. :(
llvm-svn: 18804
2004-12-11 22:10:29 +00:00
Brian Gaeke
72daaa46eb
JIT should print LLVM each function before selecting instructions for it.
...
llvm-svn: 18803
2004-12-11 18:41:09 +00:00
Reid Spencer
5625dec232
Rename Path::get -> Path::toString
...
llvm-svn: 18802
2004-12-11 17:37:01 +00:00
Chris Lattner
cc6037f8e6
Update test
...
llvm-svn: 18801
2004-12-11 17:13:19 +00:00
Chris Lattner
263b0a1669
Only cound if we actually made a change.
...
llvm-svn: 18800
2004-12-11 17:00:14 +00:00
Chris Lattner
ffefea0772
The split bb is really the exit of the old function
...
llvm-svn: 18799
2004-12-11 16:59:54 +00:00
Reid Spencer
8f72ce0fd2
A little cleanup on this file.
...
llvm-svn: 18798
2004-12-11 07:16:54 +00:00
Chris Lattner
7bf2e54dc2
New feature
...
llvm-svn: 18797
2004-12-11 06:10:52 +00:00
Chris Lattner
2f687fd9d6
Two bug fixes:
...
1. Actually increment the Statistic for the GV elim optzn
2. When resolving undef branches, only resolve branches in executable blocks,
avoiding marking a bunch of completely dead blocks live. This has a big
impact on the quality of the generated code.
With this patch, we positively rip up vortex, compiling Ut_MoveBytes to a
single memcpy call. In vortex we get this:
12 ipsccp - Number of globals found to be constant
986 ipsccp - Number of arguments constant propagated
1378 ipsccp - Number of basic blocks unreachable
8919 ipsccp - Number of instructions removed
llvm-svn: 18796
2004-12-11 06:05:53 +00:00
Chris Lattner
8525ebe465
Do not delete the entry block to a function.
...
llvm-svn: 18795
2004-12-11 05:32:19 +00:00
Brian Gaeke
b3095dd88f
Bools are *also* not ints. Sigh. Furthermore, most of the TargetMachine
...
ctor parameters can be defaulted.
Print the transformed llvm code input to the instruction selector
when -print-machineinstrs is on, just like V9.
llvm-svn: 18794
2004-12-11 05:19:04 +00:00
Brian Gaeke
ba5e9f107c
Look for many more moves to fold (previously, we only
...
*or g0, x add g0, x recognized * as a move)
or x, g0 add x, g0
or 0, x add 0, x
or x, 0 add x, 0
llvm-svn: 18793
2004-12-11 05:19:03 +00:00
Brian Gaeke
52a9ed63b5
Make GEPs not suck so much:
...
* Don't emit the Index * ElementSize multiply if Index is a constant.
* Use a shift, not a multiply, if ElementSize is 1/2/4/8.
* If ElementSize fits in the immediate field of SMUL, then put it there.
Fix a bug where struct offsets might be truncated (ConstantSInt::get is
now used instead of ConstantInt::get).
llvm-svn: 18792
2004-12-11 05:19:02 +00:00
Brian Gaeke
cba3135ba8
Update lists of failing benchmarks, including info on which
...
ones are failing in cbe.
llvm-svn: 18791
2004-12-11 05:19:01 +00:00
Chris Lattner
91dbae6fee
Implement Transforms/SCCP/ipsccp-gvar.ll, by tracking values stored to
...
non-address-taken global variables.
llvm-svn: 18790
2004-12-11 05:15:59 +00:00
Chris Lattner
01bd4624c4
New testcase that ipsccp should handle.
...
llvm-svn: 18789
2004-12-11 05:14:55 +00:00
Reid Spencer
a179968c4e
Fix some minor spellos and grammaros.
...
llvm-svn: 18788
2004-12-11 05:12:57 +00:00
Reid Spencer
d58e09a275
Revert the last patch. We really do need SimplyCFG.
...
llvm-svn: 18787
2004-12-11 03:03:54 +00:00
Chris Lattner
99e1295645
Fix a bug where we could delete dead invoke instructions with uses.
...
In functions where we fully constant prop the return value, replace all
ret instructions with 'ret undef'.
llvm-svn: 18786
2004-12-11 02:53:57 +00:00
Reid Spencer
5ccfd5a48b
Path::get -> Path::toString
...
llvm-svn: 18785
2004-12-11 00:14:15 +00:00
Reid Spencer
eef4420578
Remove this pass as its no longer needed.
...
llvm-svn: 18783
2004-12-10 22:55:35 +00:00
Chris Lattner
dea2bde08f
This pass is no longer needed.
...
llvm-svn: 18782
2004-12-10 22:30:32 +00:00
Chris Lattner
bae4b64553
Implement SCCP/ipsccp-conditional.ll, by totally deleting dead blocks.
...
llvm-svn: 18781
2004-12-10 22:29:08 +00:00
Chris Lattner
f92cc45975
New testcase
...
llvm-svn: 18780
2004-12-10 22:28:49 +00:00
Reid Spencer
2da81ceb3d
Get rid of warning from flex.
...
llvm-svn: 18779
2004-12-10 21:59:47 +00:00
Chris Lattner
7285f43836
Fix SCCP/2004-12-10-UndefBranchBug.ll
...
llvm-svn: 18776
2004-12-10 20:41:50 +00:00
Chris Lattner
45c6251140
Add missing accessor.
...
llvm-svn: 18775
2004-12-10 20:35:47 +00:00
Chris Lattner
b7f5916e01
Make sure to link the target-triple as well, so it ends up in the .llvm.bc file
...
llvm-svn: 18774
2004-12-10 20:26:15 +00:00
Chris Lattner
9e8141fb3e
New testcase that SCCP miscompiles. Luckily this is extremely unlikely to
...
happen in practice, but IP-SCCP can trigger it.
llvm-svn: 18773
2004-12-10 20:10:23 +00:00
Reid Spencer
993b95e796
Fix output for Flexing to not print full path of source.
...
llvm-svn: 18769
2004-12-10 19:44:16 +00:00
Chris Lattner
f13b7ee8aa
Check in the right test
...
llvm-svn: 18767
2004-12-10 17:43:43 +00:00
Chris Lattner
4fc998da2e
Fix Regression/Transforms/SimplifyCFG/2004-12-10-SimplifyCFGCrash.ll,
...
and the failure on make_dparser last night.
llvm-svn: 18766
2004-12-10 17:42:31 +00:00
Chris Lattner
88bd77c73d
New testcase for a bug exposed by the ipsccp pass, causing dparser to fail
...
last night.
llvm-svn: 18765
2004-12-10 17:41:43 +00:00
Chris Lattner
7c0241ce9b
Fix typo
...
llvm-svn: 18764
2004-12-10 16:27:34 +00:00
John Criswell
dfe6a86b0b
Merged in RELEASE_14 changes.
...
llvm-svn: 18763
2004-12-10 15:51:16 +00:00
Brian Gaeke
2e2f3e26ba
Move -lowerselect later in the chain; some select instructions were
...
slipping through into the instruction selector, which can't deal with
them yet.
llvm-svn: 18758
2004-12-10 08:39:30 +00:00