Chris Lattner
b99f479f71
Add a better comment to explain what is going on.
...
llvm-svn: 2139
2002-04-07 08:31:26 +00:00
Chris Lattner
a815ded431
Remove debugging code accidentally checked in!
...
llvm-svn: 2137
2002-04-07 08:13:29 +00:00
Chris Lattner
1b3437405b
Add support for hexadecimal FP constants!
...
llvm-svn: 2135
2002-04-07 08:10:41 +00:00
Chris Lattner
e2f2f54f0c
s/MethodType/FunctionType
...
llvm-svn: 2115
2002-04-04 22:19:18 +00:00
Chris Lattner
30752bd910
* Make PATypeHolder not take a type argument
...
* Eliminate by inlining the old newTH, newTH, and TypeDone functions
* OPAQUE is now just a token that gets returned by the lexer, not a type
Parser now creates type, not lexer
llvm-svn: 2104
2002-04-04 19:23:55 +00:00
Chris Lattner
f269b9d236
Lexer doesn't create typehandle gross stuff now, parser does.
...
llvm-svn: 2103
2002-04-04 19:22:17 +00:00
Chris Lattner
041468ff3f
* Fix nondeleted type handle which could cause type pool corruption (and
...
a memory leak)
* Fix memory leak of Argument nodes on function prototypes
llvm-svn: 2065
2002-03-31 07:16:49 +00:00
Chris Lattner
57698e2c0b
Change references from Method to Function
...
change references from MethodARgument to FunctionArgument
llvm-svn: 1991
2002-03-26 18:01:55 +00:00
Chris Lattner
1a8ea8ae4f
Implement TODO for better diagnostic output
...
llvm-svn: 1859
2002-03-11 22:12:39 +00:00
Chris Lattner
108308aa91
Fix bug: test/Regression/2002-03-08-NameCollision2.ll
...
llvm-svn: 1839
2002-03-08 19:11:42 +00:00
Chris Lattner
f7bfab5624
Fix minor memory leak
...
llvm-svn: 1837
2002-03-08 18:57:56 +00:00
Chris Lattner
29f6709c3a
Fix for: test/Regression/Assembler/2002-03-08-NameCollision.ll
...
llvm-svn: 1836
2002-03-08 18:41:32 +00:00
Chris Lattner
ee6f2affbe
Close input file if exception is thrown
...
llvm-svn: 1784
2002-02-20 18:06:43 +00:00
Chris Lattner
8280bf59e0
Change to verifier interface
...
llvm-svn: 1782
2002-02-20 17:56:02 +00:00
Chris Lattner
7f74a56e24
Changes to build successfully with GCC 3.02
...
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Chris Lattner
ef99d3c144
* Fix cases where we were calling Type->getName() instead of Type->getDescription()
...
* Remove unsized array support
* Malloc/alloca do not require that the first element be an unsized array to be an
array allocation
llvm-svn: 1458
2001-12-14 16:28:42 +00:00
Chris Lattner
1366b3019e
Allow hyphens in identifier names
...
llvm-svn: 1409
2001-12-04 04:31:30 +00:00
Chris Lattner
2413b160ec
Renamed inst_const_iterator -> const_inst_iterator
...
Renamed op_const_iterator -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()
llvm-svn: 1408
2001-12-04 00:03:30 +00:00
Chris Lattner
3462ae3ad7
Rename ConstPoolVal -> Constant
...
Rename ConstPool* -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h
llvm-svn: 1407
2001-12-03 22:26:30 +00:00
Chris Lattner
fb5ae02e1a
Split the PHINode class out from the iOther.h file into the iPHINode.h file
...
llvm-svn: 1405
2001-12-03 18:02:31 +00:00
Chris Lattner
5de2204fe8
Create a new #include "Support/..." directory structure to move things
...
from "llvm/Support/..." that are not llvm dependant.
Move files and fix #includes
llvm-svn: 1400
2001-11-27 00:03:19 +00:00
Chris Lattner
841d8b9e50
Implement support for internal methods
...
llvm-svn: 1373
2001-11-26 18:54:16 +00:00
Chris Lattner
476148f95a
Implement array indexing with uints
...
llvm-svn: 1336
2001-11-26 16:54:11 +00:00
Chris Lattner
f29b231c77
Improve some debugging code
...
llvm-svn: 1088
2001-11-02 07:46:26 +00:00
Chris Lattner
50f68acb37
Support floating point numbers in expodential form so that small numbers don't get truncated, which broke the health benchmark
...
llvm-svn: 1087
2001-11-01 22:06:08 +00:00
Chris Lattner
adb4dbaef3
Negative FP constants... whodathunkit.
...
llvm-svn: 963
2001-10-23 04:13:01 +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
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
28a63e2972
Fix bug caused by:
...
%list = type opaque
%list = type %list
llvm-svn: 931
2001-10-21 21:43:25 +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
Chris Lattner
322e49aa36
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
Chris Lattner
162ed4d6cc
Rename ConstPoolPointerReference to ConstPoolPointerRef - My fingers get tired typing that much
...
llvm-svn: 822
2001-10-15 13:21:42 +00:00
Chris Lattner
f26e0d9ffe
* 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
930f610ea5
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
fc4c5040aa
Remove exception specification
...
llvm-svn: 756
2001-10-13 06:37:27 +00:00
Chris Lattner
3d4b290757
Support the new Invoke instruction
...
llvm-svn: 755
2001-10-13 06:37:14 +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
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
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
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
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
fbdec250b3
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
bb09a10929
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
e2c8d43e1d
Remove the unsized array constraint
...
llvm-svn: 599
2001-09-18 04:38:32 +00:00
Chris Lattner
7fb14f54f8
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
Chris Lattner
8ad45e8101
Update to use correct type cast
...
llvm-svn: 536
2001-09-10 20:08:08 +00:00
Chris Lattner
da9755002f
Implement global variable support
...
llvm-svn: 530
2001-09-10 07:58:01 +00:00
Chris Lattner
aa534bf195
* Add support for forward referencing types
...
* Add support for upreferences for recursive types
* Remove support for ConstantPool.h
* Add support for globally unique Constants
* Add support for the opaque type
llvm-svn: 446
2001-09-07 16:35:17 +00:00
Chris Lattner
c7805c7d71
Add support for forward referencing types
...
llvm-svn: 445
2001-09-07 16:33:01 +00:00
Chris Lattner
47af30c937
Add support for an opaque type
...
llvm-svn: 444
2001-09-07 16:32:43 +00:00
Chris Lattner
26e50dc0c3
* Enable the use of escaped literal strings
...
* Unresolved variable names now have the correct line number for their
error messages
* Rename Def* to Value*
* Check for symbol table collisions before inserting values
* Remove the STRING keyword
* Enable the use of string literals to initialize constant arrays
* Enable the use of extended constants in more locations: eg ret [int] [4, 5]
* Allow method prototypes to appear in the constant pool of the program
* Support varargs methods better. Enable varargs methods with 0 fixed
arguments
* Allow the entire method prototype to optionally be specified in a call inst
llvm-svn: 321
2001-07-28 17:48:55 +00:00
Chris Lattner
252afbaf33
Refactor some of the constant stuff so that we can return complex constant
...
values directly. This was causing test failures. :(
llvm-svn: 304
2001-07-26 16:29:15 +00:00
Chris Lattner
42b5a8a6e5
Add support for extern varargs methods & varargs method calls
...
Remove tool generated files
llvm-svn: 296
2001-07-25 22:47:46 +00:00
Chris Lattner
e2472bbf6c
Moved inline/llvm/Tools/* to include/llvm/Support/*
...
llvm-svn: 279
2001-07-23 17:46:59 +00:00
Chris Lattner
f2d1e79276
Remove dependence on command line library. Silly anyway.
...
llvm-svn: 271
2001-07-22 18:36:00 +00:00
Chris Lattner
1caf0bbd4e
Add a comment.
...
llvm-svn: 212
2001-07-20 19:15:08 +00:00
Chris Lattner
17f729e269
Implement forward/external declarations for methods. Also, emit an error if a method
...
is defined more than once, instead of crashing.
llvm-svn: 195
2001-07-15 06:35:53 +00:00
Chris Lattner
212f70d92e
Add support to the parser to recognize floating point constants
...
llvm-svn: 188
2001-07-15 00:17:01 +00:00
Chris Lattner
56f73d45f5
Added some comments, preparing to add global variables and method prototypes
...
llvm-svn: 179
2001-07-14 06:10:16 +00:00
Chris Lattner
d9c40e355e
Make sure that types go in the constant pool if they are used.
...
llvm-svn: 171
2001-07-09 19:38:36 +00:00
Chris Lattner
62ecb4a137
Implementation of Store & GetElementPtr
...
llvm-svn: 164
2001-07-08 23:22:50 +00:00
Chris Lattner
d8bebcd517
Implemented shl, shl, & load instructions
...
llvm-svn: 161
2001-07-08 21:10:27 +00:00
Chris Lattner
49c643262e
Moved Cast from being a Unary instruction to being an "Other" instruction
...
llvm-svn: 160
2001-07-08 19:03:27 +00:00
Chris Lattner
a682182f64
Neg instruction removed. Cast instruction implemented.
...
llvm-svn: 156
2001-07-08 04:57:15 +00:00
Chris Lattner
b1ca9cbceb
Broad superficial changes:
...
* Renamed getOpcode to getOpcodeName
* Changed getOpcodeName to return a const char * instead of string
* Added a getOpcode method to replace getInstType
* Changed code to use getOpcode instead of getInstType
llvm-svn: 152
2001-07-07 19:24:15 +00:00
Chris Lattner
37099990b3
Changed memory reference instructions to store the result as the implicit
...
type of the instruction.
llvm-svn: 148
2001-07-07 08:36:30 +00:00
Chris Lattner
4cee8d8ffb
Miscellaneous cleanups:
...
* Convert post to pre-increment for for loops
* Use generic programming more
* Use new Value::cast* instructions
* Use new Module, Method, & BasicBlock forwarding methods
* Use new facilities in STLExtras.h
* Use new Instruction::isPHINode() method
llvm-svn: 96
2001-06-27 23:41:11 +00:00
Chris Lattner
31e23cdeb4
Renamed get.*Operator to create seeing that it would have to be qualified
...
with the classname anyways.
llvm-svn: 74
2001-06-25 07:31:31 +00:00
Chris Lattner
931ef3bf05
Updates to support
...
* Changes in PHI node structure
* Change to PHI syntax
llvm-svn: 24
2001-06-11 15:04:20 +00:00
Chris Lattner
5f46e8c9da
Moved getBinaryOperator to the BinaryOperator class and the getUnaryOperator
...
to the UnaryOperator class (from the Instruction class).
llvm-svn: 21
2001-06-08 21:30:13 +00:00
Chris Lattner
2f7c963559
Initial revision
...
llvm-svn: 2
2001-06-06 20:29:01 +00:00