Started 5 days 14 hr ago
Took 1 hr 21 min on green-dragon-09

Success Build #17798 (Jun 11, 2019 10:50:33 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/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/ViewSVN)
    by rsmith
  2. For DR712: store on a MemberExpr whether it constitutes an odr-use. (detail/ViewSVN)
    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/ViewSVN)
    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/ViewSVN)
    by jsji
  5. [NFC][CodeGen] Add unary fneg tests to X86/fma-fneg-combine.ll (detail/ViewSVN)
    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/ViewSVN)
    by Jonas Devlieghere
  7. [InstCombine] Handle -(X-Y) --> (Y-X) for unary fneg when NSZ

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

    Differential Revision: https://reviews.llvm.org/D62629 (detail/ViewSVN)
    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/ViewSVN)
    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/ViewSVN)
    by nico
  12. [X86] Regenerate CmpISel test for future patch (detail/ViewSVN)
    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/ViewSVN)
    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/ViewSVN)
    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/ViewSVN)
    by erichkeane
  16. [docs][llvm-nm] Make --help help text consistent with other options (detail/ViewSVN)
    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/ViewSVN)
    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/ViewSVN)
    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/ViewSVN)
    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/ViewSVN)
    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/ViewSVN)
    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/ViewSVN)
    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/ViewSVN)
    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/ViewSVN)
    by jhenderson
  25. [ARM] Fix a typo in the test from r363039 (detail/ViewSVN)
    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/ViewSVN)
    by martong
  27. [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/ViewSVN)
    by lewis-revill
  28. [RISCV][NFC] Add missing test file for D54093 (detail/ViewSVN)
    by lewis-revill
  29. [RISCV][NFC] Add missing test files for D54091 (detail/ViewSVN)
    by lewis-revill
  30. [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/ViewSVN)
    by lewis-revill
  31. [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/ViewSVN)
    by lewis-revill
  32. [clang-tidy] Fix typo in bugprone-string-constructor.

    s/bigger then/bigger than/ (detail/ViewSVN)
    by courbet
  33. 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/ViewSVN)
    by ibiryukov
  34. [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/ViewSVN)
    by miyuki
  35. 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/ViewSVN)
    by nico
  36. [NFC] Fixed arm/aarch64 test (detail/ViewSVN)
    by xbolva00
  37. [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/ViewSVN)
    by rksimon
  38. 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/ViewSVN)
    by gribozavr
  39. [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/ViewSVN)
    by orlandoch
  40. [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/ViewSVN)
    by grimar
  41. [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/ViewSVN)
    by jhenderson
  42. [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/ViewSVN)
    by statham
  43. [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/ViewSVN)
    by grimar
  44. [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/ViewSVN)
    by ibiryukov
  45. [DAGCombine] GetNegatedExpression - constant float vector support (PR42105)

    Add support for negation of constant build vectors.

    Differential Revision: https://reviews.llvm.org/D62963 (detail/ViewSVN)
    by rksimon
  46. [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/ViewSVN)
    by statham
  47. [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/ViewSVN)
    by pgousseau
  48. [clangd] Add missing header guard. (detail/ViewSVN)
    by hokein
  49. [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/ViewSVN)
    by anton-afanasyev
  50. 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/ViewSVN)
    by s.desmalen
  51. [clangd] Fix gcc warning by removing extra ";" (detail/ViewSVN)
    by uabelho
  52. [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/ViewSVN)
    by ctopper
  53. 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/ViewSVN)
    by marshall
  54. 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/ViewSVN)
    by tstellar
  55. 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/ViewSVN)
    by pcc
  56. 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/ViewSVN)
    by pcc
  57. 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/ViewSVN)
    by arsenm
  58. AMDGPU: Expand < 32-bit atomics

    Also fix AtomicExpand asserting on atomicrmw fadd/fsub. (detail/ViewSVN)
    by arsenm
  59. gn build: Merge r362939 (detail/ViewSVN)
    by nico
  60. gn build: Merge r362972 (detail/ViewSVN)
    by nico
  61. [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/ViewSVN)
    by pengfei
  62. 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/ViewSVN)
    by nico
  63. 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/ViewSVN)
    by cbieneman
  64. XFAIL a couple of CTAD tests on clang-6; it gives different error messages than clang 7/8/9 (detail/ViewSVN)
    by marshall
  65. [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/ViewSVN)
    by kongyi
  66. [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/ViewSVN)
    by zer0
  67. 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/ViewSVN)
    by dsanders
  68. [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/ViewSVN)
    by arphaman
  69. [dsymutil] Remove stale comment (NFC)

    The comment was no longer relevant after r362621. (detail/ViewSVN)
    by Jonas Devlieghere
  70. 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/ViewSVN)
    by rnk
  71. [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/ViewSVN)
    by smeenai
  72. [PGO] Fix the buildbot failure in r362995

    Fixed one unused variable warning. (detail/ViewSVN)
    by xur
  73. 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/ViewSVN)
    by marshall
  74. [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/ViewSVN)
    by reames
  75. [NFC][CodeGen] Forgot 2 unary FNeg tests in X86/fma-intrinsics-canonical.ll

    Follow-up to r362999. (detail/ViewSVN)
    by mcinally
  76. 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/ViewSVN)
    by rnk
  77. [NFC][CodeGen] Add unary FNeg tests to X86/fma-intrinsics-canonical.ll (detail/ViewSVN)
    by mcinally
  78. [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/ViewSVN)
    by hubert.reinterpretcast
  79. Fix typo from r362990 to fix Windows builds (detail/ViewSVN)
    by tstellar
  80. [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/ViewSVN)
    by hubert.reinterpretcast
  81. [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/ViewSVN)
    by xur
  82. [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/ViewSVN)
    by hubert.reinterpretcast
  83. [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/ViewSVN)
    by reames
  84. [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/ViewSVN)
    by hubert.reinterpretcast
  85. [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/ViewSVN)
    by hubert.reinterpretcast
  86. 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/ViewSVN)
    by tstellar
  87. [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/ViewSVN)
    by paquette
  88. [NFC][CodeGen] Add unary FNeg tests to some X86/ and XCore/ tests. (detail/ViewSVN)
    by mcinally
  89. Implement deduction guides for map/multimap. Reviewed as https://reviews.llvm.org/D58587. Thanks to Quuxplusone for the submission. (detail/ViewSVN)
    by marshall
  90. [demangle] Vendor extended types shouldn't be considered substitution candidates (detail/ViewSVN)
    by epilk
  91. Factor out a helper function for readability and reuse in a future patch [NFC] (detail/ViewSVN)
    by reames
  92. [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/ViewSVN)
    by mattd
  93. [clangd] Remove old hidden -use-dex-index flag (detail/ViewSVN)
    by sammccall
  94. [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/ViewSVN)
    by reames
  95. [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/ViewSVN)
    by reames
  96. [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/ViewSVN)
    by jsji

Started by upstream project Clang Stage 1: cmake, RA, using system compiler build number 57407
originally caused by:

Started by upstream project Clang Stage 1: cmake, RA, using system compiler build number 57408
originally caused by:

Started by upstream project Clang Stage 1: cmake, RA, using system compiler build number 57409
originally caused by:

Started by upstream project Clang Stage 1: cmake, RA, using system compiler build number 57410
originally caused by:

Started by upstream project Clang Stage 1: cmake, RA, using system compiler build number 57411
originally caused by:

Started by upstream project Clang Stage 1: cmake, RA, using system compiler build number 57412
originally caused by:

Started by upstream project Clang Stage 1: cmake, RA, using system compiler build number 57413
originally caused by:

This run spent:

  • 23 hr waiting;
  • 1 hr 21 min build duration;
  • 1 day 0 hr total from scheduled to completion.
LLVM/Clang Warnings: 0 warnings.
  • No warnings since build 17,762.
  • Still 69 days before reaching the previous zero warnings highscore.