Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Branch: rust-llvm-2017…
Commits on Jun 26, 2017
  1. Merge pull request #88 from alexcrichton/tmp

    alexcrichton committed Jun 26, 2017
    Add knowledge of __rust_{alloc,realloc,dealloc}
Commits on Jun 25, 2017
  1. Merge pull request #87 from pftbest/msp430_layout

    alexcrichton committed Jun 25, 2017
    [MSP430] Merge bug fixes from llvm upstream.
  2. [MSP430] Fix data layout string.

    pftbest committed Jun 23, 2017
    Summary:
    Without this patch some types have incorrect size and/or alignment
    according to the MSP430 EABI.
    
    Reviewers: asl, awygle
    
    Reviewed By: asl
    
    Subscribers: llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D34561
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306159 91177308-0d34-0410-b5e6-96231b3b80d8
  3. [MSP430] Fix PR33050: Don't use ADD16ri to lower FrameIndex.

    pftbest committed May 24, 2017
    Use ADDframe pseudo instruction instead.
    This will fix machine verifier error, and will help to fix PR32146.
    
    Differential Revision: https://reviews.llvm.org/D33452
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303758 91177308-0d34-0410-b5e6-96231b3b80d8
  4. [MSP430] Add subtarget features for hardware multiplier.

    pftbest committed May 23, 2017
    Also add more processors to make -mcpu option behave similar to gcc.
    
    Differential Revision: https://reviews.llvm.org/D33335
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303695 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jun 22, 2017
  1. Merge pull request #86 from alexcrichton/probestack

    alexcrichton committed Jun 22, 2017
    Add x86 probestack support
  2. [X86] Add support for "probe-stack" attribute

    whitequark authored and alexcrichton committed Jun 22, 2017
    This commit adds prologue code emission for stack probe function
    calls.
    
    Reviewed By: majnemer
    
    Differential Revision: https://reviews.llvm.org/D34387
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306010 91177308-0d34-0410-b5e6-96231b3b80d8
  3. Add a "probe-stack" attribute

    whitequark authored and alexcrichton committed Jun 21, 2017
    This attribute is used to ensure the guard page is triggered on stack
    overflow. Stack frames larger than the guard page size will generate
    a call to __probestack to touch each page so the guard page won't
    be skipped.
    
    Reviewed By: majnemer
    
    Differential Revision: https://reviews.llvm.org/D34386
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305939 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jun 20, 2017
  1. Merge pull request #85 from parched/umlo

    alexcrichton committed Jun 20, 2017
    DAG: correctly legalize UMULO.
  2. DAG: correctly legalize UMULO.

    TNorthover authored and parched committed Jun 20, 2017
    We were incorrectly sign extending into the high word (as you would for
    SMULO) when legalizing UMULO in terms of a wider full multiplication.
    
    Patch by James Duley.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305800 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jun 19, 2017
  1. Merge pull request #84 from arielb1/unwind-stack

    alexcrichton committed Jun 19, 2017
    StackColoring: smarter check for slot overlap
  2. StackColoring: smarter check for slot overlap

    thanm authored and arielb1 committed Jun 12, 2017
    Summary:
    The old check for slot overlap treated 2 slots `S` and `T` as
    overlapping if there existed a CFG node in which both of the slots could
    possibly be active. That is overly conservative and caused stack blowups
    in Rust programs. Instead, check whether there is a single CFG node in
    which both of the slots are possibly active *together*.
    
    Fixes PR32488.
    
    Patch by Ariel Ben-Yehuda <ariel.byd@gmail.com>
    
    Reviewers: thanm, nagisa, llvm-commits, efriedma, rnk
    
    Reviewed By: thanm
    
    Subscribers: dotdash
    
    Differential Revision: https://reviews.llvm.org/D31583
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305193 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jun 18, 2017
  1. Merge pull request #83 from arielb1/bad-arm-2

    alexcrichton committed Jun 18, 2017
    backport fixes to LLVM 4.0 ARM codegen bugs
  2. Add missing check in IfConversion/canFallThroughTo

    Mikael Holmen authored and arielb1 committed May 10, 2017
    Summary:
    When trying to figure out if MBB could fallthrough to ToMBB (possibly by
    falling through a bunch of other MBBs) we didn't actually check if there
    was fallthrough between the last two blocks in the chain.
    
    Reviewers: kparzysz, iteratee, MatzeB
    
    Reviewed By: kparzysz, iteratee
    
    Subscribers: javed.absar, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D32996
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302650 91177308-0d34-0410-b5e6-96231b3b80d8
  3. Fix corner cases for compressed jump tables

    wmzhao authored and arielb1 committed Apr 20, 2017
    Summary:
    When synthesized TBB/TBH is expanded, we need to avoid the case of:
       BaseReg is redefined after the load of branching target. E.g.:
    
        %R2 = tLEApcrelJT <jt#1>
        %R1 =  tLDRr %R1, %R2    ==> %R2 = tLEApcrelJT <jt#1>
        %R2 = tLDRspi %SP, 12        %R2 = tLDRspi %SP, 12
        tBR_JTr %R1                  tTBB_JT %R2, %R1
    `
    Reviewers: jmolloy
    
    Reviewed By: jmolloy
    
    Subscribers: llvm-commits, rengolin
    
    Differential Revision: https://reviews.llvm.org/D32250
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300870 91177308-0d34-0410-b5e6-96231b3b80d8
  4. Fix constant islands pass.

    Roger Ferrer Ibanez authored and arielb1 committed Feb 22, 2017
    The pass tries to fix a spill of LR that turns out to be unnecessary.
    So it removes the tPOP but forgets to remove tPUSH.
    This causes the stack be misaligned upon returning the function.
    
    Thus, remove the tPUSH as well in this case.
    
    Differential Revision: https://reviews.llvm.org/D30207
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295816 91177308-0d34-0410-b5e6-96231b3b80d8
  5. TBB generation: spot redefinitions of index register

    James Molloy authored and arielb1 committed Feb 13, 2017
    We match a sequence of 3-4 instructions into a tTBB pseudo. One of our checks is that
    a particular register in that sequence is killed (so it can be clobbered by the pseudo).
    
    We weren't noticing if an errant MOV or other instruction had infiltrated the
    sequence we were walking. If it had, and it defined the register we've already
    identified as killed, it makes it live across the tBR_JT and thus unclobberable.
    
    Notice this case and bail out.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294949 91177308-0d34-0410-b5e6-96231b3b80d8
  6. ARM: avoid clobbering register in v6 jump-table expansion.

    TNorthover authored and arielb1 committed Mar 15, 2017
    If we got unlucky with register allocation and actual constpool placement, we
    could end up producing a tTBB_JT with an index that's already been clobbered.
    
    Technically, we might be able to fix this situation up with a MOV, but I think
    the constant islands pass is complex enough without having to deal with more
    weird edge-cases.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297871 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Jun 14, 2017
  1. Merge pull request #82 from nagisa/remove-zeroed-alloc-too

    alexcrichton committed Jun 14, 2017
    Remove alloc_zeroed optimisation
  2. Remove alloc_zeroed optimisation

    nagisa committed Jun 14, 2017
    It causes some weird UB-ey interaction in rustc_data_structures
Commits on Jun 8, 2017
  1. Merge pull request #81 from nagisa/unteach-realloc-inplace

    alexcrichton committed Jun 8, 2017
    Remove reallocate_inplace from memory analysis
  2. Remove reallocate_inplace from memory analysis

    nagisa committed Jun 8, 2017
    It does not return a "new" pointer and therefore it is unclear if it is not
    entirely clear whether it is ReallocLike enough.
    
    Removing for now just to be safe.
Commits on Jun 3, 2017
  1. Merge pull request #80 from nagisa/builtins

    alexcrichton committed Jun 3, 2017
    Remind LLVM about alloc function names in Rust
  2. Remind LLVM about alloc function names in Rust

    nagisa committed Jun 3, 2017
    Port and expansion of 4daef48
Commits on May 19, 2017
  1. Merge pull request #79 from parched/rust-smulo

    alexcrichton committed May 19, 2017
    Fix signed multiplication with overflow
  2. Fix signed multiplication with overflow fallback.

    Ranjeet Singh authored and parched committed Apr 26, 2017
    For targets that don't have ISD::MULHS or ISD::SMUL_LOHI for the type
    and the double width type is illegal, then the two operands are
    sign extended to twice their size then multiplied to check for overflow.
    The extended upper halves were mismatched causing an incorrect result.
    This fixes the mismatch.
    
    A test was added for ARM V6-M where the bug was detected.
    
    Patch by James Duley.
    
    Differential Revision: https://reviews.llvm.org/D31807
    
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301404 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on May 13, 2017
  1. Merge pull request #78 from pftbest/msp430_libcalls

    alexcrichton committed May 13, 2017
    [MSP430] Generate EABI-compliant libcalls
Commits on May 12, 2017
  1. [MSP430] Generate EABI-compliant libcalls

    pftbest committed May 11, 2017
    Updates the MSP430 target to generate EABI-compatible libcall names.
    As a byproduct, adjusts the hardware multiplier options available in
    the MSP430 target, adds support for promotion of the ISD::MUL operation
    for 8-bit integers, and correctly marks R11 as used by call instructions.
    
    Patch by Andrew Wygle.
    
    Differential Revision: https://reviews.llvm.org/D32676
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302820 91177308-0d34-0410-b5e6-96231b3b80d8
    
    # Conflicts:
    #	include/llvm/IR/CallingConv.h
Commits on May 4, 2017
  1. Merge pull request #77 from TimNN/win64-backports

    alexcrichton committed May 4, 2017
    Backport two Win64 fixes
  2. Mark functions as not having CFI once we finalize an x86 stack frame

    rnk authored and TimNN committed May 3, 2017
    We'll set it back to true in emitPrologue if it gets called. It doesn't
    get called for naked functions.
    
    Fixes PR32912
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302092 91177308-0d34-0410-b5e6-96231b3b80d8
  3. [WinEH] Adjust decision to emit SEH moves for leaf functions

    rnk authored and TimNN committed Mar 20, 2017
    Move the check for "MF->hasWinCFI()" up into the calculation of the
    shouldEmitMoves boolean, rather than putting it in the early returning
    if. This ensures that endFunction doesn't try to emit .seh_* directives
    for leaf functions.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298276 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on May 2, 2017
  1. Merge pull request #76 from whitequark/constant-island-crash

    alexcrichton committed May 2, 2017
    Cherry-pick r295964 and closely related part of r282387
Commits on May 1, 2017
  1. Fix assertion failure in ARMConstantIslandPass.

    kbeyls authored and TimNN committed Feb 23, 2017
    The ARMConstantIslandPass didn't have support for handling accesses to
    constant island objects through ARM::t2LDRBpci instructions. This adds
    support for that.
    
    This fixes PR31997.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295964 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Apr 26, 2017
  1. Merge pull request #75 from pftbest/fix_msp430

    alexcrichton committed Apr 26, 2017
    [MSP430] Fix PR32769: Select8 and Select16 need to have SR in Uses.
Older
You can’t perform that action at this time.