Chris Lattner [Sun, 23 May 2004 21:31:00 +0000 (21:31 +0000)]
Testcases for andersen's alias analysis.
I think this is all of the stuff I had pending in my tree..
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13703
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:27:29 +0000 (21:27 +0000)]
Spelling people's names right is kinda important
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13702
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:26:29 +0000 (21:26 +0000)]
Build the garbage collectors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13701
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:25:59 +0000 (21:25 +0000)]
Initial checkin of GC implementation support files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13700
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 23 May 2004 21:25:50 +0000 (21:25 +0000)]
Create a new style for tables that have no width (.doc_table_nw) so the
table doesn't stretch across the whole page. Change for BytecodeFormat.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13699
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:25:45 +0000 (21:25 +0000)]
Check in an EARLY START on a simple copying collector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13698
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:24:50 +0000 (21:24 +0000)]
Add a simple testcase for garbage collection support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13697
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:23:35 +0000 (21:23 +0000)]
Add support for accurate garbage collection to the LLVM code generators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13696
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:23:12 +0000 (21:23 +0000)]
Add some notes to myself, no functional changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13695
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:22:55 +0000 (21:22 +0000)]
minor wording change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13694
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:22:17 +0000 (21:22 +0000)]
Fix cases where we missed inlining some more obvious candidates because the
caller was in an SCC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13693
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:21:35 +0000 (21:21 +0000)]
Simplify the interface and remove an unneeded #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13692
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:21:17 +0000 (21:21 +0000)]
Fairly substantial changes to update the alias analysis we are querying as
we make the transformation. This allows us to use interprocedural alias
analyses successfully.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13691
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:20:19 +0000 (21:20 +0000)]
Adjust to the changes in the AliasSetTracker interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13690
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:19:55 +0000 (21:19 +0000)]
Add support for replacement of formal arguments with simpler expressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13689
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:19:22 +0000 (21:19 +0000)]
Implement the -lowergc pass which is used by code generators (like the CBE)
that do not have builtin support for garbage collection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13688
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:16:51 +0000 (21:16 +0000)]
Recognize and verify the new GC intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13687
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:16:33 +0000 (21:16 +0000)]
Add the new GC intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13686
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:16:13 +0000 (21:16 +0000)]
Add a new prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13685
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:15:48 +0000 (21:15 +0000)]
Changes to work with the changes to the AliasAnalysis interface. The -no-aa
class is now in the BasicAliasAnalysis.cpp file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13684
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:15:12 +0000 (21:15 +0000)]
Move the -no-aa AA implementation into this file since both of these
alias analysis implementations are special: they do not autoforward to a
chained implementation of alias analysis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13683
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:14:27 +0000 (21:14 +0000)]
Updates to work with the new auto-forwarding AA interface changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13682
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:14:09 +0000 (21:14 +0000)]
Fix a really nasty bug with the -disable-ds-field-sensitivity option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13681
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:13:51 +0000 (21:13 +0000)]
Update to match the autochaining interface that the AA interface uses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13680
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:13:24 +0000 (21:13 +0000)]
Implement the interfaces to update value numbering information. Add an
assert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13679
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:12:38 +0000 (21:12 +0000)]
Several *major* changes to the AA interfaces:
1. Provide interfaces so that clients can update alias analyses to reflect
the changes made by the transformations.
2. Change how alias analysis implementations work overall. In particular,
now clients will automatically forward to chained AA implementations: they
don't have to remember to do it themselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13678
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:11:17 +0000 (21:11 +0000)]
Add interfaces to update value numbering results
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13677
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:10:58 +0000 (21:10 +0000)]
Rename a method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13676
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:07:27 +0000 (21:07 +0000)]
Make use of the new doc_author class. "Seperate content from presentation" they said.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13675
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:06:58 +0000 (21:06 +0000)]
Lots of minor cleanups and clarifications
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13674
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:06:21 +0000 (21:06 +0000)]
Remove implemented stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13673
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:06:01 +0000 (21:06 +0000)]
Describe the new garbage collector intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13672
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:05:39 +0000 (21:05 +0000)]
Lots of minor fixes and formatting improvements
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13671
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:05:07 +0000 (21:05 +0000)]
Update the coding standards, removign the bit about avoiding exceptions and
rtti (they shouldn't be used in the main compiler, but that's because
optimizations aren't allowed to fail!)
Remove the big section about iterators, because people who do not know what
they are doing shouldn't be writing them. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13670
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:04:01 +0000 (21:04 +0000)]
Substantially expand and update the alias analysis documentation, including
adding blurbs about all of the implementations we have
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13669
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 May 2004 21:03:30 +0000 (21:03 +0000)]
Various changes to make the docs look nicer. Add a new doc_author class.
The one thing that someone (misha?) should look at is fixing doc_code so that it sizes to fit the code instead of going to the right margin all of the way. Fixing it at a particular number of pixels was just wrong. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13668
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Misha Brukman [Thu, 13 May 2004 16:37:23 +0000 (16:37 +0000)]
Make page HTML-4.01 compliant (& => & in URL).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13559
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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