oota-llvm.git
20 years agoAdd a new document describing the LLVM accurate garbage collection support.
Chris Lattner [Sun, 23 May 2004 21:02:20 +0000 (21:02 +0000)]
Add a new document describing the LLVM accurate garbage collection support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13667 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd a simple implementation of Andersen's interprocedural pointer analysis
Chris Lattner [Sun, 23 May 2004 21:00:47 +0000 (21:00 +0000)]
Add a simple implementation of Andersen's interprocedural pointer analysis

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13666 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFixed up my changes to add support for cloning Machine Instructions.
Tanya Lattner [Sun, 23 May 2004 20:58:02 +0000 (20:58 +0000)]
Fixed up my changes to add support for cloning Machine Instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13665 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRemove virtual destructor from InstVisitor. This class should never be
Alkis Evlogimenos [Sun, 23 May 2004 20:54:39 +0000 (20:54 +0000)]
Remove virtual destructor from InstVisitor. This class should never be
used through a base pointer/reference so inproper destruction should
never be an issue. Removing this last virtual function also saves 4
bytes off each InstVisitor instance.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13664 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a couple misplaced div tags
Chris Lattner [Sun, 23 May 2004 20:42:08 +0000 (20:42 +0000)]
Fix a couple misplaced div tags

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13663 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRevert back to the previous version, as it doesn't work with mozilla, and people...
Chris Lattner [Sun, 23 May 2004 20:29:35 +0000 (20:29 +0000)]
Revert back to the previous version, as it doesn't work with mozilla, and people REALLY CAN just click the link. :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13662 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdding support to clone MachineInstr
Tanya Lattner [Sun, 23 May 2004 19:35:12 +0000 (19:35 +0000)]
Adding support to clone MachineInstr

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13661 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdded a "Miscellaneous Improvements" section to cover things like the
Reid Spencer [Sun, 23 May 2004 17:23:13 +0000 (17:23 +0000)]
Added a "Miscellaneous Improvements" section to cover things like the
Bytecode File Format documentation, getting all documents in HTML 4.01
(Strict) compliance, and any other minor improvement that shoud be noted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13660 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake the file HTML 4.01 (Strict) clean.
Reid Spencer [Sun, 23 May 2004 17:12:45 +0000 (17:12 +0000)]
Make the file HTML 4.01 (Strict) clean.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13659 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdditional content describing variable bit rate encoding, correcting the
Reid Spencer [Sun, 23 May 2004 17:05:09 +0000 (17:05 +0000)]
Additional content describing variable bit rate encoding, correcting the
definition of the signature block and module block, and adding definitions
of the global type pool and symbol table. More still to come.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13658 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoPut back the inlined bug list. Use the OBJECT tag to make it HTML-4.01
Alkis Evlogimenos [Sun, 23 May 2004 11:10:55 +0000 (11:10 +0000)]
Put back the inlined bug list. Use the OBJECT tag to make it HTML-4.01
(Strict)-compliant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13655 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRemember the set of leaders. Also compute on demand and cache the equiv
Vikram S. Adve [Sun, 23 May 2004 08:05:14 +0000 (08:05 +0000)]
Remember the set of leaders.  Also compute on demand and cache the equiv
class for each leader.   Finally, rename Elem2ECLeaderMap to Elem2LeaderMap
(most of the changed lines are only due to the latter).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13651 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd getCaller() method.
Vikram S. Adve [Sun, 23 May 2004 08:02:45 +0000 (08:02 +0000)]
Add getCaller() method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13650 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoInline both direct and indirect callees in the CBU phase because
Vikram S. Adve [Sun, 23 May 2004 08:00:34 +0000 (08:00 +0000)]
Inline both direct and indirect callees in the CBU phase because
a direct callee may have indirect callees and so may have changed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13649 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoComplete rewrite of the code that merges DS graphs for equivalence classes
Vikram S. Adve [Sun, 23 May 2004 07:54:02 +0000 (07:54 +0000)]
Complete rewrite of the code that merges DS graphs for equivalence classes
of functions called at a common call site.  The rewrite inlines the
resulting graphs bottom-up on the SCCs of the CBU call graph.  It also
simplifies the merging of equivalence classes by exploiting the fact that
functions in non-trivial SCCs are already merged.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13645 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix size/offset assertion to allow negative offsets and folded nodes.
Vikram S. Adve [Sun, 23 May 2004 07:34:53 +0000 (07:34 +0000)]
Fix size/offset assertion to allow negative offsets and folded nodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13644 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a typo in a comment.
Brian Gaeke [Sun, 23 May 2004 05:10:06 +0000 (05:10 +0000)]
Fix a typo in a comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13643 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a typo in the head-of-file comment.
Brian Gaeke [Sun, 23 May 2004 05:04:00 +0000 (05:04 +0000)]
Fix a typo in the head-of-file comment.
Rewrite the comments about the different versions of BuildMI, to
better emphasize their differences.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13642 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSome additional data added to the bytecode specification.
Reid Spencer [Sat, 22 May 2004 05:56:41 +0000 (05:56 +0000)]
Some additional data added to the bytecode specification.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13626 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdded an initial template/overview for documentation of the LLVM Bytecode
Reid Spencer [Sat, 22 May 2004 02:28:36 +0000 (02:28 +0000)]
Added an initial template/overview for documentation of the LLVM Bytecode
file format. This format is being extracted from the source code and the
small recesses of Chris' brain.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13625 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRemoved the 64-bit fix from the "to do" list since the bug is fixed.
Reid Spencer [Sat, 22 May 2004 01:04:19 +0000 (01:04 +0000)]
Removed the 64-bit fix from the "to do" list since the bug is fixed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13624 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoPass the Makefile flags to recursive makes in {PARALLEL,OPTIONAL}_DIRS targets.
Misha Brukman [Fri, 21 May 2004 23:21:11 +0000 (23:21 +0000)]
Pass the Makefile flags to recursive makes in {PARALLEL,OPTIONAL}_DIRS targets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13623 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoIt's not clear to me whether the old version was correct C++ code, but in
Chris Lattner [Fri, 21 May 2004 18:38:16 +0000 (18:38 +0000)]
It's not clear to me whether the old version was correct C++ code, but in
any case it's not portable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13621 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoStarting an identifier with an _ is not legal C/C++ code.
Chris Lattner [Fri, 21 May 2004 18:37:13 +0000 (18:37 +0000)]
Starting an identifier with an _ is not legal C/C++ code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13620 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoBug fixed
Chris Lattner [Fri, 21 May 2004 16:48:20 +0000 (16:48 +0000)]
Bug fixed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13619 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix for PR340: Verifier misses malformed switch instruction
Chris Lattner [Fri, 21 May 2004 16:47:21 +0000 (16:47 +0000)]
Fix for PR340: Verifier misses malformed switch instruction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13618 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoTestcase for PR340: Verifier misses malformed switch instruction
Chris Lattner [Fri, 21 May 2004 16:47:02 +0000 (16:47 +0000)]
Testcase for PR340: Verifier misses malformed switch instruction

