Commit Graph

1493 Commits

Author SHA1 Message Date
Chris Lattner
fb892e51ed Add new VarArgInst class for the va_arg instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6027 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-08 02:42:50 +00:00
Chris Lattner
8a88563a32 Add comments, add a vector to keep track of which registers are allocatable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6014 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-07 20:07:58 +00:00
Chris Lattner
6a4e6341f2 Fix memory corruption problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6003 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-06 18:45:02 +00:00
Misha Brukman
1d06fbe893 It's 'separate'. The 'i.e.' is kinda nit-picking, but think of it this way:
'separate' is the one causing you to recompile all your passes anyway.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5992 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-03 03:31:06 +00:00
Chris Lattner
10daaa1416 Remove two fields from TargetData which are target specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5963 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-26 20:11:09 +00:00
Chris Lattner
6ad5a31324 Revert last checkin. Note that PHI nodes can use basic blocks also!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5956 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-26 17:38:26 +00:00
Chris Lattner
90117cbb6f Remove long-dead obsolete cruft
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5955 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 23:39:08 +00:00
Chris Lattner
322bc2b5aa Fix method name type-o
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5933 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 05:23:27 +00:00
Chris Lattner
eca8e8f111 *** Huge: Make constantexprs be handled correctly, conservatively
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5923 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 02:51:46 +00:00
Chris Lattner
d6cbe339af Default ctor doesn't provide name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5921 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 02:50:19 +00:00
Chris Lattner
4bc8e640b8 Add new targetdata ctor to create a targetdata appropriate to the module
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5902 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 19:08:45 +00:00
Chris Lattner
baf64b1e1c Remove support for "targetdata pass ctors"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5901 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 18:41:30 +00:00
Chris Lattner
5705f0c2ea LevelRaise now gets TD from passmanager
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5897 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 18:25:42 +00:00
Chris Lattner
d55e98673a Kill unneccesary &*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5870 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 16:35:30 +00:00
Chris Lattner
3b1ca40d5d Add stub to create lowerSwitches pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5866 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 16:24:19 +00:00
Chris Lattner
011ce8d2e4 Allow autoconversion from ilist_iterator<T> to T* in a dyn_cast and friends
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5862 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 16:17:53 +00:00
Chris Lattner
ea0f49e524 Allow dyn_cast to operate on things that aren't OBVIOUSLY a pointer type.
These things can be converted to a pointer, like ilist_iterators


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5861 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 16:17:28 +00:00
Chris Lattner
bf4ff33e22 Add information about the module source
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5837 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-22 18:03:13 +00:00
Chris Lattner
678c6a089d Add support for tracking whether a module is 64/32 bit and big/little endian
Also add a moduleID field which can be used for diagnostics


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5834 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-22 18:02:04 +00:00
Chris Lattner
23e0a58c5a Add prototype to read .a files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5821 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-19 21:45:52 +00:00
Chris Lattner
a107e5f11c Add prototype for new CloneBasicBlock function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5804 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-18 03:49:22 +00:00
Chris Lattner
fd73cf895c Don't force a ConstantPointer to be returned
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5799 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-17 19:22:47 +00:00
Chris Lattner
fb242b6edc Change the interface to constant expressions to allow automatic folding
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5793 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 22:40:51 +00:00
Chris Lattner
076e2ae92f Revert modulo scheduling change that should be part of the modulo-sched pass itself,
not part of the Instruction class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5787 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 20:30:02 +00:00
Chris Lattner
4ad02e726d Add new linkage types to support a real frontend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5786 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 20:28:45 +00:00
Misha Brukman
4bd8b24470 Must use std::pair instead of just 'pair'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5767 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-07 00:25:09 +00:00
Guochun Shi
681220dc3c added a function and a member to the TargetSchedInfo class
which is used  by Modulo Scheduling pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5766 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-07 00:00:36 +00:00
Guochun Shi
105cb77d6f added some memory for clone function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5765 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-06 23:58:44 +00:00
Chris Lattner
d76370b306 Add getAnalysisUsage method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5756 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-31 17:29:18 +00:00
Chris Lattner
f1ab454b71 Add helper method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5753 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-21 21:41:02 +00:00
Chris Lattner
6f2ec7f59d Update comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5752 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-21 21:40:39 +00:00
Chris Lattner
e33b796851 Add more graph traits specializations for dominator tree nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5751 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-20 21:21:05 +00:00
Chris Lattner
1b079f9685 Add new chunk type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5747 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-19 20:48:27 +00:00
Chris Lattner
8fb1fe16b7 Fix problems with BitSetVector that makes it not compile under GCC 3.0 and 2.95
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5745 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-17 18:11:27 +00:00
Chris Lattner
1680312867 Fix ConstantUInt::isAllOnesValue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5734 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 22:39:02 +00:00
Chris Lattner
a5ae71a137 Extend struct and array constants to support isNullValue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5719 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 21:02:43 +00:00
Chris Lattner
fade83f62f Generalize interface a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5711 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 16:50:21 +00:00
Chris Lattner
566f0ee4ed Add new getIncomingValueForBlock method
Relax a bit about constness


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5709 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 16:36:28 +00:00
Chris Lattner
05ddff9b98 Simplify some of the PHI node interfaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5700 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 21:15:12 +00:00
Chris Lattner
b75f9dda9e Add a few new 'add' methods. Move the iterator around
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5690 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 23:27:52 +00:00
Chris Lattner
fb743a937f Change the mem2reg interface to accept a TargetData argument
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5685 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 17:25:18 +00:00
Chris Lattner
af68ccefeb Don't apply type information to loads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5683 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 17:13:22 +00:00
Chris Lattner
f972cbd98c Add dump method for loops
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5670 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-28 16:54:37 +00:00
Chris Lattner
1db0a40037 Add graph traits specializations for loop nesting information...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5666 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-28 03:05:15 +00:00
Chris Lattner
6bc4281336 Add new Loop::hasExitBlock helper method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5663 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-27 22:48:28 +00:00
Chris Lattner
f2e2925f95 Change behavior of changeExitBlock function to replace all instances of exit block
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5661 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-27 22:37:44 +00:00
Chris Lattner
ef05100950 Make the interface to update a little more efficient
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5651 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-27 20:24:17 +00:00
Chris Lattner
fe3ae1ed66 * LoopInfo now keeps track of exit blocks from the loop
* New LoopInfo::isLoopHeader method
  * Remove some #if 0 code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5649 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-27 00:37:22 +00:00
