Skip to content
  1. Nov 24, 2008
    • Chris Lattner's avatar
      Rename NamedDecl::getName() to getNameAsString(). Replace a bunch of · f3d3faec
      Chris Lattner authored
      uses of getName() with uses of getDeclName().  This upgrades a bunch of
      diags to take DeclNames instead of std::strings.
      
      This also tweaks a couple of diagnostics to be cleaner and changes
      CheckInitializerTypes/PerformInitializationByConstructor to pass
      around DeclarationNames instead of std::strings.
      
      llvm-svn: 59947
      f3d3faec
  2. Nov 21, 2008
  3. Nov 19, 2008
  4. Nov 18, 2008
    • Chris Lattner's avatar
      This reworks some of the Diagnostic interfaces a bit to change how diagnostics · 8488c829
      Chris Lattner authored
      are formed.  In particular, a diagnostic with all its strings and ranges is now
      packaged up and sent to DiagnosticClients as a DiagnosticInfo instead of as a 
      ton of random stuff.  This has the benefit of simplifying the interface, making
      it more extensible, and allowing us to do more checking for things like access
      past the end of the various arrays passed in.
      
      In addition to introducing DiagnosticInfo, this also substantially changes how 
      Diagnostic::Report works.  Instead of being passed in all of the info required
      to issue a diagnostic, Report now takes only the required info (a location and 
      ID) and returns a fresh DiagnosticInfo *by value*.  The caller is then free to
      stuff strings and ranges into the DiagnosticInfo with the << operator.  When
      the dtor runs on the DiagnosticInfo object (which should happen at the end of
      the statement), the diagnostic is actually emitted with all of the accumulated
      information.  This is a somewhat tricky dance, but it means that the 
      accumulated DiagnosticInfo is allowed to keep pointers to other expression 
      temporaries without those pointers getting invalidated.
      
      This is just the minimal change to get this stuff working, but this will allow
      us to eliminate the zillions of variant "Diag" methods scattered throughout
      (e.g.) sema.  For example, instead of calling:
      
        Diag(BuiltinLoc, diag::err_overload_no_match, typeNames,
             SourceRange(BuiltinLoc, RParenLoc));
      
      We will soon be able to just do:
      
        Diag(BuiltinLoc, diag::err_overload_no_match)
            << typeNames << SourceRange(BuiltinLoc, RParenLoc));
      
      This scales better to support arbitrary types being passed in (not just 
      strings) in a type-safe way.  Go operator overloading?!
      
      llvm-svn: 59502
      8488c829
    • Chris Lattner's avatar
      Change the diagnostics interface to take an array of pointers to · 16ba9139
      Chris Lattner authored
      strings instead of array of strings.  This reduces string copying
      in some not-very-important cases, but paves the way for future 
      improvements.
      
      llvm-svn: 59494
      16ba9139
  5. Nov 15, 2008
  6. Nov 11, 2008
  7. Nov 04, 2008
  8. Oct 28, 2008
  9. Oct 17, 2008
  10. Oct 01, 2008
    • Daniel Dunbar's avatar
      Add simple interface for protecting runtime functions from name · 23fd462f
      Daniel Dunbar authored
      collisions.
       - Provide CodeGenModule::CreateRuntimeFunction which guarantees that
         the function it creates will have the provided name in the final
         module. This allows the runtime to have its functions protected
         from declarations of the same name in the source code.
      
       - One could argue that this is a reason to abuse the llvm::Module
         namespace for dealing with function redeclarations. However, that
         approach seems conceptually flawed to me. This one also happens to
         be somewhat more efficient.
      
      No functionality change.
      
      llvm-svn: 56899
      23fd462f
  11. Sep 27, 2008
  12. Sep 25, 2008
    • Devang Patel's avatar
      Large mechanical patch. · 322300d1
      Devang Patel authored
      s/ParamAttr/Attribute/g
      s/PAList/AttrList/g
      s/FnAttributeWithIndex/AttributeWithIndex/g
      s/FnAttr/Attribute/g
      
      This sets the stage 
      - to implement function notes as function attributes and 
      - to distinguish between function attributes and return value attributes.
      
      llvm-svn: 56623
      322300d1
  13. Sep 10, 2008
    • Daniel Dunbar's avatar
      Move FunctionType conversion into CGCall.cpp: · 7a95ca31
      Daniel Dunbar authored
       - Added CodeGenTypes::GetFunctionType, taking a CGFunctionInfo.
       - Updated Obj-C runtimes to use this instead of rolling the
         llvm::FunctionType by hand.
       - Killed CodeGenTypes::{ConvertReturnType, DecodeArgumentTypes}.
      
      Add ABIArgInfo class to encapsulate ABI decision of how to lower types
      to LLVM.
       - Will move to target sometime soon.
      
      llvm-svn: 56047
      7a95ca31
    • Daniel Dunbar's avatar
      Tweak CGCall functions again: · c68897d2
      Daniel Dunbar authored
       - Realized these functions will eventually need access to more data,
         moved to CodeGenModule. Eventually they should probably live
         together in some other helper class.
      
      llvm-svn: 56039
      c68897d2
    • Daniel Dunbar's avatar
      Tweak CGCall functions: · 76c8eb75
      Daniel Dunbar authored
       - Move actual param attr list creation to
         CodeGenFunction::ConstructParamAttrList.
       - Make ReturnTypeUsesSret static.
      
      llvm-svn: 56038
      76c8eb75
  14. Sep 09, 2008
  15. Sep 08, 2008
    • Daniel Dunbar's avatar
      Refactor parameter attribute handling: · 3d7c90b8
      Daniel Dunbar authored
        - Add CGCall.h for dealing with ABI issues related to calls.
        - Add CGFunctionInfo and CGCallInfo for capturing ABI relevant
          information about functions and calls.
        - Isolate LLVM parameter attribute handling inside CGCall.cpp
      
      llvm-svn: 55963
      3d7c90b8
  16. Sep 05, 2008
  17. Sep 04, 2008
  18. Sep 01, 2008
  19. Aug 29, 2008
  20. Aug 26, 2008
    • Daniel Dunbar's avatar
      Objective-C @synthesize support. · 89654eef
      Daniel Dunbar authored
       - Only supports simple assignment and atomic semantics are ignored.
       - Not quite usable yet because the methods do not actually get added
         to the class metadata.
       - Added ObjCPropertyDecl::getSetterKind (one of Assign, Copy, Retain).
       - Rearrange CodeGenFunction so synthesis can reuse function prolog /
         epilog code.
      
      llvm-svn: 55365
      89654eef
  21. Aug 25, 2008
  22. Aug 23, 2008
  23. Aug 16, 2008
  24. Aug 15, 2008
  25. Aug 14, 2008
    • Daniel Dunbar's avatar
      Add GetAddrOfConstantCString method · c4baa06d
      Daniel Dunbar authored
       - Returns addr of constant for argument + '\0'.
       - I couldn't think of a better name.
       - Move appropriate users of GetAddrOfConstantString to this.
      
      Rename getStringForStringLiteral to GetStringForStringLiteral.
      
      Add GetAddrOfConstantStringFromLiteral
       - This combines GetAddrOfConstantString and
         GetStringForStringLiteral. This method can be, but is not yet, more
         efficient.
      
      Change GetAddrOfConstantString to not add terminating '\0'
       - <rdar://problem/6140956>
      
      llvm-svn: 54768
      c4baa06d
  26. Aug 13, 2008
  27. Aug 12, 2008
Loading