Commit Graph

46272 Commits

Author SHA1 Message Date
Vikram S. Adve
a995e6086d Record implicitRefs for each machine instruction instead of
each VM instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@725 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-11 04:23:19 +00:00
Vikram S. Adve
8d0ffa553f Add graph edges due to implicit refs in each machine instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@724 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-11 04:22:45 +00:00
Vikram S. Adve
0193d5e58e Added a rule for building TAGS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@723 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 22:35:00 +00:00
Vikram S. Adve
7b70f3f086 Repeat some libs due to circular dependences between Sparc and other
code gen libraries.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@722 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 20:58:57 +00:00
Vikram S. Adve
6db77c55ff Don't insert useful instructions in delay slot of a RETURN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@721 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 20:58:11 +00:00
Vikram S. Adve
8557b226f3 Insert code to load constants used as Call or Return arguments.
Also, note return value of a Call as an "implicitUse".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@720 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 20:56:33 +00:00
Vikram S. Adve
a1d14f3555 Machine-independent code generation routines used in instruction
selection.  These used to live in several different places before.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@719 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 20:50:43 +00:00
Vikram S. Adve
593da4acc5 Moved code generation support routines to InstrSelectionSupport.{h,cpp}.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@718 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 20:50:20 +00:00
Vikram S. Adve
9aba1d3307 Moved code generation support routines to InstrSelectionSupport.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@717 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 20:49:07 +00:00
Vikram S. Adve
25e288fd92 Moved first function to "simpleadd.ll".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@716 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 20:12:15 +00:00
Vikram S. Adve
5a28f062b9 testmemory and sumarray now work with instruction selection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@715 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 20:10:48 +00:00
Ruchira Sasanka
0e986d7d28 --removed %g regs being allocated - fix later
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@714 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-09 23:36:13 +00:00
Chris Lattner
b79757c621 Add hack to get rid of malloc & free instructions for code generation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@713 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-04 01:40:53 +00:00
Chris Lattner
43efcbf561 Add comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@712 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 19:35:57 +00:00
Chris Lattner
8921983734 Support multiple global's definitions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@711 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 19:35:04 +00:00
Chris Lattner
4387370c1c Factor parentness out of Module & GlobalVariable into GlobalValue
Implement SymbolTable debug/dump utility


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@710 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 19:28:15 +00:00
Chris Lattner
6a57baa295 Rename getNullPointer to getNull
Allow sharing of null pointer constants


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@709 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 15:39:36 +00:00
Chris Lattner
d535c2d163 Rename getNullPointer to getNull
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@708 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 15:39:24 +00:00
Chris Lattner
b747451c9c Allow duplicate constant values as long as they are compatible.
Clean up stuff a little bit with inMethod/ModuleContext functions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@707 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 15:39:04 +00:00
Chris Lattner
7323c69a31 Share ConstPoolPointer elements correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@706 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 15:38:36 +00:00
Chris Lattner
a861f966fd Fix broken testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@705 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 14:59:11 +00:00
Chris Lattner
b973dd75ba Add check to make sure that we dont reference MEthodType's directly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@704 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 14:59:05 +00:00
Chris Lattner
ef9c23f281 * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@703 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 14:53:21 +00:00
Chris Lattner
da25716296 Adjust test cases to match the fact that methods are now explicit pointer values, not explicit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@702 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 14:50:12 +00:00
Chris Lattner
f4ba6c710c First try at a horrible global value reference wrapper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@701 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 06:12:09 +00:00
Chris Lattner
d05adbcdce 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@700 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 03:19:33 +00:00
Chris Lattner
df7306f1b9 * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@699 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 01:49:25 +00:00
Chris Lattner
fe5e584cd9 Modify testcases for new LLVM const syntax
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@698 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 01:48:04 +00:00
Chris Lattner
b00c582b6d Commit more code over to new cast style
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@697 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-02 03:41:24 +00:00
Chris Lattner
1d87bcf490 Convert more code to use new style casts
Eliminate old style casts from value.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@696 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 20:11:19 +00:00
Chris Lattner
cfe26c930a Add more support for new style casts
Convert more code to use them


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@695 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 18:26:53 +00:00
Chris Lattner
9636a91649 Add support for new style casts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@694 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 16:18:37 +00:00
Chris Lattner
7295eb4ea3 Add support for newer cleaner isa, cast, dyn_cast
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@693 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 13:58:13 +00:00
Chris Lattner
6bad546c2a Update comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@692 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 13:34:22 +00:00
Chris Lattner
f0604b84c7 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@691 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 13:19:53 +00:00
Chris Lattner
711774e169 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.

Also pull Interval stuff into the Interval class out of the global namespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@690 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 13:19:41 +00:00
Chris Lattner
a9a090b483 Comment out a paragraph that refers to a file that no longer exists
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@689 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 13:18:35 +00:00
Chris Lattner
39f501ca41 Fix emission of return instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@688 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 02:32:34 +00:00
Chris Lattner
19f8623416 Add path to as so it doesn't find llvm as if that path is set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@687 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 00:50:36 +00:00
Chris Lattner
f0d2676ee5 Exclude a couple of tests that the regalloc stuff doesn't handle yet
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@686 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 00:40:49 +00:00
Vikram S. Adve
fd0336e345 Add different "cast constant value" for several possible types.
Note these are actually generated by Phis with constant operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@685 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 00:23:12 +00:00
Vikram S. Adve
2a97dd1fc3 Add vector `implicitUses' to class MachineCodeForVMInstr to hold values
that are used by the VM instruction but not explicit operands of the
m/c instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@684 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 00:18:12 +00:00
Vikram S. Adve
4cecdd206e 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".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@683 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 00:12:53 +00:00
Ruchira Sasanka
71939033de removing phy regaloc - incorrect file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@682 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-30 23:52:14 +00:00
Vikram S. Adve
6e64ef4008 Change latency of setuw and setsw to 2 cycles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@681 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-30 23:46:57 +00:00
Vikram S. Adve
64c2cedd66 Change ! ( ...== ...) to !=.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@680 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-30 23:45:08 +00:00
Vikram S. Adve
e949da5bb1 Improved dump for disp type operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@679 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-30 23:44:19 +00:00
Vikram S. Adve
c5b4632c27 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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@678 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-30 23:43:34 +00:00
Vikram S. Adve
4a87b38ba9 Minor changes for bug fixes in SchedGraph.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@677 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-30 23:37:26 +00:00
Vikram S. Adve
5316f8fa2f 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)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@676 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-30 23:36:58 +00:00