Commit Graph

10248 Commits

Author SHA1 Message Date
Chris Lattner
e0def04e43 Fix PR225: [pruneeh] -pruneeh pass removes invoke instructions it shouldn't
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11200 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 21:15:59 +00:00
Chris Lattner
edb1cf0c19 splitBasicBlock "does the right thing" now, no reason to reposition it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11199 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 20:49:07 +00:00
Chris Lattner
127215e905 Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11198 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 19:59:05 +00:00
Chris Lattner
6d78457f17 Implement proper invoke/unwind lowering.
This fixed PR16 "[lowerinvoke] The -lowerinvoke pass does not insert calls to setjmp/longjmp"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11195 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 19:53:56 +00:00
Chris Lattner
8b391fb430 New testcase, code generators should support invoke/unwind
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11192 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 19:40:58 +00:00
Chris Lattner
23c4724369 Print out all globals as they are emitted, not just those emitted from
emitGlobals


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11191 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 19:33:23 +00:00
Chris Lattner
6c0398ed47 There is no reason to #define fd
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11190 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 19:33:07 +00:00
Brian Gaeke
4bb2969393 add pr105
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11189 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 18:49:13 +00:00
Brian Gaeke
79bf052531 Fix unterminated-quote typo in echo command
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11188 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 08:01:00 +00:00
Brian Gaeke
5c681b6dc2 Document automake as a build dependency because we use aclocal
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11187 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 07:49:04 +00:00
Brian Gaeke
4940c57a1e Move rules for regenerating autoconf files into this shell script.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11186 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 07:44:48 +00:00
Brian Gaeke
59932233c6 Remove rules for autoconf'ing files from top-level Makefile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11185 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 07:44:30 +00:00
Chris Lattner
e1c09309f2 Add a call to 'write' right before the call to abort() in the unwind path.
This causes the JIT, or LLC'd program to print out a nice message, explaining
WHY the program aborted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11184 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 07:30:29 +00:00
Brian Gaeke
973e3ec7db Fix indentation of selectiondag.
I don't know why its indentation has been bugging me, but it has.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11180 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 05:49:29 +00:00
Chris Lattner
2dea8d65bc Add one that I missed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11179 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 01:53:10 +00:00
Chris Lattner
c3f5f7701f Instead of callign removeTriviallyDeadNodes on the global graph every time
removeDeadNodes is called, only call it at the end of the pass being run.
This saves 1.3 seconds running DSA on 177.mesa (5.3->4.0s), which is
pretty big.  This is only possible because of the automatic garbage
collection done on forwarding nodes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11178 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 01:51:48 +00:00
Chris Lattner
cd90f21c0c Remove another unneeded call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11177 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 01:40:40 +00:00
Chris Lattner
cadfac6879 This call is no longer needed now that merging does not produce garbage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11176 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 01:38:34 +00:00
Chris Lattner
4ff0b9636d Substantially improve the DSA code by removing 'forwarding' nodes from
DSGraphs while they are forwarding.  When the last reference to the forwarding
node is dropped, the forwarding node is autodeleted.  This should simplify
removeTriviallyDead nodes, and is only (efficiently) possible because we are
using an ilist of dsnodes now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11175 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 01:27:18 +00:00
Chris Lattner
9857c1a6ae Bugfix for ilist conversion. The ilist wants to make an 'end' node which has
G == 0


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11174 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 01:05:37 +00:00
Chris Lattner
28897e1784 Switch the Nodes list from being an std::vector<DSNode*> to an ilist<DSNode>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11173 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 00:53:26 +00:00
Chris Lattner
2cca3008e8 One of the 'annoying' things about ilists is that the iterators don't behave
quite the same as for non-intrusive lists of pointers to nodes.  To support
transitioning code bases, add a new 'compatibility' iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11172 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 00:51:31 +00:00
Chris Lattner
9fd37ba721 Change to use node_iterators instead of direct access to Nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11171 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 00:23:16 +00:00
Chris Lattner
04364fb01e Change to use iterators instead of direct access
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11170 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 00:22:41 +00:00
Chris Lattner
f2592ce201 Minor change to breakpoint (lack of) support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11169 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 00:06:20 +00:00
Chris Lattner
e92e76446e getNodes() is gone, use node_begin/end instead
Rename stats from dsnode -> dsa
Add a new stat


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11167 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-07 23:58:05 +00:00
Chris Lattner
a84c681637 getNodes() is gone
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11166 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-07 23:57:26 +00:00
Chris Lattner
e187d56520 Abstract out the Nodes collection. Instead of providing a getNodes() method,
provide node_begin/end iterators, which are only guaranteed to be
bidirectional, not random access.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11165 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-07 23:57:09 +00:00
Chris Lattner
bee5ff3ae2 Actually USE isForwarding method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11160 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-07 23:02:32 +00:00
Chris Lattner
d1d2be3c16 As Alkis pointed out to me, I forgot to commit this... :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11159 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-07 22:54:19 +00:00
Chris Lattner
a5ca28cafe There is no need to clone over nodes that are going to be dead anyway
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11157 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-07 22:00:03 +00:00
Brian Gaeke
5616dc9ea6 Use autoconf answers from config.h (FIXME, should autoconf this file
directly instead).

