Started 4 days 2 hr ago
Took 18 hr on green-dragon-09

Failed Build #5509 (Oct 9, 2019 4:58:47 PM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 374261
  • http://llvm.org/svn/llvm-project/cfe/trunk : 374263
  • http://llvm.org/svn/llvm-project/compiler-rt/trunk : 374258
  • http://llvm.org/svn/llvm-project/debuginfo-tests/trunk : 364589
  • http://llvm.org/svn/llvm-project/libcxx/trunk : 374248
  • http://llvm.org/svn/llvm-project/clang-tools-extra/trunk : 374168
Changes
  1. [CUDA][HIP] Fix host/device check with -fopenmp

    CUDA/HIP program may be compiled with -fopenmp. In this case, -fopenmp is only passed to host compilation
    to take advantages of multi-threads computation.

    CUDA/HIP and OpenMP both use Sema::DeviceCallGraph to store functions to be analyzed and remove them
    once they decide the function is sure to be emitted. CUDA/HIP and OpenMP have different functions to determine
    if a function is sure to be emitted.

    To check host/device correctly for CUDA/HIP when -fopenmp is enabled, there needs a unified logic to determine
    whether a function is to be emitted. The logic needs to be aware of both CUDA and OpenMP logic.

    Differential Revision: https://reviews.llvm.org/D67837 (detail/ViewSVN)
    by yaxunl
  2. Conservatively add volatility and atomic checks in a few places

    As background, starting in D66309, I'm working on support unordered atomics analogous to volatile flags on normal LoadSDNode/StoreSDNodes for X86.

    As part of that, I spent some time going through usages of LoadSDNode and StoreSDNode looking for cases where we might have missed a volatility check or need an atomic check. I couldn't find any cases that clearly miscompile - i.e. no test cases - but a couple of pieces in code loop suspicious though I can't figure out how to exercise them.

    This patch adds defensive checks and asserts in the places my manual audit found. If anyone has any ideas on how to either a) disprove any of the checks, or b) hit the bug they might be fixing, I welcome suggestions.

    Differential Revision: https://reviews.llvm.org/D68419 (detail/ViewSVN)
    by reames
  3. gn build: Merge r374245 (detail/ViewSVN)
    by gnsyncbot
  4. [WebAssembly] Fix tests missed in rL374235 (detail/ViewSVN)
    by tlively
  5. [sanitizer_common] Remove OnPrint from Go build.

    Summary: Go now uses __sanitizer_on_print instead.

    Reviewers: vitalybuka, dvyukov

    Reviewed By: vitalybuka

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D68621 (detail/ViewSVN)
    by morehouse
  6. AMDGPU: Don't fold copies to physregs

    In a future patch, this will help cleanup m0 handling.

    The register coalescer handles copies from a register that
    materializes an immediate, but doesn't handle move immediates
    itself. The virtual register uses will often be allocated to the same
    register, so there end up being no real copy. (detail/ViewSVN)
    by arsenm
  7. AMDGPU/GlobalISel: Fix crash on wide constant load with VGPR pointer

    This was ignoring the register bank of the input pointer, and
    isUniformMMO seems overly aggressive.

    This will now conservatively assume a VGPR in cases where the incoming
    bank hasn't been determined yet (i.e. is from a loop phi). (detail/ViewSVN)
    by arsenm
  8. AMDGPU: Relax register classes used (detail/ViewSVN)
    by arsenm
  9. AMDGPU: Fix typos (detail/ViewSVN)
    by arsenm
  10. GlobalISel: Implement fewerElementsVector for G_BUILD_VECTOR

    Turn it into a G_CONCAT_VECTORS of G_BUILD_VECTOR. (detail/ViewSVN)
    by arsenm
  11. gn build: (manually) merge r374219 (detail/ViewSVN)
    by nico
  12. [libc++][test] Miscellaneous MSVC cleanups

    * Silence unused-local-typedef warnings: `map.cons/assign_initializer_list.pass.cpp` (and the `set.cons` variant) uses a local typedef only within `LIBCPP_ASSERT`s, so clang diagnoses it as unused when testing non-libc++.
    * Add missing include: `c.math/abs.pass.cpp` uses `std::numeric_limits` but failed to `#include <limits>`.
    * Don't test non-type: A "recent" change to `meta.trans.other/underlying_type.pass.cpp` unconditionally tests the type `F` which is conditionally defined.
    * Use `hash<long long>` instead of `hash<short>` with `int` in `unordered_meow` deduction guide tests to avoid truncation warnings.
    * Convert `3.14` explicitly in `midpoint.float.pass` since MSVC incorrectly diagnoses `float meow = 3.14;` as truncating.

    Differential Revision: https://reviews.llvm.org/D68681 (detail/ViewSVN)
    by caseycarter
  13. [GISel] Refactor and split PatternMatchTest. NFC

    Split the ConstantFold part into a separate file and
    make it use the fixture GISelMITest. (detail/ViewSVN)
    by mggm
  14. [InstCombine] Fix PR43617

    Check for `nullptr` before inspecting composite function. (detail/ViewSVN)
    by evandro
  15. [AMDGPU] Fixed dpp combine of VOP1

    If original instruction did not have source modifiers they were
    not added to the new DPP instruction as well, even if needed.

    Differential Revision: https://reviews.llvm.org/D68729 (detail/ViewSVN)
    by rampitec
  16. [IRBuilder] Update IRBuilder::CreateFNeg(...) to return a UnaryOperator

    Also update Clang to call Builder.CreateFNeg(...) for UnaryMinus.

    Differential Revision: https://reviews.llvm.org/D61675 (detail/ViewSVN)
    by mcinally
  17. [WebAssembly] Make returns variadic

    Summary:
    This is necessary and sufficient to get simple cases of multiple
    return working with multivalue enabled. More complex cases will
    require block and loop signatures to be generalized to potentially be
    type indices as well.

    Reviewers: aheejin, dschuff

    Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D68684 (detail/ViewSVN)
    by tlively
  18. [SampleFDO] Add indexing for function profiles so they can be loaded on demand
    in ExtBinary format

    Currently for Text, Binary and ExtBinary format profiles, when we compile a
    module with samplefdo, even if there is no function showing up in the profile,
    we have to load all the function profiles from the profile input. That is a
    waste of compile time.

    CompactBinary format profile has already had the support of loading function
    profiles on demand. In this patch, we add the support to load profile on
    demand for ExtBinary format. It will work no matter the sections in ExtBinary
    format profile are compressed or not. Experiment shows it reduces the time to
    compile a server benchmark by 30%.

    When profile remapping and loading function profiles on demand are both used,
    extra work needs to be done so that the loading on demand process will take
    the name remapping into consideration. It will be addressed in a follow-up
    patch.

    Differential Revision: https://reviews.llvm.org/D68601 (detail/ViewSVN)
    by wmi
  19. llvm-dwarfdump: Support multiple debug_loclists contributions

    Also fixing the incorrect "offset" field being computed/printed for each
    location list. (detail/ViewSVN)
    by dblaikie
  20. [Docs] Adds section for Additional Topics on Reference page

    Adds a new section for Additional Topics on the Reference documentation page. Also moves Support Library topic to User Guides page. (detail/ViewSVN)
    by dr87
  21. [libFuzzer] Fix Alarm callback in fuchsia.

    This patch adds an #if macro to skip the InFuzzingThread() comparison
    for fuchsia, similar to what it is done for Windows and NetBSD.

    In fuchsia, the alarm callback runs in a separate thread[0], making it fail
    the comparison InFuzzingThread(), breaking the -timeout flag.

    [0]:
    https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp#L323

    Author: charco (aka Marco  Vanotti)
    Differential Revision: https://reviews.llvm.org/D68166 (detail/ViewSVN)
    by jakehehrlich
  22. [OPENMP50]Fix scoring of contexts with and without user provided scores.

    The context selector with user provided score must have higher score
    than the context selector without user provided score. (detail/ViewSVN)
    by abataev
  23. [sanitizer, NFC] Fix grammar in comment (detail/ViewSVN)
    by Vitaly Buka
  24. [System Model] [TTI] Define AMDGPUTTIImpl::getST and AMDGPUTTIImpl::getTLI

    To fix "infinite recursion" warning. (detail/ViewSVN)
    by Vitaly Buka
  25. [System Model] [TTI] Fix virtual destructor warning (detail/ViewSVN)
    by Vitaly Buka
  26. [sanitizer] Disable signal_trap_handler on s390 (detail/ViewSVN)
    by Vitaly Buka
  27. [Clang][OpenMP Offload] Add new tool for wrapping offload device binaries

    This patch removes the remaining part of the OpenMP offload linker scripts which was used for inserting device binaries into the output linked binary. Device binaries are now inserted into the host binary with a help of the wrapper bit-code file which contains device binaries as data. Wrapper bit-code file is dynamically created by the clang driver with a help of new tool clang-offload-wrapper which takes device binaries as input and produces bit-code file with required contents. Wrapper bit-code is then compiled to an object and resulting object is appended to the host linking by the clang driver.

    This is the second part of the patch for eliminating OpenMP linker script (please see https://reviews.llvm.org/D64943).

    Differential Revision: https://reviews.llvm.org/D68166 (detail/ViewSVN)
    by sdmitriev
  28. [Docs] Adds Documentation links to sidebar

    Adds links to Getting Started/Tutorials, User Guides, and Reference documentation pages to sidebar. Also adds a new section for LLVM IR on the Reference documentation page. (detail/ViewSVN)
    by dr87
  29. [sanitizer] Make signal_name a C test (detail/ViewSVN)
    by Vitaly Buka
  30. [sanitizer] Use raise() in test and cover more signals (detail/ViewSVN)
    by Vitaly Buka
  31. [ConstProp] add tests for extractelement with undef index; NFC (detail/ViewSVN)
    by spatel
  32. [AMDGPU] Use math constants defined in MathExtras (NFC)

    Use the the new math constants in `MathExtras.h`.

    Differential revision: https://reviews.llvm.org/D68285 (detail/ViewSVN)
    by evandro
  33. [Support] Add mathematical constants

    Add own version of the mathematical constants from the upcoming C++20 `std::numbers`.

    Differential revision: https://reviews.llvm.org/D68257 (detail/ViewSVN)
    by evandro
  34. [System Model] [TTI] Update cache and prefetch TTI interfaces

    Re-apply 9fdfb045ae8b/r365676 with fixes for PPC and Hexagon.  This involved
    moving defaults from TargetTransformInfoImplBase to MCSubtargetInfo.

    Rework the TTI cache and software prefetching APIs to prepare for the
    introduction of a general system model.  Changes include:

    - Marking existing interfaces const and/or override as appropriate
    - Adding comments
    - Adding BasicTTIImpl interfaces that delegate to a subtarget
      implementation
    - Moving the default TargetTransformInfoImplBase implementation to a default
      MCSubtarget implementation

    Only a handful of targets use these interfaces currently: AArch64, Hexagon, PPC
    and SystemZ.  AArch64 already has a custom subtarget implementation, so its
    custom TTI implementation is migrated to use the new facilities in BasicTTIImpl
    to invoke its custom subtarget implementation.  The custom TTI implementations
    continue to exist for the other targets with this change.  They are not moved
    over to subtarget-based implementations.

    The end goal is to have the default subtarget implementation defer to the system
    model defined by the target.  With this change, the default MCSubtargetInfo
    implementation essentially returns the defaults TargetTransformInfoImplBase used
    to return.  Existing users of TTI defaults will hit the defaults now in
    MCSubtargetInfo.  Targets that define their own custom TTI implementations won't
    use the BasicTTIImpl implementations that route to the subtarget.

    Once system models are in place for the targets that use these interfaces, their
    custom TTI implementations can be removed.

    Differential Revision: https://reviews.llvm.org/D63614 (detail/ViewSVN)
    by greened
  35. [ObjC generics] Fix not inheriting type bounds in categories/extensions.

    When a category/extension doesn't repeat a type bound, corresponding
    type parameter is substituted with `id` when used as a type argument. As
    a result, in the added test case it was causing errors like

    > type argument 'T' (aka 'id') does not satisfy the bound ('id<NSCopying>') of type parameter 'T'

    We are already checking that type parameters should be consistent
    everywhere (see `checkTypeParamListConsistency`) and update
    `ObjCTypeParamDecl` to have correct underlying type. And when we use the
    type parameter as a method return type or a method parameter type, it is
    substituted to the bounded type. But when we use the type parameter as a
    type argument, we check `ObjCTypeParamType` that ignores the updated
    underlying type and remains `id`.

    Fix by desugaring `ObjCTypeParamType` to the underlying type, the same
    way we are doing with `TypedefType`.

    rdar://problem/54329242

    Reviewers: erik.pilkington, ahatanak

    Reviewed By: erik.pilkington

    Subscribers: jkorous, dexonsmith, ributzka, cfe-commits

    Differential Revision: https://reviews.llvm.org/D66696 (detail/ViewSVN)
    by vsapsai
  36. [mangle] Fix mangling where an extra mangle context is required.

    Summary:
    - [Itanium C++ ABI][1], for certain contexts like default parameter and
      etc., mangling numbering will be local to the particular argument in
      which it appears.
    - However, for these cases, the mangle numbering context is allocated per
      expression evaluation stack entry. That causes, for example, two
      lambdas defined/used understand the same default parameter are
      numbered as the same value and, in turn, one of them is not generated
      at all.
    - In this patch, an extra mangle numbering context map is maintained in
      the AST context to map taht extra declaration context to its numbering
      context. So that, 2 different lambdas defined/used in the same default
      parameter are numbered differently.

    [1]: https://itanium-cxx-abi.github.io/cxx-abi/abi.html

    Reviewers: rsmith, eli.friedman

    Subscribers: cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D68715 (detail/ViewSVN)
    by hliao
  37. [HIP] Fix -save-temps

    Currently clang does not save some of the intermediate file generated during device compilation for HIP when -save-temps is specified.

    This patch fixes that.

    Differential Revision: https://reviews.llvm.org/D68665 (detail/ViewSVN)
    by yaxunl
  38. DebugInfo: Shot in the dark attempt to fix ubsan error from r374122

    (specifying an underlying type for the enum might also be suitable - but
    this seems better/as good, since there's a clear expectation this can
    contain values other than the actual enumerators of this enum) (detail/ViewSVN)
    by dblaikie
  39. [lit] Refactor ProgressDisplay

    Move progress display to separate file.  Simplify some code paths.
    Decouple from other components via progress callback.  Remove unused
    `_Display` class.

    Reviewed By: serge-sans-paille

    Differential Revision: https://reviews.llvm.org/D68525 (detail/ViewSVN)
    by yln
  40. [ARM] Fix arm_neon.h with -flax-vector-conversions=none

    Really, we were already 99% of the way there; just needed a couple minor
    fixes that affected 64-bit-only builtins.  Based on D61717.

    Note that the change to builtin_str changes the type of a few
    __builtin_neon_* intrinsics that had the "wrong" type.

    Fixes https://bugs.llvm.org/show_bug.cgi?id=43341

    Differential Revision: https://reviews.llvm.org/D68683 (detail/ViewSVN)
    by efriedma
  41. [InstCombine] add another test for gep inbounds; NFC (detail/ViewSVN)
    by spatel
  42. [WebAssembly] Add builtin and intrinsic for v8x16.swizzle

    Summary:
    This clang builtin and corresponding LLVM intrinsic are necessary to
    expose the exact semantics of the underlying WebAssembly instruction
    to users. LLVM produces a poison value if the dynamic swizzle indices
    are greater than the vector size, but the WebAssembly instruction sets
    the corresponding output lane to zero. Users who depend on this
    behavior can safely use this builtin.

    Depends on D68527.

    Reviewers: aheejin, dschuff

    Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D68531 (detail/ViewSVN)
    by tlively
  43. [WebAssembly] v8x16.swizzle and rewrite BUILD_VECTOR lowering

    Summary:
    Adds the new v8x16.swizzle SIMD instruction as specified at
    https://github.com/WebAssembly/simd/blob/master/proposals/simd/SIMD.md#swizzling-using-variable-indices.
    In addition to adding swizzles as a candidate lowering in
    LowerBUILD_VECTOR, also rewrites and simplifies the lowering to
    minimize the number of replace_lanes necessary rather than trying to
    minimize code size. This leads to more uses of v128.const instead of
    splats, which is expected to increase performance.

    The new code will be easier to tune once V8 implements all the vector
    construction operations, and it will also be easier to add new
    candidate instructions in the future if necessary.

    Reviewers: aheejin, dschuff

    Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D68527 (detail/ViewSVN)
    by tlively
  44. [FPEnv][NFC] Change test to conform to strictfp attribute rules.

    In particular, the function definition is not marked strictfp despite
    containing a function marked strictfp. Also, if any function call is marked
    strictfp then all function calls in that function must be marked.

    This change to move the one strictfp call to a new properly marked function
    meets all the new rules.

    Tested with a stricter version of D68233.

    Reviewed by: spatel
    Approved by: spatel
    Differential Revision: https://reviews.llvm.org/D68713 (detail/ViewSVN)
    by kpn
  45. [SLP] respect target register width for GEP vectorization (PR43578)

    We failed to account for the target register width (max vector factor)
    when vectorizing starting from GEPs. This causes vectorization to
    proceed to obviously illegal widths as in:
    https://bugs.llvm.org/show_bug.cgi?id=43578

    For x86, this also means that SLP can produce rogue AVX or AVX512
    code even when the user specifies a narrower vector width.

    The AArch64 test in ext-trunc.ll appears to be better using the
    narrower width. I'm not exactly sure what getelementptr.ll is trying
    to do, but it's testing with "-slp-threshold=-18", so I'm not worried
    about those diffs. The x86 test is an over-reduction from SPEC h264;
    this patch appears to restore the perf loss caused by SLP when using
    -march=haswell.

    Differential Revision: https://reviews.llvm.org/D68667 (detail/ViewSVN)
    by spatel
  46. [AArch64] Ensure no tagged memory is left in the unallocated portion of the
    stack

    This patch makes sure that if we tag some memory, we untag that memory before
    the function returns/throws via any exit, reachable from the tag operation. For
    that we place the untag operation either at:

      a) the lifetime end call for the alloca, if that call post-dominates the
         lifetime start call (where the tag operation is placed), or it (the
         lifetime end call) dominates all reachable exits, otherwise
      b) at the reachable exits

    Differential Revision: https://reviews.llvm.org/D68469 (detail/ViewSVN)
    by chill
  47. [NFC] Remove files got accidentally upload in llvm-svn 374179 (detail/ViewSVN)
    by jasonliu
  48. [AIX][XCOFF][NFC] Change the SectionLen field name of CSect Auxiliary entry to SectionOrLength.

    Summary:
    According the the XCOFF document,
    If
    Then
    XTY_SD
    x_scnlen contains the csect length.
    XTY_LD
    x_scnlen contains the symbol table index of the containing csect.
    XTY_CM
    x_scnlen contains the csect length.
    XTY_ER
    x_scnlen contains 0.

    Change the SectionLen member name to SectionOrLength is more reasonable.

    Authored By: DiggerLin

    Reviewed By: hubert.reinterpretcast

    Differential Revision: https://reviews.llvm.org/D68650 (detail/ViewSVN)
    by jasonliu
  49. Re-land "[dsymutil] Fix handling of common symbols in multiple object files."

    The original patch got reverted because it hit a long-standing legacy
    issue on Windows that prevents files from being named `com`. Thanks
    Kristina & Jeremy for pointing this out. (detail/ViewSVN)
    by Jonas Devlieghere
  50. [MemorySSA] Make the use of moveAllAfterMergeBlocks consistent.

    Summary:
    The rule for the moveAllAfterMergeBlocks API si for all instructions
    from `From` to have been moved to `To`, while keeping the CFG edges (and
    block terminators) unchanged.
    Update all the callsites for moveAllAfterMergeBlocks to follow this.

    Pending follow-up: since the same behavior is needed everytime, merge
    all callsites into one. The common denominator may be the call to
    `MergeBlockIntoPredecessor`.

    Resolves PR43569.

    Reviewers: george.burgess.iv

    Subscribers: Prazek, sanjoy.google, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D68659 (detail/ViewSVN)
    by asbirlea
  51. [NFC] Reverting changes from test commit.
    llvm commit access test succeeded. (detail/ViewSVN)
    by mitchell
  52. [NFC] Test commit.
    Testing llvm commit access only. (detail/ViewSVN)
    by mitchell
  53. [scudo][standalone] Get statistics in a char buffer

    Summary:
    Following up on D68471, this CL introduces some `getStats` APIs to
    gather statistics in char buffers (`ScopedString` really) instead of
    printing them out right away. Ultimately `printStats` will just
    output the buffer, but that allows us to potentially do some work
    on the intermediate buffer, and can be used for a `mallocz` type
    of functionality. This allows us to pretty much get rid of all the
    `Printf` calls around, but I am keeping the function in for
    debugging purposes.

    This changes the existing tests to use the new APIs when required.

    I will add new tests as suggested in D68471 in another CL.

    Reviewers: morehouse, hctim, vitalybuka, eugenis, cferris

    Reviewed By: morehouse

    Subscribers: delcypher, #sanitizers, llvm-commits

    Tags: #llvm, #sanitizers

    Differential Revision: https://reviews.llvm.org/D68653 (detail/ViewSVN)
    by cryptoad
  54. [clang-format] Update noexcept reference qualifiers detection

    Summary:
    r373165 fixed an issue where a templated noexcept member function with a
    reference qualifier would be indented more than expected:
    ```
    // Formatting produced with LLVM style with AlwaysBreakTemplateDeclarations: Yes

    // before r373165:
    struct f {
      template <class T>
          void bar() && noexcept {}
    };

    // after:
    struct f {
      template <class T>
      void bar() && noexcept {}
    };

    ```
    The way this is done is that in the AnnotatingParser in
    `lib/FormatTokenAnnotator.cpp` the determination of the usage of a `&` or `&&`
    (the line in determineTokenType

    ```
    Current.Type = determineStarAmpUsage(...
    ```
    is not performed in some cases anymore, combining with a few additional related
    checks afterwards. The net effect of these checks results in the `&` or `&&`
    token to start being classified as `TT_Unknown` in cases where before `r373165`
    it would be classified as `TT_UnaryOperator` or `TT_PointerOrReference` by
    `determineStarAmpUsage`.

    This inadvertently caused 2 classes of regressions I'm aware of:

    - The address-of `&` after a function assignment would be classified as
      `TT_Unknown`, causing spaces to surround it, disregarding style options:
    ```
    // before r373165:
    void (*fun_ptr)(void) = &fun;

    // after:
    void (*fun_ptr)(void) = & fun;
    ```

    - In cases where there is a function declaration list -- looking macro between
      a template line and the start of the function declaration, an `&` as part of
      the return type would be classified as `TT_Unknown`, causing spaces to
      surround it:
    ```
    // before r373165:
    template <class T>
    DEPRECATED("lala")
    Type& foo();

    // after:
    template <class T>
    DEPRECATED("lala")
    Type & foo();
    ```

    In these cases the problems are rooted in the skipping of the classification of
    a `&` (and similarly `&&`) by determineStarAmpUsage which effects the formatting
    decisions later in the pipeline.

    I've looked into the goal of r373165 and noticed that replacing `noexcept` with
    `const` in the given example produces no extra indentation with the old code:
    ```
    // before r373165:
    struct f {
      template <class T>
      int foo() & const {}
    };

    struct f {
      template <class T>
          int foo() & noexcept {}
    };
    ```

    I investigated how clang-format annotated these two examples differently to
    determine the places where the processing of both diverges in the pipeline.
    There were two places where the processing diverges, causing the extra indent in
    the `noexcept` case:
    1. The `const` is annotated as a `TT_TrailingAnnotation`, whereas `noexcept`
       is annotated as `TT_Unknown`. I've updated the `determineTokenType` function
       to account for this by adding a missing `tok:kw_noexcept` to the clause that
       marks a token as `TT_TrailingAnnotation`.
    2. The `&` in the second example is wrongly identified as `TT_BinaryOperator`
       in `determineStarAmpUsage`. This is the reason for the extra indentation --
       clang-format gets confused and thinks this is an expression.
       I've updated `determineStarAmpUsage` to check for `tok:kw_noexcept`.

    With these two updates in place, the additional parsing introduced by r373165
    becomes unnecessary and all added tests pass (with updates, as now clang-format
    respects the style configuration for spaces around the `&` in the test
    examples).
    I've removed these additions and added regression tests for the cases above.

    Reviewers: AndWass, MyDeveloperDay

    Reviewed By: MyDeveloperDay

    Subscribers: cfe-commits

    Tags: #clang, #clang-format

    Differential Revision: https://reviews.llvm.org/D68695 (detail/ViewSVN)
    by krasimir
  55. Fix Wdocumentation unknown parameter warning. NFCI. (detail/ViewSVN)
    by rksimon
  56. [llvm-exegesis] Ensure that ExecutableFunction are aligned.

    Summary: Experiments show that this is the alignment we get (for ELF+Linux), but let's ensure that we have it.

    Reviewers: gchatelet

    Subscribers: tschuett, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D68703 (detail/ViewSVN)
    by courbet
  57. Add and adjust saturating tests. NFC

    This adds some extra testing to the existing [su][add/sub]_sat X86 and AArch64
    tests and adds equivalent tests for ARM. (detail/ViewSVN)
    by dmgreen
  58. [clangd] Make sure ReplyCallbacks are destroyed before RequestCancelersMutex

    Summary:
    After rL374163, replycallbacks might have a cancellable context, which
    will try to access RequestCancellers on destruction. See
    http://45.33.8.238/mac/1245/step_7.txt for a sample failure.

    Reviewers: sammccall

    Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits, thakis

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D68702 (detail/ViewSVN)
    by kadircet
  59. [clang-offload-bundler] Support `.cui` and `.d`.

    Reviewers: tra, yaxunl

    Subscribers: cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D68663 (detail/ViewSVN)
    by hliao
  60. [LV] Emitting SCEV checks with OptForSize

    When optimising for size and SCEV runtime checks need to be emitted to check
    overflow behaviour, the loop vectorizer can run in this assert:

      LoopVectorize.cpp:2699: void llvm::InnerLoopVectorizer::emitSCEVChecks(
      llvm::Loop *, llvm::BasicBlock *): Assertion `!BB->getParent()->hasOptSize()
      && "Cannot SCEV check stride or overflow when opt

    We should not generate predicates while optimising for size because
    code will be generated for predicates such as these SCEV overflow runtime
    checks.

    This should fix PR43371.

    Differential Revision: https://reviews.llvm.org/D68082 (detail/ViewSVN)
    by sjoerdmeijer
  61. [mips] Rename local variable. NFC (detail/ViewSVN)
    by atanasyan
  62. [mips] Split expandLoadImmReal into multiple methods. NFC

    The `expandLoadImmReal` handles four different and almost non-overlapping
    cases: loading a "single" float immediate into a GPR, loading a "single"
    float immediate into a FPR, and the same couple for a "double" float
    immediate.

    It's better to move each `else if` branch into separate methods. (detail/ViewSVN)
    by atanasyan
  63. [clangd] Propagate context into reply handlers (detail/ViewSVN)
    by kadircet
  64. [llvm-exegesis] Fix r374158

    Some bots complain about missing 'class':

    LlvmState.h:70:40: error: declaration of ‘std::unique_ptr<const llvm::TargetMachine> llvm::exegesis::LLVMState::TargetMachine’ [-fpermissive]
       std::unique_ptr<const TargetMachine> TargetMachine; (detail/ViewSVN)
    by courbet
  65. [CostModel][X86] Add tests for insertelement to non-immediate vector element indices (detail/ViewSVN)
    by rksimon
  66. [CostModel][X86] Add tests for extractelement from non-immediate vector element indices (detail/ViewSVN)
    by rksimon
  67. [ARM] Add saturating arithmetic tests for MVE. NFC (detail/ViewSVN)
    by dmgreen
  68. [llvm-exegesis][NFC] Remove extra `llvm::` qualifications.

    Summary: Second patch: in the lib.

    Reviewers: gchatelet

    Subscribers: nemanjai, tschuett, MaskRay, mgrang, jsji, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D68692 (detail/ViewSVN)
    by courbet
  69. [llvm-exegesis][NFC] Remove extra `llvm::` qualifications.

    Summary: First patch: in unit tests.

    Subscribers: nemanjai, tschuett, MaskRay, jsji, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D68687 (detail/ViewSVN)
    by courbet
  70. [mips] Set default float ABI to "soft" on FreeBSD

    Initial patch by Kyle Evans.

    Fix PR43596 (detail/ViewSVN)
    by atanasyan
  71. [DebugInfo] Enable call site debug info for ARM and AArch64

    ARM and AArch64 SelectionDAG support for tacking parameter forwarding
    register is implemented so we can allow clang invocations for those two
    targets.
    Beside that restrict debug entry value support to be emitted for
    LimitedDebugInfo info and FullDebugInfo. Other types of debug info do
    not have functions nor variables debug info.

    Reviewers: aprantl, probinson, dstenb, vsk

    Reviewed By: vsk

    Differential Revision: https://reviews.llvm.org/D67004 (detail/ViewSVN)
    by nikolaprica
  72. [Sema] Emit diagnostics for uncorrected delayed typos at the end of TU

    Summary:
    Instead of asserting all typos are corrected in the sema destructor.

    The sema destructor is not run in the common case of running the compiler
    with the -disable-free cc1 flag (which is the default in the driver).

    Having this assertion led to crashes in libclang and clangd, which are not
    reproducible when running the compiler.

    Asserting at the end of the TU could be an option, but finding all
    missing typo correction cases is hard and having worse diagnostics instead
    of a failing assertion is a better trade-off.

    For more discussion on this, see:
    https://lists.llvm.org/pipermail/cfe-dev/2019-July/062872.html

    Reviewers: sammccall, rsmith

    Reviewed By: rsmith

    Subscribers: usaxena95, dgoldman, jkorous, vsapsai, rnk, kadircet, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64799 (detail/ViewSVN)
    by ibiryukov
  73. Revert r374006: Reland 'Add VFS support for sanitizers' blacklist'

    Also revert follow-up changes to the test.
    Reason: the patch breaks our internal clang-tidy integration.

    It's also unclear why we should use getRealPath instead of plumbing the
    VFS to SanitizerBlacklist, see original commit thread of cfe-commits for
    a discussion. (detail/ViewSVN)
    by ibiryukov
  74. [TableGen] Fix crash when using HwModes in CodeEmitterGen

    When an instruction has an encoding definition for only a subset of
    the available HwModes, ensure we just avoid generating an encoding
    rather than crash. (detail/ViewSVN)
    by jamesm
  75. [llvm-exegesis] Add missing std::move in rL374146.

    This was breaking some bots:

    /home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/include/llvm/Support/Error.h:483:5:   required from ‘llvm::Expected<T>::Expected(OtherT&&, typename std::enable_if<std::is_convertible<_Rep2, _Rep>::value>::type*) [with OtherT = std::vector<llvm::exegesis::CodeTemplate>&; T = std::vector<llvm::exegesis::CodeTemplate>; typename std::enable_if<std::is_convertible<_Rep2, _Rep>::value>::type = void]’
    /home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/tools/llvm-exegesis/lib/X86/Target.cpp:238:20:   required from here
    /usr/include/c++/6/bits/stl_construct.h:75:7: error: use of deleted function ‘llvm::exegesis::CodeTemplate::CodeTemplate(const llvm::exegesis::CodeTemplate&)’
         { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (detail/ViewSVN)
    by courbet
  76. Unify the two CRC implementations

    David added the JamCRC implementation in r246590. More recently, Eugene
    added a CRC-32 implementation in r357901, which falls back to zlib's
    crc32 function if present.

    These checksums are essentially the same, so having multiple
    implementations seems unnecessary. This replaces the CRC-32
    implementation with the simpler one from JamCRC, and implements the
    JamCRC interface in terms of CRC-32 since this means it can use zlib's
    implementation when available, saving a few bytes and potentially making
    it faster.

    JamCRC took an ArrayRef<char> argument, and CRC-32 took a StringRef.
    This patch changes it to ArrayRef<uint8_t> which I think is the best
    choice, and simplifies a few of the callers nicely.

    Differential revision: https://reviews.llvm.org/D68570 (detail/ViewSVN)
    by hans
  77. [llvm-exegesis][NFC] Fix rL374146.

    Remove extra semicolon: Target.cpp:187:2: warning: extra ‘;’ [-Wpedantic] (detail/ViewSVN)
    by courbet
  78. [llvm-exegesis] Explore LEA addressing modes.

    Summary:
    This will help for PR32326.

    This shows the well-known issue with `RBP` and `R13` as base registers.

    Reviewers: gchatelet

    Subscribers: tschuett, llvm-commits, RKSimon, andreadb

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D68646 (detail/ViewSVN)
    by courbet
  79. Revert r374139, "[dsymutil] Fix handling of common symbols in multiple object files."

    The added test files ("com", "com1.o", "com2.o") are reserved names on
    Windows, and makes 'git checkout' fail with a filesystem error. (detail/ViewSVN)
    by jmorse
  80. [llvm-exegesis][NFC] Remove unecessary `using llvm::` directives.

    We've been in namespace llvm for at least a year. (detail/ViewSVN)
    by courbet

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18471
originally caused by:

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18472
originally caused by:

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18473
originally caused by:

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18474
originally caused by:

This run spent:

  • 17 hr waiting;
  • 18 hr build duration;
  • 1 day 12 hr total from scheduled to completion.

Identified problems

Ninja target failed

Below is a link to the first failed ninja target.
Indication 1

Compile Error

This build failed because of a compile error. Below is a list of all errors in the build log:
Indication 2

Missing test results

The test result file Jenkins is looking for does not exist after the build.
Indication 3

Regression test failed

This build failed because a regression test in the test suite FAILed. See the test report for details.
Indication 4