Skip to content
  1. Dec 31, 2006
    • Reid Spencer's avatar
      For PR950: · e63b6518
      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
      e63b6518
    • Reid Spencer's avatar
      For PR950: · 0d54e78a
      Reid Spencer authored
      Convert signed integer types to signless ones.
      
      llvm-svn: 32787
      0d54e78a
    • Reid Spencer's avatar
      For PR950: · c635f47d
      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
      c635f47d
    • Reid Spencer's avatar
      For PR950: · b46895bc
      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
      b46895bc
    • Reid Spencer's avatar
      For PR950: · 42f0cbe7
      Reid Spencer authored
      Regenerate
      
      llvm-svn: 32782
      42f0cbe7
    • Reid Spencer's avatar
      For PR950: · fa35bb3e
      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
      fa35bb3e
    • Reid Spencer's avatar
      For PR950: · 8d9336d0
      Reid Spencer authored
      Change signed integer type names to unsigned equivalents.
      
      llvm-svn: 32780
      8d9336d0
    • Reid Spencer's avatar
      For PR950: · b82ea535
      Reid Spencer authored
      Implement signless integer types and FunctionType parameter attributes.
      
      llvm-svn: 32779
      b82ea535
    • Reid Spencer's avatar
      For PR950: · 8c4914c1
      Reid Spencer authored
      * Change integer type name from signed to signless
      * Implement printing of FunctionType parameter attributes.
      
      llvm-svn: 32778
      8c4914c1
  2. Dec 29, 2006
    • Reid Spencer's avatar
      Regenerate. · dc0a3a2f
      Reid Spencer authored
      llvm-svn: 32772
      dc0a3a2f
    • Reid Spencer's avatar
      For PR950: · 7ce2d2a8
      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
      7ce2d2a8
    • Rafael Espindola's avatar
      fix comment · 64493fb3
      Rafael Espindola authored
      llvm-svn: 32767
      64493fb3
  3. Dec 28, 2006
  4. Dec 26, 2006
  5. Dec 24, 2006
    • Reid Spencer's avatar
      Cleanup ConstantFoldCompareInstruction: · 9d36acf9
      Reid Spencer authored
      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
      9d36acf9
    • Reid Spencer's avatar
      Fix some comments. · b1537497
      Reid Spencer authored
      llvm-svn: 32758
      b1537497
    • Reid Spencer's avatar
      For PR1066: · 193df25e
      Reid Spencer authored
      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
      193df25e
  6. Dec 23, 2006
  7. Dec 22, 2006
  8. Dec 21, 2006
  9. Dec 20, 2006
Loading