Commit Graph

9394 Commits

Author SHA1 Message Date
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
Chris Lattner 63c08be5e7 New testcase, this should be -tailcallelim'inated
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10311 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 05:32:48 +00:00
Chris Lattner a08bca95a7 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
2003-12-08 05:29:33 +00:00
Brian Gaeke 4768dc5705 Regenerated using autoheader-2.57
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10309 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08 00:57:01 +00:00
Chris Lattner de9750def7 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
2003-12-07 02:43:09 +00:00
Chris Lattner 1b747167da 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
2003-12-07 02:31:03 +00:00
Chris Lattner 1dcf7bc6a9 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
2003-12-07 01:44:18 +00:00
Chris Lattner eb12cd67dd Implement RaiseAllocations/FreeCastConstantExpr.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10305 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-07 01:42:08 +00:00
Chris Lattner 120fb19e1b 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
2003-12-07 01:25:36 +00:00
Chris Lattner 67b1e1b89f * 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
2003-12-07 01:24:23 +00:00
Chris Lattner eae45cf44b 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
2003-12-07 00:55:32 +00:00
Chris Lattner 16addf87bf 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
2003-12-07 00:38:08 +00:00
Chris Lattner 31b935357d 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
2003-12-07 00:36:16 +00:00
Chris Lattner cd7c287730 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
2003-12-07 00:35:42 +00:00
Chris Lattner 677d027ace 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
2003-12-07 00:35:19 +00:00
Tanya Lattner 57bd796604 New command line parsing. This isn't as perfect as I would have liked. The CommandLine Library needs to be extended, 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 ocorrect ar format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10297 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-06 23:01:25 +00:00
Chris Lattner d180300c92 Stop using the -fshort-enum compile option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10296 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-06 20:59:45 +00:00
Chris Lattner 7fcfac033e Fix awkward wording
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10295 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-06 20:24:46 +00:00
Chris Lattner a509996df2 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
2003-12-06 20:22:41 +00:00
Brian Gaeke 5f268f7760 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
2003-12-05 19:29:01 +00:00
Alkis Evlogimenos a327e7fea9 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
2003-12-05 11:31:39 +00:00
Alkis Evlogimenos 49787e35c3 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
2003-12-05 11:17:55 +00:00
Alkis Evlogimenos b27ef248f5 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
2003-12-05 10:38:28 +00:00
Alkis Evlogimenos 91ceae6d20 Sort live intervals by increasing start point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10289 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-05 10:32:01 +00:00
Alkis Evlogimenos 69546d5f84 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
2003-12-04 03:57:28 +00:00
Chris Lattner d866473094 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
2003-12-02 17:43:55 +00:00
Brian Gaeke 59e47e3ee1 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
2003-12-01 21:33:31 +00:00