collapse
0%
WDescription%
Build stability: All recent builds failed.0
Test Result: 1 test failing out of a total of 38,854 tests.99
Build History
x
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems
 Identified problems

Changes

#148 (Oct 26, 2017 10:30:08 AM)

  1. LLVMBuilder: Remove mutable default argument, NFCI.

    See http://docs.python-guide.org/en/latest/writing/gotchas/#mutable-default-arguments — hahnfeld / detail
  2. Remove trailing whitespace, NFC. — hahnfeld / detail
  3. [zorg] Refactor Libiomp5Builder to OpenMPBuilder

    Background: We also want to test libomptarget which is the runtime
    library for OpenMP offloading and part of the OpenMP repository.

    This patch does the following:
    * Rename builders from libomp-* to openmp-*.
    * Rename Libiomp5Builder to OpenMPBuilder and the function
       getLibompCMakeBuildFactory to getOpenMPCMakeBuildFactory.
    * Cleanup, properly indent function and add support for
       building and testing libomptarget.
    * Build fresh Clang on openmp-clang-ppc64le-linux-debian
       so that the libomptarget tests have a chance of passing.

    Differential Revision: https://reviews.llvm.org/D39070 — hahnfeld / detail

#147 (Oct 25, 2017 11:17:05 PM)

  1. Revert "[zorg] Disable internal symbolizer tests in compiler-rt"

    Fixed in r316637

    This reverts commit r316557. — Vitaly Buka / detail

#146 (Oct 25, 2017 3:33:54 PM)

  1. Merging r315485:

    ------------------------------------------------------------------------
    r315485 | spatel | 2017-10-11 11:24:21 -0700 (Wed, 11 Oct 2017) | 7 lines

    [x86] avoid infinite loop from SoftenFloatOperand (PR34866)

    Legalization of fp128 assumes things that we should have asserts for,
    so that's another potential improvement.

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

    ------------------------------------------------------------------------ — tstellar / detail

#145 (Oct 25, 2017 1:12:29 PM)

  1. [zorg] Update status reporting of reverse-iteration builder

    Summary:
    The mail notification to "interested users" has been disabled for the
    reverse-iteration builder. This patch turns the mail notification on so that
    interested users are notified of new failures on the reverse-iteration
    builder. Notice that only transitions from pass to fail on the builder will
    trigger mail notification. Subsequent failures will not be reported repeatedly.

    Reviewers: mgrang, zinob, gkistanova, vleschuk, dblaikie

    Reviewed By: dblaikie

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D39258 — pzheng / detail

#144 (Oct 25, 2017 12:54:57 AM)

  1. [zorg] Disable internal symbolizer tests in compiler-rt

    It fails after switching bot from Ubuntu to Debian. — Vitaly Buka / detail
  2. [zorg] Fix tsan build on Debian and other platforms where pie is on by default — Vitaly Buka / detail

#143 (Oct 24, 2017 7:58:23 AM)

  1. Switch ARM & AArch64 test-suite builders to CMake

    Move from the nt producer to the test-suite one by defining
    testsuite_flags instead of nt_flags. This affects 5 buildbots (4 AArch64
    and one ARM; we already had one ARM bot using the test-suite producer). — rovka / detail

#142 (Oct 23, 2017 4:40:11 PM)

  1. Revert "[zorg] Print ulimits to debug bot failures"

    Issue was resolved.

    This reverts commit r316259. — Vitaly Buka / detail

#141 (Oct 21, 2017 11:56:46 AM)

  1. [zorg] Combine multiple sanitizer bots on single machine to improve efficiency — Vitaly Buka / detail

#140 (Oct 20, 2017 11:51:50 PM)

  1. [zorg] Print ulimits to debub bot failures — Vitaly Buka / detail

#139 (Oct 20, 2017 6:06:52 PM)

  1. [zorg] Use Release for stage2 ubsan build — Vitaly Buka / detail

#138 (Oct 19, 2017 10:46:50 PM)

  1. [zorg] Try to combine fuzzer and autoconf bots on faster hardware — Vitaly Buka / detail

#137 (Oct 19, 2017 6:55:12 PM)

  1. [zorg] Fix scripts access permissions — Vitaly Buka / detail
  2. Revert "[zorg] Enable tracking origins on msan bot"

    Needs investigation. Reports errors on previously green revisions.

    This reverts commit 316194. — Vitaly Buka / detail

#136 (Oct 19, 2017 5:26:38 PM)

  1. [zorg] Try to run concurrent builds for better resource utilization — Vitaly Buka / detail
  2. [zorg] Remove number of cores from description frequently change these GCE instances — Vitaly Buka / detail
  3. [zorg] Try share builder for multiple configs — Vitaly Buka / detail
  4. [zorg] Enable tracking origins on msan bot — Vitaly Buka / detail

#135 (Oct 19, 2017 12:43:59 PM)

  1. Fixed typo. — gkistanova / detail

#134 (Oct 17, 2017 6:55:40 PM)

  1. List unsupported & xfail tests on sanitizer-android. — eugenis / detail
  2. Set LLVM_BINUTILS_INCDIR on sanitizer-android.

    It's needed to build the gold plugin, which is needed to test cfi.

    As it turns out, we are not testing cfi. — eugenis / detail

#133 (Oct 17, 2017 12:39:15 AM)

  1. [zorg] Fix another type on ubsan bot script — Vitaly Buka / detail
  2. [zorg] Remove non UAR asan pass and move ASAN_OPTIONS setup in-front of stage3

    We check how instrumented clang can build itself. Most work is done in
    "ninja clang", so need correct ASAN_OPTIONS before that. — Vitaly Buka / detail
  3. [zorg] Fix type in buildbot_bootstrap_ubsan.sh — Vitaly Buka / detail

#132 (Oct 16, 2017 11:12:02 PM)

  1. [zorg] Split sanitizer bootstrap bot to asan, msan and ubsan — Vitaly Buka / detail

#131 (Oct 16, 2017 5:00:47 PM)

  1. [zorg] Add 2 new sanitizer build bots to split slow sanitizer-x86_64-linux-bootstrap — Vitaly Buka / detail

#130 (Oct 16, 2017 1:22:24 PM)

  1. [zorg] Don't limit compile jobs on sanitizers bootstrap bot — Vitaly Buka / detail

#129 (Oct 14, 2017 9:32:05 PM)

  1. [zorg] Replace cpuinfo with nproc — Vitaly Buka / detail

#128 (Oct 14, 2017 6:02:05 PM)

  1. [zorg] Use max available number of CPUs — Vitaly Buka / detail

#125 (Oct 14, 2017 3:32:04 PM)

  1. Merging r314891:
    ------------------------------------------------------------------------
    r314891 | dylanmckay | 2017-10-04 22:51:28 +1300 (Wed, 04 Oct 2017) | 8 lines

    [AVR] Insert JMP for long branches

    Previously, on long branches (relative jumps of >4 kB), an assertion
    failure was hit, as AVRInstrInfo::insertIndirectBranch was not
    implemented. Despite its name, it is called by the branch relaxator
    for *all* unconditional jumps.

    Patch by Thomas Backman.
    ------------------------------------------------------------------------ — dylanmckay / detail
  2. Merging r314890:
    ------------------------------------------------------------------------
    r314890 | dylanmckay | 2017-10-04 22:51:21 +1300 (Wed, 04 Oct 2017) | 16 lines

    [AVR] Fix displacement overflow for LDDW/STDW

    In some cases, the code generator attempts to generate instructions such as:

    lddw r24, Y+63

    which expands to:

    ldd r24, Y+63
    ldd r25, Y+64 # Oops! This is actually ld r25, Y in the binary

    This commit limits the first offset to 62, and thus the second to 63.
    It also updates some asserts in AVRExpandPseudoInsts.cpp, including for
    INW and OUTW, which appear to be unused.

    Patch by Thomas Backman.
    ------------------------------------------------------------------------ — dylanmckay / detail

#124 (Oct 12, 2017 9:22:24 PM)

  1. Merging r312357:

    ------------------------------------------------------------------------
    r312357 | davide | 2017-09-01 12:54:08 -0700 (Fri, 01 Sep 2017) | 9 lines

    [TTI] Fix getGEPCost() for geps with a single operand.

    Previously this would sporadically crash as TargetType
    was never initialized. We special-case the single-operand
    case returning earlier and trying to mimic the behaviour of
    isLegalAddressingMode as closely as possible.

    Differential Revision:  https://reviews.llvm.org/D37277
    ------------------------------------------------------------------------ — tstellar / detail

#123 (Oct 12, 2017 6:52:05 PM)

  1. Fixed the path to CMakeCache.txt file — gkistanova / detail

#122 (Oct 11, 2017 5:54:46 PM)

  1. Remove extra quotation. — eugenis / detail

#121 (Oct 11, 2017 3:21:13 PM)

  1. Use check-all on the android buildbot

    Build/test all of compiler-rt as a single step using check-all.
    This reduces the number of steps on the buildbot page, and automatically picks up any new tests (like ubsan-minimal).

    It would be great if the "unit" tests could also run through lit. This is out of scope of this change. — eugenis / detail

#120 (Oct 9, 2017 2:12:25 PM)

  1. Disabled warnings escalation on Windows buildbots when built by VS.

    Because of the bug in the MS compiler we disable the warnings escalation for now on Windows buildbots. See https://connect.microsoft.com/VisualStudio/feedback/details/668639/c-c4709-when-not-even-using-comma-inside-the-array-index-expression-w4 for more details. — gkistanova / detail
  2. Merging r309979:

    ------------------------------------------------------------------------
    r309979 | mgorny | 2017-08-03 12:41:33 -0700 (Thu, 03 Aug 2017) | 16 lines

    [test] Fix clang library dir in LD_LIBRARY_PATH For stand-alone build

    Prepend the clang library directory (determined using SHLIBDIR, alike
    in clang) to the LD_LIBRARY_PATH to ensure that just-built clang
    libraries will be used instead of a previous installed version.

    When a stand-alone build is performed, LLVM_LIBS_DIR contains the path
    to installed LLVM library directory. The same directory frequently
    contains a previously installed version of clang. SHLIBDIR, on the other
    hand, is always the build-tree directory, and therefore contains
    the freshly built clang libraries.

    In a non-stand-alone build, both paths will be the same and therefore
    including them both will not cause any issues.

    Differential Revision: https://reviews.llvm.org/D30155
    ------------------------------------------------------------------------ — tstellar / detail

#119 (Oct 9, 2017 10:05:11 AM)

  1. Add ubsan and cfi tests on sanitizer-android bot. — eugenis / detail

#118 (Oct 8, 2017 4:56:43 PM)

  1. Merging r313366:
    ------------------------------------------------------------------------
    r313366 | ctopper | 2017-09-15 10:09:03 -0700 (Fri, 15 Sep 2017) | 9 lines

    [X86] Don't create i64 constants on 32-bit targets when lowering v64i1 constant build vectors

    When handling a v64i1 build vector of constants on 32-bit targets we were creating an illegal i64 constant that we then bitcasted back to v64i1. We need to instead create two 32-bit constants, bitcast them to v32i1 and concat the result. We should also take care to handle the halves being all zeros/ones after the split.

    This patch splits the build vector and then recursively lowers the two pieces. This allows us to handle the all ones and all zeros cases with minimal effort. Ideally we'd just do the split and concat, and let lowering get called again on the new nodes, but getNode has special handling for CONCAT_VECTORS that reassembles the pieces back into a single BUILD_VECTOR. Hopefully the two temporary BUILD_VECTORS we had to create to do this that don't get returned don't cause any issues.

    Fixes PR34605.

    Differential Revision: https://reviews.llvm.org/D37858
    ------------------------------------------------------------------------ — ctopper / detail

#117 (Oct 6, 2017 6:36:17 PM)

  1. Switch sanitizer-android bot to libc++-ndk. — eugenis / detail

#114 (Oct 4, 2017 3:06:57 AM)

  1. Merging r314891:
    ------------------------------------------------------------------------
    r314891 | dylanmckay | 2017-10-04 22:51:28 +1300 (Wed, 04 Oct 2017) | 8 lines

    [AVR] Insert JMP for long branches

    Previously, on long branches (relative jumps of >4 kB), an assertion
    failure was hit, as AVRInstrInfo::insertIndirectBranch was not
    implemented. Despite its name, it is called by the branch relaxator
    for *all* unconditional jumps.

    Patch by Thomas Backman.
    ------------------------------------------------------------------------ — dylanmckay / detail

#113 (Oct 3, 2017 6:40:30 AM)

  1. [release_50] Merging r313916

    [AArch64] Fix bug in store of vector 0 DAGCombine.

    Summary:
    Avoid using XZR/WZR directly as operands to split stores of zero
    vectors.  Doing so can lead to the XZR/WZR being used by an instruction
    that doesn't allow it (e.g. add).

    Fixes bug 34674.

    Reviewers: t.p.northover, efriedma, MatzeB

    Subscribers: aemerson, rengolin, javed.absar, mcrosier, eraman, llvm-commits, kristof.beyls

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

    PR34695. — rengolin / detail

#112 (Oct 2, 2017 8:22:02 PM)

  1. Used the new 'clean_obj' property. — gkistanova / detail

#111 (Oct 2, 2017 4:33:35 PM)

  1. Remove dead ericwf-buildslave builder; move configurations to other slaves — ericwf / detail

#110 (Oct 2, 2017 2:12:22 PM)

  1. Set a separate property 'clean_obj' for requesting the obj removal — gkistanova / detail

