Started 11 mo ago
Took 40 min on green-dragon-22

Failed Build #34 (Oct 29, 2018 3:17:43 PM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 345544
  • http://llvm.org/svn/llvm-project/cfe/trunk : 345545
  • http://llvm.org/svn/llvm-project/compiler-rt/trunk : 345547
  • http://llvm.org/svn/llvm-project/debuginfo-tests/trunk : 340204
  • http://llvm.org/svn/llvm-project/zorg/trunk : 345415
  • http://llvm.org/svn/llvm-project/libcxx/trunk : 345529
  • http://llvm.org/svn/llvm-project/clang-tools-extra/trunk : 345522
Changes
  1. [CMake] When built with LLVM, not use `-Wl,-z,defs`

    This matches standalone build behavior. PR28681

    Differential Revision: https://reviews.llvm.org/D53686

    Patch By: tabloid.adroit (detail)
    by phosek
  2. [ASTImporter] Reorder fields after structure import is finished

    There are multiple reasons why field structures can be imported
    in wrong order. The simplest is the ability of field initializers
    and method bodies to refer fields not in order they are listed in.
    Unfortunately, there is no clean solution for that currently
    so I'm leaving a FIXME.

    Differential Revision: https://reviews.llvm.org/D44100 (detail)
    by a.sidorin
  3. [llvm-objcopy] Move elf-specific code into subfolder

    In this diff the elf-specific code is moved into the subfolder ELF
    (and factored out from llvm-objcopy.cpp).

    Test plan: make check-all

    Differential revision: https://reviews.llvm.org/D53790 (detail)
    by alexshap
  4. Add parens to fix incorrect assert check.

    && has higher priority than ||, so this assert works really oddly. Add
    parens to match the programmer's intent.

    Change-Id: I3abe1361ee0694462190c5015779db664012f3d4 (detail)
    by erichkeane
  5. AMDGPU: Enable code object v3 by default

    Differential Revision: https://reviews.llvm.org/D53525 (detail)
    by kzhuravl
  6. [InstSimplify] add tests for abs/nabs+icmp folding; NFC (detail)
    by spatel
  7. [Driver] Include missing touch files for sanitized library paths

    These were forgotten in r345537 causing test failures on Clang builders.

    Differential Revision: https://reviews.llvm.org/D53833 (detail)
    by phosek
  8. [LoopUnroll] NFC. Factor out runtime-loop.ll common test behavior.

    Adding COMMON prefix to get common part handled there.
    Needed to simplify test changes for D53440. (detail)
    by fedor.sergeev
  9. [Driver] Support sanitized libraries on Fuchsia

    When using sanitizers, add <resource_dir>/<target>/lib/<sanitizer>
    to the list of library paths to support using sanitized version of
    runtime libraries if available.

    Differential Revision: https://reviews.llvm.org/D53487 (detail)
    by phosek
  10. In swiftcall, don't merge FP/vector types within a chunk. (detail)
    by rjmccall
  11. [MachineOutliner] Inherit target features from parent function

    If a function has target features, it may contain instructions that aren't
    represented in the default set of instructions. If the outliner pulls out one
    of these instructions, and the function doesn't have the right attributes
    attached, we'll run into an LLVM error explaining that the target doesn't
    support the necessary feature for the instruction.

    This makes outlined functions inherit target features from their parents.

    It also updates the machine-outliner.ll test to check that we're properly
    inheriting target features. (detail)
    by paquette
  12. [OPENMP]Fix PR39372: Does not complain about loop bound variable not
    being shared.

    According to the standard, the variables with unspecified data-sharing
    attributes in presence of `default(none)` clause must be reported to
    users. Compiler did not generate error reports for the variables used in
    other OpenMP regions. Patch fixes this. (detail)
    by abataev
  13. Relax fast register allocator related test cases; NFC

    - Relex hard coded registers and stack frame sizes
    - Some test cleanups
    - Change phi-dbg.ll to match on mir output after phi elimination instead
      of going through the whole codegen pipeline.

    This is in preparation for https://reviews.llvm.org/D52010
    I'm committing all the test changes upfront that work before and after
    independently. (detail)
    by matze
  14. [analyzer][NFC] Refactor PlistDiagnostics to use a class instead of passing 9 parameters around

    This has been a long time coming. Note the usage of AnalyzerOptions: I'll need
    it for D52742, and added it in rC343620. The main motivation for this was that
    I'll need to add yet another parameter to every single function, and some
    functions would reach their 10th parameter with that change. (detail)
    by szelethus
  15. XFAIL test on OS X availability (detail)
    by ericwf
  16. [X86] Set isMachineVerifierClean() back to false (PR27481)

    Put back the isMachineVerifierClean() override removed at rL345513 to fix Windows ThinLTO tests (detail)
    by rksimon
  17. [OpenMP] Fix condition.

    Summary: Iteration variable must be strictly less than the number of iterations. This fixes a bug introduced by previous patch D53448.

    Reviewers: ABataev, caomhin

    Reviewed By: ABataev

    Subscribers: guansong, cfe-commits

    Differential Revision: https://reviews.llvm.org/D53827 (detail)
    by gbercea
  18. Added Phab link for P0927 (detail)
    by marshall
  19. Bug 39129: Speeding up partition_point/lower_bound/upper_bound/ by using unsigned division by 2 when possible.

    Patch by Denis Yaroshevskiy (denis.yaroshevskij@gmail.com)

    The rational and measurements can be found in the bug description: https://bugs.llvm.org/show_bug.cgi?id=39129

    Reviewed as https://reviews.llvm.org/D52697 (detail)
    by ericwf
  20. [HotColdSplitting] Allow outlining single-block cold regions

    It can be profitable to outline single-block cold regions because they
    may be large.

    Allow outlining single-block regions if they have over some threshold of
    non-debug, non-terminator instructions. I chose 3 as the threshold after
    experimenting with several internal frameworks.

    In practice, reducing the threshold further did not give much
    improvement, whereas increasing it resulted in substantial regressions.

    Differential Revision: https://reviews.llvm.org/D53824 (detail)
    by Vedant Kumar
  21. Fix mismatch between size_t and uint64_t in std::set benchmark. (detail)
    by sbenza
  22. [clang-query] Add non-exclusive output API

    Summary:
    Add granular options for AST dumping, text printing and diagnostics.

    This makes it possible to

    * Have both diag and dump active at once
    * Extend the output with other queryable content in the future.

    Reviewers: aaron.ballman, pcc, ioeric, ilya-biryukov, klimek, sammccall

    Reviewed By: aaron.ballman

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D52857 (detail)
    by steveire
  23. [WebAssembly] Lower away condition truncations for scalar selects

    Reviewers: aheejin, dschuff

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

    Differential Revision: https://reviews.llvm.org/D53676 (detail)
    by tlively
  24. [X86][SSE] getFauxShuffleMask - Fix shuffle mask adjustment for multiple inserted subvectors

    Part of the issue discovered in PR39483, although its not fully exposed until I reapply rL345395 (by reverting rL345451) (detail)
    by rksimon
  25. [X86] Add AES to KNL CPUs to match clang.

    I believe this was lost from KNL when AES was pushed from Westmere to Skylake recently. KNL used to inherit from IVB. (detail)
    by ctopper
  26. [AMDGPU] Fixed return value causing warning and regression (detail)
    by rampitec
  27. Revert "Revert "Support for groups of attributes in #pragma clang attribute""

    This reverts commit r345487, which reverted r345486. I think the crashes were
    caused by an OOM on the builder, trying again to confirm... (detail)
    by epilk
  28. [libc++] Use exclude_from_explicit_instantiation instead of always_inline

    Summary:
    This commit adopts the exclude_from_explicit_instantiation attribute discussed
    at [1] and reviewed in [2] in libc++ to supplant the use of __always_inline__
    for visibility purposes.

    This change means that users wanting to link together translation units built
    with different versions of libc++'s headers into the same final linked image
    MUST define the _LIBCPP_HIDE_FROM_ABI_PER_TU macro to 1 when building those
    TUs. Doing otherwise will lead to ODR violations and ABI issues.

    [1]: http://lists.llvm.org/pipermail/cfe-dev/2018-August/059024.html
    [2]: https://reviews.llvm.org/D51789

    Reviewers: rsmith, EricWF

    Subscribers: dexonsmith, libcxx-commits

    Differential Revision: https://reviews.llvm.org/D52405 (detail)
    by Louis Dionne
  29. [AArch64] Rename FP16FML instruction format (NFC)

    Rename SIMDThreeSameMult (etc.) to SIMDThreeSameVectorFML (etc.) to follow
    usual naming convention, and add some comments in the .td files. (detail)
    by bryanpkc
  30. [AMDGPU] Match v_swap_b32

    Differential Revision: https://reviews.llvm.org/D52677 (detail)
    by rampitec
  31. [X86] Enable the MachineVerifier by default

    The machine verifier was disabled for x86 by default. There are now only
    9 tests failing, compared to what previously was between 20 and 30.

    This is a good opportunity to file bugs for all the remaining issues,
    then explicitly disable the failing tests and enabling the machine
    verifier by default.

    This allows us to avoid adding new tests that break the verifier.

    PR27481 (detail)
    by thegameg
  32. [Intrinsic] Signed and Unsigned Saturation Subtraction Intirnsics

    Add an intrinsic that takes 2 integers and perform saturation subtraction on
    them.

    This is a part of implementing fixed point arithmetic in clang where some of
    the more complex operations will be implemented as intrinsics.

    Differential Revision: https://reviews.llvm.org/D53783 (detail)
    by leonardchan
  33. [AArch64] Return address signing B key support

    - Add support to generate AUTIBSP, PACIBSP, RETAB instructions for return
      address signing
    - The key used to sign the function is controlled by the function attribute
      "sign-return-address-key"

    Differential Revision: https://reviews.llvm.org/D51427 (detail)
    by lukecheeseman
  34. [AST] Only store the needed data in SwitchStmt

    Don't store the data for the init statement and condition variable
    if not needed. This cuts the size of SwitchStmt by up to 2 pointers.
    The order of the children is intentionally kept the same.

    Also use the newly available space in the bit-fields of Stmt
    to store the bit representing whether all enums have been covered
    instead of using a PointerIntPair.

    Differential Revision: https://reviews.llvm.org/D53714

    Reviewed By: rjmccall (detail)
    by brunoricci
  35. [OpenMP][NVPTX] Use single loops when generating code for distribute parallel for

    Summary: This patch adds a new code generation path for bound sharing directives containing distribute parallel for. The new code generation scheme applies to chunked schedules on distribute and parallel for directives. The scheme simplifies the code that is being generated by eliminating the need for an outer for loop over chunks for both distribute and parallel for directives. In the case of distribute it applies to any sized chunk while in the parallel for case it only applies when chunk size is 1.

    Reviewers: ABataev, caomhin

    Reviewed By: ABataev

    Subscribers: jholewinski, guansong, cfe-commits

    Differential Revision: https://reviews.llvm.org/D53448 (detail)
    by gbercea
  36. [LLVM-C] Add Builder Bindings to Common Memory Intrinsics

    Summary: Add IRBuilder bindings for memmove, memcpy, and memset.

    Reviewers: whitequark, deadalnix

    Reviewed By: whitequark

    Subscribers: harlanhaskins, llvm-commits

    Differential Revision: https://reviews.llvm.org/D53555 (detail)
    by codafi
  37. [OpenMP][NVPTX] Enable default scheduling for parallel for in non-SPMD cases.

    Summary: This patch enables the choosing of the default schedule for parallel for loops even in non-SPMD cases.

    Reviewers: ABataev, caomhin

    Reviewed By: ABataev

    Subscribers: jholewinski, guansong, cfe-commits

    Differential Revision: https://reviews.llvm.org/D53443 (detail)
    by gbercea
  38. [AST] Check that GNU range case statements are correctly imported.

    The test for case statements did not cover GNU range case statements.

    Differential Revision: https://reviews.llvm.org/D53610

    Reviewed By: rjmccall (detail)
    by brunoricci
  39. [OPENMP] Do not capture private loop counters.

    If the loop counter is not declared in the context of the loop and it is
    private, such loop counters should not be captured in the outlined
    regions. (detail)
    by abataev
  40. [git/svn] Ignore Visual Studio's CMakeSettings.json.

    When using Visual Studio's built-in support for CMake, the CMakeSettings.json contains the build configurations (build dir, generator, toolchain, cmake variables, etc). It is specific to the build machine, therefore should not be versioned.

    Differential Revision: https://reviews.llvm.org/D53775 (detail)
    by meinersbur
  41. [llvm-objdump] Don't crash when using `-a` on non-archives

    This fixes PR39402. The crash was caused when dereferencing nullptr in
    DumpObject and printArchiveChild.

    Reviewed By: jhenderson

    Differential Revision: https://reviews.llvm.org/D53690

    Patch by Xing GUO (detail)
    by jhenderson
  42. Add the isStaticLocal() AST matcher for matching on local static variables.

    Patch by Joe Ranieri. (detail)
    by aaronballman
  43. [X86] Remove outdated test

    This test breaks the X86 MachineVerifier. It looks like the MIR part is
    completely useless.

    The original author suggests that it can be removed.

    Differential Revision: https://reviews.llvm.org/D53767 (detail)
    by thegameg
  44. [llvm-mca] Lower to mca::Instructon before the pipeline is run.

    Before this change, the lowering of instructions from llvm::MCInst to
    mca::Instruction was done as part of the first stage of the pipeline (i.e. the
    FetchStage).  In particular, FetchStage was responsible for picking the next
    instruction from the source sequence, and lower it to an mca::Instruction with
    the help of an object of class InstrBuilder.

    The dependency on InstrBuilder was problematic for a number of reasons. Class
    InstrBuilder only knows how to lower from llvm::MCInst to mca::Instruction.
    That means, it is hard to support a different scenario where instructions
    in input are not instances of class llvm::MCInst. Even if we managed to
    specialize InstrBuilder, and generalize most of its internal logic, the
    dependency on InstrBuilder in FetchStage would have caused more troubles (other
    than complicating the pipeline logic).

    With this patch, the lowering step is done before the pipeline is run. The
    pipeline is no longer responsible for lowering from MCInst to mca::Instruction.
    As a consequence of this, the FetchStage no longer needs to interact with an
    InstrBuilder. The mca::SourceMgr class now simply wraps a reference to a
    sequence of mca::Instruction objects.
    This simplifies the logic of FetchStage, and increases the usability of it.  As
    a result, on a debug build, we see a 7-9% speedup; on a release build, the
    speedup is around 3-4%. (detail)
    by adibiagio
  45. [llvm-mca][UpdateTestChecks] Don't try to align blocks that have already been subject to alignment in update_mca_test_checks.py

    This fixes PR39466. (detail)
    by gbedwell
  46. [OpenCL] Fix serialization of OpenCLExtensionDecls

    Summary:
    I recently discovered that adding the following code into `opencl-c.h` causes
    failure of `test/Headers/opencl-c-header.cl`:
    ```
    #pragma OPENCL EXTENSION cl_my_ext : begin
    void cl_my_ext_foobarbaz();
    #pragma OPENCL EXTENSIOn cl_my_ext : end
    ```

    Clang crashes at the assertion is `ASTReader::getGlobalSubmoduleID()`:
    ```
    assert(I != M.SubmoduleRemap.end() && "Invalid index into submodule index remap");
    ```

    The root cause of the problem that to deserialize `OPENCL_EXTENSION_DECLS`
    section `ASTReader` needs to deserialize a Decl contained in it. In turn,
    deserializing a Decl requires information about whether this declaration is
    part of a (sub)module, but this information is not read yet because it is
    located further in a module file.

    Reviewers: Anastasia, yaxunl, JDevlieghere

    Reviewed By: Anastasia

    Subscribers: sidorovd, cfe-commits, asavonic

    Differential Revision: https://reviews.llvm.org/D53200 (detail)
    by asavonic
  47. [ASTImporter] Import overrides before importing the rest of the chain

    Summary:
    During method import we check for structural eq of two methods.
    In the structural eq check we check for their isVirtual() flag. That
    flag, however, may depend on the number of overrides. Before this
    change we imported the overrides *after* we had imported the rest of the
    redecl chain.  So, during the import of another decl from the chain
    IsVirtual() gave false result.

    Writing tests for this is not really possible, because there is no way
    to remove an overridden method via the AST API.
    (We should access the private ASTContext::OverriddenMethods container.)
    Also, we should do the remove in the middle of the import process.

    Reviewers: a_sidorin, a.sidorin

    Subscribers: rnkovacs, dkrupp, Szelethus, cfe-commits

    Differential Revision: https://reviews.llvm.org/D53704 (detail)
    by martong
  48. [llvm-objdump] Add '--full-contents' as alias for '-s'

    This fixes PR39404.

    Reviewed By: jhenderson

    Patch by Xing Guo

    Differential Revision: https://reviews.llvm.org/D53576 (detail)
    by jhenderson
  49. Mark test/tsan/getline_nohang as XFAIL for NetBSD (detail)
    by kamil
  50. Disable the GNU strerror_r TSan test for NetBSD

    Revert older change that was incorrect in this test.
    It was already reverted in the past after an attempt to port it to Darwin.

    While there, mark FreeBSD as unsupported as well. (detail)
    by kamil
  51. [ARM][NFC] Fix test inlineasm-X-allocation.ll

    Differential Revision: https://reviews.llvm.org/D53748 (detail)
    by sjoerdmeijer
  52. Mark test/tsan/ignore_lib5 as unsupported for NetBSD

    ReadProcMaps() on NetBSD does not handle >=1MB of memory layout information. (detail)
    by kamil
  53. [XRay] Guard call to postCurrentThreadFCT()

    Summary:
    Some cases where `postCurrentThreadFCT()` are not guarded by our
    recursion guard. We've observed that sometimes these can lead to
    deadlocks when some functions (like memcpy()) gets outlined and the
    version of memcpy is XRay-instrumented, which can be materialised by the
    compiler in the implementation of lower-level components used by the
    profiling runtime.

    This change ensures that all calls to `postCurrentThreadFCT` are guarded
    by our thread-recursion guard, to prevent deadlocks.

    Reviewers: mboerger, eizan

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D53805 (detail)
    by dberris
  54. [X86] Force floating point values in constant pool decoding to print in scientific notation so they can't be confused with integers.

    When the floating point constants are whole numbers they have no decimal point so look like integers, but mean something very different in something like an 'and' instruction.

    Ideally we would just print a decimal point and a 0, but I couldn't see how to make APFloat::toString do that. (detail)
    by ctopper
  55. Revert "Support for groups of attributes in #pragma clang attribute"

    This reverts commit r345486.

    Looks like it causes some old versions of GCC to crash, I'll see if I can
    work around it and recommit... (detail)
    by epilk
  56. Support for groups of attributes in #pragma clang attribute

    This commit enables pushing an empty #pragma clang attribute push, then adding
    multiple attributes to it, then popping them all with #pragma clang attribute
    pop, just like #pragma clang diagnostic. We still support the current way of
    adding these, #pragma clang attribute push(__attribute__((...))), by treating it
    like a combined push/attribute. This is needed to create macros like:

    DO_SOMETHING_BEGIN(attr1, attr2, attr3)
    // ...
    DO_SOMETHING_END

    rdar://45496947

    Differential revision: https://reviews.llvm.org/D53621 (detail)
    by epilk
  57. [XRay] Use more portable control block

    Summary:
    In D53560, we assumed a specific layout for memory without using an
    explicit structure. This follow-up change uses more portable layout
    control by using unions in a struct, and consolidating the memory
    management code in the buffer queue.

    We also take the opportunity to improve the documentation on the types
    and operations, along with simplifying some of the logic in the buffer
    queue implementation.

    Reviewers: mboerger, eizan

    Subscribers: jfb, llvm-commits

    Differential Revision: https://reviews.llvm.org/D53802 (detail)
    by dberris
  58. [X86] Recognize constant splats in LowerFCOPYSIGN. (detail)
    by ctopper
  59. [X86] Add test case to show failure to handle splat vectors in the constant check in LowerFCOPYSIGN. (detail)
    by ctopper
  60. Revert "Revert "DebugInfo: reduce DIE range verification on object files""

    This reverts commit 836c763dadbd9478fa35b1a291a38bf17aa206ba.  Default
    initialize the values that MSAN caught. (detail)
    by Saleem Abdulrasool
  61. [SelectionDAG] Fix bad indentation. NFC (detail)
    by ctopper
  62. [llvm-exegesis] Fix SNB counter definition and handling.

    Summary: SNB is the only one that has P23 as a single proc res.

    Reviewers: gchatelet

    Subscribers: tschuett, llvm-commits

    Differential Revision: https://reviews.llvm.org/D53766 (detail)
    by courbet
  63. AST: extend MS decoration handling for extended vectors

    We correctly handled extended vectors of non-floating point types.
    However, we have the Intel style builtins which MSVC also supports which
    do overlap in sizes with the floating point extended vectors.  This
    would result in overloading of floating point extended vector types
    which matched sizes (e.g. <3 x float> would be backed by a <4 x float>
    and thus match sizes) to be mangled similarly.  Extended vectors are a
    clang extension which live outside of the builtins, so mangle them all
    similarly.  This change just extends the current scheme to treat
    floating point types similar to the way that we treat other types
    currently.

    This now allows the swift runtime to be built for Windows again. (detail)
    by Saleem Abdulrasool
  64. [TargetLowering] Move i64/vXi64 to f32/vXf32 UINT_TO_FP handling to TargetLowering::expandUINT_TO_FP. (detail)
    by rksimon
  65. [AST] Fix an use-of-uninitialized bug introduced in CaseStmt

    SwitchCaseBits.CaseStmtIsGNURange needs to be initialized first. (detail)
    by brunoricci
  66. [X86][NFC] sse42-schedule.ll: disable XOP for BdVer2 tests

    Else we are clearly testing the wrong instruction. (detail)
    by lebedevri
  67. [X86][NFC] sse41-schedule.ll: disable XOP for BdVer2 tests

    Else we are clearly testing the wrong instruction. (detail)
    by lebedevri
  68. [X86][NFC] sse2-schedule.ll: disable XOP for BdVer2 tests

    Else we are clearly testing the wrong instruction. (detail)
    by lebedevri
  69. [VectorLegalizer] Enable TargetLowering::expandFP_TO_UINT support.

    Add vector support to TargetLowering::expandFP_TO_UINT.

    This exposes an issue in X86TargetLowering::LowerVSELECT which was assuming that the select mask was the same width as the LHS/RHS ops - as long as the result is a sign splat we can easily sext/trunk this. (detail)
    by rksimon
  70. [AST] Don't store data for GNU range case statement if not needed

    Don't store the data for case statements of the form LHS ... RHS if not
    needed. This cuts the size of CaseStmt by 1 pointer + 1 SourceLocation in
    the common case.

    Also use the newly available space in the bit-fields of Stmt to store the
    keyword location of SwitchCase and move the small accessor
    SwitchCase::getSubStmt to the header.

    Differential Revision: https://reviews.llvm.org/D53609

    Reviewed By: rjmccall (detail)
    by brunoricci
  71. [XRay] Refcount backing store for buffers

    Summary:
    This change implements the ref-counting for backing stores associated
    with generational buffer management. We do this as an implementation
    detail of the buffer queue, instead of exposing this to the interface.

    This change allows us to keep the buffer queue interface and usage model
    the same.

    Depends on D53551.

    Reviewers: mboerger, eizan

    Subscribers: jfb, llvm-commits

    Differential Revision: https://reviews.llvm.org/D53560 (detail)
    by dberris
  72. Reapply Pass the nopie flag to the linker when linking with -pg. (detail)
    by brad
  73. [DAGCombiner] Better constant vector support for FCOPYSIGN.

    Enable constant folding when both operands are vectors of constants.

    Turn into FNEG/FABS when the RHS is a splat constant vector. (detail)
    by ctopper
  74. [X86] Add test cases showing missed opportunities for optimizing vector fcopysign when the RHS is a splat constant. (detail)
    by ctopper
  75. [utils] collect_and_build_with_pgo.py: revert part already fixed in rL345461

    The change was inadvertently included in my last commit. (detail)
    by maskray
  76. [utils] Fix _run_benchmark in collect_and_build_with_pgo.py

    Summary: Also fix a FIXME in _build_stage1_clang: clang llvm-profdata profile are sufficient

    Reviewers: george.burgess.iv

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D53795 (detail)
    by maskray
  77. Revert r344172: [LV] Add a new reduction pattern match

    This patch has caused fast-math issues in the reduction pattern.

    Will re-work and land again. (detail)
    by rengolin
  78. [AST] Only store the needed data in IfStmt

    Only store the needed data in IfStmt. This cuts the size of IfStmt
    by up to 3 pointers + 1 SourceLocation. The order of the children
    is intentionally kept the same even though it would be more
    convenient to put the optional trailing objects last. Additionally
    use the newly available space in the bit-fields of Stmt to store
    the location of the "if".

    The result of this is that for the common case of an
    if statement of the form:

    if (some_cond)
      some_statement

    the size of IfStmt is brought down to 8 bytes + 2 pointers,
    instead of 8 bytes + 5 pointers + 2 SourceLocation.

    Differential Revision: https://reviews.llvm.org/D53607

    Reviewed By: rjmccall (detail)
    by brunoricci
  79. AMD BdVer2 (Piledriver) Initial Scheduler model

    Summary:
    # Overview
    This is somewhat partial.
    * Latencies are good {F7371125}
      * All of these remaining inconsistencies //appear// to be noise/noisy/flaky.
    * NumMicroOps are somewhat good {F7371158}
      * Most of the remaining inconsistencies are from `Ld` / `Ld_ReadAfterLd` classes
    * Actual unit occupation (pipes, `ResourceCycles`) are undiscovered lands, i did not really look there.
      They are basically verbatum copy from `btver2`
    * Many `InstRW`. And there are still inconsistencies left...

    To be noted:
    I think this is the first new schedule profile produced with the new next-gen tools like llvm-exegesis!

    # Benchmark
    I realize that isn't what was suggested, but i'll start with some "internal" public real-world benchmark i understand - [[ https://github.com/darktable-org/rawspeed | RawSpeed raw image decoding library ]].
    Diff (the exact clang from trunk without/with this patch):
    ```
    Comparing /home/lebedevri/rawspeed/build-old/src/utilities/rsbench/rsbench to /home/lebedevri/rawspeed/build-new/src/utilities/rsbench/rsbench
    Benchmark                                                                                        Time             CPU      Time Old      Time New       CPU Old       CPU New
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Canon/EOS 5D Mark II/09.canon.sraw1.cr2/threads:8/real_time_pvalue                             0.0000          0.0000      U Test, Repetitions: 25 vs 25
    Canon/EOS 5D Mark II/09.canon.sraw1.cr2/threads:8/real_time_mean                              -0.0607         -0.0604           234           219           233           219
    Canon/EOS 5D Mark II/09.canon.sraw1.cr2/threads:8/real_time_median                            -0.0630         -0.0626           233           219           233           219
    Canon/EOS 5D Mark II/09.canon.sraw1.cr2/threads:8/real_time_stddev                            +0.2581         +0.2587             1             2             1             2
    Canon/EOS 5D Mark II/10.canon.sraw2.cr2/threads:8/real_time_pvalue                             0.0000          0.0000      U Test, Repetitions: 25 vs 25
    Canon/EOS 5D Mark II/10.canon.sraw2.cr2/threads:8/real_time_mean                              -0.0770         -0.0767           144           133           144           133
    Canon/EOS 5D Mark II/10.canon.sraw2.cr2/threads:8/real_time_median                            -0.0767         -0.0763           144           133           144           133
    Canon/EOS 5D Mark II/10.canon.sraw2.cr2/threads:8/real_time_stddev                            -0.4170         -0.4156             1             0             1             0
    Canon/EOS 5DS/2K4A9927.CR2/threads:8/real_time_pvalue                                          0.0000          0.0000      U Test, Repetitions: 25 vs 25
    Canon/EOS 5DS/2K4A9927.CR2/threads:8/real_time_mean                                           -0.0271         -0.0270           463           450           463           450
    Canon/EOS 5DS/2K4A9927.CR2/threads:8/real_time_median                                         -0.0093         -0.0093           453           449           453           449
    Canon/EOS 5DS/2K4A9927.CR2/threads:8/real_time_stddev                                         -0.7280         -0.7280            13             4            13             4
    Canon/EOS 5DS/2K4A9928.CR2/threads:8/real_time_pvalue                                          0.0004          0.0004      U Test, Repetitions: 25 vs 25
    Canon/EOS 5DS/2K4A9928.CR2/threads:8/real_time_mean                                           -0.0065         -0.0065           569           565           569           565
    Canon/EOS 5DS/2K4A9928.CR2/threads:8/real_time_median                                         -0.0077         -0.0077           569           564           569           564
    Canon/EOS 5DS/2K4A9928.CR2/threads:8/real_time_stddev                                         +1.0077         +1.0068             2             5             2             5
    Canon/EOS 5DS/2K4A9929.CR2/threads:8/real_time_pvalue                                          0.0220          0.0199      U Test, Repetitions: 25 vs 25
    Canon/EOS 5DS/2K4A9929.CR2/threads:8/real_time_mean                                           +0.0006         +0.0007           312           312           312           312
    Canon/EOS 5DS/2K4A9929.CR2/threads:8/real_time_median                                         +0.0031         +0.0032           311           312           311           312
    Canon/EOS 5DS/2K4A9929.CR2/threads:8/real_time_stddev                                         -0.7069         -0.7072             4             1             4             1
    Canon/EOS 10D/CRW_7673.CRW/threads:8/real_time_pvalue                                          0.0004          0.0004      U Test, Repetitions: 25 vs 25
    Canon/EOS 10D/CRW_7673.CRW/threads:8/real_time_mean                                           -0.0015         -0.0015           141           141           141           141
    Canon/EOS 10D/CRW_7673.CRW/threads:8/real_time_median                                         -0.0010         -0.0011           141           141           141           141
    Canon/EOS 10D/CRW_7673.CRW/threads:8/real_time_stddev                                         -0.1486         -0.1456             0             0             0             0
    Canon/EOS 40D/_MG_0154.CR2/threads:8/real_time_pvalue                                          0.6139          0.8766      U Test, Repetitions: 25 vs 25
    Canon/EOS 40D/_MG_0154.CR2/threads:8/real_time_mean                                           -0.0008         -0.0005            60            60            60            60
    Canon/EOS 40D/_MG_0154.CR2/threads:8/real_time_median                                         -0.0006         -0.0002            60            60            60            60
    Canon/EOS 40D/_MG_0154.CR2/threads:8/real_time_stddev                                         -0.1467         -0.1390             0             0             0             0
    Canon/EOS 77D/IMG_4049.CR2/threads:8/real_time_pvalue                                          0.0137          0.0137      U Test, Repetitions: 25 vs 25
    Canon/EOS 77D/IMG_4049.CR2/threads:8/real_time_mean                                           +0.0002         +0.0002           275           275           275           275
    Canon/EOS 77D/IMG_4049.CR2/threads:8/real_time_median                                         -0.0015         -0.0014           275           275           275           275
    Canon/EOS 77D/IMG_4049.CR2/threads:8/real_time_stddev                                         +3.3687         +3.3587             0             2             0             2
    Canon/PowerShot G1/crw_1693.crw/threads:8/real_time_pvalue                                     0.4041          0.3933      U Test, Repetitions: 25 vs 25
    Canon/PowerShot G1/crw_1693.crw/threads:8/real_time_mean                                      +0.0004         +0.0004            67            67            67            67
    Canon/PowerShot G1/crw_1693.crw/threads:8/real_time_median                                    -0.0000         -0.0000            67            67            67            67
    Canon/PowerShot G1/crw_1693.crw/threads:8/real_time_stddev                                    +0.1947         +0.1995             0             0             0             0
    Fujifilm/GFX 50S/20170525_0037TEST.RAF/threads:8/real_time_pvalue                              0.0074          0.0001      U Test, Repetitions: 25 vs 25
    Fujifilm/GFX 50S/20170525_0037TEST.RAF/threads:8/real_time_mean                               -0.0092         +0.0074           547           542            25            25
    Fujifilm/GFX 50S/20170525_0037TEST.RAF/threads:8/real_time_median                             -0.0054         +0.0115           544           541            25            25
    Fujifilm/GFX 50S/20170525_0037TEST.RAF/threads:8/real_time_stddev                             -0.4086         -0.3486             8             5             0             0
    Fujifilm/X-Pro2/_DSF3051.RAF/threads:8/real_time_pvalue                                        0.3320          0.0000      U Test, Repetitions: 25 vs 25
    Fujifilm/X-Pro2/_DSF3051.RAF/threads:8/real_time_mean                                         +0.0015         +0.0204           218           218            12            12
    Fujifilm/X-Pro2/_DSF3051.RAF/threads:8/real_time_median                                       +0.0001         +0.0203           218           218            12            12
    Fujifilm/X-Pro2/_DSF3051.RAF/threads:8/real_time_stddev                                       +0.2259         +0.2023             1             1             0             0
    GoPro/HERO6 Black/GOPR9172.GPR/threads:8/real_time_pvalue                                      0.0000          0.0001      U Test, Repetitions: 25 vs 25
    GoPro/HERO6 Black/GOPR9172.GPR/threads:8/real_time_mean                                       -0.0209         -0.0179            96            94            90            88
    GoPro/HERO6 Black/GOPR9172.GPR/threads:8/real_time_median                                     -0.0182         -0.0155            95            93            90            88
    GoPro/HERO6 Black/GOPR9172.GPR/threads:8/real_time_stddev                                     -0.6164         -0.2703             2             1             2             1
    Kodak/DCS Pro 14nx/D7465857.DCR/threads:8/real_time_pvalue                                     0.0000          0.0000      U Test, Repetitions: 25 vs 25
    Kodak/DCS Pro 14nx/D7465857.DCR/threads:8/real_time_mean                                      -0.0098         -0.0098           176           175           176           175
    Kodak/DCS Pro 14nx/D7465857.DCR/threads:8/real_time_median                                    -0.0126         -0.0126           176           174           176           174
    Kodak/DCS Pro 14nx/D7465857.DCR/threads:8/real_time_stddev                                    +6.9789         +6.9157             0             2             0             2
    Nikon/D850/Nikon-D850-14bit-lossless-compressed.NEF/threads:8/real_time_pvalue                 0.0000          0.0000      U Test, Repetitions: 25 vs 25
    Nikon/D850/Nikon-D850-14bit-lossless-compressed.NEF/threads:8/real_time_mean                  -0.0237         -0.0238           474           463           474           463
    Nikon/D850/Nikon-D850-14bit-lossless-compressed.NEF/threads:8/real_time_median                -0.0267         -0.0267           473           461           473           461
    Nikon/D850/Nikon-D850-14bit-lossless-compressed.NEF/threads:8/real_time_stddev                +0.7179         +0.7178             3             5             3             5
    Olympus/E-M1MarkII/Olympus_EM1mk2__HIRES_50MP.ORF/threads:8/real_time_pvalue                   0.6837          0.6554      U Test, Repetitions: 25 vs 25
    Olympus/E-M1MarkII/Olympus_EM1mk2__HIRES_50MP.ORF/threads:8/real_time_mean                    -0.0014         -0.0013          1375          1373          1375          1373
    Olympus/E-M1MarkII/Olympus_EM1mk2__HIRES_50MP.ORF/threads:8/real_time_median                  +0.0018         +0.0019          1371          1374          1371          1374
    Olympus/E-M1MarkII/Olympus_EM1mk2__HIRES_50MP.ORF/threads:8/real_time_stddev                  -0.7457         -0.7382            11             3            10             3
    Panasonic/DC-G9/P1000476.RW2/threads:8/real_time_pvalue                                        0.0000          0.0000      U Test, Repetitions: 25 vs 25
    Panasonic/DC-G9/P1000476.RW2/threads:8/real_time_mean                                         -0.0080         -0.0289            22            22            10            10
    Panasonic/DC-G9/P1000476.RW2/threads:8/real_time_median                                       -0.0070         -0.0287            22            22            10            10
    Panasonic/DC-G9/P1000476.RW2/threads:8/real_time_stddev                                       +1.0977         +0.6614             0             0             0             0
    Panasonic/DC-GH5/_T012014.RW2/threads:8/real_time_pvalue                                       0.0000          0.0000      U Test, Repetitions: 25 vs 25
    Panasonic/DC-GH5/_T012014.RW2/threads:8/real_time_mean                                        +0.0132         +0.0967            35            36            10            11
    Panasonic/DC-GH5/_T012014.RW2/threads:8/real_time_median                                      +0.0132         +0.0956            35            36            10            11
    Panasonic/DC-GH5/_T012014.RW2/threads:8/real_time_stddev                                      -0.0407         -0.1695             0             0             0             0
    Panasonic/DC-GH5S/P1022085.RW2/threads:8/real_time_pvalue                                      0.0000          0.0000      U Test, Repetitions: 25 vs 25
    Panasonic/DC-GH5S/P1022085.RW2/threads:8/real_time_mean                                       +0.0331         +0.1307            13            13             6             6
    Panasonic/DC-GH5S/P1022085.RW2/threads:8/real_time_median                                     +0.0430         +0.1373            12            13             6             6
    Panasonic/DC-GH5S/P1022085.RW2/threads:8/real_time_stddev                                     -0.9006         -0.8847             1             0             0             0
    Pentax/645Z/IMGP2837.PEF/threads:8/real_time_pvalue                                            0.0016          0.0010      U Test, Repetitions: 25 vs 25
    Pentax/645Z/IMGP2837.PEF/threads:8/real_time_mean                                             -0.0023         -0.0024           395           394           395           394
    Pentax/645Z/IMGP2837.PEF/threads:8/real_time_median                                           -0.0029         -0.0030           395           394           395           393
    Pentax/645Z/IMGP2837.PEF/threads:8/real_time_stddev                                           -0.0275         -0.0375             1             1             1             1
    Phase One/P65/CF027310.IIQ/threads:8/real_time_pvalue                                          0.0232          0.0000      U Test, Repetitions: 25 vs 25
    Phase One/P65/CF027310.IIQ/threads:8/real_time_mean                                           -0.0047         +0.0039           114           113            28            28
    Phase One/P65/CF027310.IIQ/threads:8/real_time_median                                         -0.0050         +0.0037           114           113            28            28
    Phase One/P65/CF027310.IIQ/threads:8/real_time_stddev                                         -0.0599         -0.2683             1             1             0             0
    Samsung/NX1/2016-07-23-142101_sam_9364.srw/threads:8/real_time_pvalue                          0.0000          0.0000      U Test, Repetitions: 25 vs 25
    Samsung/NX1/2016-07-23-142101_sam_9364.srw/threads:8/real_time_mean                           +0.0206         +0.0207           405           414           405           414
    Samsung/NX1/2016-07-23-142101_sam_9364.srw/threads:8/real_time_median                         +0.0204         +0.0205           405           414           405           414
    Samsung/NX1/2016-07-23-142101_sam_9364.srw/threads:8/real_time_stddev                         +0.2155         +0.2212             1             1             1             1
    Samsung/NX30/2015-03-07-163604_sam_7204.srw/threads:8/real_time_pvalue                         0.0000          0.0000      U Test, Repetitions: 25 vs 25
    Samsung/NX30/2015-03-07-163604_sam_7204.srw/threads:8/real_time_mean                          -0.0109         -0.0108           147           145           147           145
    Samsung/NX30/2015-03-07-163604_sam_7204.srw/threads:8/real_time_median                        -0.0104         -0.0103           147           145           147           145
    Samsung/NX30/2015-03-07-163604_sam_7204.srw/threads:8/real_time_stddev                        -0.4919         -0.4800             0             0             0             0
    Samsung/NX3000/_3184416.SRW/threads:8/real_time_pvalue                                         0.0000          0.0000      U Test, Repetitions: 25 vs 25
    Samsung/NX3000/_3184416.SRW/threads:8/real_time_mean                                          -0.0149         -0.0147           220           217           220           217
    Samsung/NX3000/_3184416.SRW/threads:8/real_time_median                                        -0.0173         -0.0169           221           217           220           217
    Samsung/NX3000/_3184416.SRW/threads:8/real_time_stddev                                        +1.0337         +1.0341             1             3             1             3
    Sony/DSLR-A350/DSC05472.ARW/threads:8/real_time_pvalue                                         0.0001          0.0001      U Test, Repetitions: 25 vs 25
    Sony/DSLR-A350/DSC05472.ARW/threads:8/real_time_mean                                          -0.0019         -0.0019           194           193           194           193
    Sony/DSLR-A350/DSC05472.ARW/threads:8/real_time_median                                        -0.0021         -0.0021           194           193           194           193
    Sony/DSLR-A350/DSC05472.ARW/threads:8/real_time_stddev                                        -0.4441         -0.4282             0             0             0             0
    Sony/ILCE-7RM2/14-bit-compressed.ARW/threads:8/real_time_pvalue                                0.0000          0.4263      U Test, Repetitions: 25 vs 25
    Sony/ILCE-7RM2/14-bit-compressed.ARW/threads:8/real_time_mean                                 +0.0258         -0.0006            81            83            19            19
    Sony/ILCE-7RM2/14-bit-compressed.ARW/threads:8/real_time_median                               +0.0235         -0.0011            81            82            19            19
    Sony/ILCE-7RM2/14-bit-compressed.ARW/threads:8/real_time_stddev                               +0.1634         +0.1070             1             1             0             0
    ```
    {F7443905}
    If we look at the `_mean`s, the time column, the biggest win is `-7.7%` (`Canon/EOS 5D Mark II/10.canon.sraw2.cr2`),
    and the biggest loose is `+3.3%` (`Panasonic/DC-GH5S/P1022085.RW2`);
    Overall: mean `-0.7436%`, median `-0.23%`, `cbrt(sum(time^3))` = `-8.73%`
    Looks good so far i'd say.

    llvm-exegesis details:
    {F7371117} {F7371125}
    {F7371128} {F7371144} {F7371158}

    Reviewers: craig.topper, RKSimon, andreadb, courbet, avt77, spatel, GGanesh

    Reviewed By: andreadb

    Subscribers: javed.absar, gbedwell, jfb, llvm-commits

    Differential Revision: https://reviews.llvm.org/D52779 (detail)
    by lebedevri
  80. [NFC][X86] Baseline tests for AMD BdVer2 (Piledriver) Scheduler model

    Adding the baseline tests in a preparatory NFC commit,
    so that the actual commit shows the *diff*.

    Yes, i'm aware that a few of these codegen-based sched tests
    are testing wrong instructions, i will fix that afterwards.

    For https://reviews.llvm.org/D52779 (detail)
    by lebedevri
  81. [utils] Run tests in the proper directory.

    The intent here was to run check-llvm/check-clang in the instrumented
    clang's build directory, not the maybe-not-yet-created uninstrumented
    clang's. Oops. :) (detail)
    by George Burgess IV
  82. [AST] Refactor PredefinedExpr

    Make the following changes to PredefinedExpr:

    1. Move PredefinedExpr below StringLiteral so that it can use its definition.
    2. Rename IdentType to IdentKind to be more in line with clang's conventions,
       and propagate the change to its users.
    3. Move the location and the IdentKind into the newly available space of
       the bit-fields of Stmt.
    4. Only store the function name when needed. When parsing all of Boost,
       of the 1357 PredefinedExpr 919 have no function name.

    Differential Revision: https://reviews.llvm.org/D53605

    Reviewed By: rjmccall (detail)
    by brunoricci
  83. [AST] Widen the bit-fields of Stmt to 8 bytes.

    Although some classes are using the tail padding of Stmt, most of
    them are not. In particular the expression classes are not using it
    since there is Expr in between, and Expr contains a single pointer.

    This patch widen the bit-fields to Stmt to 8 bytes and move some
    data from NullStmt, CompoundStmt, LabelStmt, AttributedStmt, SwitchStmt,
    WhileStmt, DoStmt, ForStmt, GotoStmt, ContinueStmt, BreakStmt
    and ReturnStmt to the newly available space.

    In itself this patch do not achieve much but I plan to go through each of
    the classes in the statement/expression hierarchy and use this newly
    available space. A quick estimation gives me that this should shrink the
    size of the statement/expression hierarchy by >10% when parsing all of Boost.

    Differential Revision: https://reviews.llvm.org/D53604

    Reviewed By: rjmccall (detail)
    by brunoricci
  84. [X86][SSE] LowerVSELECT - pull out repeated getOperand(). NFCI. (detail)
    by rksimon
  85. Revert "DebugInfo: reduce DIE range verification on object files"

    This reverts commits r345441 and r345444, they were causing msan
    buildbot failures. (detail)
    by vlad.tsyrklevich
  86. [Local] Keep K's range if K does not move when combining metadata.

    As K has to dominate I, IIUC I's range metadata must be a subset of
    K's. After Eli's recent clarification to the LangRef, loading a value
    outside of the range is undefined behavior.
    Therefore if I's range contains elements outside of K's range and we would load
    one such value, K would cause undefined behavior.

    In cases like hoisting/sinking, we still want the most generic range
    over all code paths to/from the hoist/sink point. As suggested in the
    patches related to D47339, I will refactor the handling of those
    scenarios and try to decouple it from this function as follow up, once
    we switched to a similar handling of metadata in most of
    combineMetadata.

    I updated some tests checking mostly the merging of metadata to keep the
    metadata of to dominating load. The most interesting one is probably test8 in
    test/Transforms/JumpThreading/thread-loads.ll. It contained a comment
    about the alias metadata preventing us to eliminate the branch, but it
    seem like the actual problem currently is that we merge the ranges of
    both loads and cannot eliminate the icmp afterwards. With this patch, we
    manage to eliminate the icmp, as the range of the first load excludes 8.

    Reviewers: efriedma, nlopes, davide

    Reviewed By: efriedma

    Differential Revision: https://reviews.llvm.org/D51629 (detail)
    by fhahn
  87. [x86] make test immune to improved extraction in D53784; NFC (detail)
    by spatel
  88. Fix -Wdocumentation warning. NFCI. (detail)
    by rksimon
  89. Regenerate FP_TO_INT tests.

    Precursor to fix for PR17686 (detail)
    by rksimon
  90. [TargetLowering] Move LegalizeDAG FP_TO_UINT handling to TargetLowering::expandFP_TO_UINT. NFCI.

    First step towards fixing PR17686 and adding vector support. (detail)
    by rksimon
  91. Revert rL345395: [X86][SSE] Move 2-input limit up from getFauxShuffleMask to resolveTargetShuffleInputs
    Makes no difference to actual shuffle decoding yet, but merges all the existing limits in one place for when proper support is fixed.
    ........
    Its been reported that this is causing out of trunk failures. (detail)
    by rksimon
  92. [ARM64][Windows] MCLayer support for exception handling

    Add ARM64 unwind codes to MCLayer, as well SEH directives that will be emitted
    by the frame lowering patch to follow.  We only emit unwind codes into object
    object files for now.

    Differential Revision: https://reviews.llvm.org/D50166 (detail)
    by ssijaric
  93. AST: fix a typo in a comment (NFC)

    Fix a typo spotted by Akira!  NFC (detail)
    by Saleem Abdulrasool
  94. [X86] Add some isel patterns for scalar_to_vector/extract_vector_element that use the avx512 extended register classes when they are available. (detail)
    by ctopper
  95. Revert r345169 [along with its llvm counterpart r345170] as it makes Halide builds timeout. (detail)
    by asbirlea
  96. Revert r345170 [along with its llvm counterpart r345169] as it makes Halide builds timeout. (detail)
    by asbirlea
  97. [XRay] Support generational buffers in FDR controller

    Summary:
    This is an intermediary step in the full support for generational buffer
    management in the FDR runtime. This change makes the FDR controller
    aware of the new generation number in the buffers handed out by the
    BufferQueue type.

    In the process of making this change, we've realised that the cleanest
    way of ensuring that the backing store per generation is live while all
    the threads that need access to it will need reference counting to tie
    the backing store to the lifetime of all threads that have a handle on
    buffers associated with the memory.

    We also learn that we're missing the edge-case in the function exit
    handler's implementation where the first record being written into the
    buffer is a function exit, which is caught/fixed by the test for
    generational buffer management.

    We still haven't wired the controller into the FDR mode runtime, which
    will need the reference counting on the backing store implemented to
    ensure that we're being conservatively thread-safe with this approach.

    Depends on D52974.

    Reviewers: mboerger, eizan

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D53551 (detail)
    by dberris
  98. test: add missing -triple

    Ensure that the test builds for x86_64 as it is an assembly test.  This
    should repair the buildbots. (detail)
    by Saleem Abdulrasool
  99. Revert "Pass the nopie flag to the linker when linking with -pg." until
    one of the tests can be fixed on !OpenBSD hosts. (detail)
    by brad
  100. [Hexagon] Add missing assignment to Itinerary in Call_nr

    The class definition for Call_nr has the itinerary as a
    parameter, but the value is never assigned to the Itinerary
    field for the instruction. This means the compiler is unable
    to schedule and packetize the instruction correctly because
    these instrution will not have any resource descritions.
    I don't have a specific test case, but the ps_call_nr.ll
    test failed with a proposed patch. (detail)
    by bcahoon
  101. DebugInfo: reduce DIE range verification on object files

    Relocatable content may have overlapping ranges until the sections are
    finalized.  This reduces the amount of verification that is done on an object
    file so that invalid errors are not raised. (detail)
    by Saleem Abdulrasool
  102. Update the other test. (detail)
    by brad
  103. Pass the nopie flag to the linker when linking with -pg. (detail)
    by brad
  104. Further split cpus test

    On GreenDragon, CodeGen/X86/cpus-no-x86_64.ll was still timing out even
    after breaking up the original test. I further split off the intel and
    AMD cpus which hopefully resolves this.

    http://green.lab.llvm.org/green/job/clang-stage2-cmake-RgSan/ (detail)
    by Jonas Devlieghere
  105. [x86] adjust tests to preserve behavior; NFC

    I'm planning a binop optimization that would subvert the
    domain forcing ops in these tests, so turning them into
    zexts. (detail)
    by spatel
  106. [llvm-readobj] Fix bugs with unrecognized types in switch statements

    Summary:
    Add missing breaks. Several functions used nested switch statements,
    where the outer switch branches based on the architecture, and the inner
    switch handles architecture-specific types. If the type isn't
    architecture-specific, break out to the generic types rather than fall
    through.

    getElfPtType: For GNU-style output, llvm-readobj prints
    "<unknown>: 0xnnnnnnnn" for an unrecognized segment type, unless the
    architecture is EM_ARM, EM_MIPS, or EM_MIPS_RS3_LE, in which case it
    prints "". This behavior appears accidental, so instead, always print
    the "<unknown>: 0xnnnnnnnn" string.

    Reviewers: pcc, grimar

    Reviewed By: grimar

    Subscribers: sdardis, javed.absar, arichardson, kristof.beyls, atanasyan, llvm-commits

    Differential Revision: https://reviews.llvm.org/D53730 (detail)
    by rprichard
  107. Fix PR39458 _LIBCPP_DEBUG breaks heterogeneous compare.

    The types/comparators passed to std::upper_bound and std::lower_bound
    are not required to provided to provide an operator</comp(...) which
    accepts the arguments in reverse order. Nor are the ranges required
    to have a strict weak ordering.

    However, in debug mode we attempted to check the result of a comparison
    with the arguments reversed, which may not compiler.

    This patch removes the use of the debug comparator for upper_bound
    and lower_bound.

    equal_range et al still use debug comparators when they call
    __upper_bound and __lower_bound.

    See llvm.org/PR39458 (detail)
    by ericwf
  108. Revert "[PassManager/Sanitizer] Enable usage of ported AddressSanitizer passes with -fsanitize=address"

    This reverts commit 8d6af840396f2da2e4ed6aab669214ae25443204 and commit
    b78d19c287b6e4a9abc9fb0545de9a3106d38d3d which causes slower build times
    by initializing the AddressSanitizer on every function run.

    The corresponding revisions are https://reviews.llvm.org/D52814 and
    https://reviews.llvm.org/D52739. (detail)
    by leonardchan
  109. [VFS] Add property 'fallthrough' that controls fallback to real file system.

    Default property value 'true' preserves current behavior. Value 'false' can be
    used to create VFS "root", file system that gives better control over which
    files compiler can use during compilation as there are no unpredictable
    accesses to real file system.

    Non-fallthrough use case changes how we treat multiple VFS overlay
    files. Instead of all of them being at the same level just above a real
    file system, now they are nested and subsequent overlays can refer to
    files in previous overlays.

    Change is done both in LLVM and Clang, corresponding LLVM commit is r345431.

    rdar://problem/39465552

    Reviewers: bruno, benlangmuir

    Reviewed By: bruno

    Subscribers: dexonsmith, cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D50539 (detail)
    by vsapsai
  110. [VFS] Add property 'fallthrough' that controls fallback to real file system.

    Default property value 'true' preserves current behavior. Value 'false' can be
    used to create VFS "root", file system that gives better control over which
    files compiler can use during compilation as there are no unpredictable
    accesses to real file system.

    Non-fallthrough use case changes how we treat multiple VFS overlay
    files. Instead of all of them being at the same level just above a real
    file system, now they are nested and subsequent overlays can refer to
    files in previous overlays.

    rdar://problem/39465552

    Reviewers: bruno, benlangmuir

    Reviewed By: bruno

    Subscribers: dexonsmith, cfe-commits, hiraditya

    Differential Revision: https://reviews.llvm.org/D50539 (detail)
    by vsapsai
  111. [DAGCombiner] rearrange code in narrowExtractedVectorBinOp(); NFC

    We can extend this code to handle many more cases
    if an extract is cheap, so prepping for that change. (detail)
    by spatel
  112. [ValueTracking] peek through shuffles in ComputeNumSignBits (PR37549)

    The motivating case is from PR37549:
    https://bugs.llvm.org/show_bug.cgi?id=37549

    The analysis improvement allows us to form a vector 'select' out of
    bitwise logic (the use of ComputeNumSignBits was added at rL345149).

    The smaller test shows another InstCombine improvement - we use
    ComputeNumSignBits to add 'nsw' to shift-left. But the negative
    test shows an example where we must not add 'nsw' - when the shuffle
    mask contains undef elements.

    Differential Revision: https://reviews.llvm.org/D53659 (detail)
    by spatel
  113. [LegalizeTypes] Stop DAGTypeLegalizer::getSETCCWidenedResultTy from creating illegal setccs. Add checks for valid setccs

    The DAGTypeLegalizer::getSETCCWidenedResultTy was widening the MaskVT, but the code in convertMask called after getSETCCWidenedResultTy had no idea this widening had occurred. So none of the operands were widened when convertMask created new setccs with the widened VT.

    This patch removes the widening and adds some asserts to getNode to validate the types of setccs to prevent issues like this in the future.

    Differential Revision: https://reviews.llvm.org/D53743 (detail)
    by ctopper
  114. Add docs+a script for building clang/LLVM with PGO

    Depending on who you ask, PGO grants a 15%-25% improvement in build
    times when using clang. Sadly, hooking everything up properly to
    generate a profile and apply it to clang isn't always straightforward.
    This script (and the accompanying docs) aim to make this process easier;
    ideally, a single invocation of the given script.

    In terms of testing, I've got a cronjob on my Debian box that's meant to
    run this a few times per week, and I tried manually running it on a puny
    Gentoo box I have (four whole Atom cores!). Nothing obviously broke.
    ¯\_(ツ)_/¯

    I don't know if we have a Python style guide, so I just shoved this
    through yapf with all the defaults on.

    Finally, though the focus is clang at the moment, the hope is that this
    is easily applicable to other LLVM-y tools with minimal effort (e.g.
    lld, opt, ...). Hence, this lives in llvm/utils and tries to be somewhat
    ambiguous about naming.

    Differential Revision: https://reviews.llvm.org/D53598 (detail)
    by George Burgess IV
  115. [Spectre] Fix MIR verifier errors in retpoline thunks

    Summary:
    The main challenge here is that X86InstrInfo::AnalyzeBranch doesn't
    understand the way we're using a CALL instruction as a branch, so we
    can't list the CallTarget MBB as a successor of the entry block. If we
    don't list it as a successor, then the AsmPrinter doesn't print a label
    for the MBB.

    Fix the issue by inserting our own label at the beginning of the call
    target block. We can rely on the AsmPrinter to always emit it, even
    though the block appears to be unreachable, but address-taken.

    Fixes PR38391.

    Reviewers: thegameg, chandlerc, echristo

    Subscribers: hiraditya, llvm-commits

    Differential Revision: https://reviews.llvm.org/D53653 (detail)
    by rnk
  116. Work around gcc.gnu.org/PR87766 (detail)
    by ericwf
  117. [NFC] Update comment in libc++ ABI changelog (detail)
    by Louis Dionne
  118. Fix test expectation to match reality. (detail)
    by rsmith
  119. Fix typo. (detail)
    by rsmith
  120. [ARM] Make InstrEmitter mark CPSR defs dead for Thumb1.

    The "dead" markings allow existing target-independent optimizations,
    like MachineSink, to trigger more frequently. The CPSR defs would have
    eventually been marked dead by LiveVariables, so this only affects
    optimizations before regalloc.

    The ARMBaseInstrInfo.cpp change is fixing a bug which is only visible
    with this change: the transform adds a use to an otherwise dead def
    of CPSR. This is covered by existing regression tests.

    thumb2-tbh.ll breaks for Thumb1 due to MachineLICM changing the
    generated code; I'll fix it in D53452.

    Differential Revision: https://reviews.llvm.org/D53453 (detail)
    by efriedma
  121. PR26547: alignof should return ABI alignment, not preferred alignment

    Summary:
    - Add `UETT_PreferredAlignOf` to account for the difference between `__alignof` and `alignof`
    - `AlignOfType` now returns ABI alignment instead of preferred alignment iff clang-abi-compat > 7, and one uses _Alignof or alignof

    Patch by Nicole Mazzuca!

    Differential Revision: https://reviews.llvm.org/D53207 (detail)
    by rsmith
  122. [clang-doc] Switch to default to all-TUs executor

    Since we generally want to document a whole project, not just one file.

    Differential Revision: https://reviews.llvm.org/D53170 (detail)
    by juliehockett
  123. [NFC][OpenMP] Add new test for parallel for code generation.

    Summary:
    This is a simple test of the parallel for code generation. It will be used to showcase the change introduced by patch D53443.


    Reviewers: ABataev, caomhin

    Reviewed By: ABataev

    Subscribers: guansong, cfe-commits

    Differential Revision: https://reviews.llvm.org/D53772 (detail)
    by gbercea
  124. [XRay] Use std::errc::invalid_argument instead of std::errc::bad_message

    This change should appease the mingw32 builds.

    Similar to r293725.

    Differential Revision: https://reviews.llvm.org/D53742 (detail)
    by kongyi
  125. Revert "[buildbot, windows] Update the way the visual studio environment is set"

    This reverts commit 61f2e26b7a4483c31547960691cb1c6b22266407. (detail)
    by stella.stamenova
  126. [PowerPC] Improve BUILD_VECTOR of 4 i32s

    Currently, for this node:
      vector int test(int a, int b, int c, int d) {
        return (vector int) { a, b, c, d };
      }

    we get this on Power9:
      mtvsrdd 34, 5, 3
      mtvsrdd 35, 6, 4
      vmrgow 2, 3, 2

    and this on Power8:
      mtvsrwz 0, 3
      mtvsrwz 1, 5
      mtvsrwz 2, 4
      mtvsrwz 3, 6
      xxmrghd 34, 1, 0
      xxmrghd 35, 3, 2
      vmrgow 2, 3, 2

    This can be improved to this on LE Power9:
      rldimi 3, 4, 32, 0
      rldimi 5, 6, 32, 0
      mtvsrdd 34, 5, 3

    and this on LE Power8
      rldimi 3, 4, 32, 0
      rldimi 5, 6, 32, 0
      mtvsrd 34, 3
      mtvsrd 35, 5
      xxpermdi 34, 35, 34, 0

    This patch updates the TD pattern to generate the optimized sequence for both
    Power8 and Power9 on LE and BE.

    Differential Revision: https://reviews.llvm.org/D53494 (detail)
    by lei
  127. Pointer types were treated as zero-size by MergeICmps

    Summary:
    The visitICmp analysis function would record compares of pointer types, as size 0. This causes the resulting memcmp() call to have the wrong total size.
    Found with "self-build" of clang/LLVM on Windows.

    Reviewers: christylee, trentxintong, courbet

    Reviewed By: courbet

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D53536 (detail)
    by christylee
  128. [ADT] Use explicit constructors for DenseMapPair to work around compiler issues.

    Inheriting constructors from std::pair caused clang-3.8 to treat some DenseMap
    initializer_list constructor calls as ambiguous, which broke several bots. This
    commit explicitly defines DenseMapPair's constructos to work around the issue.

    https://reviews.llvm.org/D53726 (detail)
    by Lang Hames
  129. [llvm-ar] Strip trailing \r and format

    Reviewers: mstorsjo, rupprecht, gbreynoo

    Reviewed By: rupprecht

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D53769 (detail)
    by maskray
  130. [X86] Stop promoting vector and/or/xor/andn to vXi64.

    These promotions add additional bitcasts to the SelectionDAG that can pessimize computeKnownBits/computeNumSignBits. It also seems to interfere with broadcast formation.

    This patch removes the promotion and adds isel patterns instead.

    The increased table size is more than I would like, but hopefully we can find some canonicalizations or other tricks to start pruning out patterns going forward.

    Differential Revision: https://reviews.llvm.org/D53268 (detail)
    by ctopper
  131. [X86] Add -LABEL to some FileCheck checks. NFC (detail)
    by ctopper
  132. [sanitizer] Improve macOS version detection

    Part of <https://reviews.llvm.org/D48445>. (detail)
    by kuba.brecka
  133. [llvm-ar] Add a dependency to BinaryFormat after rL345383 (detail)
    by maskray
  134. [DWARF][NFC] cleanup (mostly leftovers from the implementation of string offsets tables)
    Majority of the patch by David Blaikie.

    Differential Revision: https://reviews.llvm.org/D53741 (detail)
    by wolfgangp
  135. Fix incorrect use of aligned allocation in get_temporary_buffer. (detail)
    by ericwf
  136. XFAIL sized deallocation test with GCC (detail)
    by ericwf
  137. [tblgen] Improve comments in TargetInstrPredicate.td. NFC (detail)
    by adibiagio
  138. [Fixed Point Arithmetic] Refactor fixed point casts

    Summary:
    - Added names for some emitted values (such as "tobool" for
      the result of a cast to boolean).
    - Replaced explicit IRBuilder request for doing sext/zext/trunc
      by using CreateIntCast instead.
    - Simplify code for emitting satuation into one if-statement
      for clamping to max, and one if-statement for clamping to min.

    Reviewers: leonardchan, ebevhan

    Reviewed By: leonardchan

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D53707 (detail)
    by bjope
  139. Revert "UBSan blacklist workaround for bot timeouts"

    This reverts commit r335525. This workaround is no longer necessary
    because PR37929 has been fixed. (detail)
    by vlad.tsyrklevich
  140. [MIR] Simplify and move MIR test

    Also fixes a Machine Verifier issue. (detail)
    by thegameg
  141. [X86][SSE] Move 2-input limit up from getFauxShuffleMask to resolveTargetShuffleInputs

    Makes no difference to actual shuffle decoding yet, but merges all the existing limits in one place for when proper support is fixed. (detail)
    by rksimon
  142. [sanitizer] Fix mallopt test on Android.

    There is not a single common mallopt option between gnu/linux and
    android, so simply use a random number there. (detail)
    by eugenis
  143. Add jobs flag to check-cxx and check-libcxxabi rules so dependancies are built faster (detail)
    by ericwf
  144. [x86] commute blendvb with constant condition op to allow load folding
     
    This is a narrow fix for 1 of the problems mentioned in PR27780:
    https://bugs.llvm.org/show_bug.cgi?id=27780

    I looked at more general solutions, but it's a mess. We canonicalize shuffle masks
    based on the number of elements accessed from each operand, and that's not optional.
    If you remove that, we'll crash because we fail to match isel patterns. So I'm
    waiting until we're sure that we have blendvb with constant condition and then
    commuting based on the load potential. Other cases like blend-with-immediate are
    already handled elsewhere, so this is probably not a common problem anyway.

    I didn't use "MayFoldLoad" because that checks for one-use and in these cases, we've
    screwed that up by creating a temporary PSHUFB using these operands that we're counting
    on to be killed later. Undoing that didn't look like a simple task because it's
    intertwined with determining if we actually use both operands of the shuffle or not.a

    Differential Revision: https://reviews.llvm.org/D53737 (detail)
    by spatel
  145. [X86] Use existing pulled out VT variables. NFCI. (detail)
    by rksimon
  146. [SimpleLoopUnswitch] Unswitch by experimental.guard intrinsics

    This patch adds support of `llvm.experimental.guard` intrinsics to non-trivial
    simple loop unswitching. These intrinsics represent implicit control flow which
    has pretty much the same semantics as usual conditional branches. The
    algorithm of dealing with them is following:

    - Consider guards as unswitching candidates;
    - If a guard is considered the best candidate, turn it into a branch;
    - Apply normal unswitching algorithm on this branch.

    The patch has no compile time effect on code that does not contain any guards.

    Differential Revision: https://reviews.llvm.org/D53744
    Reviewed By: chandlerc (detail)
    by mkazantsev
  147. [ARM] Fix ARMCodeGenPrepare test cases

    While working on FileCheck producing better diagnostics in D53710, I noticed
    that our test case is broken in a few different ways. The test was running, but
    results were not checked as prefix CHECK-COMMON wasn't defined (which is what
    FileCheck should warn about). Also, the output was different in 2 cases because
    of recent changes in ARMCodeGenPrepare.

    Differential Revision: https://reviews.llvm.org/D53746 (detail)
    by sjoerdmeijer
  148. [CodeGen] Remove out operands from PATCHABLE_OP

    The current model requires 1 out operand, but it is not used nor created.

    This fixed an x86 machine verifier issue.

    Part of PR27481. (detail)
    by thegameg
  149. [llvm-ar] Access ADDLIB in llvm-ar via command line

    ADDLIB is called to add the contents of an archive to another archive.
    Previously this was only accessible through the use of an MRI script.

    With the use of a new "L" modifier, archive files can treated in the
    manner above when using quick append. (detail)
    by gbreynoo
  150. [AMDGPU] Add a pass to promote bitcast calls

    AMDGPU currently only supports direct calls, but at lower optimisation levels it
    fails to lower statically direct calls which appear indirect due to a bitcast.

    Add a pass to visit all CallSites and use CallPromotionUtils to "devirtualize"
    calls.

    Differential Revision: https://reviews.llvm.org/D52741 (detail)
    by scott.linder
  151. [clang-tidy] Re-commit: Add new 'readability-uppercase-literal-suffix' check (CERT DCL16-C, MISRA C:2012, 7.3, MISRA C++:2008, 2-13-4)

    Summary:
    Detects when the integral literal or floating point (decimal or hexadecimal)
    literal has non-uppercase suffix, and suggests to make the suffix uppercase,
    with fix-it.

    All valid combinations of suffixes are supported.

    ```
      auto x = 1;  // OK, no suffix.

      auto x = 1u; // warning: integer literal suffix 'u' is not upper-case

      auto x = 1U; // OK, suffix is uppercase.

      ...
    ```

    This is a re-commit, the original was reverted by me in
    rL345305 due to discovered bugs. (implicit code, template instantiation)
    Tests were added, and the bugs were fixed.
    I'm unable to find any further bugs, hopefully there aren't any..

    References:
    * [[ https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=87152241 | CERT DCL16-C ]]
    * MISRA C:2012, 7.3 - The lowercase character "l" shall not be used in a literal suffix
    * MISRA C++:2008, 2-13-4 - Literal suffixes shall be upper case

    Reviewers: JonasToth, aaron.ballman, alexfh, hokein, xazax.hun

    Reviewed By: aaron.ballman

    Subscribers: Eugene.Zelenko, mgorny, rnkovacs, cfe-commits

    Tags: #clang-tools-extra

    Differential Revision: https://reviews.llvm.org/D52670 (detail)
    by lebedevri
  152. Revert r345330 "Add MS ABI mangling for operator<=>."

    The generated MS manglings differ between 32- and 64-bit, and the test only
    expects the latter. See also the commit email thread.

    > Thanks to Cameron DaCamara at Microsoft for letting us know what their
    > chosen mangling is here! (detail)
    by hans
  153. Regenerate test (detail)
    by rksimon
  154. [llvm-mca] Fix -wreorder and -Wunused-private-field after r345376. NFC (detail)
    by sammccall
  155. [Codegen] - Implement basic .debug_loclists section emission (DWARF5).

    .debug_loclists is the DWARF 5 version of the .debug_loc.
    With that patch, it will be emitted when DWARF 5 is used.

    Differential revision: https://reviews.llvm.org/D53365 (detail)
    by grimar
  156. [llvm-mca] Removed dependency on mca::SourcMgr in some Views. NFC (detail)
    by adibiagio
  157. [SimpleLoopUnswitch] Make all checks before actual non-trivial unswitch

    We should be able to make all relevant checks before we actually start the non-trivial
    unswitching, so that we could guarantee that once we have started the transform,
    it will always succeed.

    Reviewed By: chandlerc
    Differential Revision: https://reviews.llvm.org/D53747 (detail)
    by mkazantsev
  158. Revert "Reapply: [Driver] Use forward slashes in most linker arguments"

    This reverts commit r345370, as it uncovered even more issues in
    tests with partial/inconsistent path normalization:
    http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/13562
    http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/886
    http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/20994

    In particular, these tests seem to have failed:
        Clang :: CodeGen/thinlto-diagnostic-handler-remarks-with-hotness.ll
        Clang :: CodeGen/thinlto-multi-module.ll
        Clang :: Driver/cuda-external-tools.cu
        Clang :: Driver/cuda-options.cu
        Clang :: Driver/hip-toolchain-no-rdc.hip
        Clang :: Driver/hip-toolchain-rdc.hip
        Clang :: Driver/openmp-offload-gpu.c

    At least the Driver tests could potentially be fixed by extending
    the path normalization to even more places, but the issues with the
    CodeGen tests are still unknown.

    In addition, a number of other tests seem to have been broken in
    other clang dependent tools such as clang-tidy and clangd. (detail)
    by mstorsjo
  159. Update the example of BS_Stroustrup to match what is done by clang-format

    Summary:
    reported here https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911561

    clang-format-7 -style="{BreakBeforeBraces: Stroustrup}" wasn't doing
    the same as the doc

    Reviewers: krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D53520 (detail)
    by sylvestre
  160. Reapply: [Driver] Use forward slashes in most linker arguments

    libtool inspects the output of $CC -v to detect what object files and
    libraries are linked in by default. When clang is built as a native
    windows executable, all paths are formatted with backslashes, and
    the backslashes cause each argument to be enclosed in quotes. The
    backslashes and quotes break further processing within libtool (which
    is implemented in shell script, running in e.g. msys) pretty badly.

    Between unix style pathes (that only work in tools that are linked
    to the msys runtime, essentially the same as cygwin) and proper windows
    style paths (with backslashes, that can easily break shell scripts
    and msys environments), the best compromise is to use windows style
    paths (starting with e.g. c:) but with forward slashes, which both
    msys based tools, shell scripts and native windows executables can
    cope with. This incidentally turns out to be the form of paths that
    GCC prints out when run with -v on windows as well.

    This change potentially makes the output from clang -v a bit more
    inconsistent, but it is isn't necessarily very consistent to begin with.

    Compared to the previous attempt in SVN r345004, this now does
    the same transformation on more paths, hopefully on the right set
    of paths so that all tests pass (previously some tests failed, where
    path fragments that were required to be identical turned out to
    use different path separators in different places). This now also
    is done only for non-windows, or cygwin/mingw targets, to preserve
    all backslashes for MSVC cases (where the paths can end up e.g. embedded
    into PDB files. (The transformation function itself,
    llvm::sys::path::convert_to_slash only has an effect when run on windows.)

    Differential Revision: https://reviews.llvm.org/D53066 (detail)
    by mstorsjo
  161. [SystemZ] Fix -Wcovered-switch-default as coding standard regulates (detail)
    by maskray
  162. [NFC] Add periods to CREDITS.txt (testing git-llvm)

    NFC commit to test git-llvm bridge for current GitHub monorepo. (detail)
    by Kristina Brooks
  163. [llvm-nm] Simplify. NFC

    Change a \t to spaces
    Change some zero-filling memcpy to aggregate initialization
    Delete redundant ArchiveName.clear() after declaration (detail)
    by maskray
  164. [PowerPC] Fix some missed optimization opportunities in combineSetCC

    For both operands are bool, short, int, long, long long, add the following optimization.
    1. 0-x == y --> x+y ==0
    2. 0-x != y --> x+y != 0

    Review: nemanjai
    Differential Revision: https://reviews.llvm.org/D53360 (detail)
    by helijia
  165. [PowerPC][NFC] Add tests for some missed optimization opportunities in combineSetCC

    For both operands are bool, short, int, long, long long, add the following optimization test case.
    1. 0-x == y --> x+y ==0
    2. 0-x != y --> x+y != 0

    Review: nemanjai
    Differential Revision: https://reviews.llvm.org/D53358 (detail)
    by helijia
  166. This reverts commit  r345357, It is wrong to create a new directory and put the test file into it. I am sorry for this. (detail)
    by helijia
  167. [NFC] Fix the regular expression for BE PPC in update_llc_test_checks.py

    Currently, the regular expression that matches the lines of assembly for PPC LE
    (ELFv2) does not work for the assembly for BE (ELFv1). This patch fixes it.

    Differential revision: https://reviews.llvm.org/D53059 (detail)
    by nemanjai
  168. PR31978: Don't crash if CodeGen sees a top-level BindingDecl. (detail)
    by rsmith
  169. [PowerPC] Keep vector int to fp conversions in vector domain

    At present a v2i16 -> v2f64 convert is implemented by extracts to scalar,
    scalar converts, and merge back into a vector. Use vector converts instead,
    with the int data permuted into the proper position and extended if necessary.

    Patch by RolandF.

    Differential revision: https://reviews.llvm.org/D53346 (detail)
    by nemanjai
  170. CodeGen: correct the case for swift 4.2, 5.0

    This corrects the leader for the swift names.  The encoding for 4.2 and
    5.0 differ by a single bit on the second character and were swapped. (detail)
    by Saleem Abdulrasool
  171. [Pipeliner] Mark swp-art-deps-rec.ll as REQUIRES: asserts after rL345319 (detail)
    by maskray
  172. Add dependency from SystemZAsmParser to SystemZAsmPrinter after rL345349

    This fixes -DBUILD_SHARED_LIBS=on build. The dependency is similar to that of X86's. (detail)
    by maskray
  173. [PowerPC][NFC] Add tests for some missed optimization opportunities in combineSetCC

    For both operands are bool, short, int, long, long long, add the following optimization test case.
    1. 0-x == y --> x+y ==0
    2. 0-x != y --> x+y != 0

    Review: nemanjai
    Differential Revision: https://reviews.llvm.org/D53358 (detail)
    by helijia
  174. Revert "[AArch64] Create proper memoperand for multi-vector stores"

    This reverts commit r345315, it was causing test failures on
    sanitizer-x86_64-linux-fast. (detail)
    by vlad.tsyrklevich
  175. add myself to the CREDITS.TXT (detail)
    by helijia
  176. [AArch64] Support Windows stack probe command-line arguments.

    Adds support for -mno-stack-arg-probe and -mstack-probe-size.

    (Not really happy copy-pasting code, but that's what we do for all the
    other Windows targets.)

    Differential Revision: https://reviews.llvm.org/D53617 (detail)
    by efriedma
  177. Teach the DominatorTree fallback to recalculation when applying updates to speedup JT (PR37929)

    Summary:
    This patch makes the dominatortree recalculate when applying updates with the size of the update vector larger than a threshold. Directly applying updates is usually slower than recalculating the whole domtree in this case. This patch fixes an issue which causes JT running slowly on some inputs.

    In bug 37929, the dominator tree is trying to apply 19,000+ updates several times, which takes several minutes.

    After this patch, the time used by DT.applyUpdates:

    | Input | Before (s) | After (s) | Speedup |
    | the 2nd Reproducer in 37929 | 297 | 0.15 | 1980x |
    | clang-5.0.0.0.bc | 9.7 | 4.3 | 2.26x |
    | clang-5.0.0.4.bc | 11.6 | 2.6 | 4.46x |

    Reviewers: kuhar, brzycki, trentxintong, davide, dmgreen, grosser

    Reviewed By: kuhar, brzycki

    Subscribers: kristina, llvm-commits

    Differential Revision: https://reviews.llvm.org/D53245 (detail)
    by sima
  178. Run the min/max tests agaist the header <charconv>. Fix that header so it passes. NFC. (detail)
    by marshall
  179. [SystemZ] Implement SystemZOperand::print()

    SystemZAsmParser can now handle -debug by printing the operands neatly to the
    output stream. Before this patch this lead to an llvm_unreachable().

    It seems that now '-mllvm -debug' does not cause any crashes anywhere (at
    least not on SPEC).

    Review: Ulrich Weigand
    https://reviews.llvm.org/D53328 (detail)
    by jonpa
  180. Dump public symbol records in pdb2yaml mode (detail)
    by zturner
  181. [SystemZ]  Pass the DAG pointer from SystemZAddressingMode::dump().

    In order to print the IR slot number for the memory operand, the DAG pointer
    must be passed to SDNode::dump().

    The isel-debug.ll test updated to also check for the IR Value reference being
    printed correctly.

    Review: Ulrich Weigand
    https://reviews.llvm.org/D53333 (detail)
    by jonpa
  182. Reland "[WebAssembly] LSDA info generation"

    Summary:
    This adds support for LSDA (exception table) generation for wasm EH.
    Wasm EH mostly follows the structure of Itanium-style exception tables,
    with one exception: a call site table entry in wasm EH corresponds to
    not a call site but a landing pad.

    In wasm EH, the VM is responsible for stack unwinding. After an
    exception occurs and the stack is unwound, the control flow is
    transferred to wasm 'catch' instruction by the VM, after which the
    personality function is called from the compiler-generated code. (Refer
    to WasmEHPrepare pass for more information on this part.)

    This patch:
    - Changes wasm.landingpad.index intrinsic to take a token argument, to
    make this 1:1 match with a catchpad instruction
    - Stores landingpad index info and catch type info MachineFunction in
    before instruction selection
    - Lowers wasm.lsda intrinsic to an MCSymbol pointing to the start of an
    exception table
    - Adds WasmException class with overridden methods for table generation
    - Adds support for LSDA section in Wasm object writer

    Reviewers: dschuff, sbc100, rnk

    Subscribers: mgorny, jgravelle-google, sunfish, llvm-commits

    Differential Revision: https://reviews.llvm.org/D52748 (detail)
    by aheejin
  183. [AArch64] Implement FP16FML intrinsics

    Generate the FP16FML intrinsics into arm_neon.h (AArch64 only for now).
    Add two new type modifiers to NeonEmitter to handle the new prototypes.
    Define __ARM_FEATURE_FP16FML when +fp16fml is enabled and guard the
    intrinsics with the macro in arm_neon.h.

    Based on a patch by Gao Yiling.

    Differential Revision: https://reviews.llvm.org/D53633 (detail)
    by bryanpkc
  184. [WebAssembly] Support EH instructions in InstPrinter

    Summary: This adds support for exception handling instructions to InstPrinter.

    Reviewers: dschuff, aardappel

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

    Differential Revision: https://reviews.llvm.org/D53634 (detail)
    by aheejin
  185. Fix in MachineOperand::printIRValueReference().

    Handle the case where getCurrentFunction() returns nullptr by passing -1 to
    printIRSlotNumber(). This will result in <badref> being printed instead of an
    assertion failure.

    Review: Francis Visoiu Mistrih
    https://reviews.llvm.org/D53333 (detail)
    by jonpa
  186. [analyzer] Fix a bug in "collapsed" graph viewer

    Nodes which have only one predecessor and only one successor can not
    always be hidden, even if all states are the same.
    An additional condition is needed: the predecessor may have only one successor.
    This can be seen on this example:

    ```
      A
    / \
    B   C
    \ /
      D
    ```

    Nodes B and C can not be hidden even if all nodes in the graph have the
    same state.

    Differential Revision: https://reviews.llvm.org/D53735 (detail)
    by George Karpenkov
  187. [analyzer] [RetainCountChecker] Do not invalidate references passed to constructors and operators

    Differential Revision: https://reviews.llvm.org/D53660 (detail)
    by George Karpenkov
  188. [analyzer] Remove custom rule for OSIterator in RetainCountChecker

    Differential Revision: https://reviews.llvm.org/D53628 (detail)
    by George Karpenkov
  189. [analyzer] Correct modelling of OSDynamicCast: eagerly state split

    Previously, OSDynamicCast was modeled as an identity.

    This is not correct: the output of OSDynamicCast may be zero even if the
    input was not zero (if the class is not of desired type), and thus the
    modeling led to false positives.

    Instead, we are doing eager state split:
    in one branch, the returned value is identical to the input parameter,
    and in the other branch, the returned value is zero.

    This patch required a substantial refactoring of canEval infrastructure,
    as now it can return different function summaries, and not just true/false.

    rdar://45497400

    Differential Revision: https://reviews.llvm.org/D53624 (detail)
    by George Karpenkov
  190. [AArch64] Implement FP16FML intrinsics

    Add LLVM intrinsics for the ARMv8.2-A FP16FML vector-form instructions. Add a
    DAG pattern to define the indexed-form intrinsics in terms of the vector-form
    ones, similarly to how the Dot Product intrinsics were implemented.

    Based on a patch by Gao Yiling.

    Differential Revision: https://reviews.llvm.org/D53632 (detail)
    by bryanpkc
  191. Delete test case. Assertions can't be tested. (detail)
    by aheejin
  192. Tidy up test case (detail)
    by aheejin
  193. Address comments

    - Add llvm-mc test case (and delete the old one)
    - Change report_fatal_error to assertions (detail)
    by aheejin
  194. [WebAssembly] Error out when block/loop markers mismatch

    Summary:
    Currently InstPrinter ignores if there are mismatches between block/loop
    and end markers by skipping the case if ControlFlowStack is empty. I
    guess it is better to explicitly error out in this case, because this
    signals invalid input.

    Reviewers: aardappel

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

    Differential Revision: https://reviews.llvm.org/D53620 (detail)
    by aheejin
  195. [SystemZ]  NFC reformatting in SystemZTargetTransformInfo.cpp

    Some lines more than 80 characters long reformatted. (detail)
    by jonpa
  196. Add MS ABI mangling for operator<=>.

    Thanks to Cameron DaCamara at Microsoft for letting us know what their
    chosen mangling is here! (detail)
    by rsmith

Started by user Mike Edwards

Rebuilds build #33

This run spent:

  • 3 ms waiting;
  • 40 min build duration;
  • 40 min total from scheduled to completion.

Identified problems

Ninja target failed

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

Compile Error

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

Link error

A link command has failed:
Indication 3

Missing test results

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