Skip to content
  1. Jan 21, 2009
  2. Jan 16, 2009
  3. Jan 13, 2009
  4. Jan 08, 2009
  5. Jan 05, 2009
  6. Jan 04, 2009
  7. Dec 26, 2008
  8. Dec 11, 2008
    • Douglas Gregor's avatar
      Unifies the name-lookup mechanisms used in various parts of the AST · 91f84216
      Douglas Gregor authored
      and separates lexical name lookup from qualified name lookup. In
      particular:
        * Make DeclContext the central data structure for storing and
          looking up declarations within existing declarations, e.g., members
          of structs/unions/classes, enumerators in C++0x enums, members of
          C++ namespaces, and (later) members of Objective-C
          interfaces/implementations. DeclContext uses a lazily-constructed
          data structure optimized for fast lookup (array for small contexts,
          hash table for larger contexts). 
      
        * Implement C++ qualified name lookup in terms of lookup into
          DeclContext.
      
        * Implement C++ unqualified name lookup in terms of
          qualified+unqualified name lookup (since unqualified lookup is not
          purely lexical in C++!)
      
        * Limit the use of the chains of declarations stored in
          IdentifierInfo to those names declared lexically.
      
        * Eliminate CXXFieldDecl, collapsing its behavior into
          FieldDecl. (FieldDecl is now a ScopedDecl).
      
        * Make RecordDecl into a DeclContext and eliminates its
          Members/NumMembers fields (since one can just iterate through the
          DeclContext to get the fields).
      
      llvm-svn: 60878
      91f84216
  9. Dec 09, 2008
  10. Dec 03, 2008
  11. 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
  12. Nov 21, 2008
  13. Nov 19, 2008
  14. 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
  15. Nov 15, 2008
  16. Nov 11, 2008
  17. Nov 04, 2008
  18. Oct 28, 2008
  19. Oct 17, 2008
  20. 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
  21. Sep 27, 2008
  22. 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
  23. 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
  24. Sep 09, 2008
  25. 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
  26. Sep 05, 2008
  27. Sep 04, 2008
  28. Sep 01, 2008
  29. Aug 29, 2008
Loading