Chris Lattner
af751b8e72
Factor timer code out of PassManager implementation, into a generic interface
...
exposed by Support/Timer.h.
llvm-svn: 3993
2002-10-01 19:54:07 +00:00
Chris Lattner
6dad11f6c0
Checkin generic interval timer support
...
llvm-svn: 3992
2002-10-01 19:36:54 +00:00
Nick Hildenbrandt
386834b2f1
Fixed to properly escape quotes in strings.
...
llvm-svn: 3991
2002-09-30 21:11:55 +00:00
Chris Lattner
fd400215d5
Allow production of -stats output for benchmarks by specifying
...
ENABLE_STATS=1 on the make command line.
llvm-svn: 3989
2002-09-30 19:24:07 +00:00
Chris Lattner
ce6b87be98
Allow production of -stats output for benchmarks by specifying
...
ENABLE_STATS=1 on the make command line.
llvm-svn: 3988
2002-09-30 19:23:55 +00:00
Vikram S. Adve
2b099a2419
On this code, llc did not pass the sixth argument (%reg321) to printf.
...
llvm-svn: 3986
2002-09-30 16:14:14 +00:00
Chris Lattner
1931788143
Minor tweak
...
llvm-svn: 3985
2002-09-29 22:59:29 +00:00
Chris Lattner
36fb08ee53
Enable buidling of programs on Linux again
...
llvm-svn: 3984
2002-09-29 22:58:51 +00:00
Vikram S. Adve
6be99c4f23
Added several more helper functions for construction MachineInstrs.
...
llvm-svn: 3983
2002-09-29 22:55:45 +00:00
Vikram S. Adve
75b4a29613
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.
llvm-svn: 3982
2002-09-29 22:55:05 +00:00
Chris Lattner
6b6f540959
Fix a problem that was caused by stale analyses being in CurrentAnalyses
...
llvm-svn: 3981
2002-09-29 22:50:22 +00:00
Chris Lattner
05e86302f4
Fix bug in LICM that caused the previous big win. :(
...
llvm-svn: 3980
2002-09-29 22:26:07 +00:00
Vikram S. Adve
5b5dd671b2
Minor change to interface for Create{Zero,Sign}ExtensionsInstructions.
...
llvm-svn: 3979
2002-09-29 21:53:31 +00:00
Chris Lattner
6443769b34
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!
llvm-svn: 3978
2002-09-29 21:46:09 +00:00
Chris Lattner
467a9e84c4
Fix printing of loop information
...
llvm-svn: 3977
2002-09-29 21:43:04 +00:00
Chris Lattner
ae3ac7e1c9
Improve printing of dominator sets
...
llvm-svn: 3976
2002-09-29 21:42:42 +00:00
Chris Lattner
03a9e15a9f
Fix major bugs in dominator set & tree information updating
...
llvm-svn: 3975
2002-09-29 21:41:38 +00:00
Chris Lattner
85dd58c2cb
Simplify code a bit, add an assertion
...
llvm-svn: 3974
2002-09-29 21:37:08 +00:00
Joel Stanley
fc2aac7f8f
Fixed errors in ReplaceInstWithValue/ReplaceInstWithInst examples.
...
llvm-svn: 3973
2002-09-29 17:31:54 +00:00
Vikram S. Adve
be55f2dd2c
Convert DIRS to PARALLEL_DIRS. They can be built independently.
...
llvm-svn: 3972
2002-09-29 11:52:14 +00:00
Vikram S. Adve
009dac7ab4
Regression test for llc bug that was folding two getelementptrs illegally.
...
llvm-svn: 3971
2002-09-28 18:09:05 +00:00
Vikram S. Adve
9011903ee2
Added a couple of helper methods for live range construction.
...
llvm-svn: 3970
2002-09-28 17:05:43 +00:00
Vikram S. Adve
ed2df3ecf8
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).
llvm-svn: 3969
2002-09-28 17:05:22 +00:00
Vikram S. Adve
8076fe87b7
Fixed method getReturnValue(): it should return NULL if the
...
callee does not return a value.
llvm-svn: 3968
2002-09-28 17:03:54 +00:00
Vikram S. Adve
8fef3b8033
Fixed incorrect assertion: spill code for function ptr should be
...
handled like normal operands, not like other call arguments.
llvm-svn: 3967
2002-09-28 17:02:40 +00:00
Vikram S. Adve
d76d82b40f
Return address register should be marked as "result" for the JMPL instruction
...
since it is defined by the instruction.
llvm-svn: 3966
2002-09-28 17:00:15 +00:00
Vikram S. Adve
6d1036d41b
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.
llvm-svn: 3965
2002-09-28 16:59:05 +00:00
Vikram S. Adve
cce628aeaf
Simplified code that handles call args and rets, so it no longer
...
needs the RegClass list to be passed in.
llvm-svn: 3964
2002-09-28 16:56:59 +00:00
Vikram S. Adve
4bb9866dc5
Simplify Call translation slightly.
...
llvm-svn: 3963
2002-09-28 16:55:41 +00:00
Vikram S. Adve
d92bd6f951
Regression test for live range bug for call arguments.
...
llvm-svn: 3962
2002-09-28 16:51:47 +00:00
Vikram S. Adve
34d16d64b0
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.
llvm-svn: 3961
2002-09-27 14:33:08 +00:00
Vikram S. Adve
40e2347b90
Modify operand order for Create{Sign,Zero}ExtensionInstructions.
...
llvm-svn: 3960
2002-09-27 14:29:45 +00:00
Vikram S. Adve
d238de02c7
Bug fix: some redundant copies were not being deleted after detection :-|.
...
llvm-svn: 3959
2002-09-27 14:27:37 +00:00
Vikram S. Adve
66303bb9a5
Sign-extend integer constants from original type size to 64 bits!
...
llvm-svn: 3958
2002-09-27 14:26:20 +00:00
Vikram S. Adve
46aeb8c7c2
Decompose FP-to-UInt casts into FP-to-ULong-toUInt.
...
llvm-svn: 3957
2002-09-27 14:24:45 +00:00
Vikram S. Adve
2a351d54a0
Simple test for constant expressions constructed from global addresses.
...
llvm-svn: 3956
2002-09-27 13:27:14 +00:00
Vikram S. Adve
9cf9da9642
Overhauled completely.
...
llvm-svn: 3955
2002-09-27 13:26:36 +00:00
Chris Lattner
647df647e1
First try at implementing the AliasSetTracker class. I'm sure it will need
...
revision as I start to use it though.
llvm-svn: 3954
2002-09-26 21:49:07 +00:00
Chris Lattner
ed06af34b6
* Run preheaders pass tests
...
* Linearize list of directories so I don't have to keep dealing with
wrapping problems.
llvm-svn: 3953
2002-09-26 19:53:02 +00:00
Chris Lattner
b009ceaa9d
Checkin the simple features tests for the preheader insertion pass.
...
llvm-svn: 3952
2002-09-26 19:50:11 +00:00
Chris Lattner
d57f3f5073
- Further cleanups of LICM pass, remove extra work from previous implementation
...
- Do not clone instructions then insert clone outside of loop. Just move them.
llvm-svn: 3951
2002-09-26 19:40:25 +00:00
Chris Lattner
f64f2d3fb3
Improve comments, doxygenize more
...
llvm-svn: 3950
2002-09-26 16:52:07 +00:00
Chris Lattner
7b1dcc39c3
Don't hardcode path to dot in the doxygen config file. Let doxygen search the PATH
...
llvm-svn: 3949
2002-09-26 16:45:59 +00:00
Chris Lattner
c293224214
Don't hardcode path to doxygen
...
llvm-svn: 3948
2002-09-26 16:38:42 +00:00
Chris Lattner
718b221ff8
Clean up LICM significantly now that it is guaranteed to have loop preheaders
...
llvm-svn: 3947
2002-09-26 16:38:03 +00:00
Chris Lattner
ca056914c6
Change pass name to something sane
...
llvm-svn: 3946
2002-09-26 16:37:37 +00:00
Chris Lattner
d771fdfd75
Loop invariant code motion now depends on the LoopPreheader pass. Dead code
...
has not yet been removed.
llvm-svn: 3945
2002-09-26 16:19:31 +00:00
Chris Lattner
bedbd6bc16
- Cleanup break-crit-edges pass by making SplitCriticalEdge a member method.
...
- break-crit-edges pass does not invalidate loop-preheader pass.
llvm-svn: 3944
2002-09-26 16:18:51 +00:00
Chris Lattner
9b4c1aa389
Checkin new loop-preheader insertion pass.
...
llvm-svn: 3943
2002-09-26 16:17:33 +00:00
Chris Lattner
61992f66d8
Checkin new loop-preheader insertion pass.
...
llvm-svn: 3942
2002-09-26 16:17:31 +00:00