Chris Lattner
1ea6d207ce
Convert to the new MachineFunctionInfo interface
...
llvm-svn: 15904
2004-08-18 18:13:37 +00:00
Brian Gaeke
b8183ff647
The SparcV9 target no longer uses any pseudoinstructions (SETSW, SETUW,
...
SETX) or M_PSEUDO_FLAG.
llvm-svn: 15901
2004-08-18 17:44:16 +00:00
Brian Gaeke
2fbe85b1f3
The Create*Const methods don't need to pass around a TargetMachine reference.
...
Other minor cleanups.
llvm-svn: 15900
2004-08-18 17:44:15 +00:00
Brian Gaeke
c03556f67e
Doxygenify some comments.
...
Clean up cpReg2MemMI and cpMem2RegMI, and doxygenify comments.
Get rid of their uses of SETSW, which is a pseudoinstruction. We can't
JIT-compile pseudoinstructions at the moment. This was blowing up 252.eon/jit,
which has some HUGE stack frames.
Reduce the uses of constantFitsInImmedField().
Consolidate some assertions.
llvm-svn: 15899
2004-08-18 17:44:14 +00:00
Chris Lattner
12754fe6b3
Switch V9 over to using the AsmPrinter base class to do its constant printing
...
Massive thanks to the brg miester for doing the testing. :)
llvm-svn: 15898
2004-08-18 05:29:08 +00:00
Chris Lattner
7e3f28fcdf
Moved this file out of lib/CodeGen
...
llvm-svn: 15837
2004-08-16 22:38:02 +00:00
Chris Lattner
2cb145ceb5
Hacks to make the MachineFunction class be able to delete the MFI object
...
without knowing anything about it.
llvm-svn: 15836
2004-08-16 22:37:18 +00:00
Chris Lattner
95de5ddbbd
Code moved out of lib/CodeGen/MachineFunction.cpp
...
llvm-svn: 15835
2004-08-16 22:36:54 +00:00
Chris Lattner
9fb30a4257
Move MachineCodeForInstruction.h and MachineFunctionInfo.h into lib/Target/SparcV9
...
llvm-svn: 15830
2004-08-16 21:55:02 +00:00
Brian Gaeke
a7ae92436f
Update and consolidate comments. Remove some excess whitespace.
...
llvm-svn: 15824
2004-08-16 18:27:25 +00:00
Chris Lattner
a0b38d3cb1
Code insertion methods now return void instead of an int.
...
llvm-svn: 15780
2004-08-15 22:15:11 +00:00
Chris Lattner
98de1d7795
These methods no longer take a TargetRegisterClass* operand.
...
llvm-svn: 15774
2004-08-15 21:56:44 +00:00
Nate Begeman
1b0142d54e
Eliminate MachineFunction& argument from eliminateFrameIndex in SparcV9 target
...
llvm-svn: 15738
2004-08-14 22:03:29 +00:00
Chris Lattner
f9db6ff94b
Remove dead methods
...
llvm-svn: 15698
2004-08-12 18:37:15 +00:00
Chris Lattner
907a360b11
Fix warning
...
llvm-svn: 15697
2004-08-12 18:36:28 +00:00
Chris Lattner
5ff05d724f
Instead of a virtual method call, lets try a direct constant reference
...
llvm-svn: 15696
2004-08-12 18:29:05 +00:00
Chris Lattner
6411ff3c83
Virtual method calls are overrated
...
llvm-svn: 15695
2004-08-12 18:20:55 +00:00
Chris Lattner
df86f30815
Virtual method calls are overrated.
...
llvm-svn: 15694
2004-08-12 18:20:41 +00:00
Chris Lattner
b0ac422db5
Remove dead methods
...
llvm-svn: 15691
2004-08-12 17:58:27 +00:00
Chris Lattner
e843032834
When we want a constant, just use it, instead of calling through layers of
...
virtual methods and register name mapping functions
llvm-svn: 15690
2004-08-12 17:56:01 +00:00
Misha Brukman
1401c28e35
Fix file header comment: update filename, set tablegen emacs mode.
...
llvm-svn: 15625
2004-08-10 20:28:13 +00:00
Misha Brukman
dc541abcd0
* Instruction definitions moved to SparcV9InstrInfo.td for consistency
...
* Defined PHI instruction and SparcV9 subclass of Target
llvm-svn: 15615
2004-08-10 18:15:31 +00:00
Misha Brukman
591d47113f
Renamed SparcV9_Reg.td -> SparcV9RegisterInfo.td for consistency.
...
llvm-svn: 15614
2004-08-10 18:14:04 +00:00
Misha Brukman
17913b3f23
Fix comment header, specify type of file `tablegen'.
...
llvm-svn: 15612
2004-08-10 17:37:14 +00:00
Misha Brukman
8fbdc9fc4f
Define the target name so we can use it via TableGen.
...
llvm-svn: 15604
2004-08-10 15:29:15 +00:00
Misha Brukman
8f951e579b
Remove ClassPrefix variable as it's no longer used.
...
llvm-svn: 15586
2004-08-09 19:13:29 +00:00
Misha Brukman
11bbbb9cdd
Define the ClassPrefix for SparcV9.
...
llvm-svn: 15581
2004-08-09 17:46:49 +00:00
Brian Gaeke
8d38dee7b4
dumpSavedState has outlived its usefulness.
...
llvm-svn: 15555
2004-08-06 19:11:43 +00:00
Misha Brukman
283042bed3
Hand-propagate the constant TARGET_NAME which was making lines wrap anyway
...
llvm-svn: 15506
2004-08-04 21:48:45 +00:00
Misha Brukman
b2b9686b3a
* Remove unnecessary comment
...
* Fix alignment of code
* Tabs to spaces
llvm-svn: 15505
2004-08-04 21:48:00 +00:00
Alkis Evlogimenos
832437255d
Stop using getValues().
...
llvm-svn: 15487
2004-08-04 08:44:43 +00:00
Brian Gaeke
ef57e5b91a
Get rid of the only use of TargetInstrInfo::getResultPos(), a deprecated method.
...
llvm-svn: 15483
2004-08-04 08:05:27 +00:00
Brian Gaeke
def3b458b0
Include SparcV9BurgISel.h, to pick up the definition of
...
createSparcV9BurgInstSelector().
llvm-svn: 15474
2004-08-04 07:30:04 +00:00
Brian Gaeke
813d9f5023
Include SparcV9TmpInstr.h instead of llvm/CodeGen/InstrSelection.h, to pick
...
up the definition of class TmpInstruction.
llvm-svn: 15473
2004-08-04 07:29:53 +00:00
Brian Gaeke
4b621da631
Include SparcV9BurgISel.h, because PreSelection uses routines from within
...
the SparcV9 BURG instruction selector. Eww!
llvm-svn: 15472
2004-08-04 07:29:40 +00:00
Brian Gaeke
908df3299f
Add a Doxygen comment, and inline the constructor (which is now almost empty).
...
llvm-svn: 15471
2004-08-04 07:29:28 +00:00
Brian Gaeke
16f092fe93
The InstrForest data type has moved from llvm/CodeGen/InstrForest.h
...
to SparcV9InstrForest.h.
llvm-svn: 15470
2004-08-04 07:29:16 +00:00
Brian Gaeke
b3e3c539a4
Add a new file containing just TmpInstruction and its implementation.
...
Many other pieces of the SparcV9 backend want to use TmpInstruction, but
don't need any other instruction selector baggage.
llvm-svn: 15469
2004-08-04 07:29:04 +00:00
Brian Gaeke
61dd48425f
All the SparcV9 BURG instruction selector pieces have been collected into the
...
new file SparcV9BurgISel.cpp, with exposed interfaces in SparcV9BurgISel.h.
The InstrSelection directory is now dead.
llvm-svn: 15468
2004-08-04 07:28:51 +00:00
Chris Lattner
9e92b19182
Move this file out of the top-level docs directory
...
llvm-svn: 15429
2004-08-03 04:15:02 +00:00
Chris Lattner
66a64fb997
Fix #includes of i*.h => Instructions.h as per PR403:
...
http://llvm.cs.uiuc.edu/PR403 .
llvm-svn: 15331
2004-07-29 17:11:37 +00:00
Brian Gaeke
690bdefb5f
Get rid of a few dead method declarations.
...
llvm-svn: 15323
2004-07-29 06:43:10 +00:00
Brian Gaeke
d7b36632af
Get rid of calls to void llvm::printSet(const ValueSet &).
...
llvm-svn: 15322
2004-07-29 06:43:09 +00:00
Brian Gaeke
8f8a2ed0b3
Get rid of calls to void llvm::printSet(const ValueSet &).
...
Use LiveRange's iterator types and operations instead of ValueSet's.
llvm-svn: 15321
2004-07-29 06:43:08 +00:00
Brian Gaeke
3073fe3cee
Don't derive from ValueSet to implement class LiveRange; instead, use a
...
SetVector<Value *> data member.
Add << operator for LiveRanges (a dumb one, for now.)
llvm-svn: 15320
2004-07-29 06:43:06 +00:00
Brian Gaeke
818b3631f3
Fix a few typoes and grammaroes in comments.
...
llvm-svn: 15319
2004-07-29 04:25:43 +00:00
Brian Gaeke
3cf8d5b0a2
Remove mustSaveAcrossCalls flag, which isn't ever read, and its mutator,
...
markForSaveAcrossCalls.
llvm-svn: 15317
2004-07-29 04:15:36 +00:00
Brian Gaeke
28f75c2140
This was the only user of TargetInstrInfo::ConstantTypeMustBeLoaded().
...
llvm-svn: 15293
2004-07-27 21:11:20 +00:00
Brian Gaeke
c3259f6413
Get rid of the (apparently non-working) filePrinterEmitter which is added in
...
debug mode. Its only effect seems to be the creation of an empty file...
llvm-svn: 15289
2004-07-27 19:37:37 +00:00
Brian Gaeke
f4c1d1ee34
TargetInstrInfo::getNOPOpCode() has been replaced by a reference to V9::NOP.
...
llvm-svn: 15279
2004-07-27 17:43:24 +00:00
Brian Gaeke
64f51df06d
Convert many of the virtual TargetInstrInfo methods used as helper
...
functions in SparcV9InstrSelection and SparcV9PreSelection into regular
old global functions. As it happens, none of them really have anything
to do with TargetInstrInfo.
llvm-svn: 15278
2004-07-27 17:43:23 +00:00
Brian Gaeke
b788626dc8
As it happens, none of these TargetInstrInfo methods which are only
...
used in the SparcV9 backend really have anything to do with
TargetInstrInfo, so we're converting them into regular old global
functions and moving their declarations to SparcV9InstrSelectionSupport.h.
(They're mostly used as helper functions for SparcV9InstrSelection.)
llvm-svn: 15277
2004-07-27 17:43:22 +00:00
Reid Spencer
82e7fe5b5b
bug 122:
...
Simplify a conditional operator for a constant result from
GV->isNullValue()
llvm-svn: 15001
2004-07-19 13:25:02 +00:00
Chris Lattner
57ca7382d9
Inline 4 methods
...
llvm-svn: 15000
2004-07-19 07:52:35 +00:00
Reid Spencer
cb3fb5d4f5
bug 122:
...
- Replace ConstantPointerRef usage with GlobalValue usage
llvm-svn: 14953
2004-07-18 00:44:37 +00:00
Reid Spencer
874368790f
bug 122:
...
- Replace ConstantPointerRef usage with GlobalValue usage
- Minimize redundant isa<GlobalValue> usage
- Correct isa<Constant> for GlobalValue subclass
llvm-svn: 14950
2004-07-18 00:38:32 +00:00
Reid Spencer
3074d3cfe7
bug 122:
...
- Correct isa<Constant> for GlobalValue subclass
llvm-svn: 14949
2004-07-18 00:37:35 +00:00
Chris Lattner
9716100a5d
IA64 compat
...
llvm-svn: 14867
2004-07-16 00:08:28 +00:00
Chris Lattner
7dc9de5f43
Patches towards fixing PR341
...
llvm-svn: 14841
2004-07-15 02:14:30 +00:00
Brian Gaeke
590b5f12db
Add Machine-CFG edges to SparcV9 MachineBasicBlocks.
...
llvm-svn: 14806
2004-07-14 05:40:50 +00:00
Chris Lattner
c2726e63ed
Delete the allocate*TargetMachine function, which is now dead .
...
The shared command line options are now in a header that makes sense.
llvm-svn: 14756
2004-07-11 04:17:10 +00:00
Chris Lattner
73eb9436ee
Make these format a bit nicer
...
llvm-svn: 14747
2004-07-11 03:27:42 +00:00
Chris Lattner
4266f8017d
Auto-registrate target
...
llvm-svn: 14745
2004-07-11 02:48:49 +00:00
Reid Spencer
eb04d9bcb4
Add #include <iostream> since Value.h does not #include it any more.
...
llvm-svn: 14622
2004-07-04 12:19:56 +00:00
Brian Gaeke
186e3d1098
Add M_TERMINATOR_FLAG to terminator instructions (branches and returns).
...
Also, the RETURN instructions are not used in the sparcv9 backend.
llvm-svn: 14559
2004-07-02 04:57:37 +00:00
Brian Gaeke
fb894bd864
RETURN instructions are not used in the sparc backend.
...
When in doubt, stamp it out!!
llvm-svn: 14558
2004-07-02 04:57:35 +00:00
Chris Lattner
6fb22cd7ef
There is no reason to print ValueType here
...
llvm-svn: 14425
2004-06-26 19:36:34 +00:00
Brian Gaeke
ae6fb8ae5c
Make the most commonly preselected instructions add to the names of the
...
instructions they augment, instead of replacing them. It's good for debugging,
and it's OK for the sparcv9 backend.
llvm-svn: 14353
2004-06-23 21:41:32 +00:00
Chris Lattner
bcdadf3765
Move the IntrinsicLowering header into the CodeGen directory, as per PR346
...
llvm-svn: 14266
2004-06-20 07:49:54 +00:00
Chris Lattner
6b7275996c
Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()
...
llvm-svn: 14201
2004-06-17 18:19:28 +00:00
Brian Gaeke
99c6539bce
Make -print-machineinstrs even stronger. You get to see the final code after
...
peepholing, and make it work the same way in the JIT as in LLC.
llvm-svn: 14170
2004-06-14 05:05:45 +00:00
Brian Gaeke
2655aab200
Turn loads of ConstantPointerNulls into loads of zero... don't spill
...
them into the constant pool.
llvm-svn: 14128
2004-06-11 02:03:48 +00:00
Brian Gaeke
5b03a0628f
Encode %fsr correctly; don't fail an assertion.
...
llvm-svn: 14103
2004-06-09 21:54:59 +00:00
Brian Gaeke
87d8878f6d
Fix encoding of ST*FSR instructions.
...
llvm-svn: 14102
2004-06-09 21:54:58 +00:00
Brian Gaeke
87c75632ee
Fix assertion failure message to have the right method name.
...
llvm-svn: 14101
2004-06-09 20:44:42 +00:00
Brian Gaeke
c365e7cc99
Fix a minor bug in the map - since this pass adds a global symbol, it must be
...
accounted for in the map (at least, in its current format).
llvm-svn: 14075
2004-06-08 20:08:30 +00:00
Brian Gaeke
76b6426a8c
Add a TmpInstruction ctor that doesn't take a MCFI.
...
llvm-svn: 14073
2004-06-08 18:52:46 +00:00
Brian Gaeke
78faa9a9e6
Fix up some spacing & fix a typo in an assertion in cpValue2Value.
...
llvm-svn: 14027
2004-06-04 20:51:40 +00:00
Brian Gaeke
6973e85b16
Add new internal-global-symbol mapping info pass... may its life be short
...
and sweet.
llvm-svn: 13983
2004-06-03 05:03:37 +00:00
Brian Gaeke
0a48c0d913
Add new mapping info pass, when EmitMappingInfo is on.
...
llvm-svn: 13981
2004-06-03 05:03:01 +00:00
Brian Gaeke
25c6fa0e83
Fix big mistake in my last checkin... the big question is, how did I ever
...
get this to link before?
llvm-svn: 13980
2004-06-03 05:03:00 +00:00
Brian Gaeke
11cfb090b8
Add decl. for new mapping info pass factory method.
...
llvm-svn: 13979
2004-06-03 05:02:59 +00:00
Brian Gaeke
dca24ddfc7
Collapse together the abstract superclass TargetRegInfo and SparcV9RegInfo, its
...
only concrete implementation.
llvm-svn: 13977
2004-06-03 02:45:09 +00:00
Chris Lattner
82baa9c394
Convert to the new TargetMachine interface.
...
llvm-svn: 13952
2004-06-02 05:55:25 +00:00
Brian Gaeke
4cc9328b5d
There is no "mcff" here; delete the confusing comments that refer to it.
...
llvm-svn: 13911
2004-05-30 08:29:16 +00:00
Brian Gaeke
7a8734af7f
Transform an occurrence of if(...) { assert (0) }.
...
llvm-svn: 13908
2004-05-30 07:34:01 +00:00
Brian Gaeke
01c1f3279d
Reduce the amount of LLVM Values for which we save reg. allocator
...
state. Also, save the state for the incoming register of each phi
node.
llvm-svn: 13906
2004-05-30 07:08:43 +00:00
Brian Gaeke
9836668944
Rename verifySavedState to dumpSavedState. Give it a new comment.
...
Call it at a more appropriate point.
llvm-svn: 13905
2004-05-30 04:22:24 +00:00
Brian Gaeke
bc3d8652ec
Insert machine instructions generated for Phi nodes into their
...
corresponding MachineCodeForInstruction vectors.
I need to be able to get the register allocated for the thing which is
called PhiCpRes in this code; this should make that task easier, plus,
Phi nodes are no longer "special" in the sense that their
MachineCodeForInstruction is empty.
llvm-svn: 13904
2004-05-30 03:33:49 +00:00
Brian Gaeke
24c18879f0
Remove unused #include.
...
llvm-svn: 13899
2004-05-29 23:26:13 +00:00
Brian Gaeke
42112b4a09
Add comments.
...
llvm-svn: 13898
2004-05-29 23:10:20 +00:00
Brian Gaeke
2398b17a57
Trim whitespace.
...
llvm-svn: 13897
2004-05-29 22:49:51 +00:00
Brian Gaeke
7fa398d850
Give InsertCodeForPhis() a new documentation comment.
...
llvm-svn: 13896
2004-05-29 22:20:59 +00:00
Brian Gaeke
90dc744ac0
Give PhiCp nodes better names in many cases.
...
Simplify InsertPhiElimInstructions(), and give it a better doxygen comment.
llvm-svn: 13880
2004-05-28 19:34:00 +00:00
Brian Gaeke
26925ff857
Make debugging output with -print-machineinstrs more useful: always print out
...
the transformed LLVM code which is the input to the instruction selector.
llvm-svn: 13879
2004-05-28 19:33:59 +00:00
Brian Gaeke
1c6f9b4304
Make comment lines stick out less.
...
llvm-svn: 13858
2004-05-27 21:41:48 +00:00
Brian Gaeke
230deea60f
Add a (not very meaningful) default constructor for AllocInfo objects.
...
llvm-svn: 13773
2004-05-25 20:43:47 +00:00
Reid Spencer
14428ac740
Remove use of Type::TypeTy from an assert. It will go away soon.
...
llvm-svn: 13748
2004-05-25 08:50:52 +00:00
Chris Lattner
6e4edd65ab
Add support for accurate garbage collection to the LLVM code generators
...
llvm-svn: 13696
2004-05-23 21:23:35 +00:00
Brian Gaeke
d4889be5ca
Fix a typo in a comment.
...
llvm-svn: 13643
2004-05-23 05:10:06 +00:00
Brian Gaeke
7b7a14d718
Fix a bug in outputting branches to constant PCs. Since the PC is supplied as
...
a full 64-bit address, it must be adjusted to fit in the branch instruction's
immediate field. (This is only used in the reoptimizer, for now.)
llvm-svn: 13608
2004-05-20 07:43:40 +00:00
Brian Gaeke
e8949b3083
Minor simplification: eliminate a dyn_cast.
...
Fix a typo in a debug message.
llvm-svn: 13607
2004-05-19 21:30:01 +00:00
Brian Gaeke
d26074eef1
Missing piece of fix for Bug 333
...
llvm-svn: 13362
2004-05-04 21:41:45 +00:00
Brian Gaeke
f2ff5dd442
Correctly mangle function names when they are used as part of a
...
constant pool member's name.
This is intended to address Bug 333.
Also, fix an anachronistic usage of "M" as a parameter of type Function *.
llvm-svn: 13357
2004-05-04 21:09:02 +00:00
Brian Gaeke
444a03b77a
Integrate the rest of my random sparcv9 scribblings into this file
...
llvm-svn: 13204
2004-04-27 22:04:03 +00:00
Chris Lattner
2d3a7a6ff0
Changes to fix up the inst_iterator to pass to boost iterator checks. This
...
patch was graciously contributed by Vladimir Prus.
llvm-svn: 13185
2004-04-27 15:13:33 +00:00
Brian Gaeke
03cac379bd
Fix file header comments and include guards -- many files have been moved or
...
renamed since they were last spiffed up, or they just never had proper comments
in the first place.
llvm-svn: 13148
2004-04-25 07:04:49 +00:00
Brian Gaeke
42d321ab66
Add a getRegisterInfo() accessor just like on the X86 target.
...
llvm-svn: 13147
2004-04-25 06:32:28 +00:00
Brian Gaeke
4ec08db77c
Regularize file header comment and include guard.
...
Include SparcV9RegisterInfo.h.
Add a getRegisterInfo() accessor and SparcV9RegisterInfo instance, just like
on the X86 target.
llvm-svn: 13146
2004-04-25 06:32:16 +00:00
Brian Gaeke
f70544c583
Add MRegisterInfo subclass for the SparcV9 target (containing only stub
...
functions for now). This automatically turns on the printing of machine
registers using their own real names, instead of goofy things like %mreg(42),
and allows us to migrate code incrementally to the new interface as we see fit.
The register file description it uses is hand-written, so that the register
numbers will match the ones that the SparcV9 target already uses.
Perhaps someday we'll tablegen it.
llvm-svn: 13145
2004-04-25 06:32:05 +00:00
Brian Gaeke
ced65e8792
Fix a typo.
...
llvm-svn: 13136
2004-04-23 21:45:02 +00:00
Brian Gaeke
0b65f8f582
Merge TargetRegInfo.h into SparcV9RegInfo.h, which is its only subclass.
...
This prepares us to be able to de-virtualize and de-abstract it, and
take the register allocator bits out and move them into the register allocator
proper...
llvm-svn: 13127
2004-04-23 18:15:48 +00:00
Brian Gaeke
71509a98c5
Include SparcV9RegInfo.h instead of TargetRegInfo.h.
...
llvm-svn: 13126
2004-04-23 18:15:47 +00:00
Brian Gaeke
fbd43e43a7
Get rid of the old byte-at-a-time emission code used when the Sparc JIT was
...
being tested on X86, as per Chris's request.
llvm-svn: 13124
2004-04-23 18:10:38 +00:00
Brian Gaeke
fe277c2809
Emit SPARC machine code a word at a time instead of a byte at a time.
...
Use emitWordAt() to emit forward-branch fixups.
llvm-svn: 13119
2004-04-23 17:11:15 +00:00
Brian Gaeke
376ac1bed5
Make SparcV9RegInfo::getRegType() return the right answer for registers
...
of IntCC, FloatCC, and Special types.
Make SparcV9RegInfo::getRegClassIDOfRegType() return the right answer
if you ask for the class corresponding to SpecialRegType.
llvm-svn: 13095
2004-04-21 17:53:58 +00:00
Brian Gaeke
a2f66db6c4
Make it legal to ask for the type of a specialreg
...
llvm-svn: 13078
2004-04-20 20:12:57 +00:00
Brian Gaeke
6c272a93bb
Make it legal to request a load or store of %fsr.
...
llvm-svn: 13073
2004-04-19 19:12:12 +00:00
Brian Gaeke
755651df27
Regularize include guards and remove some excess whitespace.
...
llvm-svn: 13071
2004-04-19 18:53:44 +00:00
Brian Gaeke
2fd2536ea8
Tighten up SparcV9FloatCCRegClass::getRegName()'s assertion - if you ask it for
...
the name of %fsr (as the comment in SparcV9RegClassInfo.h used to suggest)
you would walk off the end of the FloatCCRegName array.
llvm-svn: 13070
2004-04-19 18:53:43 +00:00
Brian Gaeke
85cb77737c
Regularize include guards, remove some excess whitespace and fix some comments.
...
Remove the extra %fsr register from SparcV9FloatCCRegClass.
llvm-svn: 13069
2004-04-19 18:53:42 +00:00
Brian Gaeke
5bee0f3068
Give SparcV9CodeEmitter a head-of-file comment and a PassName.
...
llvm-svn: 12967
2004-04-15 20:23:13 +00:00
Brian Gaeke
bb0f2db881
We don't need to insert TargetData into the PassManager here.
...
llvm-svn: 12874
2004-04-12 21:46:31 +00:00
Brian Gaeke
69ee7e1353
Don't include InstrSelectionSupport.h.
...
llvm-svn: 12766
2004-04-07 20:55:32 +00:00
Brian Gaeke
c125664927
Move ChooseRegOrImmed() prototype here, from InstrSelectionSupport.h.
...
llvm-svn: 12765
2004-04-07 20:38:57 +00:00
Brian Gaeke
5c80118367
Don't include InstrSelectionSupport.h.
...
llvm-svn: 12764
2004-04-07 20:38:56 +00:00
Brian Gaeke
8931345fe5
Fix insertion of SelectInsts.
...
llvm-svn: 12760
2004-04-07 18:31:47 +00:00
Chris Lattner
dfcf8e34cf
In the perhaps not-to-distant future, we might support gep instructions that
...
have non-long indices for sequential types. In order to avoid trying to figure
out how the v9 backend works, we'll just hack it in the preselection pass.
llvm-svn: 12647
2004-04-04 20:44:05 +00:00
Brian Gaeke
2845936a34
Only strip symbols if emitting bytecode to the assembly file.
...
Move lowerselect pass to come after preselection. Move machine
code construction and stack slots pass to come right before instruction
selection. This is to help fix perlbmk.
Update comments.
Make the sequence of passes in addPassesToJITCompile look more like
the sequence of passes in addPassesToEmitAssembly, including support
for -print-machineinstrs.
llvm-svn: 12614
2004-04-02 17:52:40 +00:00
Brian Gaeke
cc24411c0a
Add support for constant select expressions. Clarify the assertion failure msg.
...
llvm-svn: 12613
2004-04-02 17:52:29 +00:00
Chris Lattner
afbafb55ea
MBB::remove should not modify the iterator passed in
...
llvm-svn: 12572
2004-03-31 21:59:59 +00:00
Brian Gaeke
623710bf2f
Factor out getStaticStackSize from InsertPrologCode(), so that I can more
...
easily steal it for a separate use in the reoptimizer.
llvm-svn: 12568
2004-03-31 20:58:37 +00:00
Chris Lattner
1a0e9ac2f5
Add the select lowering pass to get initial support for select instructions
...
llvm-svn: 12541
2004-03-30 18:41:59 +00:00
Brian Gaeke
fd02378d3e
Don't warn about a null live range if the Value is a ConstantIntegral.
...
Otherwise, if you're in debugging mode, you get warnings for (apparently)
every immediate constant in the function during reg. allocation.
llvm-svn: 12538
2004-03-29 21:58:41 +00:00
Chris Lattner
ba6641d598
Fix PR299: [Sparc] Code generator asserts on alloc of zero size type
...
llvm-svn: 12504
2004-03-19 04:21:43 +00:00
Chris Lattner
071a5e5649
Rename the intrinsic enum values for llvm.va_* from Intrinsic::va_* to
...
Intrinsic::va*. This avoid conflicting with macros in the stdlib.h file.
llvm-svn: 12356
2004-03-13 00:24:00 +00:00
Brian Gaeke
1694dafece
Make -print-machineinstrs show us the code both before and after reg. alloc.
...
llvm-svn: 12344
2004-03-12 21:19:08 +00:00
Brian Gaeke
14e98b9d96
Get rid of the abort in PhyRegAlloc::finishSavingState().
...
Make an explicit call to it from runOnFunction() if we know we're supposed to
write into the global. This is lame (esp. the const_cast), but it solves
the problem.
llvm-svn: 12291
2004-03-11 19:46:30 +00:00
Brian Gaeke
c028910d25
Give pass a name
...
llvm-svn: 12290
2004-03-11 19:23:15 +00:00
Brian Gaeke
5935e0a002
In PhyRegAlloc::saveState(), dump Arguments' saved-state, and try to
...
make the output more compact.
Divorce state-saving from the doFinalization method; for some reason it's not
getting called when I want it to, at Reoptimizer time. Put the guts in
PhyRegAlloc::finishSavingState(). Put an abort() in it so that I can be really
really sure that it's getting called.
Update comments.
llvm-svn: 12286
2004-03-11 06:45:52 +00:00
Brian Gaeke
0e09916d60
Move all the SaveState options and stuff inton one spot at the top of the file.
...
De-constify SaveStateToModule; we have to set both it and SaveRegAllocState
explicitly in the reoptimizer.
Make SaveRegAllocState an 'external location' option.
llvm-svn: 12278
2004-03-10 22:21:03 +00:00
Brian Gaeke
f819263cc1
Only call verifySavedState if SaveRegAllocState is set AND debugging flag is on.
...
llvm-svn: 12277
2004-03-10 22:01:59 +00:00
Brian Gaeke
d734587436
Change PhyRegAlloc::saveStateForValue()'s arg type to deal with
...
AllocInfo.Instruction becoming an int.
llvm-svn: 12247
2004-03-08 23:22:03 +00:00
Brian Gaeke
f0a73a3f42
Save argument list alloc state by recording it as the operands of Instruction
...
#-1. Other minor changes to deal with AllocInfo.Instruction becoming an int.
llvm-svn: 12246
2004-03-08 23:22:02 +00:00
Brian Gaeke
0be7ea7289
Make AllocInfo's Instruction an int, so that we can overload it for arguments.
...
(Instruction #-1's operands = argument list).
llvm-svn: 12245
2004-03-08 23:22:01 +00:00
Brian Gaeke
8351d8c1a8
make -print-machineinstrs work for both SparcV9 and X86
...
llvm-svn: 12122
2004-03-04 19:16:23 +00:00
Chris Lattner
f96405a1ce
Add this back, as its absence introduces assertions, and it seems to work now
...
that Instructions are annotable again
llvm-svn: 12045
2004-03-01 15:28:27 +00:00
Tanya Lattner
e63e8ea884
fix bug in previous checkin
...
llvm-svn: 12044
2004-03-01 15:05:17 +00:00
Brian Gaeke
427cec1395
TargetCacheInfo has been removed; its only uses were to propagate a constant
...
(16) into certain areas of the SPARC V9 back-end. I'm fairly sure the US IIIi's
dcache has 32-byte lines, so I'm not sure where the 16 came from. However, in
the interest of not breaking things any more than they already are, I'm going
to leave the constant alone.
llvm-svn: 12043
2004-03-01 06:43:29 +00:00
Chris Lattner
fcb4f9d00b
Remove public header. It's been moved to lib/Target/SparcV9
...
llvm-svn: 12004
2004-02-29 19:13:20 +00:00
Chris Lattner
3859031b9b
Move the private MachineInstrAnnot.h into a private directory.
...
llvm-svn: 12003
2004-02-29 19:12:51 +00:00
Brian Gaeke
2f80d586b8
Remove dead member variables of SparcV9SchedInfo and TargetSchedInfo
...
llvm-svn: 11994
2004-02-29 08:40:03 +00:00
Chris Lattner
ed01da8f0b
Adjust to change in TII ctor arguments
...
llvm-svn: 11987
2004-02-29 06:31:44 +00:00
Chris Lattner
71a899dea6
Remove a TON of flags that noone cares about
...
llvm-svn: 11983
2004-02-29 05:58:30 +00:00
Chris Lattner
59d9e9126d
Noone calls these virtual methods
...
llvm-svn: 11982
2004-02-29 05:58:16 +00:00
Chris Lattner
79d9a93a71
This is the only file in the system that uses this enum. eliminate it.
...
llvm-svn: 11981
2004-02-29 05:57:59 +00:00
Brian Gaeke
ffeef64177
Turn off the SparcV9MachineCodeDestructionPass for now, because it's buggy
...
llvm-svn: 11930
2004-02-27 21:15:40 +00:00
Brian Gaeke
50d19bf1de
Correct DestroyMachineFunction's getPassName
...
llvm-svn: 11929
2004-02-27 21:01:14 +00:00
Brian Gaeke
068b4596d4
Great renaming part II: Sparc --> SparcV9 (also includes command-line options and Makefiles)
...
llvm-svn: 11827
2004-02-25 19:08:12 +00:00
Brian Gaeke
94e95d2b3e
Great renaming: Sparc --> SparcV9
...
llvm-svn: 11826
2004-02-25 18:44:15 +00:00