Vikram S. Adve
ce00fe69b0
Added MachineCodeForMethod object in class Method.
...
llvm-svn: 949
2001-10-22 13:52:47 +00:00
Vikram S. Adve
21da1db37f
Use class MachineCodeForMethod to print machine code.
...
llvm-svn: 948
2001-10-22 13:52:03 +00:00
Vikram S. Adve
c63a39ae14
Added class MachineCodeForMethod.
...
llvm-svn: 947
2001-10-22 13:51:33 +00:00
Vikram S. Adve
1beadb278b
Cosmetic changes only.
...
llvm-svn: 946
2001-10-22 13:51:09 +00:00
Vikram S. Adve
5acd0fb918
Modify code that processes delay slots so that it preserves any
...
useful instructions already inserted into delay slots.
llvm-svn: 945
2001-10-22 13:49:27 +00:00
Vikram S. Adve
f5810ae651
UNUSED.
...
llvm-svn: 944
2001-10-22 13:46:38 +00:00
Vikram S. Adve
f80c58a7d6
Split JMPL into JMPLCALL and JMPLRET.
...
llvm-svn: 943
2001-10-22 13:44:53 +00:00
Vikram S. Adve
1f7055b694
Added a frame layout class, and code to insert prolog/epilog code.
...
llvm-svn: 942
2001-10-22 13:44:23 +00:00
Vikram S. Adve
b581a10ba4
Reordered registers slightly to simplify a new check.
...
Added a function to map between the caller's and callee's register windows.
llvm-svn: 941
2001-10-22 13:43:08 +00:00
Vikram S. Adve
8d3d8c5788
Split JMPL into JMPLCALL and JMPLRET so that IsCall and IsReturn can
...
be used to distinguish those uses of the `jmpl' instruction.
llvm-svn: 940
2001-10-22 13:41:12 +00:00
Vikram S. Adve
18bfb1399a
Added functions to generate prolog and epilog code.
...
Use JMPLRET instead of RETURN for method returns so that
llvm-svn: 939
2001-10-22 13:36:31 +00:00
Vikram S. Adve
bebf9c9763
Added SAVE and RESTORE. Duplicated JMPL into JMPLCALL and JMPLRET,
...
which have the same opcode and operands but different flags.
llvm-svn: 938
2001-10-22 13:32:55 +00:00
Vikram S. Adve
3ae28be821
Reordered a couple of registers to simplify some new checks.
...
Added code to map between caller's and callee's register windows.
Added frame layout class.
llvm-svn: 937
2001-10-22 13:31:53 +00:00
Chris Lattner
92f2a6ec9a
Remove ugly subclass of Opaque type
...
llvm-svn: 936
2001-10-22 06:01:08 +00:00
Chris Lattner
ee608fe298
Fix bug with
...
%list = type {%list *}
%list = type {%list *}
not being accepted (broken testmisc.ll)
llvm-svn: 935
2001-10-22 05:56:09 +00:00
Chris Lattner
3495dd8b2f
Fix bug exposed by this testcase:
...
declare int "call_operand" (%rtx_def*, int) ;; Prototype for: call_operand
declare int "restore_operand" (%rtx_def*, int) ;; Prototype for: restore_operand
%rtx_def = type opaque
%rtx_def = type int
implementation
llvm-svn: 934
2001-10-22 04:55:44 +00:00
Chris Lattner
8acdb272f4
Two changes:
...
1. Delete type handle regardless of whether a collision occured
2. Remove a MAJOR pessimization of runtime performance (thought be be an optimization at the time).
This second one was causing a 105k llvm file (from gcc) to parse in 58 seconds... without the
'optimization' it now parses in 3.64 seconds. I suck.
llvm-svn: 933
2001-10-21 23:02:41 +00:00
Chris Lattner
b9dca5e2e6
Fix erroneous assertion failure on the following code:
...
declare int "malloc"(...)
...
%reg112 = call int (...) * %malloc( uint %cast1007 )
llvm-svn: 932
2001-10-21 21:54:51 +00:00
Chris Lattner
a5248f25c9
Fix bug caused by:
...
%list = type opaque
%list = type %list
llvm-svn: 931
2001-10-21 21:43:25 +00:00
Ruchira Sasanka
6df15c541f
Added support for both call/jmpl instructions
...
llvm-svn: 930
2001-10-21 16:43:41 +00:00
Chris Lattner
9c5e9e028e
Fix problem with a cast instruction that must be expanded to type 0
...
llvm-svn: 929
2001-10-21 00:14:44 +00:00
Vikram S. Adve
a52d8bfb65
Fixed printing of offset operand for RETURN instruction.
...
llvm-svn: 928
2001-10-20 21:33:50 +00:00
Vikram S. Adve
1b4a9b22ad
Use CALL for direct function calls; JMPL for indirect ones.
...
llvm-svn: 927
2001-10-20 20:57:06 +00:00
Vikram S. Adve
e98e4a0526
Minor bug fix in printing operands of JMPL.
...
llvm-svn: 926
2001-10-20 20:56:40 +00:00
Chris Lattner
65647505e2
Fix shift printing when using a ubyte LHS
...
llvm-svn: 925
2001-10-20 09:33:10 +00:00
Chris Lattner
03e692a51b
Add support for And, XOR, and Or
...
llvm-svn: 924
2001-10-20 09:32:59 +00:00
Chris Lattner
8c57784273
It is valid to have unsigned arrays as constants... the linker may initialize them later
...
llvm-svn: 923
2001-10-20 06:43:05 +00:00
Ruchira Sasanka
95e437ec1b
Added code to support unusable Suggested Colors.
...
llvm-svn: 922
2001-10-19 21:42:06 +00:00
Ruchira Sasanka
dcac0518dd
Added code so that colorIGNode does not unnecessarily reserve unusable
...
Suggested colors for neighbors.
llvm-svn: 921
2001-10-19 21:41:16 +00:00
Ruchira Sasanka
b80714a64a
Added code to PhyRegAlloc to mark unusable suggested regs
...
Added initialization to AdjList to IGNode constructor - major bug fix
llvm-svn: 920
2001-10-19 21:39:31 +00:00
Ruchira Sasanka
2c39252eaf
Corrected call interference bug - suggested color not allocated if
...
volatile and there are call interferences
llvm-svn: 918
2001-10-19 17:23:43 +00:00
Ruchira Sasanka
fe8055b8c1
Changed Call interference info
...
llvm-svn: 917
2001-10-19 17:21:59 +00:00
Ruchira Sasanka
1f65433b82
Corrected call interference bug
...
llvm-svn: 916
2001-10-19 17:21:03 +00:00
Ruchira Sasanka
67992edbfc
no major change
...
llvm-svn: 914
2001-10-18 23:58:08 +00:00
Ruchira Sasanka
33e147a7d0
Added implict operand printing for operator( ostream, MachineInstr&)
...
llvm-svn: 912
2001-10-18 22:40:02 +00:00
Ruchira Sasanka
7c37ba859b
Added support for condition code loading/stroing in methods cpReg2Reg etc.
...
llvm-svn: 911
2001-10-18 22:38:52 +00:00
Ruchira Sasanka
384b7b3479
removed some debug messages
...
llvm-svn: 910
2001-10-18 22:36:26 +00:00
Chris Lattner
127fa2e39d
Enhancements to pass argc & argv to main if required
...
llvm-svn: 909
2001-10-18 21:55:32 +00:00
Chris Lattner
a83d6a2ee9
Refix bugs, stop using deprecated strstream header
...
llvm-svn: 898
2001-10-18 20:06:03 +00:00
Chris Lattner
5c29b9fafd
Initial checkin
...
llvm-svn: 897
2001-10-18 20:05:37 +00:00
Vikram S. Adve
0b908c75a6
Only print values live at BB or method exit, and insert loads at each
...
BB exit to read and print values stored in that BB. Note that only
these stored values are live at method exit!. Also, print messages at
method entry and exit.
llvm-svn: 892
2001-10-18 18:16:11 +00:00
Vikram S. Adve
487da75338
Handle multiple exit blocks correctly.
...
Restore string variable cache.
Resurrect code to use formatted printing instead of PrintVal
but leave it turned off for now.
llvm-svn: 888
2001-10-18 13:49:22 +00:00
Chris Lattner
f790ec066e
Dang, we were losing the Constant bit on globals. Fix this
...
llvm-svn: 885
2001-10-18 06:11:23 +00:00
Chris Lattner
b0066e78ac
Convert to be compatible with lli.
...
Need to eliminate duplicate \n entries
llvm-svn: 883
2001-10-18 06:03:05 +00:00
Chris Lattner
a8ed40026f
Massive hacks to try to fix subtle logic bugs. I think it's all working now,
...
at least what used to. I should disable method exit code completely because
it's broken (doesn't insert just post dominating values)
llvm-svn: 881
2001-10-18 05:28:08 +00:00
Chris Lattner
40372ce62d
Convert to new simpler pass itf
...
llvm-svn: 880
2001-10-18 05:27:33 +00:00
Chris Lattner
bfbbc83298
Change Sources specifier to ExtraSources
...
llvm-svn: 874
2001-10-18 01:48:09 +00:00
Chris Lattner
4429216038
Convert optimizations to the pass infrastructure
...
llvm-svn: 873
2001-10-18 01:32:34 +00:00
Vikram S. Adve
0ba9c3d61b
1. Move most of the constant-fixup code into machine-independent file
...
InstrSelectionSupport.cpp. It now happens in a bottom-up pass on
each BURG tree after the original top-down selection pass on the tree.
2. Handle global values as constants (viz., constant addresses).
llvm-svn: 868
2001-10-18 00:26:20 +00:00
Vikram S. Adve
abb85bb24c
Sparc-specific code shared between local files.
...
llvm-svn: 864
2001-10-18 00:03:20 +00:00