Commit Graph

617 Commits

Author SHA1 Message Date
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
Vikram S. Adve
00436e5f21 Moved implementation of class UltraSparcInstrInfo to SparcInstrInfo.cpp.
llvm-svn: 863
2001-10-18 00:02:32 +00:00
Vikram S. Adve
b66fc8ac17 Added virtual function to generate an instruction sequence to
load a constant into a register.

llvm-svn: 862
2001-10-18 00:02:06 +00:00
Vikram S. Adve
0b1e8f2577 Moved implementation of class UltraSparcInstrInfo here.
llvm-svn: 861
2001-10-18 00:01:48 +00:00
Vikram S. Adve
34b17e8a37 1. Add a bottom-up pass on BURG trees that is used to fix constant operands.
Needs to be bottom up because constant values may be forward-substituted
   to their uses (i.e., into the parent in the BURG tree).
2. Move most of the constant-fixup code into machine-indepedent file
   InstrSelectionSupport.cpp.

llvm-svn: 859
2001-10-17 23:57:50 +00:00
Vikram S. Adve
abed788cd9 Separate VM instruction that generates the instructions that compute a value
from the value itself (the one causing an edge) because the latter may be
a temporary used within the instruction sequence for the VM instruction.

llvm-svn: 858
2001-10-17 23:55:16 +00:00
Vikram S. Adve
41be9ce333 *** empty log message ***
llvm-svn: 857
2001-10-17 23:53:16 +00:00
Vikram S. Adve
44769fbb57 Only list automatically generated .cpp files.
llvm-svn: 854
2001-10-17 12:34:26 +00:00
Chris Lattner
66ccdebe53 Simplify some code
Remove Method special case
Fix bug exposed by this testcase:

implementation

void "PtrFunc2"()
begin
bb1:
        %reg = add int(int)* null, null
        add int (int)* %reg, null
        ret void
end

llvm-svn: 852
2001-10-16 19:54:17 +00:00
Ruchira Sasanka
471cf92f0e changed debugg message printing - no change to useful code
llvm-svn: 850
2001-10-16 16:34:44 +00:00
Ruchira Sasanka
6dd033bd31 No major change - commented some debug code
llvm-svn: 849
2001-10-16 01:33:55 +00:00
Ruchira Sasanka
5c304f38bf No major change - added some comments
llvm-svn: 848
2001-10-16 01:25:05 +00:00
Ruchira Sasanka
26ab9c8e61 Added support for caller saving
llvm-svn: 847
2001-10-16 01:23:19 +00:00
Chris Lattner
4737d9ac3d Emit the proper .type declarations to tell the debugger what a function is
llvm-svn: 845
2001-10-15 19:34:17 +00:00
Chris Lattner
06e9785523 Handle abnormal jmpl syntax correctly
llvm-svn: 844
2001-10-15 19:21:31 +00:00
Chris Lattner
20a04bd230 Implement ulong & long support
llvm-svn: 843
2001-10-15 19:18:26 +00:00
Chris Lattner
be66ee81bd Print Debug Code to stderr instead of stdout so that it doesn't mess up the assembly output
llvm-svn: 841
2001-10-15 18:30:06 +00:00
Chris Lattner
683166c06e Output to cerr rather than cout so that debug info doesn't mess up assembly generation
llvm-svn: 840
2001-10-15 18:15:27 +00:00
Chris Lattner
9bfad5b7b1 Add new Pass infrastructure and some examples
llvm-svn: 836
2001-10-15 17:31:51 +00:00
Ruchira Sasanka
b19c5a1332 --added support for implicit operands
llvm-svn: 832
2001-10-15 16:58:50 +00:00
Ruchira Sasanka
183e59e94a updated suggesting/coloring of call & return args & implicit operands.
Changed added instr to a deque (from a vector)

llvm-svn: 831
2001-10-15 16:26:38 +00:00
Ruchira Sasanka
de15e9b64e updated suggesting/coloring of call & return args & implicit operands
llvm-svn: 830
2001-10-15 16:25:28 +00:00
Ruchira Sasanka
54051b75a7 fixed a coalscing bug
llvm-svn: 828
2001-10-15 16:22:44 +00:00
Chris Lattner
eba2b7cf61 Be const correct
llvm-svn: 826
2001-10-15 15:54:43 +00:00
Chris Lattner
554f1b941d Implement initializers for structs and pointers
llvm-svn: 823
2001-10-15 13:25:40 +00:00
Chris Lattner
fd1ab08cba Rename ConstPoolPointerReference to ConstPoolPointerRef - My fingers get tired typing that much
llvm-svn: 822
2001-10-15 13:21:42 +00:00
Chris Lattner
9754557583 * getExitNode() doesn't exist in method anymore
* Make local functions static

