Chris Lattner
a163fdfc80
Extend TargetData::getIndexedOffset to support arrays and pointers!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2535 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-07 20:00:33 +00:00
Chris Lattner
9b625030c8
Replace all usages of Type::isPointerType with isa<PointerType>
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2486 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-06 16:15:30 +00:00
Chris Lattner
86e9187dcc
Add neccesary #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2406 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-29 18:48:55 +00:00
Chris Lattner
c6f3ae5c66
Eliminate duplicate or unneccesary #include's
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2397 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-29 17:42:12 +00:00
Chris Lattner
96c466b06a
Add new optional getPassName() virtual function that a Pass can override
...
to make debugging output a lot nicer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2395 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-29 14:57:45 +00:00
Chris Lattner
97e52e4336
Tighten up the AnalysisUsage of lots of passes, primarily to correctly indicate whether or not they invalidate the CFGA
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2386 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 21:27:06 +00:00
Chris Lattner
d50b671280
Add #include that was removed from TargetMachine.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2381 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 20:40:59 +00:00
Chris Lattner
97453d60c6
Include appropriate file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2379 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 20:40:16 +00:00
Chris Lattner
31bcdb822f
Split ConstantVals.h into Constant.h and Constants.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2378 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 19:55:58 +00:00
Chris Lattner
bfeec103e1
Simplify and update code a bit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2376 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 19:20:10 +00:00
Chris Lattner
1b7f7dc4b4
Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classes
...
to the global namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2370 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 16:21:30 +00:00
Chris Lattner
8fc2f2072d
Remove all contents of the cfg namespace to the global namespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2369 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 16:19:42 +00:00
Chris Lattner
fd63f25fbd
Simplify code
...
Remove unneccesary getID variant for module's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2353 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 04:50:54 +00:00
Chris Lattner
483e14ee04
s/Method/Function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2336 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 07:27:19 +00:00
Chris Lattner
f57b845547
* Rename MethodPass class to FunctionPass
...
- Rename runOnMethod to runOnFunction
* Transform getAnalysisUsageInfo into getAnalysisUsage
- Method is now const
- It now takes one AnalysisUsage object to fill in instead of 3 vectors
to fill in
- Pass's now specify which other passes they _preserve_ not which ones
they modify (be conservative!)
- A pass can specify that it preserves all analyses (because it never
modifies the underlying program)
* s/Method/Function/g in other random places as well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2333 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 06:56:12 +00:00
Chris Lattner
35504209a0
Use the cast<> operator in favor of C style casts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2331 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 03:14:39 +00:00
Chris Lattner
1a18b7cf80
Change Constant::getNullConstant to Constant::getNullValue
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2323 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 02:25:14 +00:00
Chris Lattner
87e873bd3d
Simplify code a bit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2322 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 02:24:17 +00:00
Vikram S. Adve
d23a229c4c
Don't record instructions for copying method arguments in the
...
AddedInstrns sets for the first machine instruction. It is hard
to ensure that the right order is preserved, and sure enough, the
order was broken. Instead, use a separate set for the function entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2318 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:46:28 +00:00
Vikram S. Adve
0bc0516078
Don't pad spills and temp. stack areas for alignment.
...
Freeze auto vars and spill areas when their sizes are used
for computing other offsets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2317 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:43:45 +00:00
Vikram S. Adve
31f78c4f6b
Major changes to how int and FP arguments are handled. Varargs
...
function calls were simply wrong; other functions were just not
using all available registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2316 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:42:21 +00:00
Vikram S. Adve
6d78311fd2
Added functions to compute which register, if any, to use
...
for a particular argument in a list of arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2315 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:40:24 +00:00
Vikram S. Adve
dbc4fad577
Insert copy operations for FP arguments to a varargs function,
...
to copy the FP arg. to an integer. Necessary so that the
register allocator has two different live ranges for the FP value
and the int. argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2314 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:37:51 +00:00
Vikram S. Adve
a4a943dd5a
Implementation of class MachineFrameInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2313 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:35:27 +00:00
Vikram S. Adve
4876209aa6
Don't record instructions for copying method arguments in the
...
AddedInstrns sets for the first machine instruction. It is hard
to ensure that the right order is preserved, and sure enough, the
order was broken. Instead, use a separate set for the function entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2312 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:34:15 +00:00
Chris Lattner
4b1de8eb99
* getAsString requires that the input array is string compatible, so
...
assert it.
* Use WriteAsOperand instead of getStringValue for constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2296 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 18:15:38 +00:00
Chris Lattner
6228106e9f
Just use << isntead of forcing getStrValue
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2294 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 18:14:40 +00:00
Chris Lattner
e4a94f2b0f
Only print debug message if DEBUG_RA is on
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2254 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-15 22:41:48 +00:00
Chris Lattner
167b9629e1
Only emit message if DEBUG_RA is on
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2252 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-15 20:36:15 +00:00
Chris Lattner
f678dc6469
Handle the FP format problem, where outputed FP constants were not precise
...
enough. This fixes compilation of the health benchmark.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2228 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-11 21:44:02 +00:00
Chris Lattner
73e214244f
Move FunctionArgument out of iOther.h into Argument.h and rename class to
...
be 'Argument' instead of FunctionArgument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2216 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:48:49 +00:00
Chris Lattner
b62fc4a9b1
Eliminate unneccesary extraneous iterators
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2215 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:46:27 +00:00
Chris Lattner
0ac5429ff0
Add explicit #includes of Function.h to make up for the removed #include
...
in iOther.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2209 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:08:28 +00:00
Chris Lattner
cc5933c47e
iUse new form of pop_back to make code more concise
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2202 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 18:02:02 +00:00
Chris Lattner
9bbf99de5f
No need to reserve space, erasing does not change the size of the container.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2201 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 18:01:21 +00:00
Chris Lattner
73c8d7520f
Delete NOP instructions as they are eliminated.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2199 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 15:05:04 +00:00
Chris Lattner
af50d00829
* Add a file header with some information
...
* Delete the DelaySlotInfo objects created by the SchedulingManager class.
These leaked objects were accounting for 3/4 of the memory leaked by the
backend, so this is a relatively major win.
* Reorganize SchedulingManager::getDelaySlotInfoForInstr so that it has
better code locality (making it easier to read).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2197 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:45:58 +00:00
Chris Lattner
1d21f3eb1d
* Add a useful file comment
...
* Move InsertPrologEpilogCode class to PrologEpilogCodeInserter.cpp
-> Among other things, this eliminates the need for the minstrVec static
global array.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2195 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:21:26 +00:00
Chris Lattner
6111a87b3a
Move the InsertPrologEpilogCode class out of the Sparc.cpp file into the
...
new PrologEpilogCodeInserter.cpp file, and include the bodies of the
GetInstructionsFor(Prolog|Epilog) functions from SparcInstrSelection.cpp
into the class. This eliminates the need for a static global vector of
instructions and a class of errors that is really unneccesary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2194 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:20:15 +00:00
Chris Lattner
bcd6cc8951
Move the InsertPrologEpilogCode class out of the Sparc.cpp file, and include
...
the bodies of the GetInstructionsFor(Prolog|Epilog) functions from
SparcInstrSelection.cpp into the class. This eliminates the need for a static
global vector of instructions and a class of errors that is really unneccesary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2193 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:18:31 +00:00
Chris Lattner
9aa697b82e
Include prototype for interface to PrologEpilogCodeInserter.cpp file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2192 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:16:36 +00:00
Chris Lattner
c1ffdb10f3
Use new higher level isFloatingPoint() function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2191 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:16:08 +00:00
Chris Lattner
f3dd05ca03
Clean up the ownership model a bit so that nodes actually get deleted more
...
frequently. This still leaks edges quite a bit, but it leaks no nodes
(I think).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2190 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:15:33 +00:00
Chris Lattner
fb005fe5c2
* General cleanups
...
* In calcLiveVarSetsForBB, do not leak a ValueSet every time the function
is called!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2189 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:14:14 +00:00
Chris Lattner
0b0ffa0800
Convert AddedInstrMapType to contain AddedInstrns by value instead of by
...
pointer so that they do not all get leaked!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2188 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:13:04 +00:00
Chris Lattner
244212a80b
GCC3.0 is reported to die without an alloca definition.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2186 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 03:37:11 +00:00
Chris Lattner
7884cd17aa
Don't leak memory like a seive
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2185 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 23:09:07 +00:00
Chris Lattner
69a34cddaf
Value cannot be directly instantiated. I think that this code was TRYING to
...
make a PHI node, although it was badly broken. This keeps tests passing, so
we'll go with it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2184 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:05:54 +00:00
Chris Lattner
b7653df085
s/Method/Function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2180 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:03:57 +00:00
Chris Lattner
4d669b510c
s/method/function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2177 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:01:15 +00:00
Chris Lattner
c8a79af27d
isLabelType is obsolete
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2175 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 21:59:08 +00:00
Chris Lattner
b579400cd7
* Move include/llvm/Analysis/SlotCalculator.h to include/llvm/SlotCalculator.h
...
because the slot calculator is already part of the VMCore library.
* Rename incorporateMethod and purgeMethod to *Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2154 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 22:49:37 +00:00
Chris Lattner
2fbfdcffd3
Change references to the Method class to be references to the Function
...
class. The Method class is obsolete (renamed) and all references to it
are being converted over to Function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2144 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 20:49:59 +00:00
Chris Lattner
2aac6bf66a
s/MethodType/FunctionType
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2115 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-04 22:19:18 +00:00
Vikram S. Adve
85e1e9c22f
Case numbers were not updated when Sparc.burg.in was changed
...
to add separate label for bitwise NOT operator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2091 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-01 20:28:48 +00:00
Vikram S. Adve
a10d1a7aaa
1. Fix a leftover bug in generating memory instructions.
...
2. Fix type used for TmpInstruction holding the return address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2075 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-31 19:07:35 +00:00
Vikram S. Adve
a44c6c00a2
Added function getCallInstIndirectAddrVal() to set call interference
...
for that value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2074 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-31 19:04:50 +00:00
Vikram S. Adve
fbd2161628
Minor cleanup in printing constants. I think this included a bug
...
fix related to putting a read-write variable in a read-only section,
but I'm not sure now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2073 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-31 19:03:58 +00:00
Vikram S. Adve
1f81861028
Add method clearCallInterference().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2071 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-31 18:58:14 +00:00
Vikram S. Adve
1792779edf
Fix a bug in previous bug fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2069 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-31 18:56:51 +00:00
Vikram S. Adve
1a53f03392
Bug fix: address used by indirect call instruction should also
...
be marked as having a Call Interference, even though it may not
be live after the call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2068 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-31 18:54:37 +00:00
Vikram S. Adve
f7cedec1f2
Fix CreateUIntSetInstruction() to handle sign extensions correctly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2059 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-31 00:13:12 +00:00
Chris Lattner
c9aa7dfee4
s/Method/Function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2035 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 03:51:11 +00:00
Chris Lattner
79df7c0aaa
Change references from Method to Function
...
change references from MethodARgument to FunctionArgument
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1991 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-26 18:01:55 +00:00
Chris Lattner
b0d04726db
Convert to use new style casts instead of direct checking
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1990 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-26 17:58:12 +00:00
Vikram S. Adve
dfe412dc8b
Refix bug: Add back method MachineCodeForInstruction::dropAllReferences.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1980 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:58:02 +00:00
Vikram S. Adve
9c4f7268c6
Destroy MethodLiveVarInfo after register allocation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1976 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:54:03 +00:00
Vikram S. Adve
97fb99bc54
Use deterministic iterator for SchedGraphs. This is actually not
...
useful right now when we only do local scheduling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1975 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:53:03 +00:00
Vikram S. Adve
1392d6903c
Bug fix: nextToTry was not being initialized in one case.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1974 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:46:15 +00:00
Vikram S. Adve
7c7e46ae5f
Add option to disable scheduling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1973 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:45:35 +00:00
Vikram S. Adve
802cec485f
Add option to disable scheduling.
...
Destroy live-variable information after scheduling so it is
recomputed before later phases (e.g., reg. allocation).
Use deterministic iterator to enumerate sched graphs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1972 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:44:55 +00:00
Vikram S. Adve
cf8a98f2c2
Minor changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1971 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:40:59 +00:00
Vikram S. Adve
c941b87397
Major overhaul to FoldGetElemPtr to handle mixed array and struct refs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1968 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:37:53 +00:00
Vikram S. Adve
4e7bc49b54
Use deterministic iterator for treeRoots.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1967 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:36:52 +00:00
Vikram S. Adve
d7e6becd3e
Bug re-fix: put back MachineCodeForInstruction::get(*I).dropAllReferences().
...
Also re-enable instr. scheduling pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1966 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:35:16 +00:00
Vikram S. Adve
585612e556
Change latencies for Load, Store and Branch instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1965 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:33:53 +00:00
Vikram S. Adve
fd3900ad57
Major enhancements to how array and structure indices are handled.
...
Improve checking for constants in Multiply.
Simpler method to keep track of when a node is folded into its parent.
Several other bug fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1964 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:33:02 +00:00
Vikram S. Adve
d95919cbd0
Change treeRoots data structure to make enumeration deterministic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1962 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:24:00 +00:00
Chris Lattner
e7506a366e
Rename Method to Function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1957 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-23 22:51:58 +00:00
Vikram S. Adve
4a12da7912
Fixed several problems with handling arguments to Phis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1910 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:47:26 +00:00
Vikram S. Adve
9cf85a75d2
Big bug fix: killed uses were being inserted instead of erased!
...
Also added a set of debug options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1909 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:45:41 +00:00
Vikram S. Adve
23a4c8fcb5
Big bug fix: getUsableUniRegAtMI needed to return values in arguments
...
but did not pass the arguments by reference!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1906 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:37:19 +00:00
Vikram S. Adve
42f632041d
Constants are now added to the constant pool only when a load
...
instruction is actually generated for them.
Rename the different versions of SetMachineOperand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1903 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:33:43 +00:00
Vikram S. Adve
1ed009f66e
Use vector for machine instructions returned by GetInstructionsByRule.
...
Fix constants in instructions generated for Phi elimination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1902 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:31:54 +00:00
Vikram S. Adve
705f95e0b7
Big bug fix: getUsableUniRegAtMI needed to return values in arguments
...
but did not pass the arguments by reference!
Also added a function to get a register class by ID.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1901 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:26:48 +00:00
Vikram S. Adve
7482532129
Add support for code generation for array references.
...
Also, use distinct names for the three types of SetMachineOperand to
avoid painful overloading problems and errors.
Bug fix in converting-int-to-float. Other minor stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1896 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:15:35 +00:00
Vikram S. Adve
f1c15ee4d1
Bug fixes for not using unified reg. numbers, and for using the
...
wrong register class for saving CC registers.
Also, use distinct names for the three types of SetMachineOperand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1895 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:12:16 +00:00
Vikram S. Adve
e76af29edc
Use distinct names for the three types of SetMachineOperand to
...
avoid painful overloading problems and errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1893 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:09:15 +00:00
Vikram S. Adve
e6d2c41d4c
Minor fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1892 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:08:07 +00:00
Vikram S. Adve
d198c47a0e
Handling of global names was severely broken when converting to 2 passes.
...
Different labels were generated for the same name in different passes.
Use an annotation to hold a fixed table of names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1891 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:07:26 +00:00
Vikram S. Adve
dd55899f9a
Several sundry bug fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1890 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:02:42 +00:00
Vikram S. Adve
9ee9d71199
Fix include error.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1819 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-03 20:46:32 +00:00
Anand Shukla
155d2c9384
Change to make it build with GCC 2.95.3
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1802 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-26 18:57:15 +00:00
Chris Lattner
49b8a9c731
Clean up std namespace issues
...
Silence warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1790 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-24 23:02:40 +00:00
Chris Lattner
dfb8b95c2d
* Silence signed/unsigned warnings
...
* Make it compile with GCC 3.0.4
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1787 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-24 23:01:50 +00:00
Chris Lattner
1ddf664f74
Make it compile with GCC 3.0.4
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1786 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-24 23:01:21 +00:00
Chris Lattner
455889aa79
* Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into
...
llvm/Support/CFG.h
* Make pred & succ iterators for intervals global functions
* Add #includes that are now neccesary because BasicBlock.h doesn't include
InstrTypes.h anymore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1750 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-12 22:39:50 +00:00
Chris Lattner
221d688a5e
Method.h no longer includes BasicBlock.h
...
Method::inst_* is now in llvm/Support/InstIterator.h
GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1746 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-12 21:07:25 +00:00
Chris Lattner
9530a6f3cd
Write llvm bytecode to output .s file as last step of LLC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1728 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-11 22:35:46 +00:00
Chris Lattner
623ce5d7f6
Fix build error
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1722 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-11 17:11:43 +00:00
Chris Lattner
6357a3f42d
Convert BBLiveVar to be a BasicBlock annotation, this removes the BB2BBLVMap from MethodLiveVarInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1721 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 06:52:25 +00:00
Chris Lattner
2f898d2074
Convert operand iterator over to work like an STL iterator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1720 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 06:02:59 +00:00
Chris Lattner
748697d242
Minor change: Methods that return ValueSet's that are guaranteed to be valid
...
return references instead of pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1719 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 04:20:12 +00:00
Chris Lattner
3773094a1d
* Code Cleanups
...
* Removal dependencies on Type.h & remove uses of getTypeID()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1718 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 03:52:29 +00:00
Chris Lattner
569ea239f0
* Code Cleanups of IGNode.h
...
* Removal of getTypeID() methods, and dependence on llvm/Type.h, from IGNode & LiveRange
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1717 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 03:51:37 +00:00
Chris Lattner
7471a7b019
Must include SetOperations to do set_*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1716 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 03:35:53 +00:00
Chris Lattner
c980c50dc1
Remove empty files
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1713 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 02:52:53 +00:00
Chris Lattner
296b7730e3
* Eliminate the LiveVarSet class, making applyTranferFuncForMInst a static
...
function in the one .cpp file that uses it. Use ValueSet's instead.
* Prepare to delete LiveVarSet.h & LiveVarSet.cpp
* Eliminate the ValueSet class, making all old member functions into global
templates that will eventually be moved to Support.
* Eliminate some irrelevant const's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1712 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 02:52:05 +00:00
Chris Lattner
5e5dfa307a
* Eliminate the LiveVarSet class, making applyTranferFuncForMInst a static
...
function in the one .cpp file that uses it. Use ValueSet's instead.
* Prepare to delete LiveVarSet.h & LiveVarSet.cpp
* Eliminate the ValueSet class, making all old member functions into global
templates that will eventually be moved to Support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1711 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 02:51:01 +00:00
Chris Lattner
0665a5f1f5
* Code Cleanups
...
* Introduce RAV to allow stream I/O instead of using printValue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1710 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 01:43:49 +00:00
Chris Lattner
f39f379f9e
Changes neccesary due to the move of BBLiveVar.h to the lib/Analysis/LiveVar directory
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1709 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 00:43:37 +00:00
Chris Lattner
4996084acf
* Add a #include not indirectly included any more
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1707 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 00:35:14 +00:00
Chris Lattner
ab584111e7
* Give BBLiveVar.cpp a proper file header
...
* applyFlowFunc DOES NOT NEED TO COPY the huge BB->BBLiveVar Map every time it is invoked!
* Big cleanups.
* Make BBLiveVar.h effectively an internal header file
* Prepare LiveVarMap.h for deletion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1706 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 00:34:50 +00:00
Chris Lattner
0174410fd0
* Big cleanups.
...
* Make BBLiveVar.h effectively an internal header file
* Prepare LiveVarMap.h for deletion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1705 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 00:33:19 +00:00
Chris Lattner
a51c7a8ef5
Code cleanups, no functional change
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1704 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 23:31:16 +00:00
Chris Lattner
bdfd328515
Clean up MethodLiveVarInfo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1703 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 20:49:04 +00:00
Chris Lattner
5ff562e2c0
The interface to instruction scheduling is now just a call to get the pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1702 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 20:03:43 +00:00
Chris Lattner
4d7fc119b8
* RegisterAllocation _uses_ LiveVar analysis, instead of creating it's own copy
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1701 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 20:02:38 +00:00
Chris Lattner
9adb7ad457
* The itf exposed by InstrScheduling is now a single function to create the right pass
...
* InstructionScheduling is now a real pass
* InstrSched _uses_ LiveVar analysis, instead of creating it's own copy many times
through a loop. In this was LiveVarAnalysis is actually even SHARED by Register
allocation.
* SchedPriorities is now passed the live var information in
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1700 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 20:02:16 +00:00
Chris Lattner
4fd2dbbf1d
Turn live variable analysis into a real MethodPass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1699 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 20:00:08 +00:00
Chris Lattner
14ab1ce020
Switch register allocator over to using LoopInfo directly instead of indirectly through LoopDepthCalculator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1696 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 17:48:00 +00:00
Chris Lattner
4911c357e1
Make LoopDeptCalculator be an internal artifact of how RegAlloc is implemented,
...
do not expose it. Additionally, have it be auto generated by the pass framework
for us.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1695 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 17:39:42 +00:00
Chris Lattner
3e0f8288e7
Make #include "llvm/Analysis/LoopDepth.h" be an internal artifact of how register allocation is implemented.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1693 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 17:38:48 +00:00
Chris Lattner
d1b60fbe78
* ValueSet interface converted from add/remove to insert/erase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1690 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 16:37:09 +00:00
Chris Lattner
30adeb6d07
* Add #includes removed from headers
...
* ValueSet interface converted from add/remove to insert/erase
* Minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1689 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 16:36:59 +00:00
Chris Lattner
f35f2fbbc2
Remove dependence on BBLiveVar from InstrScheduling
...
Minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1688 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 16:35:45 +00:00
Chris Lattner
1164632c7e
* Add #includes that were yanked out of header files
...
* Convert over to valueset interface that uses insert & erase insead of add and remove
* the -> operator really isn't that hard to use!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1687 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 16:35:12 +00:00
Chris Lattner
65b1ad9042
Cut down include pollution and number of frivolous consts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1683 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 16:31:03 +00:00
Chris Lattner
2f9b28e59a
Convert RegisterAllocator interface to opaque pass type, so that users do not
...
need to know _anything_ about RegAlloc to use it. Well in the end maybe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1681 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 15:54:09 +00:00
Chris Lattner
59ba109d9d
EmitAssembly doesn't need an UltraSparc, it can do with any TargetMachine
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1680 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 15:53:23 +00:00
Chris Lattner
699683c585
* Minor cleanups
...
* Reduce number of #includes
* Remove blatently misleading qualifiers (how do you have an inlined pure virtual function?)
* Remove unnecesary & ignored qualifiers (const int argument vs int argument)
* SparcInternals.h now no longer #includes RegClass.h or SparcRegClassInfo.h
* Pull inlined functions out of .h file if they are virtual and interfere with dependencies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1677 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:59:25 +00:00
Chris Lattner
3058761d3d
Add code that used to be inline in MachineSchedInfo.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1676 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:56:30 +00:00
Chris Lattner
0a8ed9401d
Add #includes neccesary since they were removed from .h files
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1675 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:56:09 +00:00
Chris Lattner
b99bd2b145
Move instrIsFeasible from InstrScheduling.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1674 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:55:42 +00:00
Chris Lattner
2182c785c2
* Minor cleanups
...
* Reduce number of #includes, sometimes drastically (LiveRangeInfo.h lost _7_)
* Move instrIsFeasible() from InstrScheduling.h to SchedPriorities.h
* Delete blank lines at end of files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1672 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:52:08 +00:00
Chris Lattner
9e881eb60d
Minor cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1671 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:48:24 +00:00
Chris Lattner
b99169f183
SparcRegInfo does NOT need anything about instruction scheduling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1670 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 02:44:38 +00:00
Chris Lattner
77f66c131d
* Move command line parsing debug stuff to InstrScheduling internal header file
...
SchedPriorities.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1669 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 02:44:20 +00:00
Chris Lattner
6b04e71fc9
Pull all of the scheduling related stuff out of Sparc.cpp into it's own file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1668 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 00:39:14 +00:00
Chris Lattner
6dd98a6c31
Split RegisterAllocation stuff OUT of Sparc.cpp into a well defined pass
...
that has a very minimal interface (like it should have).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1667 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 00:33:08 +00:00
Chris Lattner
7327d7ee8b
Move a ton of tables out of SparcInternals.h and move them to Sparc.cpp.
...
Eventually they will probably get moved again, but at least now they aren't
having to be compiled by 7 different .cpp files...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1666 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 00:04:35 +00:00
Chris Lattner
4387e3128b
Convert sparc backend over to use pass based compilation structure.
...
Try to decouple stuff as much as possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1664 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 23:42:19 +00:00
Chris Lattner
0feb358654
Convert sparc backend over to use pass based compilation structure.
...
Convert some stages into passes in preparation for more splitting up.
Try to decouple stuff as much as possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1663 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 23:41:51 +00:00
Chris Lattner
c19b8b10e5
Convert assembly emission over to a two pass approach.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1662 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 23:41:08 +00:00
Chris Lattner
f2868ce228
Code pulled out of MAchineInstr.(h|cpp)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1660 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:54:50 +00:00
Chris Lattner
ed5171e5e7
Add a file level comment
...
Remove #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1657 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:52:04 +00:00
Chris Lattner
6edfcc578d
Implement new method by method assembly output & memory releasing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1656 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:51:17 +00:00
Chris Lattner
9c461083e1
* Switch to new TmpInstruction model
...
* Switch to new MachineCodeForInstruction model
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1655 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:50:56 +00:00
Chris Lattner
cb0a1202af
* Switch to new TmpInstruction model
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1654 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:49:49 +00:00
Chris Lattner
cf4525bd20
* Swithc to new MachineCodeForInstruction model
...
* Implement memory freeing for instruction temporaries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1653 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:49:15 +00:00