#107 (Sep 29, 2017 2:07:22 PM)

  1. Merging r313392:

    ------------------------------------------------------------------------
    r313392 | ctopper | 2017-09-15 13:27:59 -0700 (Fri, 15 Sep 2017) | 7 lines

    [X86] Disable _mm512_maskz_set1_epi64 intrinsic on 32-bit targets to prevent a backend isel failure.

    The __builtin_ia32_pbroadcastq512_mem_mask we were previously trying to use in 32-bit mode is not implemented in the x86 backend and causes isel to fail in release builds. In debug builds it fails even earlier during legalization with an llvm_unreachable.

    While there add the missing test case for this intrinsic for this for 64-bit mode.

    This fixes PR34631. D37668 should be able to recover this for 32-bit mode soon. But I wanted to fix the crash ahead of that.
    ------------------------------------------------------------------------ — tstellar / detail
  2. Merging r314252:

    ------------------------------------------------------------------------
    r314252 | gberry | 2017-09-26 14:40:46 -0700 (Tue, 26 Sep 2017) | 12 lines

    [AArch64][Falkor] Fix bug in falkor prefetcher fix pass.

    Summary:
    In rare cases, loads that don't get prefetched that were marked as
    strided loads could cause a crash if they occurred in a loop with other
    colliding loads.

    Reviewers: mcrosier

    Subscribers: aemerson, rengolin, javed.absar, kristof.beyls

    Differential Revision: https://reviews.llvm.org/D38261
    ------------------------------------------------------------------------ — tstellar / detail
  3. Merging r314251:

    ------------------------------------------------------------------------
    r314251 | gberry | 2017-09-26 14:40:41 -0700 (Tue, 26 Sep 2017) | 16 lines

    [AArch64][Falkor] Fix correctness bug in falkor prefetcher fix pass and correct some opcode tag computations.

    Summary:
    This addresses a correctness bug for LD[1234]*_POST opcodes that have
    the prefetcher fix applied to them: the base register was not being
    written back from the temp after being incremented, so it would appear
    to never be incremented.

    Also, fix some opcode tag computations based on some updated HW details
    to get better tag avoidance and thus better prefetcher performance.

    Reviewers: mcrosier

    Subscribers: aemerson, rengolin, javed.absar, kristof.beyls

    Differential Revision: https://reviews.llvm.org/D38256
    ------------------------------------------------------------------------ — tstellar / detail
  4. Merging r311599:

    ------------------------------------------------------------------------
    r311599 | gberry | 2017-08-23 14:11:28 -0700 (Wed, 23 Aug 2017) | 4 lines

    [AArch64][Falkor] Fix bug in Falkor HWPF tag collision avoidance

    LDPDi was incorrectly marked as ignoring the destination register in the
    prefetcher tag.
    ------------------------------------------------------------------------ — tstellar / detail
  5. [llvmlab] Add timeout and retries for fetching builds.

    In case of network problems, time out after 5 seconds instead of relying on OS
    to close the connection which can take more than 20 minutes. Timeout value is
    measured between successfully transmitted packets, not for entire transaction.
    So we don't require big files to be downloaded in 5 seconds but we require not
    to get stuck for more than 5 seconds.

    Reviewers: cmatthews, JDevlieghere

    Reviewed By: cmatthews

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D38281 — vsapsai / detail

#106 (Sep 28, 2017 5:11:09 PM)

  1. Merging r312447:

    ------------------------------------------------------------------------
    r312447 | hfinkel | 2017-09-03 10:18:25 -0700 (Sun, 03 Sep 2017) | 12 lines

    [CodeGen] Treat all vector fields as mayalias

    Because it is common to treat vector types as an array of their elements, or
    even some other type that's not the element type, and thus index into them, we
    can't use struct-path TBAA for these accesses. Even though we already treat all
    vector types as equivalent to 'char', we were using field-offset information
    for them with TBAA, and this renders undefined the intra-value indexing we
    intend to allow. Note that, although 'char' is universally aliasing, with path
    TBAA, we can still differentiate between access to s.a and s.b in
      struct { char a, b; } s;. We can't use this capability as-is for vector types.

    Fixes PR33967.
    ------------------------------------------------------------------------ — tstellar / detail

#105 (Sep 28, 2017 3:01:59 PM)

  1. Merging r312651:

    ------------------------------------------------------------------------
    r312651 | jroelofs | 2017-09-06 10:09:25 -0700 (Wed, 06 Sep 2017) | 23 lines

    Fix ARM bare metal driver to support atomics

    The new bare metal support only supports the single thread model. This causes
    the builtin atomic functions (e.g.: __atomic_fetch_add) to not generate
    thread-safe assembly for these operations, which breaks our firmware. We target
    bare metal, and need to atomically modify variables in our interrupt routines,
    and task threads.

    Internally, the -mthread-model flag determines whether to lower or expand
    atomic operations (see D4984).

    This change removes the overridden thread model methods, and instead relies on
    the base ToolChain class to validate the thread model (which already includes
    logic to validate single thread model support). If the single thread model is
    required, the -mthread-model flag will have to be provided.

    As a workaround "-mthread-model posix" could be provided, but it only works due
    to a bug in the validation of the -mthread-model flag (separate patch coming to
    fix this).

    https://reviews.llvm.org/D37493

    Patch by: Ian Tessier!
    ------------------------------------------------------------------------ — tstellar / detail

#104 (Sep 28, 2017 11:12:58 AM)

  1. Builder llvm-clang-x86_64-expensive-checks-win is back to work. — gkistanova / detail
  2. Merging r313998:

    ------------------------------------------------------------------------
    r313998 | bmakam | 2017-09-22 10:46:36 -0700 (Fri, 22 Sep 2017) | 3 lines

        [Falkor] Add falkor CPU to host detection

        This returns "falkor" for Falkor CPU.
    ------------------------------------------------------------------------ — tstellar / detail
  3. Merging r312622:

    ------------------------------------------------------------------------
    r312622 | jbcoe | 2017-09-06 00:33:32 -0700 (Wed, 06 Sep 2017) | 13 lines

    Fix __repr__ for Diagnostic in clang.cindex

    Summary: Also move misplaced tests for exception specification to fix failing Python tests.

    Reviewers: hans, compnerd

    Reviewed By: compnerd

    Subscribers: cfe-commits

    Tags: #clang-c

    Differential Revision: https://reviews.llvm.org/D37490
    ------------------------------------------------------------------------ — tstellar / detail

#103 (Sep 28, 2017 9:33:45 AM)

  1. Merging r311921:
    ------------------------------------------------------------------------
    r311921 | joerg | 2017-08-28 22:20:47 +0200 (Mon, 28 Aug 2017) | 16 lines

    Fix ARMv4 support

    ARMv4 doesn't support the "BX" instruction, which has been introduced
    with ARMv4t. Adjust the call lowering and tail call implementation
    accordingly.

    Further changes are necessary to ensure that presence of the v4t feature
    is correctly set. Most importantly, the "generic" CPU for thumb-*
    triples should include ARMv4t, since thumb mode without thumb support
    would naturally be pointless.

    Add a couple of asserts to ensure thumb instructions are not emitted
    without CPU support.

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

    ------------------------------------------------------------------------ — joerg / detail

#102 (Sep 28, 2017 1:54:21 AM)

  1. Merging r314180:
    ------------------------------------------------------------------------
    r314180 | dylanmckay | 2017-09-26 13:51:03 +1300 (Tue, 26 Sep 2017) | 7 lines

    [AVR] When lowering shifts into loops, put newly generated MBBs in the same
    spot as the original MBB

    Discovered in avr-rust/rust#62
    https://github.com/avr-rust/rust/issues/62

    Patch by Gergo Erdi.
    ------------------------------------------------------------------------ — dylanmckay / detail
  2. Merging r314183:
    ------------------------------------------------------------------------
    r314183 | dylanmckay | 2017-09-26 15:07:54 +1300 (Tue, 26 Sep 2017) | 3 lines

    [AVR] Fix the build after setting alignment to 1 in r314179

    Changing all types to be byte-aligned broke a small number of tests.
    ------------------------------------------------------------------------ — dylanmckay / detail
  3. Merging r314354:
    ------------------------------------------------------------------------
    r314354 | dylanmckay | 2017-09-28 11:09:01 +1300 (Thu, 28 Sep 2017) | 3 lines

    [AVR] Update data layout to match current LLVM trunk

    The data layout was changed in r314179 to fix atomic loads and stores.
    ------------------------------------------------------------------------ — dylanmckay / detail