llvm-svn: 820
2001-10-15 13:07:21 +00:00
Vikram S. Adve
4ab6d41945 Added Instrumentation subdirectory.
llvm-svn: 819
2001-10-15 12:01:05 +00:00
Chris Lattner
af1d77e07c Implement global variables. Struct and Pointer initializers are not implemented yet though
llvm-svn: 818
2001-10-15 05:51:48 +00:00
Chris Lattner
9c144fbb72 Implement linking of global variable constant references
llvm-svn: 817
2001-10-15 03:12:52 +00:00
Chris Lattner
c65d902eee Oops, didn't handle hex values correctly. :(
llvm-svn: 815
2001-10-15 00:05:03 +00:00
Chris Lattner
fc567e1535 * Fix the constpoolarray -> c"" printing routines to escape things properly
* Fix slightly broken sharing problems
* Do not escape the literal string passed in

llvm-svn: 814
2001-10-14 23:54:12 +00:00
Chris Lattner
8dc436c6db Minor cleanup
llvm-svn: 812
2001-10-14 23:29:30 +00:00
Chris Lattner
9f4d1bcb25 Implement linker. It's 95% working now.
llvm-svn: 810
2001-10-14 23:29:15 +00:00
Vikram S. Adve
54bfbca17f Forward operands into implicit uses as well as explicit ones.
llvm-svn: 808
2001-10-14 23:28:43 +00:00
Chris Lattner
9acb843577 External methods shouldn't have argument lists
llvm-svn: 807
2001-10-14 23:28:41 +00:00
Vikram S. Adve
8d61ebc675 Insert code to trace values at basic block and method exits.
Current version does not check for liveness.

llvm-svn: 800
2001-10-14 23:18:45 +00:00
Vikram S. Adve
b14610286e Added routine to create a char array for a string.
Also, print char arrays as strings.

llvm-svn: 799
2001-10-14 23:17:20 +00:00
Vikram S. Adve
45536008e9 Two bug fixes that were suppressing some "load-constant-into-register" instrs.
llvm-svn: 795
2001-10-14 18:10:33 +00:00
Chris Lattner
f1104f9d8a Move the burg file to here. Add .in suffix to indicate that it gets
preprocessed before burg gets to it

llvm-svn: 794
2001-10-14 17:26:21 +00:00
Chris Lattner
23de05d818 Make the sparc.burg file be a little more flexible and rubust in the fact of
renumbering of instructions.  It is still horribly broken and grossly dependant on the number of instructions, but now it is a least a little better.

Oh yeah it also works now.

llvm-svn: 793
2001-10-14 17:25:31 +00:00
Chris Lattner
110d64205d Check in makefile
llvm-svn: 788
2001-10-13 16:57:03 +00:00
Chris Lattner
d6bf618e62 Compile the transforms directory
llvm-svn: 776
2001-10-13 07:04:00 +00:00
Chris Lattner
9d7255f19c Start of a linker
llvm-svn: 775
2001-10-13 07:03:50 +00:00
Chris Lattner
24d2022f4e Implement the invoke instruction
llvm-svn: 774
2001-10-13 07:01:45 +00:00
Chris Lattner
77672f99ab * Fix a nefarious bugs: TypesEqual was wrong for varargs methods
* MethodType::get now takes a literal isVarArg method argument
* Use new style casts

llvm-svn: 773
2001-10-13 07:01:33 +00:00
Chris Lattner
5df2c60a5f Convert a runtime check into an assertion
llvm-svn: 772
2001-10-13 06:58:56 +00:00
Chris Lattner
fe9768f73b * Add support for Module specific constants
* Add proper support for ConstPoolPointerReference's

llvm-svn: 771
2001-10-13 06:58:40 +00:00
Chris Lattner
28a5ef9c3d Add new TerminatorInst ctor for invoke
llvm-svn: 770
2001-10-13 06:57:47 +00:00
Chris Lattner
9fd302d22b * Fix TODO
* Support ConstPoolPOinterReferences correctly
* New constPoolPointerNull subclass
* Add classof support for more classes
* Add proper support for ConstPoolPointerReference::getStrValue()