This testcase was reduced by John, thanks!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13617 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoPass given flags on to recursive sub-makes.
Misha Brukman [Fri, 21 May 2004 00:09:21 +0000 (00:09 +0000)]
Pass given flags on to recursive sub-makes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13616 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoChange DEPRECATED macro to ATTR_DEPRECATED as this conflicts with some
Alkis Evlogimenos [Thu, 20 May 2004 21:31:43 +0000 (21:31 +0000)]
Change DEPRECATED macro to ATTR_DEPRECATED as this conflicts with some
java constants.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13611 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix to make the CBE always emit comparisons inline. Hopefully this will
Chris Lattner [Thu, 20 May 2004 20:25:50 +0000 (20:25 +0000)]
Fix to make the CBE always emit comparisons inline.  Hopefully this will
fix the really bad code we're getting on PPC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13609 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a bug in outputting branches to constant PCs. Since the PC is supplied as
Brian Gaeke [Thu, 20 May 2004 07:43:40 +0000 (07:43 +0000)]
Fix a bug in outputting branches to constant PCs. Since the PC is supplied as
a full 64-bit address, it must be adjusted to fit in the branch instruction's
immediate field. (This is only used in the reoptimizer, for now.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13608 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMinor simplification: eliminate a dyn_cast.
Brian Gaeke [Wed, 19 May 2004 21:30:01 +0000 (21:30 +0000)]
Minor simplification: eliminate a dyn_cast.
Fix a typo in a debug message.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13607 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd hint about syntax-highlighting non-standardly-named LLVM Makefiles.
Misha Brukman [Wed, 19 May 2004 21:20:40 +0000 (21:20 +0000)]
Add hint about syntax-highlighting non-standardly-named LLVM Makefiles.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13606 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDeclare function defined in namespace llvm as gcc-3.4 doesn't accept a definition...
Alkis Evlogimenos [Wed, 19 May 2004 19:17:48 +0000 (19:17 +0000)]
Declare function defined in namespace llvm as gcc-3.4 doesn't accept a definition in a namespace of a non-declared function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13602 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd CloneTraceInto(), which is based on (and has mostly the same
Brian Gaeke [Wed, 19 May 2004 09:08:14 +0000 (09:08 +0000)]
Add CloneTraceInto(), which is based on (and has mostly the same
effects as) CloneFunctionInto().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13601 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMove RemapInstruction() to ValueMapper, so that it can be shared with
Brian Gaeke [Wed, 19 May 2004 09:08:12 +0000 (09:08 +0000)]
Move RemapInstruction() to ValueMapper, so that it can be shared with
CloneTrace, and because it is primarily an operation on ValueMaps.  It
is now a global (non-static) function which can be pulled in using
ValueMapper.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13600 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMinor aesthetic alignments; no functional changes.
Misha Brukman [Mon, 17 May 2004 22:28:21 +0000 (22:28 +0000)]
Minor aesthetic alignments; no functional changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13593 91177308-0d34-0410-b5e6-96231b3b80d8

20 years ago* Minor aesthetic alignment of iterator declarations
Misha Brukman [Mon, 17 May 2004 22:25:12 +0000 (22:25 +0000)]
* Minor aesthetic alignment of iterator declarations
* Removed redundant function comments

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13592 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDefine erase forwarding method on traces
Brian Gaeke [Mon, 17 May 2004 21:17:21 +0000 (21:17 +0000)]
Define erase forwarding method on traces

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13591 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFold two assertions with backwards error messages into one with a
Brian Gaeke [Mon, 17 May 2004 21:15:18 +0000 (21:15 +0000)]
Fold two assertions with backwards error messages into one with a
correct error message.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13590 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoClean up this pass somewhat:
Brian Gaeke [Fri, 14 May 2004 21:21:52 +0000 (21:21 +0000)]
Clean up this pass somewhat:

Add better comments, including a better head-of-file comment.
Prune #includes.
Fix a FIXME that Chris put here by using doInitialization().
Use DEBUG() to print out debug msgs.
Give names to basic blocks inserted by this pass.
Expand tabs.
Use InsertProfilingInitCall() from ProfilingUtils to insert the initialize call.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13581 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRename "User's Guide" to "Command Guide" to be consistent with current scheme.
Misha Brukman [Fri, 14 May 2004 20:29:11 +0000 (20:29 +0000)]
Rename "User's Guide" to "Command Guide" to be consistent with current scheme.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13580 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoIgnore generated ps files.
Misha Brukman [Fri, 14 May 2004 20:26:45 +0000 (20:26 +0000)]
Ignore generated ps files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13579 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoIgnore generated man files.
Misha Brukman [Fri, 14 May 2004 20:26:39 +0000 (20:26 +0000)]
Ignore generated man files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13578 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoIgnore generated HTML files.
Misha Brukman [Fri, 14 May 2004 20:26:34 +0000 (20:26 +0000)]
Ignore generated HTML files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13577 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThis is the stylesheet used by perldoc.com; we shall modify it as we see fit.
Misha Brukman [Fri, 14 May 2004 20:25:35 +0000 (20:25 +0000)]
This is the stylesheet used by perldoc.com; we shall modify it as we see fit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13576 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoPut outputs of each type into a separate subdirectory.
Misha Brukman [Fri, 14 May 2004 20:24:59 +0000 (20:24 +0000)]
Put outputs of each type into a separate subdirectory.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13575 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMore pods... work in progress
Brian Gaeke [Fri, 14 May 2004 19:50:33 +0000 (19:50 +0000)]
More pods... work in progress

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13574 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoUse <pre> instead of <p><tt> combo to decrease space used for code blocks.
Misha Brukman [Fri, 14 May 2004 19:04:07 +0000 (19:04 +0000)]
Use <pre> instead of <p><tt> combo to decrease space used for code blocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13573 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMention the --tool-args option that Brian and Chris added.
Misha Brukman [Fri, 14 May 2004 18:57:24 +0000 (18:57 +0000)]
Mention the --tool-args option that Brian and Chris added.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13572 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake link to HowToSubmitABug.html local instead of to LLVM website.
Misha Brukman [Fri, 14 May 2004 18:54:04 +0000 (18:54 +0000)]
Make link to HowToSubmitABug.html local instead of to LLVM website.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13571 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNAME section is supposed to have a brief description, for apropos(1) & whatis(1)
Brian Gaeke [Fri, 14 May 2004 18:31:13 +0000 (18:31 +0000)]
NAME section is supposed to have a brief description, for apropos(1) & whatis(1)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13570 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThis seems like as good a place as any to keep POD files.
Brian Gaeke [Fri, 14 May 2004 18:03:22 +0000 (18:03 +0000)]
This seems like as good a place as any to keep POD files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13569 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDon't keep track of references to LLVM BasicBlocks while emitting; use
Brian Gaeke [Fri, 14 May 2004 06:54:58 +0000 (06:54 +0000)]
Don't keep track of references to LLVM BasicBlocks while emitting; use
MachineBasicBlocks instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13568 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSupport MachineBasicBlock operands on RawFrm instructions.
Brian Gaeke [Fri, 14 May 2004 06:54:57 +0000 (06:54 +0000)]
Support MachineBasicBlock operands on RawFrm instructions.
Get rid of separate numbering for LLVM BasicBlocks; use the automatically
generated MachineBasicBlock numbering.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13567 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoGenerate branch machine instructions with MachineBasicBlock operands instead of
Brian Gaeke [Fri, 14 May 2004 06:54:56 +0000 (06:54 +0000)]
Generate branch machine instructions with MachineBasicBlock operands instead of
LLVM BasicBlock operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13566 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThis was not meant to be committed
Chris Lattner [Thu, 13 May 2004 20:56:34 +0000 (20:56 +0000)]
This was not meant to be committed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13565 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a nasty bug that caused us to unroll EXTREMELY large loops due to overflow
Chris Lattner [Thu, 13 May 2004 20:43:31 +0000 (20:43 +0000)]
Fix a nasty bug that caused us to unroll EXTREMELY large loops due to overflow
in the size calculation.

This is not something you want to see:
Loop Unroll: F[main] Loop %no_exit Loop Size = 2 Trip Count = 2147483648 - UNROLLING!

The problem was that 2*2147483648 == 0.

Now we get:
Loop Unroll: F[main] Loop %no_exit Loop Size = 2 Trip Count = 2147483648 - TOO LARGE: 4294967296>100

Thanks to some anonymous person playing with the demo page that repeatedly
caused zion to go into swapping land.  That's one way to ensure you'll get
a quick bugfix.  :)