Chris Lattner
31a9d185bf Make the aliassettracker much more precise by actually tracking size
information for various accesses.  What a concept.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5647 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-26 22:11:00 +00:00
Chris Lattner
f8783fadb4 BasicAA doesn't need a public header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5639 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-26 19:41:46 +00:00
Chris Lattner
13b6f22f04 Tweak to work with new AA implementation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5632 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-26 19:25:04 +00:00
Chris Lattner
1c56b730a6 Checkin of new alias analysis interface:
* Takes into account the size of the memory reference to determine aliasing.
  * Expose mod/ref information in a more consistent way


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5631 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-26 19:24:47 +00:00
Chris Lattner
d2c0b28c33 * Un "protect" the getAnalysis<> functions
* Add a new initializePass() method to ImmutablePass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5629 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-26 19:10:28 +00:00
Chris Lattner
f288ff7774 Add new helper template function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5622 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-25 00:00:50 +00:00
Chris Lattner
f0a93ed9c5 Rename Instruction::hasSideEffects() -> mayWriteToMemory()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5620 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-24 20:48:32 +00:00
Chris Lattner
9971ac4a36 This is a substantial rewrite of the AliasSetTracker class which now uses
a union-find based algorithm, is significantly faster, and is more general.
It will also scale to handle call instructions correctly, which is a nice
added bonus.