llvm-svn: 769
2001-10-13 06:57:33 +00:00
Chris Lattner
e479974c19 Fix broken #endif
llvm-svn: 768
2001-10-13 06:54:54 +00:00
Chris Lattner
9fb95b57db * Add #include
* Fix #endif problems
* Change to getCalledValue instead of getCalledMethod

llvm-svn: 767
2001-10-13 06:54:30 +00:00
Chris Lattner
57781f7fda Add StringList support
llvm-svn: 766
2001-10-13 06:53:19 +00:00
Chris Lattner
4c81efaf8e Support the invoke instruction
llvm-svn: 765
2001-10-13 06:52:41 +00:00
Chris Lattner
8314c1f1bc Support indirect calls
llvm-svn: 764
2001-10-13 06:52:31 +00:00
Chris Lattner
f29cb6207e not is a keyword in ansi C++, avoid it
llvm-svn: 763
2001-10-13 06:51:26 +00:00
Chris Lattner
b9e0153cfe * Fix privacy issues on RegToRefVecMap
* Fix initialization order problems...

llvm-svn: 762
2001-10-13 06:51:01 +00:00
Chris Lattner
21a0de20bf * Use new style casts more
* Add real support for global variable addresses initializing constants
* Fix encoding/decoding of VarArgs calls
* Support the Invoke instruction

llvm-svn: 761
2001-10-13 06:48:38 +00:00
Chris Lattner
601ab4b0ff * Add real support for global variable addresses initializing constants
* Add minor optimization to BytecodeParser::refineAbstractType
* MethodType::get now take an explicit isVarArg parameter
* Fix encoding/decoding of VarArgs calls
* Support the Invoke instruction

llvm-svn: 760
2001-10-13 06:47:01 +00:00
Chris Lattner
ecd7a98aad * Support writing GlobalVariables with info comments by them
* Print out prototypes correctly in cases that we weren't before
* Use new style casts more
* Support printing new invoke instruction

llvm-svn: 759
2001-10-13 06:42:36 +00:00
Chris Lattner
be0be88441 * Add support for forward references of global variable addresses
* Add support for numeric global variable addresses
* Clean up getVal function by refactoring it into several smaller functions
* MethodTypes are now specified with an explicit isVarArg parameter
* Break ValueRef into ConstValueRef & SymbolicValueRef components
* Add support for the new Invoke instruction
* Fix a few broken calls to Type::getName instead of Type::getDescription

llvm-svn: 758
2001-10-13 06:41:08 +00:00
Chris Lattner
78b565249f Add operator< to ValID's so that they can be put in map's
llvm-svn: 757
2001-10-13 06:37:47 +00:00
Chris Lattner
61fcf0014d Remove exception specification
llvm-svn: 756
2001-10-13 06:37:27 +00:00
Chris Lattner
ec2d56a673 Support the new Invoke instruction
llvm-svn: 755
2001-10-13 06:37:14 +00:00
Chris Lattner
a7e5f0bb35 Support pointers to globals happily
llvm-svn: 754
2001-10-13 06:35:09 +00:00
Chris Lattner
edf1aed1df Fix code to make GCC 2.96 happy
llvm-svn: 753
2001-10-13 06:34:47 +00:00
Chris Lattner
684b485035 * Add support for Invoke instructions
* Add support for indirect calls

llvm-svn: 752
2001-10-13 06:33:19 +00:00
Ruchira Sasanka
bba7b347fb --corrected coalescing test: coalsed only if two are of the same reg class
llvm-svn: 729
2001-10-12 17:48:18 +00:00
Ruchira Sasanka
fb7ed55e35 added support for implict operands in machine instruction
llvm-svn: 728
2001-10-12 17:47:23 +00:00
Ruchira Sasanka
44e467ec90 --added support for implicit operands in machine instructions
llvm-svn: 727
2001-10-12 17:46:27 +00:00
Vikram S. Adve
cc2f052087 Record implicitRefs for each machine instruction instead of
each VM instruction.

llvm-svn: 725
2001-10-11 04:23:19 +00:00
Vikram S. Adve
1fe4d4071c Add graph edges due to implicit refs in each machine instruction.
llvm-svn: 724
2001-10-11 04:22:45 +00:00
Vikram S. Adve
623324dea9 Don't insert useful instructions in delay slot of a RETURN.
llvm-svn: 721
2001-10-10 20:58:11 +00:00
Vikram S. Adve
2f08c4c828 Insert code to load constants used as Call or Return arguments.
Also, note return value of a Call as an "implicitUse".

