Started 2 yr 4 mo ago
Took 14 min on green-dragon-15

Failed Build #290 (Feb 13, 2019 7:22:48 PM)

  • : 354003
  • : 354004
  • : 354005
  • : 346271
  • : 353955
  • : 353926
  1. [msan] Don't delete MSanAtExitRecord

    Pre 2.27 libc can run same atexit handler twice
    We will keep MSanAtExitRecord and reset fun to mark it as executed.

    Fix PR40162

    Reviewers: eugenis

    Subscribers: jfb, jdoerfert, #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: (detail/ViewSVN)
    by vitalybuka
  2. [CUDA][HIP] Use device side kernel and variable names when registering them

    __hipRegisterFunction and __hipRegisterVar need to accept device side kernel and variable names
    so that HIP runtime can associate kernel stub functions in host code with kernel symbols in fat binaries,
    and associate shadow variables in host code with device variables in fat binaries.

    Currently, clang assumes kernel functions and device variables have the same name as the kernel
    stub functions and shadow variables. However, when host is compiled in windows with MSVC C++
    ABI and device is compiled with Itanium C++ ABI (e.g. AMDGPU), kernels and device symbols in fat
    binary are mangled differently than host.

    This patch gets the device side kernel and variable name by mangling them in the mangle context
    of aux target.

    Differential Revision: (detail/ViewSVN)
    by yaxunl
  3. [X86] Make (f80 (sint_to_fp (i16))) use fistps/fisttps instead of fistpl/fisttpl when SSE is enabled.

    When SSE is enabled sint_to_fp with i16 is blindly promoted to i32, but that changes the behavior of f80 conversion.

    Move the promotion to i16 to LowerFP_TO_INT so we can limit it based on the floating point type. (detail/ViewSVN)
    by ctopper
  4. Revert "[llvm-objdump] Allow short options without arguments to be grouped"

    Reverted due to failures on the llvm-hexagon-elf.

    This reverts commit 77e1f27476c89f65eeb496d131065177e6417f23. (detail/ViewSVN)
    by ormris
  5. Relax restriction in tests to where "-emit-llvm-bc" and "-emit-obj" must appear.

    The CHECK lines as structured were requiring them to appear only in a certain
    position while all that is really needed is to check that they are present. (detail/ViewSVN)
    by dyung
  6. [libFuzzer] trying to fix the bot (can't reproduce the build failure locally) (detail/ViewSVN)
    by kcc
  7. Fix for asan bots (detail/ViewSVN)
    by leonardchan
  8. [llvm-objdump] Allow short options without arguments to be grouped


    Reviewers: kristina, jhenderson, grimar, jakehehrlich, rupprecht

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by ormris
  9. [libFuzzer] add threads to the fork mode: now you can pass -fork=N to run N concurrent workers. Fork mode is still work-in-progress. (detail/ViewSVN)
    by kcc
  10. [globalisel][combine] Split existing rules into a match and apply step

    The declarative tablegen definitions split rules into match and apply steps.
    Prepare for that by doing the same in the C++ implementations. This aids
    some of the migration effort while the tablegen version is incomplete.

    Reviewers: bogner, volkan, aditya_nandakumar, paquette, aemerson

    Reviewed By: aditya_nandakumar

    Subscribers: rovka, kristof.beyls, Petar.Avramovic, jdoerfert, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by dsanders
  11. [llvm-ar][libObject] Fix relative paths when nesting thin archives.

    When adding one thin archive to another, we currently chop off the relative path to the flattened members. For instance, when adding `foo/child.a` (which contains `x.txt`) to `parent.a`, when flattening it we should add it as `foo/x.txt` (which exists) instead of `x.txt` (which does not exist).

    As a note, this also undoes the `IsNew` parameter of handling relative paths in r288280. The unit test there still passes.

    This was reported as part of testing the kernel build with llvm-ar: (see the second point).

    Reviewers: mstorsjo, pcc, ruiu, davide, david2050, inglorion

    Reviewed By: ruiu

    Subscribers: void, jdoerfert, tpimh, mgorny, hans, nickdesaulniers, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by rupprecht
  12. [PowerPC][NFC] Added tests for prologue and epilogue code gen.

    Added four test files to check the existing behaviour of prologue
    and epilogue code generation. This patch was done as a setup for
    the upcoming patch listed on Phabricator that will change how the
    prologue and epilogue work.
    The upcoming patch is: (detail/ViewSVN)
    by stefanp
  13. [ConstProp] add IR tests to show miscompiles; NFC

    A fix for these is proposed in D51216. (detail/ViewSVN)
    by spatel
  14. [llvm-readobj] Dump GNU_PROPERTY_X86_ISA_1_{NEEDED,USED} notes in

    Reviewers: grimar, rupprecht

    Reviewed By: rupprecht

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by maskray
  15. [HWASAN] Updated HWASAN design document to better portray the chance of missing a bug.

    Summary: Provided rule of thumb percentage chances of miss for 4 and 8 bit tag sizes.

    Subscribers: cfe-commits

    Tags: #clang

    Differential Revision: (detail/ViewSVN)
    by hctim
  16. [SelectionDAG] Inline a single use helper function, and remove last non-MMO interface [NFC]

    For D57601, we need to know whether the instruction is volatile.  We'd either have to pass yet another parameter, or just standardize on the MMO interface.  I chose the second. (detail/ViewSVN)
    by reames
  17. [RegAllocGreedy] Take last chance recoloring into account in evicting.

    Last chance recoloring inserts into FixedRegisters those virtual
    registers it is attempting to assign a physical register to.

    We must consider these when we consider candidates for eviction so that
    we do not end up evicting something while we are attempting to recolor
    to assign it.

    This is hitting in an out-of-tree target and no longer reproduces on
    trunk. That does not appear to be a result of it having been fixed, but
    rather, it appears that optimization changes and/or other changes to
    register allocation mask the problem.

    I haven't found a way to come up with a reasonable test case for this
    (i.e. one that I can actually commit to open source, is reasonable
    in size, and actually reproduces the issue).

    rdar://problem/45708741 (detail/ViewSVN)
    by rudkx
  18. [AVR] Fix a typo - 's/analisys/analysis' (detail/ViewSVN)
    by dylanmckay
  19. [WebAssembly] memory.fill

    memset lowering, fix argument types in memcpy lowering, and
    test encodings. Depends on D57736.

    Reviewers: aheejin

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

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by tlively
  20. [NewPM] Second attempt at porting ASan

    This is the second attempt to port ASan to new PM after D52739. This takes the
    initialization requried by ASan from the Module by moving it into a separate
    class with it's own analysis that the new PM ASan can use.

    - Split AddressSanitizer into 2 passes: 1 for the instrumentation on the
      function, and 1 for the pass itself which creates an instance of the first
      during it's run. The same is done for AddressSanitizerModule.
    - Add new PM AddressSanitizer and AddressSanitizerModule.
    - Add legacy and new PM analyses for reading data needed to initialize ASan with.
    - Removed DominatorTree dependency from ASan since it was unused.
    - Move GlobalsMetadata and ShadowMapping out of anonymous namespace since the
      new PM analysis holds these 2 classes and will need to expose them.

    Differential Revision: (detail/ViewSVN)
    by leonardchan
  21. Restore Check for Unreachable Exit Block in -Winfinite-recursion

    When this was rewritten in D43737, the logic changed to better explore infinite loops. The check for a reachable exit block was deleted which accidentally introduced false positives in case the exit node was unreachable.

    We were testing for cases like this, but @steven_wu provided an additional test case that I've included in the regression tests for this patch.

    Reviewers: steven_wu, rtrieu

    Reviewed By: steven_wu, rtrieu

    Subscribers: cfe-commits, steven_wu

    Tags: #clang

    Differential Revision: (detail/ViewSVN)
    by codafi
  22. [WebAssembly] Bulk memory intrinsics and builtins

    implements llvm intrinsics and clang intrinsics for
    memory.init and data.drop.

    Reviewers: aheejin

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

    Tags: #clang

    Differential Revision: (detail/ViewSVN)
    by tlively
  23. Revert r353962

    Specialization of Optional for trivially copyable types yields failure on the buildbots I fail to reproduce locally.
    Better safe than sorry, reverting. (detail/ViewSVN)
    by serge_sans_paille
  24. gn build: Merge r353957. (detail/ViewSVN)
    by pcc
  25. [SelectionDAG] Kill last uses of getAtomic w/o a MMO operand [NFC]

    The helper function was used by only two callers, and largely ended up providing distinct functionality based on optional arguments and opcode.  Inline and simply to make the functionality much more clear. (detail/ViewSVN)
    by reames
  26. [Sema] Delay checking whether objc_designated_initializer is being applied to an init method

    This fixes a regression that was caused by r335084, which reversed
    the order that attributes are applied. objc_method_family can change
    whether a method is an init method, so the order that these
    attributes are applied matters. The commit fixes this by delaying the
    init check until after all attributes have been applied.


    Differential revision: (detail/ViewSVN)
    by epilk
  27. [PowerPC] Stop defining _ARCH_PWR6X on POWER7 and up

    The predefined macro `_ARCH_PWR6X` is associated with GCC's
    `-mcpu=power6x` option, which enables generation of P6 "raw mode"
    instructions such as `mftgpr`.

    Later POWER processors build upon the "architected mode", not the raw
    one. `_ARCH_PWR6X` should not be defined for these later processors.

    Fixes PR#40236.

    Reviewers: echristo, hfinkel, kbarton, nemanjai, wschmidt

    Reviewed By: hfinkel

    Subscribers: jsji, cfe-commits

    Tags: #clang

    Differential Revision: (detail/ViewSVN)
    by hubert.reinterpretcast
  28. [X86] Add 'mpx' to getHostCPUFeatures. (detail/ViewSVN)
    by ctopper
  29. [CodeExtractor] Only lift lifetime markers present in the extraction region

    When CodeExtractor finds liftime markers referencing inputs to the
    extraction region, it lifts these markers out of the region and inserts
    them around the call to the extracted function (see r350420, PR39671).

    However, it should *only* lift lifetime markers that are actually
    present in the extraction region. I.e., if a start marker is present in
    the extraction region but a corresponding end marker isn't (or vice
    versa), only the start marker (or end marker, resp.) should be lifted.

    Differential Revision: (detail/ViewSVN)
    by vedantk
  30. [Tests] More unordered atomic lowering tests

    This time, focused around narrowing and widening transformations.  Also, include a few simple memory optimization tests to highlight missed oppurtunities.  This is part of building up the test base for D57601. (detail/ViewSVN)
    by reames
  31. [clang] Make sure C99/C11 features in <float.h> are provided in C++11

    Previously, those #defines were only provided in C or when GNU extensions were
    enabled. We need those #defines in C++11 and above, too.

    Reviewers: jfb, eli.friedman

    Subscribers: jkorous, dexonsmith, cfe-commits

    Tags: #clang

    Differential Revision: (detail/ViewSVN)
    by ldionne
  32. Re-enable the test disabled in r353836 and hopefully make it pass in gcc builds

    Argument evaluation order is different between gcc and clang, so pull out
    the Builder calls to make the generated IR independent of the host compiler's
    argument evaluation order.  Thanks to rnk for reminding me of this clang/gcc
    difference. (detail/ViewSVN)
    by nico
  33. [Tests] RMW folding tests w/unordered atomic operations

    We get a suprising number of these today actually, but some are missed. The main point of this is strengthen the test set for D57601. (detail/ViewSVN)
    by reames
  34. [Headers][mips] Add `__attribute__((__mode__(__unwind_word__)))` to the _Unwind_Word / _Unwind_SWord definitions

    The rationale of this change is to fix _Unwind_Word / _Unwind_SWord
    definitions for MIPS N32 ABI. This ABI uses 32-bit pointers,
    but _Unwind_Word and _Unwind_SWord types are eight bytes long.

    # The __attribute__((__mode__(__unwind_word__))) is added to the type
       definitions. It makes them equal to the corresponding definitions used
       by GCC and allows to override types using `getUnwindWordWidth` function.
    # The `getUnwindWordWidth` virtual function override in the `MipsTargetInfo`
       class and provides correct type size values.

    Differential revision: (detail/ViewSVN)
    by atanasyan
  35. [Tests] Add a bunch of tests for load folding w/unordered atomics (detail/ViewSVN)
    by reames
  36. [X86] Add 'fxsr' to the getHostCPUFeatures detection code.

    We implicitly mark this feature as enabled when the target is 64-bits, but our detection code for -march=native didn't support it so you can't detect it on 32-bit targets. (detail/ViewSVN)
    by ctopper
  37. Re-commit rL353927, patch included

    Make llvm::Optional<T> trivially copyable when T is trivially copyable

    This is an ever-recurring issue (see and
    but I believe that thanks to we can now ship a decent implementation of this.

    Basically the fact that llvm::is_trivially_copyable has a consistent behavior across compilers should prevent any ABI issue,
    and using in-place new instead of memcpy should keep compiler bugs away.

    This patch is slightly different from the original revision but achieves the same goal. It just avoids
    going through std::conditional which may the code more explicit. (detail/ViewSVN)
    by serge_sans_paille
  38. [Driver] Pass +reserve-x25 to backend if -ffixed-x25 is specified

    This was accidentally omitted in r353957 breaking the Clang test. (detail/ViewSVN)
    by phosek
  39. [Tests] First batch of cornercase tests for unordered atomics

    Mixture of things we legally can't do, and things we're missing.  Once D57601 is in, the later will serve as a punch list. (detail/ViewSVN)
    by reames
  40. [Tests] Auto update a test (detail/ViewSVN)
    by reames
  41. [AArch64] Support reserving arbitrary general purpose registers

    This is a follow up to D48580 and D48581 which allows reserving
    arbitrary general purpose registers with the exception of registers
    with special purpose (X8, X16-X18, X29, X30) and registers used by LLVM
    (X0, X19). This change also generalizes some of the existing logic to
    rely entirely on values generated from tablegen.

    Differential Revision: (detail/ViewSVN)
    by phosek
  42. [Tests] Rename some test files for consistency

    Most are named "atomic-something" so rename the few which were "atomic_something".  I keep typing the wrong name due to the inconsistency.  :) (detail/ViewSVN)
    by reames
  43. [libcxx] Do not assume the number of elements in a moved-from associative container

    Reviewed as
    Thanks to Andrey Maksimov for the patch. (detail/ViewSVN)
    by ldionne
  44. [DebugInfo][DAG] Either salvage dangling debug info or emit Undef DBG_VALUEs

    In this patch SelectionDAG tries to salvage any dbg.values that are going to be
    dropped, in case they can be recovered from Values in the current BB. It also
    strengthens SelectionDAGs handling of dangling debug data, so that dbg.values
    are *always* emitted (as Undef or otherwise) instead of dangling forever.

    The motivation behind this patch exists in the new test case: a memory address
    (here a bitcast and GEP) exist in one basic block, and a dbg.value referring to
    the address is left in the 'next' block. The base pointer is live across all
    basic blocks. In current llvm trunk the dbg.value cannot be encoded, and it
    isn't even emitted as an Undef DBG_VALUE.

    The change is simply: if we're definitely going to drop a dbg.value, repeatedly
    apply salvageDebugInfo to its operand until either we find something that can
    be encoded, or we can't salvage any further in which case we produce an Undef
    DBG_VALUE. To know when we're "definitely going to drop a dbg.value",
    SelectionDAG signals SelectionDAGBuilder when all IR instructions have been
    encoded to force salvaging. This ensures that any dbg.value that's dangling
    after DAG creation will have a corresponding DBG_VALUE encoded.

    Differential Revision: (detail/ViewSVN)
    by jmorse
  45. [X86][AVX] Add shuffle_v8i32_0dcd3f14 shuffle test case (detail/ViewSVN)
    by rksimon
  46. [HIP] Handle compile -m options and propagate into LLC

    Allow the compile options for -m such as -mxnack/-mno-xnack, -msram-ecc/-mno-sram-ecc, -mcode-object-v3/-mno-code-object-v3 to propagate into LLC args. Fix an issue where -mattr was pushed even when it was empty.

    Also add lit tests to verify features are properly passed.

    Differential Revision:

    Reviewers: yaxunl, kzhuravl (detail/ViewSVN)
    by aaronenyeshi
  47. [llvm-readobj] Rename pr_data to PrData

    As requested by grimar in D58112. (detail/ViewSVN)
    by maskray
  48. [DebugInfo][DAG] Refactor dbg.value lowering into its own method

    This is a pure copy-and-paste job, moving the logic for lowering dbg.value
    intrinsics to SDDbgValues into its own function. This is ahead of adding some
    more users of this logic.

    Differential Revision: (detail/ViewSVN)
    by jmorse
  49. [MCA] Store a bitmask of used groups in the instruction descriptor.

    This is to speedup 'checkAvailability' queries in class ResourceManager.
    No functional change intended. (detail/ViewSVN)
    by adibiagio
  50. [DebugInfo][DAG] Limit special-casing of dbg.values for Arguments

    SelectionDAGBuilder has special handling for dbg.value intrinsics that are
    understood to define the location of function parameters on entry to the
    function. To enable this, we avoid recording a dbg.value as a virtual register
    reference if it might be such a parameter, so that it later hits

    This patch reduces the set of circumstances where we avoid recording a
    dbg.value as a virtual register reference, to allow more "normal" variables
    to be recorded that way. We now only bypass for potential parameters if:
    * The dbg.value operand is an Argument,
    * The Variable is a parameter, and
    * The Variable is not inlined.
    meaning it's very likely that the dbg.value is a function-entry parameter

    Differential Revision: (detail/ViewSVN)
    by jmorse
  51. tsan: add fiber support

    This patch adds functions for managing fibers:


    See the added tests for use examples.

    Author: yuri (Yuri Per)
    Reviewed in:

    [The previous commit of this change was reverted,
    this is a resubmit with a squashed fix for
    by dvyukov
  52. [test] Tweak driver test from r353917 and r353922 to pass with a nondefault CLANG_DEFAULT_LINKER

    Force -fuse-ld=ld, as some other tests in the same file do.

    Loosen the regex matching the linker tool name as well, as this
    can end up being <triple>-ld in case such a named tool exists. (detail/ViewSVN)
    by mstorsjo
  53. [Analyzer] Crash fix for FindLastStoreBRVisitor

    FindLastStoreBRVisitor tries to find the first node in the exploded graph where
    the current value was assigned to a region. This node is called the "store
    site". It is identified by a pair of Pred and Succ nodes where Succ already has
    the binding for the value while Pred does not have it. However the visitor
    mistakenly identifies a node pair as the store site where the value is a
    `LazyCompoundVal` and `Pred` does not have a store yet but `Succ` has it. In
    this case the `LazyCompoundVal` is different in the `Pred` node because it also
    contains the store which is different in the two nodes. This error may lead to
    crashes (a declaration is cast to a parameter declaration without check) or
    misleading bug path notes.

    In this patch we fix this problem by checking for unequal `LazyCompoundVals`: if
    their region is equal, and their store is the same as the store of their nodes
    we consider them as equal when looking for the "store site". This is an
    approximation because we do not check for differences of the subvalues
    (structure members or array elements) in the stores.

    Differential Revision: (detail/ViewSVN)
    by baloghadamsoftware
  54. Revert "tsan: update"

    This reverts commit r353820, to go with the revert of r353817. (detail/ViewSVN)
    by rovka
  55. [NFC] Add const qualifiers where possible (detail/ViewSVN)
    by mkazantsev
  56. Revert r353927 (detail/ViewSVN)
    by serge_sans_paille
  57. Revert "tsan: add fiber support"

    This reverts commit r353817 because we think it broke AARch64 and
    PowerPC buildbots. (detail/ViewSVN)
    by rovka
  58. [ARM GlobalISel] Support G_SELECT for Thumb2

    Same as arm mode, but slightly different opcodes. (detail/ViewSVN)
    by rovka
  59. [MCA][Scheduler] Use latency information to further classify busy instructions.

    This patch introduces a new instruction stage named 'IS_PENDING'.
    An instruction transitions from the IS_DISPATCHED to the IS_PENDING stage if
    input registers are not available, but their latency is known.

    This patch also adds a new set of instructions named 'PendingSet' to class
    Scheduler. The idea is that the PendingSet will only contain instructions that
    have reached the IS_PENDING stage.
    By construction, an instruction in the PendingSet is only dependent on
    instructions that have already reached the execution stage. The plan is to use
    this knowledge to identify bottlenecks caused by data dependencies (see

    Differential Revision: (detail/ViewSVN)
    by adibiagio
  60. [DebugInfo][InstCombine] Prefer to salvage debuginfo over sinking it

    When instcombine sinks an instruction between two basic blocks, it sinks any
    dbg.value users in the source block with it, to prevent debug use-before-free.
    However we can do better by attempting to salvage the debug users, which would
    avoid moving where the variable location changes. If we successfully salvage,
    still sink a (cloned) dbg.value with the sunk instruction, as the sunk
    instruction is more likely to be "live" later in the compilation process.

    If we can't salvage dbg.value users of a sunk instruction, mark the dbg.values
    in the original block as being undef. This terminates any earlier variable
    location range, and represents the fact that we've optimized out the variable
    location for a portion of the program.

    Differential Revision: (detail/ViewSVN)
    by jmorse
  61. Missing header (detail/ViewSVN)
    by serge_sans_paille
  62. [GuardWidening] Support widening of explicitly expressed guards

    This patch adds support of guards expressed in explicit form via
    `widenable_condition` in Guard Widening pass.

    Differential Revision:
    Reviewed By: reames (detail/ViewSVN)
    by mkazantsev
  63. Look through typedefs in getFunctionTypeWithExceptionSpec


    Differential Revision: (detail/ViewSVN)
    by sberg
  64. [DebugInfo] Stop changing labels for register-described parameter DBG_VALUEs

    This is a follow-up to D57510. This patch stops DebugHandlerBase from
    changing the starting label for the first non-overlapping,
    register-described parameter DBG_VALUEs to the beginning of the
    function. That code did not consider what defined the registers, which
    could result in the ranges for the debug values starting before their
    defining instructions. We currently do not emit debug values for
    constant values directly at the start of the function, so this code is
    still useful for such values, but my intention is to remove the code
    from DebugHandlerBase completely when we get there. One reason for
    removing it is that the code violates the history map's ranges, which I
    think can make it quite confusing when troubleshooting.

    In D57510, PrologEpilogInserter was amended so that parameter DBG_VALUEs
    now are kept at the start of the entry block, even after emission of
    prologue code. That was done to reduce the degradation of debug
    completeness from this patch. PR40638 is another example, where the
    lexical-scope trimming that LDV does, in combination with scheduling,
    results in instructions after the prologue being left without locations.
    There might be other cases where the DBG_VALUEs are pushed further down,
    for which the DebugHandlerBase code may be helpful, but as it now quite
    often result in incorrect locations, even after the prologue, it seems
    better to remove that code, and try to work our way up with accurate

    In the long run we should maybe not aim to provide accurate locations
    inside the prologue. Some single location descriptions, at least those
    referring to stack values, generate inaccurate values inside the
    epilogue, so we maybe should not aim to achieve accuracy for location
    lists. However, it seems that we now emit line number programs that can
    result in GDB and LLDB stopping inside the prologue when doing line
    number stepping into functions. See PR40188 for more information.

    A summary of some of the changed test cases is available in PR40188#c2.

    Reviewers: aprantl, dblaikie, rnk, jmorse

    Reviewed By: aprantl

    Subscribers: jdoerfert, jholewinski, jvesely, javed.absar, llvm-commits

    Tags: #debug-info, #llvm

    Differential Revision: (detail/ViewSVN)
    by dstenb
  65. Make llvm::Optional<T> trivially copyable when T is trivially copyable

    This is an ever-recurring issue (see and
    but I believe that thanks to we can now ship a decent implementation of this.

    Basically the fact that llvm::is_trivially_copyable has a consistent behavior across compilers should prevent any ABI issue,
    and using in-place new instead of memcpy should keep compiler bugs away.

    Differential Revision: (detail/ViewSVN)
    by serge_sans_paille
  66. [clangd] Handle a few more diag kinds in include fixer.

    Reviewers: sammccall

    Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits

    Tags: #clang

    Differential Revision: (detail/ViewSVN)
    by ioeric
  67. [llvm] [cmake] Provide split include paths in LLVMConfig

    Modify LLVMConfig to provide split variables for in-source and generated
    include paths.  Currently, it uses a single value for both
    LLVM_INCLUDE_DIRS and LLVM_INCLUDE_DIR which works for install tree but
    fails hard at build tree (where LLVM_INCLUDE_DIR incorrectly contains
    multiple values).

    Instead, put the generated directory in LLVM_INCLUDE_DIR, and the source
    tree in LLVM_MAIN_INCLUDE_DIR which is consistent with in-LLVM builds.
    For install tree, both variables will have the same value.

    Differential Revision: (detail/ViewSVN)
    by mgorny
  68. [X86][SLP] Enable SLP vectorization for 128-bit horizontal X86 instructions (add, sub)

    Try to use 64-bit SLP vectorization. In addition to horizontal instrs
    this change triggers optimizations for partial vector operations (for instance,
    using low halfs of 128-bit registers xmm0 and xmm1 to multiply <2 x float> by
    <2 x float>).

    Fixes (detail/ViewSVN)
    by anton-afanasyev
  69. [test] Fix the test from SVN r353917 when running without lld available

    These tests still relies on the default linker not to be overridden
    via e.g. CLANG_DEFAULT_LINKER in cmake. (detail/ViewSVN)
    by mstorsjo
  70. [X86] Use default expansion for (i64 fp_to_uint f80) when avx512 is enabled on 64-bit targets to match what happens without avx512.

    In 64-bit mode prior to avx512 we use Expand, but with avx512 we need to make f32/f64 conversions Legal so we use Custom and then do our own expansion for f80. But this seems to produce codegen differences relative to avx2. This patch corrects this. (detail/ViewSVN)
    by ctopper
  71. [X86] Refactor the FP_TO_INTHelper interface. NFCI

    -Pull the final stack load creation from the two callers into the helper.
    -Return a single SDValue instead of a std::pair.
    -Remove the Replace flag which isn't really needed. (detail/ViewSVN)
    by ctopper
  72. [llvm-objcopy] Add --strip-unneeded-symbol(s)

    Differential revision: (detail/ViewSVN)
    by evgeny777
  73. [profile] Provide lprofGetHostName for all windows environments

    This function doesn't use anything MSVC specific but works fine
    for any _WIN32 target.

    Differential Revision: (detail/ViewSVN)
    by mstorsjo
  74. [MinGW] Add the profiling library when necessary

    Profiling still doesn't seem to work properly, but this at least
    hooks up the library and eases completing whatever is missing.

    Differential Revision: (detail/ViewSVN)
    by mstorsjo
  75. [CMake] Avoid clang dependencies in the runtimes build

    Dependencies like clang aren't available in the runtimes build, this
    was accidentally omitted in D57992. (detail/ViewSVN)
    by phosek
  76. [LoopSimplifyCFG] Re-enable const branch folding by default

    Known underlying bugs have been fixed, intensive fuzz testing did not
    find any new problems. Re-enabling by default. Feel free to revert if
    it causes any functional failures. (detail/ViewSVN)
    by mkazantsev
  77. [libFuzzer] a bit of refactoring of the fork mode (detail/ViewSVN)
    by kcc
  78. [Sanitizer][NFC] Darwin: limit parallism for sanitizer_common tests

    Many sanitizer_common tests (ASan, TSan) run with a "sanitized process
    space" so we need to limit their parallism. (detail/ViewSVN)
    by yln
  79. [llvm-readobj] Dump GNU_PROPERTY_X86_FEATURE_2_{NEEDED,USED} notes in

    Summary: And change the output ("X86 features" -> "x86 feature") a bit.

    Reviewers: grimar, xiangzhangllvm,, rupprecht

    Reviewed By: rupprecht

    Subscribers: rupprecht, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by maskray
  80. [MC] Make symbol version errors non-fatal

    We stil don't have a source location, which is pretty lame, but at least
    we won't tell the user to file a clang bug report anymore.

    Fixes PR40712 (detail/ViewSVN)
    by rnk
  81. [xray][tests][RHDTS] Add -lstdc++ after LLVM libs, resolving link error with RHDTS

    A link error was encountered when using the Red Hat Developer Toolset.
    In the RHDTS, `` is a linker script that may resolve symbols
    to a static library. This patch places `-lstdc++` later in the ordering.

    Reviewers: sfertile, nemanjai, tstellar, dberris

    Reviewed By: dberris

    Subscribers: dberris, mgorny, delcypher, jdoerfert, #sanitizers, llvm-commits

    Tags: #llvm, #sanitizers

    Differential Revision: (detail/ViewSVN)
    by hubert.reinterpretcast
  82. [dsymutil] Improve readability of cloneAllCompileUnits (NFC)

    Add some newlines and improve consistency between the two loops. (detail/ViewSVN)
    by jdevlieghere
  83. [dsymutil] Don't clone empty CUs

    The DWARF standard says that an empty compile unit is not valid:

    > Each such contribution consists of a compilation unit header (see
    > Section on page 200) followed by a single DW_TAG_compile_unit or
    > DW_TAG_partial_unit debugging information entry, together with its
    > children.

    Therefore we shouldn't clone them in dsymutil.

    Differential revision: (detail/ViewSVN)
    by jdevlieghere
  84. [tsan] #undef one-letter macros puts most of sanitizer_common together in a single source
    file. These single-letter macros end up affecting a lot of unrelated
    code; #undef them as early as possible. (detail/ViewSVN)
    by eugenis
  85. [MemorySSA & LoopPassManager] Add remaining book keeping [NFCI].

    Add plumbing to get MemorySSA in the remaining loop passes.
    Also update unit test to add the dependency.
    [EnableMSSALoopDependency remains disabled]. (detail/ViewSVN)
    by asbirlea
  86. AMDGPU: Try to use function specific ST

    Subtargets are a function level property, so ideally we would
    eliminate everywhere that needs to check the global one. Rename the
    function to try avoiding confusion. (detail/ViewSVN)
    by arsenm
  87. AMDGPU: Ignore CodeObjectV3 when inlining

    This was inhibiting inlining of library functions when clang was
    invoking the inliner directly. This is covering a bit of a mess with
    subtarget feature handling, and this shouldn't be a subtarget
    feature. The behavior is different depending on whether you are using
    a -mattr flag in clang, or llc, opt. (detail/ViewSVN)
    by arsenm
  88. [SystemZ]  Remember to cast value to void to disable warning.

    Hopefully fixes buildbot problems. (detail/ViewSVN)
    by jonpa
  89. [LICM] Cap the clobbering calls in LICM.

    Unlimitted number of calls to getClobberingAccess can lead to high
    compile times in pathological cases.
    Switching EnableLicmCap flag from bool to int, and enabling to default 100.
    (tested to be appropriate for current bechmarks)
    We can revisit this value when enabling MemorySSA.

    Reviewers: sanjoy, chandlerc, george.burgess.iv

    Subscribers: jlebar, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by asbirlea
  90. [Tests] A few more live-in deopt lowering tests

    Nothing super interesting, just making sure obvious cases work. (detail/ViewSVN)
    by reames
  91. Revert r353880 "[HIP] Handle compile -m options and propagate into LLC"

    This was still causing test failures in the clang test suite. (detail/ViewSVN)
    by rnk
  92. AMDGPU/NFC: Remove SubtargetFeatureISAVersion since it is not used anywhere (detail/ViewSVN)
    by kzhuravl
  93. [libFuzzer] move the implementation of the fork mode into a separate file (detail/ViewSVN)
    by kcc
  94. docs: Update the ShadowCallStack documentation.

    - Remove most of the discussion of the x86_64 implementation;
      link to an older version of the documentation for details of
      that implementation.
    - Add description of the compatibility and security issues discovered
      during the development of the aarch64 implementation for Android.

    Differential Revision: (detail/ViewSVN)
    by pcc
  95. AMDGPU: Remove duplicate processor (gfx900) (detail/ViewSVN)
    by kzhuravl
  96. [gn build] Separate debug and optimization settings

    This patch adds an `is_optimized` variable, orthogonal to `is_debug`, to allow for a gn analogue to `RelWithDebInfo` builds.

    As part of this we'll want to explicitly enable GC+ICF, for the sake of `is_debug && is_optimized` builds. The flags normally default to true except that if you pass `/DEBUG` they default to false.

    Differential Revision: (detail/ViewSVN)
    by dmajor
  97. [X86] Follow up to r353878, add MSVC compatibility command lines to other intrinsic tests that uses packed structs to control alignment.

    r353878 fixed a bug in _mm_loadu_ps and added a command line to catch it. Adding additional command lines to prevent breaking other intrinsics in the future. (detail/ViewSVN)
    by ctopper
  98. [SelectionDAG] Clean up comments in SelectionDAGBuilder.h. NFC

    Remove redundant function/variable names from doxygen
    comments (as suggested in (detail/ViewSVN)
    by bjope
  99. [HIP] Fix hip-toolchain-rdc tests

    Since we removed changed the way HIP Toolchain will propagate -m options into LLC, we need to remove from these older tests.

    This is related to rC353880.

    Differential Revision: (detail/ViewSVN)
    by aaronenyeshi
  100. Fix auto-upgrade for the new parameter to llvm.objectsize

    r352664 added a 'dynamic' parameter to objectsize, but the AutoUpgrade
    changes were incomplete. Also, fix an off-by-one error I made in the
    upgrade logic that is now no longer unreachable.

    Differential revision: (detail/ViewSVN)
    by epilk
  101. [ConstProp] add test for miscompile from bitcast transform; NFC

    This problem goes with the fix in D51215. (detail/ViewSVN)
    by spatel
  102. Make ModuleDependencyCollector's method virtual (NFC)

    For reproducers in LLDB we want to hook up into the existing clang
    infrastructure. To make that happen we need to be able to override the
    ModuleDependencyCollector's methods.

    The alternative was to inherit from the DependencyCollector directly,
    but that would mean re-implementing the ModuleDependencyListener and the
    ModuleDependencyPPCallbacks and ModuleDependencyMMCallbacks.

    Differential revision: (detail/ViewSVN)
    by jdevlieghere
  103. [HIP] Handle compile -m options and propagate into LLC

    Allow the compile options for -m such as -mxnack/-mno-xnack, -msram-ecc/-mno-sram-ecc, -mcode-object-v3/-mno-code-object-v3 to propagate into LLC args.

    Also add lit tests to verify features are properly passed.

    Differential Revision:

    Reviewers: yaxunl, kzhuravl (detail/ViewSVN)
    by aaronenyeshi
  104. [X86] Use __m128_u for _mm_loadu_ps after r353555

    Add secondary triple to existing SSE test for it.  I audited other uses
    of __attribute__((__packed__)) in the intrinsic headers, and this seemed
    to be the only missing one. (detail/ViewSVN)
    by rnk
  105. Disable PIC/PIE for MSP430 target

    Relocatable code generation is meaningless on MSP430, as the platform is too small to use shared libraries.

    Patch by Dmitry Mikushev!

    Differential Revision: (detail/ViewSVN)
    by asl
  106. [llvm-dwp] Use color-formatted error reporting (detail/ViewSVN)
    by rupprecht
  107. [NFC] typo (detail/ViewSVN)
    by jfb
  108. Fix undefined behaviour in PPCInstPrinter::printBranchOperand.

    Fix the undefined behaviour introduced by my previous patch r353865 (left
    shifting a potentially negative value), which was caught by the bots that run
    UBSan. (detail/ViewSVN)
    by sfertile
  109. [llvm-dwp] Avoid writing the output dwp file when there is an error

    Summary: Use ToolOutputFile to clean up the output file unless dwp actually finishes successfully.

    Reviewers: dblaikie

    Reviewed By: dblaikie

    Subscribers: jdoerfert, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by rupprecht
  110. [AArch64] Expand v8i8 cttz (PR39729)

    Fix for

    Rather than adding just a case for v8i8 I'm setting cttz to expand
    for all vector types.

    Differential Revision: (detail/ViewSVN)
    by nikic
  111. [InlineSpiller] Fix a crash due to lack of forward progress from remat (try 2)

    This is a recommit of r335091 Add more test cases for deopt-operands via regalloc, and r335077 [InlineSpiller] Fix a crash due to lack of forward progress from remat specifically for STATEPOINT.  They were reverted due to a crash.

    This change includes the text of both original changes, but also includes three aditional pieces:
    1) A bug fix for the observed crash.  I had failed to record the failed remat value as live which resulted in an instruction being deleted which still had uses.  With the machine verifier, this is caught quickly.  Without it, we fail in StackSlotColoring due to an empty live interval from LiveStack.
    2) A test case which demonstrates the fix for (1).  See @test11.
    3) A control flag which defaults to disabling this for the moment.  Once I've run more extensive validaton, I will switch the default and then remove this flag. (detail/ViewSVN)
    by reames
  112. [AMDGPU] Require at least protected visibility for certain symbols

    This allows the global visibility controls to be restrictive while still
    populating the dynamic symbol table where required.

    Differential Revision: (detail/ViewSVN)
    by scott.linder
  113. [SystemZ]  Use VGM whenever possible to load FP immediates.

    isFPImmLegal() has been extended to recognize certain FP immediates that can
    be built with VGM (Vector Generate Mask).

    These scalar FP immediates (that were previously loaded from the constant
    pool) are now selected as VGMF/VGMG in Select().

    Review: Ulrich Weigand (detail/ViewSVN)
    by jonpa
  114. [PowerPC] Fix printing of negative offsets in call instruction dissasembly. (detail/ViewSVN)
    by sfertile
  115. [GlobalISel][NFC] Gardening: Make translateSimpleUnaryIntrinsic general

    Instead of only having this code work for unary intrinsics, have it work for
    an arbitrary number of parameters.

    Factor out the cases that fall under this (fma, pow).

    This makes it a bit easier to add more intrinsics which don't require any
    special work.

    Differential Revision: (detail/ViewSVN)
    by paquette
  116. [tablegen] Add locations to many PrintFatalError() calls

    While working on the GISel Combiner, I noticed I was producing location-less
    error messages fairly often and set about fixing this. In the process, I
    noticed quite a few places elsewhere in TableGen that also neglected to include
    a relevant location.

    This patch adds locations to errors that relate to a specific record (or a
    field within it) and also have easy access to the relevant location. This is
    particularly useful when multiclasses are involved as many of these errors
    refer to the full name of a record and it's difficult to guess which substring
    is grep-able.

    Unfortunately, tablegen currently only supports Record granularity so it's not
    currently possible to point at a specific Init so these sometimes point at the
    record that caused the error rather than the precise origin of the error.

    Reviewers: bogner, aditya_nandakumar, volkan, aemerson, paquette, nhaehnle

    Reviewed By: nhaehnle

    Subscribers: jdoerfert, nhaehnle, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by dsanders
  117. [GlobalISel][AArch64] Select llvm.bswap* for non-vector types

    This teaches the IRTranslator to emit G_BSWAP when it runs into
    Intrinsic::bswap. This allows us to select G_BSWAP for non-vector types in

    Add a select-bswap.mir test, and add global isel checks to a couple existing
    tests in test/CodeGen/AArch64.

    This doesn't handle every bswap case, since some of these rely on known bits
    stuff. This just lets us handle the naive case.

    Differential Revision: (detail/ViewSVN)
    by paquette
  118. [X86][AVX] Enable shuffle combining support for zero_extend

    A more limited version of rL352997 that had to be disabled in rL353198 - allow extension of any 128/256/512 bit vector that at least uses byte sized scalars. (detail/ViewSVN)
    by rksimon
  119. [DAGCombiner] convert logic-of-setcc into bit magic (PR40611)

    If we're comparing some value for equality against 2 constants
    and those constants have an absolute difference of just 1 bit,
    then we can offset and mask off that 1 bit and reduce to a single
    compare against zero:
             and/or (setcc X, C0, ne), (setcc X, C1, ne/eq) -->
             setcc ((add X, -C1), ~(C0 - C1)), 0, ne/eq

    This transform is disabled by default using a TLI hook

    That should be overridden for AArch64, MIPS, Sparc and possibly
    others based on the asm shown in: (detail/ViewSVN)
    by spatel
  120. [clangd] Fix a lit-test.

    Non-percent-encoded chars doesn't cause any problems on the input-side since we
    assume everything after authority section is data and don't interpret them as

    Reviewers: sammccall

    Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, cfe-commits

    Tags: #clang

    Differential Revision: (detail/ViewSVN)
    by kadircet
  121. [x86] add negative tests for setcc folds; NFC (detail/ViewSVN)
    by spatel
  122. [SelectionDAG] Fix return calling convention in expansion of ?MULO

    The SMULO/UMULO DAG nodes, when not directly supported by the target,
    expand to a multiplication twice as wide. In case that the resulting
    type is not legal, the legalizer cannot directly call the intrinsic
    with the wide arguments; instead, it "pre-lowers" them by splitting
    them in halves.

    rL283203 made sure that on big endian targets, the legalizer passes
    the argument halves in the correct order. It did not do the same
    for the return value halves because the existing code used a hack;
    it put an illegal type into DAG and hoped that nothing would break
    and it would be correctly lowered elsewhere.

    rL307207 fixed this, handling return value halves similar to how
    argument handles are handled, but did not take big-endian targets
    into account.

    This commit fixes the expansion on big-endian targets, such as
    the out-of-tree OR1K target.

    Reviewers: eli.friedman, vadimcn

    Subscribers: george-hopkins, efriedma, llvm-commits

    Differential Revision: (detail/ViewSVN)
    by whitequark
  123. [CMake][Fuchsia] Pass -ldl -lpthread LDFLAGS to second stage

    We're using static libc++ for the second stage which requires explicitly
    linking -ldl and -lpthread. (detail/ViewSVN)
    by phosek
  124. [MCA] Improved debug prints. NFC (detail/ViewSVN)
    by adibiagio
  125. [PowerPC] Regenerate test (detail/ViewSVN)
    by rksimon
  126. [libc++] Avoid UB in the no-exceptions mode in a few places

    A few places in the library seem to behave unexpectedly when the library
    is compiled or used with exceptions disabled. For example, not throwing
    an exception when a pointer is NULL can lead us to dereference the pointer
    later on, which is UB. This patch fixes such occurences.

    It's hard to tell whether there are other places where the no-exceptions
    mode misbehaves like this, because the replacement for throwing an
    exception does not always seem to be abort()ing, but at least this
    patch will improve the situation somewhat.


    Reviewers: mclow.lists, EricWF

    Subscribers: christof, jkorous, dexonsmith, libcxx-commits

    Differential Revision: (detail/ViewSVN)
    by ldionne
  127. AMDGPU/GlobalISel: Add more insert/extract testcases (detail/ViewSVN)
    by arsenm
  128. [Codegen] Make sure kill flags are not incorrect from removed machine phi's

    We need to clear the kill flags on both SingleValReg and OldReg, to ensure they remain
    conservatively correct.

    Differential Revision: (detail/ViewSVN)
    by dmgreen
  129. [llvm-dwp] Abort when dwo_id is unset

    An empty dwo_id indicates a degenerate .dwo file that should not have been generated in the first place. Instead of discovering this error later when merging with another degenerate .dwo file, print an error immediately when noticing an unset dwo_id, including the filename of the offending file.

    Test case created by compiling a trivial file w/ `-fno-split-dwarf-inlining -gmlt -gsplit-dwarf -c` prior to r353771

    Reviewers: dblaikie

    Reviewed By: dblaikie

    Subscribers: jdoerfert, aprantl, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by rupprecht
  130. AMDGPU/GlobalISel: Only make f16 constants legal on f16 targets

    We could deal with it, but there's no real point. (detail/ViewSVN)
    by arsenm
  131. GlobalISel: Use default rounding mode when extending fconstant

    I don't think this matters since the values should all be exactly
    representable. (detail/ViewSVN)
    by arsenm
  132. GlobalISel: Move some more legalize cases into functions (detail/ViewSVN)
    by arsenm

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

This run spent:

  • 6.4 sec waiting;
  • 14 min build duration;
  • 14 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