Alkis Evlogimenos
790b000aa7
Add LeakDetection to MachineInstr.
...
Move out of line member functions of MachineBasicBlock to
MachineBasicBlock.cpp.
llvm-svn: 11497
2004-02-16 07:17:43 +00:00
Alkis Evlogimenos
1026a01d5a
Eliminate the use of spill (reserved) registers.
...
llvm-svn: 11476
2004-02-15 10:24:21 +00:00
Chris Lattner
363cd9e4b8
Add a new ConstantAggregateZero class, to fix PR239. This makes zero
...
initializers for constant structs and arrays take constant space, instead of
space proportinal to the number of elements. This reduces the memory usage of
the LLVM compiler by hundreds of megabytes when compiling some nasty SPEC95
benchmarks.
llvm-svn: 11470
2004-02-15 05:53:04 +00:00
Chris Lattner
bbe538e930
finegrainify namespacification
...
llvm-svn: 11469
2004-02-15 05:52:36 +00:00
Chris Lattner
0f819b9523
ConstantArray::get and ConstantStruct::get now just return pointers to
...
'Constant', instead of specific subclass pointers. In the future, these will
return an instance of ConstantAggregateZero if all of the inputs are zeros.
llvm-svn: 11467
2004-02-15 04:14:47 +00:00
Chris Lattner
b8bfcaff7e
The prologue/epilogue related method calls have no reason to return a value,
...
make them return void.
llvm-svn: 11447
2004-02-14 19:49:05 +00:00
Chris Lattner
cdfcb976c7
Add llvm.memset/frameaddress/returnaddress intrinsics.
...
llvm-svn: 11431
2004-02-14 02:47:17 +00:00
Alkis Evlogimenos
fa9e207a22
Add next() and prior() iterator utility functions. Unlike std::advance
...
they do not modify the passed iterator but return a copy.
next(myIt) returns copy of myIt incremented once
next(myIt, n) returns copy of myIt incremented n times
prior(myIt) returns copy of myIt decremented once
prior(myIt, n) returns copy of myIt decremented n times
While at it remove obsolete implementation of mapped_iterator.
llvm-svn: 11429
2004-02-14 01:17:28 +00:00
Chris Lattner
1bad051558
Add method
...
llvm-svn: 11425
2004-02-14 00:30:31 +00:00
Chris Lattner
8641f2fb58
Make sure to provide a prototype for the cbackend
...
llvm-svn: 11419
2004-02-13 23:36:03 +00:00
Chris Lattner
c3f1cb677f
The cbackend has never had anything to do with llvm assembly writing
...
llvm-svn: 11411
2004-02-13 23:19:51 +00:00
Chris Lattner
d2cd0afd11
Change access to the cwriter
...
llvm-svn: 11406
2004-02-13 23:00:45 +00:00
Alkis Evlogimenos
6d6ab846af
Remove getAllocatedRegNum(). Use getReg() instead.
...
llvm-svn: 11393
2004-02-13 21:01:20 +00:00
Alkis Evlogimenos
e504fa6710
Mark MachineBasicBlock::operator[] deprecated.
...
llvm-svn: 11392
2004-02-13 20:05:56 +00:00
Alkis Evlogimenos
c109214f58
Add getNumVirtualRegs().
...
Whitespace cleanups.
llvm-svn: 11388
2004-02-13 18:07:06 +00:00
Misha Brukman
47df5a35ec
Fix spelling of `tendency'.
...
llvm-svn: 11378
2004-02-13 16:23:14 +00:00
Chris Lattner
2b87d0184b
Expose a pass ID for lower-invoke
...
llvm-svn: 11377
2004-02-13 16:16:35 +00:00
Brian Gaeke
50719e9dbc
Update the example here in the header file.
...
I don't know about you guys, but I rarely read the .html manuals :-)
llvm-svn: 11366
2004-02-13 04:49:04 +00:00
Brian Gaeke
7707461afa
Include <iosfwd>.
...
Add prototypes for MachineBasicBlock's dump() and print() methods.
llvm-svn: 11365
2004-02-13 04:40:15 +00:00
Alkis Evlogimenos
00d97b6a13
Move ilist_trairs<MachineInstr> in MachineBasicBlock.
...
llvm-svn: 11358
2004-02-12 19:12:03 +00:00
Alkis Evlogimenos
3ecdcd18c5
Add parent pointer to MachineInstr that points to owning
...
MachineBasicBlock. Also change opcode to a short and numImplicitRefs
to an unsigned char so that overall MachineInstr's size stays the
same.
llvm-svn: 11357
2004-02-12 18:49:07 +00:00
Chris Lattner
7c8aebbdbc
Add support for the llvm.memmove intrinsic.
...
Patch graciously contributed by Reid Spencer!
llvm-svn: 11354
2004-02-12 18:10:10 +00:00
Chris Lattner
d2ee2d61ac
Urg, check in header I forgot. :(
...
llvm-svn: 11353
2004-02-12 17:57:11 +00:00
Chris Lattner
ef375052c6
Rename the opCode instance variable to Opcode
...
llvm-svn: 11348
2004-02-12 16:09:53 +00:00
Chris Lattner
04c37927bd
Remove a dead field from MachineInstr!
...
llvm-svn: 11347
2004-02-12 16:05:03 +00:00
Alkis Evlogimenos
94cab18bdc
Change interface so that we can add to the end of a basic block
...
without getting an assertion from ilist that we are dereferencing
ilist<T>::end().
llvm-svn: 11345
2004-02-12 08:11:04 +00:00
Brian Gaeke
57484e290d
Add one more doxygen comment.
...
llvm-svn: 11344
2004-02-12 04:26:49 +00:00
Brian Gaeke
840e7e40fe
Express one of MachineOperand's many constructors in terms of another, by means of default arguments.
...
llvm-svn: 11343
2004-02-12 04:15:00 +00:00
Brian Gaeke
0608698c34
Remove these MachineOpCodeFlags and their accessor - they are never set.
...
llvm-svn: 11341
2004-02-12 04:00:55 +00:00
Alkis Evlogimenos
b755d35fd2
Change MachineBasicBlock's vector of MachineInstr pointers into an
...
ilist of MachineInstr objects. This allows constant time removal and
insertion of MachineInstr instances from anywhere in each
MachineBasicBlock. It also allows for constant time splicing of
MachineInstrs into or out of MachineBasicBlocks.
llvm-svn: 11340
2004-02-12 02:27:10 +00:00
Brian Gaeke
2e521768eb
Remove getOpCode(). Help doxygenify some comments.
...
llvm-svn: 11338
2004-02-12 01:34:03 +00:00
Chris Lattner
9250e48a76
If a node has more than 64 outgoing edges, make the edges go from the 'truncated' block,
...
instead of dropping them entirely.
llvm-svn: 11334
2004-02-11 20:44:17 +00:00
Brian Gaeke
7246d4efd0
Fix typos in comments.
...
llvm-svn: 11333
2004-02-11 19:47:43 +00:00
Chris Lattner
19d997875e
Add an important prototype
...
llvm-svn: 11320
2004-02-11 06:11:06 +00:00
Chris Lattner
427c8ee657
Factor this code out of llvm-prof
...
llvm-svn: 11314
2004-02-11 05:54:25 +00:00
Chris Lattner
2f4b3a10d8
Remove long obsolete method. switch instructions are first class entities in the CFG, and have been for a LOOOONG time.
...
llvm-svn: 11303
2004-02-11 01:17:58 +00:00
Chris Lattner
a81258a786
An initial implementation of an LLVM ProfileInfo class which is designed to
...
eventually allow Passes to use profiling information to direct them.
llvm-svn: 11294
2004-02-10 22:11:42 +00:00
Misha Brukman
a372499d7b
Sprinkle liberally with comments, saute with doxygen until readable.
...
llvm-svn: 11293
2004-02-10 21:49:59 +00:00
Misha Brukman
dede07142d
Doxygenify comment.
...
llvm-svn: 11292
2004-02-10 21:48:12 +00:00
Chris Lattner
a04a1456da
Urg, the X86 backend DOES use virtual register operands. :(
...
llvm-svn: 11288
2004-02-10 21:43:11 +00:00
Chris Lattner
286169ff60
Remove and simplify some of the bewildering collection of isFOORegister
...
methods which have strangely different semantics in different backends,
and noone knew what any did.
Getting rid of these ALSO allows the dependence of MachineInstr.h on
MRegisterInfo.h to be removed, which makes me much happier, and probably
alkis too. :)
llvm-svn: 11287
2004-02-10 21:21:17 +00:00
Chris Lattner
b38552cf42
Remove some unneeded stuff
...
llvm-svn: 11286
2004-02-10 21:19:49 +00:00
Chris Lattner
04f36062ea
Eliminate MachineOperand::isPhysicalRegister. The X86 backend should use
...
MRegisterInfo::isPhysicalRegister(MO.getReg()) and the Sparc backend should
use isMachineRegister()
llvm-svn: 11279
2004-02-10 20:42:11 +00:00
Chris Lattner
854737de3f
Simplify condition, this does not change the predicate at all though
...
llvm-svn: 11275
2004-02-10 20:30:40 +00:00
Misha Brukman
11a3e8f8d7
* Added class comments
...
* Doxygenified existing comments
* Compactified code to be more consistent
llvm-svn: 11268
2004-02-10 18:44:16 +00:00
Misha Brukman
2374a1e530
Doxygen-ify comments, make function prototypes more consistent in format.
...
llvm-svn: 11259
2004-02-10 16:39:05 +00:00
Alkis Evlogimenos
2ff7101cf2
Add global methods that prevent us from using ilist::iterators as
...
random access iterators.
llvm-svn: 11248
2004-02-09 22:40:50 +00:00
Brian Gaeke
00b2107e2a
SchedGraph doesn't need to be friends with SchedGraphNodeCommon anymore.
...
llvm-svn: 11240
2004-02-09 18:43:06 +00:00
Chris Lattner
f231cb60f4
Now that all of the derived types have disciplined interfaces, we can eliminate
...
all of the ad-hoc storage of contained types. This allows getContainedType to
not be virtual, and allows us to entirely delete the TypeIterator class.
llvm-svn: 11230
2004-02-09 05:40:24 +00:00
Chris Lattner
fd4417ba18
Increase encapsulation of the StructType class, eliminating the getElementTypes() member
...
llvm-svn: 11227
2004-02-09 04:36:50 +00:00