and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

  1. 13 Aug, 2019 9 commits
    • Hans Wennborg's avatar
      Merging r368549: · f44fc886
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368549 | hokein | 2019-08-12 11:35:04 +0200 (Mon, 12 Aug 2019) | 11 lines
      
      [clangd] Drop diags from non-written #include.
      
      Summary: This would fix that we show weird diagnostics on random lines of the main file.
      
      Reviewers: ilya-biryukov
      
      Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D66074
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368683
      f44fc886
    • Hans Wennborg's avatar
      Merging r367303: · fcfd891f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367303 | kadircet | 2019-07-30 12:26:51 +0200 (Tue, 30 Jul 2019) | 15 lines
      
      [clangd] Ignore diags from builtin files
      
      Summary:
      This fixes a case where we show diagnostics on arbitrary lines, in an
      internal codebase.
      
      Open for ideas on unittesting this.
      
      Reviewers: ilya-biryukov
      
      Subscribers: MaskRay, jkorous, arphaman, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D64863
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368682
      fcfd891f
    • Hans Wennborg's avatar
      Merging r368516: · ff20769b
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368516 | dim | 2019-08-10 21:07:38 +0200 (Sat, 10 Aug 2019) | 25 lines
      
      Add support for FreeBSD's LD_32_LIBRARY_PATH
      
      Summary:
      Because the dynamic linker for 32-bit executables on 64-bit FreeBSD uses
      the environment variable `LD_32_LIBRARY_PATH` instead of
      `LD_LIBRARY_PATH` to find needed dynamic libraries, running the 32-bit
      parts of the dynamic ASan tests will fail with errors similar to:
      
      ```
      ld-elf32.so.1: Shared object "libclang_rt.asan-i386.so" not found, required by "Asan-i386-inline-Dynamic-Test"
      ```
      
      This adds support for setting up `LD_32_LIBRARY_PATH` for the unit and
      regression tests.  It will likely also require a minor change to the
      `TestingConfig` class in `llvm/utils/lit/lit`.
      
      Reviewers: emaste, kcc, rnk, arichardson
      
      Reviewed By: arichardson
      
      Subscribers: kubamracek, krytarowski, fedor.sergeev, delcypher, #sanitizers, llvm-commits
      
      Tags: #llvm, #sanitizers
      
      Differential Revision: https://reviews.llvm.org/D65772
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368680
      ff20769b
    • Hans Wennborg's avatar
      Merging r368478: · a705aadb
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368478 | void | 2019-08-09 22:18:30 +0200 (Fri, 09 Aug 2019) | 16 lines
      
      [CodeGen] Require a name for a block addr target
      
      Summary:
      A block address may be used in inline assembly. In which case it
      requires a name so that the asm parser has something to parse. Creating
      a name for every block address is a large hammer, but is necessary
      because at the point when a temp symbol is created we don't necessarily
      know if it's used in inline asm. This ensures that it exists regardless.
      
      Reviewers: nickdesaulniers, craig.topper
      
      Subscribers: nathanchance, javed.absar, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D65352
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368678
      a705aadb
    • Hans Wennborg's avatar
      Merging r368477: · 8bb0d048
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368477 | void | 2019-08-09 22:16:31 +0200 (Fri, 09 Aug 2019) | 22 lines
      
      [MC] Don't recreate a label if it's already used
      
      Summary:
      This patch keeps track of MCSymbols created for blocks that were
      referenced in inline asm. It prevents creating a new symbol which
      doesn't refer to the block.
      
      Inline asm may have a reference to a label. The asm parser however
      doesn't recognize it as a label and tries to create a new symbol. The
      result being that instead of the original symbol (e.g. ".Ltmp0") the
      parser replaces it in the inline asm with the new one (e.g. ".Ltmp00")
      without updating it in the symbol table. So the machine basic block
      retains the "old" symbol (".Ltmp0"), but the inline asm uses the new one
      (".Ltmp00").
      
      Reviewers: nickdesaulniers, craig.topper
      
      Subscribers: nathanchance, javed.absar, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D65304
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368676
      8bb0d048
    • Hans Wennborg's avatar
      Merging r368572: · 3f910512
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368572 | lenary | 2019-08-12 15:51:00 +0200 (Mon, 12 Aug 2019) | 18 lines
      
      [RISCV] Fix ICE in isDesirableToCommuteWithShift
      
      Summary:
      Ana Pazos reported a bug where we were not checking that an APInt would
      fit into 64-bits before calling `getSExtValue()`. This caused asserts when
      compiling large constants, such as i128s, as happens when compiling compiler-rt.
      
      This patch adds a testcase and makes the callback less error-prone.
      
      Reviewers: apazos, asb, luismarques
      
      Reviewed By: luismarques
      
      Subscribers: hiraditya, rbar, johnrusso, simoncook, 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/D66081
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368674
      3f910512
    • Hans Wennborg's avatar
      Merging r368517, r368518, r368519, and r368554: · 97e6d088
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368517 | lebedevri | 2019-08-10 21:28:12 +0200 (Sat, 10 Aug 2019) | 1 line
      
      [NFC][InstCombine] Tests for shift amount reassociation in bittest with shift of const
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r368518 | lebedevri | 2019-08-10 21:28:44 +0200 (Sat, 10 Aug 2019) | 5 lines
      
      [InstCombine] Shift amount reassociation in bittest: drop pointless one-use restriction
      
      That one-use restriction is not needed for correctness - we have already
      ensured that one of the shifts will go away, so we know we won't increase
      the instruction count. So there is no need for that restriction.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r368519 | lebedevri | 2019-08-10 21:28:54 +0200 (Sat, 10 Aug 2019) | 5 lines
      
      [InstCombine] Shift amount reassociation in bittest: relax one-use check when shifting constant
      
      If one of the values being shifted is a constant, since the new shift
      amount is known-constant, the new shift will end up being constant-folded
      so, we don't need that one-use restriction then.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r368554 | lebedevri | 2019-08-12 13:28:02 +0200 (Mon, 12 Aug 2019) | 6 lines
      
      [InstCombine] foldShiftIntoShiftInAnotherHandOfAndInICmp(): avoid constantexpr pitfail (PR42962)
      
      Instead of matching value and then blindly casting to BinaryOperator
      just to get the opcode, just match instruction and do no cast.
      
      Fixes https://bugs.llvm.org/show_bug.cgi?id=42962
      ------------------------------------------------------------------------
      
      llvm-svn: 368673
      97e6d088
    • Hans Wennborg's avatar
      Merging r368581: · 2c69b137
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368581 | ibiryukov | 2019-08-12 16:35:30 +0200 (Mon, 12 Aug 2019) | 18 lines
      
      [clangd] Separate chunks with a space when rendering markdown
      
      Summary:
      This results in better rendering of resulting markdown.
      
      Especially noticeable in coc.nvim that does not have a visible horizontal
      spaces around inline code blocks. More details and a screenshot from
      coc.nvim can be found in https://github.com/clangd/clangd/issues/95.
      
      Reviewers: sammccall
      
      Reviewed By: sammccall
      
      Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D66086
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368670
      2c69b137
    • Hans Wennborg's avatar
      Merging r366541: · b13c264c
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r366541 | hokein | 2019-07-19 10:33:39 +0200 (Fri, 19 Jul 2019) | 11 lines
      
      [clangd] cleanup: unify the implemenation of checking a location is inside main file.
      
      Summary: We have variant implementations in the codebase, this patch unifies them.
      
      Reviewers: ilya-biryukov, kadircet
      
      Subscribers: MaskRay, jkorous, arphaman, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D64915
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368669
      b13c264c
  2. 12 Aug, 2019 2 commits
    • Hans Wennborg's avatar
      Merging r368230: · 4b590158
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368230 | akhuang | 2019-08-08 00:49:40 +0200 (Thu, 08 Aug 2019) | 2 lines
      
      Recommit "[MS] Emit S_HEAPALLOCSITE debug info in Selection DAG"
      with a fix to clear the SDNode map when SelectionDAG is cleared.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368571
      4b590158
    • Hans Wennborg's avatar
      Merging r368498: · 47a55832
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368498 | sammccall | 2019-08-10 01:03:32 +0200 (Sat, 10 Aug 2019) | 25 lines
      
      clangd: use -j for background index pool
      
      Summary:
      clangd supports a -j option to limit the amount of threads to use for parsing
      TUs. However, when using -background-index (the default in later versions of
      clangd), the parallelism used by clangd defaults to the hardware_parallelisn,
      i.e. number of physical cores.
      
      On shared hardware environments, with large projects, this can significantly
      affect performance with no way to tune it down.
      
      This change makes the -j parameter apply equally to parsing and background
      index. It's not perfect, because the total number of threads is 2x the -j value,
      which may still be unexpected. But at least this change allows users to prevent
      clangd using all CPU cores.
      
      Reviewers: kadircet, sammccall
      
      Reviewed By: sammccall
      
      Subscribers: javed.absar, jfb, sammccall, ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D66031
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368569
      47a55832
  3. 09 Aug, 2019 11 commits
    • Hans Wennborg's avatar
      Merging r367802: · a23c9071
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367802 | baloghadamsoftware | 2019-08-05 08:45:41 +0200 (Mon, 05 Aug 2019) | 6 lines
      
      [Analyzer] Iterator Checkers - Fix for Crash on Iterator Differences
      
      Iterators differences were mistakenly handled as random decrements which
      causes an assertion. This patch fixes this.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368427
      a23c9071
    • Hans Wennborg's avatar
      Merge r368103 '[TSAN] Fix tsan on FreeBSD after D54889' · 542fb41b
      Hans Wennborg authored
      llvm-svn: 368426
      542fb41b
    • Hans Wennborg's avatar
      Merging r368324: · ffa29fd9
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368324 | ctopper | 2019-08-08 20:11:17 +0200 (Thu, 08 Aug 2019) | 7 lines
      
      [X86] Make CMPXCHG16B feature imply CMPXCHG8B feature.
      
      This fixes znver1 so that it properly enables CMPXHG8B. We can
      probably remove explicit CMPXCHG8B from CPUs that also have
      CMPXCHG16B, but keeping this simple to allow cherry pick to 9.0.
      
      Fixes PR42935.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368423
      ffa29fd9
    • Hans Wennborg's avatar
      Merging r368104 and r368202: · 87e914c5
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368104 | void | 2019-08-07 00:41:22 +0200 (Wed, 07 Aug 2019) | 13 lines
      
      Delay diagnosing asm constraints that require immediates until after inlining
      
      Summary:
      An inline asm call may result in an immediate input value after inlining.
      Therefore, don't emit a diagnostic here if the input isn't an immediate.
      
      Reviewers: joerg, eli.friedman, rsmith
      
      Subscribers: asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, s.egerton, krytarowski, mgorny, riccibruno, eraman, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D60943
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r368202 | void | 2019-08-07 21:36:48 +0200 (Wed, 07 Aug 2019) | 2 lines
      
      Add target requirements for those bots which don't handle x86.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 368422
      87e914c5
    • Hans Wennborg's avatar
      Merging r367750: · ffea3e37
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367750 | void | 2019-08-03 07:52:47 +0200 (Sat, 03 Aug 2019) | 15 lines
      
      Emit diagnostic if an inline asm constraint requires an immediate
      
      Summary:
      An inline asm call can result in an immediate after inlining. Therefore emit a
      diagnostic here if constraint requires an immediate but one isn't supplied.
      
      Reviewers: joerg, mgorny, efriedma, rsmith
      
      Reviewed By: joerg
      
      Subscribers: asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, s.egerton, MaskRay, jyknight, dylanmckay, javed.absar, fedor.sergeev, jrtc27, Jim, krytarowski, eraman, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D60942
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368421
      ffea3e37
    • Hans Wennborg's avatar
      Merging r367403: · 172e2220
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367403 | lenary | 2019-07-31 11:45:55 +0200 (Wed, 31 Jul 2019) | 20 lines
      
      [RISCV] Support 'f' Inline Assembly Constraint
      
      Summary:
      This adds the 'f' inline assembly constraint, as supported by GCC. An
      'f'-constrained operand is passed in a floating point register. Exactly
      which kind of floating-point register (32-bit or 64-bit) is decided
      based on the operand type and the available standard extensions (-f and
      -d, respectively).
      
      This patch adds support in both the clang frontend, and LLVM itself.
      
      Reviewers: asb, lewis-revill
      
      Reviewed By: asb
      
      Subscribers: hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, cfe-commits, llvm-commits
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D65500
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368420
      172e2220
    • Hans Wennborg's avatar
      Merging r367403: · 702cccb1
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367403 | lenary | 2019-07-31 11:45:55 +0200 (Wed, 31 Jul 2019) | 20 lines
      
      [RISCV] Support 'f' Inline Assembly Constraint
      
      Summary:
      This adds the 'f' inline assembly constraint, as supported by GCC. An
      'f'-constrained operand is passed in a floating point register. Exactly
      which kind of floating-point register (32-bit or 64-bit) is decided
      based on the operand type and the available standard extensions (-f and
      -d, respectively).
      
      This patch adds support in both the clang frontend, and LLVM itself.
      
      Reviewers: asb, lewis-revill
      
      Reviewed By: asb
      
      Subscribers: hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, cfe-commits, llvm-commits
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D65500
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368419
      702cccb1
    • Hans Wennborg's avatar
      Merging r368315: · 817e3eae
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368315 | tstellar | 2019-08-08 19:23:33 +0200 (Thu, 08 Aug 2019) | 21 lines
      
      lit: Use a License classifier that pypi will accept
      
      Summary:
      'OSI Approved :: Apache-2.0 with LLVM exception' is not a valid
      classifier.  'OSI Approved :: Apache Software License' is the closest
      fit for the new license, so we've decided to use this one.
      
      The classifiers seem to only be used for searching on the pypi website,
      so this does not actually change the license of the code.
      We still pass 'Apache-2.0 with LLVM exception' as the license to setup(),
      and this appears alongside the classifier on the pypi webpage for lit.
      
      Reviewers: chandlerc, ddunbar, joerg
      
      Reviewed By: joerg
      
      Subscribers: delcypher, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D65762
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368414
      817e3eae
    • Hans Wennborg's avatar
      [docs][mips] 9.0 Release notes · 97fe26c4
      Hans Wennborg authored
      By Simon Atanasyan!
      
      Differential revision: https://reviews.llvm.org/D65830
      
      llvm-svn: 368412
      97fe26c4
    • Hans Wennborg's avatar
      [docs][mips] 9.0 Release notes · 4ed16edf
      Hans Wennborg authored
      By Simon Atanasyan!
      
      Differential revision: https://reviews.llvm.org/D65830
      
      llvm-svn: 368411
      4ed16edf
    • Hans Wennborg's avatar
      Merging r368058: · 280dccc5
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368058 | sureyeaah | 2019-08-06 19:01:12 +0200 (Tue, 06 Aug 2019) | 11 lines
      
      Fixed toHalfOpenFileRange assertion fail
      
      Summary:
      - Added new function that gets Expansion range with both ends in the same file.
      - Fixes the crash at https://github.com/clangd/clangd/issues/113
      
      Subscribers: ilya-biryukov, jkorous, arphaman, kadircet, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D65754
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368407
      280dccc5
  4. 08 Aug, 2019 3 commits
    • Hans Wennborg's avatar
      Merging r368041: · 94e7307d
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368041 | psmith | 2019-08-06 16:13:38 +0200 (Tue, 06 Aug 2019) | 16 lines
      
      [ELF][ARM] Fix /DISCARD/ of section with .ARM.exidx section
      
      The combineEhSections runs, by design, before processSectionCommands so
      that input exception sections like .ARM.exidx and .eh_frame are not assigned
      to OutputSections. Unfortunately if /DISCARD/ removes InputSections that
      have associated .ARM.exidx sections without discarding the .ARM.exidx
      synthetic section then we will end up crashing when trying to sort the
      InputSections in ascending address order.
      
      We fix this by filtering out the sections that have been discarded prior
      to processing the InputSections in finalizeContents().
      
      fixes pr42890
      
      Differential Revision: https://reviews.llvm.org/D65759
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368270
      94e7307d
    • Hans Wennborg's avatar
      ReleaseNotes: LLVM_ENABLE_Z3_SOLVER (PR42921) · 343874d1
      Hans Wennborg authored
      llvm-svn: 368269
      343874d1
    • Hans Wennborg's avatar
      Merging r366513: · 79d4fef4
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r366513 | lanza | 2019-07-19 01:40:23 +0200 (Fri, 19 Jul 2019) | 9 lines
      
      [cmake] Update NATIVE build variables to account for standalone changes
      
      Summary:
      LLDB_PATH_TO_{CLANG,LLVM}_BUILD were removed and replaced with
      {LLVM,Clang}_DIR. Adjust the NATIVE build to account for this.
      
      Subscribers: mgorny
      
      Differential Revision: https://reviews.llvm.org/D64959
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368268
      79d4fef4
  5. 07 Aug, 2019 3 commits
    • Hans Wennborg's avatar
      Merging r368078: · 1cda5aef
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368078 | quantum | 2019-08-06 22:09:04 +0200 (Tue, 06 Aug 2019) | 18 lines
      
      [WebAssembly] Fix null pointer in createInitTLSFunction
      
      Summary:
      `createSyntheticSymbols`, which creates `WasmSym::InitTLS`, is only called
      when `!config->relocatable`, but this condition is not checked when calling
      `createInitTLSFunction`.
      
      This diff checks `!config->relocatable` before calling `createInitTLSFunction`.
      
      Fixes https://github.com/emscripten-core/emscripten/issues/9155.
      
      Reviewers: tlively, aheejin, kripken, sbc100
      
      Subscribers: dschuff, jgravelle-google, sunfish, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D65785
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368137
      1cda5aef
    • Hans Wennborg's avatar
      Merging r367837: · 0d584eff
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367837 | mstorsjo | 2019-08-05 13:57:06 +0200 (Mon, 05 Aug 2019) | 10 lines
      
      [MinGW] Add an lld specific option for requesting to delay load libraries
      
      With GNU tools, delayload is handled completely differently. (One
      creates a specific delayload import library using dlltool and then
      links against it instead of the normal import library.)
      
      Instead of requiring using -Xlink=-delayload:lib.dll, we can provide
      an lld specific option for this.
      
      Differential Revision: https://reviews.llvm.org/D65728
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368134
      0d584eff
    • Hans Wennborg's avatar
      Merging r368019: · 8df6d06f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368019 | ibiryukov | 2019-08-06 13:37:50 +0200 (Tue, 06 Aug 2019) | 28 lines
      
      [clangd] Compute scopes eagerly in IncludeFixer
      
      Summary:
      Computing lazily leads to crashes. In particular, computing scopes may
      produce diagnostics (from inside template instantiations) and we
      currently do it when processing another diagnostic, which leads to
      crashes.
      
      Moreover, we remember and access 'Scope*' when computing scopes. This
      might lead to invalid memory access if the Scope is deleted by the time
      we run the delayed computation. We did not actually construct an example
      when this happens, though.
      
      From the VCS and review history, it seems the optimization was
      introduced in the initial version without a mention of any performance
      benchmarks justifying the performance gains. This led me to a
      conclusion that the optimization was premature, so removing it to avoid
      crashes seems like the right trade-off at that point.
      
      Reviewers: sammccall
      
      Reviewed By: sammccall
      
      Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D65796
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368133
      8df6d06f
  6. 06 Aug, 2019 10 commits
    • Hans Wennborg's avatar
      Merging r367898: · 13c43456
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367898 | evandro | 2019-08-05 20:09:14 +0200 (Mon, 05 Aug 2019) | 22 lines
      
      [AArch64] Expand bcmp() for small block lengths
      
      Patch D56593 by @courbet results in calls to `bcmp()` in some cases, should
      the target support the it.  Unless `TTI::MemCmpExpansionOptions()`
      is overridden by the target.
      
      In a proprietary benchmark we see a performance drop of about 12% on PNG
      compression before this patch, though it passes all tests.
      
      This patch mirrors X86 for AArch64 and initializes
      `TTI::MemCmpExpansionOptions()` to then expand calls to `bcmp()` when
      appropriate.  No tuning of the parameters was performed, but, at this point,
      it's enough to recover the performance drop above.
      
      This problem also exists on ARM.  Once a consensus is reached for AArch64, we
      can work to fix ARM as well.
      
      Authors:
      - Evandro Menezes (@evandro) <e.menezes@samsung.com>
      - Brian Rzycki (@brzycki) <b.rzycki@samsung.com>
      
      Differential revision: https://reviews.llvm.org/D64805
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368017
      13c43456
    • Hans Wennborg's avatar
      Merging r368004: · a628617c
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r368004 | hans | 2019-08-06 11:30:10 +0200 (Tue, 06 Aug 2019) | 1 line
      
      test-release.sh: Reorder sed commands for the binary comparison
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 368005
      a628617c
    • Hans Wennborg's avatar
      Merging r367941: · 1b8baf20
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367941 | reames | 2019-08-06 00:34:59 +0200 (Tue, 06 Aug 2019) | 5 lines
      
      Add a note to the release not about a potentially breaking optimization
      
      This has come up twice already (once in pr42763 and once in the commit thread), so give warning of a new way in which UB can result in unexpected program behavior.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 367997
      1b8baf20
    • Hans Wennborg's avatar
      Merging r367929: · a9357109
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367929 | echristo | 2019-08-05 23:25:59 +0200 (Mon, 05 Aug 2019) | 5 lines
      
      BMI2 support is indicated in bit eight of EBX, not nine.
      See Intel SDM, Vol 2A, Table 3-8:
      https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2a-manual.pdf#page=296
      
      Differential Revision: https://reviews.llvm.org/D65766
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 367996
      a9357109
    • Hans Wennborg's avatar
      Merging r367906: · c3007c61
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367906 | jkorous | 2019-08-05 20:44:07 +0200 (Mon, 05 Aug 2019) | 5 lines
      
      [DirectoryWatcher][linux] Fix build for older kernels
      
      Apparently kernel support for IN_EXCL_UNLINK in inotify_add_watch() doesn't imply it's defined in sys/inotify.h.
      
      https://bugs.llvm.org/show_bug.cgi?id=42824
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 367995
      c3007c61
    • Hans Wennborg's avatar
      Merge r367730 for PR42812 · df0dd036
      Hans Wennborg authored
      > [lit] Fix 42812: lit test suite can no longer be run stand-alone
      >
      > Summary:
      > This change updates the lit.cfg file to use llvm_config when it is available, but when it is not, it directly modifies the config object. This makes it possible to run the lit tests standalone without having built llvm (as long as the correct binaries are present in the path such as FileCheck and not).
      >
      > Because the lit tests don't take a hard dependency on llvm_config, some features such as system-windows have to have definitions in lit's cfg file as well. This is a potential issue as the os features sometimes change names (for example, we went from windows to system-windows, etc.). This can cause drift between lit's tests and the rest of the llvm tests.
      >
      > Reviewers: probinson, mgorny
      >
      > Reviewed By: mgorny
      >
      > Subscribers: delcypher, llvm-commits, asmith
      >
      > Tags: #llvm
      >
      > Differential Revision: https://reviews.llvm.org/D65674
      
      llvm-svn: 367993
      df0dd036
    • Hans Wennborg's avatar
      lit: Bump version to 0.9.0 · 7bfdcec8
      Hans Wennborg authored
      llvm-svn: 367992
      7bfdcec8
    • Hans Wennborg's avatar
      Merging r366660 and r367306: · 4445e5fb
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r366660 | rksimon | 2019-07-21 21:04:44 +0200 (Sun, 21 Jul 2019) | 3 lines
      
      [X86] SimplifyDemandedVectorEltsForTargetNode - Move SUBV_BROADCAST narrowing handling. NFCI.
      
      Move the narrowing of SUBV_BROADCAST to where we handle all the other opcodes.
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r367306 | rksimon | 2019-07-30 13:35:13 +0200 (Tue, 30 Jul 2019) | 5 lines
      
      [X86][AVX] SimplifyDemandedVectorElts - handle extraction from X86ISD::SUBV_BROADCAST source (PR42819)
      
      PR42819 showed an issue that we couldn't handle the case where we demanded a 'sub-sub-vector' of the SUBV_BROADCAST 'sub-vector' source.
      
      This patch recognizes these cases and extracts the sub-sub-vector instead of trying to broadcast to a type smaller than the 'sub-vector' source. 
      ------------------------------------------------------------------------
      
      llvm-svn: 367991
      4445e5fb
    • Hans Wennborg's avatar
      Merging r367675 and r367823: · af8b0746
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367675 | stulova | 2019-08-02 13:19:35 +0200 (Fri, 02 Aug 2019) | 10 lines
      
      [OpenCL] Allow OpenCL C style vector initialization in C++
      
      Allow creating vector literals from other vectors.
      
       float4 a = (float4)(1.0f, 2.0f, 3.0f, 4.0f);
       float4 v = (float4)(a.s23, a.s01);
      
      Differential revision: https://reviews.llvm.org/D65286
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r367823 | stulova | 2019-08-05 11:50:28 +0200 (Mon, 05 Aug 2019) | 6 lines
      
      [OpenCL] Fix vector literal test broken in rL367675.
      
      Avoid checking alignment unnecessary that is not portable
      among targets.
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 367987
      af8b0746
    • Hans Wennborg's avatar
      Merging r367836: · a4972dc5
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367836 | mstorsjo | 2019-08-05 13:57:00 +0200 (Mon, 05 Aug 2019) | 17 lines
      
      [COFF] Omit automatically imported symbols from the symbol table
      
      These symbols actually point to the symbol's IAT entry, which
      obviously is different from the symbol itself (which is imported
      from a different module and doesn't exist in the current one).
      
      Omitting this symbol helps gdb inspect automatically imported
      symbols, see https://sourceware.org/bugzilla/show_bug.cgi?id=24574
      for discussion on the matter.
      
      Surprisingly, those extra symbols don't seem to be an issue for
      gdb when the sources have been built with clang, only with gcc.
      The actual logic in gdb that this depends on still is unknown, but
      omitting these symbols from the symbol table is the right thing to
      do in any case.
      
      Differential Revision: https://reviews.llvm.org/D65727
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 367986
      a4972dc5
  7. 05 Aug, 2019 2 commits
    • Hans Wennborg's avatar
      Merging r367846 and r367847: · fa658316
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367846 | hans | 2019-08-05 15:04:07 +0200 (Mon, 05 Aug 2019) | 1 line
      
      Write the RequiredLibraries for 'all' in LibraryDependencies.inc in a deterministic order (PR42739)
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r367847 | hans | 2019-08-05 15:04:12 +0200 (Mon, 05 Aug 2019) | 8 lines
      
      test-release.sh: Perform the sed substitution on both files (PR42739)
      
      The comparison would otherwise fail if Phase2 occurrs naturally in the
      object file. It would get replaced with Phase3 in the one .o, but not
      in the other.
      
      We were already running both files through sed to have them processed in
      this same way; this is a logical extension of that.
      ------------------------------------------------------------------------
      
      llvm-svn: 367848
      fa658316
    • Hans Wennborg's avatar
      Merging r367662: · 6fb930d5
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r367662 | psmith | 2019-08-02 10:05:14 +0200 (Fri, 02 Aug 2019) | 17 lines
      
      [AliasAnalysis] Initialize a member variable that may be used by unit test.
      
      The unit tests in BasicAliasAnalysisTest use the alias analysis API
      directly and do not call setAAResults to initalize AAR. This gives a
      valgrind error "Conditional Jump depends on unitialized variable".
      
      On most buildbots the variable is nullptr, but in some cases it can be
      non nullptr leading to seemingly random failures.
      
      These tests were disabled in r366986. With the initialization they can be
      enabled again.
      
      Fixes PR42719
      
      Differential Revision: https://reviews.llvm.org/D65568
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 367818
      6fb930d5