Started 9 mo 9 days ago
Took 3 min 58 sec on green-dragon-15

Failed Build #272 (Feb 5, 2019 6:28:05 PM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 353249
  • http://llvm.org/svn/llvm-project/cfe/trunk : 353260
  • http://llvm.org/svn/llvm-project/compiler-rt/trunk : 353261
  • http://llvm.org/svn/llvm-project/debuginfo-tests/trunk : 346271
  • http://llvm.org/svn/llvm-project/libcxx/trunk : 353215
  • http://llvm.org/svn/llvm-project/clang-tools-extra/trunk : 353092
Changes
  1. [sanitizer] Fix fuchsia and windows build. (detail/ViewSVN)
    by eugenis
  2. [WebAssembly] Add atomics target option

    Reviewers: tlively

    Subscribers: dschuff, sbc100, jgravelle-google, sunfish, jfb, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D57798 (detail/ViewSVN)
    by aheejin
  3. [sanitizer] Decorate /proc/self/maps better.

    Summary:
    Refactor the way /proc/self/maps entries are annotated to support most
    (all?) posix platforms, with a special implementation for Android.
    Extend the set of decorated Mmap* calls.

    Replace shm_open with internal_open("/dev/shm/%s"). Shm_open is
    problematic because it calls libc open() which may be intercepted.

    Generic implementation has limits (max number of files under /dev/shm is
    64K on my machine), which can be conceivably reached when sanitizing
    multiple programs at once. Android implemenation is essentially free, and
    enabled by default.

    The test in sanitizer_common is copied to hwasan and not reused directly
    because hwasan fails way too many common tests at the moment.

    Reviewers: pcc, vitalybuka

    Subscribers: srhines, kubamracek, jfb, llvm-commits, kcc

    Differential Revision: https://reviews.llvm.org/D57720 (detail/ViewSVN)
    by eugenis
  4. [x86] add tests for extract+sitofp; NFC (detail/ViewSVN)
    by spatel
  5. [WebAssembly] Tidy up `let` statements in .td files (NFC)

    Summary:
    - Delete {} for one-line `let` statements
    - Don't indent within `let` blocks
    - Add comments after `let` block's closing braces

    Reviewers: tlively

    Subscribers: dschuff, sbc100, jgravelle-google, sunfish, jfb, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D57730 (detail/ViewSVN)
    by aheejin
  6. Fix MSVC constructor call extension after b92d290e48e9 (r353181).

    The assert added to EmitCall there was triggering in Windows Chromium
    builds, due to a mismatch of the return type.

    The MSVC constructor call extension (`this->Foo::Foo()`) was emitting
    the constructor call from 'EmitCXXMemberOrOperatorMemberCallExpr' via
    calling 'EmitCXXMemberOrOperatorCall', instead of
    'EmitCXXConstructorCall'. On targets where HasThisReturn is true, that
    was failing to set the proper return type in the call info.

    Switching to calling EmitCXXConstructorCall also allowed removing some
    code e.g. the trivial copy/move support, which is already handled in
    EmitCXXConstructorCall.

    Ref: https://bugs.chromium.org/p/chromium/issues/detail?id=928861
    Differential Revision: https://reviews.llvm.org/D57794 (detail/ViewSVN)
    by jyknight
  7. [BasicAA] Cache nonEscapingLocalObjects for alias() calls.

    Summary:
    Use a small cache for Values tested by nonEscapingLocalObject().
    Since the calls to PointerMayBeCaptured are fairly expensive, this saves
    a good amount of compile time for anything relying heavily on
    BasicAA.alias() calls.

    This uses the same approach as the AliasCache, i.e. the cache is reset
    after each alias() call. The cache is not used or updated by modRefInfo
    calls since it's harder to know when to reset the cache.

    Testcases that show improvements with this patch are too large to
    include. Example compile time improvement: 7s to 6s.

    Reviewers: chandlerc, sunfish

    Subscribers: sanjoy, jlebar, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D57627 (detail/ViewSVN)
    by asbirlea
  8. gn build: Fix clang-tidy build

    Not depending on //clang/lib/StaticAnalyzer/Core and
    //clang/lib/StaticAnalyzer/Frontend causes a linker error even if
    ClangSACheckers are not supported.

    Undefined symbols for architecture x86_64:
      "clang::ento::CreateAnalysisConsumer(clang::CompilerInstance&)", referenced from:
          clang::tidy::ClangTidyASTConsumerFactory::CreateASTConsumer(
                  clang::CompilerInstance&, llvm::StringRef)
              in libclangTidy.a(libclangTidy.ClangTidy.o)

    Patch from Mirko Bonadei <mbonadei@webrtc.org>!

    Differential Revision: https://reviews.llvm.org/D57777 (detail/ViewSVN)
    by nico
  9. [HotColdSplit] Do not split out `resume` instructions

    Resumes that are not reachable from a cleanup landing pad are considered
    to be unreachable. It’s not safe to split them out.

    rdar://47808235 (detail/ViewSVN)
    by Vedant Kumar
  10. Orc: Simplify RPC naming system by using function-local statics

    The existing scheme of class template static members for Name and
    NameMutex is a bit verbose, involves global ctors (even if they're cheap
    for string and mutex, still not entirely free), and (importantly/my
    immediate motivation here) trips over a bug in LLVM's modules
    implementation that's a bit involved (hmm, sounds like Mr. Smith has a
    fix for the modules thing - but I'm still inclined to commit this patch
    as general goodness). (detail/ViewSVN)
    by dblaikie
  11. [modules] Fix handling of initializers for templated global variables.

    For global variables with unordered initialization that are instantiated
    within a module, we previously did not emit the global (or its
    initializer) at all unless it was used in the importing translation unit
    (and sometimes not even then!), leading to misbehavior and link errors.

    We now emit the initializer for an instantiated global variable with
    unordered initialization with side-effects in a module into every
    translation unit that imports the module. This is unfortunate, but
    mostly matches the behavior of a non-modular compilation and seems to be
    the best that we can reasonably do. (detail/ViewSVN)
    by rsmith
  12. Fixup test on Windows with a case-insensitive filesystem due to path printing changes from r352704. (detail/ViewSVN)
    by dyung
  13. [ADT] Add a fallible_iterator wrapper.

    A fallible iterator is one whose increment or decrement operations may fail.
    This would usually be supported by replacing the ++ and -- operators with
    methods that return error:

        class MyFallibleIterator {
        public:
          // ...
          Error inc();
          Errro dec();
          // ...
        };

    The downside of this style is that it no longer conforms to the C++ iterator
    concept, and can not make use of standard algorithms and features such as
    range-based for loops.

    The fallible_iterator wrapper takes an iterator written in the style above
    and adapts it to (mostly) conform with the C++ iterator concept. It does this
    by providing standard ++ and -- operator implementations, returning any errors
    generated via a side channel (an Error reference passed into the wrapper at
    construction time), and immediately jumping the iterator to a known 'end'
    value upon error. It also marks the Error as checked any time an iterator is
    compared with a known end value and found to be inequal, allowing early exit
    from loops without redundant error checking*.

    Usage looks like:

        MyFallibleIterator I = ..., E = ...;

        Error Err = Error::success();
        for (auto &Elem : make_fallible_range(I, E, Err)) {
          // Loop body is only entered when safe.

          // Early exits from loop body permitted without checking Err.
          if (SomeCondition)
            return;

        }
        if (Err)
          // Handle error.

    * Since failure causes a fallible iterator to jump to end, testing that a
      fallible iterator is not an end value implicitly verifies that the error is a
      success value, and so is equivalent to an error check.

    Reviewers: dblaikie, rupprecht

    Subscribers: mgorny, dexonsmith, kristina, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D57618 (detail/ViewSVN)
    by Lang Hames
  14. [WebAssembly] Add a comment about why v128.const test was disabled (NFC) (detail/ViewSVN)
    by aheejin
  15. [InstCombine] limit extracting shuffle transform based on uses

    As discussed in D53037, this can lead to worse codegen, and we
    don't generally expect the backend to be able to optimize
    arbitrary shuffles. If there's only one use of the 1st shuffle,
    that means it's getting removed, so that should always be
    safe. (detail/ViewSVN)
    by spatel
  16. [WebAssembly] Disable a v128.const test line temporarily

    r353131 caused failures in v128.const test for clang-ppc64be-linux-lnt
    and clang-s390x-linux bots. This temporarily disables that line until
    it is fixed. (detail/ViewSVN)
    by aheejin
  17. [InstCombine] split shuffle test to show extra use constraint; NFC

    As discussed in D53037, this transform can cause codegen problems
    if the 1st shuffle has multiple uses. (detail/ViewSVN)
    by spatel
  18. Basic CUDA-10 support.

    Differential Revision: https://reviews.llvm.org/D57771 (detail/ViewSVN)
    by tra
  19. [Preprocessor] Add a note with framework location for "file not found" error.

    When a framework with the same name is available at multiple framework
    search paths, we use the first matching location. If a framework at this
    location doesn't have all the headers, it can be confusing for
    developers because they see only an error `'Foo/Foo.h' file not found`,
    can find the complete framework with required header, and don't know the
    incomplete framework was used instead.

    Add a note explaining a framework without required header was found.
    Also mention framework directory path to make it easier to find the
    incomplete framework.

    rdar://problem/39246514

    Reviewers: arphaman, erik.pilkington, jkorous

    Reviewed By: jkorous

    Subscribers: jkorous, dexonsmith, cfe-commits

    Differential Revision: https://reviews.llvm.org/D56561 (detail/ViewSVN)
    by vsapsai
  20. [PGO] Use a function for creating variable for profile file name. NFC.

    Factored out the code for creating variable for profile file name to
    a function. (detail/ViewSVN)
    by xur
  21. [analyzer] Document RetainCountChecker behavior and annotations

    Differential Revision: https://reviews.llvm.org/D57721 (detail/ViewSVN)
    by George Karpenkov
  22. [analyzer] [testing] Inside CmpRuns.py output also print the filename of the first item in the path

    Differential Revision: https://reviews.llvm.org/D57783 (detail/ViewSVN)
    by George Karpenkov
  23. [analyzer] [RetainCountChecker] Bugfix: in non-OSObject-mode, do not track CXX method calls

    Differential Revision: https://reviews.llvm.org/D57782 (detail/ViewSVN)
    by George Karpenkov
  24. [elfabi] Fix the type of the variable formated for error output

    Change the format type of Dyn.SONameOffset to PRIx64 since it is a uint64_t.
    The problem was detected on mips builds, where it was printing junk values
    and causing test failure.

    Patch by Milos Stojanovic.

    Differential Revision: https://reviews.llvm.org/D57676 (detail/ViewSVN)
    by petarj
  25. Update the ioctl(2) list in sanitizers with NetBSD 8.99.34 (detail/ViewSVN)
    by kamil
  26. [NFC][GlobalISel]: Add a convenience method to MachineInstrBuilder to simplify getOperand(i).getReg()

    https://reviews.llvm.org/D57608

    It's a common pattern in GISel to have a MachineInstrBuilder from which we get various regs
    (commonly MIB->getOperand(0).getReg()). This adds a helper method and the above can be
    replaced with MIB.getReg(0). (detail/ViewSVN)
    by aditya_nandakumar
  27. [X86] Regenerate tests missed in r353061. NFC

    We now print the implicit %st register on these instruction, but since they occur at the end of the line, FileCheck didn't see they were missing. (detail/ViewSVN)
    by ctopper
  28. [InstrProf] Merge COFF .lprof* and .lcovmap sections into .data/.rdata

    There is no reason for these sections to remain separate in the final
    DLL or EXE.

    I have not yet added a InstrProfilingPlatformWindows.c for these, since
    avoiding dynamic profile data registration is a larger project for
    later. (detail/ViewSVN)
    by rnk
  29. Fix a missing word in comment (detail/ViewSVN)
    by Adrian Prantl
  30. [MC] Don't error on numberless .file directives on MachO

    Summary:
    Before r349976, MC ignored such directives when producing an object file
    and asserted when re-producing textual assembly output. I turned this
    assertion into a hard error in both cases in r349976, but this makes it
    unnecessarily difficult to write a single assembly file that supports
    both MachO and other object formats that support .file. A user reported
    this as PR40578, and we decided to go back to ignoring the directive.

    Fixes PR40578

    Reviewers: mstorsjo

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D57772 (detail/ViewSVN)
    by rnk
  31. [llvm-readobj] Display sections that do not belong to a segment in the section-mapping

    Summary:
    The following patch adds the "None" line to the section to segment mapping dump.
    That line lists the sections that do not belong to any segment.
    I realize that this change differs from GNU readelf which does not display the latter information.

    I'd rather not add this "feature" under a command line option.  I think that might introduce confusion, since users would have to
    make an additional decision as to if they want to see all of the section-to-segment map or just a subset of it.

    Another option is to only print the "None" line if the `--section-mapping` option is passed; however,
    that might also introduce some confusion, because the section-to-segment map would be different between`--program-headers`
    and the `--section-mapping` output.  While the difference is just the "None" line, it seems that if we choose to display
    the segment-to-section mapping, then we should always display the whole map including the sections
    that do not belong to segments.

    ```
    Section to Segment mapping:
      Segment Sections...
       00
       01     .interp
       02     .interp .note.ABI-tag .gnu.hash
       03     .init_array .fini_array .dynamic
       04     .dynamic
       05     .note.ABI-tag
       06     .eh_frame_hdr
       07
       08     .init_array .fini_array .dynamic .got
       None   .comment .symtab .strtab .shstrtab <--- THIS LINE
    ```

    Reviewers: grimar, rupprecht, jhenderson, espindola

    Reviewed By: rupprecht

    Subscribers: khemant, emaste, arichardson, llvm-commits

    Differential Revision: https://reviews.llvm.org/D57700 (detail/ViewSVN)
    by mattd
  32. [WebAssembly] Lower memmove to memory.copy

    Summary: The lowering is identical to the memcpy lowering.

    Reviewers: aheejin

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D57727 (detail/ViewSVN)
    by tlively
  33. [libc++] Fix XFAILs when exceptions are disabled

    It turns out that I un-XFAILed too many tests in r353210: some tests
    actually fail whether exceptions are enabled or not because they use
    types that are marked as unavailable even when exceptions are disabled. (detail/ViewSVN)
    by Louis Dionne
  34. [DOCS]Support for emission of the debug info for the Cuda devices, NFC. (detail/ViewSVN)
    by abataev
  35. [TargetLibraryInfo] Regroup run time functions for Windows (NFC)

    Regroup supported and unsupported functions by precision and C standard. (detail/ViewSVN)
    by evandro
  36. Do not use frame pointer by default for MSP430

    This is suggested by 3.3.9 of MSP430 EABI document.
    We do allow user to manually enable frame pointer. GCC toolchain uses the same behavior.

    Patch by Dmitry Mikushev!

    Differential Revision: https://reviews.llvm.org/D56925 (detail/ViewSVN)
    by asl
  37. Move some llvm-mc tests where they belong (detail/ViewSVN)
    by arsenm
  38. [libc++] Fix XFAILs on macOS when exceptions are disabled

    Some tests are marked as failing on platforms where the dylib does not
    provide the required exception classes. However, when testing with
    exceptions disabled, those tests shouldn't be marked as failing. (detail/ViewSVN)
    by Louis Dionne
  39. GlobalISel: Verify G_GEP (detail/ViewSVN)
    by arsenm
  40. [CMake] Support compiler-rt builtins library in tests

    We're building tests with -nostdlib which means that we need to
    explicitly include the builtins library. When using libgcc (default)
    we can simply include -lgcc_s on the link line, but when using
    compiler-rt builtins we need a complete path to the builtins library.

    This path is already available in CMake as <PROJECT>_BUILTINS_LIBRARY,
    so we just need to pass that path to lit and if config.compiler_rt is
    true, link it to the test.

    Prior to this patch, running tests when compiler-rt is being used as
    the builtins library was broken as all tests would fail to link, but
    with this change running tests when compiler-rt bultins library is
    being used should be supported.

    Differential Revision: https://reviews.llvm.org/D56701 (detail/ViewSVN)
    by phosek
  41. [AMDGPU] Consider XOR in waterfall loop as a terminator

    Ensure the XOR in the waterfall loop for indirect addressing is considered a terminator.

    Differential Revision: https://reviews.llvm.org/D57703 (detail/ViewSVN)
    by scott.linder
  42. [libc++] Use UNSUPPORTED instead of TEST_STD_VER #ifdef

    When the whole test only works starting at some version of the Standard,
    use UNSUPPORTED lit markup instead of #ifdef TEST_STD_VER. This provides
    more visibility into the test suite.

    Reviewed as https://reviews.llvm.org/D57704.
    Thanks to Andrey Maksimov for the patch. (detail/ViewSVN)
    by Louis Dionne
  43. [sanitizer] Fix unused function 'unpoison_passwd' (detail/ViewSVN)
    by Vitaly Buka
  44. [DEBUG_INFO][NVPTX] Generate correct data about variable address class.

    Summary:
    Added ability to generate correct debug info data about the variable
    address class. Currently, for all the locals and globals the default
    values are used, ADDR_local_space(6) for locals and ADDR_global_space(5)
    for globals. The values are taken from the table in
      https://docs.nvidia.com/cuda/archive/10.0/ptx-writers-guide-to-interoperability/index.html#cuda-specific-dwarf.
      We need to emit correct data for address classes of, at least, shared
      and constant globals. Currently, all these variables are treated by
      the cuda-gdb debugger as the variables in the global address space
      and, thus, it require manual data type casting.

    Reviewers: echristo, probinson

    Subscribers: jholewinski, aprantl, cfe-commits

    Differential Revision: https://reviews.llvm.org/D57162 (detail/ViewSVN)
    by abataev
  45. [DEBUG_INFO][NVPTX] Generate DW_AT_address_class to get the values in debugger.

    Summary:
    According to
    https://docs.nvidia.com/cuda/archive/10.0/ptx-writers-guide-to-interoperability/index.html#cuda-specific-dwarf,
    the compiler should emit the DW_AT_address_class attribute for all
    variable and parameter. It means, that DW_AT_address_class attribute
    should be used in the non-standard way to support compatibility with the
    cuda-gdb debugger.
    Clang is able to generate the information about the variable address
    class. This information is emitted as the expression sequence
    `DW_OP_constu <DWARF Address Space> DW_OP_swap DW_OP_xderef`. The patch
    tries to find all such expressions and transform them into
    `DW_AT_address_class <DWARF Address Space>` if target is NVPTX and the debugger is gdb.
    If the expression is not found, then default values are used. For the
    local variables <DWARF Address Space> is set to ADDR_local_space(6), for
    the globals <DWARF Address Space> is set to ADDR_global_space(5). The
    values are taken from the table in the same section 5.2. CUDA-Specific
    DWARF Definitions.

    Reviewers: echristo, probinson

    Subscribers: jholewinski, aprantl, llvm-commits

    Differential Revision: https://reviews.llvm.org/D57157 (detail/ViewSVN)
    by abataev
  46. AMDGPU: Fix assert on trunc from bitcast of build_vector

    The v2i64 argument is lowered to a bitcast of v4i32 build_vector.
    This would then attempt to use the i32-element as the source of the
    vector truncate. This really would need to collect 2 elements from the
    build_vector to produce the intended truncate. (detail/ViewSVN)
    by arsenm
  47. [libcxx] Start defining lit features for tests depending on availability

    This patch removes some vendor-specific availability XFAILs from the
    test suite. In the future, when a new feature is introduced in the
    dylib, an availability macro should be created and a matching lit
    feature should be created. That way, the test suite can XFAIL whenever
    the implementation lacks the necessary feature instead of being
    cluttered by vendor-specific annotations.

    Right now, those vendor-specific annotations are still somewhat cluttering
    the test suite by being in `config.py`, but at least they are localized.
    In the future, we could design a way to define those less intrusively or
    even automatically based on the availability macros that already exist
    in <__config>. (detail/ViewSVN)
    by Louis Dionne
  48. [opaque pointer types] More trivial changes to pass FunctionType to CallInst.

    Change various functions to use FunctionCallee or Function*.

    Pass function type through __builtin_dump_struct's dumpRecord helper. (detail/ViewSVN)
    by jyknight
  49. [X86][SSE] Disable ZERO_EXTEND shuffle combining

    rL352997 enabled ZERO_EXTEND from non-shuffle-able value types. I've disabled it for now to fix a regression identified by @asbirlea until I can fix this properly. (detail/ViewSVN)
    by rksimon
  50. Minor cleanup: remove CGBuild::CreateConst*ByteGEP overloads taking a Value*. (detail/ViewSVN)
    by jyknight
  51. [PGO] Fix the type of the formated variable

    Change the format type of Value to PRIu64 since it is a uint64_t.
    The problem was detected on mips boards building 32-bit binaries,
    where it was printing junk values and causing test failure.

    Patch by Milos Stojanovic.

    Differential Revision: https://reviews.llvm.org/D57583 (detail/ViewSVN)
    by petarj
  52. [LLVM-C] Add Bindings to GlobalIFunc

    Summary:
    Adds the standard gauntlet of accessors for global indirect functions and updates the echo test.

    Now it would be nice to have a target abstraction so one could know if they have access to a suitable ELF linker and runtime.

    Reviewers: whitequark, deadalnix

    Reviewed By: whitequark

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D56177 (detail/ViewSVN)
    by codafi
  53. Enable integrated assembler on MSP430 by default.

    Patch by Kristina Bessonova!

    Differential Revision: https://reviews.llvm.org/D56787 (detail/ViewSVN)
    by asl
  54. [AArch64][Outliner] Don't outline BTI instructions

    We can't outline BTI instructions, because they need to be the very first
    instruction executed after an indirect call or branch. If we outline them, then
    an indirect call might go to the branch to the outlined function, which will
    fault.

    Differential revision: https://reviews.llvm.org/D57753 (detail/ViewSVN)
    by olista01
  55. [X86][AVX] Attempt to combine shuffles to subvector broadcast load (detail/ViewSVN)
    by rksimon
  56. AArch64/GlobalISel: Don't clamp from 2 to 2

    This is equivalent to clampMaxNumElements, but saves a check. (detail/ViewSVN)
    by arsenm
  57. [OPENMP] issue error messages for multiple teams contructs in a target construct

    The fix is to issue error messages if there are more than one
    teams construct inside a target constructs.

    #pragma omp target
    {
      #pragma omp teams
      {  ...  }

      #pragma omp teams
      { ... }
    } (detail/ViewSVN)
    by kli
  58. [libc++] Control whether exceptions are enabled in the macOS trunk testing script (detail/ViewSVN)
    by Louis Dionne
  59. [opaque pointer types] Pass function types for runtime function calls.

    Emit{Nounwind,}RuntimeCall{,OrInvoke} have been modified to take a
    FunctionCallee as an argument, and CreateRuntimeFunction has been
    modified to return a FunctionCallee. All callers have been updated.

    Additionally, CreateBuiltinFunction is removed, as it was redundant
    with CreateRuntimeFunction after some previous changes.

    Differential Revision: https://reviews.llvm.org/D57668 (detail/ViewSVN)
    by jyknight
  60. [WebAssembly] Object: Remove redundant method. NFC.

    Differential Revision: https://reviews.llvm.org/D57719 (detail/ViewSVN)
    by sbc
  61. [X86][AVX] Add PR34041 subvector broadcast test cases (detail/ViewSVN)
    by rksimon
  62. [opaque pointer types] Fix the CallInfo passed to EmitCall in some
    edge cases.

    Currently, EmitCall emits a call instruction with a function type
    derived from the pointee-type of the callee. This *should* be the same
    as the type created from the CallInfo parameter, but in some cases an
    incorrect CallInfo was being passed.

    All of these fixes were discovered by the addition of the assert in
    EmitCall which verifies that the passed-in CallInfo matches the
    Callee's function type.

    As far as I know, these issues caused no bugs at the moment, as the
    correct types were ultimately being emitted. But, some would become
    problematic when pointee types are removed.

    List of fixes:

    * arrangeCXXConstructorCall was passing an incorrect value for the
      number of Required args, when calling an inheriting constructor
      where the inherited constructor is variadic. (The inheriting
      constructor doesn't actually get passed any of the user's args, but
      the code was calculating it as if it did).

    * arrangeFreeFunctionLikeCall was not including the count of the
      pass_object_size arguments in the count of required args.

    * OpenCL uses other address spaces for the "this" pointer. However,
      commonEmitCXXMemberOrOperatorCall was not annotating the address
      space on the "this" argument of the call.

    * Destructor calls were being created with EmitCXXMemberOrOperatorCall
      instead of EmitCXXDestructorCall in a few places. This was a problem
      because the calling convention sometimes has destructors returning
      "this" rather than void, and the latter function knows about that,
      and sets up the types properly (through calling
      arrangeCXXStructorDeclaration), while the former does not.

    * generateObjCGetterBody: the 'objc_getProperty' function returns type
      'id', but was being called as if it returned the particular
      property's type. (That is of course the *dynamic* return type, and
      there's a downcast immediately after.)

    * OpenMP user-defined reduction functions (#pragma omp declare
      reduction) can be called with a subclass of the declared type. In
      such case, the call was being setup as if the function had been
      actually declared to take the subtype, rather than the base type.

    Differential Revision: https://reviews.llvm.org/D57664 (detail/ViewSVN)
    by jyknight
  63. [NFC][libc++] Reindent function (detail/ViewSVN)
    by Louis Dionne
  64. [CGP] add test for unsigned subtract of 1 with overflow; NFC (detail/ViewSVN)
    by spatel
  65. [AArch64][x86] add tests for unsigned subtract with overflow; NFC (detail/ViewSVN)
    by spatel
  66. gn build: BUILD.gn files for clang-tidy and clang-apply-replacements

    Patch from Mirko Bonadei <mbonadei@webrtc.org>!

    Differential Revision: https://reviews.llvm.org/D57329 (detail/ViewSVN)
    by nico
  67. Fix typo in comment, NFCI (detail/ViewSVN)
    by krasimir
  68. gn build: Merge r353072 (detail/ViewSVN)
    by nico
  69. Recommit: Detect incorrect FileCheck variable CLI definition

    Summary:
    While the backend code of FileCheck relies on definition of variable
    from the command-line to have an equal sign '=' and a variable name
    before that, the frontend does not actually enforce it. This leads to
    FileCheck crashing when invoked with invalid syntax for the -D option.

    This patch adds the missing validation in the frontend. It also makes
    the -D option an AlwaysPrefix option to be able to detect -D=FOO as
    being a define without variable and -D as missing its value.

    Copyright:
    - Linaro (changes in version 2 of revision D55940)
    - GraphCore (changes in later versions)

    Reviewers: jdenny

    Subscribers: JonChesterfield, hiraditya, kristina, probinson,
    llvm-commits

    Differential Revision: https://reviews.llvm.org/D55940 (detail/ViewSVN)
    by thopre
  70. Recommit: Add support for prefix-only CLI options

    Summary:
    Add support for options that always prefix their value, giving an error
    if the value is in the next argument or if the option is given a value
    assignment (ie. opt=val). This is the desired behavior for the -D option
    of FileCheck for instance.

    Copyright:
    - Linaro (changes in version 2 of revision D55940)
    - GraphCore (changes in later versions and introduced when creating
      D56549)

    Reviewers: jdenny

    Subscribers: llvm-commits, probinson, kristina, hiraditya,
    JonChesterfield

    Differential Revision: https://reviews.llvm.org/D56549 (detail/ViewSVN)
    by thopre
  71. [X86][SSE] Rename SimplifyDemandedVectorElts BLENDV tests

    I'm going to be adding SimplifyDemandedBits tests shortly. (detail/ViewSVN)
    by rksimon
  72. [MCA] Moved the logic that updates register dependencies from DispatchStage to RegisterFile. NFC

    DispatchStage should always delegate to an object of class RegisterFile the task
    of updating data dependencies.  ReadState and WriteState objects should not be
    modified directly by DispatchStage.
    This patch also renames stage IS_AVAILABLE to IS_DISPATCHED. (detail/ViewSVN)
    by adibiagio
  73. gn build: Fix Python 3 write_vcsrevision script compatibility

    Trivial fix: decode was not called for all subprocess.check_output calls.

    Commited on behalf of Andrew Boyarshin

    Differential Revision: https://reviews.llvm.org/D57505 (detail/ViewSVN)
    by serge_sans_paille
  74. [X86][SSE] Add SimplifyDemandedVectorElts support for X86ISD::BLENDV (detail/ViewSVN)
    by rksimon
  75. [X86][SSE] Add tests showing missing SimplifyDemandedVectorElts support for X86ISD::BLENDV (detail/ViewSVN)
    by rksimon
  76. [NFC] Explicitly add -std=c++14 option to tests that rely on the C++14 default

    When Clang/LLVM is built with the CLANG_DEFAULT_STD_CXX CMake macro that sets
    the default standard to something other than C++14, there are a number of lit
    tests that fail as they rely on the C++14 default.
    This patch just adds the language standard option explicitly to such test cases.

    Differential revision: https://reviews.llvm.org/D57581 (detail/ViewSVN)
    by nemanjai
  77. [MCA] Simplify the logic in method WriteState::addUser. NFCI

    In some cases, it is faster to just grow the set of 'Users' rather than
    performing a llvm::find_if every time a new user is added to
    the set. No functional change intended. (detail/ViewSVN)
    by adibiagio
  78. Fix ICE on reference binding with mismatching addr spaces.

    When we attempt to add an addr space qual to a type already
    qualified by an addr space ICE is triggered. Before creating
    a type with new address space, remove the old addr space.

    Fixing PR38614!

    Differential Revision: https://reviews.llvm.org/D57524 (detail/ViewSVN)
    by stulova
  79. [DebugInfo][NFCI] Split salvageDebugInfo into helper functions

    Some use cases are appearing where salvaging is needed that does not
    correspond to an instruction being deleted -- for example an instruction
    being sunk, or a Value not being available in a block being isel'd.

    Enable more fine grained control over how salavging occurs by splitting
    the logic into helper functions, separating things that are specific to
    working on DbgVariableIntrinsics from those specific to interpreting IR
    and building DIExpressions.

    Differential Revision: https://reviews.llvm.org/D57696 (detail/ViewSVN)
    by jmorse
  80. Fix format string in bindings/go/llvm/ir_test.go (PR40561)

    The test started failing for me recently. I don't see any changes around
    this code, so maybe it's my local go version that changed or something.

    The error seems real to me: we're trying to print an Attribute with %d.
    The test talks about "attribute masks" I'm not sure what that refers to,
    but I suppose we could print the raw pointer value, since that's
    what the test seems to be comparing.

    Differential revision: https://reviews.llvm.org/D57672 (detail/ViewSVN)
    by hans
  81. [X86][AVX] Attempt to share broadcasts of different widths (PR39454)

    If we have broadcasts of different vector widths, keep the longest vector width and extract subvectors for the shorter vectors (which should be free).

    Differential Revision: https://reviews.llvm.org/D57663 (detail/ViewSVN)
    by rksimon
  82. [CostModel][X86] Add UMUL fixed point cost tests (detail/ViewSVN)
    by rksimon
  83. [CGP] Add support for sinking operands to their users, if they are free.

    This patch improves code generation for some AArch64 ACLE intrinsics. It adds
    support to CGP to duplicate and sink operands to their user, if they can be
    folded into a target instruction, like zexts and sub into usubl. It adds a
    TargetLowering hook shouldSinkOperands, which looks at the operands of
    instructions to see if sinking is profitable.

    I decided to add a new target hook, as for the sinking to be profitable,
    at least on AArch64, we have to look at multiple operands of an
    instruction, instead of looking at the users of a zext for example.

    The sinking is done in CGP, because it works around an instruction
    selection limitation. If instruction selection is not limited to a
    single basic block, this patch should not be needed any longer.

    Alternatively this could be done in the LoopSink pass, which tries to
    undo LICM for instructions in blocks that are not executed frequently.

    Note that we do not force the operands to sink to have a single user,
    because we duplicate them before sinking. Therefore this is only
    desirable if they really can be done for free. Additionally we could
    consider the impact on live ranges later on.

    This should fix https://bugs.llvm.org/show_bug.cgi?id=40025.

    As for performance, we have internal code that uses intrinsics and can
    be speed up by 10% by this change.

    Reviewers: SjoerdMeijer, t.p.northover, samparker, efriedma, RKSimon, spatel

    Reviewed By: samparker

    Differential Revision: https://reviews.llvm.org/D57377 (detail/ViewSVN)
    by fhahn
  84. [ARM GlobalISel] Support G_GEP for Thumb2

    Same as ARM, but use a different opcode in the instruction selection. (detail/ViewSVN)
    by rovka
  85. Fix the sphinx buildbot after D54429 (detail/ViewSVN)
    by szelethus
  86. Previously if the user configured their build but then changed
    LLVM_ENABLED_PROJECT and reconfigured it had no effect on what
    projects were actually built. This was very confusing behaviour. The
    reason for this is that the value of the `LLVM_TOOL_<PROJECT>_BUILD`
    variables are already set.

    The problem here is that we have two sources of truth:

    * The projects listed in LLVM_ENABLE_PROJECTS.
    * The projects enabled/disabled with LLVM_TOOL_<PROJECT>_BUILD.

    At configure time we have no real way of knowing which source of truth
    the user wants so we apply the following heuristic:

    If the user ever sets `LLVM_ENABLE_PROJECTS` in the CMakeCache then that
    is used as the single source of truth and we force the
    `LLVM_TOOL_<PROJECT>_BUILD` CMake cache variables to have the
    appropriate values that match the contents of the
    `LLVM_ENABLE_PROJECTS`. If the user never sets `LLVM_ENABLE_PROJECTS`
    then they can continue to use and set the `LLVM_TOOL_<PROJECT>_BUILD`
    variables as the "source of truth".

    The problem with this approach is that if the user ever tries to use
    both `LLVM_ENABLE_PROJECTS` and `LLVM_TOOL_<PROJECT>_BUILD` for the same
    build directory then any user set value for `LLVM_TOOL_<PROJECT>_BUILD`
    variables will get overwriten, likely without the user noticing.

    Hopefully the above shouldn't matter in practice because the
    LLVM_TOOL_<PROJECT>_BUILD variables are not documented, but
    LLVM_ENABLE_PROJECTS is.

    We should probably deprecate the `LLVM_TOOL_<PROJECT>_BUILD`
    variables at some point by turning them into to regular CMake
    variables that don't live in the CMake cache.

    Differential Revision: https://reviews.llvm.org/D57535 (detail/ViewSVN)
    by delcypher
  87. [NFC] fix trivial typos in comments (detail/ViewSVN)
    by inouehrs
  88. [DAG][NFC] Add unit tests.

    In preparation for D57541. (detail/ViewSVN)
    by courbet
  89. [DAG] BaseIndexOffset: FrameIndexSDNodes with the same FrameIndex compare equal.

    Reviewers: niravd

    Subscribers: arphaman, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D57692 (detail/ViewSVN)
    by courbet

Started by upstream project Clang Stage 2: cmake, R -g Asan&UBSan, using Stage 1 RA, Phase 1 build number 6112
originally caused by:

This run spent:

  • 35 min waiting;
  • 3 min 58 sec build duration;
  • 39 min total from scheduled to completion.

Identified problems

Missing test results

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

CMake Error

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