Commit Graph

9570 Commits

Author SHA1 Message Date
Chris Lattner
7277826d7e New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10374 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 17:57:38 +00:00
Chris Lattner
66ea98e85c Finegrainify namespacification
Fix bug: LoopSimplify/2003-12-10-ExitBlocksProblem.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10373 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 17:20:35 +00:00
Chris Lattner
baf9d2ea62 New testcase which caused a bunch of tests to break last night with more
aggressive LICM


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10372 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 17:09:35 +00:00
Chris Lattner
e3cfe8d563 Simplify code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10371 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 16:58:24 +00:00
Chris Lattner
f594a03197 Avoid performing two identical lookups when one will suffice
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10370 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 16:57:24 +00:00
Chris Lattner
0ed2da9ac7 Make LICM itself a bit more efficient, and make the generated code more efficient too: don't insert a store in every exit block, because a particular block may be exited to more than once by a loop
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10369 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 15:56:24 +00:00
John Criswell
5be28c59c6 Removed the pthread_once() function because it doesn't actually do
what it's supposed to do.
Just leave this library as a dummy library for now until we have time to
port a real pthread library (or get glibc working).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10368 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 15:43:07 +00:00
Chris Lattner
381bf79ae1 Finegrainify namespacification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10367 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 15:34:03 +00:00
Chris Lattner
9a4f8ef787 Finegrainify namespacification
Provide a context module to WriteAsOperand


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10366 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 15:33:59 +00:00
John Criswell
a84962c4d7 Added the --host= option to the Sparc configuration directions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10364 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 15:27:29 +00:00
John Criswell
61eae03b44 Dummy implementation of the pthread library.
This is needed since libstdc++ uses pthread_once().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10360 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 14:46:36 +00:00
Chris Lattner
b592fc2b8d Make 'opt -o -' work correctly instead of creating a file named './-'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10359 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 14:41:33 +00:00
Chris Lattner
a2706518f9 Implement instruction sinking out of loops. This still can do a little bit
better job, but this is the majority of the work.  This implements
LICM/sink*.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10358 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 06:41:05 +00:00
Chris Lattner
94046b2cc9 new testcase, checking to ensure we handle yet-another spiffy case correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10357 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 05:42:23 +00:00
Brian Gaeke
47c1b6d740 Don't assume that system headers define 'uint' or 'ulong' as types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10356 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 05:06:38 +00:00
Brian Gaeke
c745b4950d Fix apparent copy-and-paste-o.
Get rid of %debug - Mac OS X bison doesn't have it.  sigh.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10352 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 04:33:07 +00:00
Brian Gaeke
44909cf54a Add support for installing tool executables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10351 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 00:26:28 +00:00
Brian Gaeke
5339ada5ab Add installation directories and commands, standardly provided by configure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10350 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 00:25:32 +00:00
Chris Lattner
a8d9c83ebe Yet another hard testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10349 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 23:29:25 +00:00
Chris Lattner
010ba10032 Do not insert one entry PHI nodes in split exit blocks!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10348 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 23:12:55 +00:00
Brian Gaeke
73d8d55e0e Check in the llvm-native-gcc script, which I use in the process of
debugging front-end miscompilations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10347 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 22:23:24 +00:00
Chris Lattner
d0069a08b9 Add a new testcase which breaks the sinker because the loop canonnicalization
pass does not do a canonnicalization that the sinker wants.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10346 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 22:05:08 +00:00
Chris Lattner
caef3cccf5 Fix buggy test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10345 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 21:45:23 +00:00
Chris Lattner
87d9e69995 New testcase for sinking operations from loops with multiple exits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10344 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 21:40:36 +00:00
Chris Lattner
8f25f46843 Make the test a bit harder so that we test to ensure that _both_ instructions
are sunk


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10343 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 20:50:20 +00:00
Chris Lattner
ed6dfc2856 Refactor code a little bit, eliminating the gratuitous InstVisitor, which
should make subsequent changes simpler.  This also allows us to hoist vaarg
and vanext instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10342 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 19:32:44 +00:00
Chris Lattner
92094b4d92 Fine grainify namespacification
Code cleanups
Make LICM::SafeToHoist marginally more efficient


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10341 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 17:18:00 +00:00
Chris Lattner
2faaddab60 New testcases for LICM improvement: code sinking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10339 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 16:56:51 +00:00
Chris Lattner
612ac2dfaa Improve portability with Mac OS/X
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10338 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 16:49:12 +00:00
Chris Lattner
16442cba7c Improve testcase portability on OS/X
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10337 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 16:48:24 +00:00
Chris Lattner
bb9fc2c461 New testcase that is not actually handled yet, but should be in the future.
This is here to remind me to get back to this after a while.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10336 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 16:26:42 +00:00
John Criswell
aa2a47d813 Added the -h option for compatibility with other linkers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10335 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09 15:39:11 +00:00
Chris Lattner
6c3a21a368 Whoops, forgot to check this in. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10334 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 23:41:09 +00:00
Chris Lattner
cf2f89251d Implement: TailCallElim/accum_recursion_constant_arg.ll
Also make sure to clean up any PHI nodes that are inserted which are pointless.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10333 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 23:37:35 +00:00
Chris Lattner
543d622ef7 Implement: test/Regression/Transforms/TailCallElim/accum_recursion.ll
We now insert accumulator variables as necessary to eliminate tail recursion
more aggressively.  This is still fairly limited, but allows us to transform
fib/factorial, and other functions into nice happy loops.  :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10332 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 23:19:26 +00:00
Chris Lattner
62d0f73300 New testcase for automatic insertion of accumulator variables to eliminate
tail recursion


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10331 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 23:16:25 +00:00
Chris Lattner
1b9ce47603 Add a missing semi colon, which breaks bison 1.5
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10325 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 20:15:33 +00:00
Chris Lattner
b5da7465b7 Simplify makefiles by just explicitly listing directories
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10324 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 20:12:46 +00:00
John Criswell
5507284880 Updated build instructions for Sparc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10323 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 19:59:14 +00:00
John Criswell
ea0ac1fbb3 Fixed the dynamic generation of the list of subdirectories to compile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10322 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 17:52:32 +00:00
Chris Lattner
e63fc8b46f implement method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10321 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 08:23:04 +00:00
Chris Lattner
38f0ebad9a Use the new method, though noone currently implements it any better than before
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10320 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 08:22:48 +00:00
Chris Lattner
18cb4c3c74 add two new virtual functions:
The first returns a function pointer or a stub if it's not already generated
  The second exposes what was previously JIT specific state to general clients


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10319 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 08:22:01 +00:00
Chris Lattner
c19aadee66 Finegrainify namespacification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10318 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 08:06:28 +00:00
Chris Lattner
0c82ee71dc Makefile updates contributed by Reid
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10317 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 07:08:00 +00:00
Chris Lattner
296b2e6af2 New bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10316 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 06:33:19 +00:00
Misha Brukman
c99ba9fba0 effect' is the noun, affect' is the verb.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10315 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 06:22:05 +00:00
Chris Lattner
e11700b541 New testcase for PR165
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10314 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 06:18:37 +00:00
Chris Lattner
8a0b924219 Add note about sucky suse compiler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10313 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 05:43:19 +00:00
Chris Lattner
7152da38ef Cleanup and restructure the code to make it easier to read and maintain.
The only functionality change is that we now implement:
  Regression/Transforms/TailCallElim/intervening-inst.ll

Which is really kinda pointless, because it means that trivially dead code
does not interfere with -tce, but trivially dead code probably wouldn't be
around anytime when this pass is run anyway.

The point of including this change it to support other more aggressive
transformations when we have the analysis capabilities to do so.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10312 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 05:34:54 +00:00