Started 5 days 13 hr ago
Took 4 hr 58 min on green-dragon-02

Failed Build #14202 (Jun 11, 2019 10:50:32 AM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 363085
  • http://llvm.org/svn/llvm-project/cfe/trunk : 363088
  • http://llvm.org/svn/llvm-project/compiler-rt/trunk : 363071
  • http://llvm.org/svn/llvm-project/debuginfo-tests/trunk : 362745
  • http://llvm.org/svn/llvm-project/zorg/trunk : 363061
  • http://llvm.org/svn/llvm-project/libcxx/trunk : 363075
  • http://llvm.org/svn/llvm-project/clang-tools-extra/trunk : 363068
Changes
  1. Remove redundant check for whether a DeclRefExpr that names a capture
    constitutes an odr-use.

    We now track this accurately on the DeclRefExpr. (detail)
    by rsmith
  2. For DR712: store on a MemberExpr whether it constitutes an odr-use. (detail)
    by rsmith
  3. For DR712: store on a DeclRefExpr whether it constitutes an odr-use.

    Begin restructuring to support the forms of non-odr-use reference
    permitted by DR712. (detail)
    by rsmith
  4. [PowerPC] Enable MachinePipeliner for P9 with -ppc-enable-pipeliner

    Implement necessary target hooks to enable MachinePipeliner for P9 only.
    The pass is off by default, can be enabled with -ppc-enable-pipeliner for P9.

    Differential Revision: https://reviews.llvm.org/D62164 (detail)
    by jsji
  5. [NFC][CodeGen] Add unary fneg tests to X86/fma-fneg-combine.ll (detail)
    by mcinally
  6. [Path] Set FD to -1 in moved-from TempFile

    When moving a temp file, explicitly set the file descriptor to -1 so we
    can never accidentally close the moved-from TempFile.

    Differential revision: https://reviews.llvm.org/D63087 (detail)
    by Jonas Devlieghere
  7. [InstCombine] Handle -(X-Y) --> (Y-X) for unary fneg when NSZ

    Differential Revision: https://reviews.llvm.org/D62612 (detail)
    by mcinally
  8. [docs][llvm-nm] Add darwin as --format option (detail)
    by jhenderson
  9. [InstCombine] Update fptrunc (fneg x)) -> (fneg (fptrunc x) for unary FNeg

    Differential Revision: https://reviews.llvm.org/D62629 (detail)
    by mcinally
  10. Fix docs build issue introduced by r363035

    Replacing '.. code-block:: llvm' by '::' is a quick fix to the
    build warning/error: Could not lex literal_block as "llvm". (detail)
    by s.desmalen
  11. lld-link: Reject more than one resource .obj file

    Users are exepcted to pass all .res files to the linker, which then
    merges all the resource in all .res files into a tree structure and then
    converts the final tree structure to a .obj file with .rsrc$01 and
    .rsrc$02 sections and then links that.

    If the user instead passes several .obj files containing such resources,
    the correct thing to do would be to have custom code to merge the trees
    in the resource sections instead of doing normal section merging -- but
    link.exe rejects if multiple resource obj files are passed in with
    LNK4078, so let lld-link do that too instead of silently writing broken
    .rsrc sections in that case.

    The only real way to run into this is if users manually convert .res
    files to .obj files by running cvtres and then handing the resulting
    .obj files to lld-link instead, which in practice likely never happens.

    (lld-link is slightly stricter than link.exe now: If link.exe is passed
    one .obj file created by cvtres, and a .res file, for some reason it
    just emits a warning instead of an error and outputs strange looking
    data. lld-link now errors out on mixed input like this.)

    One way users could accidentally run into this is the following
    scenario: If a .res file is passed to lib.exe, then lib.exe calls
    cvtres.exe on the .res file before putting it in the output .lib.
    (llvm-lib currently doesn't do this.)
    link.exe's /wholearchive seems to only add obj files referenced from the
    static library index, but lld-link current really adds all files in the
    archive. So if lld-link /wholearchive is used with .lib files produced
    by lib.exe and .res files were among the files handed to lib.exe, we
    previously silently produced invalid output, but now we error out.

    link.exe's /wholearchive semantics on the other hand mean that it
    wouldn't load the resource object files from the .lib file at all.
    Since this scenario is probably still an unlikely corner case,
    the difference in behavior here seems fine -- and lld-link might have to
    change to use link.exe's /wholearchive semantics in the future anyways.

    Vaguely related to PR42180.

    Differential Revision: https://reviews.llvm.org/D63109 (detail)
    by nico
  12. [X86] Regenerate CmpISel test for future patch (detail)
    by rksimon
  13. Revert r344630 Disable code object version 3 for HIP toolchain.

    Remove the workaround so that by default code object v3 is enabled. (detail)
    by yaxunl
  14. [libcxx] Make std::tuple<> trivially constructible

    Summary:
    This is not mandated by the Standard, but it's nonetheless a nice
    property to have, especially since it's so easy to implement. It
    also shrinks our bug list!

    PR41714

    Reviewers: mclow.lists, EricWF

    Subscribers: christof, jkorous, dexonsmith, libcxx-commits

    Tags: #libc

    Differential Revision: https://reviews.llvm.org/D62618 (detail)
    by Louis Dionne
  15. Fix for r42230, MSVC test failure in DependencyDirectivesSourceMinimizerTest.cpp

    r362459 introduced DependencyDirectivesSourceMinimizerTest.cpp, which
    hits an MSVC bug:
    developercommunity.visualstudio.com/content/problem/67300/stringifying-raw-string-literal.html

    This only happens when the parameter to a macro is stringified in the
    macro.  This patch removes the string from the assert so that the
    warning no longer happens. (detail)
    by erichkeane
  16. [docs][llvm-nm] Make --help help text consistent with other options (detail)
    by jhenderson
  17. [libcxx] Slightly improved policy for handling experimental features

    Summary:
    Following the discussion on the libcxx-dev mailing list
    (http://lists.llvm.org/pipermail/libcxx-dev/2019-May/000358.html),
    this implements the new policy for handling experimental features and
    their deprecation. We basically add a deprecation warning for
    std::experimental::filesystem, and we remove a bunch of <experimental/*>
    headers that were now empty.

    Reviewers: mclow.lists, EricWF

    Subscribers: mgorny, christof, jkorous, dexonsmith, arphaman, libcxx-commits, jfb

    Tags: #libc

    Differential Revision: https://reviews.llvm.org/D62428 (detail)
    by Louis Dionne
  18. Add FuzzedDataProvider helper class / single header library.

    Summary:
    This class is useful for writing fuzz target that have multiple inputs.

    Current CL imports the existing `FuzzedDataProvider` from Chromium
    without any modifications. Feel free to review it thoroughly, if you're
    interested, but I'd prefer changing the class in a follow up CL.

    The CL also introduces an exhaustive test for the library, as the behavior
    of `FuzzedDataProvider` must not change over time.

    In follow up CLs I'm planning on changing some implementation details
    (I can share a doc with some comments to be addressed). After that, we
    will document how `FuzzedDataProvider` should be used.

    I have tested this on Linux, Windows and Mac platforms.

    Reviewers: morehouse, metzman, kcc

    Reviewed By: morehouse

    Subscribers: metzman, thakis, rnk, mgorny, ormris, delcypher, #sanitizers, llvm-commits

    Tags: #llvm, #sanitizers

    Differential Revision: https://reviews.llvm.org/D62733 (detail)
    by dor1s
  19. [NFC][PowerPC] Header-dependent test requires "native"

    Two recently added tests mention complications for cross-compile, but
    they do not actually enforce native compilation. This patch makes them
    require native compilation to avoid the complications they mention. (detail)
    by hubert.reinterpretcast
  20. Reapply r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist"

    Following r363007, which reverted r362998, r362996, and r362994,
    reapply with adjustments for the CRLF differences encountered with
    Windows. Namely, the `-b` option of `diff` is employed, and the `grep`
    patterns have `$` replaced with `[[:space:]]*$`. (detail)
    by hubert.reinterpretcast
  21. [clang-tidy] Fix invalid read on destruction

    ...in case the clang tidy plugin is linked into the clang binary.

    Valgrind's memcheck reports:

    8949== Invalid read ==8866== Invalid read of size 4
    8866== at 0x164D248B: fetch_sub (atomic_base.h:524)
    8866== by 0x164D248B: llvm::ThreadSafeRefCountedBase<clang::ast_matchers::internal::DynMatcherInterface>::Release() const (IntrusiveRefCntPtr.h:98)
    8866== by 0x164CE16C: llvm::IntrusiveRefCntPtrInfo<clang::ast_matchers::internal::DynMatcherInterface>::release(clang::ast_matchers::internal::DynMatcherInterface*) (IntrusiveRefCntPtr.h:127)
    8866== by 0x164C8D5C: llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::release() (IntrusiveRefCntPtr.h:190)
    8866== by 0x164C3B87: llvm::IntrusiveRefCntPtr<clang::ast_matchers::internal::DynMatcherInterface>::~IntrusiveRefCntPtr() (IntrusiveRefCntPtr.h:157)
    8866== by 0x164BB4F1: clang::ast_matchers::internal::DynTypedMatcher::~DynTypedMatcher() (ASTMatchersInternal.h:341)
    8866== by 0x164BB529: clang::ast_matchers::internal::Matcher<clang::QualType>::~Matcher() (ASTMatchersInternal.h:496)
    8866== by 0xD7AE614: __cxa_finalize (cxa_finalize.c:83)
    8866== by 0x164B3082: ??? (in /d2/llvm/8/qtc/builds/DebugShared/lib/libclangTidyModernizeModule.so.8)
    8866== by 0x4010B72: _dl_fini (dl-fini.c:138)
    8866== by 0xD7AE040: __run_exit_handlers (exit.c:108)
    8866== by 0xD7AE139: exit (exit.c:139)
    8866== by 0xD78CB9D: (below main) (libc-start.c:344)
    8866== Address 0x19dd9bc8 is 8 bytes inside a block of size 16 free'd
    8866== at 0x4C3123B: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    8866== by 0x1469BB99: clang::ast_matchers::internal::(anonymous namespace)::TrueMatcherImpl::~TrueMatcherImpl() (ASTMatchersInternal.cpp:126)
    8866== by 0x1469BBC5: llvm::object_deleter<clang::ast_matchers::internal::(anonymous namespace)::TrueMatcherImpl>::call(void*) (ManagedStatic.h:30)
    8866== by 0x9ABFF26: llvm::ManagedStaticBase::destroy() const (ManagedStatic.cpp:72)
    8866== by 0x9ABFF94: llvm::llvm_shutdown() (ManagedStatic.cpp:84)
    8866== by 0x9A65232: llvm::InitLLVM::~InitLLVM() (InitLLVM.cpp:52)
    8866== by 0x14B0C8: main (driver.cpp:323)
    8866== Block was alloc'd at
    8866== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    8866== by 0x1469BB36: llvm::object_creator<clang::ast_matchers::internal::(anonymous namespace)::TrueMatcherImpl>::call() (ManagedStatic.h:24)
    8866== by 0x9ABFD99: llvm::ManagedStaticBase::RegisterManagedStatic(void* (*)(), void (*)(void*)) const (ManagedStatic.cpp:42)
    8866== by 0x1469B5DF: llvm::ManagedStatic<clang::ast_matchers::internal::(anonymous namespace)::TrueMatcherImpl, llvm::object_creator<clang::ast_matchers::internal::(anonymous namespace)::TrueMatcherImpl>, llvm::object_deleter<clang::ast_matchers::internal::(anonymous namespace)::TrueMatcherImpl> >::operator*() (ManagedStatic.h:67)
    8866== by 0x14698F9D: clang::ast_matchers::internal::DynTypedMatcher::trueMatcher(clang::ast_type_traits::ASTNodeKind) (ASTMatchersInternal.cpp:195)
    8866== by 0x164C9D3B: _ZNK5clang12ast_matchers8internal11TrueMatchercvNS1_7MatcherIT_EEINS_8QualTypeEEEv (ASTMatchersInternal.h:1247)
    8866== by 0x16501458: __static_initialization_and_destruction_0(int, int) (LoopConvertCheck.cpp:48)
    8866== by 0x16501976: _GLOBAL__sub_I_LoopConvertCheck.cpp (LoopConvertCheck.cpp:920)
    8866== by 0x4010732: call_init (dl-init.c:72)
    8866== by 0x4010732: _dl_init (dl-init.c:119)
    8866== by 0x40010C9: ??? (in /lib/x86_64-linux-gnu/ld-2.27.so)

    Differential Revision: https://reviews.llvm.org/D63129 (detail)
    by nik
  22. [libclang] Allow skipping warnings from all included files

    Depending on the included files and the used warning flags, e.g. -
    Weverything, a huge number of warnings can be reported for included
    files. As processing that many diagnostics comes with a performance
    impact and not all clients are interested in those diagnostics, add a
    flag to skip them.

    Differential Revision: https://reviews.llvm.org/D48116 (detail)
    by nik
  23. [llvm-dwarfdump] Simplify --ignore-case help text and documentation

    There was a typo in the --ignore-case help text that was copied into the
    llvm-dwarfdump command-guide. Additionally, this patch simplifies the
    wording, since it was unnecessarily verbose: the switch applies for
    searching in general and doesn't need explicitly stating different
    search modes (which might go out-of-date as options are added or
    removed).

    Reviwed by: JDevlieghere

    Differential Revision: https://reviews.llvm.org/D63133 (detail)
    by jhenderson
  24. [docs][llvm-nm] Fix documentation regarding llvm-nm reading stdin

    llvm-nm reads a.out NOT stdin when no input file is specified. This
    patch fixes the doc accordingly, and rephrases the surrounding sentence
    slightly.

    Reviewed by: grimar

    Differential Revision: https://reviews.llvm.org/D63135 (detail)
    by jhenderson
  25. [ARM] Fix a typo in the test from r363039 (detail)
    by ibiryukov
  26. [ASTImporter] Fix unhandled cases in ASTImporterLookupTable

    Summary:
    In most cases the FriendDecl contains the declaration of the befriended
    class as a child node, so it is discovered during the recursive
    visitation. However, there are cases when the befriended class is not a
    child, thus it must be fetched explicitly from the FriendDecl, and only
    then can we add it to the lookup table.
    (Note, this does affect only CTU and does not affect LLDB, because we
    cannot and do not use the ASTImporterLookupTable in LLDB.)

    Reviewers: a_sidorin, a.sidorin, shafik

    Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D62064 (detail)
    by martong
  27. [lldb-cmake-standalone] When invoking llmv-lit manually, make sure to build lldb-test-deps first (detail)
    by stefan.graenitz
  28. [RISCV] Add lowering of addressing sequences for PIC

    This patch allows lowering of PIC addresses by using PC-relative
    addressing for DSO-local symbols and accessing the address through the
    global offset table for non-DSO-local symbols.

    Differential Revision: https://reviews.llvm.org/D55303 (detail)
    by lewis-revill
  29. [RISCV][NFC] Add missing test file for D54093 (detail)
    by lewis-revill
  30. [RISCV][NFC] Add missing test files for D54091 (detail)
    by lewis-revill
  31. [RISCV] Add inline asm constraints I, J & K for RISC-V

    This allows the constraints I, J & K to be used in inline asm for
    RISC-V, with the following semantics (equivalent to GCC):

    I: Any 12-bit signed immediate.
    J: Integer zero only.
    K: Any 5-bit unsigned immediate.

    See the GCC definitions here:
    https://gcc.gnu.org/onlinedocs/gccint/Machine-Constraints.html

    Differential Revision: https://reviews.llvm.org/D54091 (detail)
    by lewis-revill
  32. [RISCV] Lower inline asm constraints I, J & K for RISC-V

    This validates and lowers arguments to inline asm nodes which have the
    constraints I, J & K, with the following semantics (equivalent to GCC):

    I: Any 12-bit signed immediate.
    J: Immediate integer zero only.
    K: Any 5-bit unsigned immediate.

    Differential Revision: https://reviews.llvm.org/D54093 (detail)
    by lewis-revill
  33. [clang-tidy] Fix typo in bugprone-string-constructor.

    s/bigger then/bigger than/ (detail)
    by courbet
  34. Make sure a test from r363036 does not write into a working directory

    It breaks if build directory is not writable. This change is required
    to fix our integrate.

    Also add a flush() call, otherwise time trace option does not produce
    the full output. (detail)
    by ibiryukov
  35. [ARM] First MVE instructions: scalar shifts.

    This introduces a new decoding table for MVE instructions, and starts
    by adding the family of scalar shift instructions that are part of the
    MVE architecture extension: saturating shifts within a single GPR, and
    long shifts across a pair of GPRs (both saturating and normal).

    Some of these shift instructions have only 3-bit register fields in
    the encoding, with the low bit fixed. So they can only address an odd
    or even numbered GPR (depending on the operand), and therefore I add
    two new register classes, GPREven and GPROdd.

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

    Change-Id: Iad95d5f83d26aef70c674027a184a6b1e0098d33 (detail)
    by miyuki
  36. Let writeWindowsResourceCOFF() take a TimeStamp parameter

    For lld, pass in Config->Timestamp (which is set based on lld's
    /timestamp: and /Brepro flags). Since the writeWindowsResourceCOFF()
    data is only used in-memory by LLD and the obj's timestamp isn't used
    for anything in the output, this doesn't change behavior.

    For llvm-cvtres, add an optional /timestamp: parameter, and use the
    current behavior of calling time() if the parameter is not passed in.

    This doesn't really change observable behavior (unless someone passes
    /timestamp: to llvm-cvtres, which wasn't possible before), but it
    removes the last unqualified call to time() from llvm/lib, which seems
    like a good thing.

    Differential Revision: https://reviews.llvm.org/D63116 (detail)
    by nico
  37. [NFC] Fixed arm/aarch64 test (detail)
    by xbolva00
  38. [TargetLowering] Add allowsMemoryAccess(MachineMemOperand) helper wrapper. NFCI.

    As suggested by @arsenm on D63075 - this adds a TargetLowering::allowsMemoryAccess wrapper that takes a Load/Store node's MachineMemOperand to handle the AddressSpace/Alignment arguments and will also implicitly handle the MachineMemOperand::Flags change in D63075. (detail)
    by rksimon
  39. Fixed google-readability-casting test to work in c++17

    Summary: Fixed google-readability-casting.cpp to get tests working in c++17

    Reviewers: gribozavr, hokein

    Reviewed By: gribozavr

    Subscribers: cfe-commits

    Tags: #clang

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

    Patch by Shaurya Gupta. (detail)
    by gribozavr
  40. [DebugInfo@O2][LoopVectorize] pr39024: Vectorized code linenos step through loop even after completion

    Summary:
    Bug: https://bugs.llvm.org/show_bug.cgi?id=39024

    The bug reports that a vectorized loop is stepped through 4 times and each step through the loop seemed to show a different path. I found two problems here:

    A) An incorrect line number on a preheader block (for.body.preheader) instruction causes a step into the loop before it begins.
    B) Instructions in the middle block have different line numbers which give the impression of another iteration.

    In this patch I give all of the middle block instructions the line number of the scalar loop latch terminator branch. This seems to provide the smoothest debugging experience because the vectorized loops will always end on this line before dropping into the scalar loop. To solve problem A I have altered llvm::SplitBlockPredecessors to accommodate loop header blocks.

    I have set up a separate review D61933 for a fix which is required for this patch.

    Reviewers: samsonov, vsk, aprantl, probinson, anemet, hfinkel, jmorse

    Reviewed By: hfinkel, jmorse

    Subscribers: jmorse, javed.absar, eraman, kcc, bjope, jmellorcrummey, hfinkel, gbedwell, hiraditya, zzheng, llvm-commits

    Tags: #llvm, #debug-info

    Differential Revision: https://reviews.llvm.org/D60831 (detail)
    by orlandoch
  41. [llvm-readobj] - Do not use precompiled binary in elf-broken-dynsym-link.test

    Now we can remove the "TODO" since https://bugs.llvm.org/show_bug.cgi?id=42216
    was fixed. (detail)
    by grimar
  42. [llvm-dwarfdump] Add -o to help text and remove --out-file from doc

    -o is in the documentation, but not in the llvm-dwarfdump help text.
    This patch adds it by inverting the -o and --out-file aliasing. It also
    removes --out-file from the documentation, since we don't really want
    people to be using this switch in practice.

    Reviewed by: aprantl, JDevlieghere, dblaikie

    Differential Revision: https://reviews.llvm.org/D63013 (detail)
    by jhenderson
  43. [ARM] Fix unused-variable warning in rL363039.

    The variable `OffsetMask` is currently only used in an assertion, so
    if assertions are compiled out and -Werror is enabled, it becomes a
    build failure. (detail)
    by statham
  44. [yaml2elf] - Check we are able to set custom sh_link for .symtab/.dynsym

    Allow using both custom numeric and string values for Link field of the
    dynamic and regular symbol tables.

    Differential revision: https://reviews.llvm.org/D63077 (detail)
    by grimar
  45. [Frontend] Avoid creating auxilary files during a unit test. NFC

    A test added in r363009 logs diagnostics into a file inside current
    working directory. This breaks when the directory is not writable.

    This looks like a debugging output in the first place, the test passes
    without it anyway. (detail)
    by ibiryukov
  46. [DAGCombine] GetNegatedExpression - constant float vector support (PR42105)

    Add support for negation of constant build vectors.

    Differential Revision: https://reviews.llvm.org/D62963 (detail)
    by rksimon
  47. [ARM] Add the non-MVE instructions in Arm v8.1-M.

    This adds support for the new family of conditional selection /
    increment / negation instructions; the low-overhead branch
    instructions (e.g. BF, WLS, DLS); the CLRM instruction to zero a whole
    list of registers at once; the new VMRS/VMSR and VLDR/VSTR
    instructions to get data in and out of 8.1-M system registers,
    particularly including the new VPR register used by MVE vector
    predication.

    To support this, we also add a register name 'zr' (used by the CSEL
    family to force one of the inputs to the constant 0), and operand
    types for lists of registers that are also allowed to include APSR or
    VPR (used by CLRM). The VLDR/VSTR instructions also need a new
    addressing mode.

    The low-overhead branch instructions exist in their own separate
    architecture extension, which we treat as enabled by default, but you
    can say -mattr=-lob or equivalent to turn it off.

    Reviewers: dmgreen, samparker, SjoerdMeijer, t.p.northover

    Reviewed By: samparker

    Subscribers: miyuki, javed.absar, kristof.beyls, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D62667 (detail)
    by statham
  48. [compiler-rt] Update comments in asan header to doxygen format; NFC.

    Add description to undocumented functions.
    Improve spelling, grammar and formatting.

    Patch by: Craig Flores, Filipe Cabecinhas, Pierre Gousseau

    Reviewed By: Johannes Doerfert

    Differential Revision: https://reviews.llvm.org/D62245 (detail)
    by pgousseau
  49. [clangd] Add missing header guard. (detail)
    by hokein
  50. [Support][Test] Time profiler: add regression test

    Summary:
    Add output to `llvm::errs()` when `-ftime-trace` option is enabled,
    add regression test checking this option works as expected.

    Reviewers: thakis, aganea

    Subscribers: cfe-commits, llvm-commits

    Tags: #clang, #llvm

    This is recommit of r362821

    Differential Revision: https://reviews.llvm.org/D61914 (detail)
    by anton-afanasyev
  51. Change semantics of fadd/fmul vector reductions.

    This patch changes how LLVM handles the accumulator/start value
    in the reduction, by never ignoring it regardless of the presence of
    fast-math flags on callsites. This change introduces the following
    new intrinsics to replace the existing ones:

      llvm.experimental.vector.reduce.fadd -> llvm.experimental.vector.reduce.v2.fadd
      llvm.experimental.vector.reduce.fmul -> llvm.experimental.vector.reduce.v2.fmul

    and adds functionality to auto-upgrade existing LLVM IR and bitcode.

    Reviewers: RKSimon, greened, dmgreen, nikic, simoll, aemerson

    Reviewed By: nikic

    Differential Revision: https://reviews.llvm.org/D60261 (detail)
    by s.desmalen
  52. [clangd] Fix gcc warning by removing extra ";" (detail)
    by uabelho
  53. Add LLVM lab buildslaves for Windows (armv7 target).

    The ARMV7 buildslave configurations for a new hardware in LLVM lab.

    Requested for the production buildbot http://lab.llvm.org:8011

    Patch by Vlad Vereschaka.

    Differential Revision: https://reviews.llvm.org/D63103 (detail)
    by gkistanova
  54. [X86] Add load folding isel patterns to scalar_math_patterns and AVX512_scalar_math_fp_patterns.

    Also add a FIXME for the peephole pass not being able to handle this. (detail)
    by ctopper
  55. Add a test for is_base_of and incomplete types. Because this trait uses a compiler intrinsic which was broken in many clangs, have lots of XFAILs. (detail)
    by marshall
  56. Revert CMake: Make most target symbols hidden by default

    This reverts r362990 (git commit 374571301dc8e9bc9fdd1d70f86015de198673bd)

    This was causing linker warnings on Darwin:

    ld: warning: direct access in function 'llvm::initializeEvexToVexInstPassPass(llvm::PassRegistry&)'
    from file '../../lib/libLLVMX86CodeGen.a(X86EvexToVex.cpp.o)' to global weak symbol
    'void std::__1::__call_once_proxy<std::__1::tuple<void* (&)(llvm::PassRegistry&),
    std::__1::reference_wrapper<llvm::PassRegistry>&&> >(void*)' from file '../../lib/libLLVMCore.a(Verifier.cpp.o)'
    means the weak symbol cannot be overridden at runtime. This was likely caused by different translation
    units being compiled with different visibility settings. (detail)
    by tstellar
  57. Symbolize: Make DWPName a symbolizer option instead of an argument to symbolize{,Inlined}Code.

    This makes the interface simpler and more consistent with the interface for
    .dSYM files and fixes a bug where llvm-symbolizer would not read the dwp if
    it was asked to symbolize data before symbolizing code.

    Differential Revision: https://reviews.llvm.org/D63114 (detail)
    by pcc
  58. Symbolize: Replace the Options constructor with in-class initialization. NFCI.

    This is not only less code but also clearer at the use site.

    Differential Revision: https://reviews.llvm.org/D63113 (detail)
    by pcc
  59. AtomicExpand: Don't crash on non-0 alloca

    This now produces garbage on AMDGPU with a call to an nonexistent,
    anonymous libcall but won't assert. (detail)
    by arsenm
  60. AMDGPU: Expand < 32-bit atomics

    Also fix AtomicExpand asserting on atomicrmw fadd/fsub. (detail)
    by arsenm
  61. gn build: Merge r362939 (detail)
    by nico
  62. gn build: Merge r362972 (detail)
    by nico
  63. [X86] Enable intrinsics that convert float and bf16 data to each other

    Scalar version :
    _mm_cvtsbh_ss , _mm_cvtness_sbh

    Vector version:
    _mm512_cvtpbh_ps , _mm256_cvtpbh_ps
    _mm512_maskz_cvtpbh_ps , _mm256_maskz_cvtpbh_ps
    _mm512_mask_cvtpbh_ps , _mm256_mask_cvtpbh_ps

    Patch by Shengchen Kan (skan)

    Differential Revision: https://reviews.llvm.org/D62363 (detail)
    by pengfei
  64. llvm-lib: Implement /machine: argument

    And share some code with lld-link.

    While here, also add a FIXME about PR42180 and merge r360150 to llvm-lib.

    Differential Revision: https://reviews.llvm.org/D63021 (detail)
    by nico
  65. Setup testing target dependencies for default runtimes

    Summary: The default runtimes targets aren't getting their dependencies configured correctly which results in check-runtimes failing when built from a clean build.

    Reviewers: phosek, compnerd

    Reviewed By: phosek

    Subscribers: mgorny, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D63107 (detail)
    by cbieneman
  66. XFAIL a couple of CTAD tests on clang-6; it gives different error messages than clang 7/8/9 (detail)
    by marshall
  67. [AArch64] Add more CPUs to host detection

    Returns "cortex-a73" for 3rd and 4th gen Kryo; not precisely correct,
    but close enough.

    Differential Revision: https://reviews.llvm.org/D63099 (detail)
    by kongyi
  68. [MIR-Canon] Fixing non-determinism that was breaking bots (NFC).

    An earlier fix of a subtle iterator invalidation bug had uncovered a
    nondeterminism that was present in the MultiUsers bag. Problem was that
    MultiUsers was being looked up using pointers.

    This patch is an NFC change that numbers each multiuser and processes each in
    numbered order. This fixes the test failure on netbsd and will likely fix the
    green-dragon bot too. (detail)
    by zer0
  69. Break a couple more false dependencies on target libraries

    Summary: Repeat r361567 for a few more tools.

    Reviewers: bogner

    Reviewed By: bogner

    Subscribers: mgorny, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D62438 (detail)
    by dsanders
  70. [Frontend] SetUpDiagnosticLog should handle unowned diagnostic consumer
    in the compiler

    The function SetUpDiagnosticLog that was called from createDiagnostics didn't
    handle the case where the diagnostics engine didn't own the diagnostics consumer.
    This is a potential problem for a clang tool, in particular some of the follow-up
    patches for clang-scan-deps will need this fix.

    Differential Revision: https://reviews.llvm.org/D63101 (detail)
    by arphaman
  71. [dsymutil] Remove stale comment (NFC)

    The comment was no longer relevant after r362621. (detail)
    by Jonas Devlieghere
  72. Revert r362994 & co "[analyzer][tests] Add normalize_plist to replace diff_plist"

    Reverts r362998, r362996, and r362994 because the tests do not pass on
    Windows due to CRLF changes. Adding back `-w` to diff is not enough, the
    new grep substitution doesn't work on Windows, and fixing it is
    non-trivial. (detail)
    by rnk
  73. [Support] Explicitly detect recursive response files

    Previous detection relied upon an arbitrary hard coded limit of 21
    response files, which some code bases were running up against.

    The new detection maintains a stack of processing response files and
    explicitly checks if a newly encountered file is in the current stack.
    Some bookkeeping data is necessary in order to detect when to pop the
    stack.

    Patch by Chris Glover.

    Differential Revision: https://reviews.llvm.org/D62798 (detail)
    by smeenai
  74. [PGO] Fix the buildbot failure in r362995

    Fixed one unused variable warning. (detail)
    by xur
  75. Recommit r362649, which was reverted in r262680 because of bugs in std::to_chars (which have now been fixed). Speedup to_string and to_wstring for integers using stack buffer and SSO (detail)
    by marshall
  76. [Tests] Adjust LFTR dead-iv tests to bypass undef cases

    As pointed out by Nikita in review, undef and poison need to be handled separately.  Since we're no longer expecting any test improvements - just fixes for miscompiles - update the tests to bypass the existing undef check. (detail)
    by reames
  77. [NFC][CodeGen] Forgot 2 unary FNeg tests in X86/fma-intrinsics-canonical.ll

    Follow-up to r362999. (detail)
    by mcinally
  78. Require stdcall etc parameters to be complete on ODR use

    Functions using stdcall, fastcall, or vectorcall with C linkage mangle
    in the size of the parameter pack. Calculating the size of the pack
    requires the parameter types to complete, which may require template
    instantiation.

    Previously, we would crash during IRgen when requesting the size of
    incomplete or uninstantiated types, as in this reduced example:
      struct Foo;
      void __fastcall bar(struct Foo o);
      void (__fastcall *fp)(struct Foo) = &bar;

    Reported in Chromium here: https://crbug.com/971245

    Differential Revision: https://reviews.llvm.org/D62975 (detail)
    by rnk
  79. [NFC][CodeGen] Add unary FNeg tests to X86/fma-intrinsics-canonical.ll (detail)
    by mcinally
  80. [analyzer][tests] Use normalize_plist in place of diff_plist (`tail` cases)

    Summary:
    The `%diff_plist` lit substitution invokes `diff` with a non-portable
    `-I` option. The intended effect can be achieved by normalizing the
    inputs to `diff` beforehand. Such normalization can be done with
    `grep -Ev`, which is also used by other tests.

    This patch applies the change (adjusted for review comments) described
    in http://lists.llvm.org/pipermail/cfe-dev/2019-April/061904.html
    mechanically to the cases where the output file is piped to
    `%diff_plist` via `tail`. `%diff_plist` is then, being unused, removed.

    The changes were applied via a script.

    Reviewers: NoQ, sfertile, xingxue, jasonliu, daltenty

    Subscribers: xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, Charusso, jsji, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D62951 (detail)
    by hubert.reinterpretcast
  81. Fix typo from r362990 to fix Windows builds (detail)
    by tstellar
  82. [analyzer][tests] Use normalize_plist in place of diff_plist (`cat` cases)

    Summary:
    The `%diff_plist` lit substitution invokes `diff` with a non-portable
    `-I` option. The intended effect can be achieved by normalizing the
    inputs to `diff` beforehand. Such normalization can be done with
    `grep -Ev`, which is also used by other tests.

    This patch applies the change (adjusted for review comments) described
    in http://lists.llvm.org/pipermail/cfe-dev/2019-April/061904.html
    mechanically to the cases where the output file is piped to
    `%diff_plist` via `cat`.

    The changes were applied via a script, except that
    `clang/test/Analysis/NewDelete-path-notes.cpp` and
    `clang/test/Analysis/plist-macros-with-expansion.cpp` were each adjusted
    for the line-continuation on the relevant `RUN` step.

    Reviewers: NoQ, sfertile, xingxue, jasonliu, daltenty

    Subscribers: xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, Charusso, jsji, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D62950 (detail)
    by hubert.reinterpretcast
  83. [PGO] Handle cases of non-instrument BBs

    As shown in PR41279, some basic blocks (such as catchswitch) cannot be
    instrumented. This patch filters out these BBs in PGO instrumentation.
    It also sets the profile count to the fail-to-instrument edge, so that we
    can propagate the counts in the CFG.

    Differential Revision: https://reviews.llvm.org/D62700 (detail)
    by xur
  84. [analyzer][tests] Add normalize_plist to replace diff_plist

    Summary:
    The `%diff_plist` lit substitution invokes `diff` with a non-portable
    `-I` option. The intended effect can be achieved by normalizing the
    inputs to `diff` beforehand. Such normalization can be done with
    `grep -Ev`, which is also used by other tests.

    This patch applies the change (adjusted for review comments) described
    in http://lists.llvm.org/pipermail/cfe-dev/2019-April/061904.html to the
    specific case shown in the list message. Mechanical changes to the other
    affected files will follow in later patches.

    Reviewers: NoQ, sfertile, xingxue, jasonliu, daltenty

    Reviewed By: NoQ

    Subscribers: xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, Charusso, jsji, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D62949 (detail)
    by hubert.reinterpretcast
  85. [Tests] Split an LFTR dead-iv case

    There are two interesting sub-cases here.  1) Switching IVs is legal, but only in pre-increment form.  and 2) Switching IVs is legal, and so is post-increment form. (detail)
    by reames
  86. [PlistSupport] Produce a newline to end plist output files

    Summary:
    As suggested in the review of D62949, this patch updates the plist
    output to have a newline at the end of the file. This makes it so that
    the plist output file qualifies as a POSIX text file, which increases
    the consumability of the generated plist file in relation to various
    tools.

    Reviewers: NoQ, sfertile, xingxue, jasonliu, daltenty

    Reviewed By: NoQ, xingxue

    Subscribers: jsji, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D63041 (detail)
    by hubert.reinterpretcast
  87. [CUDA] Fix grep pattern in cuda-types.cu

    Summary:
    vertical-line is not a BRE special character.

    POSIX.1-2017 XBD Section 9.3.2 indicates that the interpretation of `\|`
    is undefined. This patch uses EREs instead.

    Additionally, the pattern is further fixed so that `SIZEOF` and `WIDTH`
    macros are checked.

    Reviewers: jlebar, daltenty, xingxue, jasonliu, tra

    Reviewed By: tra

    Subscribers: jfb, jsji, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D63029 (detail)
    by hubert.reinterpretcast
  88. CMake: Make most target symbols hidden by default

    Summary:
    For builds with LLVM_BUILD_LLVM_DYLIB=ON and BUILD_SHARED_LIBS=OFF
    this change makes all symbols in the target specific libraries hidden
    by default.

    A new macro called LLVM_EXTERNAL_VISIBILITY has been added to mark symbols in these
    libraries public, which is mainly needed for the definitions of the
    LLVMInitialize* functions.

    This patch reduces the number of public symbols in libLLVM.so by about
    25%.  This should improve load times for the dynamic library and also
    make abi checker tools, like abidiff require less memory when analyzing
    libLLVM.so

    One side-effect of this change is that for builds with
    LLVM_BUILD_LLVM_DYLIB=ON and LLVM_LINK_LLVM_DYLIB=ON some unittests that
    access symbols that are no longer public will need to be statically linked.

    Before and after public symbol counts (using gcc 8.2.1, ld.bfd 2.31.1):
    nm before/libLLVM-9svn.so | grep ' [A-Zuvw] ' | wc -l
    36221
    nm after/libLLVM-9svn.so | grep ' [A-Zuvw] ' | wc -l
    26278

    Reviewers: chandlerc, beanz, mgorny, rnk, hans

    Reviewed By: rnk, hans

    Subscribers: Jim, hiraditya, michaelplatings, chapuni, jholewinski, arsenm, dschuff, jyknight, dylanmckay, sdardis, nemanjai, jvesely, nhaehnle, javed.absar, sbc100, jgravelle-google, aheejin, kbarton, fedor.sergeev, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, zzheng, edward-jones, mgrang, atanasyan, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, kristina, jsji, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D54439 (detail)
    by tstellar
  89. [GlobalISel] Translate memset/memmove/memcpy from undef ptrs into nops

    If the source is undef, then just don't do anything.

    This matches SelectionDAG's behaviour in SelectionDAG.cpp.

    Also add a test showing that we do the right thing here.
    (irtranslator-memfunc-undef.ll)

    Differential Revision: https://reviews.llvm.org/D63095 (detail)
    by paquette
  90. [NFC][CodeGen] Add unary FNeg tests to some X86/ and XCore/ tests. (detail)
    by mcinally
  91. Implement deduction guides for map/multimap. Reviewed as https://reviews.llvm.org/D58587. Thanks to Quuxplusone for the submission. (detail)
    by marshall
  92. [demangle] Vendor extended types shouldn't be considered substitution candidates (detail)
    by epilk
  93. Factor out a helper function for readability and reuse in a future patch [NFC] (detail)
    by reames
  94. [Docs] [llvm-mca] Point out a caveat for using llvm-mca markers in source code.

    Summary: See: https://bugs.llvm.org/show_bug.cgi?id=42173

    Reviewers: andreadb, mattd, RKSimon, spatel

    Reviewed By: andreadb

    Subscribers: tschuett, gbedwell, llvm-commits, andreadb

    Tags: #llvm

    Patch by Max Marrone (maxpm)! Thanks!

    Differential Revision: https://reviews.llvm.org/D63040 (detail)
    by mattd
  95. [clangd] Remove old hidden -use-dex-index flag (detail)
    by sammccall
  96. [Tests] Add tests for D62939 (miscompiles around dead pointer IVs)

    Flesh out a collection of tests for switching to a dead IV within LFTR, both for the current miscompile, and for some cases which we should be able to handle via simple reasoning. (detail)
    by reames
  97. [LFTR] Use recomputed BE count

    This was discussed as part of D62880.  The basic thought is that computing BE taken count after widening should produce (on average) an equally good backedge taken count as the one before widening.  Since there's only one test in the suite which is impacted by this change, and it's essentially equivelent codegen, that seems to be a reasonable assertion.  This change was separated from r362971 so that if this turns out to be problematic, the triggering piece is obvious and easily revertable.

    For the nestedIV example from elim-extend.ll, we end up with the following BE counts:
    BEFORE: (-2 + (-1 * %innercount) + %limit)
    AFTER: (-1 + (sext i32 (-1 + %limit) to i64) + (-1 * (sext i32 %innercount to i64))<nsw>)

    Note that before is an i32 type, and the after is an i64.  Truncating the i64 produces the i32. (detail)
    by reames
  98. [PowerPC][HTM]Fix $zero is not a GPRC register for builtin_ttest

    This was found during HTM cleanup.
    Adding a test for builtin_ttest would expose following issue.

    *** Bad machine code: Illegal physical register for instruction ***
    - function:    test10
    - basic block: %bb.0 entry (0xf0e57497b58)
    - instruction: %5:crrc0 = TABORTWCI 0, $zero, 0
    - operand 2:   $zero
      $zero is not a GPRC register.
    LLVM ERROR: Found 1 machine code errors.

    Differential Revision: https://reviews.llvm.org/D63079 (detail)
    by jsji
  99. [llvm-objcopy] Fix SHT_GROUP ordering.

    Summary:
    When llvm-objcopy sorts sections during finalization, it only sorts based on the offset, which can cause the group section to come after the sections it contains. This causes link failures when using gold to link objects created by llvm-objcopy.

    Fix this for now by copying GNU objcopy's behavior of placing SHT_GROUP sections first. In the future, we may want to remove this sorting entirely to more closely preserve the input file layout.

    This fixes https://bugs.llvm.org/show_bug.cgi?id=42052.

    Reviewers: jakehehrlich, jhenderson, MaskRay, espindola, alexshap

    Reviewed By: MaskRay

    Subscribers: phuongtrang148993, emaste, arichardson, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D62620 (detail)
    by rupprecht
  100. [Analysis] add unit test file for VectorUtils; NFC (detail)
    by spatel
  101. Prepare for multi-exit LFTR [NFC]

    This change does the plumbing to wire an ExitingBB parameter through the LFTR implementation, and reorganizes the code to work in terms of a set of individual loop exits. Most of it is fairly obvious, but there's one key complexity which makes it worthy of consideration. The actual multi-exit LFTR patch is in D62625 for context.

    Specifically, it turns out the existing code uses the backedge taken count from before a IV is widened. Oddly, we can end up with a different (more expensive, but semantically equivelent) BE count for the loop when requerying after widening.  For the nestedIV example from elim-extend, we end up with the following BE counts:
    BEFORE: (-2 + (-1 * %innercount) + %limit)
    AFTER: (-1 + (sext i32 (-1 + %limit) to i64) + (-1 * (sext i32 %innercount to i64))<nsw>)

    This is the only test in tree which seems sensitive to this difference. The actual result of using the wider BETC on this example is that we actually produce slightly better code. :)

    In review, we decided to accept that test change.  This patch is structured to preserve the old behavior, but a separate change will immediate follow with the behavior change.  (I wanted it separate for problem attribution purposes.)

    Differential Revision: https://reviews.llvm.org/D62880 (detail)
    by reames
  102. Add unused symbol to thunk files to force wholearchive inclusion

    These "dynamic_runtime_thunk" object files exist to create a weak alias
    from 'foo' to 'foo_dll' for all weak sanitizer runtime symbols. The weak
    aliases are implemented as /alternatename linker options in the
    .drective section, so they are not actually in the symbol table. In
    order to force the Visual C++ linker to load the object, even with
    -wholearchive:, we have to provide at least one external symbol. Once we
    do that, it will read the .drective sections and see the weak aliases.

    Fixes PR42074 (detail)
    by rnk
  103. [ELF][llvm-objdump] Treat dynamic tag values as virtual addresses instead of offsets

    The ELF gABI requires the tag values of DT_REL, DT_RELA and DT_JMPREL to be
    treated as virtual addresses. They were treated as offsets. Fixes PR41832.

    Differential Revision: https://reviews.llvm.org/D62972 (detail)
    by wolfgangp
  104. [RISCV] Replace map with set in getReqFeatures

    Summary:
    Use a set in getReqFeatures() in RISCVCompressInstEmitter instead of a map
    because the index we save is not needed.

    This also fixes bug 41666.

    Reviewers: llvm-commits, apazos, asb, nickdesaulniers

    Reviewed By: asb

    Subscribers: Jim, nickdesaulniers, rbar, johnrusso, simoncook, niosHD, kito-cheng, shiva0217, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61412 (detail)
    by sabuasal
  105. [libc++] Fix leading zeros in std::to_chars

    Summary:
    It is a bugfix proposal for https://bugs.llvm.org/show_bug.cgi?id=42166.

    `std::to_chars` appends leading zeros if input 64-bit value has 9, 10 or 11 digits.
    According to documentation `std::to_chars` must not append leading zeros:
    https://en.cppreference.com/w/cpp/utility/to_chars

    Changeset should not affect `std::to_chars` performance:
    http://quick-bench.com/CEpRs14xxA9WLvkXFtaJ3TWOVAg

    Unit test that `std::from_chars` supports compatibility for both `std::to_chars` outputs (previous and fixed one) already exists:
    https://github.com/llvm-mirror/libcxx/blob/1f60111b597e5cb80a4513ec86f79b7e137f7793/test/std/utilities/charconv/charconv.from.chars/integral.pass.cpp#L63

    Reviewers: lichray, mclow.lists, ldionne, EricWF

    Reviewed By: lichray, mclow.lists

    Subscribers: zoecarver, christof, dexonsmith, libcxx-commits

    Differential Revision: https://reviews.llvm.org/D63047 (detail)
    by lichray
  106. [docs] Add 'git llvm revert' to getting started guide

    Summary: This documents `git llvm revert rNNNNNN` in the getting started guide for broader visibility.

    Reviewers: jyknight, mehdi_amini

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D63023 (detail)
    by rupprecht
  107. [X86] Attempt to make the Intel core CPU inheritance a little more readable and maintainable

    The recently added cooperlake CPU has made our already ugly switch statement even worse. There's a CPU exclusion list around the bf16 feature in the cooper lake block. I worry that we'll have to keep adding new CPUs to that until bf16 intercepts a client space CPU. We have several other exclusion lists in other parts of the switch due to skylakeserver, cascadelake, and cooperlake not having sgx. Another for cannonlake not having clwb but having all other features from skx.

    This removes all these special ifs at the cost of some duplication of features and a goto. I've copied all of the skx features into either cannonlake or icelakeclient(for clwb). And pulled sklyakeserver, cascadelake, and cooperlake out of the main inheritance chain into their own chain. At the end of skylakeserver we merge back into the main chain at skylakeclient but below sgx. I think this is at least easier to follow.

    Differential Revision: https://reviews.llvm.org/D63018 (detail)
    by ctopper
  108. [llvm-mca] Enable bottleneck analysis when flag -all-views is specified.

    Bottleneck Analysis is one of the many views available in llvm-mca. Therefore,
    it should be enabled when flag -all-views is passed in input to the tool. (detail)
    by adibiagio
  109. [FastISel] Skip creating unnecessary vregs for arguments

    This behavior was added in r130928 for both FastISel and SD, and then
    disabled in r131156 for FastISel.

    This re-enables it for FastISel with the corresponding fix.

    This is triggered only when FastISel can't lower the arguments and falls
    back to SelectionDAG for it.

    FastISel contains a map of "register fixups" where at the end of the
    selection phase it replaces all uses of a register with another
    register that FastISel sometimes pre-assigned. Code at the end of
    SelectionDAGISel::runOnMachineFunction is doing the replacement at the
    very end of the function, while other pieces that come in before that
    look through the MachineFunction and assume everything is done. In this
    case, the real issue is that the code emitting COPY instructions for the
    liveins (physreg to vreg) (EmitLiveInCopies) is checking if the vreg
    assigned to the physreg is used, and if it's not, it will skip the COPY.
    If a register wasn't replaced with its assigned fixup yet, the copy will
    be skipped and we'll end up with uses of undefined registers.

    This fix moves the replacement of registers before the emission of
    copies for the live-ins.

    The initial motivation for this fix is to enable tail calls for
    swiftself functions, which were blocked because we couldn't prove that
    the swiftself argument (which is callee-save) comes from a function
    argument (live-in), because there was an extra copy (vreg to vreg).

    A few tests are affected by this:

    * llvm/test/CodeGen/AArch64/swifterror.ll: we used to spill x21
    (callee-save) but never reload it because it's attached to the return.
    We now don't even spill it anymore.
    * llvm/test/CodeGen/*/swiftself.ll: we tail-call now.
    * llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands.ll: I believe this
    test was not really testing the right thing, but it worked because the
    same registers were re-used.
    * llvm/test/CodeGen/ARM/cmpxchg-O0.ll: regalloc changes
    * llvm/test/CodeGen/ARM/swifterror.ll: get rid of a copy
    * llvm/test/CodeGen/Mips/*: get rid of spills and copies
    * llvm/test/CodeGen/SystemZ/swift-return.ll: smaller stack
    * llvm/test/CodeGen/X86/atomic-unordered.ll: smaller stack
    * llvm/test/CodeGen/X86/swifterror.ll: same as AArch64
    * llvm/test/DebugInfo/X86/dbg-declare-arg.ll: stack size changed

    Differential Revision: https://reviews.llvm.org/D62361 (detail)
    by thegameg
  110. [scudo][standalone] Introduce the thread specific data structures

    Summary:
    This CL adds the structures dealing with thread specific data for the
    allocator. This includes the thread specific data structure itself and
    two registries for said structures: an exclusive one, where each thread
    will have its own TSD struct, and a shared one, where a pool of TSD
    structs will be shared by all threads, with dynamic reassignment at
    runtime based on contention.

    This departs from the current Scudo implementation: we intend to make
    the Registry a template parameter of the allocator (as opposed to a
    single global entity), allowing various allocators to coexist with
    different TSD registry models. As a result, TSD registry and Allocator
    are tightly coupled.

    This also corrects a couple of things in other files that I noticed
    while adding this.

    Reviewers: eugenis, vitalybuka, morehouse, hctim

    Reviewed By: morehouse

    Subscribers: srhines, mgorny, delcypher, jfb, #sanitizers, llvm-commits

    Tags: #llvm, #sanitizers

    Differential Revision: https://reviews.llvm.org/D62258 (detail)
    by cryptoad
  111. [WebAssembly] Cleanup toolchain test files. NFC.

    Summary: Split up long lines to improve test readability.

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D63081 (detail)
    by sbc
  112. [ExecutionEngine] Fix rL362941: Add UnaryOperator visitor to the interpreter

    Missed break statements. This was D62881. (detail)
    by mcinally
  113. [AMDGPU] Optimize image_[load|store]_mip

    Summary:
    Replace image_load_mip/image_store_mip
    with image_load/image_store if lod is 0.

    Reviewers: arsenm, nhaehnle

    Reviewed By: arsenm

    Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D63073 (detail)
    by Piotr Sobczak
  114. Revert rL362953 and its followup rL362955.

    These caused a build failure because I managed not to notice they
    depended on a later unpushed commit in my current stack. Sorry about
    that. (detail)
    by statham
  115. [ARM] Add the non-MVE instructions in Arm v8.1-M.

    This should have been part of r362953, but I had a finger-trouble
    incident and committed the old rather than new version of the patch.
    Sorry. (detail)
    by statham
  116. [InstCombine] allow unordered preds when canonicalizing to fabs()

    We have a known-never-nan value via 'nnan', so an unordered predicate
    is the same as its ordered sibling.

    Similar to:
    rL362937 (detail)
    by spatel
  117. [ARM] Add the non-MVE instructions in Arm v8.1-M.

    This adds support for the new family of conditional selection /
    increment / negation instructions; the low-overhead branch
    instructions (e.g. BF, WLS, DLS); the CLRM instruction to zero a whole
    list of registers at once; the new VMRS/VMSR and VLDR/VSTR
    instructions to get data in and out of 8.1-M system registers,
    particularly including the new VPR register used by MVE vector
    predication.

    To support this, we also add a register name 'zr' (used by the CSEL
    family to force one of the inputs to the constant 0), and operand
    types for lists of registers that are also allowed to include APSR or
    VPR (used by CLRM). The VLDR/VSTR instructions also need some new
    addressing modes.

    The low-overhead branch instructions exist in their own separate
    architecture extension, which we treat as enabled by default, but you
    can say -mattr=-lob or equivalent to turn it off.

    Reviewers: dmgreen, samparker, SjoerdMeijer, t.p.northover

    Reviewed By: samparker

    Subscribers: miyuki, javed.absar, kristof.beyls, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D62667 (detail)
    by statham
  118. [DA] Add an option to control delinearization validity checks

    Summary: Dependence Analysis performs static checks to confirm validity
    of delinearization. These checks often fail for 64-bit targets due to
    type conversions and integer wrapping that prevent simplification of the
    SCEV expressions. These checks would also fail at compile-time if the
    lower bound of the loops are compile-time unknown.
    Author: bmahjour
    Reviewer: Meinersbur, jdoerfert, kbarton, dmgreen, fhahn
    Reviewed By: Meinersbur, jdoerfert, dmgreen
    Subscribers: fhahn, hiraditya, javed.absar, llvm-commits, Whitney,
    etiotto
    Tag: LLVM
    Differential Revision: https://reviews.llvm.org/D62610 (detail)
    by whitneyt
  119. [DebugInfo] Terminate all location-lists at end of block

    This commit reapplies r359426 (which was reverted in r360301 due to
    performance problems) and rolls in D61940 to address the performance problem.
    I've combined the two to avoid creating a span of slow-performance, and to
    ease reverting if more problems crop up.

    The summary of D61940: This patch removes the "ChangingRegs" facility in
    DbgEntityHistoryCalculator, as its overapproximate nature can produce incorrect
    variable locations. An unchanging register doesn't mean a variable doesn't
    change its location.

    The patch kills off everything that calculates the ChangingRegs vector.
    Previously ChangingRegs spotted epilogues and marked registers as unchanging if
    they weren't modified outside the epilogue, increasing the chance that we can
    emit a single-location variable record. Without this feature,
    debug-loc-offset.mir and pr19307.mir become temporarily XFAIL. They'll be
    re-enabled by D62314, using the FrameDestroy flag to identify epilogues, I've
    split this into two steps as FrameDestroy isn't necessarily supported by all
    backends.

    The logic for terminating variable locations at the end of a basic block now
    becomes much more enjoyably simple: we just terminate them all.

    Other test changes: inlined-argument.ll becomes XFAIL, but for a longer term.
    The current algorithm for detecting that a variable has a single-location
    doesn't work in this scenario (inlined function in multiple blocks), only other
    bugs were making this test work. fission-ranges.ll gets slightly refreshed too,
    as the location of "p" is now correctly determined to be a single location.

    Differential Revision: https://reviews.llvm.org/D61940 (detail)
    by jmorse
  120. Re-land "[CodeComplete] Improve overload handling for C++ qualified and ref-qualified methods."

    ShadowMapEntry is now really, truly a normal class. (detail)
    by sammccall
  121. [InstCombine] add tests for fabs() with unordered preds; NFC (detail)
    by spatel
  122. [IRBuilder] Add CreateFNegFMF(...) to the IRBuilder

    Differential Revision: https://reviews.llvm.org/D62521 (detail)
    by mcinally
  123. [InstCombine] fix bug in canonicalization to fabs()

    Forgot to translate the predicate clauses in rL362943. (detail)
    by spatel
  124. Revert "[CodeComplete] Improve overload handling for C++ qualified and ref-qualified methods."

    This reverts commit r362924, which causes a double-free of ShadowMapEntry. (detail)
    by sammccall

Started by timer (22 times)

This run spent:

  • 21 hr waiting;
  • 4 hr 58 min build duration;
  • 1 day 2 hr total from scheduled to completion.
Test Result (3 failures / +2)

Identified problems

Compile Error

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

Regression test failed

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

Ninja target failed

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