Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Branch: rust-llvm-2015…
Commits on Jan 30, 2016
  1. Don't compile usage of std::thread

    alexcrichton committed Jan 29, 2016
    As of the time of this writing it's not actually used anywhere meaningfullly
    throughout the LLVM repo that we need, and it unfortunately uses `std::thread`
    which isn't available in mingw-w64 toolchains with the win32 threading model
    (the one that we use).
    
    Two major changes were made to achieve this:
    
    1. The `ThreadPool.cpp` file was just entirely commented out. This isn't used
       anywhere in the LLVM repo nor in Rust itself.
    2. The `ParallelCG.cpp` file was mostly deleted. Unfortunately it's used a few
       places in LLVM and is needed to link correctly, but we in Rust don't use it
       at all. For now it's just a stub implementation that hopefully compiles
       everywhere, but perhaps we can find a less invasive (aka doesn't have rebase
       conflicts in the future) change to apply soon.
    
    For reference, the upstream LLVM bug has been reported [1]
    
    [1]: https://llvm.org/bugs/show_bug.cgi?id=26365
Commits on Jan 29, 2016
  1. [WinEH] Don't perform state stores in cleanups

    majnemer authored and alexcrichton committed Jan 29, 2016
    Our cleanups do not support true lexical nesting of funclets which
    obviates the need to perform state stores.
    
    This fixes PR26361.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259161 91177308-0d34-0410-b5e6-96231b3b80d8
  2. Add support for i1 compare operations to X86 FastISel, and ignore llv…

    pcwalton authored and alexcrichton committed Jun 27, 2015
    …m.assume()
    
    intrinsics in the target-independent FastISel.
  3. Fix compile on older clang/OSX versions

    alexcrichton committed Jun 17, 2015
    Apparently there's a bug in older clang versions which rejects this code, and
    the fix is to just remove the override keyword for now. This is tracked in this
    llvm bug:
    
      https://llvm.org/bugs/show_bug.cgi?id=22619
  4. Add some Rust allocation functions to TargetLibraryInfo + MemoryBuiltins

    alexcrichton committed May 14, 2015
    Original patch by Nathaniel Theis
  5. Disable the PassInfo cache assertions to make the cache effective in …

    dotdash authored and alexcrichton committed Feb 12, 2015
    …builds with assertions enabld
    
    Since the PassInfo cache does a regular, uncached, slow lookup for the
    asserted condition, it's not very effective *cough* when assertions are
    enabled. Since disabling these assertions gives quite a nice perf boost
    and it's not really worse than the patch we had previously, let's just
    do that.
  6. Merging r258922:

    tstellarAMD committed Jan 29, 2016
    ------------------------------------------------------------------------
    r258922 | marek.olsak | 2016-01-27 06:19:45 -0500 (Wed, 27 Jan 2016) |
    12 lines
    
    AMDGPU/SI: Stoney has only 16 LDS banks
    
    Summary:
    This is a candidate for stable, along with all patches that add the
    "stoney"
    processor.
    
    Reviewers: tstellarAMD
    
    Subscribers: arsenm
    
    Differential Revision: http://reviews.llvm.org/D16485
    
    ------------------------------------------------------------------------
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@259207 91177308-0d34-0410-b5e6-96231b3b80d8
  7. Merging r257666:

    tstellarAMD committed Jan 29, 2016
    ------------------------------------------------------------------------
    r257666 | changpeng.fang | 2016-01-13 15:39:25 -0500 (Wed, 13 Jan 2016) | 2 lines
    
    AMDGPU/SI: Update ISA version for FIJI
    
    ------------------------------------------------------------------------
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@259206 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jan 28, 2016
  1. Bring back the test-suite export in test-release without bringing bac…

    Daniel Sanders
    Daniel Sanders committed Jan 28, 2016
    …k the build failures.
    
    Summary:
    r257791 disabled the test-suite export since the addition of CMakeLists.txt was
    causing build failures. This patch exports the test-suite again but does so
    outside the source tree so that it isn't included in the Phase[123] builds.
    
    Reviewers: hans
    
    Subscribers: llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D16679
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@259093 91177308-0d34-0410-b5e6-96231b3b80d8
  2. Merging r258971:

    zmodem committed Jan 28, 2016
    ------------------------------------------------------------------------
    r258971 | spatel | 2016-01-27 11:22:45 -0800 (Wed, 27 Jan 2016) | 26 lines
    
    [SimplifyCFG] limit recursion depth when speculating instructions (PR26308)
    
    This is a fix for:
    https://llvm.org/bugs/show_bug.cgi?id=26308
    
    With the switch to using the TTI cost model in:
    http://reviews.llvm.org/rL228826
    ...it became possible to hit a zero-cost cycle of instructions (gep -> phi -> gep...), 
    so we need a cap for the recursion in DominatesMergePoint().
    
    A recursion depth parameter was already added for a different reason in:
    http://reviews.llvm.org/rL255660
    ...so we can just set a limit for it.
    
    I pulled "10" out of the air and made it an independent parameter that we can play with.
    It might be higher than it needs to be given the currently low default value of 
    PHINodeFoldingThreshold (2). That's the starting cost value that we enter the recursion
    with, and most instructions have cost set to TCC_Basic (1), so I don't think we're going
    to speculate more than 2 instructions with the current parameters.
    
    As noted in the review and the TODO comment, we can do better than just limiting recursion
    depth.
    
    Differential Revision: http://reviews.llvm.org/D16637
    
    
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@259066 91177308-0d34-0410-b5e6-96231b3b80d8
  3. Merging r258471:

    zmodem committed Jan 28, 2016
    ------------------------------------------------------------------------
    r258471 | pirama | 2016-01-21 17:16:57 -0800 (Thu, 21 Jan 2016) | 14 lines
    
    Do not lower VSETCC if operand is an f16 vector
    
    Summary:
    SETCC with f16 vectors has OperationAction set to Expand but still gets
    lowered to FCM* intrinsics based on its result type.  This patch skips
    lowering of VSETCC if the operand is an f16 vector.
    
    v4 and v8 tests included.
    
    Reviewers: ab, jmolloy
    
    Subscribers: srhines, llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D15361
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@259064 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jan 27, 2016
  1. Merging r258891:

    zmodem committed Jan 27, 2016
    ------------------------------------------------------------------------
    r258891 | hans | 2016-01-26 16:19:05 -0800 (Tue, 26 Jan 2016) | 25 lines
    
    test-release.sh: Ignore LC_CTYPE in sed invocation on Darwin
    
    Here, sed is used to prepare object files for comparison via cmp. On my Darwin
    15.4.0 machine, LC_CTYPE is set to UTF-8 (by default, I believe). Under these
    circumstances, anything sed is made to read will be treated as UTF-8, prompting
    it to signal an error if it is not, like so:
    
    % sed s/a/b/ <(head -n1 /dev/random) >/dev/null; echo $?
    sed: RE error: illegal byte sequence
    1
    %
    
    To make sed work as expected, I need to set LC_CTYPE to C:
    
    % env LC_CTYPE=C sed s/a/b/ <(head -n1 /dev/random) >/dev/null; echo $?
    0
    %
    
    Without this change, sed will exit with an error for every single file that it
    compares between phase 2 and phase 3, thereby making it look as if the
    differences were far larger than they are.
    
    Patch by Elias Pipping!
    
    Differential Revision: http://reviews.llvm.org/D16548
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258892 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jan 26, 2016
  1. Merging r258386:

    tstellarAMD committed Jan 26, 2016
    ------------------------------------------------------------------------
    r258386 | thomas.stellard | 2016-01-20 23:28:34 -0500 (Wed, 20 Jan 2016) | 14 lines
    
    AMDGPU/SI: Pass whether to use the SI scheduler via Target Attribute
    
    Summary:
    Currently the SI scheduler can be selected via command line option,
    but it turned out it would be better if it was selectable via a Target Attribute.
    
    This patch adds "si-scheduler" attribute to the backend.
    
    Reviewers: tstellarAMD, echristo
    
    Subscribers: echristo, arsenm
    
    Differential Revision: http://reviews.llvm.org/D16192
    
    ------------------------------------------------------------------------
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258885 91177308-0d34-0410-b5e6-96231b3b80d8
  2. Merging r258184:

    sanjoy committed Jan 26, 2016
    ------------------------------------------------------------------------
    r258184 | sanjoy | 2016-01-19 12:53:51 -0800 (Tue, 19 Jan 2016) | 20 lines
    
    [SCEV] Fix PR26207
    
    In some cases, the max backedge taken count can be more conservative
    than the exact backedge taken count (for instance, because
    ScalarEvolution::getRange is not control-flow sensitive whereas
    computeExitLimitFromICmp can be).  In these cases,
    computeExitLimitFromCond (specifically the bit that deals with `and` and
    `or` instructions) can create an ExitLimit instance with a
    `SCEVCouldNotCompute` max backedge count expression, but a computable
    exact backedge count expression.  This violates an implicit SCEV
    assumption: a computable exact BE count should imply a computable max BE
    count.
    
    This change
    
     - Makes the above implicit invariant explicit by adding an assert to
       ExitLimit's constructor
    
     - Changes `computeExitLimitFromCond` to be more robust around
       conservative max backedge counts
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258869 91177308-0d34-0410-b5e6-96231b3b80d8
  3. Revert accidental changes from r258805

    zmodem committed Jan 26, 2016
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258844 91177308-0d34-0410-b5e6-96231b3b80d8
  4. Merging r258436:

    DimitryAndric committed Jan 26, 2016
    ------------------------------------------------------------------------
    r258436 | dim | 2016-01-21 22:57:49 +0100 (Thu, 21 Jan 2016) | 17 lines
    
    Let test-release.sh checkout subprojects directly into the target tree,
    instead of using symlinks
    
    Summary:
    In the past I have run into several problems with the way
    `test-release.sh` creates all the subproject directories as siblings,
    and then uses symlinks to stitch them all together.  In some scenarios
    this leads to clang not being able to find header files, etc.
    
    This patch changes the script so it directly exports into the correct
    target locations for each subproject.
    
    Reviewers: hans
    
    Subscribers: emaste, llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D16420
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258842 91177308-0d34-0410-b5e6-96231b3b80d8
  5. Merging r258729:

    zmodem committed Jan 26, 2016
    ------------------------------------------------------------------------
    r258729 | matze | 2016-01-25 14:08:25 -0800 (Mon, 25 Jan 2016) | 13 lines
    
    X86ISelLowering: Fix cmov(cmov) special lowering bug
    
    There's a special case in EmitLoweredSelect() that produces an improved
    lowering for cmov(cmov) patterns. However this special lowering is
    currently broken if the inner cmov has multiple users so this patch
    stops using it in this case.
    
    If you wonder why this wasn't fixed by continuing to use the special
    lowering and inserting a 2nd PHI for the inner cmov: I believe this
    would incur additional copies/register pressure so the special lowering
    does not improve upon the normal one anymore in this case.
    
    This fixes http://llvm.org/PR26256 (= rdar://24329747)
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258840 91177308-0d34-0410-b5e6-96231b3b80d8
  6. Merging r258690:

    James Molloy
    James Molloy committed Jan 26, 2016
    ------------------------------------------------------------------------
    r258690 | jamesm | 2016-01-25 14:49:36 +0000 (Mon, 25 Jan 2016) | 7 lines
    
    [DemandedBits] Fix computation of demanded bits for ICmps
    
    The computation of ICmp demanded bits is independent of the individual operand being evaluated. We simply return a mask consisting of the minimum leading zeroes of both operands.
    
    We were incorrectly passing "I" to ComputeKnownBits - this should be "UserI->getOperand(0)". In cases where we were evaluating the 1th operand, we were taking the minimum leading zeroes of it and itself.
    
    This should fix PR26266.
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258805 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jan 25, 2016
  1. Merging r258406:

    zmodem committed Jan 25, 2016
    ------------------------------------------------------------------------
    r258406 | vedantk | 2016-01-21 09:04:42 -0800 (Thu, 21 Jan 2016) | 16 lines
    
    [GCOV] Avoid emitting profile arcs for module and skeleton CUs
    
    Do not emit profile arc files and note files for module and skeleton
    CU's.
    
    Our users report seeing unexpected *.gcda and *.gcno files in their
    projects when using gcov-style profiling with modules or frameworks.
    The unwanted files come from these modules. This is not very helpful
    for end-users. Further, we've seen reports of instrumented programs
    crashing while writing these files out (due to I/O failures).
    
    rdar://problem/22838296
    
    Reviewed-by: aprantl
    
    Differential Revision: http://reviews.llvm.org/D15997
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258731 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jan 22, 2016
  1. Merging r258416 and r258428:

    zmodem committed Jan 22, 2016
    ------------------------------------------------------------------------
    r258416 | spatel | 2016-01-21 10:01:57 -0800 (Thu, 21 Jan 2016) | 2 lines
    
    make helper functions static; NFCI
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r258428 | spatel | 2016-01-21 12:19:54 -0800 (Thu, 21 Jan 2016) | 15 lines
    
    [LibCallSimplifier] don't get fooled by a fake fmin()
    
    This is similar to the bug/fix:
    https://llvm.org/bugs/show_bug.cgi?id=26211
    http://reviews.llvm.org/rL258325
    
    The fmin() test case reveals another bug caused by sloppy
    code duplication. It will crash without this patch because
    fp128 is a valid floating-point type, but we would think
    that we had matched a function that used doubles.
    
    The new helper function can be used to replace similar
    checks that are used in several other places in this file.
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258512 91177308-0d34-0410-b5e6-96231b3b80d8
  2. Merging r257886:

    zmodem committed Jan 22, 2016
    ------------------------------------------------------------------------
    r257886 | jamesm | 2016-01-15 02:36:01 -0800 (Fri, 15 Jan 2016) | 3 lines
    
    [CodeGenPrepare] Try and appease sanitizers
    
    dupRetToEnableTailCallOpts(BB) can invalidate BB. It must run *after* we iterate across BB!
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258510 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jan 20, 2016
  1. Merging r258325:

    zmodem committed Jan 20, 2016
    ------------------------------------------------------------------------
    r258325 | spatel | 2016-01-20 09:41:14 -0800 (Wed, 20 Jan 2016) | 21 lines
    
    [LibCallSimplifier] don't get fooled by a fake sqrt()
    
    The test case will crash without this patch because the subsequent call to
    hasUnsafeAlgebra() assumes that the call instruction is an FPMathOperator
    (ie, returns an FP type).
    
    This part of the function signature check was omitted for the sqrt() case, 
    but seems to be in place for all other transforms.
    
    Before:
    http://reviews.llvm.org/rL257400
    ...we would have needlessly continued execution in optimizeSqrt(), but the
    bug was harmless because we'd eventually fail some other check and return
    without damage.
    
    This should fix:
    https://llvm.org/bugs/show_bug.cgi?id=26211
    
    Differential Revision: http://reviews.llvm.org/D16198
    
    
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258353 91177308-0d34-0410-b5e6-96231b3b80d8
  2. Merging r257940:

    zmodem committed Jan 20, 2016
    ------------------------------------------------------------------------
    r257940 | djg | 2016-01-15 13:56:40 -0800 (Fri, 15 Jan 2016) | 10 lines
    
    [SelectionDAG] CSE nodes with differing SDNodeFlags
    
    In the optimizer (GVN etc.) when eliminating redundant nodes with different
    flags, the flags are ignored for the purposes of testing for congruence, and
    then intersected for the purposes of producing a result that supports the union
    of all the uses. This commit makes SelectionDAG's CSE do the same thing,
    allowing it to CSE nodes in more cases. This fixes PR26063.
    
    Differential Revision: http://reviews.llvm.org/D15957
    
    ------------------------------------------------------------------------
    Merging r257942:
    ------------------------------------------------------------------------
    r257942 | djg | 2016-01-15 14:07:35 -0800 (Fri, 15 Jan 2016) | 2 lines
    
    Remove a now-empty file left behind by r257940.
    
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258351 91177308-0d34-0410-b5e6-96231b3b80d8
  3. Merging r258273:

    zmodem committed Jan 20, 2016
    ------------------------------------------------------------------------
    r258273 | josepht | 2016-01-19 18:15:15 -0800 (Tue, 19 Jan 2016) | 37 lines
    
    [Inliner/WinEH] Honor implicit nounwinds
    
    Summary:
    Funclet EH tables require that a given funclet have only one unwind
    destination for exceptional exits.  The verifier will therefore reject
    e.g. two cleanuprets with different unwind dests for the same cleanup, or
    two invokes exiting the same funclet but to different unwind dests.
    Because catchswitch has no 'nounwind' variant, and because IR producers
    are not *required* to annotate calls which will not unwind as 'nounwind',
    it is legal to nest a call or an "unwind to caller" catchswitch within a
    funclet pad that has an unwind destination other than caller; it is
    undefined behavior for such a call or catchswitch to unwind.
    
    Normally when inlining an invoke, calls in the inlined sequence are
    rewritten to invokes that unwind to the callsite invoke's unwind
    destination, and "unwind to caller" catchswitches in the inlined sequence
    are rewritten to unwind to the callsite invoke's unwind destination.
    However, if such a call or "unwind to caller" catchswitch is located in a
    callee funclet that has another exceptional exit with an unwind
    destination within the callee, applying the normal transformation would
    give that callee funclet multiple unwind destinations for its exceptional
    exits.  There would be no way for EH table generation to determine which
    is the "true" exit, and the verifier would reject the function
    accordingly.
    
    Add logic to the inliner to detect these cases and leave such calls and
    "unwind to caller" catchswitches as calls and "unwind to caller"
    catchswitches in the inlined sequence.
    
    This fixes PR26147.
    
    
    Reviewers: rnk, andrew.w.kaylor, majnemer
    
    Subscribers: alexcrichton, llvm-commits
    
    Differential Revision: http://reviews.llvm.org/D16319
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258349 91177308-0d34-0410-b5e6-96231b3b80d8
  4. Merging r258221:

    Quentin Colombet
    Quentin Colombet committed Jan 20, 2016
    ------------------------------------------------------------------------
    r258221 | qcolombet | 2016-01-19 15:29:03 -0800 (Tue, 19 Jan 2016) | 8 lines
    
    [X86] Do not run shrink-wrapping on function with split-stack attribute or HiPE
    calling convention.
    The implementation of the related callbacks in the x86 backend for such
    functions are not ready to deal with a prologue block that is not the entry
    block of the function.
    
    This fixes PR26107, but the longer term solution would be to fix those callbacks.
    
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258269 91177308-0d34-0410-b5e6-96231b3b80d8
  5. Merging r258207:

    Quentin Colombet
    Quentin Colombet committed Jan 20, 2016
    ------------------------------------------------------------------------
    r258207 | qcolombet | 2016-01-19 14:31:12 -0800 (Tue, 19 Jan 2016) | 1 line
    
    [MachineFunction] Constify getter. NFC.
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258268 91177308-0d34-0410-b5e6-96231b3b80d8
  6. Merging r257977:

    zmodem committed Jan 20, 2016
    ------------------------------------------------------------------------
    r257977 | kfischer | 2016-01-15 17:11:33 -0800 (Fri, 15 Jan 2016) | 1 line
    
    [DwarfDebug] Move MergeValues to .cpp, NFC
    ------------------------------------------------------------------------
    Merging r257979:
    ------------------------------------------------------------------------
    r257979 | kfischer | 2016-01-15 17:15:32 -0800 (Fri, 15 Jan 2016) | 11 lines
    
    [DwarfDebug] Don't merge DebugLocEntries if their pieces overlap
    
    Summary:
    Later in DWARF emission we check that DebugLocEntries have
    non-overlapping pieces, so we should create any such entries
    by merging here.
    
    Fixes PR26163.
    
    Reviewers: aprantl
    Differential Revision: http://reviews.llvm.org/D16249
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258267 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jan 19, 2016
  1. Merging r257875:

    zmodem committed Jan 19, 2016
    ------------------------------------------------------------------------
    r257875 | jamesm | 2016-01-15 01:20:19 -0800 (Fri, 15 Jan 2016) | 11 lines
    
    [InstCombine] Rewrite bswap/bitreverse handling completely.
    
    There are several requirements that ended up with this design;
      1. Matching bitreversals is too heavyweight for InstCombine and doesn't really need to be done so early.
      2. Bitreversals and byteswaps are very related in their matching logic.
      3. We want to implement support for matching more advanced bswap/bitreverse patterns like partial bswaps/bitreverses.
      4. Bswaps are best matched early in InstCombine.
    
    The result of these is that a new utility function is created in Transforms/Utils/Local.h that can be configured to search for bswaps, bitreverses or both. InstCombine uses it to find only bswaps, CGP uses it to find only bitreversals.
    
    We can then extend the matching logic in one place only.
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258180 91177308-0d34-0410-b5e6-96231b3b80d8
  2. Merging r258168:

    zmodem committed Jan 19, 2016
    ------------------------------------------------------------------------
    r258168 | hans | 2016-01-19 11:21:58 -0800 (Tue, 19 Jan 2016) | 3 lines
    
    test-release.sh: Use CMake also for Darwin
    
    This didn't work for 3.7, but hopefully it should work now.
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258170 91177308-0d34-0410-b5e6-96231b3b80d8
  3. Merging r257925, r257929, r257930, and r257997:

    zmodem committed Jan 19, 2016
    ------------------------------------------------------------------------
    r257925 | mren | 2016-01-15 11:35:42 -0800 (Fri, 15 Jan 2016) | 10 lines
    
    CXX_FAST_TLS calling convention: fix issue on X86-64.
    
    When we have a single basic block, the explicit copy-back instructions should
    be inserted right before the terminator. Before this fix, they were wrongly
    placed at the beginning of the basic block.
    
    I will commit fixes to other platforms as well.
    
    PR26136
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r257929 | mren | 2016-01-15 12:13:28 -0800 (Fri, 15 Jan 2016) | 10 lines
    
    CXX_FAST_TLS calling convention: fix issue on AArch64.
    
    When we have a single basic block, the explicit copy-back instructions should
    be inserted right before the terminator. Before this fix, they were wrongly
    placed at the beginning of the basic block.
    
    I will commit fixes to other platforms as well.
    
    PR26136
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r257930 | mren | 2016-01-15 12:24:11 -0800 (Fri, 15 Jan 2016) | 8 lines
    
    CXX_FAST_TLS calling convention: fix issue on ARM.
    
    When we have a single basic block, the explicit copy-back instructions should
    be inserted right before the terminator. Before this fix, they were wrongly
    placed at the beginning of the basic block.
    
    PR26136
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r257997 | mren | 2016-01-16 08:39:46 -0800 (Sat, 16 Jan 2016) | 12 lines
    
    CXX_FAST_TLS calling convention: fix issue on x86-64.
    
    %RBP can't be handled explicitly. We generate the following code:
        pushq %rbp
        movq  %rsp, %rbp
        ...
        movq  %rbx, (%rbp)  ## 8-byte Spill
    where %rbp will be overwritten by the spilled value.
    
    The fix is to let PEI handle %RBP.
    PR26136
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258162 91177308-0d34-0410-b5e6-96231b3b80d8
  4. Merging r257902 (and r257775)

    zmodem committed Jan 19, 2016
    ------------------------------------------------------------------------
    r257775 | jyknight | 2016-01-14 08:33:21 -0800 (Thu, 14 Jan 2016) | 3 lines
    
    Revert "Stop increasing alignment of externally-visible globals on ELF platforms."
    
    This reverts commit r257719, due to PR26144.
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r257902 | jyknight | 2016-01-15 08:33:06 -0800 (Fri, 15 Jan 2016) | 17 lines
    
    Stop increasing alignment of externally-visible globals on ELF
    platforms.
    
    With ELF, the alignment of a global variable in a shared library will
    get copied into an executables linked against it, if the executable even
    accesss the variable. So, it's not possible to implicitly increase
    alignment based on access patterns, or you'll break existing binaries.
    
    This happened to affect libc++'s std::cout symbol, for example. See
    thread: http://thread.gmane.org/gmane.comp.compilers.clang.devel/45311
    
    (This is a re-commit of r257719, without the bug reported in
    PR26144. I've tweaked the code to not assert-fail in
    enforceKnownAlignment when computeKnownBits doesn't recurse far enough
    to find the underlying Alloca/GlobalObject value.)
    
    Differential Revision: http://reviews.llvm.org/D16145
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258155 91177308-0d34-0410-b5e6-96231b3b80d8
  5. Merging r257905:

    zmodem committed Jan 19, 2016
    ------------------------------------------------------------------------
    r257905 | hans | 2016-01-15 09:04:45 -0800 (Fri, 15 Jan 2016) | 3 lines
    
    test-release.sh: Fix clang-tools-extra symlink for CMake build
    
    The CMake and Autoconf builds want the symlink set up differently.
    ------------------------------------------------------------------------
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_38@258146 91177308-0d34-0410-b5e6-96231b3b80d8
Older
You can’t perform that action at this time.