llvm-svn: 720
2001-10-10 20:56:33 +00:00
Vikram S. Adve
2c19cf9a69 Machine-independent code generation routines used in instruction
selection.  These used to live in several different places before.

llvm-svn: 719
2001-10-10 20:50:43 +00:00
Vikram S. Adve
34c44524a7 Moved code generation support routines to InstrSelectionSupport.cpp.
llvm-svn: 717
2001-10-10 20:49:07 +00:00
Ruchira Sasanka
b7ab4088e7 --removed %g regs being allocated - fix later
llvm-svn: 714
2001-10-09 23:36:13 +00:00
Chris Lattner
7a732d2a43 Add comment
llvm-svn: 712
2001-10-03 19:35:57 +00:00
Chris Lattner
4b2e88eac3 Support multiple global's definitions
llvm-svn: 711
2001-10-03 19:35:04 +00:00
Chris Lattner
ac7f7b4758 Factor parentness out of Module & GlobalVariable into GlobalValue
Implement SymbolTable debug/dump utility

llvm-svn: 710
2001-10-03 19:28:15 +00:00
Chris Lattner
ee349cd48b Rename getNullPointer to getNull
Allow sharing of null pointer constants

llvm-svn: 709
2001-10-03 15:39:36 +00:00
Chris Lattner
5eb7388b84 Rename getNullPointer to getNull
llvm-svn: 708
2001-10-03 15:39:24 +00:00
Chris Lattner
db52bbed27 Allow duplicate constant values as long as they are compatible.
Clean up stuff a little bit with inMethod/ModuleContext functions

llvm-svn: 707
2001-10-03 15:39:04 +00:00
Chris Lattner
a6c7a3f199 Add check to make sure that we dont reference MEthodType's directly
llvm-svn: 704
2001-10-03 14:59:05 +00:00
Chris Lattner
a01eda3091 * Both Method & GlobalVariable now subclass GlobalValue
* ConstPoolPointerReference now represents a pointer to a GlobalValue
* Methods name references are now explicit pointers to methods
* Rename Value::GlobalVal to Value::GlobalVariableVal to avoid confusion

llvm-svn: 703
2001-10-03 14:53:21 +00:00
Chris Lattner
af910dda17 First try at a horrible global value reference wrapper
llvm-svn: 701
2001-10-03 06:12:09 +00:00
Chris Lattner
510a74e27d Clean up parser, fix a bug that prevented this from working:
%ListNode3 = global %list { %list* null, int 4 }

because %list is name and the parser expected a literal {..} type there.

In addition, simplified rules that the fix (Allow any Types there, not just a StructType)
made obsolete.  Simplified type propogation a bit.

llvm-svn: 700
2001-10-03 03:19:33 +00:00
Chris Lattner
77d303815e * Add support for null as a constant
* Allow multiple definitions of a type with the same name as long as they are the same type
* Eagerly resolve types to allow #2 to work instead of after the whole const pool has been processed
* Change grammar to require a const before a local constant definition

llvm-svn: 699
2001-10-03 01:49:25 +00:00
Chris Lattner
08b1dde37e Commit more code over to new cast style
llvm-svn: 697
2001-10-02 03:41:24 +00:00
Chris Lattner
ad1b0a1a83 Convert more code to use new style casts
Eliminate old style casts from value.h

llvm-svn: 696
2001-10-01 20:11:19 +00:00
Chris Lattner
4c684cde80 Add more support for new style casts
Convert more code to use them

llvm-svn: 695
2001-10-01 18:26:53 +00:00
Chris Lattner
43781f1f96 Add support for new style casts
llvm-svn: 694
2001-10-01 16:18:37 +00:00
Chris Lattner
345daca305 Pull predecessor and successor iterators out of the CFG*.h files, and plop them into
the BasicBlock class where they should be.  pred_begin/pred_end become methods on BasicBlock,
and the cfg namespace isn't used anymore.

llvm-svn: 691
2001-10-01 13:19:53 +00:00
Chris Lattner
716c1ac09e Fix emission of return instructions
llvm-svn: 688
2001-10-01 02:32:34 +00:00
Vikram S. Adve
4bdadf3b6f Several fixes:
(1) Avoid hard-coding some register numbers.
(2) Fix some incorrect branch opcodes.
(3) Don't try to move int register to float register!
(4) If an operand being forwarded is a constant and it doesn't fit
    into the immed field of the copy machine instruction, then
    generate a load-constant instead of a copy.
(5) Use (unsigned long) 0 for copying a pointer via "add 0, ptr -> ptr2".

