Skip to content
  1. Jan 14, 2008
  2. Jan 13, 2008
  3. Jan 12, 2008
  4. Jan 11, 2008
    • Duncan Sands's avatar
      Do not allow attributes beyond a function's last · b99f44aa
      Duncan Sands authored
      parameter, even if it is a varargs function.  Do
      allow attributes on the varargs part of a call,
      but not beyond the last argument.  Only allow
      selected attributes to be on the varargs part of
      a call (currently only 'byval' is allowed).  The
      reasoning here is that most attributes, eg inreg,
      simply make no sense here.
      
      llvm-svn: 45887
      b99f44aa
    • Chris Lattner's avatar
      Teach argpromote to ruthlessly hack small byval structs when it can · b5bd924e
      Chris Lattner authored
      get away with it, which exposes opportunities to eliminate the memory
      objects entirely.  For example, we now compile byval.ll to:
      
      define internal void @f1(i32 %b.0, i64 %b.1) {
      entry:
      	%tmp2 = add i32 %b.0, 1		; <i32> [#uses=0]
      	ret void
      }
      
      define i32 @main() nounwind  {
      entry:
      	call void @f1( i32 1, i64 2 )
      	ret i32 0
      }
      
      This seems like it would trigger a lot for code that passes around small
      structs (e.g. SDOperand's or _Complex)...
      
      llvm-svn: 45886
      b5bd924e
    • Duncan Sands's avatar
      Two occurrences on one line count as one... · 0ebaf91f
      Duncan Sands authored
      llvm-svn: 45885
      0ebaf91f
Loading