1. Aug 09, 2019
  2. Aug 08, 2019
    • Simon Pilgrim's avatar
      [X86] SimplifyDemandedVectorElts - attempt to recombine target shuffle using DemandedElts mask · 67c246bb
      Simon Pilgrim authored
      If we don't demand all elements, then attempt to combine to a simpler shuffle.
      
      At the moment we can only do this if Depth == 0 as combineX86ShufflesRecursively uses Depth to track whether the shuffle has really changed or not - we'll need to change this before we can properly start merging combineX86ShufflesRecursively into SimplifyDemandedVectorElts. 
      
      The insertps-combine.ll regression is because XFormVExtractWithShuffleIntoLoad can't see through shuffles of different widths - this will be fixed in a follow-up commit.
      
      llvm-svn: 368307
      67c246bb
    • David Tenty's avatar
      Enable assembly output of local commons for AIX · 8558aac8
      David Tenty authored
      Summary:
      This patch enable assembly output of local commons for AIX using .lcomm
      directives. Adds a EmitXCOFFLocalCommonSymbol to MCStreamer so we can emit the
      AIX version of .lcomm assembly directives which include a csect name. Handle the
      case of BSS locals in PPCAIXAsmPrinter by using EmitXCOFFLocalCommonSymbol. Adds
      a test for generating .lcomm on AIX Targets.
      
      Reviewers: cebowleratibm, hubert.reinterpretcast, Xiangling_L, jasonliu, sfertile
      
      Reviewed By: sfertile
      
      Subscribers: wuzish, nemanjai, hiraditya, kbarton, MaskRay, jsji, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D64825
      
      llvm-svn: 368306
      8558aac8
    • David Green's avatar
      [ARM] Add support for MVE pre and post inc loads and stores · 27ca82f3
      David Green authored
      This adds pre- and post- increment and decrements for MVE loads and stores. It
      uses the builtin pre and post load/store detection, unlike Neon. Loads are
      selected with the code in tryT2IndexedLoad, stores are selected with tablegen
      patterns. The immediates have a +/-7bit range, multiplied by the size of the
      element.
      
      Differential Revision: https://reviews.llvm.org/D63840
      
      llvm-svn: 368305
      27ca82f3
    • David Green's avatar
      [ARM] MVE big endian loads/stores · 824ffd8b
      David Green authored
      This adds some missing patterns for big endian loads/stores, allowing unaligned
      loads/stores to also be selected with an extra VREV, which produces better code
      than aligning through a stack. Also moves VLDR_P0 to not be LE only, and
      adjusts some of the tests to show all that working.
      
      Differential Revision: https://reviews.llvm.org/D65583
      
      llvm-svn: 368304
      824ffd8b
    • Sam Elliott's avatar
      [RISCV] Allow ABI Names in Inline Assembly Constraints · 856d5c58
      Sam Elliott authored
      Summary:
      Clang will replace references to registers using ABI names in inline
      assembly constraints with references to architecture names, but other
      frontends do not. LLVM uses the regular assembly parser to parse inline asm,
      so inline assembly strings can contain references to registers using their
      ABI names.
      
      This patch adds support for parsing constraints using either the ABI name or
      the architectural register name. This means we do not need to implement the
      ABI name replacement code in every single frontend, especially those like
      Rust which are a very thin shim on top of LLVM IR's inline asm, and that
      constraints can more closely match the assembly strings they refer to.
      
      Reviewers: asb, simoncook
      
      Reviewed By: simoncook
      
      Subscribers: hiraditya, rbar, johnrusso, JDevlieghere, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D65947
      
      llvm-svn: 368303
      856d5c58
    • Louis Dionne's avatar
      [pstl] Remove stray semicolon · 21536073
      Louis Dionne authored
      llvm-svn: 368302
      21536073
    • Diogo N. Sampaio's avatar
      [FIX][NFC] Update clang sema test · dd591977
      Diogo N. Sampaio authored
      Try to fix Sema test for default alignment for when
      compiling to ARM, but not to android, due
      r9427aa2d
      
      llvm-svn: 368301
      dd591977
    • Sam Elliott's avatar
      [RISCV] Minimal stack realignment support · cd44aee3
      Sam Elliott authored
      Summary:
      Currently the RISC-V backend does not realign the stack. This can be an issue even for the RV32I/RV64I ABIs (where the stack is 16-byte aligned), though is rare. It will be much more comment with RV32E (though the alignment requirements for common data types remain under-documented...).
      
      This patch adds minimal support for stack realignment. It should cope with large realignments. It will error out if the stack needs realignment and variable sized objects are present.
      
      It feels like a lot of the code like getFrameIndexReference and determineFrameLayout could be refactored somehow, as right now it feels fiddly and brittle. We also seem to allocate a lot more memory than GCC does for equivalent C code.
      
      Reviewers: asb
      
      Reviewed By: asb
      
      Subscribers: wwei, jrtc27, s.egerton, MaskRay, Jim, lenary, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D62007
      
      llvm-svn: 368300
      cd44aee3
    • Marshall Clow's avatar
      fde236b1
    • Fangrui Song's avatar
      ba4bda65
    • Thomas Preud'homme's avatar
      [FileCheck] Add missing includes in header · b1add2b7
      Thomas Preud'homme authored
      Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk
      
      Subscribers: hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D65778
      
      llvm-svn: 368297
      b1add2b7
    • Tim Corringham's avatar
      Add llvm.licm.disable metadata · 4f64f1ba
      Tim Corringham authored
      For some targets the LICM pass can result in sub-optimal code in some
      cases where it would be better not to run the pass, but it isn't
      always possible to suppress the transformations heuristically.
      
      Where the front-end has insight into such cases it is beneficial
      to attach loop metadata to disable the pass - this change adds the
      llvm.licm.disable metadata to enable that.
      
      Differential Revision: https://reviews.llvm.org/D64557
      
      llvm-svn: 368296
      4f64f1ba
    • Alexey Bataev's avatar
      [OPENMP]Add support for analysis of linear variables and step. · 195ae903
      Alexey Bataev authored
      Summary:
      Added support for basic analysis of the linear variables and linear step
      expression. Linear loop iteration variables must be excluded from this
      analysis, only non-loop iteration variables must be analyzed.
      
      Reviewers: NoQ
      
      Subscribers: guansong, cfe-commits, caomhin, kkwli0
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D65461
      
      llvm-svn: 368295
      195ae903
    • Stefan Granitz's avatar
      [lldb][CMake] Disable modules in Xcode projects · c822ab8f
      Stefan Granitz authored
      Summary: Apparently, module-enabled builds clash with Xcode's analysis.
      
      Reviewers: aprantl, jingham, davide, teemperor
      
      Reviewed By: davide
      
      Subscribers: mgorny, lldb-commits, #lldb
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D65874
      
      llvm-svn: 368294
      c822ab8f
    • Peter Smith's avatar
      [ELF][AArch64] Support for movz, movk tprel relocations · d4695e1d
      Peter Smith authored
      This patch Implements the R_AARCH64_TLSLE_MOVW_TPREL_G*[_NC]. These are
      logically the same calculation as the existing TLSLE relocations with
      the result written back to mov[nz] and movk instructions. A typical code
      sequence is:
      movz x0, #:tprel_g2:foo    // bits [47:32] of R_TLS with overflow check
      movk x0, #:tprel_g1_nc:foo // bits [31:16] of R_TLS with no overflow check
      movk x0, #:tprel_g0_nc:foo // bits [15:0] of R_TLS with no overflow check
      
      This type of code sequence is usually used with a large code model.
      
      Differential Revision: https://reviews.llvm.org/D65882
      
      Fixes: PR42853
      llvm-svn: 368293
      d4695e1d
    • Simon Pilgrim's avatar
      [X86][SSE] matchBinaryPermuteShuffle - split INSERTPS combines · 59fabf9c
      Simon Pilgrim authored
      We need to prefer INSERTPS with zeros over SHUFPS, but fallback to INSERTPS if that fails.
      
      llvm-svn: 368292
      59fabf9c
    • Johan Vikstrom's avatar
      [clangd] Added semantic highlighting support for primitives. · d73d9947
      Johan Vikstrom authored
      Summary:
      Adds a new HighlightingKind "Primitive". Adds a special case for TypeLocs that have an underlying TypePtr that is are builtin types, adding them as primitives.
      The primary reason for this change is because otherwise typedefs that typedef primitives `typedef int A` would not get highlighted (so in the example `A` would not get any highlightings.)
      
      Reviewers: hokein, ilya-biryukov
      
      Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D65943
      
      llvm-svn: 368291
      d73d9947
    • Sanjay Patel's avatar
      [Reassociate] add more tests with negative FP constants; NFC · e1e749d8
      Sanjay Patel authored
      llvm-svn: 368290
      e1e749d8
    • Pavel Labath's avatar
      ObjectFileELF: Convert a unit test to a lit test · 88c77d67
      Pavel Labath authored
      It is much easier to test this functionality via lldb-test.
      
      llvm-svn: 368289
      88c77d67
    • Diogo N. Sampaio's avatar
      [ARM] Set default alignment to 64bits · 9427aa2d
      Diogo N. Sampaio authored
      Summary:
      The maximum alignment used by ARM arch
      is 64bits, not 128.
      
      This could cause overaligned memory
      access for 128 bit neon vector that
      have unpredictable behaviour.
      
      This fixes: https://bugs.llvm.org/show_bug.cgi?id=42668
      
      Reviewers: ostannard, dmgreen, srhines, danalbert, pirama, peter.smith
      
      Reviewed By: pirama, peter.smith
      
      Subscribers: phosek, thegameg, thakis, llvm-commits, carwil, peter.smith, javed.absar, kristof.beyls, cfe-commits
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D65000
      
      llvm-svn: 368288
      9427aa2d
    • Johan Vikstrom's avatar
      [clangd] Added an early return from VisitMemberExpr in SemanticHighlighting if... · b865d5a4
      Johan Vikstrom authored
      [clangd] Added an early return from VisitMemberExpr in SemanticHighlighting if underlying MemberDecl is a CXXConversionDecl.
      
      Summary:
      Conversion operators contain invalid MemberLocs which caused SemanticHighlighting
      to emit a lot of error logs in large files as they can occur fairly
      often (for example converting StringRef to std string).
      As the only thing happening was a lot of error logs being
      emited there doesn't really seem to be any way to test this
      (no erroneous tokens are added). But emiting as many logs as
      were being emited is not wanted.
      
      This also adds a test to guard against regressions for highlightings
      disapearing from places where the conversion operators are used as their
      behaviour differ from the other CXXMethodDecls.
      
      Reviewers: hokein, ilya-biryukov
      
      Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D65928
      
      llvm-svn: 368287
      b865d5a4
    • Louis Dionne's avatar
      [libc++abi] Fix tests when pstl is enabled · df13b939
      Louis Dionne authored
      llvm-svn: 368286
      df13b939
    • Louis Dionne's avatar
      [pstl] Error out when the backend is left unspecified · a8a436ef
      Louis Dionne authored
      Instead of silently falling back to the serial backend, it's better if
      we fail loudly when the parallel backend is left unspecified. Since we
      have a __pstl_config_site header, a backend should always be specified.
      
      llvm-svn: 368285
      a8a436ef
    • Louis Dionne's avatar
      [pstl] Add a __pstl_config_site header to record the CMake configuration · bf480843
      Louis Dionne authored
      This commit adds a __pstl_config_site header that contains the value of
      macros specified at CMake configuration time. It works similarly to
      libc++'s __config_site header, except we always include it as a separate
      file instead of concatenating it to the main configuration header.
      
      It is necessary to thread the includes for that header into libc++'s
      lit configuration, otherwise we'd be requiring an installation step
      prior to running the test suite.
      
      llvm-svn: 368284
      bf480843
    • Haojian Wu's avatar
      [clangd] Don't include internal gtest header. · bdc022a6
      Haojian Wu authored
      llvm-svn: 368283
      bdc022a6
    • Haojian Wu's avatar
      [clangd] Remove a function accidently being added in rL368261. · 34166ec8
      Haojian Wu authored
      llvm-svn: 368282
      34166ec8
    • Bjorn Pettersson's avatar
      Fix check in tools/gold/X86/strip_names.ll regarding unnamed args · 4dbbb734
      Bjorn Pettersson authored
      After r367755 value numbers are printed for unnamed
      function arguments. The tools/gold/X86/strip_names.ll
      was not updated in that commit, so this patch can be
      seen as a follow up to r367755.
      
      llvm-svn: 368281
      4dbbb734
    • Krasimir Georgiev's avatar
      [clang-format] fix crash involving invalid preprocessor line · 9ab051bd
      Krasimir Georgiev authored
      Summary:
      This (invalid) fragment is crashing clang-format:
      ```
      #if 1
      int x;
      #elif
      int y;
      #endif
      ```
      
      The reason being that the parser expects a token after `#elif`, and the
      subsequent parsing of the next line does not check if `CurrentToken` is null.
      
      Reviewers: gribozavr
      
      Reviewed By: gribozavr
      
      Subscribers: cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D65940
      
      llvm-svn: 368280
      9ab051bd
    • Pavel Labath's avatar
      Fix LLDB_CONFIGURATION_DEBUG builds for the GetSymbolVendor removal · 0de33de8
      Pavel Labath authored
      fix one usage that is ifdefed-out in non-debug builds.
      
      llvm-svn: 368279
      0de33de8