Testcase here: Transforms/LoopUnroll/2004-05-13-DontUnrollTooMuch.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13564 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase that used to cause the unroller to try to unroll the loop 2G times. :(
Chris Lattner [Thu, 13 May 2004 20:43:15 +0000 (20:43 +0000)]
New testcase that used to cause the unroller to try to unroll the loop 2G times.  :(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13563 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSpecify units in padding length.
Misha Brukman [Thu, 13 May 2004 16:37:52 +0000 (16:37 +0000)]
Specify units in padding length.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13560 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake page HTML-4.01 compliant (& => &amp; in URL).
Misha Brukman [Thu, 13 May 2004 16:37:23 +0000 (16:37 +0000)]
Make page HTML-4.01 compliant (& => &amp; in URL).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13559 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoTwo more improvements for null pointer handling: storing a null pointer
Chris Lattner [Thu, 13 May 2004 15:26:48 +0000 (15:26 +0000)]
Two more improvements for null pointer handling: storing a null pointer
and passing a null pointer into a function.

For this testcase:

void %test(int** %X) {
  store int* null, int** %X
  call void %test(int** null)
  ret void
}

we now generate this:

test:
        sub %ESP, 12
        mov %EAX, DWORD PTR [%ESP + 16]
        mov DWORD PTR [%EAX], 0
        mov DWORD PTR [%ESP], 0
        call test
        add %ESP, 12
        ret

instead of this:

test:
        sub %ESP, 12
        mov %EAX, DWORD PTR [%ESP + 16]
        mov %ECX, 0
        mov DWORD PTR [%EAX], %ECX
        mov %EAX, 0
        mov DWORD PTR [%ESP], %EAX
        call test
        add %ESP, 12
        ret

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13558 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSecond half of my fixed-sized-alloca patch. This folds the LEA to compute
Chris Lattner [Thu, 13 May 2004 15:12:43 +0000 (15:12 +0000)]
Second half of my fixed-sized-alloca patch.  This folds the LEA to compute
the alloca address into common operations like loads/stores.

In a simple testcase like this (which is just designed to excersize the
alloca A, nothing more):

int %test(int %X, bool %C) {
        %A = alloca int
        store int %X, int* %A
        store int* %A, int** %G
        br bool %C, label %T, label %F
T:
        call int %test(int 1, bool false)
        %V = load int* %A
        ret int %V
F:
        call int %test(int 123, bool true)
        %V2 = load int* %A
        ret int %V2
}

We now generate:

test:
        sub %ESP, 12
        mov %EAX, DWORD PTR [%ESP + 16]
        mov %CL, BYTE PTR [%ESP + 20]
***     mov DWORD PTR [%ESP + 8], %EAX
        mov %EAX, OFFSET G
        lea %EDX, DWORD PTR [%ESP + 8]
        mov DWORD PTR [%EAX], %EDX
        test %CL, %CL
        je .LBB2 # PC rel: F
.LBB1:  # T
        mov DWORD PTR [%ESP], 1
        mov DWORD PTR [%ESP + 4], 0
        call test
***     mov %EAX, DWORD PTR [%ESP + 8]
        add %ESP, 12
        ret
.LBB2:  # F
        mov DWORD PTR [%ESP], 123
        mov DWORD PTR [%ESP + 4], 1
        call test
***     mov %EAX, DWORD PTR [%ESP + 8]
        add %ESP, 12
        ret

Instead of:

test:
        sub %ESP, 20
        mov %EAX, DWORD PTR [%ESP + 24]
        mov %CL, BYTE PTR [%ESP + 28]
***     lea %EDX, DWORD PTR [%ESP + 16]
***     mov DWORD PTR [%EDX], %EAX
        mov %EAX, OFFSET G
        mov DWORD PTR [%EAX], %EDX
        test %CL, %CL
***     mov DWORD PTR [%ESP + 12], %EDX
        je .LBB2 # PC rel: F
.LBB1:  # T
        mov DWORD PTR [%ESP], 1
        mov %EAX, 0
        mov DWORD PTR [%ESP + 4], %EAX
        call test
***     mov %EAX, DWORD PTR [%ESP + 12]
***     mov %EAX, DWORD PTR [%EAX]
        add %ESP, 20
        ret
.LBB2:  # F
        mov DWORD PTR [%ESP], 123
        mov %EAX, 1
        mov DWORD PTR [%ESP + 4], %EAX
        call test
***     mov %EAX, DWORD PTR [%ESP + 12]
***     mov %EAX, DWORD PTR [%EAX]
        add %ESP, 20
        ret

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13557 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSubstantially improve code generation for address exposed locals (aka fixed
Chris Lattner [Thu, 13 May 2004 07:40:27 +0000 (07:40 +0000)]
Substantially improve code generation for address exposed locals (aka fixed
sized allocas in the entry block).  Instead of generating code like this:

entry:
  reg1024 = ESP+1234
... (much later)
  *reg1024 = 17

Generate code that looks like this:
entry:
  (no code generated)
... (much later)
  t = ESP+1234
  *t = 17

The advantage being that we DRAMATICALLY reduce the register pressure for these
silly temporaries (they were all being spilled to the stack, resulting in very
silly code).  This is actually a manual implementation of rematerialization :)

I have a patch to fold the alloca address computation into loads & stores, which
will make this much better still, but just getting this right took way too much time
and I'm sleepy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13554 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoReduce line length to about 80 chars.
Reid Spencer [Thu, 13 May 2004 03:40:27 +0000 (03:40 +0000)]
Reduce line length to about 80 chars.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13538 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoInsert spacing between the table and the next section.
Misha Brukman [Thu, 13 May 2004 00:37:23 +0000 (00:37 +0000)]
Insert spacing between the table and the next section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13523 91177308-0d34-0410-b5e6-96231b3b80d8

20 years ago* Use stylesheets for table borders so we factor out the formatting and can
Misha Brukman [Thu, 13 May 2004 00:24:43 +0000 (00:24 +0000)]
* Use stylesheets for table borders so we factor out the formatting and can
  adjust it much easier. Also changed border to gray to fit into the current
  color scheme.
* Convert < and > to &lt; and &gt;, respectively.
* Wrap long lines at 80 cols

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13522 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a comment.
Brian Gaeke [Wed, 12 May 2004 21:57:23 +0000 (21:57 +0000)]
Fix a comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13518 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a really nasty bug from my changes on Monday to PHIElim. These changes
Chris Lattner [Wed, 12 May 2004 21:47:57 +0000 (21:47 +0000)]
Fix a really nasty bug from my changes on Monday to PHIElim.  These changes
broke obsequi and a lot of other things.  It all boiled down to MBB being
overloaded in an inner scope and me confusing it with the one in the outer
scope.  Ugh!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13517 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoBreak lines at 80 cols; eliminate extra space caused by a single <p> tag on a
Misha Brukman [Wed, 12 May 2004 21:46:05 +0000 (21:46 +0000)]
Break lines at 80 cols; eliminate extra space caused by a single <p> tag on a
line by itself.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13516 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoStart NextMBBNumber out at zero.
Brian Gaeke [Wed, 12 May 2004 21:35:23 +0000 (21:35 +0000)]
Start NextMBBNumber out at zero.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13515 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd non-const MachineBasicBlock::getParent() accessor method.
Brian Gaeke [Wed, 12 May 2004 21:35:22 +0000 (21:35 +0000)]
Add non-const MachineBasicBlock::getParent() accessor method.

MBBs start out as #-1. When a MBB is added to a MachineFunction, it
gets the next available unique MBB number. If it is removed from a
MachineFunction, it goes back to being #-1.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13514 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd a NextMBBNumber field w/ incrementing accessor method, for
Brian Gaeke [Wed, 12 May 2004 21:35:21 +0000 (21:35 +0000)]
Add a NextMBBNumber field w/ incrementing accessor method, for
function-level unique numbering of MBBs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13513 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd a Number field w/ accessor method, for function-level unique numbering
Brian Gaeke [Wed, 12 May 2004 21:35:20 +0000 (21:35 +0000)]
Add a Number field w/ accessor method, for function-level unique numbering
of MBBs.

Add non-const MachineBasicBlock::getParent() accessor method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13512 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake the subsubsections stand out a bit more
Chris Lattner [Wed, 12 May 2004 21:28:08 +0000 (21:28 +0000)]
Make the subsubsections stand out a bit more

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13511 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThese images have been moved to img/
Misha Brukman [Wed, 12 May 2004 21:26:39 +0000 (21:26 +0000)]
These images have been moved to img/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13510 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoUse the images in the img/ directory.
Misha Brukman [Wed, 12 May 2004 21:26:16 +0000 (21:26 +0000)]
Use the images in the img/ directory.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13509 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFinally, switch to a stylesheet that makes the documentation easier on the eyes
Misha Brukman [Wed, 12 May 2004 21:20:56 +0000 (21:20 +0000)]
Finally, switch to a stylesheet that makes the documentation easier on the eyes
and consistent with the LLVM website.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13508 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoCentralize images in this dir; add lines.gif from website for consistent
Misha Brukman [Wed, 12 May 2004 21:20:13 +0000 (21:20 +0000)]
Centralize images in this dir; add lines.gif from website for consistent
formatting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13507 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake file use stylesheets and be HTML-4.01 (Strict)-compliant.
Misha Brukman [Wed, 12 May 2004 20:57:43 +0000 (20:57 +0000)]
Make file use stylesheets and be HTML-4.01 (Strict)-compliant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13506 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMade document HTML-4.01 (Strict)-compliant.
Misha Brukman [Wed, 12 May 2004 19:52:00 +0000 (19:52 +0000)]
Made document HTML-4.01 (Strict)-compliant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13505 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake file standard-compliant once again.
Misha Brukman [Wed, 12 May 2004 19:25:59 +0000 (19:25 +0000)]
Make file standard-compliant once again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13504 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMade file comply with HTML-4.01 (Strict)
Misha Brukman [Wed, 12 May 2004 19:21:57 +0000 (19:21 +0000)]
Made file comply with HTML-4.01 (Strict)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13503 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoTurn the block extractor on by default now that it basically works, eliminating the...
Chris Lattner [Wed, 12 May 2004 19:02:44 +0000 (19:02 +0000)]
Turn the block extractor on by default now that it basically works, eliminating the option.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13502 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMade file HTML-4.01 (Strict)-compliant.
Misha Brukman [Wed, 12 May 2004 18:57:54 +0000 (18:57 +0000)]
Made file HTML-4.01 (Strict)-compliant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13501 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMade to be HTML-4.01 (Strict)-compliant.
Misha Brukman [Wed, 12 May 2004 18:49:47 +0000 (18:49 +0000)]
Made to be HTML-4.01 (Strict)-compliant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13500 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMade to be HTML-4.01 (Strict) -compliant.
Misha Brukman [Wed, 12 May 2004 18:42:35 +0000 (18:42 +0000)]
Made to be HTML-4.01 (Strict) -compliant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13499 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd proper footer since this file is HTML-4.01 compliant.
Misha Brukman [Wed, 12 May 2004 18:37:22 +0000 (18:37 +0000)]
Add proper footer since this file is HTML-4.01 compliant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13498 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake document HTML-4.01 (Strict) compliant.
Misha Brukman [Wed, 12 May 2004 18:31:21 +0000 (18:31 +0000)]
Make document HTML-4.01 (Strict) compliant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13497 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix grammar: remove `the' before LLVM.
Misha Brukman [Wed, 12 May 2004 18:02:00 +0000 (18:02 +0000)]
Fix grammar: remove `the' before LLVM.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13496 91177308-0d34-0410-b5e6-96231b3b80d8

20 years ago* Make the document format follow the stringent purple standards (like the rest
Misha Brukman [Wed, 12 May 2004 18:00:48 +0000 (18:00 +0000)]
* Make the document format follow the stringent purple standards (like the rest
  of the documentation)
* Do not make the link text be the link itself, use some keywords
* Make doc use stylesheets and HTML markup for lists instead of definitions
* Shorten page by not making multiple lines per link with description + link of
  the same name as the target

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13495 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoPass boolean constants into function calls more efficiently, generating:
Chris Lattner [Wed, 12 May 2004 16:35:04 +0000 (16:35 +0000)]
Pass boolean constants into function calls more efficiently, generating:

        mov DWORD PTR [%ESP + 4], 1

instead of:

        mov %EAX, 1
        mov DWORD PTR [%ESP + 4], %EAX

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13494 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDo not pass in the same argument to the extracted function more than once, and
Chris Lattner [Wed, 12 May 2004 16:26:18 +0000 (16:26 +0000)]
Do not pass in the same argument to the extracted function more than once, and
give the extracted function a more useful name than just foo_code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13493 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoCheck to see if all blocks are extractible first.
Chris Lattner [Wed, 12 May 2004 16:08:01 +0000 (16:08 +0000)]
Check to see if all blocks are extractible first.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13491 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement support for code extracting basic blocks that have a return
Chris Lattner [Wed, 12 May 2004 16:07:41 +0000 (16:07 +0000)]
Implement support for code extracting basic blocks that have a return
instruction in them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13490 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement splitting of PHI nodes, allowing block extraction of BB's that have
Chris Lattner [Wed, 12 May 2004 15:29:13 +0000 (15:29 +0000)]
Implement splitting of PHI nodes, allowing block extraction of BB's that have
PHI node entries from multiple outside-the-region blocks.  This also fixes
extraction of the entry block in a function.  Yaay.

This has successfully block extracted all (but one) block from the score_move
function in obsequi (out of 33).  Hrm, I wonder which block the bug is in.  :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13489 91177308-0d34-0410-b5e6-96231b3b80d8

20 years ago* Pull some code out into the definedInRegion/definedInCaller methods
Chris Lattner [Wed, 12 May 2004 06:01:40 +0000 (06:01 +0000)]
* Pull some code out into the definedInRegion/definedInCaller methods
* Add a stub for the severSplitPHINodes which will allow us to bbextract
  bb's with PHI nodes in them soon.
* Remove unused arguments from findInputsOutputs
* Dramatically simplify the code in findInputsOutputs.  In particular,
  nothing really cares whether or not a PHI node is using something.
* Move moveCodeToFunction to after emitCallAndSwitchStatement as that's the
  order they get called.
* Fix a bug where we would code extract a region that included a call to
  vastart.  Like 'alloca', calls to vastart must stay in the function that
  they are defined in.
* Add some comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13482 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoGenerate substantially better code when there are a limited number of exits
Chris Lattner [Wed, 12 May 2004 04:14:24 +0000 (04:14 +0000)]
Generate substantially better code when there are a limited number of exits
from the extracted region.  If the return has 0 or 1 exit blocks, the new
function returns void.  If it has 2 exits, it returns bool, otherwise it
returns a ushort as before.

This allows us to use a conditional branch instruction when there are two
exit blocks, as often happens during block extraction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13481 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoTwo minor improvements:
Chris Lattner [Wed, 12 May 2004 03:22:33 +0000 (03:22 +0000)]
Two minor improvements:
  1. Get rid of the silly abort block.  When doing bb extraction, we get one
     abort block for every block extracted, which is kinda annoying.
  2. If the switch ends up having a single destination, turn it into an
     unconditional branch.

I would like to add support for conditional branches, but to do this we will
want to have the function return a bool instead of a ushort.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13478 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDon't leave dead bytecode.output files around if the optimizer/block extractor crashes.
Chris Lattner [Wed, 12 May 2004 02:55:45 +0000 (02:55 +0000)]
Don't leave dead bytecode.output files around if the optimizer/block extractor crashes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13477 91177308-0d34-0410-b5e6-96231b3b80d8