Commit Graph

9435 Commits

Author SHA1 Message Date
Brian Gaeke
27f7a71a25 Turn off "attribute weak" to pacify Mac OS X's system compiler, which prints a
warning whenever it sees it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10391 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11 00:24:36 +00:00
Brian Gaeke
dfa58498ae Fix typo in comment. Add prototype for getConstantExprValue().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10390 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11 00:23:28 +00:00
Brian Gaeke
63438cc9b0 Add support for --debug-only=interpreter, to print out instrs before
interpreting them.

Move support for getting the value of a ConstantExpr into
getConstantExprValue(), and add support for the rest of the different
kinds of ConstantExprs.  (I don't think I like ConstantExprs!)
This requires separate procedures executeShlInst() and executeShrInst().

Reduce the number of references to TheEE.

Get rid of an old comment mentioning annotations.

Fix exitCalled(), which was crashing the Interpreter. This was a
leftover from the return-value code refactoring.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10389 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11 00:22:59 +00:00
John Criswell
f5ba89df1f This appears to fix Bug 172 and does not break any other feature tests or
regression tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10388 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 22:51:41 +00:00
Chris Lattner
7d3ced934f Fix bug: LICM/sink_multiple_exits.ll
Thanks for pointing this out John  :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10387 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 22:35:56 +00:00
Chris Lattner
df45bd3803 Don't allow dead instructions to stop sinking early.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10386 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 20:43:29 +00:00
Chris Lattner
88369d214f Fix bug: IndVarsSimplify/2003-12-10-RemoveInstrCrash.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10385 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 20:43:04 +00:00
Chris Lattner
da7d0693b5 A new testcase, reduced by bugpoint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10384 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 20:39:53 +00:00
Chris Lattner
dead99325c Finegrainify namespacification
Fix bug: LowerInvoke/2003-12-10-Crash.llx


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10382 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 20:22:42 +00:00
Chris Lattner
7d104178aa new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10381 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 20:18:09 +00:00
John Criswell
2998d3fde7 Fixed a comma error.
Added the --disable-threads option to GCC configure (to avoid pthread errors
when building code with LLVM).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10380 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 20:04:13 +00:00
Brian Gaeke
265f0ec559 Support 'make install' for LLVM include files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10378 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 18:41:20 +00:00
John Criswell
0284a42fd3 Upon Chris's suggestion, moved the #ifdef's to the generated C code.
This makes LLVM and the generated C code more portable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10377 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 18:17:57 +00:00
Chris Lattner
ba4f3f6a41 Finegrainify namespacification
Reorder #includes
Implement: IndVarsSimplify/2003-12-10-IndVarDeadCode.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10376 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 18:06:47 +00:00
John Criswell
01b2d61311 Fixed the CBE on Solaris/Sparc. We need to define the return value of
the write() system call because it returns 64 bits on Solaris 64 bit,
and an implicit return value of int says it returns 32 bits.
Admittedly, this is a bit of a hack.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10375 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10 18:06:34 +00:00
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