- Jan 01, 2007
-
-
Reid Spencer authored
This serves as a test of that feature. llvm-svn: 32806
-
Reid Spencer authored
llvm-svn: 32805
-
Reid Spencer authored
Remove useless bitcasts by commenting them out. llvm-svn: 32804
-
- Dec 31, 2006
-
-
Reid Spencer authored
llvm-svn: 32803
-
Reid Spencer authored
llvm_uint_ty or llvm_int_ty. Similarly for i8, i16 and i64 llvm-svn: 32802
-
Reid Spencer authored
The lookup of parameter attributes was offset by two because of the additional operands in an invoke instruction. llvm-svn: 32801
-
Reid Spencer authored
llvm-svn: 32800
-
Reid Spencer authored
llvm-svn: 32799
-
Reid Spencer authored
llvm-svn: 32798
-
Reid Spencer authored
conventions as these have been replaced with parameter attributes. llvm-svn: 32797
-
Reid Spencer authored
llvm-svn: 32796
-
Rafael Espindola authored
patch by Lauro bug fixed by me llvm-svn: 32795
-
Reid Spencer authored
index passed in was out of range for the number of parameter attributes set. llvm-svn: 32794
-
Reid Spencer authored
llvm-svn: 32793
-
Reid Spencer authored
llvm-svn: 32792
-
Reid Spencer authored
Update for signless integer types: 1. Replace [us]byte with i8 2. Replace [u]short with i16 3. Replace [u]int with i32 4. Replace [u]long with i64 5. Document the "define" keyword and use it in all examples. 6. Document parameter attributes and how they affect function types. llvm-svn: 32791
-
Reid Spencer authored
Convert signed integer types to signless. llvm-svn: 32790
-
Reid Spencer authored
Update the test suite to accommodate the change from signed integer types to signless integer types. The changes were of only a few kinds: 1. Make sure llvm-upgrade is run on the source which does the bulk of the changes automatically. 2. Change things like "grep 'int'" to "grep 'i32'" 3. In several tests bitcasting caused the same name to be reused in the same type plane. These had to be manually fixed. The fix was (generally) to leave the bitcast and provide the instruction with a new name. This should not affect the semantics of the test. In a few cases, the bitcasts were known to be superfluous and irrelevant to the test case so they were removed. 4. One test case uses a bytecode file which needed to be updated to the latest bytecode format. llvm-svn: 32789
-
Reid Spencer authored
Three changes: 1. Convert signed integer types to signless versions. 2. Implement the @sext and @zext parameter attributes. Previously the type of an function parameter was used to determine whether it should be sign extended or zero extended before the call. This information is now communicated via the function type's parameter attributes. 3. The interface to LowerCallTo had to be changed in order to accommodate the parameter attribute information. Although it would have been convenient to pass in the FunctionType itself, there isn't always one present in the caller. Consequently, a signedness indication for the result type and for each parameter was provided for in the interface to this method. All implementations were changed to make the adjustment necessary. llvm-svn: 32788
-
Reid Spencer authored
Convert signed integer types to signless ones. llvm-svn: 32787
-
Reid Spencer authored
Convert signed integer types to signless. llvm-svn: 32786
-
Reid Spencer authored
This patch replaces signed integer types with signless ones: 1. [US]Byte -> Int8 2. [U]Short -> Int16 3. [U]Int -> Int32 4. [U]Long -> Int64. 5. Removal of isSigned, isUnsigned, getSignedVersion, getUnsignedVersion and other methods related to signedness. In a few places this warranted identifying the signedness information from other sources. llvm-svn: 32785
-
Reid Spencer authored
Don't attempt to parse both the old and new grammars. It is near impossible to get it right. Remove support for the new define keyword and don't attempt to insert parameter attributes because there isn't enough contextual information for it. llvm-svn: 32784
-
Reid Spencer authored
Update for signless integer types and parameter attribute implementation. Of significant note: 1. This changes the bytecode format yet again. 2. There are 1/2 as many integer type planes (this is a good thing) 3. GEP indices now use only 1 bit to identify their type which means more GEP instructions won't be relegated to format 0 (size win) 4. Parameter attributes are implemented but currently being stored verbosely for each function type. Some other day this needs to be optimized for size. llvm-svn: 32783
-
Reid Spencer authored
Regenerate llvm-svn: 32782
-
Reid Spencer authored
Major reorganization. This patch introduces the signedness changes for the new integer types (i8, i16, i32, i64) which replace the old signed versions (ubyte, sbyte, ushort, short, etc). This patch also implements the function type parameter attributes feature. Together these conspired to introduce new reduce/reduce errors into the grammar. Consequently, it was necessary to introduce a new keyword into the grammar in order to disambiguate. Without this, yacc would make incorrect shift/reduce and reduce/reduce decisions and fail to parse the intended assembly. Changes in assembly: 1. The "implementation" keyword is superfluous but still supported. You can use it as a sentry which will ensure there are no remaining up reference types. However, this is optional as those checks are also performed elsewhere. 2. Parameter attributes are now implemented using an at sign to indicate the attribute. The attributes are placed after the type in a function declaration or after the argument value in a function call. For example: i8 @sext %myfunc(i16 @zext) call i8 @sext %myfunc(i16 @zext %someVal) The facility is available for supporting additional attributes and they can be combined using the @(attr1,attr2,attr3) syntax. Right now the only two supported are @sext and @zext 3. Functions must now be defined with the "define" keyword which is analagous to the "declare" keyword for function declarations. The introduction of this keyword disambiguates situations where a named result type is confused with a new type or gvar definition. For example: %MyType = type i16 %MyType %func(%MyType) { ... } With the introduction of optional parameter attributes between the function name and the function result type, yacc will pick the wrong rule to reduce unless it is disambiguated with "define" before the function definition, as in: define %MyType @zext %func(%MyType %someArg) { ... } llvm-svn: 32781
-
Reid Spencer authored
Change signed integer type names to unsigned equivalents. llvm-svn: 32780
-
Reid Spencer authored
Implement signless integer types and FunctionType parameter attributes. llvm-svn: 32779
-
Reid Spencer authored
* Change integer type name from signed to signless * Implement printing of FunctionType parameter attributes. llvm-svn: 32778
-
Reid Spencer authored
Change integer type names for signless integer types llvm-svn: 32777
-
Reid Spencer authored
Add a new feature to FunctionType, Parameter Attributes. This allows tags such as "sext" and "zext" to be associated with a faunction's arguments or return type. This allows signedness information to be carried forward from the frontend to the backend for arguments and result types. llvm-svn: 32776
-
Reid Spencer authored
Make integer types signless: Rename [US]Byte->Int8, [U]Short->Int16, [U]Int->Int32, [U]Long->Int64 Remove methods pertaining to sign of integer types. llvm-svn: 32775
-
Nick Lewycky authored
llvm-svn: 32774
-
- Dec 30, 2006
-
-
Reid Spencer authored
depend on the compiler. This works around problems in the Stacker runtime when the CFE changes in such a way that the assembly file needs to be updated. llvm-svn: 32773
-
- Dec 29, 2006
-
-
Reid Spencer authored
llvm-svn: 32772
-
Reid Spencer authored
Fix several bugs and update for new assembly syntax. Changes made include: 1. Fixing rules for icmp/fcmp instructions to not require a closing paren at the end. This was a cut-and-paste error from a previous commit. 2. Changing things like Out << " " to Out << ' ' 3. Adding the "define" keyword for function definitions 4. Adding support for packed structures llvm-svn: 32771
-
Reid Spencer authored
Remove all grammar conflicts from assembly parsing. This change involves: 1. Making the "type" keyword not a primitive type (removes several reduce/reduce conflicts) 2. Being more specific about which linkage types are allowed for functions and global variables. In particular "appending" can no longer be specified for a function. A differentiation was made between the various internal and external linkage types. 3. Introduced the "define" keyword which is now required when defining a function. This disambiguates several cases where a named function return type could get confused with the definition of a new type. Using the keyword eliminates all shift/reduce conflicts and the remaining reduce/reduce conflicts. These changes are necessary to implement the function parameter attributes that will be introduced soon. Adding the function parameter attributes in the presence of the shift/reduce and reduce/reduce conflicts led to severe ambiguities that caused the parser to report syntax errors that needed to be resolved. This patch resolves them. llvm-svn: 32770
-
Reid Spencer authored
llvm-svn: 32769
-
Reid Spencer authored
for upcoming changes to the llvm assembly grammar. llvm-svn: 32768
-
Rafael Espindola authored
llvm-svn: 32767
-