1. Aug 20, 2019
    • 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
  2. Aug 16, 2019
    • Hans Wennborg's avatar
      Merging r368940: · 150ad312
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r368940 | rsmith | 2019-08-15 00:57:50 +0200 (Thu, 15 Aug 2019) | 19 lines
      
      Fix handling of class member access into a vector type.
      
      When handling a member access into a non-class, non-ObjC-object type, we
      would perform a lookup into the surrounding scope as if for an
      unqualified lookup. If the member access was followed by a '<' and this
      lookup (or the typo-correction for it) found a template name, we'd treat
      the member access as naming that template.
      
      Now we treat such accesses as never naming a template if the type of the
      object expression is of vector type, so that vector component accesses
      are never misinterpreted as naming something else. This is not entirely
      correct, since it is in fact valid to name a template from the enclosing
      scope in this context, when invoking a pseudo-destructor for the vector
      type via an alias template, but that's very much a corner case, and this
      change leaves that case only as broken as the corresponding case for
      Objective-C types is.
      
      This incidentally adds support for dr2292, which permits a 'template'
      keyword at the start of a member access naming a pseudo-destructor.
      ------------------------------------------------------------------------
      
      llvm-svn: 369087
      150ad312
    • Hans Wennborg's avatar
      Merging r367019: · b77d4716
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r367019 | chill | 2019-07-25 15:56:04 +0200 (Thu, 25 Jul 2019) | 10 lines
      
      [AArch64][SVE] Allow explicit size specifier for predicate operand
      
      ... for the vector forms of `{SQ,UQ,}{INC,DEC}P` instructions. Also continue
      supporting the exsting behaviour of not requiring an explicit size
      specifier. The preferred disasembly is *with* the specifier.
      
      This is implemented by redefining intruction forms to require vector predicates
      with explicit size and adding aliases, which allow a predicate with no size.
      
      Differential Revision: https://reviews.llvm.org/D65145
      ------------------------------------------------------------------------
      
      llvm-svn: 369086
      b77d4716
    • Hans Wennborg's avatar
      Merging r368873: · 8cb652b0
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r368873 | void | 2019-08-14 18:44:07 +0200 (Wed, 14 Aug 2019) | 15 lines
      
      Ignore indirect branches from callbr.
      
      Summary:
      We can't speculate around indirect branches: indirectbr and invoke. The
      callbr instruction needs to be included here.
      
      Reviewers: nickdesaulniers, manojgupta, chandlerc
      
      Reviewed By: chandlerc
      
      Subscribers: llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D66200
      ------------------------------------------------------------------------
      
      llvm-svn: 369085
      8cb652b0
    • Chris Bieneman's avatar
      Correcting clang-cpp release not to spcify supported targets. · 450f5f39
      Chris Bieneman authored
      llvm-svn: 369017
      450f5f39
  3. Aug 15, 2019
  4. Aug 14, 2019
    • Hans Wennborg's avatar
      Merging r367084: · 2a398093
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r367084 | kongyi | 2019-07-26 07:17:14 +0200 (Fri, 26 Jul 2019) | 6 lines
      
      Fix macOS build after r358716
      
      COPYFILE_CLONE is only defined on newer macOS versions, using it without
      check breaks build on systems running legacy OS and toolchain.
      
      Differential Revision: https://reviews.llvm.org/D65317
      ------------------------------------------------------------------------
      
      llvm-svn: 368848
      2a398093
    • Hans Wennborg's avatar
      Merging r368300: · 82330f1c
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r368300 | lenary | 2019-08-08 16:40:54 +0200 (Thu, 08 Aug 2019) | 18 lines
      
      [RISCV] Minimal stack realignment support
      
      Summary:
      Currently the RISC-V backend does not realign the stack. This can be an issue even for the RV32I/RV64I ABIs (where the stack is 16-byte aligned), though is rare. It will be much more comment with RV32E (though the alignment requirements for common data types remain under-documented...).
      
      This patch adds minimal support for stack realignment. It should cope with large realignments. It will error out if the stack needs realignment and variable sized objects are present.
      
      It feels like a lot of the code like getFrameIndexReference and determineFrameLayout could be refactored somehow, as right now it feels fiddly and brittle. We also seem to allocate a lot more memory than GCC does for equivalent C code.
      
      Reviewers: asb
      
      Reviewed By: asb
      
      Subscribers: wwei, jrtc27, s.egerton, MaskRay, Jim, lenary, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D62007
      ------------------------------------------------------------------------
      
      llvm-svn: 368846
      82330f1c
    • Hans Wennborg's avatar
      Merging r368552: · 69e3c1a2
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r368552 | stulova | 2019-08-12 12:44:07 +0200 (Mon, 12 Aug 2019) | 12 lines
      
      [OpenCL] Fix lang mode predefined macros for C++ mode.
      
      In C++ mode we should only avoid adding __OPENCL_C_VERSION__,
      all other predefined macros about the language mode are still
      valid.
      
      This change also fixes the language version check in the
      headers accordingly.
      
      Differential Revision: https://reviews.llvm.org/D65941
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 368844
      69e3c1a2
    • Hans Wennborg's avatar
      Merging r368561: · 9bea39db
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r368561 | svenvh | 2019-08-12 14:44:26 +0200 (Mon, 12 Aug 2019) | 9 lines
      
      [OpenCL] Ignore parentheses for sampler initialization
      
      The sampler handling logic in SemaInit.cpp would inadvertently treat
      parentheses around sampler arguments as an implicit cast, leading to
      an unreachable "can't implicitly cast lvalue to rvalue with
      this cast kind".  Fix by ignoring parentheses once we are in the
      sampler initializer case.
      
      Differential Revision: https://reviews.llvm.org/D66080
      ------------------------------------------------------------------------
      
      llvm-svn: 368843
      9bea39db
  5. Aug 13, 2019
    • 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
  6. Aug 12, 2019
    • 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
  7. Aug 09, 2019
    • 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
  8. Aug 08, 2019
    • 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
  9. Aug 07, 2019
    • 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
  10. Aug 06, 2019
    • 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