1. Oct 31, 2020
    • Wouter van Oortmerssen's avatar
      b093eba0
    • peter klausler's avatar
      [flang] Plug error recovery hole for erroneous subscripts · 93d10919
      peter klausler authored
      Avoid a crash in folding an empty vector of subscripts
      that resulted from a semantic error.
      
      Differential revision: https://reviews.llvm.org/D90499
      93d10919
    • Thomas Lively's avatar
      a787e097
    • peter klausler's avatar
      [flang] Better error messages & more cases caught for bad forward refs · 882fa241
      peter klausler authored
      Subclause 10.1.12 in F'2018 prohibits forward references from
      a specification expression to an object declared later in the
      same specification part.  Catch this error better and emit
      specific error messages about the violation.
      
      Differential revision: https://reviews.llvm.org/D90492
      882fa241
    • Wouter van Oortmerssen's avatar
      [WebAssembly] Fixed DWARF DW_AT_low_pc encoded as 64-bit in wasm64 · 86cd2332
      Wouter van Oortmerssen authored
      Also added general wasm64 DWARF test
      Also added asserts for unsupported reloc combinations that triggered this bug.
      
      Differential Revision: https://reviews.llvm.org/D90503
      86cd2332
    • peter klausler's avatar
      [flang] Add warning for FINAL pitfall · c1168676
      peter klausler authored
      Fortran's FINAL feature is sensitive to object rank.
      When an object's rank excludes it from finalization, but
      the type has FINAL subroutines for other ranks, emit
      a warning.  This should be especially helpful in the
      case of a scalar FINAL subroutine not being declared
      (IMPURE) ELEMENTAL.
      
      Differential revision: https://reviews.llvm.org/D90495
      c1168676
    • Thomas Lively's avatar
      [WebAssembly] Prototype i64x2.eq · 0a512a55
      Thomas Lively authored
      As proposed in https://github.com/WebAssembly/simd/pull/381. Since it is still
      in the prototyping phase, it is only accessible via a target builtin function
      and a target intrinsic.
      
      Depends on D90504.
      
      Differential Revision: https://reviews.llvm.org/D90508
      0a512a55
    • Nathan James's avatar
      [clang-tidy][test] Fix test failure when LLVM_ENABLE_WERROR is set. · 8a28a29c
      Nathan James authored
      After https://reviews.llvm.org/D80531 landed, a subtle bug was introduced where the test would fail if `LLVM_ENABLE_WERROR` was set. This just silences that error so the test case runs correctly, down the line it may be worth not enabling `-Werror` for clang-tidy tests even if the cmake flag is passed.
      8a28a29c
    • Tony's avatar
      [NFC][AMDGPU] Minor cleanup to AMDGPU memory model table · fccf4f6a
      Tony authored
      Differential Revision: https://reviews.llvm.org/D90509
      fccf4f6a
    • peter klausler's avatar
      [flang] Detect and rewrite ambiguous READ(CVAR)[,item-list] · 4acd8f7f
      peter klausler authored
      READ(CVAR)[,item-list] with a character variable CVAR
      could be parsed as an unformatted READ from an internal
      unit or as a formatted READ from the default external unit
      with a needlessly parenthesized variable format.  We parse
      it as the former, but Fortran doesn't have unformatted
      internal I/O.
      
      Differential revision: https://reviews.llvm.org/D90493
      4acd8f7f
    • Thomas Lively's avatar
      [WebAssembly] Prototype i64x2.widen_{low,high}_i32x4_{s,u} · 1cb0b566
      Thomas Lively authored
      As proposed in https://github.com/WebAssembly/simd/pull/290. As usual, these
      instructions are available only via builtin functions and intrinsics while they
      are in the prototyping stage.
      
      Differential Revision: https://reviews.llvm.org/D90504
      1cb0b566
    • Mehdi Amini's avatar
      Use `--allow-unused-prefixes=false` by default for FileCheck in MLIR testsuite · 72ddd559
      Mehdi Amini authored
      This option catches unexpected mismatch when a prefix is given to
      FileCheck on the command line but never matches a single line in the
      test.
      
      See http://lists.llvm.org/pipermail/llvm-dev/2020-October/146162.html
      for more info.
      
      Differential Revision: https://reviews.llvm.org/D90501
      72ddd559
    • Florian Hahn's avatar
      Revert "[SLP] Consider alternatives for cost of select instructions." · a1b53db3
      Florian Hahn authored
      This reverts commit 19225704.
      
      This appears to cause a crash in the following example
      
       a, b, c;
       l() {
         int e = a, f = l, g, h, i, j;
         float *d = c, *k = b;
         for (;;)
           for (; g < f; g++) {
             k[h] = d[i];
             k[h - 1] = d[j];
             h += e << 1;
             i += e;
           }
       }
      
       clang -cc1 -triple i386-unknown-linux-gnu -emit-obj -target-cpu pentium-m -O1 -vectorize-loops -vectorize-slp reduced.c
      
       llvm::Type *llvm::Type::getWithNewBitWidth(unsigned int) const: Assertion `isIntOrIntVectorTy() && "Original type expected to be a vector of integers or a scalar integer."' failed.
      a1b53db3
    • Florian Hahn's avatar
      408c4408
    • Peter Collingbourne's avatar
      hwasan: Support for outlined checks in the Linux kernel. · 3d049bce
      Peter Collingbourne authored
      Add support for match-all tags and GOT-free runtime calls, which
      are both required for the kernel to be able to support outlined
      checks. This requires extending the access info to let the backend
      know when to enable these features. To make the code easier to maintain
      introduce an enum with the bit field positions for the access info.
      
      Allow outlined checks to be enabled with -mllvm
      -hwasan-inline-all-checks=0. Kernels that contain runtime support for
      outlined checks may pass this flag. Kernels lacking runtime support
      will continue to link because they do not pass the flag. Old versions
      of LLVM will ignore the flag and continue to use inline checks.
      
      With a separate kernel patch [1] I measured the code size of defconfig
      + tag-based KASAN, as well as boot time (i.e. time to init launch)
      on a DragonBoard 845c with an Android arm64 GKI kernel. The results
      are below:
      
               code size    boot time
      before    92824064      6.18s
      after     38822400      6.65s
      
      [1] https://linux-review.googlesource.com/id/I1a30036c70ab3c3ee78d75ed9b87ef7cdc3fdb76
      
      Depends on D90425
      
      Differential Revision: https://reviews.llvm.org/D90426
      3d049bce
    • Mircea Trofin's avatar
      [FileCheck] Address unused prefixes in tests · ee703eb4
      Mircea Trofin authored
      Added -allow-unused-prefixes as necessary.
      
      Differential Revision: https://reviews.llvm.org/D90496
      ee703eb4
    • Sean Silva's avatar
      [mlir] Add BufferResultsToOutParams pass. · b8665742
      Sean Silva authored
      This pass allows removing getResultConversionKind from
      BufferizeTypeConverter. This pass replaces the AppendToArgumentsList
      functionality. As far as I could tell, the only use of this functionlity
      is to perform the transformation that is implemented in this pass.
      
      Future patches will remove the getResultConversionKind machinery from
      BufferizeTypeConverter, but sending this patch for individual review for
      clarity.
      
      Differential Revision: https://reviews.llvm.org/D90071
      b8665742
    • Cameron McInally's avatar
      [Legalize] Add legalizations for VECREDUCE_SEQ_FADD · dda1e74b
      Cameron McInally authored
      Add Legalization support for VECREDUCE_SEQ_FADD, so that we don't need to depend on ExpandReductionsPass.
      
      Differential Revision: https://reviews.llvm.org/D90247
      dda1e74b
    • ergawy's avatar
      [MLIR][SPIRV] Start module combiner. · 90a8260c
      ergawy authored
      This commit adds a new library that merges/combines a number of spv
      modules into a combined one. The library has a single entry point:
      combine(...).
      
      To combine a number of MLIR spv modules, we move all the module-level ops
      from all the input modules into one big combined module. To that end, the
      combination process can proceed in 2 phases:
      
        (1) resolving conflicts between pairs of ops from different modules
        (2) deduplicate equivalent ops/sub-ops in the merged module. (TODO)
      
      This patch implements only the first phase.
      
      Reviewed By: antiagainst
      
      Differential Revision: https://reviews.llvm.org/D90477
      90a8260c
    • Sean Silva's avatar
      [mlir] Move some linalg patterns around. · 30e130c3
      Sean Silva authored
      The bufferization patterns are moved to the .cpp file, which is
      preferred in the codebase when it makes sense.
      
      The LinalgToStandard patterns are kept a header because they are
      expected to be used individually. However, they are moved to
      LinalgToStandard.h which is the file corresponding to where they are
      defined.
      
      This also removes TensorCastOpConverter, which is handled by
      populateStdBufferizePatterns now. Eventually, the constant op lowering
      will be handled as well, but it there are currently holdups on moving
      it (see https://reviews.llvm.org/D89916).
      
      Differential Revision: https://reviews.llvm.org/D90254
      30e130c3
    • Geoffrey Martin-Noble's avatar
      Revert "[MLIR][SPIRV] Start module combiner." · 1142eaed
      Geoffrey Martin-Noble authored
      This reverts commit 27324f28.
      
      Shared libs build is broken linking lib/libMLIRSPIRVModuleCombiner.so:
      
      ```
      ModuleCombiner.cpp:
        undefined reference to `mlir::spirv::ModuleOp::addressing_model()
      ```
      
      https://buildkite.com/mlir/mlir-core/builds/8988#e3d966b9-ea43-492e-a192-b28e71e9a15b
      1142eaed
    • Keith Smiley's avatar
      [clang][NFC] Remove unused FileCheck prefix · bbf02e18
      Keith Smiley authored
      This is to enable --allow-unused-duplicates=false. This prefix appears
      to be outdated and intentionally unused.
      
      Differential Revision: https://reviews.llvm.org/D90430
      bbf02e18
    • Duncan P. N. Exon Smith's avatar
      Remove `noexcept` from ac49500c to fix bots · 814141f9
      Duncan P. N. Exon&nbsp;Smith authored
      I'm having trouble with bots today. Remove more cargo-cult from the
      generic version of `OptionalStorage` that is failing on some (fewer)
      bots (but not locally).
      
      I expect this will fix:
      
      ```
      FAILED: tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/FileEntryTest.cpp.o
      /usr/bin/c++  -DGTEST_HAS_RTTI=0 -DGTEST_HAS_TR1_TUPLE=0 -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/clang/unittests/Basic -I/home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/unittests/Basic -I/home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/include -Itools/clang/include -Iinclude -I/home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/llvm/include -I/home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/llvm/utils/unittest/googletest/include -I/home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/llvm/utils/unittest/googlemock/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -fno-strict-aliasing -O3     -Wno-variadic-macros -fno-exceptions -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++14 -MD -MT tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/FileEntryTest.cpp.o -MF tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/FileEntryTest.cpp.o.d -o tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/FileEntryTest.cpp.o -c /home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/unittests/Basic/FileEntryTest.cpp
      /home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/unittests/Basic/FileEntryTest.cpp: In member function ‘virtual void {anonymous}::FileEntryTest_OptionalFileEntryRefDegradesToFileEntryPtr_Test::TestBody()’:
      /home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/unittests/Basic/FileEntryTest.cpp:48:46: error: use of deleted function ‘constexpr clang::OptionalFileEntryRefDegradesToFileEntryPtr::OptionalFileEntryRefDegradesToFileEntryPtr()’
         OptionalFileEntryRefDegradesToFileEntryPtr M0;
                                                    ^~
      In file included from /home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/unittests/Basic/FileEntryTest.cpp:9:
      /home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/include/clang/Basic/FileEntry.h:250:3: note: ‘constexpr clang::OptionalFileEntryRefDegradesToFileEntryPtr::OptionalFileEntryRefDegradesToFileEntryPtr() noexcept’ is implicitly deleted because its exception-specification does not match the implicit exception-specification ‘’
         OptionalFileEntryRefDegradesToFileEntryPtr() noexcept = default;
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/unittests/Basic/FileEntryTest.cpp: In member function ‘virtual void {anonymous}::FileEntryTest_equals_Test::TestBody()’:
      /home/buildbots/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/clang/unittests/Basic/FileEntryTest.cpp:82:46: error: use of deleted function ‘constexpr clang::OptionalFileEntryRefDegradesToFileEntryPtr::OptionalFileEntryRefDegradesToFileEntryPtr()’
         OptionalFileEntryRefDegradesToFileEntryPtr M0;
                                                    ^~
      ```
      814141f9
    • Peter Collingbourne's avatar
      hwasan: Move fixed shadow behind opaque no-op cast as well. · 0930763b
      Peter Collingbourne authored
      This is a workaround for poor heuristics in the backend where we can
      end up materializing the constant multiple times. This is particularly
      bad when using outlined checks because we materialize it for every call
      (because the backend considers it trivial to materialize).
      
      As a result the field containing the shadow base value will always
      be set so simplify the code taking that into account.
      
      Differential Revision: https://reviews.llvm.org/D90425
      0930763b
    • Paul C. Anagnostopoulos's avatar
      aa1c6b79
    • Peter Collingbourne's avatar
      AArch64: Use SBFX instead of UBFX to extract address granule in outlined HWASan checks. · c9b1a2b4
      Peter Collingbourne authored
      In a kernel (or in general in environments where bit 55 of the address
      is set) the shadow base needs to point to the end of the shadow region,
      not the beginning. Bit 55 needs to be sign extended into bits 52-63
      of the shadow base offset, otherwise we end up loading from an invalid
      address. We can do this by using SBFX instead of UBFX.
      
      Using SBFX should have no effect in the userspace case where bit 55
      of the address is clear so we do so unconditionally. I don't think
      we need a ABI version bump for this (but one will come anyway when
      we switch to x20 for the shadow base register).
      
      Differential Revision: https://reviews.llvm.org/D90424
      c9b1a2b4
    • Peter Collingbourne's avatar
      AArch64: Switch to x20 as the shadow base register for outlined HWASan checks. · 3859fc65
      Peter Collingbourne authored
      From a code size perspective it turns out to be better to use a
      callee-saved register to pass the shadow base. For non-leaf functions
      it avoids the need to reload the shadow base into x9 after each
      function call, at the cost of an additional stack slot to save the
      caller's x20. But with x9 there is also a stack size cost, either
      as a result of copying x9 to a callee-saved register across calls or
      by spilling it to stack, so for the non-leaf functions the change to
      stack usage is largely neutral.
      
      It is also code size (and stack size) neutral for many leaf functions.
      Although they now need to save/restore x20 this can typically be
      combined via LDP/STP into the x30 save/restore. In the case where
      the function needs callee-saved registers or stack spills we end up
      needing, on average, 8 more bytes of stack and 1 more instruction
      but given the improvements to other functions this seems like the
      right tradeoff.
      
      Unfortunately we cannot change the register for the v1 (non short
      granules) check because the runtime assumes that the shadow base
      register is stored in x9, so the v1 check still uses x9.
      
      Aside from that there is no change to the ABI because the choice
      of shadow base register is a contract between the caller and the
      outlined check function, both of which are compiler generated. We do
      need to rename the v2 check functions though because the functions
      are deduplicated based on their names, not on their contents, and we
      need to make sure that when object files from old and new compilers
      are linked together we don't end up with a function that uses x9
      calling an outlined check that uses x20 or vice versa.
      
      With this change code size of /system/lib64/*.so in an Android build
      with HWASan goes from 200066976 bytes to 194085912 bytes, or a 3%
      decrease.
      
      Differential Revision: https://reviews.llvm.org/D90422
      3859fc65
    • Nikita Popov's avatar
      [PhaseOrdering] Add test for PR39282 (NFC) · a0c3edca
      Nikita Popov authored
      While the actually incorrect transform happens in LoopUnroll, it
      is based on noalias metadata inserted by the inliner, and
      ultimately manifests in GVN. Add a phase ordering test that checks
      this even if our representation of noalias metadata changes in
      the future.
      a0c3edca
    • Mircea Trofin's avatar
      [FileCheck] Report missing prefixes when more than one is provided. · 871d658c
      Mircea Trofin authored
      If more than a prefix is provided - e.g. --check-prefixes=CHECK,FOO - we
      don't report if (say) FOO is never used. This may lead to a gap in our
      test coverage.
      
      This patch introduces a new option, --allow-unused-prefixes. It
      currently is set to true, keeping today's behavior. After we explicitly
      set it in tests where this behavior was actually intentional, we will
      switch it to false by default.
      
      Differential Revision: https://reviews.llvm.org/D90281
      871d658c
    • LLVM GN Syncbot's avatar
      [gn build] Port ac49500c · 5d9c80a6
      LLVM GN Syncbot authored
      5d9c80a6
    • Joseph Tremoulet's avatar
      [lldb] Report old modules from ModuleList::ReplaceEquivalent · d20aa7ca
      Joseph Tremoulet authored
      This allows the Target to update its module list when loading a shared
      module replaces an equivalent one.
      
      A testcase is added which hits this codepath -- without the fix, the
      target reports libbreakpad.so twice in its module list.
      
      Reviewed By: jingham
      
      Differential Revision: https://reviews.llvm.org/D89157
      d20aa7ca
    • Joseph Tremoulet's avatar
      [lldb] GetSharedModule: Collect old modules in SmallVector · 61bfc703
      Joseph Tremoulet authored
      The various GetSharedModule methods have an optional out parameter for
      the old module when a file has changed or been replaced, which the
      Target uses to keep its module list current/correct.  We've been using
      a single ModuleSP to track "the" old module, and this change switches
      to using a SmallVector of ModuleSP, which has a couple benefits:
       - There are multiple codepaths which may discover an old module, and
         this centralizes the code for how to handle multiples in one place,
         in the Target code.  With the single ModuleSP, each place that may
         discover an old module is responsible for how it handles multiples,
         and the current code is inconsistent (some code paths drop the first
         old module, others drop the second).
       - The API will be more natural for identifying old modules in routines
         that work on sets, like ModuleList::ReplaceEquivalent (which I plan
         on updating to report old module(s) in a subsequent change to fix a
         bug).
      
      I'm not convinced we can ever actually run into the case that multiple
      old modules are found in the same GetOrCreateModule call, but I think
      this change makes sense regardless, in light of the above.
      
      When an old module is reported, Target::GetOrCreateModule calls
      m_images.ReplaceModule, which doesn't allow multiple "old" modules; the
      new code calls ReplaceModule for the first "old" module, and for any
      subsequent old modules it logs the event and calls m_images.Remove.
      
      Reviewed By: jingham
      
      Differential Revision: https://reviews.llvm.org/D89156
      61bfc703
    • Anna Thomas's avatar
      [CFG] Replace hardcoded max BBs explored as CL option. NFC. · 7aac3a90
      Anna Thomas authored
      This option was hardcoded to 32. Changing this as a CL option since we
      have seen some cases downstream where increasing this limit allows us to
      disprove reachability.
      
      Reviewed-By: jdoerfert
      Differential Revision: https://reviews.llvm.org/D90487
      7aac3a90
    • Duncan P. N. Exon Smith's avatar
      Reapply "FileManager: Improve the FileEntryRef API and customize its OptionalStorage" · ac49500c
      Duncan P. N. Exon&nbsp;Smith authored
      This reverts commit 940d0a31,
      effectively reapplying 84e82579, after
      working around the compile errors on the bots that I wasn't seeing
      locally. I removed the `constexpr` from `OptionalStorage<FileEntryRef>`
      that I had cargo-culted from the generic version, since `FileEntryRef`
      isn't relevant in `constexpr` contexts anyway.
      
      The original commit message follows:
      
      Make a few changes to the `FileEntryRef` API in preparation for
      propagating it enough to remove `FileEntry::getName()`.
      
      - Allow `FileEntryRef` to degrade implicitly to `const FileEntry*`. This
        allows functions currently returning `const FileEntry *` to be updated
        to return `FileEntryRef` without requiring all callers to be updated
        in the same patch. This helps avoid both (a) massive patches where
        many fields and locals are updated simultaneously and (b) noisy
        incremental patches where the first patch adds `getFileEntry()` at
        call sites and the second patch removes it. (Once `FileEntryRef` is
        everywhere, we should remove this API.)
      - Change `operator==` to compare the underlying `FileEntry*`, ignoring
        any difference in the spelling of the filename. There were 0 users of
        the existing function because it's not useful.  In case comparing the
        exact named reference becomes important, add/test `isSameRef`.
      - Add `==` comparisons between `FileEntryRef` and `const FileEntry *`
        (compares the `FileEntry*`).
      - Customize `OptionalStorage<FileEntryRef>` to be pointer-sized. Add
        a private constructor that initializes with `nullptr` and specialize
        `OptionalStorage` to use it. This unblocks updating fields in
        size-sensitive data structures that currently use `const FileEntry *`.
      - Add `OptionalFileEntryRefDegradesToFileEntryPtr`, a wrapper around
        `Optional<FileEntryRef>` that degrades to `const FileEntry*`. This
        facilitates future incremental patches, like the same operator on
        `FileEntryRef`. (Once `FileEntryRef` is everywhere, we should remove
        this class.)
      - Remove the unncessary `const` from the by-value return of
        `FileEntryRef::getName`.
      - Delete the unused function `FileEntry::isOpenForTests`.
      
      Note that there are still `FileEntry` APIs that aren't wrapped and I
      plan to deal with these separately / incrementally, as they are needed.
      
      Differential Revision: https://reviews.llvm.org/D89834
      ac49500c
    • ergawy's avatar
      [MLIR][SPIRV] Start module combiner. · 27324f28
      ergawy authored
      This commit adds a new library that merges/combines a number of spv
      modules into a combined one. The library has a single entry point:
      combine(...).
      
      To combine a number of MLIR spv modules, we move all the module-level ops
      from all the input modules into one big combined module. To that end, the
      combination process can proceed in 2 phases:
      
        (1) resolving conflicts between pairs of ops from different modules
        (2) deduplicate equivalent ops/sub-ops in the merged module. (TODO)
      
      This patch implements only the first phase.
      
      Reviewed By: antiagainst
      
      Differential Revision: https://reviews.llvm.org/D90477
      27324f28
    • Scott Linder's avatar
      [AMDGPU] Refactor and extend elf-header-flags-mach tests · 13a56ca5
      Scott Linder authored
      * Factor out common elements of the input YAML document and use sed to
        macro replace the run line specific elements.
      * Add checks for the common elements which depend on the ELF class.
      * Use non-numeric suffix for temporary files to avoid merge conflicts.
      * Sort tests by GFX# ascending.
      * Group ELF and YAML tests by GFX#.
      
      Reviewed By: t-tye
      
      Differential Revision: https://reviews.llvm.org/D90245
      13a56ca5
    • Louis Dionne's avatar
    • Dmitry Vyukov's avatar
      tsan: add Go race detector support for macOS/ARM64 · 00da38ce
      Dmitry Vyukov authored
      Add Go race detector support for macOS/ARM64. The Go counterpart is https://golang.org/cl/266373 .
      
      Author: cherry (Cherry Zhang)
      Reviewed-in: https://reviews.llvm.org/D90435
      00da38ce
    • LLVM GN Syncbot's avatar
      [gn build] Port 940d0a31 · d273cb60
      LLVM GN Syncbot authored
      d273cb60
    • Duncan P. N. Exon Smith's avatar
      Revert "FileManager: Improve the FileEntryRef API and customize its OptionalStorage" and follow-ups · 940d0a31
      Duncan P. N. Exon&nbsp;Smith authored
      This reverts commit 5530fb58.
      This reverts commit 010238a2.
      This reverts commit 84e82579.
      
      Having trouble getting the bots compiling. Will try again later.
      940d0a31