Chris Lattner
7546c3884a
Add a method to extract a loop
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12391 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 20:02:07 +00:00
Chris Lattner
41bc0b069c
Split into two passes. Now there is the general loop extractor, usable on
...
the command line, and the single loop extractor, usable by bugpoint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12390 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 20:01:36 +00:00
Chris Lattner
7bc91c62f0
Rename createLoopExtractorPass to createSingleLoopExtractorPass
...
Doxygenify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12389 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 20:00:37 +00:00
Chris Lattner
5eda1f2f65
add a fixme
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12388 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 19:31:00 +00:00
Chris Lattner
be21ca54e0
Refactor all of the "splitting a module into two pieces" code to avoid
...
code duplication. Also, don't use ReduceMiscompilingFunctions::TestFuncs
to print out the final message.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12387 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 19:27:19 +00:00
Alkis Evlogimenos
39354c99a1
Change MRegisterInfo::foldMemoryOperand to return the folded
...
instruction to make the API more flexible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12386 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 07:19:51 +00:00
Chris Lattner
97836fad2c
Passes don't print stuff!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12385 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 04:17:53 +00:00
Chris Lattner
bf9eaddfb0
Do not create empty basic blocks when the lowerswitch pass expects blocks to
...
be non-empty! This fixes LowerSwitch/2004-03-13-SwitchIsDefaultCrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12384 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 04:14:31 +00:00
Chris Lattner
6cc83750b8
New testcase that crashes the -lowerswitch pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12383 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 04:13:57 +00:00
Chris Lattner
bb41156c0c
Minor random cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12382 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 04:01:47 +00:00
Chris Lattner
16d0eb0468
FunctionPass's should not define their own 'run' method.
...
Require 'simplified' loops, not just raw natural loops. This fixes
CodeExtractor/2004-03-13-LoopExtractorCrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12381 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 04:01:06 +00:00
Chris Lattner
2ef703ec42
If a block is dead, dominators will not be calculated for it. Because of this
...
loop information won't see it, and we could have unreachable blocks pointing to
the non-header node of blocks in a natural loop. This isn't tidy, so have the
loopsimplify pass clean it up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12380 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 03:59:22 +00:00
Chris Lattner
59c3569b14
Catch some more cases of broken code. The loop extractor seems to be creating
...
situations where there is a branch that goes to a block in another function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12379 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 03:23:54 +00:00
Chris Lattner
ffada93273
Verify functions as they are produced if -debug is specified. Reduce
...
curly braceage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12378 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 03:17:22 +00:00
Chris Lattner
2eff85941f
verifyFunction has been broken for a long time now. Fix it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12377 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 03:16:15 +00:00
Chris Lattner
fc44806194
New testcase that crashes the loop extractor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12376 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 03:03:59 +00:00
Chris Lattner
1e3cb34753
Move prototype to IPO.h instead of Scalar.h
...
Make sure that the file interface header (IPO.h) is included first
remove dead #incldue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12375 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 02:37:16 +00:00
Chris Lattner
4eddf37ee3
Move loop extractor to the IPO header
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12374 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 02:36:34 +00:00
Chris Lattner
efddcfa0df
Indent anon namespace properly, add copyright block
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12373 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 02:34:07 +00:00
Chris Lattner
c3c8703c3b
Move to the IPO library. Utils shouldn't contain passes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12372 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 02:32:27 +00:00
Chris Lattner
2ed3063625
Remove dead file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12371 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 02:13:57 +00:00
Chris Lattner
a2dc727ac4
DemoteRegToStack got moved from DemoteRegToStack.h to Local.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12368 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 02:13:38 +00:00
Chris Lattner
cbf99ee973
Move DemoteRegToStack prototype out of DemoteRegToStack.h to this file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12367 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 02:13:07 +00:00
Chris Lattner
f5ee170f93
Document stuff that is known to be broken
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12366 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 02:03:02 +00:00
Chris Lattner
0cea42a560
Add some debugging output
...
Fix InstCombine/2004-03-13-InstCombineInfLoop.ll which caused an infinite
loop compiling (I think) povray.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12365 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 23:54:27 +00:00
Chris Lattner
ffd072af91
New testcase, distilled from povray I think.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12364 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 23:53:04 +00:00
Chris Lattner
619d3544b1
This change makes two big adjustments.
...
* Be a lot more accurate about what the effects will be when inlining a call
to a function when an argument is an alloca.
* Dramatically reduce the penalty for inlining a call in a large function.
This heuristic made it almost impossible to inline a function into a large
function, no matter how small the callee is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12363 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 23:15:45 +00:00
Chris Lattner
786c5646e9
This little patch speeds up the loop used to update the dominator set analysis.
...
On the testcase from GCC PR12440, which has a LOT of loops (1392 of which require
preheaders to be inserted), this speeds up the loopsimplify pass from 1.931s to
0.1875s. The loop in question goes from 1.65s -> 0.0097s, which isn't bad. All of
these times are a debug build.
This adds a dependency on DominatorTree analysis that was not there before, but
we always had dominatortree available anyway, because LICM requires both loop
simplify and DT, so this doesn't add any extra analysis in practice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12362 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 22:01:26 +00:00
Chris Lattner
2c7b430bc0
Turn on argument promotion in gccas. This can give us substantially better
...
code in cases where the file has lots of static functions or anon namespaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12361 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 21:38:35 +00:00
Chris Lattner
6a6d2a2d6f
Option no more
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12360 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 19:36:30 +00:00
Chris Lattner
b2c180f04e
Fix the "infinite looping unless you disable adce" bug
...
Also remove an option to disable adce :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12359 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 19:35:54 +00:00
Chris Lattner
cc7c4acffa
Fix a tiny bug that caused an incorrect assertion failure poolallocating
...
boxed-sim.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12358 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 01:14:23 +00:00
Chris Lattner
5634b9f5e7
It helps if I save the file. :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12357 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 00:24:52 +00:00
Chris Lattner
317201d773
Rename the intrinsic enum values for llvm.va_* from Intrinsic::va_* to
...
Intrinsic::va*. This avoid conflicting with macros in the stdlib.h file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12356 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 00:24:00 +00:00
Chris Lattner
bfe492b5c2
Implement sub.ll:test14
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12355 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 00:11:49 +00:00
Chris Lattner
eb416e85bc
Oh right, casts can interfere. Test this too
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12354 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 00:11:38 +00:00
Chris Lattner
9c2906744a
Implement InstCombine/sub.ll:test12 & test13
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12353 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 23:53:13 +00:00
Chris Lattner
99780ce874
new testcases
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12352 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 23:52:51 +00:00
Chris Lattner
7a82ba0510
Fix a couple of minor problems. Because PHI nodes can use themselves, this
...
could cause infinite loops. Also, getUnderlyingObject can return null
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12351 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 23:12:55 +00:00
John Criswell
841714214e
Performed some updates on the new options to these command line tools.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12350 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 22:45:35 +00:00
Chris Lattner
04b7593546
Implement mod/ref analysis for a trivial case where locals don't escape.
...
This comes up when you have a local array on the stack and you never pass
the address of elements around.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12349 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 22:39:00 +00:00
Chris Lattner
1306089055
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12348 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 22:38:31 +00:00
Brian Gaeke
744b5fb93f
Revise comment and error message for the Bug 38 situation. Also, make it
...
print out the name of the function being used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12347 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 21:37:46 +00:00
John Criswell
d46c696837
Fixed grammar typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12345 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 21:29:42 +00:00
Brian Gaeke
215fb76865
Make -print-machineinstrs show us the code both before and after reg. alloc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12344 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 21:19:08 +00:00
John Criswell
6794d9268b
Fixed grammar typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12343 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 21:19:06 +00:00
John Criswell
799269128c
Added minor information on C++.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12341 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 20:42:16 +00:00
John Criswell
364cec4b2c
Updated to LLVM 1.2.
...
Added information on getting the LLVM GCC front end from CVS.
Added new configure script options.
Made other minor corrections and modifications.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12340 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 20:31:37 +00:00
Chris Lattner
d67772defd
Fix PR266: Make Module Not Inherit From Annotable
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12339 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 19:51:16 +00:00
John Criswell
cd16119a43
Point to the new license (includes year 2004).
...
Changed crtend.o to libcrtend.a.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12338 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 18:20:15 +00:00