Skip to content
  1. Feb 13, 2009
  2. Feb 12, 2009
  3. Feb 02, 2009
    • Daniel Dunbar's avatar
      More ABI API cleanup. · d931a87f
      Daniel Dunbar authored
       - Lift CGFunctionInfo creation above ReturnTypeUsesSret and
         EmitFunction{Epi,Pro}log.
      
      llvm-svn: 63553
      d931a87f
  4. Jan 31, 2009
  5. Jan 04, 2009
  6. Oct 17, 2008
  7. 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
  8. 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
  9. 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
  10. Sep 09, 2008
  11. 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
  12. Sep 05, 2008
  13. Sep 04, 2008
  14. 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
  15. Aug 25, 2008
  16. Aug 23, 2008
  17. Aug 16, 2008
  18. 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
  19. Aug 13, 2008
  20. Aug 11, 2008
  21. Aug 10, 2008
    • Daniel Dunbar's avatar
      Back out r54608 (inline string literals were getting an extra '\0') · 6dfdf8c9
      Daniel Dunbar authored
        temporarily, I assumed GetAddrForConstantString literal was being
        used consistently but it doesn't look like it is.
      
      Factored out a CodeGenModule::getStringForStringLiteral which handles
        extracting a std::string for the bytes of a StringLiteral, padded to
        match the type.
      
      Update EmitLValue to use getStringForStringLiteral, this was
        previously not padding strings correctly. Good thing we only emit
        strings in 4 different places!
      
      llvm-svn: 54621
      6dfdf8c9
  22. Aug 06, 2008
    • Daniel Dunbar's avatar
      Change CodeGen of global decls to key off of the name (instead of · 829e9888
      Daniel Dunbar authored
        having multiple bindings from all the possible decls which
        conceptually map to the same global).
      
       - This eliminates CodeGen depending on the LLVM module for name
         lookup.
      
       - This also eliminates the need for ReplaceMapValuesWith (hurrah).
      
       - This handles lookups for FunctionDecls correctly in the presence of
         aliases, this was previously broken.
      
       - WIP: Can still clean up & unify variable and function emission.
      
      llvm-svn: 54382
      829e9888
  23. Aug 05, 2008
  24. Aug 01, 2008
  25. Jul 30, 2008
    • Daniel Dunbar's avatar
      Change CodeGenModule GlobalDeclMap to directly reference globals · e49df9b5
      Daniel Dunbar authored
      instead of mapping the decl to a bitcast of the global to the correct
      type.
       
       - GetAddrOf{Function,GlobalVar} introduce the bitcast on every use now.
      
       - This solves a problem where a dangling pointer could be introduced
         by the RAUW done when replacing a forward or tentative
         definition. See testcase for more details.
      
       - Fixes <rdar://problem/6108358>
      
      llvm-svn: 54211
      e49df9b5
    • Daniel Dunbar's avatar
      Rework codegen emission of globals · 9c426524
      Daniel Dunbar authored
       - No (intended) functionality change.
      
       - Primary purpose is to clearly separate (lazy) construction of
         globals that are a forward declaration or tentative definition from
         those that are the final definition.
      
       - Lazy construction is now encapsulated in
         GetAddrOf{Function,GlobalVar} while final definitions are
         constructed in EmitGlobal{Function,Var}Definition.
       
       - External interface for dealing with globals is now limited to
         EmitGlobal and GetAddrOf{Function,GlobalVar}.
      
       - Also updated helper functions dealing with statics, annotations,
         and ctors to be private.
      
      llvm-svn: 54179
      9c426524
  26. Jul 29, 2008
  27. Jun 08, 2008
  28. Jun 01, 2008
    • Eli Friedman's avatar
      First cut at setting attributes for functions and calls; this puts us · f6b091f7
      Eli Friedman authored
      much closer to passing the gcc struct layout tests.
      
      It might be possible to refactor this a bit, but I'm not sure there's 
      actually enough common code for that to be useful.
      
      To get the calling convention completely correct, a bit of 
      platform-specific code is necessary even for x86-Linux. On x86-Linux, the
      alignment of function parameters is extremely strange; as far as I can tell,
      it's always 4 except for SSE vectors or structs containing SSE vectors.  I'm 
      continuing to investigate this.
      
      llvm-svn: 51839
      f6b091f7
Loading