1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 07:22:55 +01:00
Commit Graph

288 Commits

Author SHA1 Message Date
Chris Lattner
b1e427f563 Fix file header
llvm-svn: 17030
2004-10-16 16:37:42 +00:00
Tanya Lattner
8a4773acb3 Checking in code that works on my simple test case. However, there is still a bug with branches that I need to fix.
llvm-svn: 16979
2004-10-14 06:04:28 +00:00
Reid Spencer
e6418ec30f Update to reflect changes in Makefile rules.
llvm-svn: 16950
2004-10-13 11:46:52 +00:00
Misha Brukman
995af8d2b1 Add ModuloScheduling to the recursive build tree
llvm-svn: 16905
2004-10-10 23:36:09 +00:00
Misha Brukman
95cbabd1b5 Adjust header file inclusion due to move
llvm-svn: 16904
2004-10-10 23:34:50 +00:00
Misha Brukman
0f102f7fc9 Adjust comment header and paths to refect move
llvm-svn: 16903
2004-10-10 23:34:36 +00:00
Misha Brukman
020c3ab94c ModuloScheduling moved to lib/Target/SparcV9 as it is SparcV9-specific
llvm-svn: 16902
2004-10-10 23:33:20 +00:00
Reid Spencer
85d2758f11 Initial version of automake Makefile.am file.
llvm-svn: 16898
2004-10-10 22:52:14 +00:00
Reid Spencer
04cb07f3ce Add the new InstrSched directory.
llvm-svn: 16897
2004-10-10 22:51:03 +00:00
Reid Spencer
1b7459b29d Initial version of automake Makefile.am file.
llvm-svn: 16893
2004-10-10 22:20:40 +00:00
Chris Lattner
955a220ad2 Instead of silently breaking, print notification of why this doesn't work.
llvm-svn: 16870
2004-10-09 21:13:51 +00:00
Misha Brukman
d858079005 Adjust paths due to moving InstrSched to lib/Target/SparcV9
llvm-svn: 16852
2004-10-08 18:30:22 +00:00
Misha Brukman
049f559995 InstrSched is SparcV9-specific and so has been moved to lib/Target/SparcV9/
llvm-svn: 16849
2004-10-08 18:12:14 +00:00
Misha Brukman
b1851ac70c Single-space instead of double-spacing in the Makefile
llvm-svn: 16848
2004-10-08 18:11:14 +00:00
Misha Brukman
cfe86b257b Build InstrSched as well, and all three subdirs can be built independently
llvm-svn: 16847
2004-10-08 18:10:48 +00:00
Brian Gaeke
ee0dfdd1e1 Make EmitMappingInfo into an "external location" option, so that it can be set
or cleared externally.

llvm-svn: 16623
2004-09-30 20:20:01 +00:00
Misha Brukman
7c87c6b215 Change the #ifdefs to allow compilation with a V8 compiler, but the JIT still
won't work if not compiled in V9 mode, currently by GCC only, because Sun's
system compiler does not tell us if it's a V8 or V9 system.

llvm-svn: 16602
2004-09-29 23:01:17 +00:00
Chris Lattner
43c0372c0b 'Pass' should now not be derived from by clients. Instead, they should derive
from ModulePass.  Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.

llvm-svn: 16436
2004-09-20 04:48:05 +00:00
Chris Lattner
aee36bb527 Revamp the Register class, and allow the use of the RegisterGroup class to
specify aliases directly in register definitions.

Patch contributed by Jason Eckhardt!

llvm-svn: 16330
2004-09-14 04:17:02 +00:00
Brian Gaeke
1e7a5e01e0 Roll back constant printing changes until the problems with larger
programs and C++ can be looked at in detail.

llvm-svn: 16266
2004-09-10 18:01:45 +00:00
Reid Spencer
d5b1443205 Clean up some "clean:" targets so they use $(VERB) and don't print anything
by default, like every other "clean" target in LLVM.

llvm-svn: 16161
2004-09-03 23:19:53 +00:00
Reid Spencer
c4abcbefb1 Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.

llvm-svn: 16137
2004-09-01 22:55:40 +00:00
Brian Gaeke
e91606291d This code is dodgy, but the guaranteed assertion failure doesn't help anything.
llvm-svn: 16014
2004-08-24 06:41:40 +00:00
Brian Gaeke
ae3378f354 Fix bug in PhyRegAlloc::setCallInterferences() handling call through a
null pointer.