#99 (Sep 27, 2017 3:22:02 PM)

  1. Merging r314070:
    ------------------------------------------------------------------------
    r314070 | dylanmckay | 2017-09-24 14:07:26 +1300 (Sun, 24 Sep 2017) | 6 lines

    [AVR] Implement getCmpLibcallReturnType().

    This fixes the avr-rust issue (#75) with floating-point comparisons generating broken code.
    By default, LLVM assumes these comparisons return 32-bit values, but ours are 8-bit.

    Patch By Thomas Backman.
    ------------------------------------------------------------------------ — dylanmckay / detail
  2. Merging r312905:
    ------------------------------------------------------------------------
    r312905 | dylanmckay | 2017-09-11 22:32:51 +1200 (Mon, 11 Sep 2017) | 10 lines

    [AVR] Enable the '__do_copy_data' function

    Also enables '__do_clear_bss'.

    These functions are automaticalled called by the CRT if they are
    declared.

    We need these to be called otherwise RAM will start completely
    uninitialised, even though we need to copy RAM variables from progmem to
    RAM.
    ------------------------------------------------------------------------ — dylanmckay / detail

#98 (Sep 27, 2017 11:12:03 AM)

  1. Merging r312337:

    ------------------------------------------------------------------------
    r312337 | nha | 2017-09-01 09:56:32 -0700 (Fri, 01 Sep 2017) | 12 lines

    AMDGPU: IMPLICIT_DEFs and DBG_VALUEs do not contribute to wait states

    Summary:
    This fixes a bug that was exposed on gfx9 in various
    GL45-CTS.shaders.loops.*_iterations.select_iteration_count_fragment tests,
    e.g. GL45-CTS.shaders.loops.do_while_uniform_iterations.select_iteration_count_fragment

    Reviewers: arsenm

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

    Differential Revision: https://reviews.llvm.org/D36193
    ------------------------------------------------------------------------ — tstellar / detail
  2. Revert "Merging r312337:"

    This reverts commit r314324.

    I unintentionally deleted most of the svn:mergeinfo for the release_50
    branch with this commit. — tstellar / detail

#97 (Sep 27, 2017 11:02:04 AM)

  1. Merging r312337:

    ------------------------------------------------------------------------
    r312337 | nha | 2017-09-01 09:56:32 -0700 (Fri, 01 Sep 2017) | 12 lines

    AMDGPU: IMPLICIT_DEFs and DBG_VALUEs do not contribute to wait states

    Summary:
    This fixes a bug that was exposed on gfx9 in various
    GL45-CTS.shaders.loops.*_iterations.select_iteration_count_fragment tests,
    e.g. GL45-CTS.shaders.loops.do_while_uniform_iterations.select_iteration_count_fragment

    Reviewers: arsenm

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

    Differential Revision: https://reviews.llvm.org/D36193
    ------------------------------------------------------------------------ — tstellar / detail

#96 (Sep 26, 2017 6:03:00 PM)

  1. Builder llvm-clang-x86_64-expensive-checks-win disabled temporally. — gkistanova / detail

#95 (Sep 24, 2017 7:54:26 PM)

  1. Revert "Check we test CFI before using gold" and "Switch linux bot to gold"

    Not needed. Problem was with the version of linker on bot.

    This reverts commits r314086, 314085. — Vitaly Buka / detail

#94 (Sep 24, 2017 4:40:12 PM)

  1. [zorg] Check we test CFI before using gold

    Gold is not available on some bots, but it's requirement for CFI tests. — Vitaly Buka / detail

#93 (Sep 24, 2017 3:11:48 PM)

  1. [zorg] Switch linux bot to gold
    ld fails with "fork: invalid version 21" — Vitaly Buka / detail

#92 (Sep 22, 2017 5:08:19 PM)

  1. [zorg] Update the scheduler for the reverse iterator builder

    Summary:
    We replace the nightly scheduler for the reverse iterator builder with a
    SingleBranchScheduler.

    Reviewers: mgrang, zinob, gkistanova, vleschuk

    Reviewed By: mgrang

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D38011 — pzheng / detail

#91 (Sep 22, 2017 10:48:10 AM)

  1. [zorg] Update fast and android stage1 clang revision — Vitaly Buka / detail
  2. [zorg] Add email notification for new SystemZ builders

    Reviewed By: gkistanova

    Differential Revision: https://reviews.llvm.org/D33777 — uweigand / detail

#89 (Sep 21, 2017 1:50:48 PM)

  1. [zorg] Add another build slave to the reverse iterator builder

    Reviewers: mgrang, zinob, gkistanova, vleschuk

    Reviewed By: gkistanova

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D38152 — pzheng / detail
  2. Use ninja for all stages to unify the tools. — gkistanova / detail

#88 (Sep 20, 2017 8:12:32 PM)

  1. [zorg] Remove LLVM_APPEND_VC_REV from sanitizer bots — Vitaly Buka / detail

#87 (Sep 19, 2017 8:48:24 AM)

  1. Revert r313600 due to bot failures on Green Dragon.

    http://green.lab.llvm.org/green/job/clang-stage1-configure-RA_check/35585/ — sqlbyme / detail

#86 (Sep 18, 2017 6:09:27 PM)

  1. Drop -O1 case from nrvo-string.cpp

    It relied on r313400 which was reverted in r313589. — hans / detail

#85 (Sep 18, 2017 3:31:19 PM)

  1. [sanitizer] Run scudo tests on Android bot

    Summary:
    Previous Android tests support work was done with D37907 & D37990.
    Running `check-scudo` should now work on the bots.

    Reviewers: vitalybuka

    Reviewed By: vitalybuka

    Differential Revision: https://reviews.llvm.org/D38000 — cryptoad / detail

#84 (Sep 16, 2017 12:02:51 AM)

  1. [sanitizer] Run sanitizer tests on Android bot — Vitaly Buka / detail

#83 (Sep 15, 2017 3:45:19 PM)

  1. [debuginfo-tests] Add string NRVO test for PR34513

    It should pass in -O0 and -O1 after r313400 and r313399. — rnk / detail

#82 (Sep 14, 2017 9:22:29 PM)

  1. Bump version to 5.0.1 — tstellar / detail
  2. Merging r313334:
    ------------------------------------------------------------------------
    r313334 | tstellar | 2017-09-14 19:25:22 -0700 (Thu, 14 Sep 2017) | 15 lines

    merge-request.sh: Update to use new "Fixed by Commit(s)" field

    Summary:
    This will be used instead of the url field to track which commits need
    to be merged.

    This patch also drops support for version 1.x of the bugzilla CLI tool.

    Reviewers: hansw, hans

    Reviewed By: hans

    Subscribers: hans, llvm-commits

    Differential Revision: https://reviews.llvm.org/D37786
    ------------------------------------------------------------------------ — tstellar / detail

#81 (Sep 8, 2017 3:11:27 PM)

  1. [zorg] Reduce the number of concurrent jobs for AOSP build

    Summary: The number of concurrent jobs for AOSP build is reduced from 16 to 8.

    Reviewers: grosser, efriedma, zinob, Meinersbur, gkistanova, vleschuk

    Reviewed By: grosser

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D37641 — pzheng / detail

#80 (Sep 8, 2017 1:40:19 PM)

  1. Restrict debuginfo-tests to native configurations. — probinson / detail

#79 (Sep 6, 2017 10:45:25 AM)

  1. [zorg] Remove clang-cmake-aarch64-42vma builder

    ... and re-purpose hardware for 2nd clang-cmake-aarch64-full builder.
    Hardware hosting "aarch64-full" builder is not very stable, and we
    want to use a known-stable box for this important builder.
    Hardware hosting "aarch64-42vma" builder seems to be solid, and this
    builder is no longer very valuable.
    We are going to run "aarch64-full" builder on the 2 slaves in parallel
    until unstable-ish box crashes again. At that point we are going
    to dicommision that box and leave aarch64-full bot running on 1 slave.

    Patch by Maxim Kuvyrkov.

    Differential Revision: https://reviews.llvm.org/D37459 — rovka / detail

#78 (Sep 1, 2017 2:57:43 PM)

  1. Task to rotate the LNT log. — Chris Matthews / detail

#77 (Sep 1, 2017 9:46:32 AM)

  1. Merging r312285:
    ------------------------------------------------------------------------
    r312285 | ctopper | 2017-08-31 14:39:23 -0700 (Thu, 31 Aug 2017) | 11 lines

    [X86] Don't pull carry through X86ISD::ADD carryin, -1 if we can't guranteed we're really using the carry flag from the add.

    Prior to this patch we had a DAG combine that tried to bypass an X86ISD::ADD with -1 being added to the carry flag of some previous operation. We would then pass the carry flag directly to user.

    But this is only safe if the user is looking for the carry flag and not the zero flag.

    So we need to only do this combine in a context where we know what flag the consumer is using.

    Fixes PR34381.

    Differential Revision: https://reviews.llvm.org/D37317
    ------------------------------------------------------------------------ — hans / detail

#74 (Aug 31, 2017 11:29:22 AM)

  1. Fix debuginfo-tests with GDB on Linux

    Summary:
    Split asan.c into asan.c and asan-blocks.c, which will be
    darwin-specific. I suspect we could make it pass on Linux by adding
    cmake to build BlocksRuntime from compiler-rt, but I'm not shaving that
    yak yet.

    asan.c and safestack.c: GDB and LLDB appear to print aggregates
    differently today. Print individual elements instead of the entire
    aggregate.

    dbg-arg.c: GDB doesn't appear to print leading zeros when printing
    pointers.

    stack-var.c: Add the optnone attribute so that LLVM won't optimize away
    this no-op function call. This should be a cross-platform failure
    observable on Mac, so this is surprising.

    Reviewers: aprantl, dblaikie

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D37344 — rnk / detail

#73 (Aug 30, 2017 4:29:38 PM)

  1. Consistently use code font for command-line flags in the release notes. — rsmith / detail
  2. Add a couple of release note updates for C++ changes since Clang 4. — rsmith / detail

#72 (Aug 30, 2017 12:33:48 PM)

  1. ReleaseNotes: one back-tick too many — hans / detail
  2. ReleaseNotes: remove another in-progress warning — hans / detail
  3. ReleaseNotes: remove another in-progress warning — hans / detail
  4. Merging r312149:
    ------------------------------------------------------------------------
    r312149 | hans | 2017-08-30 11:35:44 -0700 (Wed, 30 Aug 2017) | 1 line

    docs: typo fix
    ------------------------------------------------------------------------ — hans / detail

#71 (Aug 29, 2017 5:55:09 PM)

  1. Revert r311925: i686 is back. — eugenis / detail

#70 (Aug 29, 2017 3:01:30 PM)

  1. Merging r312022:
    ------------------------------------------------------------------------
    r312022 | hans | 2017-08-29 11:41:00 -0700 (Tue, 29 Aug 2017) | 10 lines

    [DAG] Bound loop dependence check in merge optimization.

    The loop dependence check looks for dependencies between store merge
    candidates not captured by the chain sub-DAG doing a check of
    predecessors which may be very large. Conservatively bound number of
    nodes checked for compilation time. (Resolves PR34326).

    Landing on behalf of Nirav Dave to unblock the 5.0.0 release.

    Differential Revision: https://reviews.llvm.org/D37220
    ------------------------------------------------------------------------ — hans / detail

#69 (Aug 29, 2017 11:53:53 AM)

  1. Merging r311835:
    ------------------------------------------------------------------------
    r311835 | dhinton | 2017-08-26 14:08:51 -0700 (Sat, 26 Aug 2017) | 12 lines

    [Dominators] Remove redundant explicit template instantiation.

    Summary:
    Remove redundant explicit template instantiation.

    This was reported by Andrew Kelley building release_50 with gcc7.2.0 on MacOS: duplicate symbol llvm::DominatorTreeBase.

    Reviewers: kuhar, andrewrk, davide, hans

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D37185
    ------------------------------------------------------------------------ — hans / detail
  2. Merging r311823: (+update ClangCommandLineReference.rst)
    ------------------------------------------------------------------------
    r311823 | rsmith | 2017-08-25 18:04:35 -0700 (Fri, 25 Aug 2017) | 16 lines

    Add flag to request Clang is ABI-compatible with older versions of itself

    This patch adds a flag -fclang-abi-compat that can be used to request that
    Clang attempts to be ABI-compatible with some older version of itself.

    This is provided on a best-effort basis; right now, this can be used to undo
    the ABI change in r310401, reverting Clang to its prior C++ ABI for pass/return
    by value of class types affected by that change, and to undo the ABI change in
    r262688, reverting Clang to using integer registers rather than SSE registers
    for passing <1 x long long> vectors. The intent is that we will maintain this
    backwards compatibility path as we make ABI-breaking fixes in future.

    The reversion to the old behavior for r310401 is also applied to the PS4 target
    since that change is not part of its platform ABI (which is essentially to do
    whatever Clang 3.2 did).

    ------------------------------------------------------------------------ — hans / detail

#68 (Aug 28, 2017 2:03:01 PM)

  1. ReleaseNotes: NetBSD LLDB improvements

    By Kamil Rytarowski! — hans / detail
  2. ReleaseNotes: llvm-dlltool

    By Martell Malone! — hans / detail
  3. [sanitizer] Move Android arm comment earlier (requested by eugenis) — mgorny / detail
  4. [sanitizer] Update i686->i386 to match rename in compiler-rt

    Update arch name used by the Android buildbot to reference "i386" rather
    than "i686" since this is the only x86 library name post D26796 + D26764.
    This is necessary so that the scripts push the correct library file.

    Differential Revision: https://reviews.llvm.org/D37226 — mgorny / detail
  5. ReleaseNotes: LLVM_REVERSE_ITERATION

    By Mandeep Singh Grang! — hans / detail
  6. index.rst: Remove doxygen link which doesn't work — hans / detail
  7. index.rst: remove in-progress notice — hans / detail

#67 (Aug 28, 2017 11:50:29 AM)

  1. [zorg] Increase AOSP build timeout to 240s

    Summary: We lift the timeout value by one minute for now.

    Reviewers: grosser, zinob, eli.friedman, gkistanova, vleschuk

    Reviewed By: grosser

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D37169 — pzheng / detail

#66 (Aug 25, 2017 3:07:32 PM)

  1. Merging r311792:
    ------------------------------------------------------------------------
    r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines

    [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
    alignments

    Indent should be compared before nesting level to determine if a token
    is on the same scope as the one we align with. Because it was inverted,
    clang-format sometimes tried to align tokens with tokens from outer
    scopes, causing the assert(Shift >= 0) to fire.

    This fixes bug #33507. Patch by Beren Minor, thank you!
    ------------------------------------------------------------------------ — hans / detail
  2. Merging r311695:
    ------------------------------------------------------------------------
    r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines

    [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).

    Do not sanitize the 'this' pointer of a member call operator for a lambda with
    no capture-default, since that call operator can legitimately be called with a
    null this pointer from the static invoker function. Any actual call with a null
    this pointer should still be caught in the caller (if it is being sanitized).

    This reinstates r311589 (reverted in r311680) with the above fix.

    ------------------------------------------------------------------------ — hans / detail

#65 (Aug 25, 2017 3:03:11 AM)

  1. [mips][Release Notes] Release notes for 5.0

    Reviewers: atanasyan, nitesh.jain

    Differential Revision: https://reviews.llvm.org/D37077 — sdardis / detail

#64 (Aug 24, 2017 6:01:17 PM)

  1. ReleaseNotes: Note about opt-viewer.py, by Adam Nemet — hans / detail
  2. Merging r311674:
    ------------------------------------------------------------------------
    r311674 | hans | 2017-08-24 10:00:36 -0700 (Thu, 24 Aug 2017) | 3 lines

    Mark allocator_oom_test.cc unsupported on arm & aarch64 (PR33972)

    The buildbots don't seem to like it.
    ------------------------------------------------------------------------ — hans / detail
  3. Update ABI lists for 5.0 — ericwf / detail

#63 (Aug 24, 2017 4:45:59 PM)

  1. ReleaseNotes: typo — hans / detail
  2. ReleaseNotes: remove one more in-progress warning — hans / detail

#62 (Aug 24, 2017 3:58:33 PM)

  1. ReleaseNotes: remove boilerplate — hans / detail
  2. ReleaseNotes: drop in-progress warning — hans / detail
  3. ReleaseNotes: remove boiler-plate, and minor fixes — hans / detail
  4. ReleaseNotes: drop in-progress warning — hans / detail
  5. ReleaseNotes: remove boiler-plate, and minor fixes — hans / detail
  6. ReleaseNotes: remove in-progress warning — hans / detail

#61 (Aug 24, 2017 9:50:45 AM)

  1. Merging r311601:
    ------------------------------------------------------------------------
    r311601 | adrian | 2017-08-23 14:24:12 -0700 (Wed, 23 Aug 2017) | 5 lines

    Fix a bug in CGDebugInfo::EmitInlineFunctionStart causing DILocations to be
    parented in function declarations.

    Fixes PR33997.
    https://bugs.llvm.org/show_bug.cgi?id=33997
    ------------------------------------------------------------------------ — hans / detail
  2. Merging r311623:
    ------------------------------------------------------------------------
    r311623 | hans | 2017-08-23 18:08:27 -0700 (Wed, 23 Aug 2017) | 11 lines

    [DAG] Fix Node Replacement in PromoteIntBinOp

    When one operand is a user of another in a promoted binary operation
    we may replace and delete the returned value before returning
    triggering an assertion. Reorder node replacements to prevent this.

    Fixes PR34137.

    Landing on behalf of Nirav.

    Differential Revision: https://reviews.llvm.org/D36581
    ------------------------------------------------------------------------ — hans / detail
  3. Release Notes fix

    Patch by Marek Kurdej! — hans / detail

#60 (Aug 24, 2017 1:58:01 AM)

  1. clang-native-arm-lnt-perf: Move to test-suite producer

    Move the ARM performance-tracking bot to the test-suite producer instead
    of the old-fashioned nt one. This allows us to submit full perf results,
    and is generally a better maintained producer.

    If the results turn out to be too noisy, we might want to also add
    '--run-under', 'taskset -a -c 1'. However, that will probably require
    some fiddling with the board since the cores are dynamically put into
    offline mode and that sometimes confuses taskset. — rovka / detail

#59 (Aug 23, 2017 2:43:41 PM)

  1. Merging r311554:
    ------------------------------------------------------------------------
    r311554 | mcrosier | 2017-08-23 07:10:06 -0700 (Wed, 23 Aug 2017) | 10 lines

    [Reassociate] Don't canonicalize x + (-Constant * y) -> x - (Constant * y)..

    ..if the resulting subtract will be broken up later.  This can cause us to get
    into an infinite loop.

    x + (-5.0 * y)      -> x - (5.0 * y)       ; Canonicalize neg const
    x - (5.0 * y)       -> x + (0 - (5.0 * y)) ; Break up subtract
    x + (0 - (5.0 * y)) -> x + (-5.0 * y)      ; Replace 0-X with X*-1.

    PR34078
    ------------------------------------------------------------------------ — hans / detail
  2. Merging r311565:
    ------------------------------------------------------------------------
    r311565 | hans | 2017-08-23 08:43:28 -0700 (Wed, 23 Aug 2017) | 8 lines

    LowerAtomic: Don't skip optnone functions; atomic still need lowering (PR34020)

    The lowering isn't really an optimization, so optnone shouldn't make a
    difference. ARM relies on the pass running when using "-mthread-model
    single", because in that mode, it doesn't run AtomicExpand. See bug for
    more details.

    Differential Revision: https://reviews.llvm.org/D37040
    ------------------------------------------------------------------------ — hans / detail

#58 (Aug 23, 2017 2:32:29 PM)

  1. Merging r311555:
    ------------------------------------------------------------------------
    r311555 | oleg | 2017-08-23 07:26:31 -0700 (Wed, 23 Aug 2017) | 14 lines

    [ARM][Compiler-rt] Fix AEABI builtins to correctly pass arguments to non-AEABI functions on HF targets

    Summary:
    This is a patch for PR34167.

    On HF targets functions like `__{eq,lt,le,ge,gt}df2` and `__{eq,lt,le,ge,gt}sf2` expect their arguments to be passed in d/s registers, while some of the AEABI builtins pass them in r registers.

    Reviewers: compnerd, peter.smith, asl

    Reviewed By: peter.smith, asl

    Subscribers: peter.smith, aemerson, dberris, javed.absar, llvm-commits, asl, kristof.beyls

    Differential Revision: https://reviews.llvm.org/D36675
    ------------------------------------------------------------------------ — hans / detail
  2. Revert r307529 "This patch completely replaces the scheduling information for the SandyBridge architecture"

    This caused PR34080, which seems to have been fixed by r310792, but that change
    introduced severe performance regressions.

    Reverting to unblock the 5.0.0 release while these issues are worked out on trunk.

    Also reverting a few tests that were added later and depended on the new scheduling:

        LLVM :: CodeGen/X86/f16c-schedule.ll
        LLVM :: CodeGen/X86/lea32-schedule.ll
        LLVM :: CodeGen/X86/lea64-schedule.ll
        LLVM :: CodeGen/X86/popcnt-schedule.ll — hans / detail

#57 (Aug 23, 2017 1:57:40 PM)

  1. Revert r309328 and r309290 (which merged r309327 and r309226).

    The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
    well as the discussion on the r309226 cfe-commits thread.

    These changes don't seem to be addressing any regression from 4.0.0, so rather
    than scrambling to fix this on the branch, let's revert to safety. — hans / detail
  2. Merging r311572:
    ------------------------------------------------------------------------
    r311572 | ctopper | 2017-08-23 09:41:02 -0700 (Wed, 23 Aug 2017) | 9 lines

    [AVX512] Don't create SHRUNKBLEND SDNodes for 512-bit vectors

    There are no 512-bit blend instructions so we shouldn't create SHRUNKBLEND for them.

    On a side note, it looks like there may be a missed opportunity for constant folding TESTM when LHS and RHS are equal.

    This fixes PR34139.

    Differential Revision: https://reviews.llvm.org/D36992
    ------------------------------------------------------------------------ — hans / detail
  3. Merging r311330:
    ------------------------------------------------------------------------
    r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines

    Fixed a crash on replaying Preamble's PP conditional stack.

    Summary:
    The crash occurs when the first token after a preamble is a macro
    expansion.
    Fixed by moving replayPreambleConditionalStack from Parser into
    Preprocessor. It is now called right after the predefines file is
    processed.

    Reviewers: erikjv, bkramer, klimek, yvvan

    Reviewed By: bkramer

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36872
    ------------------------------------------------------------------------ — hans / detail

#56 (Aug 23, 2017 12:36:43 PM)

  1. Merging r311496:
    ------------------------------------------------------------------------
    r311496 | hans | 2017-08-22 14:54:37 -0700 (Tue, 22 Aug 2017) | 1 line

    [profile] Fix warning about C++ style comment in C file
    ------------------------------------------------------------------------ — hans / detail
  2. Merging r311495:
    ------------------------------------------------------------------------
    r311495 | hans | 2017-08-22 14:54:37 -0700 (Tue, 22 Aug 2017) | 6 lines

    [esan] Use stack_t instead of struct sigaltstack (PR34011)

    The struct tag is going away in soon-to-be-released glibc 2.26 and the
    stack_t typedef seems to have been there forever.

    Patch by Bernhard Rosenkraenzer!
    ------------------------------------------------------------------------ — hans / detail

#55 (Aug 23, 2017 10:41:28 AM)

  1. [ARM] more release notes updates for 5.0 — rengolin / detail
  2. Merging r311532:
    ------------------------------------------------------------------------
    r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines

    [clang-format] Align trailing comments if ColumnLimit is 0

    Summary:
    ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with

      https://llvm.org/svn/llvm-project/cfe/trunk@304687

    introduced via

      https://reviews.llvm.org/D33830

    and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.

    Should go into clang-5.0 IMHO.

    Contributed by @pboettch!

    Reviewers: djasper, krasimir

    Reviewed By: djasper, krasimir

    Subscribers: hans, klimek

    Differential Revision: https://reviews.llvm.org/D36967
    ------------------------------------------------------------------------ — hans / detail

#54 (Aug 23, 2017 2:31:30 AM)

  1. [RelNotes,AArch64] Mention improved instruction fusion and fun alignment.

    Reviewers: t.p.northover, hans, kristof.beyls

    Reviewed By: hans

    Subscribers: aemerson, rengolin, llvm-commits

    Differential Revision: https://reviews.llvm.org/D36965 — fhahn / detail

#53 (Aug 22, 2017 5:51:09 PM)

  1. [libFuzzer] disable libpng-1.2.56 on the libFuzzer bot (too flaky) — kcc / detail

#52 (Aug 22, 2017 3:59:55 PM)

  1. Merging r311397:
    ------------------------------------------------------------------------
    r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines

    [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
    supplied.

    With this change, -fno-exceptions disables unwind tables unless
    -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
    emitting unwind tables).

    rdar://problem/33934446
    ------------------------------------------------------------------------ — hans / detail

#51 (Aug 22, 2017 3:22:51 PM)

  1. Merging r311391:
    ------------------------------------------------------------------------
    r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines

    [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.

    This is a reasonably non-intrusive change, which I've verified
    works for both x86 and x64 DevDiv-internal builds.

    The idea is to change `bool IsVS2017OrNewer` into a 3-state
    `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
    released VS 2017 or newer, or released VS 2015 or older. When looking at
    the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
    `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.

    After we get past the directory structure validation, we use this knowledge
    to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
    we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
    uses that. It also knows that DevDiv-internal builds have an `"inc"`
    subdirectory instead of `"include"`.

    This may still not be the "right" fix in any sense, but I believe that it's
    non-intrusive in the sense that if the special directory names aren't found,
    no codepaths are affected. (`ToolsetLayout::OlderVS` and
    `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
    or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
    which are places where Clang cares about VS's directory structure, and the
    only one that isn't being patched is some logic to deal with
    cross-compilation. I'm fine with that not working for DevDiv-internal builds
    for the moment (we typically test the native compilers), so I added a comment.

    Fixes D36860.
    ------------------------------------------------------------------------ — hans / detail

#50 (Aug 22, 2017 1:14:35 PM)

  1. [Docs] Update release notes for PPC — kbarton / detail
  2. [Docs] Added release notes for OpenCL.

    Differential Revision: https://reviews.llvm.org/D36951 — stulova / detail

#49 (Aug 22, 2017 11:50:41 AM)

  1. Merging r311387:
    ------------------------------------------------------------------------
    r311387 | steven_wu | 2017-08-21 14:49:13 -0700 (Mon, 21 Aug 2017) | 16 lines

    [IR] AutoUpgrade ModuleFlagBehavior for PIC and PIE level

    Summary:
    From r303590, ModuleFlagBehavior for PIC and PIE level is changed from
    Error to Max. This will cause bitcode compatibility issue when linking
    against a bitcode static archive built with old compiler.
    Add an auto-ugprade path to upgrade the the ModuleFlagBehavior in the
    old bitcode to match the new one so IRLinker can link them.

    Reviewers: tejohnson, mehdi_amini, dexonsmith

    Reviewed By: dexonsmith

    Subscribers: hans, llvm-commits

    Differential Revision: https://reviews.llvm.org/D36556
    ------------------------------------------------------------------------ — hans / detail

#48 (Aug 22, 2017 10:57:29 AM)

  1. Merging r311263:
    ------------------------------------------------------------------------
    r311263 | ctopper | 2017-08-19 15:02:02 -0700 (Sat, 19 Aug 2017) | 1 line

    [AVX512] Use alignedstore256 in a pattern that's emitting a 256-bit movaps from an extract subvector operation.
    ------------------------------------------------------------------------ — hans / detail
  2. ReleaseNotes: coroutines update from Gor — hans / detail

#47 (Aug 22, 2017 9:48:08 AM)

  1. Merging r311443:
    ------------------------------------------------------------------------
    r311443 | arphaman | 2017-08-22 03:38:07 -0700 (Tue, 22 Aug 2017) | 15 lines

    [ObjC] Check written attributes only when synthesizing ambiguous property

    This commit fixes a bug introduced in r307903. The attribute ambiguity checker
    that was introduced in r307903 checked all property attributes, which caused
    errors for source-compatible properties, like:

    @property (nonatomic, readonly) NSObject *prop;
    @property (nonatomic, readwrite) NSObject *prop;

    because the readwrite property would get implicit 'strong' attribute. The
    ambiguity checker should be concerned about explicitly specified attributes
    only.

    rdar://33748089

    ------------------------------------------------------------------------ — hans / detail
  2. Merging r311429:
    ------------------------------------------------------------------------
    r311429 | ctopper | 2017-08-21 22:40:17 -0700 (Mon, 21 Aug 2017) | 9 lines

    [X86] Prevent several calls to ISD::isConstantSplatVector from returning a narrower APInt than the original scalar type

    ISD::isConstantSplatVector can shrink to the smallest splat width. But we don't check the size of the resulting APInt at all. This can cause us to misinterpret the results.

    This patch just adds a flag to prevent the APInt from changing width.

    Fixes PR34271.

    Differential Revision: https://reviews.llvm.org/D36996
    ------------------------------------------------------------------------ — hans / detail
  3. Merging r311061:
    ------------------------------------------------------------------------
    r311061 | compnerd | 2017-08-16 19:42:24 -0700 (Wed, 16 Aug 2017) | 10 lines

    ARM: mark CPSR as clobbered for Windows VLAs

    When lowering a VLA, we emit a __chstk call.  However, this call can
    internally clobber CPSR.  We did not mark this register as an ImpDef,
    which could potentially allow a comparison to be hoisted above the call
    to `__chkstk`.  In such a case, the CPSR could be clobbered, and the
    check invalidated.  When the support was initially added, it seemed that
    the call would take care of preventing CPSR from being clobbered, but
    this is not the case.  Mark the register as clobbered to fix a possible
    state corruption.
    ------------------------------------------------------------------------ — hans / detail

#46 (Aug 22, 2017 9:06:57 AM)

  1. [RelNotes,ARM] Mention improved ARM/Thumb codegen and LTO.

    Reviewers: echristo, rengolin, kristof.beyls, hans, t.p.northover

    Reviewed By: hans

    Subscribers: aemerson, inglorion, llvm-commits

    Differential Revision: https://reviews.llvm.org/D36968 — fhahn / detail

#44 (Aug 22, 2017 6:31:35 AM)

  1. Mention libclang code-completion changes in release notes — arphaman / detail
  2. Mention #pragma pack PCH serialization change in release notes — arphaman / detail
  3. Mention #pragma clang attribute in the release notes — arphaman / detail
  4. Mention the ObjC property synthesis changes in release notes — arphaman / detail

#43 (Aug 22, 2017 4:19:13 AM)

  1. [Sema] Update release notes with details of implicit scalar to vector conversions

    Add notes on this to the C language section, along with the C++ section.

    Reviewers: bruno, hans

    Differential Revision: https://reviews.llvm.org/D36954 — sdardis / detail

#42 (Aug 21, 2017 7:07:21 PM)

  1. [libFuzzer] fully enable the proj4-2017-08-14 test — kcc / detail

#41 (Aug 21, 2017 5:06:29 PM)

  1. Merging r310983:
    ------------------------------------------------------------------------
    r310983 | rsmith | 2017-08-15 18:49:53 -0700 (Tue, 15 Aug 2017) | 31 lines

    PR19668, PR23034: Fix handling of move constructors and deleted copy
    constructors when deciding whether classes should be passed indirectly.

    This fixes ABI differences between Clang and GCC:

    * Previously, Clang ignored the move constructor when making this
       determination. It now takes the move constructor into account, per
       https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
       seem recent, but the ABI change was agreed on the Itanium C++ ABI
       list a long time ago).

    * Previously, Clang's behavior when the copy constructor was deleted
       was unstable -- depending on whether the lazy declaration of the
       copy constructor had been triggered, you might get different behavior.
       We now eagerly declare the copy constructor whenever its deletedness
       is unclear, and ignore deleted copy/move constructors when looking for
       a trivial such constructor.

    This also fixes an ABI difference between Clang and MSVC:

    * If the copy constructor would be implicitly deleted (but has not been
       lazily declared yet), for instance because the class has an rvalue
       reference member, we would pass it directly. We now pass such a class
       indirectly, matching MSVC.

    Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
    Schmidt, which was based on a patch by Reid Kleckner!

    This is a re-commit of r310401, which was reverted in r310464 due to ARM
    failures (which should now be fixed).

    ------------------------------------------------------------------------ — hans / detail
  2. Merging r311071:
    ------------------------------------------------------------------------
    r311071 | eladcohen | 2017-08-17 01:06:36 -0700 (Thu, 17 Aug 2017) | 13 lines

    [SelectionDAG] Teach the vector-types operand scalarizer about SETCC

    When v1i1 is legal (e.g. AVX512) the legalizer can reach
    a case where a v1i1 SETCC with an illgeal vector type operand
    wasn't scalarized (since v1i1 is legal) but its operands does
    have to be scalarized. This used to assert because SETCC was
    missing from the vector operand scalarizer.

    This patch attemps to teach the legalizer to handle these cases
    by scalazring the operands, converting the node into a scalar
    SETCC node.

    Differential revision: https://reviews.llvm.org/D36651
    ------------------------------------------------------------------------ — hans / detail
  3. Merging r310990:
    ------------------------------------------------------------------------
    r310990 | mstorsjo | 2017-08-15 22:18:36 -0700 (Tue, 15 Aug 2017) | 18 lines

    [llvm-dlltool] Fix creating stdcall/fastcall import libraries for i386

    Hook up the -k option (that in the original GNU dlltool removes the
    @n suffix from the symbol that the final executable ends up linked to).

    In llvm-dlltool, make sure that functions end up with the undecorate
    name type if this option is set and they are decorated. In mingw, when
    creating import libraries from def files instead of creating an import
    library as a side effect of linking a DLL, the symbol names in the def
    contain the stdcall/fastcall decoration (but no leading underscore).

    By setting the undecorate name type, a linker linking to the import
    library will omit the decoration from the DLL import entry.

    With this in place, mingw-w64 for i386 built with llvm-dlltool/clang
    produces import libraries that actually work.

    Differential Revision: https://reviews.llvm.org/D36548
    ------------------------------------------------------------------------ — hans / detail

#40 (Aug 21, 2017 2:29:32 PM)

  1. Merging r311182:
    ------------------------------------------------------------------------
    r311182 | alexshap | 2017-08-18 11:20:43 -0700 (Fri, 18 Aug 2017) | 22 lines

    [analyzer] Fix modeling of constructors

    This diff fixes analyzer's crash (triggered assert) on the newly added test case.
    The assert being discussed is assert(!B.lookup(R, BindingKey::Direct))
    in lib/StaticAnalyzer/Core/RegionStore.cpp, however the root cause is different.
    For classes with empty bases the offsets might be tricky.
    For example, let's assume we have
    struct S: NonEmptyBase, EmptyBase {
         ...
    };
    In this case Clang applies empty base class optimization and
    the offset of EmptyBase will be 0, it can be verified via
    clang -cc1 -x c++ -v -fdump-record-layouts main.cpp -emit-llvm -o /dev/null.
    When the analyzer tries to perform zero initialization of EmptyBase
    it will hit the assert because that region
    has already been "written" by the constructor of NonEmptyBase.

    Test plan:
    make check-all

    Differential revision: https://reviews.llvm.org/D36851

    ------------------------------------------------------------------------ — hans / detail

#39 (Aug 21, 2017 1:25:39 PM)

  1. Merging r310712:
    ------------------------------------------------------------------------
    r310712 | mgorny | 2017-08-11 06:25:20 -0700 (Fri, 11 Aug 2017) | 26 lines

    [cmake] Expose the dependencies of ExecutionEngine as PUBLIC

    Expose the dependencies of LLVMExecutionEngine library as PUBLIC rather
    than PRIVATE when building a shared library. This is necessary because
    the library is not contained but exposes API of other LLVM libraries via
    its headers.

    This causes other libraries to fail to link if the linker verifies for
    correctness of -l flags (i.e. fails on indirect dependencies). This e.g.
    happens when building LLDB against shared LLVM:

      lib64/liblldbExpression.a(IRExecutionUnit.cpp.o):(.data.rel.ro._ZTIN4llvm18MCJITMemoryManagerE[_ZTIN4llvm18MCJITMemoryManagerE]+0x10): undefined reference to `typeinfo for llvm::RuntimeDyld::MemoryManager'
      lib64/liblldbExpression.a(IRExecutionUnit.cpp.o):(.data.rel.ro._ZTVN4llvm18MCJITMemoryManagerE[_ZTVN4llvm18MCJITMemoryManagerE]+0x60): undefined reference to `llvm::RuntimeDyld::MemoryManager::anchor()'
      lib64/liblldbExpression.a(IRExecutionUnit.cpp.o):(.data.rel.ro._ZTVN12lldb_private15IRExecutionUnit13MemoryManagerE[_ZTVN12lldb_private15IRExecutionUnit13MemoryManagerE]+0x48): undefined reference to `llvm::RTDyldMemoryManager::deregisterEHFrames()'
      lib64/liblldbExpression.a(IRExecutionUnit.cpp.o):(.data.rel.ro._ZTVN12lldb_private15IRExecutionUnit13MemoryManagerE[_ZTVN12lldb_private15IRExecutionUnit13MemoryManagerE]+0x60): undefined reference to `llvm::RuntimeDyld::MemoryManager::anchor()'
      lib64/liblldbExpression.a(IRExecutionUnit.cpp.o):(.data.rel.ro._ZTVN12lldb_private15IRExecutionUnit13MemoryManagerE[_ZTVN12lldb_private15IRExecutionUnit13MemoryManagerE]+0xd0): undefined reference to `llvm::JITSymbolResolver::anchor()'
      collect2: error: ld returned 1 exit status

    Declaring the dependencies as PUBLIC guarantees that any package using
    the ExecutionEngine library will also get explicit -l flags for
    the dependent libraries guaranteeing that the symbols exposed in headers
    could be resolved.

    Patch originally written by NAKAMURA Takumi.

    Differential Revision: https://reviews.llvm.org/D36211
    ------------------------------------------------------------------------ — hans / detail
  2. Merging r311229:
    ------------------------------------------------------------------------
    r311229 | chandlerc | 2017-08-18 23:56:11 -0700 (Fri, 18 Aug 2017) | 19 lines

    [Inliner] Fix a nasty bug when inlining a non-recursive trace of
    a function into itself.

    We tried to fix this before in r306495 but that got reverted as the
    assert was actually hit.

    This fixes the original bug (which we seem to have lost track of with
    the revert) by blocking a second remapping when the function being
    inlined is also the caller and the remapping could succeed but
    erroneously.

    The included test case would actually load from an inlined copy of the
    alloca before this change, failing to load the stored value and
    miscompiling.

    Many thanks to Richard Smith for diagnosing a user miscompile to this
    bug, and to Kyle for the first attempt and initial analysis and David Li
    for remembering the issue and how to fix it and suggesting the patch.
    I'm just stitching it together and landing it. =]
    ------------------------------------------------------------------------ — hans / detail
  3. Merging r311258:
    ------------------------------------------------------------------------
    r311258 | mstorsjo | 2017-08-19 12:47:48 -0700 (Sat, 19 Aug 2017) | 9 lines

    [ARM] Check the right order for halves of VZIP/VUZP if both parts are used

    This is the exact same fix as in SVN r247254. In that commit, the fix was
    applied only for isVTRNMask and isVTRN_v_undef_Mask, but the same issue
    is present for VZIP/VUZP as well.

    This fixes PR33921.

    Differential Revision: https://reviews.llvm.org/D36899
    ------------------------------------------------------------------------ — hans / detail
  4. [libFuzzer] add one more test to the bot (in WARNINGS mode for now) — kcc / detail

#38 (Aug 21, 2017 12:10:26 PM)

  1. Update Clang 5.0 release notes for ms_abi and __builtin_ms_va_list for aarch64

    Differential Revision: https://reviews.llvm.org/D36931 — mstorsjo / detail

#37 (Aug 21, 2017 11:20:34 AM)

  1. Mention some warning-related additions and changes for LLVM 5
    release notes — arphaman / detail

#36 (Aug 20, 2017 4:44:50 AM)

  1. [buildbot] r310913 was missing a comma in the nt_flags config.

    Differential revision: https://reviews.llvm.org/D36933 — eladcohen / detail

#34 (Aug 18, 2017 6:30:21 PM)

  1. Update LLVM 5.0 release notes for clang.cindex changes

    Summary: This patch should be applied to clang 5.0 release notes, NOT to trunk.

    Reviewers: rengolin, hans

    Reviewed By: hans

    Differential Revision: https://reviews.llvm.org/D36902 — jbcoe / detail
  2. Add release notes for r299463.

    Implement z3-based constraint solver backend for clang static analyzer. — ddcc / detail
  3. Merging r309474:
    ------------------------------------------------------------------------
    r309474 | smeenai | 2017-07-28 19:54:41 -0700 (Fri, 28 Jul 2017) | 9 lines

    [libc++] Hoist extern template above first use

    This function template is referenced inside class basic_string as a
    friend function. The extern template declaration needs to be above that
    friend declaration to actually take effect.

    This is important because this function was marked as exported in
    r307966, so without the extern template taking effect, it can leak into
    other DSOs as a visible symbol.
    ------------------------------------------------------------------------ — hans / detail
  4. Merging r310262:
    ------------------------------------------------------------------------
    r310262 | sdardis | 2017-08-07 08:37:57 -0700 (Mon, 07 Aug 2017) | 9 lines

    [DebugInfo][DWARF] Correct some usages of PRIx32 to PRIx64

    These lead to tests failing spuriously as the values after being rendered to a
    string were incorrect.

    Reviewers: clayborg

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

    ------------------------------------------------------------------------ — hans / detail
  5. Merging r311087:
    ------------------------------------------------------------------------
    r311087 | sdardis | 2017-08-17 07:14:25 -0700 (Thu, 17 Aug 2017) | 15 lines

    [dfsan] Add explicit zero extensions for shadow parameters in function wrappers.

    In the case where dfsan provides a custom wrapper for a function,
    shadow parameters are added for each parameter of the function.
    These parameters are i16s. For targets which do not consider this
    a legal type, the lack of sign extension information would cause
    LLVM to generate anyexts around their usage with phi variables
    and calling convention logic.

    Address this by introducing zero exts for each shadow parameter.

    Reviewers: pcc, slthakur

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

    ------------------------------------------------------------------------ — hans / detail
  6. Merging r311115:
    ------------------------------------------------------------------------
    r311115 | rsmith | 2017-08-17 12:35:50 -0700 (Thu, 17 Aug 2017) | 2 lines

    PR34161: support evaluation of 'void()' expressions in C++14 onwards.

    ------------------------------------------------------------------------ — hans / detail
  7. Merging r310066:
    ------------------------------------------------------------------------
    r310066 | mcrosier | 2017-08-04 09:44:06 -0700 (Fri, 04 Aug 2017) | 4 lines

    [AArch64] Fix an assertion for pre-index generation with unscaled loads/stores.

    Differential Revision: https://reviews.llvm.org/D36248
    PR34035
    ------------------------------------------------------------------------ — hans / detail

#33 (Aug 17, 2017 4:25:29 PM)

  1. Lines should always be a set

    In the default case, lines was not a set. Oops! — Chris Matthews / detail
  2. A simple log diff for the server

    We monitor log health from Jenkins jobs. Print any new log messages
    from the server. — Chris Matthews / detail
  3. Always show full log

    We can use tail locally if needed. — Chris Matthews / detail
  4. Don't show output prefix

    This only every runs in one place, the prefix is not needed. — Chris Matthews / detail

#32 (Aug 17, 2017 1:42:26 PM)

  1. Files for deploying to lnt.llvm.org — Chris Matthews / detail

#31 (Aug 17, 2017 11:34:24 AM)

  1. Merging r310498:
    ------------------------------------------------------------------------
    r310498 | guyblank | 2017-08-09 10:21:01 -0700 (Wed, 09 Aug 2017) | 9 lines

    [X86][AVX512] Choose correct registers in vpbroadcastb/w

    Fixes the vpbroadcastb/w instructions which use GPRs as source operands, to use the correct registers.
    The full GPR should be used, and not the subregister, as it happens before the patch.

    Fixes pr33795

    Differential Revision:
    https://reviews.llvm.org/D36479
    ------------------------------------------------------------------------ — hans / detail
  2. Merging r309936:
    ------------------------------------------------------------------------
    r309936 | chapuni | 2017-08-03 06:30:43 -0700 (Thu, 03 Aug 2017) | 1 line

    ClangdTests: Try to unbreak the case CLANG_DEFAULT_CXX_STDLIB=libc++.
    ------------------------------------------------------------------------ — hans / detail
  3. Merging r310979:
    ------------------------------------------------------------------------
    r310979 | qcolombet | 2017-08-15 17:17:05 -0700 (Tue, 15 Aug 2017) | 38 lines

    [VirtRegRewriter] Properly model the register liveness on undef subreg definition

    Undef subreg definition means that the content of the super register
    doesn't matter at this point. While that's true for virtual registers,
    this may not hold when replacing them with actual physical registers.
    Indeed, some part of the physical register may be coalesced with the
    related virtual register and thus, the values for those parts matter and
    must be live.

    The fix consists in checking whether or not subregs of the physical register
    being assigned to an undef subreg definition are live through that def and
    insert an implicit use if they are. Doing so, will keep them alive until
    that point like they should be.

    E.g., let vreg14 being assigned to R0_R1 then
    %vreg14:gsub_0<def,read-undef> = COPY %R0 ; <-- R1 is still live here
    %vreg14:gsub_1<def> = COPY %R1

    Before this changes, the rewriter would change the code into:
    %R0<def> = KILL %R0, %R0_R1<imp-def> ; <-- this tells R1 is redefined
    %R1<def> = KILL %R1, %R0_R1<imp-def>, %R0_R1<imp-use> ; this value of this R1
                                                          ; is believed to come
                                                          ; from the previous
                                                          ; instruction

    Because of this invalid liveness, later pass could make wrong choices and in
    particular clobber live register as it happened with the register scavenger in
    llvm.org/PR34107

    Now we would generate:
    %R0<def> = KILL %R0, %R0_R1<imp-def>, %R0_R1<imp-use> ; This tells R1 needs to
                                                          ; reach this point
    %R1<def> = KILL %R1, %R0_R1<imp-def>, %R0_R1<imp-use>

    The bug has been here forever, it got exposed recently because the register
    scavenger got smarter.

    Fixes llvm.org/PR34107
    ------------------------------------------------------------------------ — hans / detail
  4. Merging r310906:
    ------------------------------------------------------------------------
    r310906 | marsupial | 2017-08-14 19:25:36 -0700 (Mon, 14 Aug 2017) | 12 lines

    Propagate error in LazyEmittingLayer::removeModule.

    Summary:
    Besides being the better thing to do, not doing so will triggers an assert with LLVM_ENABLE_ABI_BREAKING_CHECKS.

    Reviewers: lhames

    Reviewed By: lhames

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D36700
    ------------------------------------------------------------------------ — hans / detail

#30 (Aug 17, 2017 10:30:33 AM)

  1. Merging r310776:
    ------------------------------------------------------------------------
    r310776 | rsmith | 2017-08-11 18:46:03 -0700 (Fri, 11 Aug 2017) | 8 lines

    PR34163: Don't cache an incorrect key function for a class if queried between
    the class becoming complete and its inline methods being parsed.

    This replaces the hack of using the "late parsed template" flag to track member
    functions with bodies we've not parsed yet; instead we now use the "will have
    body" flag, which carries the desired implication that the function declaration
    *is* a definition, and that we've just not parsed its body yet.

    ------------------------------------------------------------------------ — hans / detail
  2. Merging r311068:
    ------------------------------------------------------------------------
    r311068 | mstorsjo | 2017-08-16 22:58:27 -0700 (Wed, 16 Aug 2017) | 3 lines

    [llvm-dlltool] Don't crash if no def file is provided or it can't be opened

    Differential Revision: https://reviews.llvm.org/D36780
    ------------------------------------------------------------------------ — hans / detail
  3. Merging r310991:
    ------------------------------------------------------------------------
    r310991 | mstorsjo | 2017-08-15 22:22:49 -0700 (Tue, 15 Aug 2017) | 13 lines

    [COFF] Make the weak aliases optional

    When creating an import library from lld, the cases with
    Name != ExtName shouldn't end up as a weak alias, but as a real
    export of the new name, which is what actually is exported from
    the DLL.

    This restores the behaviour of renamed exports to what it was in
    4.0.

    The other half of this commit, including test, goes into lld.

    Differential Revision: https://reviews.llvm.org/D36633
    ------------------------------------------------------------------------ — hans / detail
  4. Merging r310988:
    ------------------------------------------------------------------------
    r310988 | mstorsjo | 2017-08-15 22:13:16 -0700 (Tue, 15 Aug 2017) | 8 lines

    [COFF] Add SymbolName as a distinct field in COFFImportFile

    The previous Name and ExtName aren't enough to convey all the nuances
    between weak aliases and stdcall decorated function names.

    A test for this will be added in LLD.

    Differential Revision: https://reviews.llvm.org/D36544
    ------------------------------------------------------------------------ — hans / detail
  5. Merging r310672:
    ------------------------------------------------------------------------
    r310672 | ahatanak | 2017-08-10 17:06:49 -0700 (Thu, 10 Aug 2017) | 7 lines

    [Sema][ObjC] Fix spurious -Wcast-qual warnings.

    We do not meaningfully track object const-ness of Objective-C object
    types. Silence the -Wcast-qual warning that is issued when casting to or
    from Objective-C object types results in losing const qualification.

    rdar://problem/33807915
    ------------------------------------------------------------------------ — hans / detail
  6. Merging r310939:
    ------------------------------------------------------------------------
    r310939 | tstellar | 2017-08-15 11:11:56 -0700 (Tue, 15 Aug 2017) | 16 lines

    test-release.sh: Move test-suite setup to beginning of the script

    Summary:
    We want to catch failures early before do the full 3 stage build.

    The goal here is to avoid running through the whole build process and have
    it fail at the end (and not create the binary packages), just because
    some prerequisites failed to install.

    Reviewers: rovka, hans

    Reviewed By: hans

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D36422
    ------------------------------------------------------------------------ — hans / detail
  7. Merging r310926:
    ------------------------------------------------------------------------
    r310926 | steven_wu | 2017-08-15 09:16:33 -0700 (Tue, 15 Aug 2017) | 13 lines

    [Doc] Update LangRef for new Module Flag Behavior

    Summary:
    Add the documentation for the new module flag behavior. The new
    ModFlagBehavior is added in r303590.

    Reviewers: tejohnson

    Reviewed By: tejohnson

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D36557
    ------------------------------------------------------------------------ — hans / detail

#29 (Aug 16, 2017 10:10:41 PM)

  1. Add external project LDC to release notes.

    LDC, the LLVM-based D compiler, is already ready for LLVM 5.0. — redstar / detail

#26 (Aug 14, 2017 6:06:59 PM)

  1. Merging r310706 and r310829:
    ------------------------------------------------------------------------
    r310706 | arphaman | 2017-08-11 05:06:52 -0700 (Fri, 11 Aug 2017) | 11 lines

    [modules] Set the lexical DC for dummy tag decls that refer to hidden
    declarations that are made visible after the dummy is parsed and ODR verified

    Prior to this commit the
    "(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
    assertion failure was triggered during semantic analysis of the dummy
    tag declaration that was declared in another tag declaration because its
    lexical context did not point to the outer tag decl.

    rdar://32292196

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310829 | arphaman | 2017-08-14 03:59:44 -0700 (Mon, 14 Aug 2017) | 5 lines

    Set the lexical context for dummy tag decl inside createTagFromNewDecl

    This is a follow-up to r310706. This change has been recommended by
    Bruno Cardoso Lopes and Richard Smith.

    ------------------------------------------------------------------------ — hans / detail
  2. Merging r310796:
    ------------------------------------------------------------------------
    r310796 | asb | 2017-08-13 11:49:33 -0700 (Sun, 13 Aug 2017) | 16 lines

    Remove RISCV from LLVM_ALL_TARGETS in CMakeLists.txt

    It was mistakenly added to that list in D23560 (committed in rL285712). RISCV
    is an experimental backend and should never have been in that list, I
    mistakenly interpreted LLVM_ALL_TARGETS as a list of all targets rather than
    targets to build by default. Unfortunately, because of this the RISCV backend
    has been building by default when it shouldn't be.

    This commet adds a description comment, which should help to avoid such
    mistakes in the future.

    See my message to llvm-dev for more information and analysis
    <http://lists.llvm.org/pipermail/llvm-dev/2017-August/116347.html>.

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

    ------------------------------------------------------------------------ — hans / detail
  3. Merging r310784:
    ------------------------------------------------------------------------
    r310784 | ctopper | 2017-08-12 13:19:44 -0700 (Sat, 12 Aug 2017) | 16 lines

    [X86] When handling addcarry intrinsic, create the flag result with the correct type so we don't crash if we use a memory instruction

    Summary:
    Previously we were creating the flag result with MVT::Other which is interpretted as a Chain node. If we used a memory form of the instruction we would end up with a copyToReg that consumed the chain result of the adcx instruction instead of the flag result.

    Pretty sure we should be using MVT::i32 here, that's what we do other places we create these node types.

    We should probably consider this for 5.0 as well.

    Reviewers: RKSimon, zvi, spatel

    Reviewed By: RKSimon

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D36645
    ------------------------------------------------------------------------ — hans / detail
  4. Merging r309945, r310779 and r310842:
    ------------------------------------------------------------------------
    r309945 | spatel | 2017-08-03 08:07:37 -0700 (Thu, 03 Aug 2017) | 2 lines

    [BDCE] add tests to show invalid/incomplete transforms

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310779 | spatel | 2017-08-12 09:41:08 -0700 (Sat, 12 Aug 2017) | 13 lines

    [BDCE] clear poison generators after turning a value into zero (PR33695, PR34037)

    nsw, nuw, and exact carry implicit assumptions about their operands, so we need
    to clear those after trivializing a value. We decided there was no danger for
    llvm.assume or metadata, so there's just a comment about that.

    This fixes miscompiles as shown in:
    https://bugs.llvm.org/show_bug.cgi?id=33695
    https://bugs.llvm.org/show_bug.cgi?id=34037

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


    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310842 | spatel | 2017-08-14 08:13:46 -0700 (Mon, 14 Aug 2017) | 16 lines

    [BDCE] reduce scope of an assert (PR34179)

    The assert was added with r310779 and is usually correct,
    but as the test shows, not always. The 'volatile' on the
    load is needed to expose the faulty path because without
    it, DemandedBits would return that the load is just dead
    rather than not demanded, and so we wouldn't hit the
    bogus assert.

    Also, since the lambda is just a single-line now, get rid
    of it and inline the DB.isAllOnesValue() calls.

    This should fix (prevent execution of a faulty assert):
    https://bugs.llvm.org/show_bug.cgi?id=34179


    ------------------------------------------------------------------------ — hans / detail

#25 (Aug 14, 2017 11:37:18 AM)

  1. Merging r310804:
    ------------------------------------------------------------------------
    r310804 | rsmith | 2017-08-13 15:26:53 -0700 (Sun, 13 Aug 2017) | 2 lines

    Replace remaining user-visible mentions of C++1z with C++17.

    ------------------------------------------------------------------------ — hans / detail

#24 (Aug 14, 2017 9:17:35 AM)

  1. Merging r310516:
    ------------------------------------------------------------------------
    r310516 | hans | 2017-08-09 13:12:53 -0700 (Wed, 09 Aug 2017) | 13 lines

    Make -std=c++17 an alias of -std=c++1z

    As suggested on PR33912.

    Trying to keep this small to make it easy to merge to the 5.0 branch. We
    can do a follow-up with more thorough renaming (diagnostic text,
    options, ids, etc.) later.

    (For C++14 this was done in r215982, and I think a smaller patch for the
    3.5 branch:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140818/113013.html)

    Differential Revision: https://reviews.llvm.org/D36532
    ------------------------------------------------------------------------ — hans / detail

#23 (Aug 14, 2017 6:08:31 AM)

  1. Another attempt to fix the env issue for the avx512-sde bot — eladcohen / detail

#21 (Aug 11, 2017 1:36:19 PM)

  1. [libFuzzer] test libFuzzer using -fsanitize=fuzzer/fuzzer-no-link — kcc / detail

#20 (Aug 11, 2017 11:46:05 AM)

  1. Merging r309044, r309071, r309120, r309122, r309140 and r309227 (PR34157)

    ------------------------------------------------------------------------
    r309044 | mgorny | 2017-07-25 15:38:31 -0700 (Tue, 25 Jul 2017) | 14 lines

    [lit] Fix UnboundLocalError for invalid shtest redirects

    Replace the incorrect variable reference when invalid redirect is used.
    This fixes the following issue:

      File "/usr/src/llvm/utils/lit/lit/TestRunner.py", line 316, in processRedirects
        raise InternalShellError(cmd, "Unsupported redirect: %r" % (r,))
    UnboundLocalError: local variable 'r' referenced before assignment

    which in turn broke shtest-shell.py and max-failures.py lit tests.

    The breakage was introduced during refactoring in rL307310.

    Differential Revision: https://reviews.llvm.org/D35857
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309071 | rnk | 2017-07-25 18:27:18 -0700 (Tue, 25 Jul 2017) | 1 line

    [lit] Attempt to fix Python unittest adaptor logic
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309120 | modocache | 2017-07-26 07:59:36 -0700 (Wed, 26 Jul 2017) | 36 lines

    Revert "[lit] Remove dead code not referenced in the LLVM SVN repo."

    Summary:
    This reverts rL306623, which removed `FileBasedTest`, an abstract base class,
    but did not also remove the usages of that class in the lit unit tests.
    The revert fixes four test failures in the lit unit test suite.

    Test plan:
    As per the instructions in `utils/lit/README.txt`, run the lit unit
    test suite:

    ```
    utils/lit/lit.py \
        --path /path/to/your/llvm/build/bin \
        utils/lit/tests
    ```

    Verify that the following tests fail before applying this patch, and
    pass once the patch is applied:

    ```
    lit :: test-data.py
    lit :: test-output.py
    lit :: xunit-output.py
    ```

    In addition, run `check-llvm` to make sure the existing LLVM test suite
    executes normally.

    Reviewers: george.karpenkov, mgorny, dlj

    Reviewed By: mgorny

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D35877
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309122 | modocache | 2017-07-26 08:02:05 -0700 (Wed, 26 Jul 2017) | 32 lines

    [lit] Fix type error for parallelism groups

    Summary:
    Whereas rL299560 and rL309071 call `parallelism_groups.items()`, under the
    assumption that `parallelism_groups` is a `dict` type, the default
    parameter for that attribute is a `list`. Change the default to a
    `dict` for type correctness.

    This regression in the unit tests would have been caught if the
    unit tests were being run continously. It also would have been caught
    if the lit project used a Python type checker such as `mypy`.

    Test Plan:
    As per the instructions in `utils/lit/README.txt`, run the lit unit
    test suite:

    ```
    utils/lit/lit.py \
        --path /path/to/your/llvm/build/bin \
        utils/lit/tests
    ```

    Verify that the test `lit :: unit/TestRunner.py` fails before applying this
    patch, but passes once this patch is applied.

    Reviewers: mgorny, rnk, rafael

    Reviewed By: mgorny

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D35878
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309140 | george.karpenkov | 2017-07-26 10:19:36 -0700 (Wed, 26 Jul 2017) | 3 lines

    Fix LIT test breakage

    Differential Revision: https://reviews.llvm.org/D35867
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309227 | rnk | 2017-07-26 15:57:32 -0700 (Wed, 26 Jul 2017) | 4 lines

    [lit] Fix race between shtest-shell and max-failures tests

    Previously these tests would use the same Output directory leading to
    flaky non-deterministic failures.
    ------------------------------------------------------------------------ — hans / detail
  2. Merging r310704:
    ------------------------------------------------------------------------
    r310704 | smaksimovic | 2017-08-11 04:39:07 -0700 (Fri, 11 Aug 2017) | 8 lines

    Revert r302670 for the upcoming 5.0.0 release

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------ — hans / detail
  3. Revert r310074 (see PR34067 #4) — hans / detail
  4. Merging r310700:
    ------------------------------------------------------------------------
    r310700 | yamaguchi | 2017-08-11 02:44:42 -0700 (Fri, 11 Aug 2017) | 11 lines

    [Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

    Summary:
    I thought we should add this information to release notes, because we
    added a new flag to clang driver.

    Reviewers: v.g.vassilev, teemperor, ruiu

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36567
    ------------------------------------------------------------------------ — hans / detail
  5. Merging r310694:
    ------------------------------------------------------------------------
    r310694 | rsmith | 2017-08-10 20:39:40 -0700 (Thu, 10 Aug 2017) | 2 lines

    Implement latest feature test macro recommendations, P0096R4.

    ------------------------------------------------------------------------ — hans / detail
  6. Merging r309054:
    ------------------------------------------------------------------------
    r309054 | rsmith | 2017-07-25 16:31:42 -0700 (Tue, 25 Jul 2017) | 2 lines

    Reorder tests to match latest SD-6 draft.

    ------------------------------------------------------------------------ — hans / detail
  7. Merging r310692:
    ------------------------------------------------------------------------
    r310692 | rsmith | 2017-08-10 20:14:20 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33850: Update cxx_dr_status for Clang 5 branch.

    ------------------------------------------------------------------------ — hans / detail

#19 (Aug 11, 2017 9:07:30 AM)

  1. Merging r310691:
    ------------------------------------------------------------------------
    r310691 | rsmith | 2017-08-10 19:04:19 -0700 (Thu, 10 Aug 2017) | 2 lines

    PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

    ------------------------------------------------------------------------ — hans / detail

#18 (Aug 10, 2017 8:35:10 PM)

  1. Merging r310604:
    ------------------------------------------------------------------------
    r310604 | niravd | 2017-08-10 08:12:32 -0700 (Thu, 10 Aug 2017) | 13 lines

    [X86] Keep dependencies when constructing loads in combineStore

    Summary:
    Preserve chain dependecies between old and new loads constructed to
    prevent loads from reordering below later stores.

    Fixes PR34088.

    Reviewers: craig.topper, spatel, RKSimon, efriedma

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D36528
    ------------------------------------------------------------------------ — hans / detail
  2. Merging r310006:
    ------------------------------------------------------------------------
    r310006 | ahatanak | 2017-08-03 16:55:42 -0700 (Thu, 03 Aug 2017) | 22 lines

    [Driver][Darwin] Pass -munwind-table when !UseSjLjExceptions.

    This commit fixes a bug where clang/llvm doesn't emit an unwind table
    for a function when it is marked noexcept. Without this patch, the
    following code terminates with an uncaught exception on ARM64:

    int foo1() noexcept {
      try {
        throw 0;
      } catch (int i) {
        return 0;
      }
      return 1;
    }

    int main() {
      return foo1();
    }

    rdar://problem/32411865

    Differential Revision: https://reviews.llvm.org/D35693
    ------------------------------------------------------------------------ — hans / detail
  3. Merging r309633, r309636 and r309640:
    ------------------------------------------------------------------------
    r309633 | ahatanak | 2017-07-31 15:19:34 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Make sure the deployment target is earlier than iOS 11 when
    it is inferred from -isysroot.

    This fixes a change that was inadvertently introduced in r309607.

    rdar://problem/32230613
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309636 | ahatanak | 2017-07-31 15:46:00 -0700 (Mon, 31 Jul 2017) | 1 line

    Silence warning -Wmissing-sysroot.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309640 | ahatanak | 2017-07-31 16:08:52 -0700 (Mon, 31 Jul 2017) | 1 line

    Use -target instead of -arch in test case.
    ------------------------------------------------------------------------ — hans / detail
  4. Merging r309607:
    ------------------------------------------------------------------------
    r309607 | ahatanak | 2017-07-31 12:16:40 -0700 (Mon, 31 Jul 2017) | 6 lines

    [Driver] Allow users to silence the warning that is issued when the
    deployment target is earlier than iOS 11 and the target is 32-bit.

    This is a follow-up to r306922.

    rdar://problem/32230613
    ------------------------------------------------------------------------ — hans / detail

#17 (Aug 10, 2017 6:35:15 PM)

  1. Merging r309569:
    ------------------------------------------------------------------------
    r309569 | alexfh | 2017-07-31 08:21:26 -0700 (Mon, 31 Jul 2017) | 39 lines

    Fix -Wshadow false positives with function-local classes.

    Summary:
    Fixes http://llvm.org/PR33947.

    https://godbolt.org/g/54XRMT

    void f(int a) {
      struct A {
        void g(int a) {}
        A() { int a; }
      };
    }

    3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
        void g(int a) {}
                   ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
        A() { int a; }
                  ^
    1 : <source>:1:12: note: previous declaration is here
    void f(int a) {
               ^
    2 warnings generated.

    The local variable `a` of the function `f` can't be accessed from a method of
    the function-local class A, thus no shadowing occurs and no diagnostic is
    needed.

    Reviewers: rnk, rsmith, arphaman, Quuxplusone

    Reviewed By: rnk, Quuxplusone

    Subscribers: Quuxplusone, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35941
    ------------------------------------------------------------------------ — hans / detail
  2. Merging r309614:
    ------------------------------------------------------------------------
    r309614 | kbelochapka | 2017-07-31 13:11:49 -0700 (Mon, 31 Jul 2017) | 7 lines

    [X86][MMX] Added custom lowering action for MMX SELECT (PR30418)
    Fix for pr30418 - error in backend: Cannot select: t17: x86mmx = select_cc t2, Constant:i64<0>, t7, t8, seteq:ch
    Differential Revision: https://reviews.llvm.org/D34661




    ------------------------------------------------------------------------ — hans / detail

#16 (Aug 10, 2017 10:57:39 AM)

  1. Merging r310552:
    ------------------------------------------------------------------------
    r310552 | eladcohen | 2017-08-10 00:44:23 -0700 (Thu, 10 Aug 2017) | 19 lines

    [SelectionDAG] When scalarizing vselect, don't assert on
    a legal cond operand.

    When scalarizing the result of a vselect, the legalizer currently expects
    to already have scalarized the operands. While this is true for the true/false
    operands (which have the same type as the result), it is not case for the
    condition operand. On X86 AVX512, v1i1 is legal - this leads to operations such
    as '< N x type> vselect < N x i1> < N x type> < N x type>' where < N x type > is
    illegal to hit an assertion during the scalarization.

    The handling is similar to r205625.
    This also exposes the fact that (v1i1 extract_subvector) should be legal
    and selectable on AVX512 - We do this by custom lowering to vector_extract_elt.
    This still leaves us in some cases with redundant dag nodes which will be
    combined in a separate soon to come patch.

    This fixes pr33349.

    Differential revision: https://reviews.llvm.org/D36511
    ------------------------------------------------------------------------ — hans / detail
  2. Merging r310481, r310492 and r310510:
    ------------------------------------------------------------------------
    r310481 | davide | 2017-08-09 08:13:50 -0700 (Wed, 09 Aug 2017) | 8 lines

    [ValueTracking] Honour recursion limit.

    The recently improved support for `icmp` in ValueTracking
    (r307304) exposes the fact that `isImplied` condition doesn't
    really bail out if we hit the recursion limit (and calls
    `computeKnownBits` which increases the depth and asserts).

    Differential Revision:  https://reviews.llvm.org/D36512
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310492 | davide | 2017-08-09 09:06:04 -0700 (Wed, 09 Aug 2017) | 1 line

    [ValueTracking] Update tests to unbreak the bots.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310510 | spatel | 2017-08-09 11:56:26 -0700 (Wed, 09 Aug 2017) | 6 lines

    [SimplifyCFG] remove checks for crasher test from r310481

    Not sure why the earlier version would fail, but trying to get the bots
    (and my local machine) to pass again.


    ------------------------------------------------------------------------ — hans / detail
  3. Merging r308847:
    ------------------------------------------------------------------------
    r308847 | mkazantsev | 2017-07-23 08:40:19 -0700 (Sun, 23 Jul 2017) | 24 lines

    [SCEV] Limit max size of AddRecExpr during evolving

    When SCEV calculates product of two SCEVAddRecs from the same loop, it
    tries to combine them into one big AddRecExpr. If the sizes of the initial
    SCEVs were `S1` and `S2`, the size of their product is `S1 + S2 - 1`, and every
    operand of the resulting SCEV is combined from operands of initial SCEV and
    has much higher complexity than they have.

    As result, if we try to calculate something like:
      %x1 = {a,+,b}
      %x2 = mul i32 %x1, %x1
      %x3 = mul i32 %x2, %x1
      %x4 = mul i32 %x3, %x2
      ...
    The size of such SCEVs grows as `2^N`, and the arguments
    become more and more complex as we go forth. This leads
    to long compilation and huge memory consumption.

    This patch sets a limit after which we don't try to combine two
    `SCEVAddRecExpr`s into one. By default, max allowed size of the
    resulting AddRecExpr is set to 16.

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

    ------------------------------------------------------------------------ — hans / detail
  4. Merging r310534:
    ------------------------------------------------------------------------
    r310534 | matze | 2017-08-09 15:22:05 -0700 (Wed, 09 Aug 2017) | 20 lines

    ARM: Fix CMP_SWAP expansion

    Clean up after my misguided attempt in r304267 to "fix" CMP_SWAP
    returning an uninitialized status value.

    - I was always using tMOVi8 to zero the status register which cannot
      encode higher register numbers and llvm would silently miscompile)

    - Nobody was ever looking at that status value outside the expansion.
      ARMDAGToDAGISel::SelectCMP_SWAP() the only place creating CMP_SWAP
      instructions was not mapping anything to it. (The cmpxchg status value
      from llvm IR is lowered to a manual comparison after the CMP_SWAP)

    So this:
    - Renames the register from "status" to "temp" it make it obvious that
      it isn't used outside the expansion.
    - Remove the zeroing status/temp register.
    - Keep the live-in list improvements from r304267

    Fixes http://llvm.org/PR34056
    ------------------------------------------------------------------------ — hans / detail

#15 (Aug 10, 2017 10:01:50 AM)

  1. Enable running 'lnt runtest test-suite' instead of 'lnt runtest nt'.

    A typical configuration for a builder using this to track performance
    of code generated by LLVM could be:

    {
        'name': "builder-name",
        'slavenames': ["slave-name"],
        'builddir': "builder-builddir",
        'factory': ClangBuilder.getClangCMakeBuildFactory(
                      jobs=8,
                      clean=False,
                      checkout_compiler_rt=False,
                      checkout_lld=False,
                      test=False,
                      useTwoStage=False,
                      runTestSuite=True,
                      env={'PATH':'/usr/lib/ccache:/usr/local/sbin:'+
                                  '/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'},
                      testsuite_flags=['--cppflags', '-O3',
                                       '--threads=1',
                                       '--build-threads=8',
                                       '--use-perf=all',
                                       '--run-under', 'taskset -c 1',
                                       '--benchmarking-only',
                                       '--exec-multisample=3',
                                       '--exclude-stat-from-submission=compile'],
                      extra_cmake_args=["-DLLVM_TARGETS_TO_BUILD='AArch64'",
                                        "-DLLVM_PARALLEL_LINK_JOBS=4"],
                      submitURL='http://lnt.llvm.org/submitRun',
                      testerName='LNT-AArch64-O3'),
        'category': 'clang'
    }

    The only difference to using the somewhat deprecated 'lnt runtest nt'
    is that a "testsuite_flags" parameter is defined instead of an
    "nt_flags" parameter.

    Differential Revision: https://reviews.llvm.org/D35402 — kbeyls / detail
  2. Merging r309758:
    ------------------------------------------------------------------------
    r309758 | sanjoy | 2017-08-01 15:37:58 -0700 (Tue, 01 Aug 2017) | 6 lines

    [SCEV/IndVars] Always compute loop exiting values if the backedge count is 0

    If SCEV can prove that the backedge taken count for a loop is zero, it does not
    need to "understand" a recursive PHI to compute its exiting value.

    This should fix PR33885.
    ------------------------------------------------------------------------ — hans / detail

#14 (Aug 9, 2017 2:11:12 PM)

  1. More x86 release notes. — ctopper / detail
  2. ReleaseNotes: Zig — hans / detail

#13 (Aug 8, 2017 3:25:34 PM)

  1. Merging r310253 and r310267:
    ------------------------------------------------------------------------
    r310253 | sdardis | 2017-08-07 06:30:03 -0700 (Mon, 07 Aug 2017) | 2 lines

    [DebugInfo][DWARF] Use PRIx64 explicitly in output.

    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310267 | sdardis | 2017-08-07 09:08:11 -0700 (Mon, 07 Aug 2017) | 2 lines

    [DebugInfo][DWARF] Address paulr's comment on rL310253.

    ------------------------------------------------------------------------ — hans / detail
  2. Merging r310250:
    ------------------------------------------------------------------------
    r310250 | sdardis | 2017-08-07 05:29:38 -0700 (Mon, 07 Aug 2017) | 2 lines

    [llvm-objdump] Use PRIx64 for output of ARM64_RELOC_ADDEND

    ------------------------------------------------------------------------ — hans / detail
  3. Merging r308722:
    ------------------------------------------------------------------------
    r308722 | ibiryukov | 2017-07-21 02:24:00 -0700 (Fri, 21 Jul 2017) | 13 lines

    Fixed failing assert in code completion.

    Summary:
    The code was accessing uninstantiated default argument.
    This resulted in failing assertion at ParmVarDecl::getDefaultArg().

    Reviewers: erikjv, klimek, bkramer, krasimir

    Reviewed By: krasimir

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D35682
    ------------------------------------------------------------------------ — hans / detail
  4. Merging r309263:
    ------------------------------------------------------------------------
    r309263 | psmith | 2017-07-27 03:43:53 -0700 (Thu, 27 Jul 2017) | 6 lines

    [CodeGen][ARM] ARM runtime helper functions are not always soft-fp

    Re-commit r309257 with less precise register checks in arm-float-helpers.c
    test.


    ------------------------------------------------------------------------ — hans / detail
  5. Merging r310359:
    ------------------------------------------------------------------------
    r310359 | n.bozhenov | 2017-08-08 07:13:50 -0700 (Tue, 08 Aug 2017) | 4 lines

    [libclang] Fix PR34055 (incompatible update of clang-c/Index.h)

    Fixes a regression introduced by r308218.

    ------------------------------------------------------------------------ — hans / detail

#12 (Aug 8, 2017 9:39:18 AM)

  1. Adapt polly buildbots after switch to -polly-position=before-vectorizer — grosser / detail

#11 (Aug 7, 2017 5:23:59 PM)

  1. [libFuzzer] use custom compile flags for libFuzzer benchmarks — kcc / detail
  2. Merging r310240:
    ------------------------------------------------------------------------
    r310240 | vitalybuka | 2017-08-07 00:12:33 -0700 (Mon, 07 Aug 2017) | 1 line

    Add -asan-force-dynamic-shadow test
    ------------------------------------------------------------------------ — hans / detail
  3. Merging r310241 and r310242:
    ------------------------------------------------------------------------
    r310241 | vitalybuka | 2017-08-07 00:12:34 -0700 (Mon, 07 Aug 2017) | 3 lines

    [asan] Disable checking of arguments passed by value for --asan-force-dynamic-shadow

    Fails with "Instruction does not dominate all uses!"
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r310242 | vitalybuka | 2017-08-07 00:35:33 -0700 (Mon, 07 Aug 2017) | 1 line

    [asan] Fix asan dynamic shadow check before copyArgsPassedByValToAllocas
    ------------------------------------------------------------------------ — hans / detail

#10 (Aug 7, 2017 2:00:24 PM)

  1. Merging r310158:
    ------------------------------------------------------------------------
    r310158 | rtrieu | 2017-08-04 17:54:19 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ODRHash] Treat some non-templated classes as templated.

    When using nested classes, if the inner class is not templated, but the outer
    class is templated, the inner class will not be templated, but may have some
    traits as if it were.  This is particularly evident if the inner class
    refers to the outer class in some fashion.  Treat any class that is in the
    context of a templated class as also a templated class.

    ------------------------------------------------------------------------ — hans / detail
  2. Remove steps for building and testing libFuzzer on Windows

    They are broken and nobody is maintaining them. — rnk / detail
  3. Merging r310191:
    ------------------------------------------------------------------------
    r310191 | ctopper | 2017-08-05 16:35:54 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled. Clang part

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: cfe-commits

    Differential Revision: https://reviews.llvm.org/D36362
    ------------------------------------------------------------------------ — hans / detail
  4. Merging r310190:
    ------------------------------------------------------------------------
    r310190 | ctopper | 2017-08-05 16:34:44 -0700 (Sat, 05 Aug 2017) | 18 lines

    [X86] Enable isel to use the PAUSE instruction even when SSE2 is disabled

    Summary:
    On older processors this instruction encoding is treated as a NOP.

    MSVC doesn't disable intrinsics based on features the way clang/gcc does. Because the PAUSE instruction encoding doesn't crash older processors, some software out there uses these intrinsics without checking for SSE2.

    This change also seems to also be consistent with gcc behavior.

    Fixes PR34079

    Reviewers: RKSimon, zvi

    Reviewed By: RKSimon

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D36361
    ------------------------------------------------------------------------ — hans / detail
  5. Merging r310071:
    ------------------------------------------------------------------------
    r310071 | rnk | 2017-08-04 10:09:11 -0700 (Fri, 04 Aug 2017) | 8 lines

    [ArgPromotion] Preserve alignment of byval argument in new alloca

    The frontend may have requested a higher alignment for any reason, and
    downstream optimizations may already have taken advantage of it.  We
    should keep the same alignment when moving the allocation from the
    parameter area to the local variable area.

    Fixes PR34038
    ------------------------------------------------------------------------ — hans / detail
  6. Merging r309851:
    ------------------------------------------------------------------------
    r309851 | marshall | 2017-08-02 11:21:34 -0700 (Wed, 02 Aug 2017) | 1 line

    Fix shadowing warning
    ------------------------------------------------------------------------ — hans / detail
  7. Merging r309838:
    ------------------------------------------------------------------------
    r309838 | marshall | 2017-08-02 10:31:09 -0700 (Wed, 02 Aug 2017) | 1 line

    Fix PR33727: std::basic_stringbuf only works with DefaultConstructible allocators. Thanks to Jonathan Wakely for the report and suggested fix
    ------------------------------------------------------------------------ — hans / detail
  8. Merging r309296 and r309307:
    ------------------------------------------------------------------------
    r309296 | marshall | 2017-07-27 10:44:03 -0700 (Thu, 27 Jul 2017) | 1 line

    Implement P0739R0: 'Some improvements to class template argument deduction integration into the standard library' This is an API change (not ABI change) due to a late change in the c++17 standard
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309307 | marshall | 2017-07-27 11:47:35 -0700 (Thu, 27 Jul 2017) | 1 line

    Disable the deduction guide test I added in 309296 for the moment, while I figure out which compilers don't support deduction guides
    ------------------------------------------------------------------------ — hans / detail

#7 (Aug 4, 2017 12:59:57 PM)

  1. [libFuzzer] add -DLIBFUZZER_ENABLE_TESTS=ON to libFuzzer bot — kcc / detail
  2. [libFuzzer] simplify the fuzzer bot following r310075 — kcc / detail
  3. Merging r310057:
    ------------------------------------------------------------------------
    r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

    Revert r304953 for release 5.0.0

    This is causing failures when compiling clang with -O3
    as one of the structures used by clang is passed by
    value and uses the fastcc calling convention.

    Faliures manifest for stage2 mips build.

    ------------------------------------------------------------------------ — hans / detail
  4. Merging r309920:
    ------------------------------------------------------------------------
    r309920 | ericwf | 2017-08-02 21:28:10 -0700 (Wed, 02 Aug 2017) | 5 lines

    Fix libcxx build with glibc 2.26+ by removing xlocale.h include.

    Patch by Khem Raj. Reviewed as D35697. Also see PR33729.


    ------------------------------------------------------------------------ — hans / detail
  5. Merging r309975: (except the docs/ part)
    ------------------------------------------------------------------------
    r309975 | rsmith | 2017-08-03 12:24:27 -0700 (Thu, 03 Aug 2017) | 4 lines

    Don't emit undefined-internal warnings for CXXDeductionGuideDecls.

    Patch by ~paul (cynecx on phabricator)! Some test massaging by me.

    ------------------------------------------------------------------------ — hans / detail

#6 (Aug 3, 2017 3:41:59 PM)

  1. [zorg] Add buildbot with reverse iteration enabled

    Summary:
    This reverse iteration buildbot builds LLVM, Clang and Polly with
    LLVM_REVERSE_ITERATION enabled, and subsequently runs "make check-all". With
    LLVM_REVERSE_ITERATION enabled, all supported unordered llvm containers would be
    iterated in reverse order.

    Reviewers: mgrang, grosser, bollu, gkistanova, zinob, vleschuk

    Reviewed By: mgrang, grosser

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D36203 — pzheng / detail
  2. [zorg] Add optional checkAll step to Polly buildbot

    Summary:
    This step does "make check-all" and can be enabled by checkAll (defaults to
    false in which case only "make check-polly" is run).

    Reviewers: mgrang, zinob, gkistanova, vleschuk, grosser, bollu

    Reviewed By: grosser

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D36277 — pzheng / detail

#5 (Aug 3, 2017 11:34:37 AM)

  1. [zorg] Remove test_polly_format step from Polly buildbot

    Summary:
    The test_polly_format does "make polly-check-format" which is already covered by
    the "make check-polly" step.

    Reviewers: mgrang, zinob, grosser, gkistanova, vleschuk, bollu

    Reviewed By: grosser

    Subscribers: llvm-commits

    Differential Revision: https://reviews.llvm.org/D36276 — pzheng / detail
  2. Merging r309928:
    ------------------------------------------------------------------------
    r309928 | ewancrawford | 2017-08-03 02:23:03 -0700 (Thu, 03 Aug 2017) | 56 lines

    [Cloning] Move distinct GlobalVariable debug info metadata in CloneModule

    Duplicating the distinct Subprogram and CU metadata nodes seems like the incorrect thing to do in CloneModule for GlobalVariable debug info. As it results in the scope of the GlobalVariable DI no longer being consistent with the rest of the module, and the new CU is absent from llvm.dbg.cu.

    Fixed by adding RF_MoveDistinctMDs to MapMetadata flags for GlobalVariables.

    Current unit test IR after clone:
    ```
    @gv = global i32 1, comdat($comdat), !dbg !0, !type !5

    define private void @f() comdat($comdat) personality void ()* @persfn !dbg !14 {

    !llvm.dbg.cu = !{!10}

    !0 = !DIGlobalVariableExpression(var: !1)
    !1 = distinct !DIGlobalVariable(name: "gv", linkageName: "gv", scope: !2, file: !3, line: 1, type: !9, isLocal: false, isDefinition: true)
    !2 = distinct !DISubprogram(name: "f", linkageName: "f", scope: null, file: !3, line: 4, type: !4, isLocal: true, isDefinition: true, scopeLine: 3, isOptimized: false, unit: !6, variables: !5)
    !3 = !DIFile(filename: "filename.c", directory: "/file/dir/")
    !4 = !DISubroutineType(types: !5)
    !5 = !{}
    !6 = distinct !DICompileUnit(language: DW_LANG_C99, file: !7, producer: "CloneModule", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !5, globals: !8)
    !7 = !DIFile(filename: "filename.c", directory: "/file/dir")
    !8 = !{!0}
    !9 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "decltype(nullptr)")
    !10 = distinct !DICompileUnit(language: DW_LANG_C99, file: !7, producer: "CloneModule", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !5, globals: !11)
    !11 = !{!12}
    !12 = !DIGlobalVariableExpression(var: !13)
    !13 = distinct !DIGlobalVariable(name: "gv", linkageName: "gv", scope: !14, file: !3, line: 1, type: !9, isLocal: false, isDefinition: true)
    !14 = distinct !DISubprogram(name: "f", linkageName: "f", scope: null, file: !3, line: 4, type: !4, isLocal: true, isDefinition: true, scopeLine: 3, isOptimized: false, unit: !10, variables: !5)
    ```

    Patched IR after clone:
    ```
    @gv = global i32 1, comdat($comdat), !dbg !0, !type !5

    define private void @f() comdat($comdat) personality void ()* @persfn !dbg !2 {

    !llvm.dbg.cu = !{!6}

    !0 = !DIGlobalVariableExpression(var: !1)
    !1 = distinct !DIGlobalVariable(name: "gv", linkageName: "gv", scope: !2, file: !3, line: 1, type: !9, isLocal: false, isDefinition: true)
    !2 = distinct !DISubprogram(name: "f", linkageName: "f", scope: null, file: !3, line: 4, type: !4, isLocal: true, isDefinition: true, scopeLine: 3, isOptimized: false, unit: !6, variables: !5)
    !3 = !DIFile(filename: "filename.c", directory: "/file/dir/")
    !4 = !DISubroutineType(types: !5)
    !5 = !{}
    !6 = distinct !DICompileUnit(language: DW_LANG_C99, file: !7, producer: "CloneModule", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !5, globals: !8)
    !7 = !DIFile(filename: "filename.c", directory: "/file/dir")
    !8 = !{!0}
    !9 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "decltype(nullptr)")
    ```

    Reviewers: aprantl, probinson, dblaikie, echristo, loladiro
    Reviewed By: aprantl
    Subscribers: llvm-commits
    Differential Revision: https://reviews.llvm.org/D36082

    ------------------------------------------------------------------------ — hans / detail
  3. Merging r309917:
    ------------------------------------------------------------------------
    r309917 | ericwf | 2017-08-02 19:50:43 -0700 (Wed, 02 Aug 2017) | 4 lines

    Add system header pragma to BSD locale fallback headers.

    This prevent leaking warnings to the user about use of C++11
    extensions in C++03.
    ------------------------------------------------------------------------ — hans / detail
  4. Merging r309651 and r309849:
    ------------------------------------------------------------------------
    r309651 | inouehrs | 2017-07-31 20:32:15 -0700 (Mon, 31 Jul 2017) | 16 lines

    [StackColoring] Update AliasAnalysis information in stack coloring pass

    Stack coloring pass need to maintain AliasAnalysis information when merging stack slots of different types.
    Actually, there is a FIXME comment in StackColoring.cpp

    // FIXME: In order to enable the use of TBAA when using AA in CodeGen,
    // we'll also need to update the TBAA nodes in MMOs with values
    // derived from the merged allocas.

    But, TBAA has been already enabled in CodeGen without fixing this pass.
    The incorrect TBAA metadata results in recent failures in bootstrap test on ppc64le (PR33928) by allowing unsafe instruction scheduling.
    Although we observed the problem on ppc64le, this is a platform neutral issue.

    This patch makes the stack coloring pass maintains AliasAnalysis information when merging multiple stack slots.
    ------------------------------------------------------------------------

    ------------------------------------------------------------------------
    r309849 | inouehrs | 2017-08-02 11:16:32 -0700 (Wed, 02 Aug 2017) | 19 lines

    [StackColoring] Update AliasAnalysis information in stack coloring pass (part 2)

    This patch is update after the first patch (https://reviews.llvm.org/rL309651) based on the post-commit comments.

    Stack coloring pass need to maintain AliasAnalysis information when merging stack slots of different types.
    Actually, there is a FIXME comment in StackColoring.cpp

    // FIXME: In order to enable the use of TBAA when using AA in CodeGen,
    // we'll also need to update the TBAA nodes in MMOs with values
    // derived from the merged allocas.

    But, TBAA has been already enabled in CodeGen without fixing this pass.
    The incorrect TBAA metadata results in recent failures in bootstrap test on ppc64le (PR33928) by allowing unsafe instruction scheduling.
    Although we observed the problem on ppc64le, this is a platform neutral issue.

    This patch makes the stack coloring pass maintains AliasAnalysis information when merging multiple stack slots.

    This patch fixes PR33928.
    ------------------------------------------------------------------------ — hans / detail
  5. Merging r309930:
    ------------------------------------------------------------------------
    r309930 | sdardis | 2017-08-03 02:38:46 -0700 (Thu, 03 Aug 2017) | 19 lines

    [SelectionDAG] Resolve PR33978.

    rL306209 taught SelectionDAG how to add the dereferenceable flag when
    expanding memcpy and memmove. The fix however contained a nit where
    the offset + size was constructed as an APInt of PointerSize rather
    than PointerSizeInBits.

    This lead to isDereferenceableAndAlignedPointer() get truncated values or
    values which would be sign extended within that function leading to
    incorrect results.

    Thanks to Alex Crichton for reporting the issue!

    This resolves PR33978.

    Reviewers: inouehrs

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

    ------------------------------------------------------------------------ — hans / detail
  6. Merging r308996:
    ------------------------------------------------------------------------
    r308996 | gornishanov | 2017-07-25 11:01:49 -0700 (Tue, 25 Jul 2017) | 9 lines

    [coroutines] Add serialization/deserialization of coroutines

    Reviewers: rsmith

    Reviewed By: rsmith

    Subscribers: EricWF, cfe-commits

    Differential Revision: https://reviews.llvm.org/D35383
    ------------------------------------------------------------------------ — hans / detail

#4 (Aug 2, 2017 2:06:08 PM)

  1. Merging r309523:
    ------------------------------------------------------------------------
    r309523 | brad | 2017-07-30 14:13:59 -0700 (Sun, 30 Jul 2017) | 2 lines

    Also pass -pie back to the linker when linking on OpenBSD.

    ------------------------------------------------------------------------ — hans / detail
  2. Merging r309744:
    ------------------------------------------------------------------------
    r309744 | mstorsjo | 2017-08-01 14:13:54 -0700 (Tue, 01 Aug 2017) | 29 lines

    [AArch64] Rewrite stack frame handling for win64 vararg functions

    The previous attempt, which made do with a single offset in
    computeCalleeSaveRegisterPairs, wasn't quite enough. The previous
    attempt only worked as long as CombineSPBump == true (since the
    offset would be adjusted later in fixupCalleeSaveRestoreStackOffset).

    Instead include the size for the fixed stack area used for win64
    varargs in calculations in emitPrologue/emitEpilogue. The stack
    consists of mainly three parts;
    - AFI->getLocalStackSize()
    - AFI->getCalleeSavedStackSize()
    - FixedObject

    Most of the places in the code which previously used the CSStackSize
    now use PrologueSaveSize instead, which is the sum of the latter
    two, while some cases which need exactly the middle one use
    AFI->getCalleeSavedStackSize() explicitly instead of a local variable.

    In addition to moving the offsetting into emitPrologue/emitEpilogue
    (which fixes functions with CombineSPBump == false), also set the
    frame pointer to point to the right location, where the frame pointer
    and link register actually are stored. In addition to the prologue/epilogue,
    this also requires changes to resolveFrameIndexReference.

    Add tests for a function that keeps a frame pointer and another one
    that uses a VLA.

    Differential Revision: https://reviews.llvm.org/D35919
    ------------------------------------------------------------------------ — hans / detail
  3. Merging r309555:
    ------------------------------------------------------------------------
    r309555 | mstorsjo | 2017-07-31 04:18:41 -0700 (Mon, 31 Jul 2017) | 10 lines

    [llvm-dlltool] Write correct weak externals

    Previously, the created object files for the import library were broken.
    Write the symbol table before the string table. Simplify the code by
    using a separate variable Prefix instead of duplicating a few lines.

    Also update the coff-weak-exports to actually check that the generated
    weak symbols can be found as intended.

    Differential Revision: https://reviews.llvm.org/D36065
    ------------------------------------------------------------------------ — hans / detail
  4. Merging r309594:
    ------------------------------------------------------------------------
    r309594 | majnemer | 2017-07-31 10:47:07 -0700 (Mon, 31 Jul 2017) | 4 lines

    [IPSCCP] Guard a user of getInitializer with hasDefinitiveInitializer

    We are not allowed to reason about an initializer value without first
    consulting hasDefinitiveInitializer.
    ------------------------------------------------------------------------ — hans / detail