Commit Graph

1153 Commits

Author SHA1 Message Date
Vikram S. Adve 0009da41c6 Delete MachineCodeInfoForMethod object.
llvm-svn: 956
2001-10-22 22:32:11 +00:00
Chris Lattner 100884edad Fix a problem occuring with type unification of symbol table entries
llvm-svn: 955
2001-10-22 21:59:46 +00:00
Vikram S. Adve 4dedee5dc4 Simplify etags command.
llvm-svn: 954
2001-10-22 13:58:22 +00:00
Vikram S. Adve bdea601096 Added object of class MachineCodeForMethod.
llvm-svn: 953
2001-10-22 13:58:08 +00:00
Vikram S. Adve 21c3a754fc Added class MachineCodeForMethod to provide method-level information
about the generated native code (e.g., frame layout information).

llvm-svn: 952
2001-10-22 13:57:39 +00:00
Vikram S. Adve 0f228750ec Added function interfaces for generating prolog and epilog code.
The functions must be implemented by the target-specific code generator.

llvm-svn: 951
2001-10-22 13:56:33 +00:00
Vikram S. Adve 5dab57de99 Added function IsLeafMethod to identify leaf methods.
This will use the CallGraph only if one is provided.

llvm-svn: 950
2001-10-22 13:55:46 +00:00
Vikram S. Adve 4e594bebba Added MachineCodeForMethod object in class Method.
llvm-svn: 949
2001-10-22 13:52:47 +00:00
Vikram S. Adve 901da32e64 Use class MachineCodeForMethod to print machine code.
llvm-svn: 948
2001-10-22 13:52:03 +00:00
Vikram S. Adve cc80b02834 Added class MachineCodeForMethod.
llvm-svn: 947
2001-10-22 13:51:33 +00:00
Vikram S. Adve 3686293bd2 Cosmetic changes only.
llvm-svn: 946
2001-10-22 13:51:09 +00:00
Vikram S. Adve 9a6457388f 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 18a9e39214 UNUSED.
llvm-svn: 944
2001-10-22 13:46:38 +00:00
Vikram S. Adve a0177cdca5 Split JMPL into JMPLCALL and JMPLRET.
llvm-svn: 943
2001-10-22 13:44:53 +00:00
Vikram S. Adve 9090b50ba9 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 5462dca9f1 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 8498277e77 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 52e41008e3 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 6b492ddc15 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 7c1a8d6d53 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 e6b470c3f1 Remove ugly subclass of Opaque type
llvm-svn: 936
2001-10-22 06:01:08 +00:00
Chris Lattner d50fa5aa36 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 fb864a35aa 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 6265d798d4 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 b57ac6f4bd 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 28a63e2972 Fix bug caused by:
%list = type opaque
%list = type %list

llvm-svn: 931
2001-10-21 21:43:25 +00:00
Ruchira Sasanka 24729a34ce Added support for both call/jmpl instructions
llvm-svn: 930
2001-10-21 16:43:41 +00:00
Chris Lattner 18e81933c7 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 9bc488984f Fixed printing of offset operand for RETURN instruction.
llvm-svn: 928
2001-10-20 21:33:50 +00:00
Vikram S. Adve 5731249137 Use CALL for direct function calls; JMPL for indirect ones.
llvm-svn: 927
2001-10-20 20:57:06 +00:00
Vikram S. Adve 72ebb454d0 Minor bug fix in printing operands of JMPL.
llvm-svn: 926
2001-10-20 20:56:40 +00:00
Chris Lattner b6fe2345f1 Fix shift printing when using a ubyte LHS
llvm-svn: 925
2001-10-20 09:33:10 +00:00
Chris Lattner c27b1d7bf3 Add support for And, XOR, and Or
llvm-svn: 924
2001-10-20 09:32:59 +00:00
Chris Lattner f96ef663e0 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 53516cd05b Added code to support unusable Suggested Colors.
llvm-svn: 922
2001-10-19 21:42:06 +00:00
Ruchira Sasanka 6a073498ba 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 01c55ba00c 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 1437395c9f Added code to Initialize (MachineOperand) to initialize regNum to -1 -- Ruchira
llvm-svn: 919
2001-10-19 18:17:49 +00:00
Ruchira Sasanka d77a1bbc2f 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 6275a04aac Changed Call interference info
llvm-svn: 917
2001-10-19 17:21:59 +00:00
Ruchira Sasanka 09d7a2a496 Corrected call interference bug
llvm-svn: 916
2001-10-19 17:21:03 +00:00
Chris Lattner 3923967f1e Fix to reference the right header
llvm-svn: 915
2001-10-19 15:39:14 +00:00
Ruchira Sasanka 6b1d2691c6 no major change
llvm-svn: 914
2001-10-18 23:58:08 +00:00
Vikram S. Adve c00a4343be *** empty log message ***
llvm-svn: 913
2001-10-18 22:47:50 +00:00
Ruchira Sasanka 59e864eb92 Added implict operand printing for operator( ostream, MachineInstr&)
llvm-svn: 912
2001-10-18 22:40:02 +00:00
Ruchira Sasanka 5f629318fa Added support for condition code loading/stroing in methods cpReg2Reg etc.
llvm-svn: 911
2001-10-18 22:38:52 +00:00
Ruchira Sasanka 0a2990a7c6 removed some debug messages
llvm-svn: 910
2001-10-18 22:36:26 +00:00
Chris Lattner d299dbac0e Enhancements to pass argc & argv to main if required
llvm-svn: 909
2001-10-18 21:55:32 +00:00
Chris Lattner cbe05f258e Check in new testcase based on .c file. Adapted to run with lli
llvm-svn: 908
2001-10-18 21:55:07 +00:00
Chris Lattner 90c912acaa Fix null termination issue
llvm-svn: 907
2001-10-18 21:54:42 +00:00