1. Jun 23, 2019
    • Craig Topper's avatar
      [SelectionDAG] Remove the code that attempts to calculate the alignment for... · 6ddc7912
      Craig Topper authored
      [SelectionDAG] Remove the code that attempts to calculate the alignment for the second half of a split masked load/store.
      
      The code divides the alignment by 2 if the original alignment is
      equal to the original VT size. But this wouldn't be correct
      if the alignment was larger than the VT size.
      
      The memory operand object already takes care of calling MinAlign
      on the base alignment and the memory pointer offset. So we don't
      need any special code at all.
      
      llvm-svn: 364151
      6ddc7912
    • Craig Topper's avatar
      [X86][SelectionDAG] Cleanup and simplify masked_load/masked_store in tablegen.... · cadd826d
      Craig Topper authored
      [X86][SelectionDAG] Cleanup and simplify masked_load/masked_store in tablegen. Use more precise PatFrags for scalar masked load/store.
      
      Rename masked_load/masked_store to masked_ld/masked_st to discourage
      their direct use. We need to check truncating/extending and
      compressing/expanding before using them. This revealed that
      our scalar masked load/store patterns were misusing these.
      
      With those out of the way, renamed masked_load_unaligned and
      masked_store_unaligned to remove the "_unaligned". We didn't
      check the alignment anyway so the name was somewhat misleading.
      
      Make the aligned versions inherit from masked_load/store instead
      from a separate identical version. Merge the 3 different alignments
      PatFrags into a single version that uses the VT from the SDNode to
      determine the size that the alignment needs to match.
      
      llvm-svn: 364150
      cadd826d
    • Eric Fiselier's avatar
      Disable test by default · 8d792456
      Eric Fiselier authored
      llvm-svn: 364149
      8d792456
    • Eric Fiselier's avatar
      Add super fast _IsSame trait for internal use. · de2b633a
      Eric Fiselier authored
      Clang provides __is_same that doesn't produce any instantiations
      and just returns a bool. It's a lot faster than using std::is_same
      
      I'll follow up with a patch to actually start using it.
      
      llvm-svn: 364148
      de2b633a
    • Saleem Abdulrasool's avatar
      Revert "builtins: relax __iso_volatile_{load,store}32" · 6281ccea
      Saleem Abdulrasool authored
      This reverts commit SVN r364137.  This seems to be cause problems with
      casting in C.
      
      llvm-svn: 364147
      6281ccea
    • Eric Fiselier's avatar
      Add noexcept throughout <atomic> · cf92a1f6
      Eric Fiselier authored
      The CMake CheckLibcxxAtomic module was always failing to compile
      the example, even when libatomic wasn't needed. This was caused
      because the check doesn't link a C++ runtime library to provide
      std::terminate, which is required for exception support.
      
      The check is still really broken, but <atomic> is better!
      
      llvm-svn: 364146
      cf92a1f6
    • Mike Spertus's avatar
      MSVC visualizers for type aliases · 08c699a1
      Mike Spertus authored
      For example, the following TypeAliasTemplateDecl now displays in the autos window as
      template<class T> using type_identity_t = type_identity<T>::type;
      
      llvm-svn: 364145
      08c699a1
    • Eric Fiselier's avatar
      Fix placement of -Wno-ignored-attributes · 2a31c9ba
      Eric Fiselier authored
      llvm-svn: 364144
      2a31c9ba
    • Keno Fischer's avatar
      [Support] Fix build under Emscripten · 5f4ae7c4
      Keno Fischer authored
      Summary:
      Emscripten's libc doesn't define MNT_LOCAL, thus causing a build
      failure in the fallback path. However, to the best of my knowledge,
      it also doesn't support remote file system mounts, so we may simply
      return `true` here (as we do for e.g. Fuchsia). With this fix, the
      core LLVM libraries build correctly under emscripten (though some
      of the tools and utils do not).
      
      Reviewers: kripken
      Differential Revision: https://reviews.llvm.org/D63688
      
      llvm-svn: 364143
      5f4ae7c4
    • Eric Fiselier's avatar
      Disable -Wignored-attributes for now · bc85dbe2
      Eric Fiselier authored
      llvm-svn: 364142
      bc85dbe2
    • Don Hinton's avatar
      Revert [CommandLine] Remove OptionCategory and SubCommand caches from the Option class. · 64b09245
      Don Hinton authored
      This reverts r364134 (git commit a5b83bc9)
      
      Caused errors in the asan bot, so the GeneralCategory global needs to
      be changed to ManagedStatic.
      
      Differential Revision: https://reviews.llvm.org/D62105
      
      llvm-svn: 364141
      64b09245
    • Richard Smith's avatar
      Fix TBAA representation for zero-sized fields and unnamed bit-fields. · 1fa07ebd
      Richard Smith authored
      Unnamed bit-fields should not be represented in the TBAA metadata
      because they do not represent storage fields (they only affect layout).
      
      Zero-sized fields should not be represented in the TBAA metadata
      because by definition they have no associated storage (so we will never
      emit a load or store through them), and they might not appear in
      declaration order within the struct layout.
      
      Fixes a verifier failure when emitting a TBAA-enabled load through a
      class type containing a zero-sized field.
      
      llvm-svn: 364140
      1fa07ebd
    • Richard Smith's avatar
      Remove reliance on toCharUnitsFromBits rounding down. · 780c374b
      Richard Smith authored
      llvm-svn: 364139
      780c374b
    • Mike Spertus's avatar
      Natural MSVC visualization of constructors · d050479b
      Mike Spertus authored
      E.g., Allow MSVC to visualize a CXXConstructorDecl like 
      Constructor { Y(type_identity_t<T>)}
      
      llvm-svn: 364138
      d050479b
    • Saleem Abdulrasool's avatar
      builtins: relax __iso_volatile_{load,store}32 · ebae85bc
      Saleem Abdulrasool authored
      This is reduced from MSVC's MSVCPRT 14.21.27702 atomic header.  Because
      Windows is a LLP64 environment, `long`, `long int`, and `int` are all
      synonymous.  Change the signature for `__iso_volatile_load32` and
      `__iso_volatile_store32` to accept a `long int` instead.  This allows
      an implicit cast of `int` to `long int` while also permitting `long`
      to be accepted.
      
      llvm-svn: 364137
      ebae85bc
    • Simon Pilgrim's avatar
      [X86][SSE] Fold extract_subvector(vselect(x,y,z),0) ->... · a962c1bc
      Simon Pilgrim authored
      [X86][SSE] Fold extract_subvector(vselect(x,y,z),0) -> vselect(extract_subvector(x,0),extract_subvector(y,0),extract_subvector(z,0))
      
      llvm-svn: 364136
      a962c1bc
    • Philip Reames's avatar
      Exploit a zero LoopExit count to eliminate loop exits · 8deb84c8
      Philip Reames authored
      This turned out to be surprisingly effective. I was originally doing this just for completeness sake, but it seems like there are a lot of cases where SCEV's exit count reasoning is stronger than it's isKnownPredicate reasoning.
      
      Once this is in, I'm thinking about trying to build on the same infrastructure to eliminate provably untaken checks. There may be something generally interesting here.
      
      Differential Revision: https://reviews.llvm.org/D63618
      
      llvm-svn: 364135
      8deb84c8
    • Don Hinton's avatar
      [CommandLine] Remove OptionCategory and SubCommand caches from the Option class. · a5b83bc9
      Don Hinton authored
      Summary:
      This change processes `OptionCategory`s and `SubCommand`s as they
       are seen instead of caching them in the Option class and processing
      them later.  Doing so simplifies the work needed to be done by the Global
      parser and significantly reduces the size of the Option class to a mere 64
      bytes.
      
      Removing  the `OptionCategory` cache saved 24 bytes, and removing
      the `SubCommand` cache saved an additional 48 bytes, for a total of a
      72 byte reduction.
      
      Reviewers: beanz, zturner, MaskRay, serge-sans-paille
      
      Reviewed By: serge-sans-paille
      
      Subscribers: serge-sans-paille, tstellar, zturner, hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D62105
      
      llvm-svn: 364134
      a5b83bc9
    • Hubert Tong's avatar
      [NFC] Fix indentation in PPCAsmPrinter.cpp · 6f3222ed
      Hubert Tong authored
      After r248261, the indentation switches, inside a namespace definition,
      between indenting and not indenting one level in for that namespace; the
      abomination occurs in the middle of a class definition. Fix that.
      
      llvm-svn: 364133
      6f3222ed
    • Hubert Tong's avatar
      [PowerPC][NFC] Move comment to the relevant function · d801cb1f
      Hubert Tong authored
      A comment that applies to a virtual destructor was placed on a class
      constructor. Move the comment to where it belongs.
      
      llvm-svn: 364132
      d801cb1f
  2. Jun 22, 2019