llvm-svn: 16013
2004-08-24 06:41:39 +00:00
Brian Gaeke
a4eb36282c Revise head-of-file comment.
Eliminate some excess whitespace.
Fix bug in CallArgsDescriptor::get() handling call through a null pointer.

llvm-svn: 16012
2004-08-24 06:41:38 +00:00
Chris Lattner
ac0dba87bd Convert regclass alignment from bytes to bites
llvm-svn: 15972
2004-08-21 20:13:09 +00:00
Brian Gaeke
9e089c115d M_DUMMY_PHI_FLAG is no longer used to distinguish V9::PHI. Get rid of it and
its TargetInstrInfo accessor.

llvm-svn: 15907
2004-08-18 20:04:28 +00:00
Brian Gaeke
7364ea9c20 Instead of using isDummyPhiInstr, we just compare the opcode with V9::PHI.
llvm-svn: 15906
2004-08-18 20:04:24 +00:00
Chris Lattner
e05dc155e3 Convert to the new MachineFunctionInfo interface
llvm-svn: 15904
2004-08-18 18:13:37 +00:00
Brian Gaeke
fe9e248fcc 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
7d8f0e566d 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
280e4daba1 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
478b640308 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
2d3b6ab513 Moved this file out of lib/CodeGen
llvm-svn: 15837
2004-08-16 22:38:02 +00:00
Chris Lattner
81d69ef38e 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
d655fd4cb0 Code moved out of lib/CodeGen/MachineFunction.cpp
llvm-svn: 15835
2004-08-16 22:36:54 +00:00
Chris Lattner
6d8d39e17b Move MachineCodeForInstruction.h and MachineFunctionInfo.h into lib/Target/SparcV9
llvm-svn: 15830
2004-08-16 21:55:02 +00:00
Brian Gaeke
f20757c442 Update and consolidate comments. Remove some excess whitespace.
llvm-svn: 15824
2004-08-16 18:27:25 +00:00
Chris Lattner
555a585fd8 Code insertion methods now return void instead of an int.
llvm-svn: 15780
2004-08-15 22:15:11 +00:00
Chris Lattner
e58190f5f6 These methods no longer take a TargetRegisterClass* operand.
llvm-svn: 15774
2004-08-15 21:56:44 +00:00
Nate Begeman
edeb64e748 Eliminate MachineFunction& argument from eliminateFrameIndex in SparcV9 target
llvm-svn: 15738
2004-08-14 22:03:29 +00:00
Chris Lattner
837ab8fcf6 Remove dead methods
llvm-svn: 15698
2004-08-12 18:37:15 +00:00
Chris Lattner
f25f80a0b3 Fix warning
llvm-svn: 15697
2004-08-12 18:36:28 +00:00
Chris Lattner
2fb2b0517a 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
f5f45868a7 Virtual method calls are overrated
llvm-svn: 15695
2004-08-12 18:20:55 +00:00
Chris Lattner
a2d1e8f290 Virtual method calls are overrated.
llvm-svn: 15694
2004-08-12 18:20:41 +00:00
Chris Lattner
8af864daa3 Remove dead methods
llvm-svn: 15691
2004-08-12 17:58:27 +00:00
Chris Lattner
ad0a1f3eee 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
ef8d63fabb Fix file header comment: update filename, set tablegen emacs mode.
llvm-svn: 15625
2004-08-10 20:28:13 +00:00
Misha Brukman
07e778b251 * 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
04771d9b7b Renamed SparcV9_Reg.td -> SparcV9RegisterInfo.td for consistency.
llvm-svn: 15614
2004-08-10 18:14:04 +00:00
Misha Brukman
90c2c03a0d Fix comment header, specify type of file `tablegen'.
llvm-svn: 15612
2004-08-10 17:37:14 +00:00
Misha Brukman
84689ebc46 Define the target name so we can use it via TableGen.
llvm-svn: 15604
2004-08-10 15:29:15 +00:00
Misha Brukman
65afbbca70 Remove ClassPrefix variable as it's no longer used.
llvm-svn: 15586
2004-08-09 19:13:29 +00:00
Misha Brukman
a78884fc8a Define the ClassPrefix for SparcV9.
llvm-svn: 15581
2004-08-09 17:46:49 +00:00
Brian Gaeke
8581df8b00 dumpSavedState has outlived its usefulness.
llvm-svn: 15555
2004-08-06 19:11:43 +00:00
Misha Brukman
73874da64c 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
13f6199617 * Remove unnecessary comment
* Fix alignment of code
* Tabs to spaces

llvm-svn: 15505
2004-08-04 21:48:00 +00:00
Alkis Evlogimenos
f853362a44 Stop using getValues().
llvm-svn: 15487
2004-08-04 08:44:43 +00:00
Brian Gaeke
bcf97189e3 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
cf5c05b371 Include SparcV9BurgISel.h, to pick up the definition of
createSparcV9BurgInstSelector().

llvm-svn: 15474
2004-08-04 07:30:04 +00:00
Brian Gaeke
904618127d 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
34aa0c9905 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
30384b669d 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
43e28e8de4 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
b989c54cf7 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
b0388ebaa3 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
61cf3e484e Move this file out of the top-level docs directory
llvm-svn: 15429
2004-08-03 04:15:02 +00:00
Chris Lattner
d5247fc917 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
636a3a9525 Get rid of a few dead method declarations.
llvm-svn: 15323
2004-07-29 06:43:10 +00:00
Brian Gaeke
e946e1fedf Get rid of calls to void llvm::printSet(const ValueSet &).
llvm-svn: 15322
2004-07-29 06:43:09 +00:00
Brian Gaeke
88dbff09db 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
7de9b55c7e 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
e7b655d971 Fix a few typoes and grammaroes in comments.
llvm-svn: 15319
2004-07-29 04:25:43 +00:00
Brian Gaeke
8061d1a01f 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
ea9178e184 This was the only user of TargetInstrInfo::ConstantTypeMustBeLoaded().
llvm-svn: 15293
2004-07-27 21:11:20 +00:00
Brian Gaeke
5a8680850f 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
fefef027f4 TargetInstrInfo::getNOPOpCode() has been replaced by a reference to V9::NOP.
llvm-svn: 15279
2004-07-27 17:43:24 +00:00
Brian Gaeke
c9b9016d72 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
a71776e676 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
0bdb3605c7 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
7cdfccd573 Inline 4 methods
llvm-svn: 15000
2004-07-19 07:52:35 +00:00
Reid Spencer
7f33869f9b bug 122:
- Replace ConstantPointerRef usage with GlobalValue usage

llvm-svn: 14953
2004-07-18 00:44:37 +00:00
Reid Spencer
14243817ec 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
2610477ab2 bug 122:
- Correct isa<Constant> for GlobalValue subclass

llvm-svn: 14949
2004-07-18 00:37:35 +00:00
Chris Lattner
9b03d18729 IA64 compat
llvm-svn: 14867
2004-07-16 00:08:28 +00:00
Chris Lattner
c4888ccda7 Patches towards fixing PR341
llvm-svn: 14841
2004-07-15 02:14:30 +00:00
Brian Gaeke
4dc7caee0e Add Machine-CFG edges to SparcV9 MachineBasicBlocks.
llvm-svn: 14806
2004-07-14 05:40:50 +00:00
Chris Lattner
6331eb6bbe 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
b67e3b01bc Make these format a bit nicer
llvm-svn: 14747
2004-07-11 03:27:42 +00:00
Chris Lattner
2ada866a78 Auto-registrate target
llvm-svn: 14745
2004-07-11 02:48:49 +00:00
Reid Spencer
50ec3f9325 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
b92c136437 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
62ceddefe8 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
680ff7de4a There is no reason to print ValueType here
llvm-svn: 14425
2004-06-26 19:36:34 +00:00
Brian Gaeke
908208bc50 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
cc465361d9 Move the IntrinsicLowering header into the CodeGen directory, as per PR346
llvm-svn: 14266
2004-06-20 07:49:54 +00:00
Chris Lattner
0cd29ae2cd Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()
llvm-svn: 14201
2004-06-17 18:19:28 +00:00
Brian Gaeke
21e2dd53d8 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
c5bb88c934 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
9cf9c6e184 Encode %fsr correctly; don't fail an assertion.
llvm-svn: 14103
2004-06-09 21:54:59 +00:00
Brian Gaeke
badbc7476a Fix encoding of ST*FSR instructions.
llvm-svn: 14102
2004-06-09 21:54:58 +00:00
Brian Gaeke
8e446cf7a2 Fix assertion failure message to have the right method name.
llvm-svn: 14101
2004-06-09 20:44:42 +00:00
Brian Gaeke
91a3d0f55f 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
4b0b12c188 Add a TmpInstruction ctor that doesn't take a MCFI.
llvm-svn: 14073
2004-06-08 18:52:46 +00:00
Brian Gaeke
c6715bec89 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
4f0fc86456 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
e3a1c92896 Add new mapping info pass, when EmitMappingInfo is on.
llvm-svn: 13981
2004-06-03 05:03:01 +00:00
Brian Gaeke
ceb3e78152 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
a960c641e0 Add decl. for new mapping info pass factory method.
llvm-svn: 13979
2004-06-03 05:02:59 +00:00
Brian Gaeke
e3e792cefa 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
5ad9eaab1a Convert to the new TargetMachine interface.
llvm-svn: 13952
2004-06-02 05:55:25 +00:00
Brian Gaeke
8b022564d2 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
18006c7075 Transform an occurrence of if(...) { assert (0) }.
llvm-svn: 13908
2004-05-30 07:34:01 +00:00
Brian Gaeke
f2f7cc0d50 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
7f4ad50481 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
b4f49d8da5 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
8daa49f754 Remove unused #include.
llvm-svn: 13899
2004-05-29 23:26:13 +00:00
Brian Gaeke
7d68f2e9b0 Add comments.
llvm-svn: 13898
2004-05-29 23:10:20 +00:00
Brian Gaeke
3913fdf0e9 Trim whitespace.
llvm-svn: 13897
2004-05-29 22:49:51 +00:00
Brian Gaeke
608e0b76e1 Give InsertCodeForPhis() a new documentation comment.
llvm-svn: 13896
2004-05-29 22:20:59 +00:00
Brian Gaeke
403be90321 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
2bd005cb45 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
76a1ec7f00 Make comment lines stick out less.
llvm-svn: 13858
2004-05-27 21:41:48 +00:00
Brian Gaeke
fd48b88dfa Add a (not very meaningful) default constructor for AllocInfo objects.
llvm-svn: 13773
2004-05-25 20:43:47 +00:00
Reid Spencer
65559ced22 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
1e22b42cb6 Add support for accurate garbage collection to the LLVM code generators
llvm-svn: 13696
2004-05-23 21:23:35 +00:00
Brian Gaeke
12ab4a0357 Fix a typo in a comment.
llvm-svn: 13643
2004-05-23 05:10:06 +00:00
Brian Gaeke
ac9ce5d851 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
1d6c0881ce 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
c9ca9d6625 Missing piece of fix for Bug 333
llvm-svn: 13362
2004-05-04 21:41:45 +00:00
Brian Gaeke
28d81c4d0d 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
7ce5ef244a Integrate the rest of my random sparcv9 scribblings into this file
llvm-svn: 13204
2004-04-27 22:04:03 +00:00
Chris Lattner
02c65b5395 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
1e049bdc77 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
c3857275f9 Add a getRegisterInfo() accessor just like on the X86 target.
llvm-svn: 13147
2004-04-25 06:32:28 +00:00
Brian Gaeke
6e21a0858c 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
a36743c473 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
6ed3b116bc Fix a typo.
llvm-svn: 13136
2004-04-23 21:45:02 +00:00
Brian Gaeke
7fba37bb96 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
40c7e110a5 Include SparcV9RegInfo.h instead of TargetRegInfo.h.
llvm-svn: 13126
2004-04-23 18:15:47 +00:00
Brian Gaeke
07344c1367 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
255d0d9b26 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
51b16fc65a 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
3727c760ed Make it legal to ask for the type of a specialreg
llvm-svn: 13078
2004-04-20 20:12:57 +00:00
Brian Gaeke
047739f8d8 Make it legal to request a load or store of %fsr.
llvm-svn: 13073
2004-04-19 19:12:12 +00:00
Brian Gaeke
3dfe9f19ea Regularize include guards and remove some excess whitespace.
llvm-svn: 13071
2004-04-19 18:53:44 +00:00
Brian Gaeke
d7fa9142a3 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
5bcbc23fc1 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
e708b1d5ef Give SparcV9CodeEmitter a head-of-file comment and a PassName.
llvm-svn: 12967
2004-04-15 20:23:13 +00:00