Chris Lattner
3bb4657488
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29647 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-12 05:25:00 +00:00
Chris Lattner
9289b637a4
New testcase, this used to take hours to loopsimplify.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29646 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-12 05:23:27 +00:00
Chris Lattner
69b3992154
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29645 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-12 05:02:03 +00:00
Chris Lattner
fa78946482
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29644 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-12 04:51:20 +00:00
Chris Lattner
8731c0d234
Track # nodes in a CSEMap.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29643 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-12 01:07:51 +00:00
Chris Lattner
dd28900168
Switch to using SuperFastHash instead of adding all elements together. This
...
doesn't significantly improve performance but it helps a small amount.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29642 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-12 01:07:10 +00:00
Reid Spencer
4477185a6e
Lexer.cpp is a generated file both in lib/AsmParser and projects/Stacker
...
so we remove it from being counted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29641 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 23:58:58 +00:00
Chris Lattner
7ed9ea81f8
Switch NodeID to track 32-bit chunks instead of 8-bit chunks, for a 2.5%
...
speedup in isel time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29640 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 23:55:53 +00:00
Chris Lattner
f42d1ddb18
remove IncludeFile turds in MathExtras.h, which bloats every .o file that
...
#includes it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29639 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 23:52:54 +00:00
Reid Spencer
2914a696fb
Weed out some cruft and add in some missing extensions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29638 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 23:51:05 +00:00
Reid Spencer
c0d5ed33e5
Weed out cruft that should not be counted and add in extensions we
...
previously missed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29637 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 23:50:27 +00:00
Chris Lattner
1653366010
move code out of line so that GCC doesn't inline it at -O3
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29636 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 23:40:23 +00:00
Patrick Jenkins
825c2a72a1
Added information for the new nightly tester.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29635 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 23:27:02 +00:00
Chris Lattner
80b6582314
Split SmallVector into SmallVector and SmallVectorImpl, which allows us to
...
eliminate code duplication due to the 'N' parameter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29634 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 23:19:51 +00:00
Patrick Jenkins
0e9402fad4
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.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29633 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 23:02:09 +00:00
Reid Spencer
8312657fc3
Make this script not care where it is run from by getting the llvm src
...
root from the llvm-config script.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29632 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 21:55:31 +00:00
Chris Lattner
c9f8f41680
Remove 8 more std::map's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29631 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 21:55:30 +00:00
Reid Spencer
1e75b7b015
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29630 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 21:53:27 +00:00
Reid Spencer
b43ce5a148
Don't print double newline for --src-root and --obj-root as it tends to
...
confuse shells that might use this output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29629 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 21:50:24 +00:00
Chris Lattner
0c2ecdd9af
remove old piece of the V9 backend.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29628 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 21:11:35 +00:00
Chris Lattner
2b5a82fe1d
eliminate extraneous blank line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29627 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 21:08:16 +00:00
Chris Lattner
61b09412fe
Move the BBNodes, GlobalValues, TargetGlobalValues, Constants, TargetConstants,
...
RegNodes, and ValueNodes maps into the CSEMap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29626 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 21:01:22 +00:00
Chris Lattner
cbea3045ce
Start moving leaf nodes over to the CSEMap.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29625 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 21:00:46 +00:00
Reid Spencer
ae2e622e74
Clean up the HTML output. Add a -filedetails option to report the number of
...
lines contributed by each user to each file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29624 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 20:44:17 +00:00
Reid Spencer
bf49f33103
Remove blank line at end of file, removing test user "foo" from CVS history.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29623 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 19:42:11 +00:00
Chris Lattner
e2e34093c7
new method for adding ints
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29622 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 18:53:44 +00:00
Chris Lattner
4a283e90af
eliminate the NullaryOps map, use CSEMap instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29621 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 18:38:11 +00:00
Reid Spencer
bb6f6eb667
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29620 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 18:36:55 +00:00
Evan Cheng
1e060f0242
Use SmallVector instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29619 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 18:33:41 +00:00
Chris Lattner
3577e38c2b
change internal impl of dag combiner so that calls to CombineTo never have to
...
make a temporary vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29618 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 17:56:38 +00:00
Chris Lattner
8a842cf828
Change one ReplaceAllUsesWith method to take an array of operands to replaceinstead of a vector of operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29617 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 17:46:44 +00:00
Chris Lattner
b9ea4a39b8
Change one ReplaceAllUsesWith method to take an array of operands to replace
...
instead of a vector of operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29616 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 17:46:28 +00:00
Chris Lattner
246db8de3d
Remove now-dead method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29615 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 17:40:26 +00:00
Chris Lattner
e219945348
Eliminate use of getNode that takes a vector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29614 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 17:38:39 +00:00
Chris Lattner
3cf55848d9
remove a (now) unused getNode method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29613 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 17:25:05 +00:00
Chris Lattner
8742867f95
elimiante use of getNode that takes vector of operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29612 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 17:22:35 +00:00
Chris Lattner
e0e42d457e
eliminate use of getNode that takes vector of operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29611 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 17:21:12 +00:00
Chris Lattner
e21492bc4e
eliminate use of getNode that takes vector<SDOperand>. Wrap a really long line.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29610 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 17:19:54 +00:00
Chris Lattner
79e490aa23
Convert vectors to fixed sized arrays and smallvectors. Eliminate use of getNode that takes a vector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29609 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 17:18:05 +00:00
Chris Lattner
325f0a129e
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29607 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 16:47:32 +00:00
Chris Lattner
84ff46b0d9
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29606 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 16:46:38 +00:00
Chris Lattner
8f652ebe89
Minor cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29605 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 16:37:02 +00:00
Evan Cheng
64a752f7c7
Match tablegen changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29604 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 09:08:15 +00:00
Evan Cheng
bb7b844bec
CALLSEQ_* produces chain even if that's not needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29603 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 09:03:33 +00:00
Evan Cheng
06d6470c65
- 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29602 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 08:59:35 +00:00
Evan Cheng
311ace0391
Convert more calls of getNode() that takes a vector to pass in the start of an array.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29601 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-11 07:35:45 +00:00
Reid Spencer
23a0c7671d
Fix a typo noticed by Gordon Henriksen. Thanks!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29597 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-10 21:38:47 +00:00
Reid Spencer
48f706820a
llvm2cpp no longer reads LLVM assembly but LLVM bytecode instead. Adjust
...
the documentation to reflect this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29596 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-10 21:02:25 +00:00
Reid Spencer
f19ccf8b63
Add a cleaned-up version of the IRC conversation that spurred this FAQ.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29595 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-10 21:01:14 +00:00
Reid Spencer
e00906fbc2
Answer the most frequently asked question, about GEPs. The answer is
...
sufficiently long that I placed it in a separate file but it links from
the FAQ page. More might need to be added to GetElementPtr.html to
address additional confusion surrounding GEP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29594 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-10 20:15:58 +00:00