This includes a new pass -print-alias-sets which can be used to show how
alias sets are formed for a particular analysis.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5619 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-24 20:37:56 +00:00
Chris Lattner
93a7e08d1f Initial checkin of CallSite wrapper for Call/Invoke instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5618 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-24 20:35:45 +00:00
Chris Lattner
24e03d32ff Fix #endif
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5615 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-24 04:40:35 +00:00
Chris Lattner
a430bc7569 Add support for the slist extension
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5614 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-24 04:31:49 +00:00
Chris Lattner
782752b7a2 Add a new interface file for the PromoteMemToReg interface in the Utils library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5609 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-22 23:04:52 +00:00
Chris Lattner
731b2d7df5 Move node forwarding code from being inlined to being out-of-line.
This brings a 11.6% speedup to steens, and a 3.6 overall speedup to ds-aa


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5552 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-13 19:09:00 +00:00
Chris Lattner
72d29a4b00 Implement a "union-findy" version of DS-Analysis, which eliminates the
Referrers list on DSNodes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5536 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-11 23:11:51 +00:00
Chris Lattner
d3c2e3237c Fix uninitialized member problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5534 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-11 06:36:00 +00:00
Chris Lattner
1fcc101b1c Bugfix for calling dump() after the links vector has been cleared
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5533 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-10 22:46:47 +00:00
Chris Lattner
ed14f8283a Move getNode() out of line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5531 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-10 18:19:41 +00:00
Chris Lattner
c40c905d63 Implement a new method "viewGraph" which can be used to instantly view a graph from GDB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5529 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-10 18:17:38 +00:00
Chris Lattner
d4aabcb0d0 TD Pass now does not cause globals to mark nodes incomplete.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5512 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-09 18:40:25 +00:00
Chris Lattner
923fc05b3a Implement optimization for direct function call case. This dramatically
reduces the number of function nodes created and speeds up analysis by
about 10% overall.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5495 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-05 21:59:58 +00:00
Chris Lattner
a329733f47 Allow the addition of edge source labels
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5493 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-05 19:40:59 +00:00
Chris Lattner
f52ade928c Add sanity check
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5489 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-04 00:03:57 +00:00
Chris Lattner
4923d1be91 Hack to work around deficiency in pass infrastructure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5485 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-03 22:51:28 +00:00
Chris Lattner
5a939029d5 Eliminate unused resolving caller stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5475 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-03 19:11:04 +00:00
Chris Lattner
f9962812d0 * Add a bunch of stuff for checking the integrity of the graph
* remove the isNodeDead method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5474 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-03 19:10:24 +00:00
Chris Lattner
9a64084a84 Remove pool alloc accessor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5473 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-03 19:08:33 +00:00
Chris Lattner
4ab6aefe44 Expose information about pool allocation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5471 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-03 19:07:46 +00:00
Chris Lattner
8bac08bf04 Allow modifying a global variables constness property
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5468 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-02 16:40:40 +00:00
Chris Lattner
41c04f730b Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)
This change provides a small (3%) but consistent speedup


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5460 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-01 04:52:08 +00:00
Chris Lattner
7f306c8dcf Add hash_multimap support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5457 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-01 04:14:28 +00:00
Chris Lattner
cb98327142 Add new composition mask
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5454 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-01 03:28:26 +00:00
Joel Stanley
0eea1d5b7e Added protos for two alternate, convenient CallInst constructors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5453 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-01 00:41:27 +00:00
Chris Lattner
fe9664ce7c Add new function to allow removal of typed named elements
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5442 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-30 20:54:03 +00:00
Chris Lattner
9e4b15b1a1 New API for traversing graph
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5430 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-29 21:09:59 +00:00
Chris Lattner
fd373cb944 Initial checking: defult the make_vector function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5424 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-28 20:01:16 +00:00
Chris Lattner
a892a3a08e New helper header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5423 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-27 22:08:52 +00:00
Chris Lattner
381977d191 * Eliminate boolean arguments in favor of using enums
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5420 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-23 22:06:33 +00:00
Chris Lattner
9085d8a9a9 Print machine frame objects with the frame offset intrinsic to the machine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5329 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-16 18:35:57 +00:00
Chris Lattner
795ba6cabd Move sparc specific code into the Sparc backend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5317 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 21:36:50 +00:00
Chris Lattner
0a166155e7 Simplify the interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5313 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 21:13:32 +00:00
Chris Lattner
a9dcd3cceb Move private headers into private regalloc directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5308 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 20:26:32 +00:00
Chris Lattner
d77fa74a0c Move private header to private dir
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5304 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 19:50:32 +00:00
Chris Lattner
b66fdc2934 Remove obsolete ctor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5301 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 19:47:02 +00:00
Chris Lattner
1be114be3a Remove internal helper fn
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5300 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 19:46:39 +00:00
Chris Lattner
83435fbaf9 ADd support for CC registers for Sparc BE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5297 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 19:22:23 +00:00
Chris Lattner
4d69c8e369 Add support for the CC registers for Sparc BE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5296 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 19:22:06 +00:00
Chris Lattner
4091233dfd Remove more unused methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5295 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 19:21:50 +00:00
Chris Lattner
73df3bfb68 Remove a ton of functions that are no longer used, instead using BuildMI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5290 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 17:35:44 +00:00
Chris Lattner
e387de3084 Add new helper method addRegDef
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5289 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 17:18:22 +00:00
Chris Lattner
ed4fb8f3ec * Eliminate a bunch of inline functions.
* Convert callers to use BuildMI instead


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5286 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 00:02:41 +00:00
Chris Lattner
9f2b7ffe05 Move to include/llvm/CodeGen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5285 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 23:05:31 +00:00
Chris Lattner
8143d8f91a Move llvm/Analysis/LiveVar/ValueSet.h to CodeGen/ValueSet.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5282 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 22:56:37 +00:00
Chris Lattner
b9eca537d0 New header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5280 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 22:37:41 +00:00
Chris Lattner
a1767182de Move to Instrumentation.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5279 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 22:36:15 +00:00
Chris Lattner
77f088b114 REmove unused header file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5275 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 22:29:57 +00:00
Chris Lattner
d15a1da5eb Remove unused header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5274 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 22:28:22 +00:00
Chris Lattner
3501feab81 Rename MachineInstrInfo -> TargetInstrInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5272 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 22:00:31 +00:00
Chris Lattner
d640a6b4cf Move llvm/Annotation.h to Support/Annotation.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5271 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 21:39:04 +00:00
Chris Lattner
cb09cc268b Move annotation to support library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5268 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 21:29:58 +00:00
Chris Lattner
97ca95d1e7 Must #include assert.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5267 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 21:29:52 +00:00
Chris Lattner
db00065fc8 Add new files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5259 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 01:01:31 +00:00
Chris Lattner
2584ba5867 Rename MachineInstrInfo -> TargetInstrInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5214 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:21:32 +00:00
Chris Lattner
075b4a066d * Start renaming MachineInstrInfo -> TargetInstrInfo
* Add new M_TERMINATOR_FLAG


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5213 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:21:19 +00:00
Chris Lattner
09d4fd57de Add new getName method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5212 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:19:44 +00:00
Chris Lattner
e836bae30c Simplify interface to creating a register
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5211 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:19:18 +00:00
Chris Lattner
9d4f9b9902 * Add support for new types of operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5210 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:18:44 +00:00
Chris Lattner
3c8cbe6567 * Add 3 new types of MachineOperand: ConstantPoolIndex ExternalSymbol and GlobalAddress's
* Add new isPCRelative modifier flag which should be used in place of MO_PCRelativeDisp type.
* Fix a bug in isPhysicalRegister
* Add new setOpcode and RemoveOperand methods


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5209 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:18:17 +00:00
Chris Lattner
40a75577ea * Add a constant pool to hold per-function constants which must be spilled to memory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5208 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:16:10 +00:00
Chris Lattner
09a5b0b6a3 * Add utility methods which make common cases easier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5207 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:15:24 +00:00
Chris Lattner
29dd209228 * Add support for values in the constant pool
* Add support for functions referenced by name


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5206 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:14:55 +00:00
Chris Lattner
d0f166a486 More renamings of Target/Machine*Info to Target/Target*Info
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5204 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-29 03:13:05 +00:00
Chris Lattner
f27eeea54f Rename MachineOptInfo to TargetoptInfo
Rename MachineCacheInfo to TargetCacheInfo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5203 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-29 02:50:35 +00:00
Chris Lattner
aa09b75d22 Rename FunctionFrameInfo to MachineFrameInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5201 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 21:08:28 +00:00
Chris Lattner
5b927c790e * doxygenize comment
* rename MachineFrameInfo to TargetFrameInfo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5170 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:13:29 +00:00
Chris Lattner
5fa01b9c7a Sparc specific methods default to abort rather than being pure virtual
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5169 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:12:54 +00:00
Chris Lattner
fd529d2e4a Expose some very simple information about the frame, rather than in-depth
target specific information.  Rename MachineFrameInfo to TargetFrameInfo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5168 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:12:10 +00:00
Chris Lattner
f9b332b59d * Keep track of register alignment as well as register size
* Add comments
* Add a new allocation_order iterator for register classes which targets may
  use to control the register order and available registers based on properties
  of the function being compiled.
