1. Aug 26, 2019
    • Hans Wennborg's avatar
      ReleaseNotes: ARM and AArch64 · eb67eeaf
      Hans Wennborg authored
      From Kristof!
      
      llvm-svn: 369912
      eb67eeaf
    • Hans Wennborg's avatar
      Merging r367115, r367125, r367127, and r367153. · 094e9b46
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r367115 | jdevlieghere | 2019-07-26 16:26:33 +0200 (Fri, 26 Jul 2019) | 6 lines
      
      [CMake] Loosen Python version check and ignore patch version
      
      Some versions of macOS report a different patch version for the system
      provided interpreter and libraries.
      
      Differential revision: https://reviews.llvm.org/D65230
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r367125 | jdevlieghere | 2019-07-26 18:15:19 +0200 (Fri, 26 Jul 2019) | 3 lines
      
      [CMake] Print Python version on Windows
      
      Trying to figure out what's causing the Windows bot to fail.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r367127 | jdevlieghere | 2019-07-26 18:32:49 +0200 (Fri, 26 Jul 2019) | 4 lines
      
      [CMake] Fix find_python_libs_windows
      
      Exporting PYTHON_INCLUDE_DIR to the Python scope somehow got lost in my
      last change. Add it back again. This should fix the Windows bot!
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r367153 | jdevlieghere | 2019-07-26 22:58:10 +0200 (Fri, 26 Jul 2019) | 5 lines
      
      [CMake] Print the correct variables
      
      This didn't get updated after we decided to set PYTHON_MAJOR_VERSION and
      PYTHON_MINOR_VERSION in find_python_libs_windows, instead of parsing the
      variables ourselves.
      ------------------------------------------------------------------------
      
      llvm-svn: 369903
      094e9b46
    • Hans Wennborg's avatar
      Merging r366447: · 23c8505c
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r366447 | jdevlieghere | 2019-07-18 17:17:42 +0200 (Thu, 18 Jul 2019) | 19 lines
      
      [CMake] Don't set Python_ADDITIONAL_VERSIONS
      
      Until recently, Python_ADDITIONAL_VERSIONS was used to limit LLVM's
      Python support to 2.7. Now that both LLVM and LLDB both support Python
      3, there's no longer a need to put an arbitrary limit on this.
      
      However, instead of removing the variable, r365692 expanded the list,
      which has the (presumably unintentional) side-effect of expression
      preference for Python 3.
      
      Instead, as Michal proposed in the original code review, we should just
      not set the list at all, and let CMake pick whatever Python interpreter
      you have in your path.
      
      This patch removes the Python_ADDITIONAL_VERSIONS variable in llvm,
      clang and lld. I've also updated the docs with the default behavior and
      how to force a different Python version to be used.
      
      Differential revision: https://reviews.llvm.org/D64894
      ------------------------------------------------------------------------
      
      llvm-svn: 369902
      23c8505c
    • Hans Wennborg's avatar
      Merging r366447: · 6d070f23
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r366447 | jdevlieghere | 2019-07-18 17:17:42 +0200 (Thu, 18 Jul 2019) | 19 lines
      
      [CMake] Don't set Python_ADDITIONAL_VERSIONS
      
      Until recently, Python_ADDITIONAL_VERSIONS was used to limit LLVM's
      Python support to 2.7. Now that both LLVM and LLDB both support Python
      3, there's no longer a need to put an arbitrary limit on this.
      
      However, instead of removing the variable, r365692 expanded the list,
      which has the (presumably unintentional) side-effect of expression
      preference for Python 3.
      
      Instead, as Michal proposed in the original code review, we should just
      not set the list at all, and let CMake pick whatever Python interpreter
      you have in your path.
      
      This patch removes the Python_ADDITIONAL_VERSIONS variable in llvm,
      clang and lld. I've also updated the docs with the default behavior and
      how to force a different Python version to be used.
      
      Differential revision: https://reviews.llvm.org/D64894
      ------------------------------------------------------------------------
      
      llvm-svn: 369901
      6d070f23
    • Hans Wennborg's avatar
      Merging r366447: · cfcc2fea
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r366447 | jdevlieghere | 2019-07-18 17:17:42 +0200 (Thu, 18 Jul 2019) | 19 lines
      
      [CMake] Don't set Python_ADDITIONAL_VERSIONS
      
      Until recently, Python_ADDITIONAL_VERSIONS was used to limit LLVM's
      Python support to 2.7. Now that both LLVM and LLDB both support Python
      3, there's no longer a need to put an arbitrary limit on this.
      
      However, instead of removing the variable, r365692 expanded the list,
      which has the (presumably unintentional) side-effect of expression
      preference for Python 3.
      
      Instead, as Michal proposed in the original code review, we should just
      not set the list at all, and let CMake pick whatever Python interpreter
      you have in your path.
      
      This patch removes the Python_ADDITIONAL_VERSIONS variable in llvm,
      clang and lld. I've also updated the docs with the default behavior and
      how to force a different Python version to be used.
      
      Differential revision: https://reviews.llvm.org/D64894
      ------------------------------------------------------------------------
      
      llvm-svn: 369900
      cfcc2fea
    • Hans Wennborg's avatar
      Merging r366447: · 58835143
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r366447 | jdevlieghere | 2019-07-18 17:17:42 +0200 (Thu, 18 Jul 2019) | 19 lines
      
      [CMake] Don't set Python_ADDITIONAL_VERSIONS
      
      Until recently, Python_ADDITIONAL_VERSIONS was used to limit LLVM's
      Python support to 2.7. Now that both LLVM and LLDB both support Python
      3, there's no longer a need to put an arbitrary limit on this.
      
      However, instead of removing the variable, r365692 expanded the list,
      which has the (presumably unintentional) side-effect of expression
      preference for Python 3.
      
      Instead, as Michal proposed in the original code review, we should just
      not set the list at all, and let CMake pick whatever Python interpreter
      you have in your path.
      
      This patch removes the Python_ADDITIONAL_VERSIONS variable in llvm,
      clang and lld. I've also updated the docs with the default behavior and
      how to force a different Python version to be used.
      
      Differential revision: https://reviews.llvm.org/D64894
      ------------------------------------------------------------------------
      
      llvm-svn: 369899
      58835143
    • Hans Wennborg's avatar
      Merging r369364: · 35c6deb0
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369364 | miyuki | 2019-08-20 12:19:55 +0200 (Tue, 20 Aug 2019) | 6 lines
      
      [libcxx] Fix build breakage on mips
      
      Fixes https://bugs.llvm.org/show_bug.cgi?id=43011 caused by
      https://reviews.llvm.org/D63284.
      
      Committing as obvious.
      ------------------------------------------------------------------------
      
      llvm-svn: 369898
      35c6deb0
    • Hans Wennborg's avatar
      Merge r369708 - [Sanitizer] checks ASLR on FreeBSD · a3a8bf9b
      Hans Wennborg authored
      llvm-svn: 369897
      a3a8bf9b
    • Hans Wennborg's avatar
      ReleaseNotes: __declspec(allocator) · 9d3cb761
      Hans Wennborg authored
      By Amy Huang!
      
      llvm-svn: 369896
      9d3cb761
    • Hans Wennborg's avatar
      Release notes: -ftime-trace · 82fecfdb
      Hans Wennborg authored
      By Aras Pranckevicius!
      
      llvm-svn: 369895
      82fecfdb
    • Hans Wennborg's avatar
      Merging r369694: · 71d51526
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369694 | akhuang | 2019-08-22 21:40:07 +0200 (Thu, 22 Aug 2019) | 1 line
      
      [COFF] Add libcall symbols to the link when LTO is being used
      ------------------------------------------------------------------------
      
      llvm-svn: 369883
      71d51526
    • Hans Wennborg's avatar
      Merging r366836: · c343ded3
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r366836 | nico | 2019-07-23 21:00:01 +0200 (Tue, 23 Jul 2019) | 24 lines
      
      ld.lld: Demangle symbols from archives in diagnostics
      
      This ports r366573 from COFF to ELF.
      
      There are now to toString(Archive::Symbol), one doing MSVC demangling
      in COFF and one doing Itanium demangling in ELF, so rename these two
      to toCOFFString() and to toELFString() to not get a duplicate symbol.
      
      Nothing ever passes a raw Archive::Symbol to CHECK(), so these not
      being part of the normal toString() machinery seems ok.
      
      There are two code paths in the ELF linker that emits this type of
      diagnostic:
      
      1. The "normal" one in InputFiles.cpp. This is covered by the tweaked test.
      
      2. An additional one that's only used for libcalls if there's at least
         one bitcode in the link, and if the libcall symbol is lazy, and
         lazily loaded from an archive (i.e. not from a lazy .o file).
         (This code path was added in r339301.) Since all libcall names so far
         are C symbols and never mangled, the change there is not observable
         and hence not covered by tests.
      
      Differential Revision: https://reviews.llvm.org/D65095
      ------------------------------------------------------------------------
      
      llvm-svn: 369882
      c343ded3
    • Hans Wennborg's avatar
      Merging r366573: · 565fc9f2
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r366573 | nico | 2019-07-19 15:29:10 +0200 (Fri, 19 Jul 2019) | 6 lines
      
      lld-link: Demangle symbols from archives in diagnostics
      
      Also add test coverage for thin archives (which are the only way I could
      come up with to test at least some of the diagnostic changes).
      
      Differential Revision: https://reviews.llvm.org/D64927
      ------------------------------------------------------------------------
      
      llvm-svn: 369881
      565fc9f2
    • Hans Wennborg's avatar
      Merging r369349: · c95063dc
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369349 | ibiryukov | 2019-08-20 10:54:30 +0200 (Tue, 20 Aug 2019) | 36 lines
      
      [clangd] Skip function bodies inside processed files while indexing
      
      Summary:
      This significantly improves performance of background indexing.
      
      We do not collect references and declarations inside the processed
      files, so this does not affect the final indexing results.
      
      The idea is borrowed from libclang, which has a similar optimization in
      its indexing functionality.
      
      Measurements show a nice decrease in indexing time, up to ~40% for
      building the whole index. These are not proper benchmarks, so one should
      not rely on these results too much.
      
      1. Rebuilding the whole index for LLVM:
        - Before. Total time: 14m58s.
          ./bin/clangd -pch-storage=memory < ./clangd.input  23917.67s user 515.86s system 2718% cpu 14:58.68 total
        - After. Total time: 8m41s.
          ./bin/clangd -pch-storage=memory < ./clangd.input  13627.29s user 288.10s system 2672% cpu 8:40.67 total
      
      2. Rebuilding index after removing shards matching '*clangd*' (case-insensitively):
        - Before. Total time: 30s.
          ./bin/clangd -pch-storage=memory < ./clangd.input  130.94s user 6.82s system 452% cpu 30.423 total
        - After. Total time: 26s.
          ./bin/clangd -pch-storage=memory < ./clangd.input  80.51s user 5.40s system 333% cpu 25.777 total
      
      Reviewers: kadircet, sammccall
      
      Reviewed By: kadircet
      
      Subscribers: MaskRay, jkorous, arphaman, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D66226
      ------------------------------------------------------------------------
      
      llvm-svn: 369879
      c95063dc
  2. Aug 23, 2019
    • Anastasia Stulova's avatar
      [Docs][OpenCL] Release 9.0 notes for OpenCL · d0b88fce
      Anastasia Stulova authored
      Differential Revision: https://reviews.llvm.org/D66294
      
      llvm-svn: 369758
      d0b88fce
    • Nico Weber's avatar
      Mention r363078 in the lld release notes. · 9f06b982
      Nico Weber authored
      llvm-svn: 369753
      9f06b982
    • Hans Wennborg's avatar
      Merging r369445: · 2ae73f11
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369445 | mstorsjo | 2019-08-20 23:08:14 +0200 (Tue, 20 Aug 2019) | 9 lines
      
      [COFF] Check errorCount before committing the output file
      
      This avoids producing an output file if errors appeared late in the
      linking process (e.g. while fixing relocations, or as in the test,
      while checking for multiple resources). If an output file is produced,
      build tools might not retry building it on rebuilds, even if a previous
      build failed due to the error return code.
      
      Differential Revision: https://reviews.llvm.org/D66491
      ------------------------------------------------------------------------
      
      llvm-svn: 369752
      2ae73f11
    • Alex Denisov's avatar
      Add Mull project to the release notes · 884e9894
      Alex Denisov authored
      llvm-svn: 369744
      884e9894
    • Hans Wennborg's avatar
      Merging r368145: · ab6d19bd
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r368145 | ruiu | 2019-08-07 12:16:21 +0200 (Wed, 07 Aug 2019) | 3 lines
      
      Handle /align option.
      
      Differential Revision: https://reviews.llvm.org/D65736
      ------------------------------------------------------------------------
      
      llvm-svn: 369743
      ab6d19bd
    • Hans Wennborg's avatar
      Merging r369641: · 6e6e769e
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369641 | yaxunl | 2019-08-22 13:18:59 +0200 (Thu, 22 Aug 2019) | 4 lines
      
      [OpenCL] Fix declaration of enqueue_marker
      
      Differential Revision: https://reviews.llvm.org/D66512
      
      ------------------------------------------------------------------------
      
      llvm-svn: 369738
      6e6e769e
  3. Aug 22, 2019
    • Hans Wennborg's avatar
      Merging r367580: · 07507c2e
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r367580 | atanasyan | 2019-08-01 18:04:29 +0200 (Thu, 01 Aug 2019) | 18 lines
      
      [mips] Fix lowering load/store instruction in PIC case
      
      If an operand of the `lw/sw` instructions is a symbol, these instructions
      incorrectly lowered using not-position-independent chain of commands.
      For PIC code we should use `lw/addiu` instructions with the `R_MIPS_GOT16`
      and `R_MIPS_LO16` relocations respectively. Instead of that LLVM generates
      position dependent code with the `R_MIPS_HI16` and `R_MIPS_LO16`
      relocations.
      
      This patch provides a fix for the bug by handling PIC case separately in
      the `MipsAsmParser::expandMemInst`. The main idea is to generate a chain
      of PIC instructions to load a symbol address into a register and then
      load the address content.
      
      The fix is not optimal and does not fix all PIC-related problems. This
      is a task for subsequent patches.
      
      Differential Revision: https://reviews.llvm.org/D65524
      ------------------------------------------------------------------------
      
      llvm-svn: 369663
      07507c2e
    • Hans Wennborg's avatar
      Merging r369426 and r369443: · ee7601a8
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369426 | mstorsjo | 2019-08-20 20:58:05 +0200 (Tue, 20 Aug 2019) | 5 lines
      
      [TargetMachine] Don't try to create COFFSTUB references on windows on non-COFF
      
      This avoids spurious relocation types for windows/elf targets.
      
      Differential Revision: https://reviews.llvm.org/D66401
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r369443 | mstorsjo | 2019-08-20 22:58:02 +0200 (Tue, 20 Aug 2019) | 11 lines
      
      [test] Fix tests when run on windows after SVN r369426. NFC.
      
      When running tests on windows, invoking "llc -march=<arch>" will
      implicitly use windows as the target os, making these tests misbehave
      after this change.
      
      Fix the issue by using more specific -mtriple values instead of plain
      -march in these tests.
      
      This should hopefully fix buildbot failures like
      http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/9816.
      ------------------------------------------------------------------------
      
      llvm-svn: 369654
      ee7601a8
    • Hans Wennborg's avatar
      Merging r369095: · 79c1eb90
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369095 | lewis-revill | 2019-08-16 12:28:34 +0200 (Fri, 16 Aug 2019) | 11 lines
      
      [RISCV] Lower inline asm constraint A for RISC-V
      
      This allows arguments with the constraint A to be lowered to input nodes
      for RISC-V, which implies a memory address stored in a register.
      
      This patch adds the minimal amount of code required to get operands with
      the right constraints to compile.
      
      https://reviews.llvm.org/D54296
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 369651
      79c1eb90
    • Hans Wennborg's avatar
      Merging r369093: · 74ed1f26
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369093 | lewis-revill | 2019-08-16 12:23:56 +0200 (Fri, 16 Aug 2019) | 11 lines
      
      [RISCV] Add inline asm constraint A for RISC-V
      
      This allows the constraint A to be used in inline asm for RISC-V, which
      allows an address held in a register to be used.
      
      This patch adds the minimal amount of code required to get operands with
      the right constraints to compile.
      
      Differential Revision: https://reviews.llvm.org/D54295
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 369649
      74ed1f26
    • Hans Wennborg's avatar
      Merging r369537: · f3a5f239
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369537 | davidspickett | 2019-08-21 17:38:24 +0200 (Wed, 21 Aug 2019) | 7 lines
      
      [libcxx] Only declare contents of threading API when
      _LIBCPP_HAS_THREAD_API_EXTERNAL is not defined.
      
      When it is defined they will be declared by the
      __external_threading header instead.
      
      Differential revision: https://reviews.llvm.org/D66518
      ------------------------------------------------------------------------
      
      llvm-svn: 369639
      f3a5f239
  4. Aug 21, 2019
    • Hans Wennborg's avatar
      Merging r369251: · 5c10d736
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369251 | stulova | 2019-08-19 13:43:16 +0200 (Mon, 19 Aug 2019) | 10 lines
      
      [OpenCL] Fix addr space deduction for pointers/references to arrays.
      
      Rewrite the logic for detecting if we are deducing addr space of
      a pointee type to take into account special logic for arrays. For
      pointers/references to arrays we can have any number of parentheses
      expressions as well as nested pointers.
      
      Differential Revision: https://reviews.llvm.org/D66137
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 369499
      5c10d736
    • Hans Wennborg's avatar
      Merging r369399: · 7dc092de
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369399 | marshall | 2019-08-20 18:16:23 +0200 (Tue, 20 Aug 2019) | 1 line
      
      Fix availability of __thread_id on builds with external threading. Reviewed as https://reviews.llvm.org/D66480
      ------------------------------------------------------------------------
      
      llvm-svn: 369498
      7dc092de
  5. Aug 20, 2019
    • Hans Wennborg's avatar
      Merging r368867 and r368916: · 67a4a12d
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r368867 | marshall | 2019-08-14 18:21:27 +0200 (Wed, 14 Aug 2019) | 1 line
      
      Rework recursive_timed_mutex so that it uses __thread_id instead of using the lower-level __libcpp_thread_id. This is prep for fixing PR42918. Reviewed as https://reviews.llvm.org/D65895
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r368916 | marshall | 2019-08-14 22:54:56 +0200 (Wed, 14 Aug 2019) | 1 line
      
      Fix thread comparison by making sure we never pass our special 'not a thread' value to the underlying implementation. Fixes PR#42918.
      ------------------------------------------------------------------------
      
      llvm-svn: 369369
      67a4a12d
    • Hans Wennborg's avatar
      Merging r367412 and r367429: · d9e94797
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r367412 | rksimon | 2019-07-31 13:35:01 +0200 (Wed, 31 Jul 2019) | 1 line
      
      [X86][AVX] Add reduced test case for PR42833
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r367429 | rksimon | 2019-07-31 14:55:39 +0200 (Wed, 31 Jul 2019) | 3 lines
      
      [X86][AVX] Ensure chained subvector insertions are the same size (PR42833)
      
      Before combining insert_subvector(insert_subvector(vec, sub0, c0), sub1, c1) patterns, ensure that the subvectors are all the same type. On AVX512 targets especially we might have a mixture of 128/256 subvector insertions.
      ------------------------------------------------------------------------
      
      llvm-svn: 369362
      d9e94797
    • Hans Wennborg's avatar
      Merging r369043: · 90dc09fc
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369043 | rnk | 2019-08-15 21:45:28 +0200 (Thu, 15 Aug 2019) | 15 lines
      
      [Sema] Implement DR2386 for C++17 structured binding
      
      Allow implementations to provide complete definitions of
      std::tuple_size<T>, but to omit the 'value' member to signal that T is
      not tuple-like. The Microsoft standard library implements
      std::tuple_size<const T> this way.
      
      If the value member exists, clang still validates that it is an ICE, but
      if it does not, then the type is considered to not be tuple-like.
      
      Fixes PR33236
      
      Reviewers: rsmith
      
      Differential Revision: https://reviews.llvm.org/D66040
      ------------------------------------------------------------------------
      
      llvm-svn: 369361
      90dc09fc
    • Hans Wennborg's avatar
      Merging r369199: · 589f1c4d
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369199 | yhs | 2019-08-18 00:12:00 +0200 (Sun, 18 Aug 2019) | 26 lines
      
      [BPF] Fix bpf llvm-objdump issues.
      
      Commit https://reviews.llvm.org/D57939 ("[DWARF] Refactor
      RelocVisitor and fix computation of SHT_RELA-typed relocation entries)
      made a change for relocation resolution when operating
      on an object file.
      
      The change unfortunately broke BPF as given SymbolValue (S) and
      Addent (A), previously relocation is resolved to
          S + A
      and after the change, it is resolved to
          S
      
      This patch fixed the issue by resolving relocation correctly.
      
      It looks not all relocation resolution reaches here and I did not
      trace down exactly when. But I do find if the object file includes
      codes in two different ELF sections than default ".text",
      the above bug will be triggered.
      
      This patch included a trivial two function source code to
      demonstrate this issue. The relocation for .debug_loc is resolved
      incorrectly due to this and llvm-objdump cannot display source
      annotated assembly.
      
      Differential Revision: https://reviews.llvm.org/D66372
      ------------------------------------------------------------------------
      
      llvm-svn: 369359
      589f1c4d
    • Hans Wennborg's avatar
      Merging r369084: · 356a2b3e
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369084 | ctopper | 2019-08-16 06:47:44 +0200 (Fri, 16 Aug 2019) | 5 lines
      
      [X86] Manually reimplement getTargetInsertSubreg in X86DAGToDAGISel::matchBitExtract so we can call insertDAGNode on the target constant.
      
      This is needed to maintain the topological sort order.
      
      Fixes PR42992.
      ------------------------------------------------------------------------
      
      llvm-svn: 369357
      356a2b3e
    • Hans Wennborg's avatar
      Merging r369168: · 0482ca8d
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369168 | spatel | 2019-08-17 01:10:34 +0200 (Sat, 17 Aug 2019) | 16 lines
      
      [CodeGenPrepare] Fix use-after-free
      
      If OptimizeExtractBits() encountered a shift instruction with no operands at all,
      it would erase the instruction, but still return false.
      
      This previously didn’t matter because its caller would always return after
      processing the instruction, but https://reviews.llvm.org/D63233 changed the
      function’s caller to fall through if it returned false, which would then cause
      a use-after-free detectable by ASAN.
      
      This change makes OptimizeExtractBits return true if it removes a shift
      instruction with no users, terminating processing of the instruction.
      
      Patch by: @brentdax (Brent Royal-Gordon)
      
      Differential Revision: https://reviews.llvm.org/D66330
      ------------------------------------------------------------------------
      
      llvm-svn: 369355
      0482ca8d
    • Hans Wennborg's avatar
      Merging r369026: · 10f293f3
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369026 | jmorse | 2019-08-15 19:49:46 +0200 (Thu, 15 Aug 2019) | 17 lines
      
      [DebugInfo] Avoid crash from dropped fragments in LiveDebugValues
      
      This patch avoids a crash caused by DW_OP_LLVM_fragments being dropped
      from DIExpressions by LiveDebugValues spill-restore code. The appearance
      of a previously unseen fragment configuration confuses LDV, as documented
      in PR42773, and reproduced by the test function this patch adds (Crashes
      on a x86_64 debug build).
      
      To avoid this, on spill restore, we now use fragment information from the
      spilt-location-expression.
      
      In addition, when spilling, we now don't spill any DBG_VALUE with a complex
      expression, as it can't be safely restored and will definitely lead to an
      incorrect variable location. The discussion of this is in D65368.
      
      Differential Revision: https://reviews.llvm.org/D66284
      
      ------------------------------------------------------------------------
      
      llvm-svn: 369354
      10f293f3
    • Hans Wennborg's avatar
      Merge r368219 (PR42988) · 0c674788
      Hans Wennborg authored
          Restrict the NetBSD ASan TSD fallback to !ASAN_DYNAMIC
          
          The fallback to the alternative implementation of TSD with TLS
          is only needed for the static version of ASan for NetBSD.
          
          The same code cannot be reused for the dynamic version of ASan as
          TLS breaks and TSD code works.
      
      llvm-svn: 369341
      0c674788
    • Hans Wennborg's avatar
      Merge r368246 for PR42988 · f3feb0fd
      Hans Wennborg authored
          Update generate_netbsd_ioctls.awk for NetBSD 9.99.3
          
          Register new ioctl argument types passed in ioctl(2) calls.
      
      llvm-svn: 369340
      f3feb0fd
    • Hans Wennborg's avatar
      Merge r368247 (requested in PR42988) · 9381f6a8
      Hans Wennborg authored
          Sync ioctl(2) list with NetBSD 9.99.3
          
          Register 36 new ioctl(2) calls.
          
          Enable NVMM for amd64 as the API has been stabilized.
      
      llvm-svn: 369339
      9381f6a8
    • Hans Wennborg's avatar
      Merging r369097: · 25ca9e16
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369097 | lewis-revill | 2019-08-16 14:00:56 +0200 (Fri, 16 Aug 2019) | 8 lines
      
      [RISCV] Allow parsing of bare symbols with offsets
      
      This patch allows symbols followed by an expression for an offset to be
      parsed as bare symbols.
      
      Differential Revision: https://reviews.llvm.org/D57332
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 369338
      25ca9e16
    • Hans Wennborg's avatar
      Merging r369011: · 0a245438
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r369011 | bogner | 2019-08-15 17:36:13 +0200 (Thu, 15 Aug 2019) | 4 lines
      
      [cmake] install_symlink should obey DESTDIR unconditionally
      
      Setting DESTDIR was erroneously buried under a condition here - if
      it's set it should always be used.
      ------------------------------------------------------------------------
      
      llvm-svn: 369335
      0a245438
    • Hans Wennborg's avatar
      Revert r365860 for PR42966 (with a tweak to the test case for r365862) · 739ab8a8
      Hans Wennborg authored
      > Author: maskray
      > Date: Thu Jul 11 19:01:51 2019
      > New Revision: 365860
      >
      > URL: http://llvm.org/viewvc/llvm-project?rev=365860&view=rev
      > Log:
      > [Driver] Refactor interaction between -f(no-)?omit-frame-pointer and -m(no-)?omit-leaf-frame-pointer
      >
      > Use a tri-state enum to represent shouldUseFramePointer() and
      > shouldUseLeafFramePointer().
      >
      > This simplifies the logic and fixes PR9825:
      >   -fno-omit-frame-pointer doesn't imply -mno-omit-leaf-frame-pointer.
      >
      > and PR24003:
      >   /Oy- /O2 should not omit leaf frame pointer: this matches MSVC x86-32.
      >   (/Oy- is a no-op on MSVC x86-64.)
      >
      > and:
      >   when CC1 option -mdisable-fp-elim if absent, -momit-leaf-frame-pointer
      >   can also be omitted.
      >
      > The new behavior matches GCC:
      >   -fomit-frame-pointer wins over -mno-omit-leaf-frame-pointer
      >   -fno-omit-frame-pointer loses out to -momit-leaf-frame-pointer
      >
      > The behavior makes lots of sense. We have 4 states:
      >
      > - 00) leaf retained, non-leaf retained
      > - 01) leaf retained, non-leaf omitted  (this is invalid)
      > - 10) leaf omitted, non-leaf retained  (what -momit-leaf-frame-pointer was designed for)
      > - 11) leaf omitted, non-leaf omitted
      >
      > "omit" options taking precedence over "no-omit" options is the only way
      > to make 3 valid states representable with -f(no-)?omit-frame-pointer and
      > -m(no-)?omit-leaf-pointer.
      >
      > Reviewed By: ychen
      >
      > Differential Revision: https://reviews.llvm.org/D64294
      
      llvm-svn: 369333
      739ab8a8