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