Skip to content
  1. Jan 21, 2014
  2. Jan 20, 2014
    • Alp Toker's avatar
      Build fix following clang r199686 · f747ff1f
      Alp Toker authored
      llvm-svn: 199689
      f747ff1f
    • Rafael Espindola's avatar
      Give explicit sections for string constants used in NSStrings. · d19f80a0
      Rafael Espindola authored
      Without them they can be merged with non unnamed_addr constants during LTO.
      The resulting constant is not unnamed_addr and goes in a different section,
      which causes ld64 to crash.
      
      A testcase that would crash before:
      
      * file1.mm:
      void g(id notification) {
        [notification valueForKey:@"name"];
      }
      
      * file2.cpp:
      extern const char js_name_str[] = "name";
      
      * file3.cpp
      extern bool JS_GetProperty(const char *name);
      extern const char js_name_str[];
      bool js_ReportUncaughtException() { JS_GetProperty(js_name_str); }
      
      run
      
      clang file1.mm  -o file1.o -c -w -emit-llvm
      clang file2.cpp -o file2.o -c -w -emit-llvm
      clang file3.cpp -o file3.o -c -w
      
      ld -dylib -o XUL file1.o file2.o file3.o -undefined dynamic_lookup.
      
      llvm-svn: 199688
      d19f80a0
    • Tom Stellard's avatar
      Fix build broken by LLVM commit r199279 · 8a63b15b
      Tom Stellard authored
      Patch by: Udo van den Heuvel
      
      Tom Stellard:
        - Added ifdef and error handling
      
      llvm-svn: 199687
      8a63b15b
    • Alp Toker's avatar
      Rename FunctionProtoType accessors from 'arguments' to 'parameters' · 9cacbabd
      Alp Toker authored
      Fix a perennial source of confusion in the clang type system: Declarations and
      function prototypes have parameters to which arguments are supplied, so calling
      these 'arguments' was a stretch even in C mode, let alone C++ where default
      arguments, templates and overloading make the distinction important to get
      right.
      
      Readability win across the board, especially in the casting, ADL and
      overloading implementations which make a lot more sense at a glance now.
      
      Will keep an eye on the builders and update dependent projects shortly.
      
      No functional change.
      
      llvm-svn: 199686
      9cacbabd
    • Rafael Espindola's avatar
      Simplify further. · 8ff1610f
      Rafael Espindola authored
      Thanks to David Blaikie for the push.
      
      llvm-svn: 199685
      8ff1610f
    • Hal Finkel's avatar
      Update StackProtector when coloring merges stack slots · a69e5b8b
      Hal Finkel authored
      StackProtector keeps a ValueMap of alloca instructions to layout kind tags for
      use by PEI and other later passes. When stack coloring replaces one alloca with
      a bitcast to another one, the key replacement in this map does not work.
      Instead, provide an interface to manage this updating directly. This seems like
      an improvement over the old behavior, where the layout map would not get
      updated at all when the stack slots were merged. In practice, however, there is
      likely no observable difference because PEI only did anything special with
      'large array' kinds, and if one large array is merged with another, than the
      replacement should already have been a large array.
      
      This is an attempt to unbreak the clang-x86_64-darwin11-RA builder.
      
      llvm-svn: 199684
      a69e5b8b
    • Andrea Di Biagio's avatar
      [X86] Teach how to combine a vselect into a movss/movsd · 450d1661
      Andrea Di Biagio authored
      Add target specific rules for combining vselect dag nodes into movss/movsd
      when possible.
      
      If the vector type of the vselect dag node in input is either MVT::v4i13 or
      MVT::v4f32, then try to fold according to rules:
      
        1) fold (vselect (build_vector (0, -1, -1, -1)), A, B) -> (movss A, B)
        2) fold (vselect (build_vector (-1, 0, 0, 0)), A, B) -> (movss B, A)
      
      If the vector type of the vselect dag node in input is either MVT::v2i64 or
      MVT::v2f64 (and we have SSE2), then try to fold according to rules:
      
        3) fold (vselect (build_vector (0, -1)), A, B) -> (movsd A, B)
        4) fold (vselect (build_vector (-1, 0)), A, B) -> (movsd B, A)
      
      llvm-svn: 199683
      450d1661
    • Fariborz Jahanian's avatar
      ObjectiveC driver. reinstate -fno-objc-legacy-dispatch behavior · 15f60cb2
      Fariborz Jahanian authored
      when the deployment target is 10.5. // rdar://15852259
      
      llvm-svn: 199682
      15f60cb2
    • Adrian Prantl's avatar
      Debug info: On ARM ensure that all __TEXT sections come before the · 671af5ca
      Adrian Prantl authored
      optional DWARF sections, so compiling with -g does not result in
      different code being generated for PC-relative loads.
      
      This is reapplying a diet r197922 (__TEXT-only).
      
      llvm-svn: 199681
      671af5ca
    • Adrian Prantl's avatar
      Revert "Debug info: On ARM ensure that the data sections come before the" · 1a89924d
      Adrian Prantl authored
      Cut back on the cargo cult. The order of __DATA sections doesn't affect
      generated code.
      
      This reverts commit r197922.
      
      llvm-svn: 199680
      1a89924d
    • Aaron Ballman's avatar
      Adding a bit of documentation that was missed with r198883 (when... · b39a9b8b
      Aaron Ballman authored
      Adding a bit of documentation that was missed with r198883 (when ParseArgumentsAsUnevaluated was added).
      
      llvm-svn: 199679
      b39a9b8b
Loading