1. Jan 21, 2021
  2. Jan 20, 2021
    • Stephen Kelly's avatar
      Implement dynamic mapAnyOf in terms of ASTNodeKinds · e377c8ee
      Stephen Kelly authored
      This reduces template bloat, but more importantly, makes it possible to
      construct one from clang-query without template types.
      
      Differential Revision: https://reviews.llvm.org/D94879
      e377c8ee
    • Jon Chesterfield's avatar
      [libomptarget][devicertl] Wrap source in declare target pragmas · e069662d
      Jon Chesterfield authored
      [libomptarget][devicertl] Wrap source in declare target pragmas
      
      Factored out of D93135 / D94745. C++ and cuda ignore unknown pragmas
      so this is a NFC for the current implementation language. Removes noise
      from patches for building deviceRTL as openmp.
      
      Reviewed By: tianshilei1992
      
      Differential Revision: https://reviews.llvm.org/D95048
      e069662d
    • Alex Richardson's avatar
      [libc++] Split re.alg tests into locale-dependent and independent tests · 537d90db
      Alex Richardson authored
      Currently all these tests are XFAILED on Linux even though the problem
      only seems to be with the few checks that look at collation. To retain
      test coverage this splits the locale-dependent tests into a separate
      .pass.cpp that is XFAILed as before.
      This commit also XFAILs the locale-dependent tests on FreeBSD since the
      [=M=] and [.ch.] behaviour for cs_CZ also doesn't seem to match the
      behaviour that is expected by these tests.
      
      Reviewed By: #libc, ldionne
      
      Differential Revision: https://reviews.llvm.org/D94969
      537d90db
    • Stephen Kelly's avatar
      8000c778
    • Simon Pilgrim's avatar
      [DAGCombiner] Enable SimplifyDemandedBits vector support for TRUNCATE · cad4275d
      Simon Pilgrim authored
      Add DemandedElts support inside the TRUNCATE analysis.
      
      Differential Revision: https://reviews.llvm.org/D56387
      cad4275d
    • Hans Wennborg's avatar
      Revert "Following up on PR48517, fix handling of template arguments that refer" · 8ba442bc
      Hans Wennborg authored
      Combined with 'da986511 - Revert "DR2064:
      decltype(E) is only a dependent', this change (5a391d38) caused verifier
      errors when building Chromium. See https://crbug.com/1168494#c1 for a
      reproducer.
      
      Additionally it reverts changes that were dependent on this one, see
      below.
      
      > Following up on PR48517, fix handling of template arguments that refer
      > to dependent declarations.
      >
      > Treat an id-expression that names a local variable in a templated
      > function as being instantiation-dependent.
      >
      > This addresses a language defect whereby a reference to a dependent
      > declaration can be formed without any construct being value-dependent.
      > Fixing that through value-dependence turns out to be problematic, so
      > instead this patch takes the approach (proposed on the core reflector)
      > of allowing the use of pointers or references to (but not values of)
      > dependent declarations inside value-dependent expressions, and instead
      > treating template arguments as dependent if they evaluate to a constant
      > involving such dependent declarations.
      >
      > This ends up affecting a bunch of OpenMP tests, due to OpenMP
      > imprecisely handling instantiation-dependent constructs, bailing out
      > early instead of processing dependent constructs to the extent possible
      > when handling the template.
      >
      > Previously committed as 8c1f2d15, and
      > reverted because a dependency commit was reverted.
      
      This reverts commit 5a391d38.
      
      It also restores clang/test/SemaCXX/coroutines.cpp to its state before
      da986511.
      
      Revert "[c++20] P1907R1: Support for generalized non-type template arguments of scalar type."
      
      > Previously committed as 9e08e51a, and
      > reverted because a dependency commit was reverted. This incorporates the
      > following follow-on commits that were also reverted:
      >
      > 7e84aa1b by Simon Pilgrim
      > ed13d8c6 by me
      > 95c7b6ca by Sam McCall
      > 430d5d84 by Dave Zarzycki
      
      This reverts commit 4b574008.
      
      Revert "[msabi] Mangle a template argument referring to array-to-pointer decay"
      
      > [msabi] Mangle a template argument referring to array-to-pointer decay
      > applied to an array the same as the array itself.
      >
      > This follows MS ABI, and corrects a regression from the implementation
      > of generalized non-type template parameters, where we "forgot" how to
      > mangle this case.
      
      This reverts commit 18e093fa.
      8ba442bc
    • Paul C. Anagnostopoulos's avatar
      Revert "[TableGen] Improve algorithm for inheriting class template args and fields" · 4f5f29d4
      Paul C. Anagnostopoulos authored
      This reverts commit c056f824.
      
      That commit causes build failures.
      4f5f29d4
    • Simon Pilgrim's avatar
      [X86][AVX] Fold extract_subvector(VSRLI/VSHLI(x,32)) -> VSRLI/VSHLI(extract_subvector(x),32) · 19d02842
      Simon Pilgrim authored
      As discussed on D56387, if we're shifting to extract the upper/lower half of a vXi64 vector then we're actually better off performing this at the subvector level as its very likely to fold into something.
      
      combineConcatVectorOps can perform this in reverse if necessary.
      19d02842
    • Paul C. Anagnostopoulos's avatar
    • Amanieu d'Antras's avatar
      [AArch64] Add support for the GNU ILP32 ABI · 21bfd068
      Amanieu d'Antras authored
      Add the aarch64[_be]-*-gnu_ilp32 targets to support the GNU ILP32 ABI for AArch64.
      
      The needed codegen changes were mostly already implemented in D61259, which added support for the watchOS ILP32 ABI. The main changes are:
      - Wiring up the new target to enable ILP32 codegen and MC.
      - ILP32 va_list support.
      - ILP32 TLSDESC relocation support.
      
      There was existing MC support for ELF ILP32 relocations from D25159 which could be enabled by passing "-target-abi ilp32" to llvm-mc. This was changed to check for "gnu_ilp32" in the target triple instead. This shouldn't cause any issues since the existing support was slightly broken: it was generating ELF64 objects instead of the ELF32 object files expected by the GNU ILP32 toolchain.
      
      This target has been tested by running the full rustc testsuite on a big-endian ILP32 system based on the GCC ILP32 toolchain.
      
      Reviewed By: kristof.beyls
      
      Differential Revision: https://reviews.llvm.org/D94143
      21bfd068
    • Mindong Chen's avatar
      [SCEV] Add a test with wrong exit counts. (NFC) · 5d718374
      Mindong Chen authored
      This patch pre-commits a test case with wrong exit count
      analysis for D92367.
      
      Reviewed by: mkazantsev
      
      Differential Revision: https://reviews.llvm.org/D94657
      5d718374
    • Bjorn Pettersson's avatar
      [PM] Avoid duplicates in the Used/Preserved/Required sets · 985b9b7e
      Bjorn Pettersson authored
      The pass analysis uses "sets" implemented using a SmallVector type
      to keep track of Used, Preserved, Required and RequiredTransitive
      passes. When having nested analyses we could end up with duplicates
      in those sets, as there was no checks to see if a pass already
      existed in the "set" before pushing to the vectors. This idea with
      this patch is to avoid such duplicates by avoiding pushing elements
      that already is contained when adding elements to those sets.
      
      To align with the above PMDataManager::collectRequiredAndUsedAnalyses
      is changed to skip adding both the Required and RequiredTransitive
      passes to its result vectors (since RequiredTransitive always is
      a subset of Required we ended up with duplicates when traversing
      both sets).
      
      Main goal with this is to avoid spending time verifying the same
      analysis mulitple times in PMDataManager::verifyPreservedAnalysis
      when iterating over the Preserved "set". It is assumed that removing
      duplicates from a "set" shouldn't have any other negative impact
      (I have not seen any problems so far). If this ends up causing
      problems one could do some uniqueness filtering of the vector being
      traversed in verifyPreservedAnalysis instead.
      
      Reviewed By: foad
      
      Differential Revision: https://reviews.llvm.org/D94416
      985b9b7e
    • Haojian Wu's avatar
      [clangd] Extend find-refs to include overrides. · 42830f8b
      Haojian Wu authored
      find-references on `virtual void meth^od() = 0` will include override references.
      
      Differential Revision: https://reviews.llvm.org/D94390
      42830f8b
    • Christian Sigg's avatar
      Fix cuda-runner tests. · cba1ca90
      Christian Sigg authored
      cba1ca90