Commit Graph

266348 Commits

Author SHA1 Message Date
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
Chris Lattner 3524f58309 Fix printing of loop information
llvm-svn: 3941
2002-09-26 16:15:54 +00:00
Chris Lattner 0fcb61f2b7 - Fix bug in LoopInfo causing ParentLoop to be garbage
llvm-svn: 3940
2002-09-26 16:15:19 +00:00
Chris Lattner 98ae0f1897 - Add methods to ImmediateDominators & DominatorTree to allow updates
- Make DominatorTree::Node not inherit from std::vector

llvm-svn: 3939
2002-09-26 16:14:41 +00:00
Chris Lattner 6561db0c12 - Add methods to ImmediateDominators & DominatorTree to allow updates
- Make DominatorTree::Node not inherit from std::vector

llvm-svn: 3938
2002-09-26 16:14:37 +00:00
Chris Lattner 9ff37c5265 Add a new "DominatorSet::addDominator" method to allow updates
llvm-svn: 3937
2002-09-26 05:42:47 +00:00
Chris Lattner 08373d1c9c - Add new methods to LoopInfo: getLoopPreheader, addBasicBlockToLoop.
These allow extra information to be easily gathered, and loopinfo to be
    updated.

llvm-svn: 3936
2002-09-26 05:32:50 +00:00
Chris Lattner 0a96a521eb - Add new methods to LoopInfo: getLoopPreheader, addBasicBlockToLoop.
These allow extra information to be easily gathered, and loopinfo to be
    updated.

llvm-svn: 3935
2002-09-26 05:32:43 +00:00
Chris Lattner 4dfede8070 - Add new ctor to BasicBlock to allow insertion before any BB, not just at
the end of the function.

llvm-svn: 3934
2002-09-26 05:03:22 +00:00
Chris Lattner 506389a37f - Add new ctor to BasicBlock to allow insertion before any BB, not just at
the end of the function.

llvm-svn: 3933
2002-09-26 05:03:17 +00:00
Chris Lattner 870a4a5bb4 Converted SimpleStructMutation to take TargetData as a required pass.
llvm-svn: 3932
2002-09-26 00:17:21 +00:00
Chris Lattner 7b5746bfcf Converted SimpleStructMutation to take TargetData as a required pass.
llvm-svn: 3931
2002-09-26 00:17:18 +00:00
Chris Lattner 79efacbb19 Change LowerAllocations pass to 'require' TargetData instead of it being
passed in.

llvm-svn: 3930
2002-09-25 23:47:49 +00:00
Chris Lattner 3cab9f0396 Change LowerAllocations pass to 'require' TargetData instead of it being
passed in.

llvm-svn: 3929
2002-09-25 23:47:47 +00:00
Chris Lattner fec6850f90 Convert TargetData to be an ImmutablePass
llvm-svn: 3928
2002-09-25 23:46:56 +00:00
Chris Lattner 09cfdcb1a3 Convert TargetData to be an ImmutablePass
llvm-svn: 3927
2002-09-25 23:46:55 +00:00
Chris Lattner 9720dda185 Add documentation for ImmutablePass's
llvm-svn: 3926
2002-09-25 22:31:38 +00:00
Chris Lattner 635d8919a7 ImmutablePass's don't need a runOnFunction, nor do they need to explicitly say
that they preserve all xforms

llvm-svn: 3925
2002-09-25 22:27:54 +00:00