llvm-svn: 683
2001-10-01 00:12:53 +00:00
Ruchira Sasanka
294d643339 removing phy regaloc - incorrect file
llvm-svn: 682
2001-09-30 23:52:14 +00:00
Vikram S. Adve
5201cd7f93 Change latency of setuw and setsw to 2 cycles.
llvm-svn: 681
2001-09-30 23:46:57 +00:00
Vikram S. Adve
8c431d2726 Change ! ( ...== ...) to !=.
llvm-svn: 680
2001-09-30 23:45:08 +00:00
Vikram S. Adve
7b68e7247a Improved dump for disp type operand.
llvm-svn: 679
2001-09-30 23:44:19 +00:00
Vikram S. Adve
180dee14b8 Bug fixes:
(1) Ensure that delay slot instructions are not moved out of place (this
    was happening for some CALL instructions).  Basically, we need to
    move all delay slot instructions out of the graph and handle them
    along with the delayed control transfer instruction.
(2) Mark scheduled instructions correctly when instructions are scheduled
    in more than one cycle in a single step (due to delay slots).

llvm-svn: 678
2001-09-30 23:43:34 +00:00
Vikram S. Adve
d376407048 Minor changes for bug fixes in SchedGraph.cpp.
llvm-svn: 677
2001-09-30 23:37:26 +00:00
Vikram S. Adve
5d7dcfd698 Two bug fixes:
(1) Add edges for Values that are written by multiple m/c instructions
(2) Add edges for LLVM operands that are not machine operands (e.g., Call args)

llvm-svn: 676
2001-09-30 23:36:58 +00:00
Ruchira Sasanka
fa120a9fb1 *** empty log message ***
llvm-svn: 675
2001-09-30 23:28:04 +00:00
Ruchira Sasanka
cfc7b10745 added suggesting color support
llvm-svn: 673
2001-09-30 23:19:57 +00:00
Ruchira Sasanka
897da2bda1 added support for suggesting colors
llvm-svn: 671
2001-09-30 23:16:47 +00:00
Ruchira Sasanka
e04709a704 --added suggesting colors; call/ret arg handling
llvm-svn: 670
2001-09-30 23:11:59 +00:00
Chris Lattner
b77eae1b27 Implement constant pointers, and null specifically in the parser, bytecode writer, and
bytecode reader.

llvm-svn: 668
2001-09-30 22:46:54 +00:00
Chris Lattner
94ef0a1a2c Implement a constant pointer value
llvm-svn: 667
2001-09-30 20:14:07 +00:00
Chris Lattner
97440eba29 File #include file
llvm-svn: 665
2001-09-28 22:56:43 +00:00
Chris Lattner
9b45b18404 Pull iterators out of CFG.h and CFGdecls and put them in Support directory
llvm-svn: 664
2001-09-28 22:56:31 +00:00
Chris Lattner
082a95ea67 * Properly escape function names
* Ignore %xcc argument on conditional branches

llvm-svn: 663
2001-09-28 15:07:24 +00:00
Chris Lattner
5390f15d0b Check in bug fix for vadve
llvm-svn: 662
2001-09-28 15:06:55 +00:00
Chris Lattner
74c4c61d71 Initial support for construction of a call graph
llvm-svn: 660
2001-09-28 00:08:15 +00:00
Chris Lattner
02d80cea8c Make error report a little more useful
llvm-svn: 657
2001-09-28 00:06:52 +00:00
Chris Lattner
2fc6c49ee7 ADCE is broken but at least we know why
llvm-svn: 656
2001-09-28 00:06:42 +00:00
Ruchira Sasanka
b43f15e73a -- fixed a ret val bug
llvm-svn: 652
2001-09-19 22:40:51 +00:00
Ruchira Sasanka
b9da0f9024 -- removed debugging messages
llvm-svn: 651
2001-09-19 22:39:58 +00:00
Ruchira Sasanka
cbabf19f3b -fixed return value bug.
llvm-svn: 650
2001-09-19 22:31:21 +00:00
Chris Lattner
c1073581ae Change debug info from #define to command line option
Clean up extra debug info that wasn't guarded

llvm-svn: 647
2001-09-19 16:26:23 +00:00
Chris Lattner
030d4ca8f4 Change debug info from #define to command line option
llvm-svn: 646
2001-09-19 16:26:10 +00:00
Chris Lattner
81a5329a90 * REMOVE extraneous debug info if DEBUG_RA is not set
* Spell PhyRegAlloc right.

