Skip to content
  1. Feb 04, 2014
  2. Feb 03, 2014
  3. Feb 02, 2014
  4. Feb 01, 2014
    • Venkatraman Govindaraju's avatar
      [Sparc] Set %o7 as the return address register instead of %i7 in... · 52b6473d
      Venkatraman Govindaraju authored
      [Sparc] Set %o7 as the return address register instead of %i7 in MCRegisterInfo. Also, add CFI instructions to initialize the frame correctly.
      
      llvm-svn: 200617
      52b6473d
    • Arnold Schwaighofer's avatar
      ARMTTI: We don't have 16 allocatable scalar registers · 445f7fb0
      Arnold Schwaighofer authored
      This caused an regression on libquantum after enabling the new loop vectorizer
      unroll heuristics.
      
      llvm-svn: 200616
      445f7fb0
    • David Woodhouse's avatar
      MC: Fix .octa output for APInts with BitWidth > 128 · 6c9a6f9b
      David Woodhouse authored
      llvm-svn: 200615
      6c9a6f9b
    • David Woodhouse's avatar
      MC: Add support for .octa · d6de0d99
      David Woodhouse authored
      This is a minimal implementation which accepts only constants rather than
      full expressions, but that should be perfectly sufficient for all known
      users for now.
      
      Patch from PaX Team <pageexec@freemail.hu>
      
      llvm-svn: 200614
      d6de0d99
    • David Woodhouse's avatar
      MC: Add AsmLexer::BigNum token for integers greater than 64 bits · f42a6662
      David Woodhouse authored
      This will be needed for .octa support, but we don't want to just use the
      existing AsmLexer::Integer for it and then have to litter all its users
      with explicit checks for the size, and make them use the new get APIntVal()
      method.
      
      So let the lexer produce an AsmLexer::Integer as before for numbers which
      are small enough — which appears to cover what was previously a nasty
      special case handling of numbers which don't fit in int64_t but *do* fit
      in uint64_t.
      
      Where the number is too large even for that, produce an AsmLexer::BigNum
      instead. We do nothing with these except complain about them for now,
      but that will be changed shortly...
      
      Based on a patch from PaX Team <pageexec@freemail.hu>
      
      llvm-svn: 200613
      f42a6662
    • Chandler Carruth's avatar
      [LPM] Apply a really big hammer to fix PR18688 by recursively reforming · 1665152c
      Chandler Carruth authored
      LCSSA when we promote to SSA registers inside of LICM.
      
      Currently, this is actually necessary. The promotion logic in LICM uses
      SSAUpdater which doesn't understand how to place LCSSA PHI nodes.
      Teaching it to do so would be a very significant undertaking. It may be
      worthwhile and I've left a FIXME about this in the code as well as
      starting a thread on llvmdev to try to figure out the right long-term
      solution.
      
      For now, the PR needs to be fixed. Short of using the promition
      SSAUpdater to place both the LCSSA PHI nodes and the promoted PHI nodes,
      I don't see a cleaner or cheaper way of achieving this. Fortunately,
      LCSSA is relatively lazy and sparse -- it should only update
      instructions which need it. We can also skip the recursive variant when
      we don't promote to SSA values.
      
      llvm-svn: 200612
      1665152c
    • Eli Bendersky's avatar
      Remove some unused #includes · fc49d198
      Eli Bendersky authored
      llvm-svn: 200611
      fc49d198
    • Benjamin Kramer's avatar
      Silence GCC warnings. · 029750fb
      Benjamin Kramer authored
      llvm-svn: 200610
      029750fb
    • Chandler Carruth's avatar
      [inliner] Skip debug intrinsics even earlier in computing the inline · 6b4cc8b6
      Chandler Carruth authored
      cost so that they don't impact the vector bonus. Fundamentally, counting
      unsimplified instructions is just *wrong*; it will continue to introduce
      instability as things which do not generate code bizarrely impact
      inlining. For example, sufficiently nested inlined functions could turn
      off the vector bonus with lifetime markers just like the debug
      intrinsics do. =/
      
      This is a short-term tactical fix. Long term, I think we need to remove
      the vector bonus entirely. That's a separate patch and discussion
      though.
      
      The patch to fix this provided by Dario Domizioli. I've added some
      comments about the planned direction and used a heavily pruned form of
      debug info intrinsics for the test case. While this debug info doesn't
      work or "do" anything useful, it lets us easily test all manner of
      interference easily, and I suspect this will not be the last time we
      want to craft a pattern where debug info interferes with the inliner in
      a problematic way.
      
      llvm-svn: 200609
      6b4cc8b6
    • Craig Topper's avatar
    • David Majnemer's avatar
      Update a .fill test to use the updated semantics. · 5a67e2b1
      David Majnemer authored
      Something funny happened, this should've been part of r200606.
      
      llvm-svn: 200607
      5a67e2b1
    • David Majnemer's avatar
      MC: Improve the .fill directive's compatibility with GAS · 522d3db7
      David Majnemer authored
      Per the GAS documentation, .fill should permit pattern widths that
      aren't a power of two. While I was in the neighborhood, I added some
      sanity checking. This change was motivated by a use of this construct
      in the Linux Kernel.
      
      llvm-svn: 200606
      522d3db7
    • Peter Collingbourne's avatar
      Hopefully fix mingw32 bots. · ad141abd
      Peter Collingbourne authored
      For some reason this symbolic constant isn't defined in some versions of mingw32.
      
      llvm-svn: 200605
      ad141abd
    • Reid Kleckner's avatar
      Revert "[SLPV] Recognize vectorizable intrinsics during SLP vectorization ..." · a04504fe
      Reid Kleckner authored
      This reverts commit r200576.  It broke 32-bit self-host builds by
      vectorizing two calls to @llvm.bswap.i64, which we then fail to expand.
      
      llvm-svn: 200602
      a04504fe
    • Josh Magee's avatar
      [stackprotector] Implement the sspstrong rules for stack layout. · 24c7f063
      Josh Magee authored
      This changes the PrologueEpilogInserter and LocalStackSlotAllocation passes to
      follow the extended stack layout rules for sspstrong and sspreq.
      
      The sspstrong layout rules are:
       1. Large arrays and structures containing large arrays (>= ssp-buffer-size)
      are closest to the stack protector.
       2. Small arrays and structures containing small arrays (< ssp-buffer-size) are
      2nd closest to the protector.
       3. Variables that have had their address taken are 3rd closest to the
      protector.
      
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2546
      
      llvm-svn: 200601
      24c7f063
Loading