Commit Graph

16201 Commits

Author SHA1 Message Date
Reid Spencer
c14cde5487 A little cleanup on this file.
llvm-svn: 18798
2004-12-11 07:16:54 +00:00
Chris Lattner
e449e6c74e New feature
llvm-svn: 18797
2004-12-11 06:10:52 +00:00
Chris Lattner
06bfa390f6 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
5af0ef5c44 Do not delete the entry block to a function.
llvm-svn: 18795
2004-12-11 05:32:19 +00:00
Brian Gaeke
220fb4f8cd 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
24ea5d3dd7 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
948a8145bf 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
e0643b792b 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
943f94d2b3 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
f86d071b5a New testcase that ipsccp should handle.
llvm-svn: 18789
2004-12-11 05:14:55 +00:00
Reid Spencer
851533abfd Fix some minor spellos and grammaros.
llvm-svn: 18788
2004-12-11 05:12:57 +00:00
Reid Spencer
17ce5e3519 Revert the last patch. We really do need SimplyCFG.
llvm-svn: 18787
2004-12-11 03:03:54 +00:00
Chris Lattner
beeab3a124 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
e2af9dc813 Path::get -> Path::toString
llvm-svn: 18785
2004-12-11 00:14:15 +00:00
Reid Spencer
388d091dde Remove this pass as its no longer needed.
llvm-svn: 18783
2004-12-10 22:55:35 +00:00
Chris Lattner
808f19c775 This pass is no longer needed.
llvm-svn: 18782
2004-12-10 22:30:32 +00:00
Chris Lattner
d1d00e017b Implement SCCP/ipsccp-conditional.ll, by totally deleting dead blocks.
llvm-svn: 18781
2004-12-10 22:29:08 +00:00
Chris Lattner
4f2c984266 New testcase
llvm-svn: 18780
2004-12-10 22:28:49 +00:00
Reid Spencer
84d16d145f Get rid of warning from flex.
llvm-svn: 18779
2004-12-10 21:59:47 +00:00
Chris Lattner
5be2c2e299 Fix SCCP/2004-12-10-UndefBranchBug.ll
llvm-svn: 18776
2004-12-10 20:41:50 +00:00
Chris Lattner
d104c10aa5 Add missing accessor.
llvm-svn: 18775
2004-12-10 20:35:47 +00:00
Chris Lattner
3c31189583 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
cdc1755a98 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
d364db5bc5 Fix output for Flexing to not print full path of source.
llvm-svn: 18769
2004-12-10 19:44:16 +00:00
Chris Lattner
145e42631e Check in the right test
llvm-svn: 18767
2004-12-10 17:43:43 +00:00
Chris Lattner
40e97884f6 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
a151d4f3ab 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
631c702349 Fix typo
llvm-svn: 18764
2004-12-10 16:27:34 +00:00
John Criswell
83025c6a56 Merged in RELEASE_14 changes.
llvm-svn: 18763
2004-12-10 15:51:16 +00:00
Brian Gaeke
dc916ae40f 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
Brian Gaeke
7ec3883e1a Add the rest of the multiply instructions.
llvm-svn: 18757
2004-12-10 08:39:29 +00:00
Brian Gaeke
2a9ecc433f Support binary operations with immediates for <= cInt.
llvm-svn: 18756
2004-12-10 08:39:28 +00:00
Brian Gaeke
45f3af8d88 Update lists of failing benchmarks (except C++...something is the
matter with my sparcv8 libstdc++.a) and to-do list.

llvm-svn: 18755
2004-12-10 08:39:27 +00:00
Chris Lattner
daef188477 Turn on ipsccp by default instead of simple IPCP
llvm-svn: 18753
2004-12-10 08:03:43 +00:00
Chris Lattner
ead42a768e This is the initial implementation of IPSCCP, as requested by Brian.
This implements SCCP/ipsccp-basic.ll, rips apart Olden/mst (as described in
PR415), and does other nice things.

There is still more to come with this, but it's a start.

llvm-svn: 18752
2004-12-10 08:02:06 +00:00
Chris Lattner
a856de4013 New prototype
llvm-svn: 18751
2004-12-10 07:55:01 +00:00
Chris Lattner
220a30ec86 New testcase
llvm-svn: 18750
2004-12-10 07:54:51 +00:00
Brian Gaeke
1da3720799 Emit correct prototype for __builtin_alloca on V8.
llvm-svn: 18745
2004-12-10 05:44:45 +00:00
Alkis Evlogimenos
9b02192468 Fix writer to properly quote label names when they don't contain
simple characters.

llvm-svn: 18744
2004-12-10 05:41:10 +00:00
Alkis Evlogimenos
189fdf11db Do not allow empty label names.
llvm-svn: 18743
2004-12-10 05:40:19 +00:00
Alkis Evlogimenos
a278cc5593 Update testcase
llvm-svn: 18742
2004-12-10 05:39:57 +00:00
Chris Lattner
e0936a0bd3 Implement test/Feature/escaped_label.ll
llvm-svn: 18741
2004-12-10 05:27:29 +00:00
Chris Lattner
211eab3c7e Simple testcase for quoted label.
llvm-svn: 18740
2004-12-10 05:27:14 +00:00
Brian Gaeke
d21a3279dc Link V8 backend into llc.
llvm-svn: 18739
2004-12-10 05:04:13 +00:00
Brian Gaeke
91cf4fe1ca Add SparcV8 target back into the build
llvm-svn: 18738
2004-12-10 04:54:21 +00:00
Brian Gaeke
5c8cefdf9a Adjust paths: Sparc/V8 --> SparcV8
llvm-svn: 18737
2004-12-10 04:48:57 +00:00
Brian Gaeke
262fe40da0 Make this file self-contained.
llvm-svn: 18736
2004-12-10 04:46:30 +00:00
Brian Gaeke
ef7289195a Update list of failing MultiSource benchmarks. It works out to +5 -5, but I
think some of these might be the CFE's fault; a rebuild should come soon.

llvm-svn: 18735
2004-12-10 04:42:46 +00:00
Brian Gaeke
999a5ba9ba When FpMOVDs appeared in pairs, we were mistakenly skipping over the latter of
each pair. I think this fixes that.

One of these days, I swear I'm going to get the hang of C++ iterators.
Really.

llvm-svn: 18734
2004-12-10 04:42:45 +00:00
Misha Brukman
30fe6bfd91 Missed moving bugpoint link over to CommandGuide/html/
llvm-svn: 18732
2004-12-09 23:28:09 +00:00