llvm-svn: 645
2001-09-19 16:09:04 +00:00
Chris Lattner
2635fee3a8 Seperate instruction definitions into new SparcInstr.def file
Move contents of SparcMachineInstrDesc[] out of SparcInternals.h
into Sparc.cpp

llvm-svn: 644
2001-09-19 15:56:23 +00:00
Chris Lattner
e77ee72df2 Okay, make the member function work.
llvm-svn: 643
2001-09-19 14:09:25 +00:00
Chris Lattner
9aa7a88f0e Remove global debug output fns that have been superceded by a member func
llvm-svn: 642
2001-09-19 14:08:53 +00:00
Chris Lattner
14d60a1971 Add EmitAssembly to mf
llvm-svn: 637
2001-09-19 13:48:18 +00:00
Chris Lattner
d30d71f9e1 First cut at assembly output
llvm-svn: 636
2001-09-19 13:47:27 +00:00
Chris Lattner
05d1751f8d Add emitAssemblyMethod to TargetMachine
llvm-svn: 635
2001-09-19 13:47:12 +00:00
Ruchira Sasanka
6d773d9580 *** empty log message ***
llvm-svn: 634
2001-09-18 22:57:47 +00:00
Ruchira Sasanka
ee3ad646e2 -- ruchira
llvm-svn: 632
2001-09-18 22:52:44 +00:00
Ruchira Sasanka
2a084fbcac -- updated printing
llvm-svn: 631
2001-09-18 22:43:57 +00:00
Chris Lattner
757b686b27 Remove a copy of a bunch of code
llvm-svn: 630
2001-09-18 18:15:40 +00:00
Chris Lattner
86ecc9630a Fix up code a bit, remove operator<< to Assembly/Writer.h
llvm-svn: 628
2001-09-18 17:03:59 +00:00
Chris Lattner
30d7546b7d Remove extraneous #includes
llvm-svn: 627
2001-09-18 17:03:48 +00:00
Chris Lattner
b545b1f5e9 Don't check for null on delete
llvm-svn: 624
2001-09-18 17:02:42 +00:00
Vikram S. Adve
ef4f0a345c Renamed files to match the primary classes they provide.
llvm-svn: 620
2001-09-18 13:10:05 +00:00
Vikram S. Adve
a163e94412 Renamed a header file.
llvm-svn: 619
2001-09-18 13:04:53 +00:00
Vikram S. Adve
916f962d8b Make class TargetMachine the common interface to all target-dependent
information, including instr, sched, and reg information.
This allows us to allocate them all in one place and use them much
more uniformly.

llvm-svn: 618
2001-09-18 13:04:24 +00:00
Vikram S. Adve
a9b6105720 Allow pointer constants as well as integer and booleans.
Skip over list nodes in ForwardOperand.

llvm-svn: 617
2001-09-18 13:03:13 +00:00
Vikram S. Adve
cfb2776d53 Make class TargetMachine the common interface to all target-dependent
information, including instr, sched, and reg information.
Rename files to match the primary classes they provide.
Commented out call to register allocation until more tests run correctly.

llvm-svn: 616
2001-09-18 13:01:29 +00:00
Vikram S. Adve
bdbc6292fa Renamed files to match the main classes they provide.
Some other minor changes.

llvm-svn: 615
2001-09-18 12:58:33 +00:00
Vikram S. Adve
64e9d6b584 Cast unsigned to int! It was causing a nice little bug.
llvm-svn: 614
2001-09-18 12:57:39 +00:00
Vikram S. Adve
296070fa2c Minor changes.
llvm-svn: 613
2001-09-18 12:56:28 +00:00
Vikram S. Adve
65b49e5ba5 Don't add instructions to subtree for Phi or Call.
Free tree nodes when done.
Avoid obscuring code with for_each and bind_obj :-)

llvm-svn: 612
2001-09-18 12:54:27 +00:00
Vikram S. Adve
0a57de77e9 Format file header.
llvm-svn: 611
2001-09-18 12:52:03 +00:00
Vikram S. Adve
0a78fdff45 Add new entry/exit edges when removing delay slot nodes from the graph.
Renamed some header files.

llvm-svn: 610
2001-09-18 12:51:38 +00:00
Vikram S. Adve
1eb14a86ef Moved erase edge functions to class SchedGraph.
Add new dummy edges when deleting existing edges.

