Skip to content
  1. Oct 17, 2013
    • Anders Waldenborg's avatar
      llvm-c: Return NULL from LLVMGetFirstTarget instead of asserting · a89c1e31
      Anders Waldenborg authored
      If no targets are registered, LLVMGetFirstTarget currently fails with
      an assertion. This patch makes it return NULL instead, similarly to
      how LLVMGetNextTarget would.
      
      Patch by Peter Zotov
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D1908
      
      llvm-svn: 192878
      a89c1e31
    • David Majnemer's avatar
      Remove unicode characters, trailing whitespace from test case · 81857f0b
      David Majnemer authored
      llvm-svn: 192877
      81857f0b
    • Alexey Samsonov's avatar
    • Timur Iskhodzhanov's avatar
      406a479d
    • Dmitry Vyukov's avatar
      tsan: merge 2 similar tests into 1 · 333112a4
      Dmitry Vyukov authored
      llvm-svn: 192874
      333112a4
    • Dmitry Vyukov's avatar
      tsan: add a test for __tsan_default_options() · e88dbe57
      Dmitry Vyukov authored
      llvm-svn: 192873
      e88dbe57
    • Dmitry Vyukov's avatar
      tsan: update docs · ae4ea1d3
      Dmitry Vyukov authored
      update docs for no_sanitize_thread attribute and blacklist
      
      llvm-svn: 192872
      ae4ea1d3
    • Dmitry Vyukov's avatar
      tsan: implement no_sanitize_thread attribute · b1ad5720
      Dmitry Vyukov authored
      If a function has no_sanitize_thread attribute,
      do not instrument memory accesses in it.
      
      llvm-svn: 192871
      b1ad5720
    • Will Dietz's avatar
      Use configured PYTHON in asan lit tests. · ece9ede2
      Will Dietz authored
      llvm-svn: 192870
      ece9ede2
    • Bill Wendling's avatar
      This is now passing. Uncomment and close out PR6281. · 7c3d2e11
      Bill Wendling authored
      llvm-svn: 192869
      7c3d2e11
    • Saleem Abdulrasool's avatar
      unwinder: conditionalise availability · 55410fff
      Saleem Abdulrasool authored
      __attribute__ (( unavailable )) is for Apple specific builds.  Create a macro
      to conditionalise the usage of the macro.  This is to aid in porting the
      unwinder to other platforms.
      
      llvm-svn: 192868
      55410fff
    • Chandler Carruth's avatar
      Add support to the Clang driver for forwarding all of gfortran's flags · b4d179cc
      Chandler Carruth authored
      to GCC when asked to compile a fortran input.
      
      This fixes a regression with essentially every Fortran compile since we
      started rejecting unknown flags. Also moves a mis-classified gfortran
      flag into the nicely documented set.
      
      llvm-svn: 192867
      b4d179cc
    • Jim Grosbach's avatar
      x86: Move bitcasts outside concat_vector. · c044c654
      Jim Grosbach authored
      Consider the following:
      
      typedef unsigned short ushort4U __attribute__((ext_vector_type(4),
      aligned(2)));
      typedef unsigned short ushort4 __attribute__((ext_vector_type(4)));
      typedef unsigned short ushort8 __attribute__((ext_vector_type(8)));
      typedef int int4 __attribute__((ext_vector_type(4)));
      
      int4 __bbase_cvt_int(ushort4 v) {
        ushort8 a;
        a.lo = v;
        return _mm_cvtepu16_epi32(a);
      }
      
      This generates the, not unreasonable, IR:
      define <4 x i32> @foo0(double %v.coerce) nounwind ssp {
        %tmp = bitcast double %v.coerce to <4 x i16>
        %tmp1 = shufflevector <4 x i16> %tmp, <4 x i16> undef, <8 x i32> <i32
        %0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
        %tmp2 = tail call <4 x i32> @llvm.x86.sse41.pmovzxwd(<8 x i16> %tmp1)
        ret <4 x i32> %tmp2
      }
      
      The problem is when type legalization gets hold of the v4i16. It
      legalizes that by spilling to the stack, then doing a zero-extending
      load. Things go even more silly from there, ending up with something
      like:
      _foo0:
        movsd %xmm0, -8(%rsp)       <== Spill to the stack.
        movq  -8(%rsp), %xmm0       <== Reload it right back out.
        pmovzxwd  %xmm0, %xmm1      <== Here's what we actually asked for.
        pblendw $1, %xmm1, %xmm0    <== We don't need this at all
        pmovzxwd  %xmm0, %xmm0      <== We already did this
        ret
      
      The v8i8 to v8i16 zext intrinsic gives even worse results, with two
      table lookups via pshufb instructions(!!).
      
      To avoid all that, we can move the bitcasting until after we've formed
      the wider (legal) vector type. Then our normal codegen flows along
      nicely and we get the expected:
      _foo0:
        pmovzxwd  %xmm0, %xmm0
        ret
      
      rdar://15245794
      
      llvm-svn: 192866
      c044c654
    • Eric Christopher's avatar
      According to the dwarf standard pubnames and pubtypes for languages · 2c8b7907
      Eric Christopher authored
      like C++ should be the fully qualified names for the type.
      
      Add a routine that does a language specific context walk to build
      up the qualified name and use it when we add types/names to the
      tables. Expand the gnu pubnames testcase as it's the most complex
      to make sure that qualified types are also being added.
      
      llvm-svn: 192865
      2c8b7907
    • Filip Pizlo's avatar
      Expose install_fatal_error_handler() through the C API. · a535b141
      Filip Pizlo authored
      I expose the API with some caveats:
      
      - The C++ API involves a traditional void* opaque pointer for the fatal 
      error callback.  The C API doesn’t do this.  I don’t think that the void* 
      opaque pointer makes any sense since this is a global callback - there will 
      only be one of them.  So if you need to pass some data to your callback, 
      just put it in a global variable.
      
      - The bindings will ignore the gen_crash_diag boolean.  I ignore it because 
      (1) I don’t know what it does, (2) it’s not documented AFAIK, and (3) I 
      couldn’t imagine any use for it.  I made the gut call that it probably 
      wasn’t important enough to expose through the C API.
      
      llvm-svn: 192864
      a535b141
    • Jack Carter's avatar
      [projects/test-suite] White space and long line fixes. · d4e9615d
      Jack Carter authored
      No functionality changes.
      
      llvm-svn: 192863
      d4e9615d
    • Eric Christopher's avatar
      Add the context that a function was created in as the context for the · 9e6f5f9a
      Eric Christopher authored
      function, not the context of the context.
      
      llvm-svn: 192862
      9e6f5f9a
    • Eric Christopher's avatar
      Add the subprogram DIEs to the context they're created with only · 96eff3f3
      Eric Christopher authored
      if they're a declaration, otherwise they're owned by the compile
      unit.
      
      llvm-svn: 192861
      96eff3f3
    • Reid Kleckner's avatar
      Add implementations of the MSVC barrier intrinsics · 00d33a5c
      Reid Kleckner authored
      Summary:
      These are deprecated in VS 2012 according to MSDN.  They don't actually
      compile down to any code.  They prevent the compiler from reordering
      memory accesses across the barrier, which is what a memory-clobbering
      volatile asm does.
      
      Reviewers: echristo
      
      CC: cfe-commits
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D1954
      
      llvm-svn: 192860
      00d33a5c
    • Hans Wennborg's avatar
      Re-commit r192758 - MC: quote tricky symbol names in asm output · 69918bcc
      Hans Wennborg authored
      The reason this got reverted was that the @feat.00 symbol which was emitted
      for every TU became quoted, and on cygwin/mingw we use the gas assembler which
      couldn't handle the quotes.
      
      This commit fixes the problem by only emitting @feat.00 for win32, where we use
      clang -cc1as to assemble. gas would just drop this symbol anyway, so there is no
      loss there.
      
      With @feat.00 gone, there shouldn't be quoted symbols showing up on cygwin since
      it uses the Itanium ABI, which doesn't put these funny characters in symbols.
      
      > Because of win32 mangling, we produce symbol and section names with
      > funny characters in them, most notably @ characters.
      >
      > MC would choke on trying to parse its own assembly output. This patch addresses
      > that by:
      >
      > - Making @ trigger quoting of symbol names
      > - Also quote section names in the same way
      > - Just parse section names like other identifiers (to allow for quotes)
      > - Don't assume @ signifies a symbol variant if it is in a string.
      
      llvm-svn: 192859
      69918bcc
    • Greg Clayton's avatar
      <rdar://problem/14972424> · 312bcbe8
      Greg Clayton authored
      - Made the dynamic register context for the GDB remote plug-in inherit from the generic DynamicRegisterInfo to avoid code duplication
      - Finished up the target definition python setting stuff.
      - Added a new "slice" key/value pair that can specify that a register is part of another register:
          { 'name':'eax', 'set':0, 'bitsize':32, 'encoding':eEncodingUint, 'format':eFormatHex, 'slice': 'rax[31:0]' },
      - Added a new "composite" key/value pair that can specify that a register is made up of two or more registers:
          { 'name':'d0', 'set':0, 'bitsize':64 , 'encoding':eEncodingIEEE754, 'format':eFormatFloat, 'composite': ['s1', 's0'] },
      - Added a new "invalidate-regs" key/value pair for when a register is modified, it can invalidate other registers:
          { 'name':'cpsr', 'set':0, 'bitsize':32 , 'encoding':eEncodingUint, 'format':eFormatHex, 'invalidate-regs': ['r8', 'r9', 'r10', 'r11', 'r12', 'r13', 'r14', 'r15']},
          
      This now completes the feature that allows a GDB remote target to completely describe itself.
      
      llvm-svn: 192858
      312bcbe8
    • Greg Clayton's avatar
    • David Blaikie's avatar
      DIEHash: Include the type's context in the type hash. · 8a142aaa
      David Blaikie authored
      llvm-svn: 192856
      8a142aaa
    • David Blaikie's avatar
      DIEHash: Use DW_FORM_sdata for integers, per spec. · 6316ca45
      David Blaikie authored
      This allows us to produce the same hash as GCC for at least some simple
      examples.
      
      llvm-svn: 192855
      6316ca45
    • David Blaikie's avatar
      Invert arguments to ASSERT_EQ to match gtest diagnostic printing · d398ac56
      David Blaikie authored
      GTest assumes the left hand side of the assert is the expectation and
      the right hand side is the test result. It's easier to read gtest
      failures when these things are ordered correctly.
      
      llvm-svn: 192854
      d398ac56
    • Fariborz Jahanian's avatar
      ObjectiveC migrator. Remove blank lines · 1b667876
      Fariborz Jahanian authored
      when inferring property from setter/getter
      methods. // rdar://15200949
      
      llvm-svn: 192853
      1b667876
  2. Oct 16, 2013
Loading