Chris Lattner [Wed, 10 Dec 2003 15:33:59 +0000 (15:33 +0000)]
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
John Criswell [Wed, 10 Dec 2003 15:27:29 +0000 (15:27 +0000)]
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
John Criswell [Wed, 10 Dec 2003 14:46:36 +0000 (14:46 +0000)]
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
Chris Lattner [Wed, 10 Dec 2003 14:41:33 +0000 (14:41 +0000)]
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
Chris Lattner [Wed, 10 Dec 2003 06:41:05 +0000 (06:41 +0000)]
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
Chris Lattner [Wed, 10 Dec 2003 05:42:23 +0000 (05:42 +0000)]
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
Brian Gaeke [Wed, 10 Dec 2003 05:06:38 +0000 (05:06 +0000)]
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
Brian Gaeke [Wed, 10 Dec 2003 04:33:07 +0000 (04:33 +0000)]
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
Brian Gaeke [Wed, 10 Dec 2003 00:26:28 +0000 (00:26 +0000)]
Add support for installing tool executables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10351
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 10 Dec 2003 00:25:32 +0000 (00:25 +0000)]
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
Chris Lattner [Tue, 9 Dec 2003 23:29:25 +0000 (23:29 +0000)]
Yet another hard testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10349
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Dec 2003 23:12:55 +0000 (23:12 +0000)]
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
Brian Gaeke [Tue, 9 Dec 2003 22:23:24 +0000 (22:23 +0000)]
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
Chris Lattner [Tue, 9 Dec 2003 22:05:08 +0000 (22:05 +0000)]
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
Chris Lattner [Tue, 9 Dec 2003 21:45:23 +0000 (21:45 +0000)]
Fix buggy test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10345
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Dec 2003 21:40:36 +0000 (21:40 +0000)]
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
Chris Lattner [Tue, 9 Dec 2003 20:50:20 +0000 (20:50 +0000)]
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
Chris Lattner [Tue, 9 Dec 2003 19:32:44 +0000 (19:32 +0000)]
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
Chris Lattner [Tue, 9 Dec 2003 17:18:00 +0000 (17:18 +0000)]
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
Chris Lattner [Tue, 9 Dec 2003 16:56:51 +0000 (16:56 +0000)]
New testcases for LICM improvement: code sinking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10339
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Dec 2003 16:49:12 +0000 (16:49 +0000)]
Improve portability with Mac OS/X
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10338
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Dec 2003 16:48:24 +0000 (16:48 +0000)]
Improve testcase portability on OS/X
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10337
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Dec 2003 16:26:42 +0000 (16:26 +0000)]
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
John Criswell [Tue, 9 Dec 2003 15:39:11 +0000 (15:39 +0000)]
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
Chris Lattner [Mon, 8 Dec 2003 23:41:09 +0000 (23:41 +0000)]
Whoops, forgot to check this in. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10334
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Dec 2003 23:37:35 +0000 (23:37 +0000)]
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
Chris Lattner [Mon, 8 Dec 2003 23:19:26 +0000 (23:19 +0000)]
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
Chris Lattner [Mon, 8 Dec 2003 23:16:25 +0000 (23:16 +0000)]
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
Chris Lattner [Mon, 8 Dec 2003 20:15:33 +0000 (20:15 +0000)]
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
Chris Lattner [Mon, 8 Dec 2003 20:12:46 +0000 (20:12 +0000)]
Simplify makefiles by just explicitly listing directories
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10324
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Mon, 8 Dec 2003 19:59:14 +0000 (19:59 +0000)]
Updated build instructions for Sparc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10323
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Mon, 8 Dec 2003 17:52:32 +0000 (17:52 +0000)]
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
Chris Lattner [Mon, 8 Dec 2003 08:23:04 +0000 (08:23 +0000)]
implement method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10321
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Dec 2003 08:22:48 +0000 (08:22 +0000)]
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
Chris Lattner [Mon, 8 Dec 2003 08:22:01 +0000 (08:22 +0000)]
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
Chris Lattner [Mon, 8 Dec 2003 08:06:28 +0000 (08:06 +0000)]
Finegrainify namespacification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10318
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Dec 2003 07:08:00 +0000 (07:08 +0000)]
Makefile updates contributed by Reid
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10317
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Dec 2003 06:33:19 +0000 (06:33 +0000)]
New bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10316
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 8 Dec 2003 06:22:05 +0000 (06:22 +0000)]
`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
Chris Lattner [Mon, 8 Dec 2003 06:18:37 +0000 (06:18 +0000)]
New testcase for PR165
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10314
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Dec 2003 05:43:19 +0000 (05:43 +0000)]
Add note about sucky suse compiler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10313
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Dec 2003 05:34:54 +0000 (05:34 +0000)]
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
Chris Lattner [Mon, 8 Dec 2003 05:32:48 +0000 (05:32 +0000)]
New testcase, this should be -tailcallelim'inated
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10311
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Dec 2003 05:29:33 +0000 (05:29 +0000)]
Since ssaification of the varargs builtings, the vaarg instruction no longer
can write to memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10310
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 8 Dec 2003 00:57:01 +0000 (00:57 +0000)]
Regenerated using autoheader-2.57
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10309
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Dec 2003 02:43:09 +0000 (02:43 +0000)]
Bugpoint had appalingly bad grammar. Fix some of it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10308
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Dec 2003 02:31:03 +0000 (02:31 +0000)]
Do not leave a bunch of crud lying around
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10307
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Dec 2003 01:44:18 +0000 (01:44 +0000)]
It is now after pldi. This issue has been fixed, so remove the hack
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10306
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Dec 2003 01:42:08 +0000 (01:42 +0000)]
Implement RaiseAllocations/FreeCastConstantExpr.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10305
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Dec 2003 01:25:36 +0000 (01:25 +0000)]
New testcase that the raiseallocations pass should be able to handle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10304
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Dec 2003 01:24:23 +0000 (01:24 +0000)]
* Finegrainify namespacification
* Transform: free <ty>* (cast <ty2>* X to <ty>*) into free <ty2>* X
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10303
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Dec 2003 00:55:32 +0000 (00:55 +0000)]
The recalclulate method was a nasty hack that was once used by the -cee pass,
which never worked itself. The cee pass still doesn't work, but it doesn't use
this method anymore anyway, so eliminate the method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10302
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Dec 2003 00:38:08 +0000 (00:38 +0000)]
Completely rewrite domset, idom, and domtree implementation. Now it is based
on the algorithm for directly computing immediate dominators presented in this
paper:
A Fast Algorithm for Finding Dominators in a Flowgraph
T. Lengauer & R. Tarjan, ACM TOPLAS July 1979, pgs 121-141.
This _substantially_ speeds up construction of all dominator related information.
Post-dominators to follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10301
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Dec 2003 00:36:16 +0000 (00:36 +0000)]
Rewrite dominators implementation. Now domset is constructed from immdom,
instead of the other way around.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10300
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Dec 2003 00:35:42 +0000 (00:35 +0000)]
Finegrainify namespacification
Move method out of generic dominators construction code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10299
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Dec 2003 00:35:19 +0000 (00:35 +0000)]
Move this method out of the generic dominators calculation code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10298
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Sat, 6 Dec 2003 23:01:25 +0000 (23:01 +0000)]
New command line parsing. This isn't as perfect as I would have liked. The CommandLine Library needs to be extended,
\7f\7f in order to parse the options and allow for optional dashes. In addition, the help option isn't correct since I do the parsing mostly myself. But this is in the o
\7fcorrect ar format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10297
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Dec 2003 20:59:45 +0000 (20:59 +0000)]
Stop using the -fshort-enum compile option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10296
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Dec 2003 20:24:46 +0000 (20:24 +0000)]
Fix awkward wording
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10295
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Dec 2003 20:22:41 +0000 (20:22 +0000)]
Cleanup the release notes in preparation for the release.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10294
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Fri, 5 Dec 2003 19:29:01 +0000 (19:29 +0000)]
Add check for pthread_mutex_lock() in -lpthread (or otherwise).
Regenerated configure w/ autoconf-2.57.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10293
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Fri, 5 Dec 2003 11:31:39 +0000 (11:31 +0000)]
Make assertion stricter. Since the source operands are allocated at
this point, the second operand must be a physical register (it cannot
be a virtual one).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10292
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Fri, 5 Dec 2003 11:17:55 +0000 (11:17 +0000)]
Fix bug in register spilling when a preallocated live range overlaps a
potential register assignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10291
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Fri, 5 Dec 2003 10:38:28 +0000 (10:38 +0000)]
Move operator<<(std::ostream&, const LiveInterval&) out of the header file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10290
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Fri, 5 Dec 2003 10:32:01 +0000 (10:32 +0000)]
Sort live intervals by increasing start point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10289
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 4 Dec 2003 03:57:28 +0000 (03:57 +0000)]
Improve debugging output and clean up some code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10288
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Dec 2003 17:43:55 +0000 (17:43 +0000)]
Finegrainify namespacification
Fix regressions ScalarRepl/basictest.ll & arraytest.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10287
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 1 Dec 2003 21:33:31 +0000 (21:33 +0000)]
Lock abstraction, introduced with a view toward making the JIT thread-safe.
Eventually.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10284
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Dec 2003 07:28:25 +0000 (07:28 +0000)]
Make stripped-bytecode a recursive target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10283
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Dec 2003 07:08:06 +0000 (07:08 +0000)]
Add new block number
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10281
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Dec 2003 07:05:31 +0000 (07:05 +0000)]
Emit & read more compressed bytecode by not emitting a bytecodeblock for
each basic block in function. Instead, just emit a stream of instructions,
chopping up basic blocks based on when we find terminator instructions. This
saves a fairly substantial chunk of bytecode space. In stripped, sample
cases, for example, we get this reduction in size:
197.parser: 163036 -> 137180: 18.8% reduction
254.gap : 844936 -> 689392: 22.6%
255.vortex: 621724 -> 528444: 17.7%
...
Not bad for something this simple. :) Note that this doesn't require a new
bytecode version number at all, though version 1.1 should not need to support
the old format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10280
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Dec 2003 05:40:37 +0000 (05:40 +0000)]
Remove unused enum value
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10279
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 1 Dec 2003 05:31:12 +0000 (05:31 +0000)]
This may fix the "0 dirs" stuff we get in the nightly tests when they are
checking out over remote cvs connections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10278
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Dec 2003 05:30:29 +0000 (05:30 +0000)]
Add some "useful" methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10277
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Dec 2003 05:18:30 +0000 (05:18 +0000)]
Add an option to enable the SSA based peephole optimizer.
Eventually this pass will provide substantially better code in the interim between when we
have a crappy isel and nice isel. Unfortunately doing so requires fixing the backend to
actually SUPPORT all of the fancy addressing modes that we now generate, and writing a DCE
pass for machine code. Each of these is a fairly substantial job, so this will remain disabled
for the immediate future. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10276
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Dec 2003 05:15:28 +0000 (05:15 +0000)]
Add a new SSA-based peephole optimizer which includes copy propagation and
folding of instructions into addressing modes. This creates lots of dead
instructions, which are currently not deleted. It also creates a lot of
instructions that the X86 backend currently cannot handle. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10275
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Dec 2003 05:13:56 +0000 (05:13 +0000)]
generalize the instruction types permitted a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10274
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Dec 2003 05:12:09 +0000 (05:12 +0000)]
fix broken link
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10273
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Sun, 30 Nov 2003 23:40:39 +0000 (23:40 +0000)]
Print instructions before register allocation is performed. Also fix
bug where spill instructions were added to the next basic block
instead of the end of the current one if the instruction that required
the spill was the last in the block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10272
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Nov 2003 09:22:42 +0000 (09:22 +0000)]
add missing dependency
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10271
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Nov 2003 06:13:25 +0000 (06:13 +0000)]
Finegrainify namespacification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10270
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Nov 2003 05:46:14 +0000 (05:46 +0000)]
A line was missing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10269
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Sun, 30 Nov 2003 05:15:36 +0000 (05:15 +0000)]
Remove "numReloaded" statistic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10268
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 30 Nov 2003 04:23:21 +0000 (04:23 +0000)]
Emit constants to one contiguous block, but this time, respect alignment constraints.
If this doesn't work Misha, feel free to revert it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10267
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Sun, 30 Nov 2003 00:50:53 +0000 (00:50 +0000)]
Go back to allocating memory for each constant separately. Since SPARCs do not
allow unaligned loads, that is probably the problem I've been seeing in numerous
SPARC test cases failing. X86, on the other hand, just slows down unaligned
accesses, since it must make 2 aligned accesses for each unaligned one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10266
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 20:04:13 +0000 (20:04 +0000)]
be 3.4 happy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10265
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 19:55:12 +0000 (19:55 +0000)]
be GCC 3.4 clean
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10264
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 19:55:02 +0000 (19:55 +0000)]
Hrm, how could this compile?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10263
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 19:45:47 +0000 (19:45 +0000)]
Fix compatibility with gcc 3.4
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10262
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 10:24:57 +0000 (10:24 +0000)]
Build _lib_crtend.a, not crtend.a
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10260
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 10:14:17 +0000 (10:14 +0000)]
Don't print out tons of crap
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10259
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 10:05:30 +0000 (10:05 +0000)]
Rewrite makefile logic to build an archive instead of a .o file. This is
intended to address PR142
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10257
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 09:50:15 +0000 (09:50 +0000)]
Simplify some rules
Move LGCCLDPROG from test/Makefile.tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10256
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 09:49:14 +0000 (09:49 +0000)]
Move rule to top-level makefile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10255
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 09:22:53 +0000 (09:22 +0000)]
Add readme and spiff up makefile header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10254
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 09:10:50 +0000 (09:10 +0000)]
Testcase for duplicated cleanup work (PR11). Note that this testcase is not actually
tested automatically, so it is practically useless. However, it seemed silly to throw
away my testcase, so here it is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10253
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 05:31:25 +0000 (05:31 +0000)]
Fix test: Transforms/LevelRaise/2003-11-28-IllegalTypeConversion.ll
Some gep generalization changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10252
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 29 Nov 2003 05:19:15 +0000 (05:19 +0000)]
new testcase for problem causing 2003-10-12-GlobalVarInitializers failures
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10251
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Nov 2003 09:44:03 +0000 (09:44 +0000)]
The function resolving pass must be run, even if -disable-opt is specified
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10250
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 28 Nov 2003 07:44:09 +0000 (07:44 +0000)]
* The return value of LinkLibraries is ignored, so remove it.
* Finegrainify namespacification of Linker.cpp
* If linking a library in fails, do not STOP LINKING IN LIBRARIES AND
CONTINUE ANYWAY! Instead, just output the warning, and keep going. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10249
91177308-0d34-0410-b5e6-
96231b3b80d8