Nate Begeman
0e92042770
Emit .set directives for jump table entries when possible, which reduces
...
the number of relocations in object files, shrinkifying them.
llvm-svn: 29650
2006-08-12 21:29:52 +00:00
Chris Lattner
c482a5d057
Fix a bug in a recent refactoring that broke a bunch of stuff.
...
llvm-svn: 29649
2006-08-12 07:20:05 +00:00
Chris Lattner
d4ee71db50
Fix an obvious bug, noticed by inspection. No current targets trigger this.
...
llvm-svn: 29648
2006-08-12 05:41:39 +00:00
Chris Lattner
a75d3b6d0d
Don't attempt to split subloops out of a loop with a huge number of backedges.
...
Not only will this take huge amounts of compile time, the resultant loop nests
won't be useful for optimization. This reduces loopsimplify time on
Transforms/LoopSimplify/2006-08-11-LoopSimplifyLongTime.ll from ~32s to ~0.4s
with a debug build of llvm on a 2.7Ghz G5.
llvm-svn: 29647
2006-08-12 05:25:00 +00:00
Chris Lattner
a227388ba0
New testcase, this used to take hours to loopsimplify.
...
llvm-svn: 29646
2006-08-12 05:23:27 +00:00
Chris Lattner
9781d44b6e
Make Loop::getExitBlocks significantly faster for large loops. Instead of
...
pounding on Loop::contains (which is O(n) in the size of the loop), use a
sorted vector, which is O(log(N)) for each query. This speeds up Duraid's
horrible testcase from ~72s to ~31s in a debug build.
llvm-svn: 29645
2006-08-12 05:02:03 +00:00
Chris Lattner
0885025198
Reimplement the loopsimplify code which deletes edges from unreachable
...
blocks that target loop blocks.
Before, the code was run once per loop, and depended on the number of
predecessors each block in the loop had. Unfortunately, scanning preds can
be really slow when huge numbers of phis exist or when phis with huge numbers
of inputs exist.
Now, the code is run once per function and scans successors instead of preds,
which is far faster. In addition, the new code is simpler and is goto free,
woo.
This change speeds up a nasty testcase Duraid provided me from taking hours to
taking ~72s with a debug build. The functionality this implements is already
tested in the testsuite as Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll.
llvm-svn: 29644
2006-08-12 04:51:20 +00:00
Chris Lattner
7d59e9d16c
Track # nodes in a CSEMap.
...
llvm-svn: 29643
2006-08-12 01:07:51 +00:00
Chris Lattner
1d6e50c037
Switch to using SuperFastHash instead of adding all elements together. This
...
doesn't significantly improve performance but it helps a small amount.
llvm-svn: 29642
2006-08-12 01:07:10 +00:00
Reid Spencer
21f214fa6b
Lexer.cpp is a generated file both in lib/AsmParser and projects/Stacker
...
so we remove it from being counted.
llvm-svn: 29641
2006-08-11 23:58:58 +00:00
Chris Lattner
5510fa4ac5
Switch NodeID to track 32-bit chunks instead of 8-bit chunks, for a 2.5%
...
speedup in isel time.
llvm-svn: 29640
2006-08-11 23:55:53 +00:00
Chris Lattner
4966686ef8
remove IncludeFile turds in MathExtras.h, which bloats every .o file that
...
#includes it.
llvm-svn: 29639
2006-08-11 23:52:54 +00:00
Reid Spencer
69ce7523c9
Weed out some cruft and add in some missing extensions.
...
llvm-svn: 29638
2006-08-11 23:51:05 +00:00
Reid Spencer
89414d003f
Weed out cruft that should not be counted and add in extensions we
...
previously missed.
llvm-svn: 29637
2006-08-11 23:50:27 +00:00
Chris Lattner
870808beda
move code out of line so that GCC doesn't inline it at -O3
...
llvm-svn: 29636
2006-08-11 23:40:23 +00:00
Patrick Jenkins
d4de5af118
Added information for the new nightly tester.
...
llvm-svn: 29635
2006-08-11 23:27:02 +00:00
Chris Lattner
6c9bcb32a3
Split SmallVector into SmallVector and SmallVectorImpl, which allows us to
...
eliminate code duplication due to the 'N' parameter.
llvm-svn: 29634
2006-08-11 23:19:51 +00:00
Patrick Jenkins
2428c13b4e
Added two flags (-submit-server and -submit-script) which allow the user to specify where the test results are submitted too. If these are not specified they default to the LLVM.org server.
...
llvm-svn: 29633
2006-08-11 23:02:09 +00:00
Reid Spencer
8966f69927
Make this script not care where it is run from by getting the llvm src
...
root from the llvm-config script.
llvm-svn: 29632
2006-08-11 21:55:31 +00:00
Chris Lattner
a271f8f58c
Remove 8 more std::map's.
...
llvm-svn: 29631
2006-08-11 21:55:30 +00:00
Reid Spencer
c8a4b914d4
Make llvmdo and llvmgrep invulnerable to where they are run from by getting
...
the llvm source root from the llvm-config command. The dependency now is
that the correct llvm-config command is in the path. For most developers
this is the case.
llvm-svn: 29630
2006-08-11 21:53:27 +00:00
Reid Spencer
9cd0b87af3
Don't print double newline for --src-root and --obj-root as it tends to
...
confuse shells that might use this output.
llvm-svn: 29629
2006-08-11 21:50:24 +00:00
Chris Lattner
173c5fb3f3
remove old piece of the V9 backend.
...
llvm-svn: 29628
2006-08-11 21:11:35 +00:00
Chris Lattner
92774dab5c
eliminate extraneous blank line
...
llvm-svn: 29627
2006-08-11 21:08:16 +00:00
Chris Lattner
76da77fcbb
Move the BBNodes, GlobalValues, TargetGlobalValues, Constants, TargetConstants,
...
RegNodes, and ValueNodes maps into the CSEMap.
llvm-svn: 29626
2006-08-11 21:01:22 +00:00
Chris Lattner
c3f78d1407
Start moving leaf nodes over to the CSEMap.
...
llvm-svn: 29625
2006-08-11 21:00:46 +00:00
Reid Spencer
15ed5aec07
Clean up the HTML output. Add a -filedetails option to report the number of
...
lines contributed by each user to each file.
llvm-svn: 29624
2006-08-11 20:44:17 +00:00
Reid Spencer
d06abd82a2
Remove blank line at end of file, removing test user "foo" from CVS history.
...
llvm-svn: 29623
2006-08-11 19:42:11 +00:00
Chris Lattner
c3def8c8f4
new method for adding ints
...
llvm-svn: 29622
2006-08-11 18:53:44 +00:00
Chris Lattner
3c504c013b
eliminate the NullaryOps map, use CSEMap instead.
...
llvm-svn: 29621
2006-08-11 18:38:11 +00:00
Reid Spencer
8746dd4a70
Drop the -details option, it was broken. If you want to know about a
...
particular directory, just pass that directory to the script. Also, clean
up the HTML output, put list of skipped dirs at the end, and make a few
other minor improvements.
llvm-svn: 29620
2006-08-11 18:36:55 +00:00
Evan Cheng
963d61dc86
Use SmallVector instead.
...
llvm-svn: 29619
2006-08-11 18:33:41 +00:00
Chris Lattner
0d57396628
change internal impl of dag combiner so that calls to CombineTo never have to
...
make a temporary vector.
llvm-svn: 29618
2006-08-11 17:56:38 +00:00
Chris Lattner
d154649343
Change one ReplaceAllUsesWith method to take an array of operands to replaceinstead of a vector of operands.
...
llvm-svn: 29617
2006-08-11 17:46:44 +00:00
Chris Lattner
a47d3dd2cc
Change one ReplaceAllUsesWith method to take an array of operands to replace
...
instead of a vector of operands.
llvm-svn: 29616
2006-08-11 17:46:28 +00:00
Chris Lattner
cc742c4155
Remove now-dead method.
...
llvm-svn: 29615
2006-08-11 17:40:26 +00:00
Chris Lattner
8ca6e82bce
Eliminate use of getNode that takes a vector.
...
llvm-svn: 29614
2006-08-11 17:38:39 +00:00
Chris Lattner
587718e305
remove a (now) unused getNode method.
...
llvm-svn: 29613
2006-08-11 17:25:05 +00:00
Chris Lattner
be2765058e
elimiante use of getNode that takes vector of operands.
...
llvm-svn: 29612
2006-08-11 17:22:35 +00:00
Chris Lattner
c3ce410ac3
eliminate use of getNode that takes vector of operands.
...
llvm-svn: 29611
2006-08-11 17:21:12 +00:00
Chris Lattner
4764bb3834
eliminate use of getNode that takes vector<SDOperand>. Wrap a really long line.
...
llvm-svn: 29610
2006-08-11 17:19:54 +00:00
Chris Lattner
2f9c4426fc
Convert vectors to fixed sized arrays and smallvectors. Eliminate use of getNode that takes a vector.
...
llvm-svn: 29609
2006-08-11 17:18:05 +00:00
Chris Lattner
7e905fba17
Fix miscompilation of float vector returns. Compile code to this:
...
_func:
vsldoi v2, v3, v2, 12
vsldoi v2, v2, v2, 4
blr
instead of:
_func:
vsldoi v2, v3, v2, 12
vsldoi v2, v2, v2, 4
*** vor f1, v2, v2
blr
llvm-svn: 29607
2006-08-11 16:47:32 +00:00
Chris Lattner
c18c59e272
New testcase
...
llvm-svn: 29606
2006-08-11 16:46:38 +00:00
Chris Lattner
36f17d7909
Minor cleanups
...
llvm-svn: 29605
2006-08-11 16:37:02 +00:00
Evan Cheng
6053206580
Match tablegen changes.
...
llvm-svn: 29604
2006-08-11 09:08:15 +00:00
Evan Cheng
34a49551f5
CALLSEQ_* produces chain even if that's not needed.
...
llvm-svn: 29603
2006-08-11 09:03:33 +00:00
Evan Cheng
5950c56f73
- Prevent some functions from being inlined to eliminate the code size bloat
...
introduced by previous commit.
- SelectCode now returns a SDNode*. If it is not null, the selected node
produces the same number of results as the input node. The seletion loop
is responsible for calling ReplaceAllUsesWith() to replace the input node
with the output target node. For other cases, e.g. when load is folded,
the selection code is responsible for calling ReplaceAllUsesOfValueWith()
and SelectCode returns NULL.
- Other clean ups.
llvm-svn: 29602
2006-08-11 08:59:35 +00:00
Evan Cheng
131c832304
Convert more calls of getNode() that takes a vector to pass in the start of an array.
...
llvm-svn: 29601
2006-08-11 07:35:45 +00:00
Reid Spencer
2cc0b2ef67
Fix a typo noticed by Gordon Henriksen. Thanks!
...
llvm-svn: 29597
2006-08-10 21:38:47 +00:00