llvm-svn: 609
2001-09-18 12:50:40 +00:00
Vikram S. Adve
538d42467b Renamed some header files.
llvm-svn: 608
2001-09-18 12:49:39 +00:00
Vikram S. Adve
63c60c9419 Moved erase-edge functions from SchedGraphNode to SchedGraph.
Renamed some header files.

llvm-svn: 607
2001-09-18 12:49:26 +00:00
Vikram S. Adve
bf084ec2e7 Moved DebugValue to Value.cpp.
llvm-svn: 606
2001-09-18 12:48:16 +00:00
Vikram S. Adve
b0232d85a1 Added debugging support.
llvm-svn: 605
2001-09-18 12:44:41 +00:00
Vikram S. Adve
24f80f0837 Minor fixes: renamed target machine files; fold sched info into TargetMachine.
llvm-svn: 603
2001-09-18 12:41:43 +00:00
Chris Lattner
e5750a063d Remove the unsized array constraint
llvm-svn: 599
2001-09-18 04:38:32 +00:00
Chris Lattner
ac91b150a7 Add support for global constants, and for initializers for constants
llvm-svn: 598
2001-09-18 04:01:05 +00:00
Chris Lattner
0dfd40e910 Add support for global constants, and for initializers for constants
Clean up parser somewhat by factoring out freeing of ID's into setname function

llvm-svn: 597
2001-09-18 04:00:54 +00:00
Ruchira Sasanka
f51404a55a modified machine code printing
llvm-svn: 595
2001-09-15 21:11:11 +00:00
Ruchira Sasanka
9517b55411 modified printing of debug messages
llvm-svn: 593
2001-09-15 19:11:31 +00:00
Ruchira Sasanka
ecc5b3b882 --added methods for printing
llvm-svn: 592
2001-09-15 19:08:41 +00:00
Ruchira Sasanka
3706ce9f36 added setRegForValue to MachineOperand class
llvm-svn: 591
2001-09-15 19:07:45 +00:00
Ruchira Sasanka
c1514789f3 fixed printing messages
llvm-svn: 590
2001-09-15 19:06:58 +00:00
Ruchira Sasanka
6807a780c5 -- debug messages dissabled
llvm-svn: 589
2001-09-15 16:54:40 +00:00
Ruchira Sasanka
e0cf66f325 --reg alloc code added
llvm-svn: 587
2001-09-15 00:33:26 +00:00
Ruchira Sasanka
ad27c6876c -reg alloc code
llvm-svn: 586
2001-09-15 00:31:44 +00:00
Ruchira Sasanka
422a5cb539 added register allocation code
llvm-svn: 585
2001-09-15 00:30:44 +00:00
Chris Lattner
fb161a3063 Fix a bug with not removing method level types after compilation
llvm-svn: 582
2001-09-14 22:03:42 +00:00
Ruchira Sasanka
8308fe4dee added RegAlloc Directory to DIRS
llvm-svn: 581
2001-09-14 21:28:17 +00:00
Ruchira Sasanka
e30e83df47 *** empty log message ***
llvm-svn: 580
2001-09-14 21:18:34 +00:00
Ruchira Sasanka
803a63ced2 *** empty log message ***
llvm-svn: 579
2001-09-14 20:31:39 +00:00
Chris Lattner
eb286a8ad2 Add support for loading and storing pointers...
llvm-svn: 575
2001-09-14 20:00:02 +00:00
Chris Lattner
45ab5fc1ae Fix a bug that caused a crash if a setcc had zero uses.
llvm-svn: 574
2001-09-14 18:29:28 +00:00
Chris Lattner
cbf2f72954 Add a forward decl, oops.
llvm-svn: 573
2001-09-14 17:55:51 +00:00
Chris Lattner
d6a98c11bc Chris seems fond of #include <vector>. Fix these. Also convert use list in
Value to a vector instead of a list.

Move SchedGraph.h & SchedPriorities.h into lib/CodeGen/InstrScheduling

llvm-svn: 572
2001-09-14 16:56:32 +00:00
Chris Lattner
add21b5643 Add a comment
llvm-svn: 571
2001-09-14 16:08:12 +00:00
Chris Lattner
16dc47075f Break scheduling infrastructure out of TargetMachine.cpp into SchedInfo.cpp
llvm-svn: 569
2001-09-14 15:43:58 +00:00
Chris Lattner
de29307caa Split Target/Machine.h into three files:
* Machine.h
* InstInfo.h
* SchedInfo.h

