Skip to content
  1. Oct 17, 2013
    • Alexey Samsonov's avatar
      [DebugInfo] Delete dead code, simplify and fix code style for some existing... · caabb0ea
      Alexey Samsonov authored
      [DebugInfo] Delete dead code, simplify and fix code style for some existing code. No functionality change.
      
      llvm-svn: 192894
      caabb0ea
    • Daniel Sanders's avatar
      [mips][msa] Removed ldx.[bhwd] and stx.[bhwd]. · 0390568a
      Daniel Sanders authored
      These were present in a previous version of the MSA spec but are not
      present in the published version. There is no hardware that uses these
      instructions.
      
      llvm-svn: 192888
      0390568a
    • Richard Sandiford's avatar
      Replace sra with srl if a single sign bit is required · 95f7ba98
      Richard Sandiford authored
      E.g. (and (sra (i32 x) 31) 2) -> (and (srl (i32 x) 30) 2).
      
      llvm-svn: 192884
      95f7ba98
    • Andrea Di Biagio's avatar
      Fix edge condition in DAGCombiner to improve codegen of shift sequences. · 561badf7
      Andrea Di Biagio authored
      When canonicalizing dags according to the rule
      (shl (zext (shr X, c1) ), c1) ==> (zext (shl (shr X, c1), c1))
      
      remember to add the new shl dag to the DAGCombiner worklist of nodes.
      If we don't explicitly add it to the worklist of nodes to visit, we
      may not trigger later on the rule that folds the shift left + logical
      shift right into a AND instruction with bitmask.
      
      llvm-svn: 192883
      561badf7
    • Evgeniy Stepanov's avatar
      [msan] Use zero-extension in shadow cast by default. · 21a9c93a
      Evgeniy Stepanov authored
      Switch to sign-extension in r192575 caused 7% perf loss on 482.sphinx3.
      
      llvm-svn: 192882
      21a9c93a
    • Anders Waldenborg's avatar
      llvm-c: Don't assert in LLVMTargetMachineEmitToFile on nonexistent file · 39f5d7d5
      Anders Waldenborg authored
      Error handling code for raw_fd_ostream constructor is present, but
      never used, because formatted_raw_ostream will always assert on closed
      fd's before.
      
      Patch by Peter Zotov
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D1909
      
      llvm-svn: 192881
      39f5d7d5
    • Daniel Sanders's avatar
      [mips][msa] Correct definition order of ftrunc_[su], ftint_[su], and ftq. · 199b731b
      Daniel Sanders authored
      Define these three instructions in alphabetical order (like the rest of the
      file).
      No functional change.
      
      llvm-svn: 192880
      199b731b
    • Michael Kuperstein's avatar
      Changing DebugInfoFinder to iterate over all the compile units. · 2cbd5132
      Michael Kuperstein authored
      Solves http://llvm.org/bugs/show_bug.cgi?id=17507
      
      Committed on behalf of alon.mishne@intel.com
      
      llvm-svn: 192879
      2cbd5132
    • 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
    • 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
    • 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 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
    • 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
    • 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
  2. Oct 16, 2013
Loading