Started 2 yr 3 mo ago
Took 1 hr 0 min on green-dragon-09

Success Build #255 (Aug 4, 2017 2:52:31 PM)

  • : 310130
  • : 310136
  • : 310133
  • : 303903
  • : 310125
  • : 309920
  • : 310096
  1. [libFuzzer] add -fsanitize-coverage-pc-table to -fsanitize=fuzzer (detail)
    by kcc
  2. Revert "[OPENMP][DEBUG] Set proper address space info if required by target."

    This reverts commit r310104. (detail)
    by abataev
  3. Revert "[OPENMP] Fix for pacify buildbots, NFC."

    This reverts commit r310120. (detail)
    by abataev
  4. [asan] Fix unsupported test on Android

    `pvalloc` appears to not be available on Android. Mark the failing test as
    unsupported on that platform.

    Reviewers: alekseyshl, vitalybuka

    Reviewed By: alekseyshl, vitalybuka

    Subscribers: srhines, kubamracek, llvm-commits

    Differential Revision: (detail)
    by cryptoad
  5. Reland "CFI: blacklist STL allocate() from unrelated-casts"

    Reland r310097 with a fix for a debug assertion in NamedDecl.getName()

    Differential Revision: (detail)
    by vlad.tsyrklevich
  6. Fix broken PDB tests. (detail)
    by zturner
  7. BlockPlacement: add a flag to force cold block outlining w/o a profile.

    NFC. (detail)
    by iteratee
  8. [pdbutil] When dumping section contribs, show the section name. (detail)
    by zturner
  9. Reland "[llvm][llvm-objcopy] Added support for outputting to binary in llvm-objcopy"

    This change adds the "-O binary" flag which directs llvm-objcopy to
    output the object file to the same format as GNU objcopy does when given
    the flag "-O binary". This was done by splitting the Object class into
    two subclasses ObjectELF and ObjectBianry which each output a different
    format but relay on the same code to read in the Object in Object.

    Patch by Jake Ehrlich

    Differential Revision: (detail)
    by phosek
  10. [libFuzzer] re-enable fuzzer-printcovpcs.test (detail)
    by kcc
  11. [libFuzzer] re-enable the bigger libFuzzer tests (detail)
    by kcc
  12. Remove unused include directive and un-break the module build. (detail)
    by Adrian Prantl
  13. Revert r310055, it caused PR34074. (detail)
    by nico
  14. [InstCombine] add vector tests for truncated math; NFC (detail)
    by spatel
  15. Revert "Reland "CFI: blacklist STL allocate() from unrelated-casts""

    This reverts commit r310105. (detail)
    by vlad.tsyrklevich
  16. [OPENMP] Fix for pacify buildbots, NFC. (detail)
    by abataev
  17. [asan] Check for pvalloc overlow

    Last one of the `pvalloc` overflow checks!

    `CheckForPvallocOverflow` was introduced with D35818 to detect when `pvalloc`
    would wrap when rounding up to the next multiple of the page size.

    Add this check to ASan's `pvalloc` implementation.

    Reviewers: alekseyshl

    Reviewed By: alekseyshl

    Subscribers: llvm-commits, kubamracek

    Differential Revision: (detail)
    by cryptoad
  18. Revert r310058, it caused PR34073. (detail)
    by nico
  19. [SCEV] Preserve NSW information for sext(subtract).

    Pushes the sext onto the operands of a Sub if NSW is present.
    Also adds support for propagating the nowrap flags of the
    llvm.ssub.with.overflow intrinsic during analysis.

    Differential Revision: (detail)
    by aemerson
  20. Add NetBSD support in

    This adds NetBSD specific:
    - ReadProcMaps()
    - MemoryMappingLayout::Next()

    This code is largely shared with FreeBSD.

    Part of the code inspired by the original work on libsanitizer in GCC 5.4 by Christos Zoulas.

    Sponsored by <The NetBSD Foundation>

    Reviewers: kcc, joerg, filcab, vitalybuka, fjricci

    Reviewed By: fjricci

    Subscribers: emaste, kubamracek, mgorny, llvm-commits, #sanitizers

    Tags: #sanitizers

    Differential Revision: (detail)
    by kamil
  21. [GlobalISel] Remove the GISelAccessor API.

    Its sole purpose was to avoid spreading around ifdefs related to
    building global-isel. Since r309990, GlobalISel is not optional anymore,
    thus, we can get rid of this mechanism all together.

    NFC. (detail)
    by qcolombet
  22. [GlobalISel] Remove a stall comment in CMake.

    Thanks to Diana Picus <> for noticing.

    NFC (detail)
    by qcolombet
  23. [libFuzzer] make a test more robust (detail)
    by kcc
  24. [libFuzzer] remove the now redundant 'LLVMFuzzer-' prefix from libFuzzer tests (detail)
    by kcc
  25. CFI: Move STL allocator blacklist to clang

    The regular expression to match STL allocators can't easily account for
    C++ mangling compression and fails to match some valid instances of STL
    allocators. Perform this logic in clang instead.

    Motivated by

    Reviewers: pcc, kcc, llvm-commits

    Reviewed By: pcc

    Differential Revision: (detail)
    by vlad.tsyrklevich
  26. [llvm-pdbutil] Dump image section headers.

    Image section headers are stored in the DBI stream, but we
    had no way to dump them.  This patch adds dumping support,
    along with some tests that LLD actually dumps them correctly.

    Differential Revision: (detail)
    by zturner
  27. [libFuzzer] split one test into several (detail)
    by kcc
  28. Reland "CFI: blacklist STL allocate() from unrelated-casts"

    Reland r310097 with a unit test fix for MS ABI build bots.

    Differential Revision: (detail)
    by vlad.tsyrklevich
  29. [OPENMP][DEBUG] Set proper address space info if required by target.

    Arguments, passed to the outlined function, must have correct address
    space info for proper Debug info support. Patch sets global address
    space for arguments that are mapped and passed by reference.

    Also, cuda-gdb does not handle reference types correctly, so reference
    arguments are represented as pointers. (detail)
    by abataev
  30. [libFuzzer] add -DLIBFUZZER_ENABLE_TESTS=ON to libFuzzer bot (detail)
    by kcc
  31. [InstCombine] auto-generate test checks; NFC (detail)
    by spatel
  32. [libFuzzer tests] Only enable libFuzzer tests if
    -DLIBFUZZER_ENABLE_TESTS=ON is set. (detail)
    by George Karpenkov
  33. Revert "CFI: blacklist STL allocate() from unrelated-casts"

    This reverts commit r310097. (detail)
    by vlad.tsyrklevich
  34. [OPENMP] Unify generation of outlined function calls. (detail)
    by abataev
  35. CFI: blacklist STL allocate() from unrelated-casts

    Previously, STL allocators were blacklisted in compiler_rt's
    cfi_blacklist.txt because they mandated a cast from void* to T* before
    object initialization completed. This change moves that logic into the
    front end because C++ name mangling supports a substitution compression
    mechanism for symbols that makes it difficult to blacklist the mangled
    symbol for allocate() using a regular expression.

    Motivated by

    Reviewers: pcc, kcc

    Reviewed By: pcc

    Subscribers: cfe-commits

    Differential Revision: (detail)
    by vlad.tsyrklevich
  36. [clang-tidy] Added clang-tidy test cases related to rL310095

    Differential Revision: (detail)
    by fgross
  37. [ASTMatcher] Add handling for DeducedType to HasDeclarationMatcher

    HasDeclarationMatcher did not handle DeducedType, it always returned false for deduced types.

    So with code like this:
    struct X{};
    auto x = X{};

    This did no longer match:

    Because HasDeclarationMatcher didn't resolve the DeducedType of x.

    Differential Revision: (detail)
    by fgross
  38. [SystemZ] Add support for 128-bit atomic load/store/cmpxchg

    This adds support for the main 128-bit atomic operations,
    using the SystemZ instructions LPQ, STPQ, and CDSG.

    Generating these instructions is a bit more complex than usual
    since the i128 type is not legal for the back-end.  Therefore,
    we have to hook the LowerOperationWrapper and ReplaceNodeResults
    TargetLowering callbacks. (detail)
    by uweigand
  39. [SystemZ] Eliminate unnecessary serialization operations

    We currently emit a serialization operation (bcr 14, 0) before every
    atomic load and after every atomic store.  This is overly conservative.
    The SystemZ architecture actually does not require any serialization
    for atomic loads, and a serialization after an atomic store only if
    we need to enforce sequential consistency.  This is what other compilers
    for the platform implement as well. (detail)
    by uweigand
  40. Fix PR33514

    The bug was uncovered after fix of  PR23384 (part 3 of 3).
    The patch restricts pointer multiplication in SCEV computaion for ICmpZero.

    Reviewers: qcolombet

    Differential Revision:

    From: Evgeny Stupachenko <>
                             <> (detail)
    by evstupac
  41. [libFuzzer] make trace-pc.test more reliable (detail)
    by kcc
  42. [compiler-rt] Check for empty buffer in Addr2LineProcess::ReadFromSymbolizer

    This fixes a bug in the ReadFromSymbolizer method of the
    Addr2LineProcess class; if the input is too large, the returned buffer
    will be null and will consequently fail the CHECK. The proposed fix is
    to simply check if the buffer consists of only a null-terminator and
    return if so (in effect skipping that frame). I tested by running one of
    the unit tests both before and after my change.

    Submitted on behalf of david-y-lam.

    Reviewers: eugenis, alekseyshl, kcc

    Reviewed By: alekseyshl

    Differential Revision: (detail)
    by alekseyshl
  43. [AMDGPU] Implement llvm.amdgcn.set.inactive intrinsic

    This intrinsic lets us set inactive lanes to an identity value when
    implementing wavefront reductions. In combination with Whole Wavefront
    Mode, it lets inactive lanes be skipped over as required by GLSL/Vulkan.
    Lowering the intrinsic needs to happen post-RA so that RA knows that the
    destination isn't completely overwritten due to the EXEC shenanigans, so
    we need another pseudo-instruction to represent the un-lowered

    Reviewers: tstellar, arsenm

    Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye

    Differential Revision: (detail)
    by cwabbott
  44. [AMDGPU] Add support for Whole Wavefront Mode

    Whole Wavefront Wode (WWM) is similar to WQM, except that all of the
    lanes are always enabled, regardless of control flow. This is required
    for implementing wavefront reductions in non-uniform control flow, where
    we need to use the inactive lanes to propagate intermediate results, so
    they need to be enabled. We need to propagate WWM to uses (unless
    they're explicitly marked as exact) so that they also propagate
    intermediate results correctly. We do the analysis and exec mask munging
    during the WQM pass, since there are interactions with WQM for things
    that require both WQM and WWM. For simplicity, WWM is entirely
    block-local -- blocks are never WWM on entry or exit of a block, and WWM
    is not propagated to the block level.  This means that computations
    involving WWM cannot involve control flow, but we only ever plan to use
    WWM for a few limited purposes (none of which involve control flow)

    Shaders can ask for WWM using the @llvm.amdgcn.wwm intrinsic. There
    isn't yet a way to turn WWM off -- that will be added in a future

    Finally, it turns out that turning on inactive lanes causes a number of
    problems with register allocation. While the best long-term solution
    seems like teaching LLVM's register allocator about predication, for now
    we need to add some hacks to prevent ourselves from getting into trouble
    due to constraints that aren't currently expressed in LLVM. For the gory
    details, see the comments at the top of SIFixWWMLiveness.cpp.

    Reviewers: arsenm, nhaehnle, tpr

    Subscribers: kzhuravl, wdng, mgorny, yaxunl, dstuttard, t-tye, llvm-commits

    Differential Revision: (detail)
    by cwabbott
  45. [AMDGPU] refactor WQM pass in preparation for WWM (NFCI)

    Right now, the WQM pass conflates two different things when tracking the
    Needs of an instruction:

    1. Needs can be StateWQM, which is propagated to other instructions, and
    means that this instruction (and everything it depends on) must be
    calculated in WQM.
    2. Needs can be StateExact, which is not propagated to other
    instructions, and means that this instruction must not be calculated in
    WQM and WQM-ness must not be propagated past this instruction.

    This works now because there are only two different states, but in the
    future we want to be able to express things like "calculate this in WQM,
    but please disable WWM and don't propagate it" (to implement
    @llvm.amdgcn.set.inactive). In order to do this, we need to split the
    per-instruction Needs field in two: a new Needs field, which can only
    contain StateWQM (and in the future, StateWWM) and is propagated to
    sources, and a Disables field, which can also contain just StateWQM or
    nothing for now.

    We keep the per-block tracking the same for now, by translating
    Needs/Disables to the old representation with only StateWQM or
    StateExact. The other place that needs special handling is when we
    emit the state transitions. We could just translate back to the old
    representation there as well, which we almost do, but instead of 0 as a
    placeholder value for "any state," we explicitly or together all the
    states an instruction is allowed to be in. This lets us refactor the
    code in preparation for WWM, where we'll need to be able to handle
    things like "this instruction must be in Exact or WQM, but not WWM."

    Reviewers: arsenm, nhaehnle, tpr

    Subscribers: kzhuravl, wdng, yaxunl, dstuttard, t-tye, llvm-commits

    Differential Revision: (detail)
    by cwabbott
  46. [AMDGPU] Add an llvm.amdgcn.wqm intrinsic for WQM

    Previously, we assumed that certain types of instructions needed WQM in
    pixel shaders, particularly DS instructions and image sampling
    instructions. This was ok because with OpenGL, the assumption was
    correct. But we want to start using DPP instructions for derivatives as
    well as other things, so the assumption that we can infer whether to use
    WQM based on the instruction won't continue to hold. This intrinsic lets
    frontends like Mesa indicate what things need WQM based on their
    knowledge of the API, rather than second-guessing them in the backend.
    We need to keep around the old method of enabling WQM, but eventually we
    should remove it once Mesa catches up. For now, this will let us use DPP
    instructions for computing derivatives correctly.

    Reviewers: arsenm, tpr, nhaehnle

    Subscribers: kzhuravl, wdng, yaxunl, dstuttard, llvm-commits, t-tye

    Differential Revision: (detail)
    by cwabbott
  47. [MachineOperand] Add ChangeToTargetIndex method. NFC

    Differential Revision: (detail)
    by mggm
  48. Add OpenCL 2.0 atomic builtin functions as Clang builtin

    OpenCL 2.0 atomic builtin functions have a scope argument which is ideally
    represented as synchronization scope argument in LLVM atomic instructions.

    Clang supports translating Clang atomic builtin functions to LLVM atomic
    instructions. However it currently does not support synchronization scope
    of LLVM atomic instructions. Without this, users have to use LLVM assembly
    code to implement OpenCL atomic builtin functions.

    This patch adds OpenCL 2.0 atomic builtin functions as Clang builtin
    functions, which supports generating LLVM atomic instructions with
    synchronization scope operand.

    Currently only constant memory scope argument is supported. Support of
    non-constant memory scope argument will be added later.

    Differential Revision: (detail)
    by yaxunl
  49. [libFuzzer] simplify the fuzzer bot following r310075 (detail)
    by kcc
  50. [Support] Remove getPathFromOpenFD, it was unused

    It was added to support clang warnings about includes with case
    mismatches, but it ended up not being necessary.

    Reviewers: twoh, rafael

    Subscribers: hiraditya, llvm-commits

    Differential Revision: (detail)
    by rnk
  51. Fixing buildbots: do not register check-fuzzer if clang or asan are not
    present. (detail)
    by George Karpenkov
  52. Drop Windows support from libFuzzer tests.

    Differential Revision: (detail)
    by George Karpenkov
  53. Port libFuzzer tests to LIT. Do not require two-stage build for check-fuzzer.

    This revision ports all libFuzzer tests apart from the unittest to LIT.
    The advantages of doing so include:

    - Tests being self-contained
    - Much easier debugging of a single test
    - No need for using a two-stage compilation

    The unit-test is still compiled using CMake, but it does not need a
    freshly built compiler.

    NOTE: The previous two-stage bot configuration will NOT work, as in the
    second stage build LLVM_USE_SANITIZER is set, which disables ASAN from
    being built.
    Thus bots will be reconfigured in the next few commits.

    Differential Revision: (detail)
    by George Karpenkov
  54. [Inliner] Fix a typo in option description. NFC. (detail)
    by eraman
  55. [ARM] Use searchable-table for banked registers

    This is a continuation of

    This patch uses reverse mapping (encoding->name) in
    ARMInstPrinter::printBankedRegOperand to get rid of
    hard-coded values (as pointed out by @olista01).

    Reviewed by: @fhahn, @rovka, @olista01
    Differential Revision: (detail)
    by javed.absar

Started by timer (4 times)

This run spent:

  • 3 hr 42 min waiting;
  • 1 hr 0 min build duration;
  • 4 hr 42 min total from scheduled to completion.
Test Result (no failures)