Fix LockHolder/MutexLocker typo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11156 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-06 22:33:17 +00:00
Chris Lattner
5852a2bcb7 Add a missing link
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11154 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-06 20:27:41 +00:00
Misha Brukman
dadf3853e7 Fix grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11153 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-06 18:40:35 +00:00
Alkis Evlogimenos
f5eaf16b94 Increase code clarity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11151 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-06 18:08:18 +00:00
John Criswell
a6859b4715 Initial checking of the libpng library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11149 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-06 16:37:53 +00:00
John Criswell
2a9d717444 Initial checking of the zlib library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11148 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-06 16:36:42 +00:00
Chris Lattner
23f54fa655 Add information about the piece I forgot to write: parameterized tablegen classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11147 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-06 06:37:00 +00:00
Chris Lattner
fa6f30947b Syntax hilight examples and add note about emacs/vim mode files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11146 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-06 06:04:25 +00:00
Chris Lattner
b54c99c26b Add a new document describing TableGen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11145 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-06 05:42:53 +00:00
Chris Lattner
7b9ee51a55 Print the record NAME not the record ADDRESS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11144 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-06 03:19:17 +00:00
Alkis Evlogimenos
54d23c754a Eliminate uneeded lookups by passing a Virt2PhysMap::iterator instead
of the virtual register to certain functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11143 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-06 03:15:40 +00:00
Chris Lattner
99dcc1da86 Fix another dominator update bug. These bugs keep getting exposed because GCSE
keeps finding more code motion opportunities now that the dominators are correct!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11142 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 23:20:59 +00:00
Alkis Evlogimenos
0b8cb2bc47 Change live interval representation. Machine instructions now have two
slots each. As a concequence they get numbered as 0, 2, 4 and so
on. The first slot is used for operand uses and the second for
defs. Here's an example:

0: A = ...
2: B = ...
4: C = A + B ;; last use of A

The live intervals should look like:

A = [1, 5)
B = [3, x)
C = [5, y)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11141 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 22:55:25 +00:00
Chris Lattner
3e0b870def Fix bug updating dominators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11140 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 22:33:26 +00:00
Chris Lattner
79fc865ccb Add debug output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11139 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 22:33:19 +00:00
Chris Lattner
741f6b44c9 Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11138 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 21:16:42 +00:00
Chris Lattner
4f02fc28eb Fix PR223: Loopsimplify incorrectly updates dominator information
The problem is that the dominator update code didn't "realize" that it's
possible for the newly inserted basic block to dominate anything.  Because
it IS possible, stuff was getting updated wrong.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 21:12:24 +00:00
Chris Lattner
7f5dd4a4e0 New testcase for PR223: Loopsimplify incorrectly updates dominator information
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11136 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 21:11:38 +00:00
Alkis Evlogimenos
ad48cd6327 We don't need to scan the blocks that we are live-in on every
access. Rather we only have to do it on the creation of the interval.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11135 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-05 20:45:40 +00:00