Skip to content
  1. Jun 10, 2012
  2. Jun 06, 2012
  3. May 28, 2012
  4. May 20, 2012
  5. May 12, 2012
  6. May 04, 2012
    • Alexey Samsonov's avatar
      This patch adds a new Clang compiler flag "-gline-tables-only". · 74a3868d
      Alexey Samsonov authored
      It reduces the amount of emitted debug information:
      1) DIEs in .debug_info have types DW_TAG_compile_unit, DW_TAG_subprogram,
      DW_TAG_inlined_subroutine (for opt builds) and DW_TAG_lexical_block only.
      2) .debug_str contains only function names.
      3) No debug data for types/namespaces/variables is emitted.
      4) The data in .debug_line is enough to produce valid stack traces with
      function names and line numbers.
      
      Reviewed by Eric Christopher.
      
      llvm-svn: 156160
      74a3868d
  7. Apr 30, 2012
    • David Blaikie's avatar
      Remove the ref/value inconsistency in filter_decl_iterator. · 2d7c57ec
      David Blaikie authored
      filter_decl_iterator had a weird mismatch where both op* and op-> returned T*
      making it difficult to generalize this filtering behavior into a reusable
      library of any kind.
      
      This change errs on the side of value, making op-> return T* and op* return
      T&.
      
      (reviewed by Richard Smith)
      
      llvm-svn: 155808
      2d7c57ec
  8. Apr 27, 2012
  9. Apr 24, 2012
  10. Apr 17, 2012
  11. Apr 11, 2012
  12. Mar 30, 2012
    • Chandler Carruth's avatar
      Revert r153723, and its follow-ups r153728 and r153733. · 84537952
      Chandler Carruth authored
      These patches cause us to miscompile and/or reject code with static
      function-local variables in an extern-C context. Previously, we were
      papering over this as long as the variables are within the same
      translation unit, and had not seen any failures in the wild. We still
      need a proper fix, which involves mangling static locals inside of an
      extern-C block (as GCC already does), but this patch causes pretty
      widespread regressions. Firefox, and many other applications no longer
      build.
      
      Lots of test cases have been posted to the list in response to this
      commit, so there should be no problem reproducing the issues.
      
      llvm-svn: 153768
      84537952
    • John McCall's avatar
      Do the static-locals thing properly in the face of unions and · 87590e60
      John McCall authored
      other things which might mess with the variable's type.
      
      llvm-svn: 153733
      87590e60
    • Bill Wendling's avatar
      The UTF16 string referenced by a CFString should go into the __TEXT,__ustring · 82b87f19
      Bill Wendling authored
      section. A 'normal' string will go into the __TEXT,__const section, but this
      isn't good for UTF16 strings. The __ustring section allows for coalescing, among
      other niceties (such as allowing the linker to easily split up strings).
      
      Instead of outputting the UTF16 string as a series of bytes, output it as a
      series of shorts. The back-end will then nicely place the UTF16 string into the
      correct section, because it's a mensch.
      <rdar://problem/10655949>
      
      llvm-svn: 153710
      82b87f19
    • Bill Wendling's avatar
      Fix whitespace. · 07635cc7
      Bill Wendling authored
      llvm-svn: 153698
      07635cc7
  13. Mar 26, 2012
  14. Mar 24, 2012
  15. Mar 11, 2012
  16. Mar 08, 2012
  17. Mar 05, 2012
    • Rafael Espindola's avatar
      Fix a small difference in sema and codegen views of what needs to be output. · 189fa748
      Rafael Espindola authored
      In the included testcase, soma thinks that we already have a definition after we
      see the out of line decl. Codegen puts it in a deferred list, to be output if
      a use is seen. This would break when we saw an explicit template instantiation
      definition, since codegen would not be notified.
      
      This patch adds a method to the consumer interface so that soma can notify
      codegen that this decl is now required.
      
      llvm-svn: 152024
      189fa748
  18. Mar 03, 2012
  19. Feb 28, 2012
  20. Feb 25, 2012
    • Sebastian Redl's avatar
      CodeGen support for global variables of type std::initializer_list<X>. · 4a7eab25
      Sebastian Redl authored
      This emits a backing array with internal linkage and fills it with data,
      then has the initializer_list point at the array. Dynamic initialization
      and global destructors are correctly supported.
      
      What doesn't work is nested initializer_lists. I have no idea how to
      get them to work, either. However, these should be very rare, and so
      I'll just call it a known bug and declare generalized initializers
      DONE!
      
      llvm-svn: 151457
      4a7eab25
  21. Feb 18, 2012
  22. Feb 17, 2012
    • Richard Smith's avatar
      Bug fix: do not emit static const local variables with mutable members · e070fd2a
      Richard Smith authored
      as constants.
      
      Refactor and simplify all the separate checks for whether a type can be
      emitted as a constant.
      
      llvm-svn: 150793
      e070fd2a
    • Richard Smith's avatar
      When performing IRGen on a global, emit it as a constant if: · ae819500
      Richard Smith authored
       1) It has a const-qualified type, and
       2) It has no mutable members, and
       3) It has no dynamic initialization, and
       4) It has trivial destruction.
      Remove the unnecessary requirement that the type be POD. This allows us to
      mark all constexpr objects with no mutable members as 'constant'.
      
      llvm-svn: 150792
      ae819500
    • John McCall's avatar
      Whether an argument is required (in contrast with being an · a729c62b
      John McCall authored
      optional argument passed through the variadic ellipsis)
      potentially affects how we need to lower it.  Propagate
      this information down to the various getFunctionInfo(...)
      overloads on CodeGenTypes.  Furthermore, rename those
      overloads to clarify their distinct purposes, and make
      sure we're calling the right one in the right place.
      This has a nice side-effect of making it easier to construct
      a function type, since the 'variadic' bit is no longer
      separable.
      
      This shouldn't really change anything for our existing
      platforms, with one minor exception --- we should now call
      variadic ObjC methods with the ... in the "right place"
      (see the test case), which I guess matters for anyone
      running GNUStep on MIPS.  Mostly it's just a substantial
      clean-up.
      
      llvm-svn: 150788
      a729c62b
  23. Feb 16, 2012
  24. Feb 13, 2012
    • Richard Smith's avatar
      Deal with a horrible C++11 special case. If a non-literal type has a constexpr · 6331c408
      Richard Smith authored
      constructor, and that constructor is used to initialize an object of static
      storage duration such that all members and bases are initialized by constant
      expressions, constant initialization is performed. In this case, the object
      can still have a non-trivial destructor, and if it does, we must emit a dynamic
      initializer which performs no initialization and instead simply registers that
      destructor.
      
      llvm-svn: 150419
      6331c408
  25. Feb 07, 2012
  26. Feb 06, 2012
  27. Feb 05, 2012
  28. Feb 02, 2012
  29. Feb 01, 2012
    • Argyrios Kyrtzidis's avatar
      Revert r149363 which was part a series of commits that were reverted in llvm · a11b35a9
      Argyrios Kyrtzidis authored
      commit 149470. This fixes test/CodeGen/PR3589-freestanding-libcalls.c.
      
      Original log:
      
          ConstantArray::get() (for strings) is going away, use
          ConstantDataArray::getString instead.
      
          Many instances of ConstantArray::get() could be moved to
          use more efficient ConstantDataArray methods that avoid a ton
          of intermediate Constant*'s for each element (e.g.
          GetConstantArrayFromStringLiteral).  I don't plan on doing this
          in the short-term though.
      
      llvm-svn: 149477
      a11b35a9
  30. Jan 31, 2012
  31. Jan 24, 2012
    • Kostya Serebryany's avatar
      The following patch adds __attribute__((no_address_safety_analysis)) which will allow to disable · 588d6abf
      Kostya Serebryany authored
      address safety analysis (such as e.g. AddressSanitizer or SAFECode) for a specific function.
      
      When building with AddressSanitizer, add AddressSafety function attribute to every generated function
      except for those that have __attribute__((no_address_safety_analysis)).
      
      With this patch we will be able to
      1. disable AddressSanitizer for a particular function
      2. disable AddressSanitizer-hostile optimizations (such as some cases of load widening) when AddressSanitizer is on.
      
      llvm-svn: 148842
      588d6abf
Loading