Skip to content
  1. Nov 21, 2018
  2. Nov 20, 2018
    • Craig Topper's avatar
      [X86] Emit a PACKUS instead of a VECTOR_SHUFFLE from LowerTRUNCATE for v16i16->v16i8. · aa52ee27
      Craig Topper authored
      We can't guarantee that demanded bits passing through the vector shuffle won't cause the AND in front of this to be removed. This would prevent the PACKUS from being matched during shuffle lowering.
      
      Unfortunately, this adds a packuswb to one of the vector-reduce-mul.ll tests since we were removing the shuffle via SimplifyDemandedVectorElts. We appear to have similar issues with vpmovwb on the same test case on other targets.
      
      llvm-svn: 347361
      aa52ee27
    • Marshall Clow's avatar
      A couple of tests were broken when clang implemented the compiler parts of... · 289f1ce5
      Marshall Clow authored
      A couple of tests were broken when clang implemented the compiler parts of P0482 (support for char8_t). Comment out those bits until we implement the corresponding bits in libc++
      
      llvm-svn: 347360
      289f1ce5
    • Zachary Turner's avatar
      Fix pointer options mask. It was off by 1 bit. · 53c9ca6c
      Zachary Turner authored
      llvm-svn: 347359
      53c9ca6c
    • David Carlier's avatar
      d931c135
    • David Carlier's avatar
      [Sanitizer] Unbreak non NetBSD builds. · a1ea566f
      David Carlier authored
      llvm-svn: 347357
      a1ea566f
    • Sanjay Patel's avatar
      [DAGCombiner] look through bitcasts when trying to narrow vector binops · 357053f2
      Sanjay Patel authored
        
      This is another step in vector narrowing - a follow-up to D53784
      (and hoping to eventually squash potential regressions seen in
      D51553).
      
      The x86 test diffs are wins, but the AArch64 diff is probably not.
      That problem already exists independent of this patch (see PR39722), but it
      went unnoticed in the previous patch because there were no regression tests
      that showed the possibility.
      
      The x86 diff in i64-mem-copy.ll is close. Given the frequency throttling
      concerns with using wider vector ops, an extra extract to reduce vector
      width is the right trade-off at this level of codegen.
      
      Differential Revision: https://reviews.llvm.org/D54392
      
      llvm-svn: 347356
      357053f2
    • David Carlier's avatar
      [Sanitizer] intercept setvbuf on other platforms where it is supported · 5ffb47b3
      David Carlier authored
      Unit tests enabled only in platform tested.
      
      Reviewers: krytarowski, vitalybuka
      
      Reviewed By: krytarowski, vitalybuka
      
      Differential Revision: https://reviews.llvm.org/D54739
      
      llvm-svn: 347355
      5ffb47b3
    • Zachary Turner's avatar
      [CodeView] Add support for ref-qualified member functions. · c68f8957
      Zachary Turner authored
      When you have a member function with a ref-qualifier, for example:
      
      struct Foo {
        void Func() &;
        void Func2() &&;
      };
      
      clang-cl was not emitting this information. Doing so is a bit
      awkward, because it's not a property of the LF_MFUNCTION type, which
      is what you'd expect. Instead, it's a property of the this pointer
      which is actually an LF_POINTER. This record has an attributes
      bitmask on it, and our handling of this bitmask was all wrong. We
      had some parts of the bitmask defined incorrectly, but importantly
      for this bug, we didn't know about these extra 2 bits that represent
      the ref qualifier at all.
      
      Differential Revision: https://reviews.llvm.org/D54667
      
      llvm-svn: 347354
      c68f8957
    • Zachary Turner's avatar
      [CodeView] Mark this pointers as const. · 3826566c
      Zachary Turner authored
      This is for compatibility with MSVC, which also marks this pointers
      as being const-qualified.
      
      Fixes llvm.org/pr36526
      
      Differential Revision: https://reviews.llvm.org/D54736
      
      llvm-svn: 347353
      3826566c
    • Sam McCall's avatar
      [CodeComplete] Penalize inherited ObjC properties for auto-completion · 8e9baa3f
      Sam McCall authored
      Summary:
      Similar to auto-completion for ObjC methods, inherited properties
      should be penalized / direct class and category properties should
      be prioritized.
      
      Note that currently, the penalty for using a result from a base class
      (CCD_InBaseClass) is equal to the penalty for using a method as a
      property (CCD_MethodAsProperty).
      
      Reviewers: jkorous, sammccall, akyrtzi, arphaman, benlangmuir
      
      Reviewed By: sammccall, akyrtzi
      
      Subscribers: arphaman, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D53900
      
      llvm-svn: 347352
      8e9baa3f
    • Joel E. Denny's avatar
      [OpenMP] Update CHECK-DAG usage in target_parallel_codegen.cpp · 435c739f
      Joel E. Denny authored
      This patch adjusts a test not to depend on deprecated FileCheck
      behavior that permits overlapping matches within a block of CHECK-DAG
      directives.  Thus, this patch also removes uses of FileCheck's
      -allow-deprecated-dag-overlap command-line option.
      
      There were two issues in this test:
      
      1. There were sets of patterns for store instructions in which a
      pattern X could match a superset of a pattern Y.  While X appeared
      before Y, Y's intended match appeared before X's intended match.  The
      result was that X matched Y's intended match.  Under the old
      overlapping behavior, Y also matched Y's intended match.  Under the
      new non-overlapping behavior, Y had nothing left to match.  This patch
      fixes this by gathering these sets in one place and putting the most
      specific patterns (Y) before the more general patterns (X).
      
      2. The CHECK-DAG patterns involving the variables CBPADDR3 and
      CBPADDR4 were the same, but there was only one match in the text, so
      CBPADDR4 patterns had nothing to match under the new non-overlapping
      behavior.  Moreover, a preceding related series of directives had
      variables (SADDR0, BPADDR0, etc.) numbered only 0 through 4, but this
      series had variables numbered 0 through 5.  Assuming CBPADDR4's
      directives were not intended, this patch removes them.
      
      Reviewed By: ABataev
      
      Differential Revision: https://reviews.llvm.org/D54765
      
      llvm-svn: 347351
      435c739f
    • Joel E. Denny's avatar
      [OpenMP] Update CHECK-DAG usage in for_codegen.cpp · d586bc6d
      Joel E. Denny authored
      This patch adjusts a test not to depend on deprecated FileCheck
      behavior that permits overlapping matches within a block of CHECK-DAG
      directives.  Thus, this patch also removes uses of FileCheck's
      -allow-deprecated-dag-overlap command-line option.
      
      Specifically, the FileCheck variables DBG_LOC_START, DBG_LOC_END, and
      DBG_LOC_CANCEL were all set to the same value.  As a result, three
      TERM_DEBUG-DAG patterns, one for each variable, all matched the same
      text under the old overlapping behavior.  Under the new
      non-overlapping behavior, that's not permitted.  This patch's solution
      is to replace these variables with one variable and replace these
      patterns with one pattern.
      
      Reviewed By: ABataev
      
      Differential Revision: https://reviews.llvm.org/D54764
      
      llvm-svn: 347350
      d586bc6d
    • Zachary Turner's avatar
      [CodeView] RelocPtr points to little endian data. · d16944ee
      Zachary Turner authored
      Don't use a uint32_t*, use a ulittle32_t* to make this correct
      on big endian systems.
      
      Patch by James Clarke
      Differential Revision: https://reviews.llvm.org/D54421
      
      llvm-svn: 347349
      d16944ee
    • Craig Topper's avatar
      [X86] Emit a single shuffle for the v16i8->v4i32 step of a... · 24b346da
      Craig Topper authored
      [X86] Emit a single shuffle for the v16i8->v4i32 step of a SIGN_EXTEND_VECTOR_INREG lowering on pre-sse4.1 targets.
      
      Previously we emitted to separate shuffles, one for unpcklbw and one for unpcklwd. Instead emit a single shuffle equivalent to both of the original shuffles. Shuffle lowering seems able to handle it. This avoids a bitcast between the two shuffles which seems helpful to DAG combine.
      
      Remove the custom type legalization for v8i8->v8i32. I had put that in to avoid some almost duplicate punpcklbw instructions I was seeing, but this lowering change seems to fix that. It also fixes some duplicate shuffles seen in vector-sext.ll
      
      llvm-svn: 347348
      24b346da
    • Louis Dionne's avatar
      [libcxx] Fix threads detection on GNU/Hurd · c2b375ad
      Louis Dionne authored
      GNU/Hurd provides standard Posix threads
      
      Reviewed as https://reviews.llvm.org/D54339.
      Thanks to Samuel Thibault for the patch.
      
      llvm-svn: 347347
      c2b375ad
Loading