TODO: Split out reg info stuff
llvm-svn: 567
2001-09-14 06:08:03 +00:00
Chris Lattner
a0a3946882 Make a new llvm/Target #include directory.
Move files from lib/CodeGen/TargetMachine to lib/Target
Move TargetData.h and TargetMachine.h to Target/{Data.h|Machine.h}
Prepare to split TargetMachine.h into several smaller files

llvm-svn: 566
2001-09-14 05:34:53 +00:00
Chris Lattner
7e70cdb641 Checkin changes to:
1. Clean up the TargetMachine structure.  No more wierd pointers that have to
   be cast around and taken care of by the target.
2. Instruction Scheduling now takes the schedinfo as an argument.  The same
   should be done with the instinfo, it just isn't now.

llvm-svn: 565
2001-09-14 04:32:55 +00:00
Chris Lattner
33a2812c8a Move files to new sparc directory
llvm-svn: 563
2001-09-14 03:56:45 +00:00
Chris Lattner
2057603b65 Move the sparc target to a new lib/Target directory
llvm-svn: 562
2001-09-14 03:55:11 +00:00
Chris Lattner
1f823b04b3 Move files.
llvm-svn: 561
2001-09-14 03:47:57 +00:00
Chris Lattner
0cf998996e Move the contents of the CodeGen/TargetMachine/Sparc directory to Target/Sparc
llvm-svn: 560
2001-09-14 03:46:34 +00:00
Chris Lattner
3e2a85a0e3 This checkin represents some cleanup of the backend, implementing the following things:
1. The TargetMachine structure is free to decide the process a particular target uses to generate code.
2. All of the gooee details of the sparc backend are now localized in the lib/CodeGen/TargetMAchine/Sparc directory.  The Sparc.h file that is globally visible is just a stub.
3. The Sparc.h file that esxists now will dissapear entirely someday when we have multiple backends chosen by a factory of some sort.

llvm-svn: 559
2001-09-14 03:37:52 +00:00
Chris Lattner
9f5d3502c5 This checkin represents some cleanup of the backend, implementing the following things:
1. The TargetMachine structure is free to decide the process a particular target uses to generate code.
2. All of the gooee details of the sparc backend are now localized in the lib/CodeGen/TargetMAchine/Sparc directory.  The Sparc.h file that is globally visible is just a stub.
3. The Sparc.h file that esxists now will dissapear entirely someday when we have multiple backends chosen by a factory of some sort.


NOTE! The BBLiveVar.cpp file dependant on the Sparc backend, and is therefore not generic/portale to other backends.  This needs to be fixed.

llvm-svn: 558
2001-09-14 03:37:22 +00:00
Chris Lattner
aa4e715da3 Updates to use local header files.
Note that this reverted changes that Ruchira commited that broke the build and
are unmaintainable without other checkins.

llvm-svn: 557
2001-09-14 03:33:32 +00:00
Chris Lattner
b6e1cc3118 More cleanups, preparing to revamp InstrForest to, among other things,
not leak all its allocated memory.

llvm-svn: 553
2001-09-12 16:34:03 +00:00
Chris Lattner
6ff8e8edce * Clean up InstrForest
* Fix ins sel problem, test case:
void "foo" (int *%x, int *%y)

begin
        seteq int *%x, %y
        ret void
end

llvm-svn: 552
2001-09-12 01:28:49 +00:00
Chris Lattner
8cbda4e314 Eliminate 'BasicNode' from InstrForest.
llvm-svn: 551
2001-09-11 23:52:11 +00:00
Chris Lattner
70439801a6 Eliminate MainTreeNode function
llvm-svn: 550
2001-09-11 23:22:43 +00:00
Chris Lattner
2a101815b4 Remove irrelevant gross K&R Cisms
llvm-svn: 549
2001-09-11 23:13:38 +00:00
Chris Lattner
277c7264f6 Handle subtract in expression classifier
llvm-svn: 548
2001-09-11 04:27:34 +00:00
Chris Lattner
836b03a509 Use the correct style casts
llvm-svn: 546
2001-09-10 20:12:04 +00:00
Chris Lattner
ea511697dd Use correct style casts
llvm-svn: 545
2001-09-10 20:11:44 +00:00
Chris Lattner
c5adfbc219 Use correct style casts
Types are not all constant now

llvm-svn: 544
2001-09-10 20:11:28 +00:00
Chris Lattner
2a4122b6b2 Use type checking predicates
llvm-svn: 543
2001-09-10 20:10:26 +00:00
Chris Lattner
9f96643e60 Use correct casts
llvm-svn: 542
2001-09-10 20:10:02 +00:00