Chris Lattner [Fri, 4 Oct 2002 14:50:20 +0000 (14:50 +0000)]
Handle post dominance correctly in the case where blocks do not have a path to
the exit node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4038
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 4 Oct 2002 14:45:48 +0000 (14:45 +0000)]
Fix a nasty problem with dominance calculation for unreachable blocks.
If we had a CFG that look like Entry -> B, Unreachable -> B, then we would
not correctly determine that Entry dominated B, because Entry did not
apparently dominate "unreachable". This patch fixes this by making the entry
node dominate all blocks, including unreachable ones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4037
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 3 Oct 2002 21:55:28 +0000 (21:55 +0000)]
Prune function nodes that are no longer referenced due to inlining
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4036
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 3 Oct 2002 21:55:13 +0000 (21:55 +0000)]
sgefa uses truely huge data structures nodes. Only print part of them if they
are so big
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4035
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 3 Oct 2002 21:08:20 +0000 (21:08 +0000)]
The wall clock timer (implementing using the RTC or cycle counter on x86) is
so much more accurate than the per process timers that we get better results
(less noise) by sorting according to wall time than process time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4034
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 3 Oct 2002 21:06:38 +0000 (21:06 +0000)]
Handle bug exposed by power benchmark
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4033
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Hildenbrandt [Thu, 3 Oct 2002 20:47:24 +0000 (20:47 +0000)]
Add parens around constant calls to getelemptr to properly associate the reference
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4032
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 3 Oct 2002 20:38:41 +0000 (20:38 +0000)]
Reimplement/port the Bottom Up Closure pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4031
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 3 Oct 2002 20:06:33 +0000 (20:06 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4030
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 22:14:38 +0000 (22:14 +0000)]
DataStructure.h doesn't include DSGraph.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4029
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 22:14:17 +0000 (22:14 +0000)]
Remove commented out stuff
DataStructure.h doesn't include DSGraph.h now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4028
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 21:55:52 +0000 (21:55 +0000)]
Move GlobalDSGraph class defn to the end of the file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4027
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 21:55:24 +0000 (21:55 +0000)]
This file doesn't need Pass.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4026
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Hildenbrandt [Wed, 2 Oct 2002 21:14:33 +0000 (21:14 +0000)]
I was wrong on the removing of those references on the last commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4023
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 21:12:13 +0000 (21:12 +0000)]
* Implement the getc() function
* Support usage of stdin, stdout & stderr correctly in LLI!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4022
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 21:11:16 +0000 (21:11 +0000)]
Cleanup #includes, expose module
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4021
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 21:10:48 +0000 (21:10 +0000)]
Expose TD to ExternalFunctions.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4020
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 19:38:55 +0000 (19:38 +0000)]
- Print the predecessors of a basic block instead of the number of uses of
the block in the AsmWriter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4019
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 18:53:14 +0000 (18:53 +0000)]
Fix bug: 2002-10-02-SignExtensionProblem.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4017
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Hildenbrandt [Wed, 2 Oct 2002 18:34:51 +0000 (18:34 +0000)]
Removed unneeded reference and dereferences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4016
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 18:32:38 +0000 (18:32 +0000)]
New testcase for a problem discovered in the SPECINT gzip benchmark.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4015
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Hildenbrandt [Wed, 2 Oct 2002 18:32:35 +0000 (18:32 +0000)]
Cleaned up my last check-in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4014
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Hildenbrandt [Wed, 2 Oct 2002 18:20:18 +0000 (18:20 +0000)]
No longer include malloc.h. If protoypes are needed for memory functions they will be present in the byte code and the generated c as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4013
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 06:24:36 +0000 (06:24 +0000)]
* Implement fully general merging of array subscripts on demand! This
does not handle the initial pointer index case yet though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4012
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 06:24:29 +0000 (06:24 +0000)]
* Implement fully general merging of array subscripts on demand! This
does not handle the initial pointer index case yet though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4011
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 05:17:55 +0000 (05:17 +0000)]
When printing DS nodes, print the mergemap index as well to allow easier
debugging of merging process.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4010
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 04:58:12 +0000 (04:58 +0000)]
Checkin the "meat" of the Data structure graph itself. I forgot to check
this in before. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4009
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 2 Oct 2002 04:57:39 +0000 (04:57 +0000)]
* Significant rework of DSNode to support arbitrary aliasing due to merging
* Now all and any bytes of a DSNode can be merged together individually. This
is neccesary to support the full generality of C and support aliasing
correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4008
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 23:41:17 +0000 (23:41 +0000)]
- Remove the User::eraseOperand method which is never used, really
dangerous, and not something we want to expose.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4007
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 23:17:09 +0000 (23:17 +0000)]
Do some cleanups to the Type and Constant section to remove latex stuff
There is still a lot of cleanup and fleshing out required here, but at least
it gets rid of the flagrantly bad parts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4006
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 22:41:01 +0000 (22:41 +0000)]
Temporary change to make datastructure stuff link in right
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4005
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 22:40:31 +0000 (22:40 +0000)]
Changes to work with Statistics rework
* Renamed StatisticReporter.h/cpp to Statistic.h/cpp
* Broke constructor to take two const char * arguments instead of one, so
that indendation can be taken care of automatically.
* Sort the list by pass name when printing
* Make sure to print all statistics as a group, instead of randomly when
the statistics dtors are called.
* Updated ProgrammersManual with new semantics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4004
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 22:39:41 +0000 (22:39 +0000)]
Update manual to reflect recent changes in the Statistic class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4003
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 22:38:41 +0000 (22:38 +0000)]
Updates to work with recent Statistic's changes:
* Renamed StatisticReporter.h/cpp to Statistic.h/cpp
* Broke constructor to take two const char * arguments instead of one, so
that indendation can be taken care of automatically.
* Sort the list by pass name when printing
* Make sure to print all statistics as a group, instead of randomly when
the statistics dtors are called.
* Updated ProgrammersManual with new semantics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4002
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 22:38:37 +0000 (22:38 +0000)]
Updates to work with recent Statistic's changes:
* Renamed StatisticReporter.h/cpp to Statistic.h/cpp
* Broke constructor to take two const char * arguments instead of one, so
that indendation can be taken care of automatically.
* Sort the list by pass name when printing
* Make sure to print all statistics as a group, instead of randomly when
the statistics dtors are called.
* Updated ProgrammersManual with new semantics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4001
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 22:36:35 +0000 (22:36 +0000)]
Build subdirs in parallel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4000
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 22:35:45 +0000 (22:35 +0000)]
- Rework Statistics:
* Renamed StatisticReporter.h/cpp to Statistic.h/cpp
* Broke constructor to take two const char * arguments instead of one, so
that indendation can be taken care of automatically.
* Sort the list by pass name when printing
* Make sure to print all statistics as a group, instead of randomly when
the statistics dtors are called.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3999
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 22:34:45 +0000 (22:34 +0000)]
Check in DataStructure rewrite so far.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3998
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 22:34:12 +0000 (22:34 +0000)]
Initial checkin of Steensgaards context insensitive flow insensitive
alias analysis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3997
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 22:33:50 +0000 (22:33 +0000)]
Checkin some major reworks of data structure analysis. This is not done,
nor does it work very well, but I need to get it checked in before I break
the tree unintentionally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3996
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 20:12:06 +0000 (20:12 +0000)]
Make sure to use the TimerGroup that we created!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3995
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 20:08:11 +0000 (20:08 +0000)]
Make sure not to count the PassManager wrapers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3994
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 19:54:07 +0000 (19:54 +0000)]
Factor timer code out of PassManager implementation, into a generic interface
exposed by Support/Timer.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3993
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 1 Oct 2002 19:36:54 +0000 (19:36 +0000)]
Checkin generic interval timer support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3992
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Hildenbrandt [Mon, 30 Sep 2002 21:11:55 +0000 (21:11 +0000)]
Fixed to properly escape quotes in strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3991
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 30 Sep 2002 19:24:07 +0000 (19:24 +0000)]
Allow production of -stats output for benchmarks by specifying
ENABLE_STATS=1 on the make command line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3989
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 30 Sep 2002 19:23:55 +0000 (19:23 +0000)]
Allow production of -stats output for benchmarks by specifying
ENABLE_STATS=1 on the make command line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3988
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Mon, 30 Sep 2002 16:14:14 +0000 (16:14 +0000)]
On this code, llc did not pass the sixth argument (%reg321) to printf.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3986
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Sep 2002 22:59:29 +0000 (22:59 +0000)]
Minor tweak
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3985
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Sep 2002 22:58:51 +0000 (22:58 +0000)]
Enable buidling of programs on Linux again
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3984
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 29 Sep 2002 22:55:45 +0000 (22:55 +0000)]
Added several more helper functions for construction MachineInstrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3983
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 29 Sep 2002 22:55:05 +0000 (22:55 +0000)]
Bug fix in folding getElementPtr instructions: don't fold one into
a predecessor if it has a non-zero first index and the predecessor
ends with a struct index.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3982
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Sep 2002 22:50:22 +0000 (22:50 +0000)]
Fix a problem that was caused by stale analyses being in CurrentAnalyses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3981
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Sep 2002 22:26:07 +0000 (22:26 +0000)]
Fix bug in LICM that caused the previous big win. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3980
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 29 Sep 2002 21:53:31 +0000 (21:53 +0000)]
Minor change to interface for Create{Zero,Sign}ExtensionsInstructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3979
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Sep 2002 21:46:09 +0000 (21:46 +0000)]
Hoist the contents of Loops in depth first order in the dominator tree,
rather than in random order. This causes LICM to be DRAMATICALLY more
effective. For example, on bzip2.c, it is able to hoist 302 loads and
2380 total instructions, as opposed to 44/338 before. This obviously
makes other transformations much more powerful as well!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3978
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Sep 2002 21:43:04 +0000 (21:43 +0000)]
Fix printing of loop information
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3977
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Sep 2002 21:42:42 +0000 (21:42 +0000)]
Improve printing of dominator sets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3976
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Sep 2002 21:41:38 +0000 (21:41 +0000)]
Fix major bugs in dominator set & tree information updating
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3975
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 29 Sep 2002 21:37:08 +0000 (21:37 +0000)]
Simplify code a bit, add an assertion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3974
91177308-0d34-0410-b5e6-
96231b3b80d8
Joel Stanley [Sun, 29 Sep 2002 17:31:54 +0000 (17:31 +0000)]
Fixed errors in ReplaceInstWithValue/ReplaceInstWithInst examples.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3973
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 29 Sep 2002 11:52:14 +0000 (11:52 +0000)]
Convert DIRS to PARALLEL_DIRS. They can be built independently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3972
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sat, 28 Sep 2002 18:09:05 +0000 (18:09 +0000)]
Regression test for llc bug that was folding two getelementptrs illegally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3971
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sat, 28 Sep 2002 17:05:43 +0000 (17:05 +0000)]
Added a couple of helper methods for live range construction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3970
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sat, 28 Sep 2002 17:05:22 +0000 (17:05 +0000)]
Live ranges for Return value and return address of a Call are now
created here, simply by handling all implicit operands (which should
have been done anyway).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3969
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sat, 28 Sep 2002 17:03:54 +0000 (17:03 +0000)]
Fixed method getReturnValue(): it should return NULL if the
callee does not return a value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3968
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sat, 28 Sep 2002 17:02:40 +0000 (17:02 +0000)]
Fixed incorrect assertion: spill code for function ptr should be
handled like normal operands, not like other call arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3967
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sat, 28 Sep 2002 17:00:15 +0000 (17:00 +0000)]
Return address register should be marked as "result" for the JMPL instruction
since it is defined by the instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3966
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sat, 28 Sep 2002 16:59:05 +0000 (16:59 +0000)]
Live ranges for Return value and return address of a Call are no longer
created here. Instead they are created in LiveRangeInfo.cpp. This
simplifies the code here quite a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3965
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sat, 28 Sep 2002 16:56:59 +0000 (16:56 +0000)]
Simplified code that handles call args and rets, so it no longer
needs the RegClass list to be passed in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3964
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sat, 28 Sep 2002 16:55:41 +0000 (16:55 +0000)]
Simplify Call translation slightly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3963
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sat, 28 Sep 2002 16:51:47 +0000 (16:51 +0000)]
Regression test for live range bug for call arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3962
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 27 Sep 2002 14:33:08 +0000 (14:33 +0000)]
Overhaul integer conversions to match C++ ISO standard.
Don't allow direct FP-to-uint conversion (must be eliminated by preselection).
Address arithmetic for arrays is now entirely 64-bit so no sign-ext needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3961
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 27 Sep 2002 14:29:45 +0000 (14:29 +0000)]
Modify operand order for Create{Sign,Zero}ExtensionInstructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3960
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 27 Sep 2002 14:27:37 +0000 (14:27 +0000)]
Bug fix: some redundant copies were not being deleted after detection :-|.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3959
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 27 Sep 2002 14:26:20 +0000 (14:26 +0000)]
Sign-extend integer constants from original type size to 64 bits!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3958
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 27 Sep 2002 14:24:45 +0000 (14:24 +0000)]
Decompose FP-to-UInt casts into FP-to-ULong-toUInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3957
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 27 Sep 2002 13:27:14 +0000 (13:27 +0000)]
Simple test for constant expressions constructed from global addresses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3956
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 27 Sep 2002 13:26:36 +0000 (13:26 +0000)]
Overhauled completely.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3955
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 21:49:07 +0000 (21:49 +0000)]
First try at implementing the AliasSetTracker class. I'm sure it will need
revision as I start to use it though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3954
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 19:53:02 +0000 (19:53 +0000)]
* Run preheaders pass tests
* Linearize list of directories so I don't have to keep dealing with
wrapping problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3953
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 19:50:11 +0000 (19:50 +0000)]
Checkin the simple features tests for the preheader insertion pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3952
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 19:40:25 +0000 (19:40 +0000)]
- Further cleanups of LICM pass, remove extra work from previous implementation
- Do not clone instructions then insert clone outside of loop. Just move them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3951
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:52:07 +0000 (16:52 +0000)]
Improve comments, doxygenize more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3950
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:45:59 +0000 (16:45 +0000)]
Don't hardcode path to dot in the doxygen config file. Let doxygen search the PATH
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3949
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:38:42 +0000 (16:38 +0000)]
Don't hardcode path to doxygen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3948
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:38:03 +0000 (16:38 +0000)]
Clean up LICM significantly now that it is guaranteed to have loop preheaders
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3947
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:37:37 +0000 (16:37 +0000)]
Change pass name to something sane
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3946
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:19:31 +0000 (16:19 +0000)]
Loop invariant code motion now depends on the LoopPreheader pass. Dead code
has not yet been removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3945
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:18:51 +0000 (16:18 +0000)]
- Cleanup break-crit-edges pass by making SplitCriticalEdge a member method.
- break-crit-edges pass does not invalidate loop-preheader pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3944
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:17:33 +0000 (16:17 +0000)]
Checkin new loop-preheader insertion pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3943
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:17:31 +0000 (16:17 +0000)]
Checkin new loop-preheader insertion pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3942
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:15:54 +0000 (16:15 +0000)]
Fix printing of loop information
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3941
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:15:19 +0000 (16:15 +0000)]
- Fix bug in LoopInfo causing ParentLoop to be garbage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3940
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:14:41 +0000 (16:14 +0000)]
- Add methods to ImmediateDominators & DominatorTree to allow updates
- Make DominatorTree::Node not inherit from std::vector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3939
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 16:14:37 +0000 (16:14 +0000)]
- Add methods to ImmediateDominators & DominatorTree to allow updates
- Make DominatorTree::Node not inherit from std::vector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3938
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 05:42:47 +0000 (05:42 +0000)]
Add a new "DominatorSet::addDominator" method to allow updates
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3937
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 05:32:50 +0000 (05:32 +0000)]
- Add new methods to LoopInfo: getLoopPreheader, addBasicBlockToLoop.
These allow extra information to be easily gathered, and loopinfo to be
updated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3936
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 05:32:43 +0000 (05:32 +0000)]
- Add new methods to LoopInfo: getLoopPreheader, addBasicBlockToLoop.
These allow extra information to be easily gathered, and loopinfo to be
updated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3935
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 26 Sep 2002 05:03:22 +0000 (05:03 +0000)]
- Add new ctor to BasicBlock to allow insertion before any BB, not just at
the end of the function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3934
91177308-0d34-0410-b5e6-
96231b3b80d8