Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on May 22, 2015
  1. make reciprocal estimate code generation more flexible by adding comm…

    Sanjay Patel authored
    …and-line options
    
    This patch adds a class for processing many recip codegen possibilities.
    The TargetRecip class is intended to handle both command-line options to llc as well
    as options passed in from a front-end such as clang with the -mrecip option.
    
    The x86 backend is updated to use the new functionality.
    Only -mcpu=btver2 with -ffast-math should see a functional change from this patch.
    All other CPUs continue to *not* use reciprocal estimates by default with -ffast-math.
    
    Differential Revision: http://reviews.llvm.org/D8982
    
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238051 91177308-0d34-0410-b5e6-96231b3b80d8
  2. @qikon

    [AArch64] Robustize atomic cmpxchg test. NFC.

    qikon authored
    Constants are easy to get right the wrong way.
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238049 91177308-0d34-0410-b5e6-96231b3b80d8
  3. @rengolin

    Reinforce ARMTargetParser::getCanonicalArchName validation

    rengolin authored
    Before, getCanonicalArchName was relying on parseArch() to validate the arch
    name, which was a problem when other methods, that also needed to call it,
    were duplicating the steps.
    
    But to dissociate getCanonicalArchName from parseArch, we needed to make
    getCanonicalArchName more robust in detecting valid arch names. It's still
    not perfect, but will do for the time being, until we merge Triple with
    TargetParser into a TargetDescription mega class.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238047 91177308-0d34-0410-b5e6-96231b3b80d8
  4. Use new MachineInstr mayLoadOrStore() API. NFC.

    Chad Rosier authored
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238044 91177308-0d34-0410-b5e6-96231b3b80d8
  5. @4ast

    [bpf] emit jmp fixups in little endian

    4ast authored
    The 'off' field of 'struct bpf_insn' is in cpu-endianness,
    since the rest is emitted as little endian, make sure
    that 'off' field is little endian as well.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238038 91177308-0d34-0410-b5e6-96231b3b80d8
  6. @rengolin

    Adding profile and version parsers to ARMTargetParser

    rengolin authored
    This allows us to match armv6m to default to thumb, but will also be used by
    Clang's driver and remove the current incomplete copy in it.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238036 91177308-0d34-0410-b5e6-96231b3b80d8
  7. Reapply r238011 with a fix for the trap instruction.

    Quentin Colombet authored
    The problem was that I slipped a change required for shrink-wrapping, namely I
    used getFirstTerminator instead of the getLastNonDebugInstr that was here before
    the refactoring, whereas the surrounding code is not yet patched for that.
    
    Original message:
    [X86] Refactor the prologue emission to prepare for shrink-wrapping.
    
    - Add a late pass to expand pseudo instructions (tail call and EH returns).
     Instead of doing it in the prologue emission.
    - Factor some static methods in X86FrameLowering to ease code sharing.
    
    NFC.
    
    Related to <rdar://problem/20821487>
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238035 91177308-0d34-0410-b5e6-96231b3b80d8
  8. @chandlerc

    [Unroll] Separate the logic for testing each iteration of the loop,

    chandlerc authored
    accumulating estimated cost, and other loop-centric logic from the logic
    used to analyze instructions in a particular iteration.
    
    This makes the visitor very narrow in scope -- all it does is visit
    instructions, update a map of simplified values, and return whether it
    is able to optimize away a particular instruction.
    
    The two cost metrics are now returned as an optional struct. When the
    optional is left unengaged, there is no information about the unrolled
    cost of the loop, when it is engaged the cost metrics are available to
    run against the thresholds.
    
    No functionality changed.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238033 91177308-0d34-0410-b5e6-96231b3b80d8
  9. @wschmidt-ibm

    [PPC64] Add support for clrbhrb, mfbhrbe, rfebb.

    wschmidt-ibm authored
    This patch adds support for the ISA 2.07 additions involving the
    branch history rolling buffer and event-based branching.  These will
    not be used by typical applications, so built-in support is not
    required.  They will only be available via inline assembly.
    
    Assembly/disassembly tests are included in the patch.
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238032 91177308-0d34-0410-b5e6-96231b3b80d8
  10. @espindola

    Stop inventing symbol sizes.

    espindola authored
    MachO and COFF quite reasonably only define the size for common symbols.
    
    We used to try to figure out the "size" by computing the gap from one symbol to
    the next.
    
    This would not be correct in general, since a part of a section can belong to no
    visible symbol (padding, private globals).
    
    It was also really expensive, since we would walk every symbol to find the size
    of one.
    
    If a caller really wants this, it can sort all the symbols once and get all the
    gaps ("size") in O(n log n) instead of O(n^2).
    
    On MachO this also has the advantage of centralizing all the checks for an
    invalid n_sect.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238028 91177308-0d34-0410-b5e6-96231b3b80d8
  11. remove names from comments, fix typos; NFC

    Sanjay Patel authored
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238027 91177308-0d34-0410-b5e6-96231b3b80d8
  12. fix typo, 80-col; NFC

    Sanjay Patel authored
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238026 91177308-0d34-0410-b5e6-96231b3b80d8
  13. fix typo in comment; NFC

    Sanjay Patel authored
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238025 91177308-0d34-0410-b5e6-96231b3b80d8
  14. @espindola

    Detect invalid section indexes when we first read them.

    espindola authored
    We still detect the same errors, but now we do it earlier.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238024 91177308-0d34-0410-b5e6-96231b3b80d8
  15. [ARM] Fix typo in subtarget feature list for 7em triple

    John Brawn authored
    The list of subtarget features for the 7em triple contains 't2xtpk',
    which actually disables that subtarget feature. Correct that to
    '+t2xtpk' and test that the instructions enabled by that feature do
    actually work.
    
    Differential Revision: http://reviews.llvm.org/D9936
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238022 91177308-0d34-0410-b5e6-96231b3b80d8
  16. @espindola

    Fix llvm-nm -S option.

    espindola authored
    It is explicitly documented to have no effect on object formats where symbols
    don't have sizes.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238019 91177308-0d34-0410-b5e6-96231b3b80d8
  17. @espindola

    Make this test stricter. NFC.

    espindola authored
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238018 91177308-0d34-0410-b5e6-96231b3b80d8
  18. @chapuni

    Reapply part of r237975, "Fix Clang -Wmissing-override warning", exce…

    chapuni authored
    …pt for DIContext.h, to apease g++-4.7.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238012 91177308-0d34-0410-b5e6-96231b3b80d8
  19. @tberghammer

    Revert "[X86] Fix a variable name for r237977 so that it works with e…

    tberghammer authored
    …very compilers."
    
    Revert "[X86] Refactor the prologue emission to prepare for shrink-wrapping."
    
    This reverts commit 6b3b93f.
    This reverts commit ab0b15d.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238011 91177308-0d34-0410-b5e6-96231b3b80d8
  20. Compile time improvements to VirtRegRewriter.

    Puyan Lotfi authored
    This change to VirtRegRewriter::addMBBLiveIns adds live-in registers for each
    MachineBasicBlock's LiveIns set without isLiveIn checks as they are being added
    because doing so is expensive. After all live-in registers are added, the LiveIn
    vectors are sorted and uniqued.
    
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238008 91177308-0d34-0410-b5e6-96231b3b80d8
  21. @chapuni

    Revert r237954, "Resubmit r237708 (MIR Serialization: print and parse…

    chapuni authored
    … LLVM IR using MIR format)."
    
    It brought cyclic dependencies between LLVMCodeGen and LLVMMIR.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238007 91177308-0d34-0410-b5e6-96231b3b80d8
  22. MC: Shave a pointer off of MCSymbol::Name

    Duncan P. N. Exon Smith authored
    Shave a pointer off of `MCSymbolName` by storing `StringMapEntry<bool>*`
    instead of `StringRef`.  This brings `sizeof(MCSymbol)` down to 64 on
    64-bit platforms, a nice round number.  My profile showed memory
    dropping from 914 MB down to 908 MB, roughly 0.7%.  Other than memory
    usage, no functionality change here.
    
    (I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`;
    see r236629 for details.)
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238005 91177308-0d34-0410-b5e6-96231b3b80d8
  23. @tobig

    Revert "Fix Clang -Wmissing-override warning"

    tobig authored
    This reverts commit r237975. This seems also to break with gcc 4.7
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238004 91177308-0d34-0410-b5e6-96231b3b80d8
  24. MC: Pack MCSymbol::Index in with the bitfield in MCSymbol

    Duncan P. N. Exon Smith authored
    Save a pointer for each `MCSymbol`, bringing `llc` memory usage down
    from 920 MB to 914 MB, around ~0.6%.
    
    (I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`;
    see r236629 for details.)
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238003 91177308-0d34-0410-b5e6-96231b3b80d8
  25. MC: Lift MCSymbolData::Index up to MCSymbol::Index, NFC

    Duncan P. N. Exon Smith authored
    Lift `MCSymbolData::Index` up a level to `MCSymbol`, as preparation for
    packing it into the bitfield in `MCSymbol`.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238001 91177308-0d34-0410-b5e6-96231b3b80d8
  26. @chapuni

    Revert part of r237975, "Fix Clang -Wmissing-override warning" in DIC…

    chapuni authored
    …ontext.h, to appease g++-4.7.
    
      llvm/include/llvm/DebugInfo/DIContext.h:144:11: error:   overriding ‘virtual llvm::LoadedObjectInfo::~LoadedObjectInfo() noexcept (true)’
    
    It seems the destructor in the base class may not be "default".
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238000 91177308-0d34-0410-b5e6-96231b3b80d8
  27. SDAG: Give SDDbgValues their own allocator (and reset it)

    Duncan P. N. Exon Smith authored
    Previously `SDDbgValue`s used the general allocator that lives for all
    of `SelectionDAG`.  Instead, give them their own allocator, and reset it
    whenever `SDDbgInfo::clear()` is called, plugging a spiritual leak.
    
    This drops `SelectionDAGBuilder::visitIntrinsicCall()` off of my heap
    profile (was at around 2% of `llc` for codegen of `-flto -g`).  Thanks
    to Pete Cooper for spotting the problem and suggesting the fix.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237998 91177308-0d34-0410-b5e6-96231b3b80d8
  28. SDAG: Cleanup initialization of SDDbgValue, NFC

    Duncan P. N. Exon Smith authored
    Cleanup how `SDDbgValue` is initialized, and rearrange the fields to
    save two pointers in the struct layout.  No real functionality change
    though (and I doubt the memory savings would show up in a profile).
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237997 91177308-0d34-0410-b5e6-96231b3b80d8
  29. @tobig

    Revert "unique_ptrify LoadedObjectInfo::clone"

    tobig authored
    This reverts commit r237976, which seems to break existing gcc 4.7 buildbots.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237996 91177308-0d34-0410-b5e6-96231b3b80d8
  30. @majnemer

    [InstSimplify] Handle some overflow intrinsics in InstSimplify

    majnemer authored
    This change does a few things:
    - Move some InstCombine transforms to InstSimplify
    - Run SimplifyCall from within InstCombine::visitCallInst
    - Teach InstSimplify to fold [us]mul_with_overflow(X, undef) to 0.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237995 91177308-0d34-0410-b5e6-96231b3b80d8
  31. @chandlerc

    [Unroll] Replace a hand-wavy FIXME with a FIXME that explains the actual

    chandlerc authored
    problem instead of suggesting doing something that is trivial to do but
    incorrect given the current design of the libraries.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237994 91177308-0d34-0410-b5e6-96231b3b80d8
  32. @chandlerc

    [Unroll] Extract the logic for caching SCEV-modeled GEPs with their

    chandlerc authored
    simplified model for use simulating each iteration into a separate
    helper function that just returns the cache.
    
    Building this cache had nothing to do with the rest of the unroll
    analysis and so this removes an unnecessary coupling, etc. It should
    also make it easier to think about the concept of providing fast cached
    access to basic SCEV models as an orthogonal concept to the overall
    unroll simulation.
    
    I'd really like to see this kind of caching logic folded into SCEV
    itself, it seems weird for us to provide it at this layer rather than
    making repeated queries into SCEV fast all on their own.
    
    No functionality changed.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237993 91177308-0d34-0410-b5e6-96231b3b80d8
  33. @chandlerc

    [Unroll] Refactor the accumulation of optimized instruction costs into

    chandlerc authored
    a single location.
    
    This reduces code duplication a bit and will also pave the way for
    a better separation between the visitation algorithm and the unroll
    analysis.
    
    No functionality changed.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237990 91177308-0d34-0410-b5e6-96231b3b80d8
  34. [LICM] Sinking doesn't involve the preheader

    Philip Reames authored
    PR23608 pointed out that using the preheader to gain a context instruction isn't always legal because a loop might not have a preheader.  When looking into that, I realized that using the preheader to determine legality for sinking is questionable at best.  Given no test covers that case and the original commit didn't seem to intend it, I restructured the code to only ask context sensative queries for hoising of loads and stores.  This is effectively a partial revert of 237593.
    
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237985 91177308-0d34-0410-b5e6-96231b3b80d8
  35. @zmodem

    Revert r236894 "[BasicAA] Fix zext & sext handling"

    zmodem authored
    This seems to have caused PR23626: Clang miscompiles webkit's base64 decoder
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237984 91177308-0d34-0410-b5e6-96231b3b80d8
Something went wrong with that request. Please try again.