| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
|  | 
llvm-svn: 32859
 | 
| | 
| 
| 
|  | 
llvm-svn: 32858
 | 
| | 
| 
| 
| 
| 
|  | 
shift results.
llvm-svn: 32857
 | 
| | 
| 
| 
|  | 
llvm-svn: 32856
 | 
| | 
| 
| 
|  | 
llvm-svn: 32853
 | 
| | 
| 
| 
| 
| 
|  | 
Make an error message a little more useful.
llvm-svn: 32852
 | 
| | 
| 
| 
| 
| 
|  | 
one should.
llvm-svn: 32845
 | 
| | 
| 
| 
|  | 
llvm-svn: 32842
 | 
| | 
| 
| 
|  | 
llvm-svn: 32841
 | 
| | 
| 
| 
|  | 
llvm-svn: 32840
 | 
| | 
| 
| 
|  | 
llvm-svn: 32839
 | 
| | 
| 
| 
| 
| 
| 
|  | 
that we default to an ANY_EXTEND if no parameter attribute is set on the
result value of a function.
llvm-svn: 32836
 | 
| | 
| 
| 
|  | 
llvm-svn: 32835
 | 
| | 
| 
| 
|  | 
llvm-svn: 32834
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
- 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
llvm-svn: 32833
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
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.
llvm-svn: 32831
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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.
llvm-svn: 32830
 | 
| | 
| 
| 
| 
| 
|  | 
Consolidate some lines of code and remove duplication.
llvm-svn: 32829
 | 
| | 
| 
| 
|  | 
llvm-svn: 32827
 | 
| | 
| 
| 
|  | 
llvm-svn: 32825
 | 
| | 
| 
| 
| 
| 
| 
|  | 
type of function definitions.
This fixes test/Regression/Assember/2007-01-02-Undefined-Arg-Type.ll
llvm-svn: 32824
 | 
| | 
| 
| 
|  | 
llvm-svn: 32823
 | 
| | 
| 
| 
| 
| 
|  | 
- Make use of spillCalleeSavedRegisters() and restoreCalleeSavedRegisters().
llvm-svn: 32822
 | 
| | 
| 
| 
|  | 
llvm-svn: 32803
 | 
| | 
| 
| 
| 
| 
| 
|  | 
The lookup of parameter attributes was offset by two because of the
additional operands in an invoke instruction.
llvm-svn: 32801
 | 
| | 
| 
| 
|  | 
llvm-svn: 32800
 | 
| | 
| 
| 
|  | 
llvm-svn: 32799
 | 
| | 
| 
| 
|  | 
llvm-svn: 32798
 | 
| | 
| 
| 
|  | 
llvm-svn: 32796
 | 
| | 
| 
| 
| 
| 
| 
|  | 
patch by Lauro
bug fixed by me
llvm-svn: 32795
 | 
| | 
| 
| 
| 
| 
|  | 
index passed in was out of range for the number of parameter attributes set.
llvm-svn: 32794
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
|  | 
Convert signed integer types to signless ones.
llvm-svn: 32787
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
|  | 
Regenerate
llvm-svn: 32782
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
|  | 
Change signed integer type names to unsigned equivalents.
llvm-svn: 32780
 | 
| | 
| 
| 
| 
| 
|  | 
Implement signless integer types and FunctionType parameter attributes.
llvm-svn: 32779
 | 
| | 
| 
| 
| 
| 
| 
|  | 
* Change integer type name from signed to signless
* Implement printing of FunctionType parameter attributes.
llvm-svn: 32778
 | 
| | 
| 
| 
|  | 
llvm-svn: 32772
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
|  | 
llvm-svn: 32767
 | 
| | 
| 
| 
|  | 
llvm-svn: 32763
 | 
| | 
| 
| 
|  | 
llvm-svn: 32762
 | 
| | 
| 
| 
| 
| 
|  | 
bug noticed by Lauro
llvm-svn: 32761
 | 
| | 
| 
| 
| 
| 
|  | 
arm.
llvm-svn: 32760
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
1. Make the arguments const like the other ConstantFold* functions.
2. Clean up evaluateFCmpRelation so it makes sense for floating point.
3. Implement the use of evaluateFCmpRelation to fold floating point CEs
4. Shorten a variable name so more things fit on one line.
5. Fix various comments.
llvm-svn: 32759
 | 
| | 
| 
| 
|  | 
llvm-svn: 32758
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Fix this by ensuring that a bitcast is inserted to do sign switching. This
is only temporarily needed as the merging of signed and unsigned is next
on the SignlessTypes plate.
llvm-svn: 32757
 |