1. Sep 06, 2019
    • Hans Wennborg's avatar
      Merging r371088 and r371095: · 5fc03679
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r371088 | spatel | 2019-09-05 18:58:18 +0200 (Thu, 05 Sep 2019) | 1 line
      
      [x86] add test for horizontal math bug (PR43225); NFC
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r371095 | spatel | 2019-09-05 19:28:17 +0200 (Thu, 05 Sep 2019) | 3 lines
      
      [x86] fix horizontal math bug exposed by improved demanded elements analysis (PR43225)
      
      https://bugs.llvm.org/show_bug.cgi?id=43225
      ------------------------------------------------------------------------
      
      llvm-svn: 371178
      5fc03679
  2. Sep 05, 2019
    • Hans Wennborg's avatar
      Merging r371027: · c2551012
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r371027 | hans | 2019-09-05 10:43:00 +0200 (Thu, 05 Sep 2019) | 20 lines
      
      Revert r361885 "[Driver] Fix -working-directory issues"
      
      This made clang unable to open files using relative paths on network shares on
      Windows (PR43204). On the bug it was pointed out that createPhysicalFileSystem()
      is not terribly mature, and using it is risky. Reverting for now until there's
      a clear way forward.
      
      > Currently the `-working-directory` option does not actually impact the working
      > directory for all of the clang driver, it only impacts how files are looked up
      > to make sure they exist.  This means that that clang passes the wrong paths
      > to -fdebug-compilation-dir and -coverage-notes-file.
      >
      > This patch fixes that by changing all the places in the driver where we convert
      > to absolute paths to use the VFS, and then calling setCurrentWorkingDirectory on
      > the VFS.  This also changes the default VFS for `Driver` to use a virtualized
      > working directory, instead of changing the process's working directory.
      >
      > Differential Revision: https://reviews.llvm.org/D62271
      
      This also revertes the part of r369938 which checked that -working-directory works.
      ------------------------------------------------------------------------
      
      llvm-svn: 371060
      c2551012
    • Hans Wennborg's avatar
      Merging r370426: · ff382fe7
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r370426 | maskray | 2019-08-30 04:20:49 +0200 (Fri, 30 Aug 2019) | 26 lines
      
      [PPC32] Emit R_PPC_GOT_TPREL16 instead R_PPC_GOT_TPREL16_LO
      
      Unlike ppc64, which has ADDISgotTprelHA+LDgotTprelL pairs,
      ppc32 just uses LDgotTprelL32, so it does not make lots of sense to use
      _LO without a paired _HA.
      
      Emit R_PPC_GOT_TPREL16 instead R_PPC_GOT_TPREL16_LO to match GCC, and
      get better linker relocation check. Note, R_PPC_GOT_TPREL16_{HA,LO}
      don't have good linker support:
      
      (a) lld does not support R_PPC_GOT_TPREL16_{HA,LO}.
      (b) Top of tree ld.bfd does not support R_PPC_GOT_REL16_HA Initial-Exec -> Local-Exec relaxation:
      
        // a.o
        addis 3, 3, tsd_tls@got@tprel@ha
        lwz 3, tsd_tls@got@tprel@l(3)
        add 3, 3, tsd_tls@tls
        // b.o
        .section .tdata,"awT"; .globl tsd_tls; tsd_tls:
      
        // ld/ld-new a.o b.o
        internal error, aborting at ../../bfd/elf32-ppc.c:7952 in ppc_elf_relocate_section
      
      Reviewed By: adalava
      
      Differential Revision: https://reviews.llvm.org/D66925
      ------------------------------------------------------------------------
      
      llvm-svn: 371059
      ff382fe7
    • Hans Wennborg's avatar
      Merging r369760: · 8d4ccfe3
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369760 | szelethus | 2019-08-23 16:21:13 +0200 (Fri, 23 Aug 2019) | 13 lines
      
      [analyzer] Avoid unnecessary enum range check on LValueToRValue casts
      
      Summary: EnumCastOutOfRangeChecker should not perform enum range checks on LValueToRValue casts, since this type of cast does not actually change the underlying type.   Performing the unnecessary check actually triggered an assertion failure deeper in EnumCastOutOfRange for certain input (which is captured in the accompanying test code).
      
      Reviewers: #clang, Szelethus, gamesh411, NoQ
      
      Reviewed By: Szelethus, gamesh411, NoQ
      
      Subscribers: NoQ, gamesh411, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, Charusso, bjope, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D66014
      ------------------------------------------------------------------------
      
      llvm-svn: 371058
      8d4ccfe3
    • Hans Wennborg's avatar
      Merging r371048: · ab62fa56
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r371048 | jonpa | 2019-09-05 12:20:05 +0200 (Thu, 05 Sep 2019) | 7 lines
      
      [SystemZ]  Recognize INLINEASM_BR in backend
      
      Handle the remaining cases also by handling asm goto in
      SystemZInstrInfo::getBranchInfo().
      
      Review: Ulrich Weigand
      https://reviews.llvm.org/D67151
      ------------------------------------------------------------------------
      
      llvm-svn: 371057
      ab62fa56
    • Hans Wennborg's avatar
      Merging r370430: · d8975f4f
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r370430 | djg | 2019-08-30 06:33:22 +0200 (Fri, 30 Aug 2019) | 12 lines
      
      [CodeGen] Fix lowering for returning the result of an extractvalue
      
      When the number of return values exceeds the number of registers available,
      SelectionDAGBuilder::visitRet transforms a function's return to use a
      pointer to a buffer to hold return values. When the returned value is an
      operator such as extractvalue, the value may have a non-zero result number.
      Add that number to the indexing when obtaining the values to store.
      
      This fixes https://bugs.llvm.org/show_bug.cgi?id=43132.
      
      Differential Revision: https://reviews.llvm.org/D66978
      
      ------------------------------------------------------------------------
      
      llvm-svn: 371053
      d8975f4f
    • Hans Wennborg's avatar
      Merging r370720 and r370721: · f8b1c252
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r370720 | bjope | 2019-09-03 11:33:40 +0200 (Tue, 03 Sep 2019) | 13 lines
      
      [LV] Precommit test case showing miscompile from PR43166. NFC
      
      Summary:  Precommit test case showing miscompile from PR43166.
      
      Reviewers: fhahn, Ayal
      
      Reviewed By: fhahn
      
      Subscribers: rkruppe, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D67072
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r370721 | bjope | 2019-09-03 11:33:55 +0200 (Tue, 03 Sep 2019) | 20 lines
      
      [LV] Fix miscompiles by adding non-header PHI nodes to AllowedExit
      
      Summary:
      Fold-tail currently supports reduction last-vector-value live-out's,
      but has yet to support last-scalar-value live-outs, including
      non-header phi's. As it relies on AllowedExit in order to detect
      them and bail out we need to add the non-header PHI nodes to
      AllowedExit, otherwise we end up with miscompiles.
      
      Solves https://bugs.llvm.org/show_bug.cgi?id=43166
      
      Reviewers: fhahn, Ayal
      
      Reviewed By: fhahn, Ayal
      
      Subscribers: anna, hiraditya, rkruppe, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D67074
      ------------------------------------------------------------------------
      
      llvm-svn: 371044
      f8b1c252
    • Hans Wennborg's avatar
      Merging r370753: · 5a661d61
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r370753 | jonpa | 2019-09-03 15:31:22 +0200 (Tue, 03 Sep 2019) | 6 lines
      
      [SystemZ]  Recognize INLINEASM_BR in backend.
      
      SystemZInstrInfo::analyzeBranch() needs to check for INLINEASM_BR
      instructions, or it will crash.
      
      Review: Ulrich Weigand
      ------------------------------------------------------------------------
      
      llvm-svn: 371043
      5a661d61
    • Hans Wennborg's avatar
      Merging r369310: · 1b8425cf
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369310 | hubert.reinterpretcast | 2019-08-20 01:12:48 +0200 (Tue, 20 Aug 2019) | 24 lines
      
      [cmake] Link in LLVMPasses due to dependency by LLVMOrcJIT; NFC
      
      Summary:
      rL367756 (f5c40cb9) increases the dependency of LLVMOrcJIT on LLVMPasses.
      In particular, symbols defined in LLVMPasses that are referenced by the
      destructor of `PassBuilder` are now referenced by LLVMOrcJIT through
      `Speculation.cpp.o`.
      
      We believe that referencing symbols defined in LLVMPasses in the
      destructor of `PassBuilder` is valid, and that adding to the set of such
      symbols is legitimate. To support such cases, this patch adds LLVMPasses
      to the set of libraries being linked when linking in LLVMOrcJIT causes
      such symbols from LLVMPasses to be referenced.
      
      Reviewers: Whitney, anhtuyen, pree-jackie
      
      Reviewed By: pree-jackie
      
      Subscribers: mgorny, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D66441
      
      ------------------------------------------------------------------------
      
      llvm-svn: 371042
      1b8425cf
    • Hans Wennborg's avatar
      Merging r370850: · 8b1a3a38
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r370850 | hans | 2019-09-04 10:19:30 +0200 (Wed, 04 Sep 2019) | 20 lines
      
      Re-commit r363191 "[MS] Pretend constexpr variable template specializations are inline"
      
      While the next Visual Studio update (16.3) will fix this issue, that hasn't
      shipped yet. Until then Clang wouldn't work with MSVC's headers which seems
      unfortunate. Let's keep this in until VS 16.3 ships. (See also PR42843.)
      
      > Fixes link errors with clang and the latest Visual C++ 14.21.27702
      > headers, which was reported as PR42027.
      >
      > I chose to intentionally make these things linkonce_odr, i.e.
      > discardable, so that we don't emit definitions of these things in every
      > translation unit that includes STL headers.
      >
      > Note that this is *not* what MSVC does: MSVC has not yet implemented C++
      > DR2387, so they emit fully specialized constexpr variable templates with
      > static / internal linkage.
      >
      > Reviewers: rsmith
      >
      > Differential Revision: https://reviews.llvm.org/D63175
      ------------------------------------------------------------------------
      
      llvm-svn: 371040
      8b1a3a38
    • Hans Wennborg's avatar
      ReleaseNotes tweaks · 9831a1cc
      Hans Wennborg authored
      llvm-svn: 371037
      9831a1cc
    • Rui Ueyama's avatar
      Update ReleaseNotes for lld 9.0. · 4bc0d50a
      Rui Ueyama authored
      llvm-svn: 371034
      4bc0d50a
  3. Aug 31, 2019
    • Zoe Carver's avatar
      Update libc++ release notes · fa0bc006
      Zoe Carver authored
      This patch updates the libc++ release notes.
      I have picked out several features/fixes/updates
      that I think are worth mentioning.
      
      llvm-svn: 370514
      fa0bc006
  4. Aug 30, 2019
    • Hans Wennborg's avatar
      index.rst: Remove non-release warning · 1cf7a880
      Hans Wennborg authored
      llvm-svn: 370477
      1cf7a880
    • Hans Wennborg's avatar
      Re-generate {Attribute,ClangCommandLine,Diagnostics}Reference.rst · bb081fe6
      Hans Wennborg authored
      $ bin/clang-tblgen -gen-diag-docs -I../cfe.src/include \
            -I../cfe.src/include/clang/Basic/ \
            ../cfe.src/include/clang/Basic/Diagnostic.td -o \
            ../cfe.src/docs/DiagnosticsReference.rst && \
      bin/clang-tblgen -gen-attr-docs -I../cfe.src/include \
              ../cfe.src/include/clang/Basic/Attr.td -o \
              ../cfe.src/docs/AttributeReference.rst && \
      bin/clang-tblgen -gen-opt-docs -I../cfe.src/include \
              -I../cfe.src/include/clang/Driver -I../llvm.src/include \
              ../cfe.src/include/clang/Driver/ClangOptionDocs.td -o \
              ../cfe.src/docs/ClangCommandLineReference.rst
      
      llvm-svn: 370450
      bb081fe6
    • Hans Wennborg's avatar
      Merging r370355: · 892dfd7d
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r370355 | joerg | 2019-08-29 15:22:30 +0200 (Thu, 29 Aug 2019) | 5 lines
      
      Allow replaceAndRecursivelySimplify to list unsimplified visitees.
      
      This is part of D65280 and split it to avoid ABI changes on the 9.0
      release branch.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 370447
      892dfd7d
    • Hans Wennborg's avatar
      Merging r370404: · 25f22e70
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r370404 | rksimon | 2019-08-29 22:22:08 +0200 (Thu, 29 Aug 2019) | 3 lines
      
      [X86][SSE] combinePMULDQ - pmuldq(x, 0) -> zero vector (PR43159)
      
      ISD::isBuildVectorAllZeros permits undef elements to be present, which means we can't return it as a zero vector. PMULDQ/PMULUDQ is an extending multiply so a multiply by zero of the lower 32-bits should result in a zero 64-bit element.
      ------------------------------------------------------------------------
      
      llvm-svn: 370445
      25f22e70
    • Hans Wennborg's avatar
      ReleaseNotes: pocl and TCE; by Pekka Jääskeläinen · 92734ca8
      Hans Wennborg authored
      llvm-svn: 370439
      92734ca8
    • Hans Wennborg's avatar
      Merging r368164: · 3c8c5570
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r368164 | s.desmalen | 2019-08-07 14:41:38 +0200 (Wed, 07 Aug 2019) | 13 lines
      
      [AArch64][WinCFI] Do not pair callee-save instructions in LoadStoreOptimizer
      
      Prevent the LoadStoreOptimizer from pairing any load/store instructions with
      instructions from the prologue/epilogue if the CFI information has encoded the
      operations as separate instructions.  This would otherwise lead to a mismatch
      of the actual prologue size from the size as recorded in the Windows CFI.
      
      Reviewers: efriedma, mstorsjo, ssijaric
      
      Reviewed By: efriedma
      
      Differential Revision: https://reviews.llvm.org/D65817
      
      ------------------------------------------------------------------------
      
      llvm-svn: 370438
      3c8c5570
  5. Aug 29, 2019
  6. Aug 28, 2019
    • Hans Wennborg's avatar
      Merging r370035: · e7a52d72
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r370035 | devnexen | 2019-08-27 12:04:03 +0200 (Tue, 27 Aug 2019) | 7 lines
      
      [ReleaseNotes] MemorySanitizer support of ASLR on FreeBSD
      
      Reviewers: sylvestre.ledru, kcc
      
      Reviewed By: sylvestre.ledru
      
      Differential Revision: https://reviews.llvm.org/D66792
      ------------------------------------------------------------------------
      
      llvm-svn: 370213
      e7a52d72
    • Hans Wennborg's avatar
      Merging r370204: · f7a1e484
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r370204 | hans | 2019-08-28 15:55:10 +0200 (Wed, 28 Aug 2019) | 6 lines
      
      [SelectionDAG] Don't generate libcalls for wide shifts on Windows (PR42711)
      
      Neither libgcc or compiler-rt are usually used on Windows, so these
      functions can't be called.
      
      Differential revision: https://reviews.llvm.org/D66880
      ------------------------------------------------------------------------
      
      llvm-svn: 370205
      f7a1e484
    • Hans Wennborg's avatar
      Merging r369886: · e82a5360
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369886 | bjope | 2019-08-26 11:29:53 +0200 (Mon, 26 Aug 2019) | 23 lines
      
      [LoopUnroll] Handle certain PHIs in full unrolling properly
      
      Summary:
      When reconstructing the CFG of the loop after unrolling,
      LoopUnroll could in some cases remove the phi operands of
      loop-carried values instead of preserving them, resulting
      in undef phi values after loop unrolling.
      
      When doing this reconstruction, avoid removing incoming
      phi values for phis in the successor blocks if the successor
      is the block we are jumping to anyway.
      
      Patch-by: ebevhan
      
      Reviewers: fhahn, efriedma
      
      Reviewed By: fhahn
      
      Subscribers: bjope, lebedev.ri, zzheng, dmgreen, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D66334
      ------------------------------------------------------------------------
      
      llvm-svn: 370182
      e82a5360
    • Hans Wennborg's avatar
      Merging r370073: · 67afb7cb
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r370073 | lenary | 2019-08-27 17:41:16 +0200 (Tue, 27 Aug 2019) | 13 lines
      
      [RISCV] Set MaxAtomicInlineWidth and MaxAtomicPromoteWidth for RV32/RV64 targets with atomics
      
      Summary: This ensures that libcalls aren't generated when the target supports atomics. Atomics aren't in the base RV32I/RV64I instruction sets, so MaxAtomicInlineWidth and MaxAtomicPromoteWidth are set only when the atomics extension is being targeted. This must be done in setMaxAtomicWidth, as this should be done after handleTargetFeatures has been called.
      
      Reviewers: jfb, jyknight, wmi, asb
      
      Reviewed By: asb
      
      Subscribers: pzheng, MaskRay, s.egerton, lenary, dexonsmith, psnobl, benna, Jim, JohnLLVM, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, lewis-revill, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D57450
      ------------------------------------------------------------------------
      
      llvm-svn: 370181
      67afb7cb
    • Hans Wennborg's avatar
      Merging r370176: · 845db805
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r370176 | hans | 2019-08-28 11:21:56 +0200 (Wed, 28 Aug 2019) | 15 lines
      
      [LLVM-C] Fix ByVal Attribute crashing
      
      With the introduction of the typed byval attribute change there was no
      way that the LLVM-C API could create the correct class Attribute. If a
      program that uses the C API creates a ByVal attribute and annotates a
      function with that attribute LLVM will crash when it assembles or write
      that module containing the function out as bitcode.
      
      This change is a minimal fix to at least allow code to work, this is
      because the byval change is on the 9.0 and I don't want to introduce new
      LLVM-C API this late in the release cycle.
      
      By Jakob Bornecrantz!
      
      Differential revision: https://reviews.llvm.org/D66144
      ------------------------------------------------------------------------
      
      llvm-svn: 370178
      845db805