165389 Commits

Author SHA1 Message Date
Chris Lattner
6a69c69cbf Add support for indirect calls
llvm-svn: 742
2001-10-13 06:23:14 +00:00
Chris Lattner
602c3c6533 Add some casts to make GCC 2.96 happy.
llvm-svn: 741
2001-10-13 06:20:07 +00:00
Chris Lattner
107c57093e Add use_back() methods
llvm-svn: 740
2001-10-13 06:18:19 +00:00
Chris Lattner
347dad3c70 Add classof implementations for User
llvm-svn: 739
2001-10-13 06:18:05 +00:00
Chris Lattner
bd71b7f4ec Expose typedefs
llvm-svn: 738
2001-10-13 06:17:50 +00:00
Chris Lattner
bdc7ff5416 Add support for module local constants
llvm-svn: 737
2001-10-13 06:17:32 +00:00
Chris Lattner
56ee34b782 Add new opcode for Invoke instruction
llvm-svn: 736
2001-10-13 06:15:20 +00:00
Chris Lattner
51499227a3 Minor changes, add new ctor for invoke instruction
llvm-svn: 735
2001-10-13 06:14:53 +00:00
Chris Lattner
c6b801adbc Add assertions
llvm-svn: 734
2001-10-13 06:12:38 +00:00
Chris Lattner
48e6a052c7 * Minor Formatting changes.
* MethodType now takes an explicit isVarArg arg instead of an implicit
  voidTy on the argument list

llvm-svn: 733
2001-10-13 06:12:30 +00:00
Chris Lattner
b7420043d6 * Add destroyConstant stuff to handle module local constants
* Add classof implementations for more ConstPoolVal subclasses
* Pull null pointer implementation stuff out of ConstPoolPointer into
  a subclass ConstPoolPointerNull
* Implement ConstPoolPointerReference correctly and completely

llvm-svn: 732
2001-10-13 06:11:10 +00:00
Chris Lattner
0b6c38d98f Update todo's
llvm-svn: 731
2001-10-13 06:09:34 +00:00
Chris Lattner
1fd501fff5 Each tools should not make tags
llvm-svn: 730
2001-10-13 05:10:29 +00:00
Ruchira Sasanka
7c10e086eb --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
04009efe48 added support for implict operands in machine instruction
llvm-svn: 728
2001-10-12 17:47:23 +00:00
Ruchira Sasanka
85cc5744ba --added support for implicit operands in machine instructions
llvm-svn: 727
2001-10-12 17:46:27 +00:00
Vikram S. Adve
e483768174 Delete *.s on clean.
llvm-svn: 726
2001-10-11 04:24:10 +00:00
Vikram S. Adve
8aeb09fcc7 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
1235b330f7 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
fa9dc58c9e Added a rule for building TAGS.
llvm-svn: 723
2001-10-10 22:35:00 +00:00
Vikram S. Adve
c524e1c714 Repeat some libs due to circular dependences between Sparc and other
code gen libraries.

llvm-svn: 722
2001-10-10 20:58:57 +00:00
Vikram S. Adve
d50b665acf 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
021d523b2f 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
192686db96 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
a6d08b5f4c Moved code generation support routines to InstrSelectionSupport.{h,cpp}.
llvm-svn: 718
2001-10-10 20:50:20 +00:00
Vikram S. Adve
c36a504cfe Moved code generation support routines to InstrSelectionSupport.cpp.
llvm-svn: 717
2001-10-10 20:49:07 +00:00
Vikram S. Adve
cd23d1d9bd Moved first function to "simpleadd.ll".
llvm-svn: 716
2001-10-10 20:12:15 +00:00
Vikram S. Adve
96654a04db testmemory and sumarray now work with instruction selection.
llvm-svn: 715
2001-10-10 20:10:48 +00:00
Ruchira Sasanka
990d8fb3e8 --removed %g regs being allocated - fix later
llvm-svn: 714
2001-10-09 23:36:13 +00:00
Chris Lattner
b27d474201 Add hack to get rid of malloc & free instructions for code generation
llvm-svn: 713
2001-10-04 01:40:53 +00:00
Chris Lattner
78326d20c5 Add comment
llvm-svn: 712
2001-10-03 19:35:57 +00:00
Chris Lattner
e504b4395b Support multiple global's definitions
llvm-svn: 711
2001-10-03 19:35:04 +00:00
Chris Lattner
2503325027 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
883ad0b352 Rename getNullPointer to getNull
Allow sharing of null pointer constants

llvm-svn: 709
2001-10-03 15:39:36 +00:00
Chris Lattner
ad95d1d12f Rename getNullPointer to getNull
llvm-svn: 708
2001-10-03 15:39:24 +00:00
Chris Lattner
fb3e54940b 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
5950852469 Share ConstPoolPointer elements correctly
llvm-svn: 706
2001-10-03 15:38:36 +00:00
Chris Lattner
f208dcfa2b Fix broken testcase
llvm-svn: 705
2001-10-03 14:59:11 +00:00
Chris Lattner
28807801be 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
7fac070215 * 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
23356658b3 Adjust test cases to match the fact that methods are now explicit pointer values, not explicit
llvm-svn: 702
2001-10-03 14:50:12 +00:00
Chris Lattner
60e0dd78b2 First try at a horrible global value reference wrapper
llvm-svn: 701
2001-10-03 06:12:09 +00:00
Chris Lattner
e63ddd8df7 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
571a6b07b6 * 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
02a9c0a081 Modify testcases for new LLVM const syntax
llvm-svn: 698
2001-10-03 01:48:04 +00:00
Chris Lattner
da55810666 Commit more code over to new cast style
llvm-svn: 697
2001-10-02 03:41:24 +00:00
Chris Lattner
3856934386 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
8f19112923 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
4b717c0edc Add support for new style casts
llvm-svn: 694
2001-10-01 16:18:37 +00:00
Chris Lattner
222b1f5775 Add support for newer cleaner isa, cast, dyn_cast
llvm-svn: 693
2001-10-01 13:58:13 +00:00