Chris Lattner
affbcb6be5
Simplify and document the new interface
...
llvm-svn: 11524
2004-02-17 05:54:26 +00:00
Alkis Evlogimenos
c4ec9111bb
Add API to check and fold memory operands into instructions.
...
llvm-svn: 11519
2004-02-17 04:33:18 +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
8641f2fb58
Make sure to provide a prototype for the cbackend
...
llvm-svn: 11419
2004-02-13 23:36:03 +00:00
Alkis Evlogimenos
6d6ab846af
Remove getAllocatedRegNum(). Use getReg() instead.
...
llvm-svn: 11393
2004-02-13 21:01:20 +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
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
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
7246d4efd0
Fix typos in comments.
...
llvm-svn: 11333
2004-02-11 19:47:43 +00:00
Brian Gaeke
a393704706
Add prototype for llvm::allocatePowerPCTargetMachine().
...
llvm-svn: 11072
2004-02-02 19:05:08 +00:00
Alkis Evlogimenos
0ec32d4118
Add MRegisterInfo::getNumRegs().
...
llvm-svn: 11058
2004-02-01 17:14:20 +00:00
Chris Lattner
dadbb4da4d
Add two static methods to avoid having client code explicitly compare against
...
FirstVirtualRegister
llvm-svn: 11031
2004-01-31 19:57:11 +00:00
Misha Brukman
26b6be3053
If you call abort(), #include <cstdlib>
...
llvm-svn: 10941
2004-01-21 22:50:12 +00:00
Chris Lattner
c37577eb9f
Clean up a lot of the code I added yesterday by exposing the IntrinsicLowering
...
implementation from the TargetMachine directly.
llvm-svn: 10636
2003-12-28 21:23:38 +00:00
Alkis Evlogimenos
24b3159dfc
Add TargetInstrInfo::isMoveInstr() to support coalescing in register
...
allocation.
llvm-svn: 10633
2003-12-28 17:35:08 +00:00
Chris Lattner
869549f54b
We may now pass IntrinsicLowering implementations into these methods
...
llvm-svn: 10630
2003-12-28 09:48:17 +00:00
Chris Lattner
07a17d5ffe
Doxygenize methods, add new getIntPtrType method
...
llvm-svn: 10578
2003-12-22 05:00:45 +00:00
Chris Lattner
1cb1efedb3
Rip JIT specific stuff out of TargetMachine, as per PR176
...
llvm-svn: 10542
2003-12-20 01:22:19 +00:00
Chris Lattner
18e6e48ff0
Add new getJITStubForFunction method, which may optionally be implemented by
...
targets for better performance.
llvm-svn: 10429
2003-12-12 07:10:32 +00:00
Brian Gaeke
d25f86d683
Put all LLVM code into the llvm namespace, as per bug 109.
...
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
Misha Brukman
7fa3523f55
Since this function returns an int, let's actually return something.
...
llvm-svn: 9734
2003-11-05 19:48:05 +00:00
Alkis Evlogimenos
a6f280b483
Update documentation since it was misleading: make it clear that a
...
negative instruction count is returned if instructions are removed
from a basic block.
llvm-svn: 9705
2003-11-04 23:07:00 +00:00
Alkis Evlogimenos
c6a7c83333
Change all machine basic block modifier functions in MRegisterInfo to
...
return the number of instructions added to/removed from the basic block
passed as their first argument.
Note: This is only needed because we use a std::vector instead of an
ilist to keep MachineBasicBlock instructions. Inserting an instruction
to a MachineBasicBlock invalidates all iterators to the basic
block. The return value can be used to update an index to the machine
basic block instruction vector and circumvent the iterator elimination
problem but this is really not needed if we move to a better
representation.
llvm-svn: 9704
2003-11-04 22:57:09 +00:00
John Criswell
16c6cda9d5
Added LLVM copyright header (for lack of a better term).
...
llvm-svn: 9304
2003-10-20 20:19:47 +00:00
Brian Gaeke
04115cb86a
Make replaceMachineCodeForFunction return void.
...
Make it assert by default.
llvm-svn: 9287
2003-10-20 15:14:33 +00:00
Brian Gaeke
fc52099b3c
Add stub version of replaceMachineCodeForFunction. It will live here until
...
we have a better place for it to go.
llvm-svn: 9197
2003-10-17 18:26:45 +00:00
Chris Lattner
4e4c763dfc
Standardize header file comments
...
llvm-svn: 8782
2003-09-30 18:37:50 +00:00
Chris Lattner
8ec3783590
Remove dead file
...
llvm-svn: 8313
2003-09-01 20:41:21 +00:00
Chris Lattner
feebbdd6d1
No longer require an OptInfo
...
llvm-svn: 8310
2003-09-01 20:40:43 +00:00
Chris Lattner
90253d18b1
Targets should configure themselves based on the module, not some wierd flags
...
llvm-svn: 8131
2003-08-24 19:49:07 +00:00
Misha Brukman
cda7f97dbb
The word dependent' has no
a'.
...
llvm-svn: 8030
2003-08-21 22:14:26 +00:00
Misha Brukman
56f7db4178
Spell `necessary' correctly.
...
llvm-svn: 7944
2003-08-18 14:43:39 +00:00
Chris Lattner
09d58b8157
Remove extraneous #include
...
llvm-svn: 7881
2003-08-15 05:21:30 +00:00
Brian Gaeke
299cf12f45
addPassesToJITCompile and addPassesToEmitMachineCode now take a
...
FunctionPassManager, to support function-at-a-time compilation and
emission of code.
llvm-svn: 7821
2003-08-13 18:17:27 +00:00
Chris Lattner
4c675245b9
The NOOP instruction is no longer needed. Instead, use the
...
TargetInstrInfo::isNOPinstr method
llvm-svn: 7530
2003-08-03 18:52:15 +00:00
Chris Lattner
1fd37738b6
Code generation passes don't need access to raw LLVM types, this method is unnecessary.
...
llvm-svn: 7412
2003-07-30 05:29:45 +00:00
Vikram S. Adve
b73a1c0085
Unify all constant evaluations that depend on register size
...
in TargetInstrInfo::ConvertConstantToIntType.
llvm-svn: 7398
2003-07-29 20:30:20 +00:00
Vikram S. Adve
e02f966e3e
Moved insertCallerSavingCode() to PhyRegAlloc and
...
moved isRegVolatile and modifiedByCall here: they are all
machine independent. Remove all uses of PhyRegAlloc.
llvm-svn: 7387
2003-07-29 19:41:23 +00:00
Chris Lattner
396841f185
Move value type enums to CodeGen/ValueTypes.h
...
llvm-svn: 7376
2003-07-29 05:13:34 +00:00
Vikram S. Adve
73f410f53f
Change the way unused regs. are marked and found to consider regType
...
info (since multiple reg types may share the same reg class).
Remove machine-specific regalloc. methods that are no longer needed.
llvm-svn: 7328
2003-07-25 21:01:43 +00:00
Chris Lattner
be4a5081d1
#include <cassert> as necessary...
...
llvm-svn: 7315
2003-07-25 17:58:41 +00:00
Anand Shukla
351c0f6342
Added special consideration for instrumentation strategy
...
llvm-svn: 7208
2003-07-20 15:39:30 +00:00
Misha Brukman
5de3e14206
The word separate' only has one
e'.
...
llvm-svn: 7173
2003-07-14 17:20:40 +00:00
John Criswell
258dfc0319
Merged in autoconf branch. This provides configuration via the autoconf
...
system.
llvm-svn: 7014
2003-06-30 21:59:07 +00:00
Brian Gaeke
6f2c46cd52
Nice tasty llc fixes. These should fix LLC for x86 for everything in
...
SingleSource except oopack and Oscar. (Sorry, Oscar.)
include/llvm/Target/TargetInstrInfo.h: Remove virtual print method. Add
accessors for ImplicitUses/Defs.
lib/Target/TargetInstrInfo.cpp: Remove virtual print method. If you
really wanted this, just use MI->print(O, TM); instead...
lib/Target/X86:
FloatingPoint.cpp: ...like this.
X86InstrInfo.h: Remove virtual print method. Define the PrintImplUses
target-specific flag bit.
X86InstrInfo.def: Add the PrintImplUses flag to all the instructions
which implicitly use CL, because the assembler needs to see the CL in
order to generate the right instruction.
Printer.cpp: Ditch fnIndex at Chris's request. Now we use CurrentFnName
to name constants in the constant pool for each function instead. This
avoids keeping state between runOnMachineFunction() invocations, which
is a no-no. Having MangledGlobals be global is a bogon I'd like to get
rid of too, but making it a static member of Printer causes link errors
(why???).
Make NumberForBB into a member of Printer instead of a global, too.
Make printOp and printMemReference into methods of Printer.
X86InstrInfo::print is now Printer::printMachineInstruction, because
TargetInstrInfo::print is history. (Because of this, we have to qualify
the names of some TargetInstrInfo methods we call.)
Print out the ImplicitUses field of any instruction we print that has
the PrintImplUses bit set.
llvm-svn: 6924
2003-06-27 00:00:48 +00:00
Chris Lattner
6c12776232
Remove a ton of extraneous #includes
...
llvm-svn: 6842
2003-06-22 03:08:05 +00:00
John Criswell
4781723de6
Included assert.h so that the code compiles under newer versions of GCC.
...
llvm-svn: 6682
2003-06-11 14:01:36 +00:00
Chris Lattner
347bd5fb6f
Remove noncopyableV base classes, as they were confusing the doxygen documentation,
...
making it harder to read.
llvm-svn: 6575
2003-06-03 15:28:40 +00:00
Vikram S. Adve
9625e27034
Made a single common InvalidRegNum = -1.
...
llvm-svn: 6473
2003-05-31 07:44:07 +00:00
Misha Brukman
ef428e8dca
Fixed misspelling and broke a line that was wrapping.
...
llvm-svn: 6391
2003-05-29 05:00:14 +00:00