Started 11 days ago
Took 5 hr 8 min on green-dragon-02

Failed Build #14358 (Jul 8, 2019 1:40:57 PM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 365383
  • http://llvm.org/svn/llvm-project/cfe/trunk : 365382
  • http://llvm.org/svn/llvm-project/compiler-rt/trunk : 365384
  • http://llvm.org/svn/llvm-project/zorg/trunk : 365385
  • http://llvm.org/svn/llvm-project/libcxx/trunk : 365359
  • http://llvm.org/svn/llvm-project/clang-tools-extra/trunk : 365380
Changes
  1. Remove extraRecipients for sanitizer-x86_64-linux-gn

    Reviewers: eugenis

    Differential Revision: https://reviews.llvm.org/D64363 (detail)
    by Vitaly Buka
  2. Revert "[sanitizers][windows] Rtl-Heap Interception and tests"

    Causes build failure on clang-ppc64be-linux-lnt:

    compiler-rt/lib/asan/asan_malloc_win.cc:23:2: error: #error "Missing arch or unsupported platform for Windows."
    #error "Missing arch or unsupported platform for Windows."
      ^~~~~
    compiler-rt/lib/asan/asan_malloc_win.cc:25:10: fatal error: heapapi.h: No such file or directory
    #include <heapapi.h>
              ^~~~~~~~~~~
    compilation terminated.
    [39/1151] Building CXX object projects/compiler-rt/lib/asan/CMakeFiles/RTAsan.powerpc64.dir/asan_debugging.cc.o
    [40/1151] Building CXX object projects/compiler-rt/lib/asan/CMakeFiles/RTAsan.powerpc64.dir/asan_malloc_win.cc.o
    FAILED: projects/compiler-rt/lib/asan/CMakeFiles/RTAsan.powerpc64.dir/asan_malloc_win.cc.o
    /usr/bin/c++  -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iprojects/compiler-rt/lib/asan -Icompiler-rt/lib/asan -Iinclude -I/home/buildbots/ppc64be-clang-lnt-test/clang-ppc64be-lnt/llvm/include -Icompiler-rt/lib/asan/.. -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -Wall -std=c++11 -Wno-unused-parameter -O2    -UNDEBUG  -m64 -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fvisibility=hidden -fno-lto -O3 -g -Wno-variadic-macros -Wno-non-virtual-dtor -fno-rtti -MD -MT projects/compiler-rt/lib/asan/CMakeFiles/RTAsan.powerpc64.dir/asan_malloc_win.cc.o -MF projects/compiler-rt/lib/asan/CMakeFiles/RTAsan.powerpc64.dir/asan_malloc_win.cc.o.d -o projects/compiler-rt/lib/asan/CMakeFiles/RTAsan.powerpc64.dir/asan_malloc_win.cc.o -c compiler-rt/lib/asan/asan_malloc_win.cc
    compiler-rt/lib/asan/asan_malloc_win.cc:23:2: error: #error "Missing arch or unsupported platform for Windows."
    #error "Missing arch or unsupported platform for Windows."
      ^~~~~
    compiler-rt/lib/asan/asan_malloc_win.cc:25:10: fatal error: heapapi.h: No such file or directory
    #include <heapapi.h>
              ^~~~~~~~~~~ (detail)
    by jfb
  3. Revert "Reapply [llvm-ar][test] Increase llvm-ar test coverage"

    llvm-ar.extract.test has been failing on greendragon and gone unfixed. (detail)
    by jfb
  4. [Sema] Resolve placeholder types before type deduction to silence
    spurious `-Warc-repeated-use-of-weak` warnings

    The spurious -Warc-repeated-use-of-weak warnings are issued when an
    initializer expression uses a weak ObjC pointer.

    My first attempt to silence the warnings (r350917) caused clang to
    reject code that is legal in C++17. The patch is based on the feedback I
    received from Richard when the patch was reverted.

    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20190422/268945.html
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20190422/268943.html

    Differential Revision: https://reviews.llvm.org/D62645 (detail)
    by ahatanak
  5. [sanitizers][windows] Rtl-Heap Interception and tests
       - Adds interceptors for Rtl[Allocate|Free|Size|ReAllocate]Heap
       - Adds unit tests for the new interceptors and expands HeapAlloc
         tests to demonstrate new functionality.
       Reviewed as D62927 (detail)
    by mcgov
  6. A test commit following 'Obtaining Commit Access' (https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access) (detail)
    by jcai19
  7. [InstCombine] fold insertelement into splat of same scalar

    Forming the canonical splat shuffle improves analysis and
    may allow follow-on transforms (although some possibilities
    are missing as shown in the test diffs).

    The backend generically turns these patterns into build_vector,
    so there should be no codegen regressions. All targets are
    expected to be able to lower splats efficiently. (detail)
    by spatel
  8. AMDGPU: Fix unused variable in release build (detail)
    by arsenm
  9. Add missing declarations of explicit member specializations.

    This should fix the build under -Wundefined-func-template and certain
    versions of GCC. (detail)
    by rsmith
  10. Teach the symbolizer lib symbolize objects directly.

    Currently, the symbolizer lib can only symbolize a file on disk.
    This patch teaches the symbolizer lib to symbolize objects.
    llvm-objdump needs this to support archive disassembly with source info.

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

    Reviewed by: jhenderson, grimar, MaskRay

    Differential Revision: https://reviews.llvm.org/D63521 (detail)
    by yuanfang
  11. Revert "[TSan] Attempt to fix iOS on-device test"

    This reverts commit a2ca358291a3a621bfae66eeb01f51eeb69d2dd4. (detail)
    by yln
  12. [OPENMP]Improve error message for device unsupported types.

    Provide more data to the user in the error message about unsupported
    type for device compilation. (detail)
    by abataev
  13. AMDGPU: Fix stray typing (detail)
    by arsenm
  14. AMDGPU: Make s34 the FP register

    Make the FP register callee saved.

    This is tricky because now the FP needs to be spilled in the prolog
    relative to the incoming SP register, rather than the frame register
    used throughout the rest of the function. I don't like how this
    bypassess the standard mechanism for CSR spills just to get the
    correct insert point. I may look for a better solution, since all CSR
    VGPRs may also need to have all lanes activated. Another option might
    be to make getFrameIndexReference change the base register if the
    frame index is a CSR, and then try to figure out the right insertion
    point in emitProlog.

    If there is a free VGPR lane available for SGPR spilling, try to use
    it for the FP. If that would require intrtoducing a new VGPR spill,
    try to use a free call clobbered SGPR. Only fallback to introducing a
    new VGPR spill as a last resort.

    This also doesn't attempt to handle SGPR spilling with scalar stores. (detail)
    by arsenm
  15. RegUsageInfoCollector: Don't iterate all regs for every reg class

    This is extremly slow on AMDGPU, which has a lot of physical register
    and a lot of register classes.

    determineCalleeSaves, via MachineRegisterInfo::isPhysRegUsed already
    added all of the super registers to the saved set. (detail)
    by arsenm
  16. AMDGPU: Move DEBUG_TYPE definition below includes (detail)
    by arsenm
  17. Revert "[TSan] Attempt to fix linker error for Linux on AArch64"

    This reverts commit be4148062b155f3be52e0f6ebcb228f2dc137dcf. (detail)
    by yln
  18. Keep the order of the basic blocks in the cloned loop as the original
    loop
    Summary:
    Do the cloning in two steps, first allocate all the new loops, then
    clone the basic blocks in the same order as the original loop.
    Reviewer: Meinersbur, fhahn, kbarton, hfinkel
    Reviewed By: hfinkel
    Subscribers: hfinkel, hiraditya, llvm-commits
    Tag: https://reviews.llvm.org/D64224
    Differential Revision: (detail)
    by whitneyt
  19. Fix issues building libraries as more than one type with Xcode

    Summary:
    CMake+Xcode doesn't seem to handle targets that only have object
    sources. This patch works around that limitation by adding a dummy
    soruce file to any library target that is generated by llvm_add_library
    when object libraries are generated.

    Object libraries are generated whenever llvm_add_library is passed more
    than one library type, which is now the default case for clang static
    libraries (which generate STATIC and OBJECT libraries).

    Reviewers: zturner, compnerd, joanlluch

    Reviewed By: joanlluch

    Subscribers: joanlluch, xbolva00, mgorny, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64300 (detail)
    by cbieneman
  20. [clangd] Don't insert absolute paths, give up instead.

    Summary: Also implement resolution of paths relative to mainfile without HeaderSearchInfo.

    Reviewers: kadircet

    Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64293 (detail)
    by sammccall
  21. [SCEV] Fix for PR42397. SCEVExpander wrongly adds nsw to shl instruction.

    Change-Id: I76c9f628c092ae3e6e78ebdaf55cec726e25d692 (detail)
    by dendibakh
  22. [InstCombine] add tests for insert of same splatted scalar; NFC (detail)
    by spatel
  23. Update gn files (detail)
    by Vitaly Buka
  24. Revert "[BPF] add new intrinsics preserve_{array,union,struct}_access_index"

    This reverts commit r365352.

    Test ThinLTO/X86/lazyload_metadata.ll failed. Revert the commit
    and at the same time to fix the issue. (detail)
    by yhs
  25. Revert "[libc++] Take 2: Do not cleverly link against libc++abi just because it happens to be there"

    r365326 still breaks bots:
    http://lab.llvm.org:8011/builders/netbsd-amd64/builds/20712/steps/ninja%20build%20local/logs/stdio
    http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-autoconf/builds/39477/steps/test%20tsan%20in%20debug%20compiler-rt%20build/logs/stdio

    And probably others

    This reverts commit 945b9ec0693390ef35fe8c6b774495312246b8b6. (detail)
    by Vitaly Buka
  26. Replace temporary variable matches in test since r363952 causes an
    extra temporary variable to be created. (detail)
    by akhuang
  27. [clangd] Use -completion-style=bundled by default if signature help is available

    Summary:
    I didn't manage to find something nicer than optional<bool>, but at least I
    found a sneakier comment.

    Reviewers: kadircet

    Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64216 (detail)
    by sammccall
  28. [Syntax] Introduce syntax trees

    Summary:
    A tooling-focused alternative to the AST. This commit focuses on the
    memory-management strategy and the structure of the AST.

    More to follow later:
      - Operations to mutate the syntax trees and corresponding textual
        replacements.
      - Mapping between clang AST nodes and syntax tree nodes.
      - More node types corresponding to the language constructs.

    Reviewers: sammccall

    Reviewed By: sammccall

    Subscribers: llvm-commits, mgorny, cfe-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D61637 (detail)
    by ibiryukov
  29. Update gn files (detail)
    by Vitaly Buka
  30. [AMDGPU][MC][DOC] Updated AMD GPU assembler syntax description.

    Corrected a typo. (detail)
    by dpreobra
  31. [BPF] add new intrinsics preserve_{array,union,struct}_access_index

    For background of BPF CO-RE project, please refer to
      http://vger.kernel.org/bpfconf2019.html
    In summary, BPF CO-RE intends to compile bpf programs
    adjustable on struct/union layout change so the same
    program can run on multiple kernels with adjustment
    before loading based on native kernel structures.

    In order to do this, we need keep track of GEP(getelementptr)
    instruction base and result debuginfo types, so we
    can adjust on the host based on kernel BTF info.
    Capturing such information as an IR optimization is hard
    as various optimization may have tweaked GEP and also
    union is replaced by structure it is impossible to track
    fieldindex for union member accesses.

    Three intrinsic functions, preserve_{array,union,struct}_access_index,
    are introducted.
      addr = preserve_array_access_index(base, index, dimension)
      addr = preserve_union_access_index(base, di_index)
      addr = preserve_struct_access_index(base, gep_index, di_index)
    here,
      base: the base pointer for the array/union/struct access.
      index: the last access index for array, the same for IR/DebugInfo layout.
      dimension: the array dimension.
      gep_index: the access index based on IR layout.
      di_index: the access index based on user/debuginfo types.

    For example, for the following example,
      $ cat test.c
      struct sk_buff {
         int i;
         int b1:1;
         int b2:2;
         union {
           struct {
             int o1;
             int o2;
           } o;
           struct {
             char flags;
             char dev_id;
           } dev;
           int netid;
         } u[10];
      };

      static int (*bpf_probe_read)(void *dst, int size, const void *unsafe_ptr)
          = (void *) 4;

      #define _(x) (__builtin_preserve_access_index(x))

      int bpf_prog(struct sk_buff *ctx) {
        char dev_id;
        bpf_probe_read(&dev_id, sizeof(char), _(&ctx->u[5].dev.dev_id));
        return dev_id;
      }
      $ clang -target bpf -O2 -g -emit-llvm -S -mllvm -print-before-all \
        test.c >& log

    The generated IR looks like below:

      ...
      define dso_local i32 @bpf_prog(%struct.sk_buff*) #0 !dbg !15 {
        %2 = alloca %struct.sk_buff*, align 8
        %3 = alloca i8, align 1
        store %struct.sk_buff* %0, %struct.sk_buff** %2, align 8, !tbaa !45
        call void @llvm.dbg.declare(metadata %struct.sk_buff** %2, metadata !43, metadata !DIExpression()), !dbg !49
        call void @llvm.lifetime.start.p0i8(i64 1, i8* %3) #4, !dbg !50
        call void @llvm.dbg.declare(metadata i8* %3, metadata !44, metadata !DIExpression()), !dbg !51
        %4 = load i32 (i8*, i32, i8*)*, i32 (i8*, i32, i8*)** @bpf_probe_read, align 8, !dbg !52, !tbaa !45
        %5 = load %struct.sk_buff*, %struct.sk_buff** %2, align 8, !dbg !53, !tbaa !45
        %6 = call [10 x %union.anon]* @llvm.preserve.struct.access.index.p0a10s_union.anons.p0s_struct.sk_buffs(
             %struct.sk_buff* %5, i32 2, i32 3), !dbg !53, !llvm.preserve.access.index !19
        %7 = call %union.anon* @llvm.preserve.array.access.index.p0s_union.anons.p0a10s_union.anons(
             [10 x %union.anon]* %6, i32 1, i32 5), !dbg !53
        %8 = call %union.anon* @llvm.preserve.union.access.index.p0s_union.anons.p0s_union.anons(
             %union.anon* %7, i32 1), !dbg !53, !llvm.preserve.access.index !26
        %9 = bitcast %union.anon* %8 to %struct.anon.0*, !dbg !53
        %10 = call i8* @llvm.preserve.struct.access.index.p0i8.p0s_struct.anon.0s(
             %struct.anon.0* %9, i32 1, i32 1), !dbg !53, !llvm.preserve.access.index !34
        %11 = call i32 %4(i8* %3, i32 1, i8* %10), !dbg !52
        %12 = load i8, i8* %3, align 1, !dbg !54, !tbaa !55
        %13 = sext i8 %12 to i32, !dbg !54
        call void @llvm.lifetime.end.p0i8(i64 1, i8* %3) #4, !dbg !56
        ret i32 %13, !dbg !57
      }

      !19 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "sk_buff", file: !3, line: 1, size: 704, elements: !20)
      !26 = distinct !DICompositeType(tag: DW_TAG_union_type, scope: !19, file: !3, line: 5, size: 64, elements: !27)
      !34 = distinct !DICompositeType(tag: DW_TAG_structure_type, scope: !26, file: !3, line: 10, size: 16, elements: !35)

    Note that @llvm.preserve.{struct,union}.access.index calls have metadata llvm.preserve.access.index
    attached to instructions to provide struct/union debuginfo type information.

    For &ctx->u[5].dev.dev_id,
      . The "%6 = ..." represents struct member "u" with index 2 for IR layout and index 3 for DI layout.
      . The "%7 = ..." represents array subscript "5".
      . The "%8 = ..." represents union member "dev" with index 1 for DI layout.
      . The "%10 = ..." represents struct member "dev_id" with index 1 for both IR and DI layout.

    Basically, traversing the use-def chain recursively for the 3rd argument of bpf_probe_read() and
    examining all preserve_*_access_index calls, the debuginfo struct/union/array access index
    can be achieved.

    The intrinsics also contain enough information to regenerate codes for IR layout.
    For array and structure intrinsics, the proper GEP can be constructed.
    For union intrinsics, replacing all uses of "addr" with "base" should be enough.

    Signed-off-by: Yonghong Song <yhs@fb.com>

    Differential Revision: https://reviews.llvm.org/D61810 (detail)
    by yhs
  32. [WebAssembly] tablegen: distinguish float/int immediate operands.

    Summary:
    Before, they were one category of operands which could cause
    crashes in non-sensical combinations, e.g. "f32.const symbol".
    Now these are forced to be an error.

    Reviewers: dschuff

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64039 (detail)
    by aardappel
  33. AMDGPU: Remove mubuf specific PatFrags

    These are identical to the *_global PatFrag, and will only create more
    work to get the GlobalISel importer to handle them. (detail)
    by arsenm
  34. AMDGPU: Move waitcnt intrinsic to instruction definition pattern (detail)
    by arsenm
  35. [llvm\test\Object] - An initial step to cleanup the test cases.

    This patch removes trivial-object-test.elf-i386,
    trivial-object-test.elf-x86-64 and trivial-object-test2.elf-x86-64
    precompiled objects from test/Object/Inputs folder.

    I adjusted the existent test cases to use YAML instead.

    Differential revision: https://reviews.llvm.org/D64206 (detail)
    by grimar
  36. [AMDGPU][MC][DOC] Updated AMD GPU assembler syntax description.

    Summary of changes:
    - added description of GFX10;
    - added description of operands sccz, vccz, lds_direct, etc;
    - minor bugfixing and improvements. (detail)
    by dpreobra
  37. Add, and infer, a nofree function attribute

    Removing dead code leftover from refactor.

    Reviewers: jdoerfert

    Differential Revision: https://reviews.llvm.org/D49165 (detail)
    by homerdin
  38. GlobalISel: Convert some build functions to using SrcOp/DstOp (detail)
    by arsenm
  39. [InstCombine] canonicalize insert+splat to/from element 0 of vector

    We recognize a splat from element 0 in (VectorUtils) llvm::getSplatValue()
    and also in ShuffleVectorInst::isZeroEltSplatMask(), so this converts
    to that form for better matching.

    The backend generically turns these patterns into build_vector,
    so there should be no codegen difference. (detail)
    by spatel
  40. Add nofree attribute to CodeGenOpenCL/convergent.cl test

    The revision at https://reviews.llvm.org/rL365336 added inference of the nofree
    attribute.  This revision updates the test to reflect this.

    Differential Revision: https://reviews.llvm.org/D49165 (detail)
    by homerdin
  41. [Bitcode][NFC] Remove unused variable from BitcodeAnalyzer (detail)
    by thegameg
  42. Teach the IRBuilder about fadd and friends.

    The IRBuilder has calls to create floating point instructions like fadd.
    It does not have calls to create constrained versions of them. This patch
    adds support for constrained creation of fadd, fsub, fmul, fdiv, and frem.

    Reviewed by: John McCall, Sanjay Patel
    Approved by: John McCall
    Differential Revision: https://reviews.llvm.org/D53157 (detail)
    by kpn
  43. Add, and infer, a nofree function attribute

    This patch adds a function attribute, nofree, to indicate that a function does
    not, directly or indirectly, call a memory-deallocation function (e.g., free,
    C++'s operator delete).

    Reviewers: jdoerfert

    Differential Revision: https://reviews.llvm.org/D49165 (detail)
    by homerdin
  44. [docs][llvm-readobj][llvm-readelf] Improve wording (detail)
    by jhenderson
  45. [OPENMP]Add -Wunintialized to the erroneous tests for future fix PR42392,
    NFC. (detail)
    by abataev

Started by timer (5 times)

This run spent:

  • 4 hr 30 min waiting;
  • 5 hr 8 min build duration;
  • 9 hr 38 min total from scheduled to completion.
Test Result (5 failures / +4)

Identified problems

Regression test failed

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

Unexpected pass

This buildbot failed because a test marked as XFAIL unexpectedly passes. This could mean that the cause for the XFAIL is fixed, but it warrants investigation in any case.
Indication 2