Skip to content
  1. Aug 25, 2008
  2. Aug 23, 2008
  3. Aug 16, 2008
  4. 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
  5. Aug 13, 2008
  6. Aug 11, 2008
  7. 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
  8. 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
  9. Aug 05, 2008
  10. Aug 01, 2008
  11. 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
  12. Jul 29, 2008
  13. Jun 08, 2008
  14. Jun 01, 2008
  15. May 26, 2008
    • Eli Friedman's avatar
      Emit memmove, not memcpy, for structure copies; this is unfortunately · df649f3d
      Eli Friedman authored
      required for correctness in cases of copying a struct to itself or to 
      an overlapping struct (itself for cases like *a = *a, and overlapping 
      is possible with unions).
      
      Hopefully, this won't end up being a perf issue; LLVM *should* be able 
      to optimize memmove to memcpy in a lot of cases, and for small copies 
      the generated code *should* be mostly comparable. (In reality, LLVM 
      is currently horrible at optimizing memmove, but that's a bug, not a 
      fundamental issue.)
      
      gcc currently generates wrong code; that's 
      http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32667.
      
      llvm-svn: 51566
      df649f3d
  16. May 22, 2008
    • Dan Gohman's avatar
      Move getAccessedFieldNo out of lib/AST/Expr.cpp into · 75d69da5
      Dan Gohman authored
      lib/CodeGen/CGExpr.cpp and to change include/clang/AST/Attr.h to
      use its own enum for visibility types instead of using
      llvm::GlobalValue::VisibilityTypes. These changes eliminate
      dependencies in the AST library on LLVM's VMCore library.
      
      llvm-svn: 51398
      75d69da5
  17. May 08, 2008
    • Sanjiv Gupta's avatar
      Added -g command line options to clang for generating source level debug... · 15cb6690
      Sanjiv Gupta authored
      Added -g command line options to clang for generating source level debug information. This patch currently enables generation of line number debug information (stoppoints) and region begin/end debug information. The new files CGDebugInfo.h and CGDebugInfo.cpp implements the debug info manager class CGDebugInfo.
      
      llvm-svn: 50848
      15cb6690
  18. Apr 20, 2008
  19. Apr 19, 2008
  20. Apr 16, 2008
    • Steve Naroff's avatar
      Remove FileVarDecl and BlockVarDecl. They are replaced by... · 08899ff8
      Steve Naroff authored
      Remove FileVarDecl and BlockVarDecl. They are replaced by VarDecl::isBlockVarDecl() and VarDecl::isFileVarDecl().
      
      This is a fairly mechanical/large change. As a result, I avoided making any changes/simplifications that weren't directly related. I did break two Analysis tests. I also have a couple FIXME's in UninitializedValues.cpp. Ted, can you take a look? If the bug isn't obvious, I am happy to dig in and fix it (since I broke it).
      
      llvm-svn: 49748
      08899ff8
  21. Mar 31, 2008
  22. Mar 16, 2008
    • Chris Lattner's avatar
      Make a major restructuring of the clang tree: introduce a top-level · 7a51313d
      Chris Lattner authored
      lib dir and move all the libraries into it.  This follows the main
      llvm tree, and allows the libraries to be built in parallel.  The
      top level now enforces that all the libs are built before Driver,
      but we don't care what order the libs are built in.  This speeds
      up parallel builds, particularly incremental ones.
      
      llvm-svn: 48402
      7a51313d
  23. Mar 14, 2008
  24. Mar 01, 2008
  25. Feb 29, 2008
  26. Feb 26, 2008
  27. Feb 19, 2008
  28. Feb 11, 2008
  29. Feb 06, 2008
  30. Feb 05, 2008
  31. Jan 26, 2008
Loading