Skip to content
  1. Apr 08, 2012
    • Chandler Carruth's avatar
      Move the TLSModel information into the TargetMachine rather than hiding · 16f0ebcb
      Chandler Carruth authored
      in TargetLowering. There was already a FIXME about this location being
      odd. The interface is simplified as a consequence. This will also make
      it easier to change TLS models when compiling with PIE.
      
      llvm-svn: 154292
      16f0ebcb
    • Benjamin Kramer's avatar
      EngineBuilder::create is expected to take ownership of the TargetMachine... · 25a3d816
      Benjamin Kramer authored
      EngineBuilder::create is expected to take ownership of the TargetMachine passed to it. Delete it on error or when we create an interpreter that doesn't need it.
      
      llvm-svn: 154288
      25a3d816
    • Chandler Carruth's avatar
      Remove an over zealous assert. The assert was trying to catch places · bed1abf9
      Chandler Carruth authored
      where a chain outside of the loop block-set ended up in the worklist for
      scheduling as part of the contiguous loop. However, asserting the first
      block in the chain is in the loop-set isn't a valid check -- we may be
      forced to drag a chain into the worklist due to one block in the chain
      being part of the loop even though the first block is *not* in the loop.
      This occurs when we have been forced to form a chain early due to
      un-analyzable branches.
      
      No test case here as I have no idea how to even begin reducing one, and
      it will be hopelessly fragile. We have to somehow end up with a loop
      header of an inner loop which is a successor of a basic block with an
      unanalyzable pair of branch instructions. Ow. Self-host triggers it so
      it is unlikely it will regress.
      
      This at least gets block placement back to passing selfhost and the test
      suite. There are still a lot of slowdown that I don't like coming out of
      block placement, although there are now also a lot of speedups. =[ I'm
      seeing swings in both directions up to 10%. I'm going to try to find
      time to dig into this and see if we can turn this on for 3.1 as it does
      a really good job of cleaning up after some loops that degraded with the
      inliner changes.
      
      llvm-svn: 154287
      bed1abf9
    • Chandler Carruth's avatar
      Add a debug-only 'dump' method to the BlockChain structure to ease · 49158908
      Chandler Carruth authored
      debugging.
      
      llvm-svn: 154286
      49158908
    • Chandler Carruth's avatar
      Teach InstCombine to nuke a common alloca pattern -- an alloca which has · f82b0e2d
      Chandler Carruth authored
      GEPs, bit casts, and stores reaching it but no other instructions. These
      often show up during the iterative processing of the inliner, SROA, and
      DCE. Once we hit this point, we can completely remove the alloca. These
      were actually showing up in the final, fully optimized code in a bunch
      of inliner tests I've been working on, and notably they show up after
      LLVM finishes optimizing away all function calls involved in
      hash_combine(a, b).
      
      llvm-svn: 154285
      f82b0e2d
    • Nadav Rotem's avatar
      AVX2: Build splat vectors by broadcasting a scalar from the constant pool. · 82609df6
      Nadav Rotem authored
      Previously we used three instructions to broadcast an immediate value into a
      vector register.
      On Sandybridge we continue to load the broadcasted value from the constant pool.
      
      llvm-svn: 154284
      82609df6
    • Bill Wendling's avatar
      Remove the 'Parent' pointer from the MDNodeOperand class. · 5c0068f8
      Bill Wendling authored
      An MDNode has a list of MDNodeOperands allocated directly after it as part of
      its allocation. Therefore, the Parent of the MDNodeOperands can be found by
      walking back through the operands to the beginning of that list. Mark the first
      operand's value pointer as being the 'first' operand so that we know where the
      beginning of said list is.
      
      This saves a *lot* of space during LTO with -O0 -g flags.
      
      llvm-svn: 154280
      5c0068f8
    • Bill Wendling's avatar
      Allow subclasses of the ValueHandleBase to store information as part of the · 9b2503a0
      Bill Wendling authored
      value pointer by making the value pointer into a pointer-int pair with 2 bits
      available for flags.
      
      llvm-svn: 154279
      9b2503a0
    • Craig Topper's avatar
      Turn avx2 vinserti128 intrinsic calls into INSERT_SUBVECTOR DAG nodes and... · d024cef2
      Craig Topper authored
      Turn avx2 vinserti128 intrinsic calls into INSERT_SUBVECTOR DAG nodes and remove patterns for selecting the intrinsic. Similar was already done for avx1.
      
      llvm-svn: 154272
      d024cef2
  2. Apr 07, 2012
  3. Apr 06, 2012
  4. Apr 05, 2012
Loading