* Remove access to FP and SP registers
* Add new callframe setup opcode support
* Eliminate moveImm2Reg method
* Revamp frame offset handling and prolog/epilog code generation


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5167 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:10:23 +00:00
Chris Lattner
7fd4040274 Descriptor object used to manage abstract frame references
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5166 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:07:47 +00:00
Chris Lattner
1951c5b987 State for frame and constant pool information pulled out of MachineFunction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5165 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:07:33 +00:00
Chris Lattner
7ad6be7b01 * Frame indices are signed
* Cluster modification methods together


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5164 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:05:44 +00:00
Chris Lattner
cd0d1d1f0f * Pull a bunch of frame and constant pool state out into a new
MachineFunctionInfo class
* Add a new FunctionFrameInfo object


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5163 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:04:31 +00:00
Chris Lattner
2a4a095e57 Initial check in of MachineFunctionPass.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5162 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:03:01 +00:00
Chris Lattner
8c5d47da98 Simplify spill interface methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5142 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25 05:02:00 +00:00
Chris Lattner
13a6e1e5a1 Add comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5141 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25 05:01:46 +00:00
Chris Lattner
aa0e277f31 Add abstract frame index capability
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5140 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25 05:01:18 +00:00
Chris Lattner
7c56bf694e Remove default ctor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5139 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25 05:01:05 +00:00
Chris Lattner
56cf63f2f6 *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5138 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25 05:00:49 +00:00
Chris Lattner
03ab7af4de Remove dependency on SSARegMap.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5137 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25 05:00:16 +00:00
Chris Lattner
434c86dd3f Allow the target machines to specify endianness and pointer size
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5128 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-24 00:02:17 +00:00
Chris Lattner
bd199fb114 Initial checkin of new LLI with JIT compiler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5126 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-24 00:01:05 +00:00
Chris Lattner
4a10645c70 New files for miscompilation detection
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5120 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-23 23:50:16 +00:00
Chris Lattner
8797caac84 Simplify interface to remove virtual function references
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5100 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-17 04:20:39 +00:00
Chris Lattner
00032bf6cc Add support for register alias set description
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5080 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-16 16:39:14 +00:00
Chris Lattner
70535c608d Export well known instruction opcodes usable by target independant passes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5063 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-15 22:16:08 +00:00
Chris Lattner
c583175e72 Add new opIsUse method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5062 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-15 22:05:02 +00:00
Chris Lattner
198ab640bb Simplify interfaces used by regalloc to insert code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5052 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-15 20:06:35 +00:00
Chris Lattner
0f24e33b73 Simplify TargetRegisterClass a bit, also eliminating virtual function call
overhead


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5049 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-15 19:29:14 +00:00
Chris Lattner
aa8dad5561 * Rename const_regclass_begin/end to just regclass_begin/end
* Regclass iterators need an extra level of pointerness to work right
* Pull inverse mapping code out of target description files


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5046 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-15 18:40:01 +00:00
Chris Lattner
8cbfc75d17 Add capability to have a MachineBasicBlock as an operand to a MachineInstr
Add a bunch of methods to MachineOperand is* to reduce usage of MO_foo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5032 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-15 08:01:02 +00:00
Misha Brukman
2b46e8eccc Added moveReg2Reg() and moveImm2Reg() to accomodate moving data around due to
PHI nodes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5001 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-13 09:54:12 +00:00
Chris Lattner
367ccab06e Final version of BuildMI for symmetry and because I want to use it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5000 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-13 09:33:06 +00:00
Chris Lattner
3153b35a52 Get rid of deprecated function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4997 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-13 07:30:45 +00:00