aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Expand SELECT (f32/f64) and FCOPYSIGN (f32/f64).Lauro Ramos Venancio2007-01-041-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32870 91177308-0d34-0410-b5e6-96231b3b80d8
* Death to useless bitcast instructions!Reid Spencer2007-01-041-33/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32866 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not allow packed types for icmp and fcmp instructions.Reid Spencer2007-01-041-5/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32865 91177308-0d34-0410-b5e6-96231b3b80d8
* Regenerate.Reid Spencer2007-01-042-27/+35
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32862 91177308-0d34-0410-b5e6-96231b3b80d8
* Disallow packed types in icmp/fcmp instructions. The code generator isReid Spencer2007-01-041-0/+4
| | | | | | | not prepared to handle them yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32861 91177308-0d34-0410-b5e6-96231b3b80d8
* Now that setcondinst has been eliminated, we can mark Value::SubclassIDChris Lattner2007-01-041-4/+0
| | | | | | | const and remove the ugly mutator methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32860 91177308-0d34-0410-b5e6-96231b3b80d8
* fix typoChris Lattner2007-01-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32859 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable a couple xforms for packed vectors (undef | v) -> -1 for packed.Chris Lattner2007-01-041-8/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32858 91177308-0d34-0410-b5e6-96231b3b80d8
* fix some bugs handling vectors, avoid host-specific handling of undefined ↵Chris Lattner2007-01-041-5/+15
| | | | | | shift results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32857 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new ConstantPacked::getAllOnesValue methodChris Lattner2007-01-041-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32856 91177308-0d34-0410-b5e6-96231b3b80d8
* Regenerate.Reid Spencer2007-01-042-155/+149
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32853 91177308-0d34-0410-b5e6-96231b3b80d8
* Permit icmp and fcmp to have packed operands.Reid Spencer2007-01-041-5/+2
| | | | | | | Make an error message a little more useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32852 91177308-0d34-0410-b5e6-96231b3b80d8
* The previous implementation of LLVM Streams wasn't removing symbols. ThisBill Wendling2007-01-032-2/+2
| | | | | | | one should. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32845 91177308-0d34-0410-b5e6-96231b3b80d8
* fix testcase. It's not safe to strictly evaluate a load that should be lazy.Chris Lattner2007-01-031-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32842 91177308-0d34-0410-b5e6-96231b3b80d8
* Private labels start with .L on linux, not just .Chris Lattner2007-01-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32841 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a comment that referred to the now defunct ubyte type.Reid Spencer2007-01-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32840 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove two useless bit casts.Reid Spencer2007-01-031-6/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32839 91177308-0d34-0410-b5e6-96231b3b80d8
* Legalizer doesn't do an ANY_EXTEND if we don't ask for one so make sureReid Spencer2007-01-031-1/+1
| | | | | | | | that we default to an ANY_EXTEND if no parameter attribute is set on the result value of a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32836 91177308-0d34-0410-b5e6-96231b3b80d8
* NULL names should pass validation.Jim Laskey2007-01-031-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32835 91177308-0d34-0410-b5e6-96231b3b80d8
* Silence warning.Jim Laskey2007-01-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32834 91177308-0d34-0410-b5e6-96231b3b80d8
* Really big cleanup.Anton Korobeynikov2007-01-0310-24/+33
| | | | | | | | | | | | - New target type "mingw" was introduced - Same things for both mingw & cygwin are marked as "cygming" (as in gcc) - .lcomm is supported here, so allow LLVM to use it - Correctly use underscored versions of setjmp & _longjmp for both mingw & cygwin git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32833 91177308-0d34-0410-b5e6-96231b3b80d8
* Restore previous behavior of defaulting to ZEXT. This works around twoReid Spencer2007-01-031-7/+2
| | | | | | | | | things: (1) preventing PR1071 and (2) working around missing parameter attributes for bool type. (2) will be fixed shortly. When PR1071 is fixed, this patch should be undone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32831 91177308-0d34-0410-b5e6-96231b3b80d8
* Two changes:Reid Spencer2007-01-031-5/+12
| | | | | | | | | | | | 1. Switch expression and cases are compared signed and are sign extended. 2. For function results needing extended, do SIGN_EXTEND if the SExtAttribute is set and ZERO_EXTEND if the ZExtAttribute is set, otherwise just let the Legalizer do ANY_EXTEND. This fixes the recent regression in kimwitu++ and probably the llvm-gcc bootstrap issue we had today. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32830 91177308-0d34-0410-b5e6-96231b3b80d8
* Clean up from recent changes. Comment the new parameter to ExpandLibCall.Reid Spencer2007-01-031-24/+20
| | | | | | | Consolidate some lines of code and remove duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32829 91177308-0d34-0410-b5e6-96231b3b80d8
* Vectors are not supported by ConstantInt::getAllOnesValue.Jim Laskey2007-01-031-5/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32827 91177308-0d34-0410-b5e6-96231b3b80d8
* Regenerate.Reid Spencer2007-01-023-267/+385
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32825 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement checking for unresolved types in the argument types and resultReid Spencer2007-01-021-0/+59
| | | | | | | | type of function definitions. This fixes test/Regression/Assember/2007-01-02-Undefined-Arg-Type.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32824 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix naming inconsistency.Evan Cheng2007-01-0212-57/+57
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32823 91177308-0d34-0410-b5e6-96231b3b80d8
* - Fixing naming inconsistency: calleesave -> calleesaved.Evan Cheng2007-01-021-24/+30
| | | | | | | - Make use of spillCalleeSavedRegisters() and restoreCalleeSavedRegisters(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32822 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a typo.Reid Spencer2006-12-311-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32803 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a cut-and-paste bug for processing of InvokeInst parameter attributes.Reid Spencer2006-12-311-2/+2
| | | | | | | | The lookup of parameter attributes was offset by two because of the additional operands in an invoke instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32801 91177308-0d34-0410-b5e6-96231b3b80d8
* Regenerate.Reid Spencer2006-12-312-32/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32800 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove an extra semi-colon.Reid Spencer2006-12-311-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32799 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in comparison of GEP indices.Reid Spencer2006-12-311-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32798 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a missing colon. Noticed by Jeff Cohen.Reid Spencer2006-12-311-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32796 91177308-0d34-0410-b5e6-96231b3b80d8
* implement missing comparesRafael Espindola2006-12-312-38/+67
| | | | | | | | patch by Lauro bug fixed by me git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32795 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in getParamAttrs where an invalid value would be returned if theReid Spencer2006-12-311-3/+3
| | | | | | | index passed in was out of range for the number of parameter attributes set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32794 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR950:Reid Spencer2006-12-3118-343/+288
| | | | | | | | | | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32788 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR950:Reid Spencer2006-12-314-498/+346
| | | | | | | Convert signed integer types to signless ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32787 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR950:Reid Spencer2006-12-3132-521/+400
| | | | | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32785 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR950:Reid Spencer2006-12-313-57/+44
| | | | | | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32783 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR950:Reid Spencer2006-12-316-2863/+3193
| | | | | | | Regenerate git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32782 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR950:Reid Spencer2006-12-312-253/+413
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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) { ... } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32781 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR950:Reid Spencer2006-12-317-134/+79
| | | | | | | Change signed integer type names to unsigned equivalents. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32780 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR950:Reid Spencer2006-12-311-98/+90
| | | | | | | Implement signless integer types and FunctionType parameter attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32779 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR950:Reid Spencer2006-12-311-16/+49
| | | | | | | | * Change integer type name from signed to signless * Implement printing of FunctionType parameter attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32778 91177308-0d34-0410-b5e6-96231b3b80d8
* Regenerate.Reid Spencer2006-12-295-2370/+2394
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32772 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR950:Reid Spencer2006-12-293-77/+82
| | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32770 91177308-0d34-0410-b5e6-96231b3b80d8
* fix commentRafael Espindola2006-12-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32767 91177308-0d34-0410-b5e6-96231b3b80d8
* Define StaticCtorsSection and StaticDtorsSection for ARM.Lauro Ramos Venancio2006-12-281-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32763 91177308-0d34-0410-b5e6-96231b3b80d8