Skip to content
  1. Jul 09, 2011
    • Jakob Stoklund Olesen's avatar
      Hoist spills within a basic block. · bf6afec3
      Jakob Stoklund Olesen authored
      Try to move spills as early as possible in their basic block. This can
      help eliminate interferences by shortening the live range being
      spilled.
      
      This fixes PR10221.
      
      llvm-svn: 134776
      bf6afec3
  2. Jul 08, 2011
  3. Jul 07, 2011
    • Devang Patel's avatar
      Add DEBUG message. · 53b050ae
      Devang Patel authored
      llvm-svn: 134643
      53b050ae
    • Devang Patel's avatar
      If known DebugLocs do not match then two DBG_VALUE machine instructions are... · bf8cc60d
      Devang Patel authored
      If known DebugLocs do not match then two DBG_VALUE machine instructions are not identical. For example,
      
              DBG_VALUE 3.310000e+02, 0, !"ds"; dbg:sse.stepfft.c:138:18 @[ sse.stepfft.c:32:10 ]
              DBG_VALUE 3.310000e+02, 0, !"ds"; dbg:sse.stepfft.c:138:18 @[ sse.stepfft.c:31:10 ]
      
      These two MIs represent identical value, 3.31...,  for one variable, ds, but they are not identical because the represent two separate instances of inlined variable "ds". 
      
      llvm-svn: 134620
      bf8cc60d
    • Lang Hames's avatar
      Add functions 'hasPredecessor' and 'hasPredecessorHelper' to SDNode. The · 5a00499e
      Lang Hames authored
      hasPredecessorHelper function allows predecessors to be cached to speed up
      repeated invocations. This fixes PR10186.
      
      X.isPredecessorOf(Y) now just calls Y.hasPredecessor(X)
      
      Y.hasPredecessor(X) calls Y.hasPredecessorHelper(X, Visited, Worklist) with
      empty Visited and Worklist sets (i.e. no caching over invocations).
      
      Y.hasPredecessorHelper(X, Visited, Worklist) caches search state in Visited
      and Worklist to speed up repeated calls. The Visited set is searched for X
      before going to the worklist to further search the DAG if necessary.
      
      llvm-svn: 134592
      5a00499e
    • Devang Patel's avatar
      Add DEBUG messages. · b7a328ed
      Devang Patel authored
      llvm-svn: 134572
      b7a328ed
    • Eli Friedman's avatar
      When tail-merging multiple blocks, make sure to correctly update the live-in... · bf007364
      Eli Friedman authored
      When tail-merging multiple blocks, make sure to correctly update the live-in list on the merged block to correctly account for the live-outs of all the predecessors.  They might not be the same in all cases (the testcase I have involves a PHI node where one of the operands is an IMPLICIT_DEF).
      
      Unfortunately, the testcase I have is large and confidential, so I don't have a test to commit at the moment; I'll see if I can come up with something smaller where this issue reproduces.
      
      <rdar://problem/9716278>
      
      llvm-svn: 134565
      bf007364
    • Devang Patel's avatar
      Remove dead code. · 92ca8fc9
      Devang Patel authored
      llvm-svn: 134561
      92ca8fc9
    • Devang Patel's avatar
      Typo. · 338e4326
      Devang Patel authored
      llvm-svn: 134559
      338e4326
    • Eric Christopher's avatar
      Grammar and 80-col. · ea336c79
      Eric Christopher authored
      llvm-svn: 134555
      ea336c79
  4. Jul 06, 2011
  5. Jul 05, 2011
    • Jakob Stoklund Olesen's avatar
      Break infinite loop when the Hopfield network oscillates. · 91f3a309
      Jakob Stoklund Olesen authored
      This is impossible in theory, I can prove it. In practice, our near-zero
      threshold can cause the network to oscillate between equally good
      solutions.
      
      <rdar://problem/9720596>
      
      llvm-svn: 134428
      91f3a309
    • Jakob Stoklund Olesen's avatar
      Fix PR10277. · bbad3bce
      Jakob Stoklund Olesen authored
      Remat during spilling triggers dead code elimination. If a phi-def
      becomes unused, that may also cause live ranges to split into separate
      connected components.
      
      This type of splitting is different from normal live range splitting. In
      particular, there may not be a common original interval.
      
      When the split range is its own original, make sure that the new
      siblings are also their own originals. The range being split cannot be
      used as an original since it doesn't cover the new siblings.
      
      llvm-svn: 134413
      bbad3bce
    • Jakob Stoklund Olesen's avatar
      Tweak comment and debug output. · b2090ecb
      Jakob Stoklund Olesen authored
      llvm-svn: 134412
      b2090ecb
  6. Jul 04, 2011
    • Rafael Espindola's avatar
      Move early tail duplication earlier. · c74d9378
      Rafael Espindola authored
      This fixes the issue noted in PR10251 where early tail dup of bbs with
      indirectbr would cause a bb to be duplicated into a loop preheader
      and then into its predecessors, creating phi nodes with identical
      operands just before register allocation.
      
      This helps with jsinterp.o size (__TEXT goes from 163568 to 126656)
      and a bit with performance 1.005x faster on sunspider (jits still enabled).
      
      The result on webkit with the jit disabled is more significant: 1.021x faster.
      
      llvm-svn: 134372
      c74d9378
    • Rafael Espindola's avatar
      Move most of the pre BB code to TailDuplicateAndUpdate. Change the · f9f012ea
      Rafael Espindola authored
      HasIndirectbr variable to be just that. No functionality change.
      
      llvm-svn: 134371
      f9f012ea
    • Rafael Espindola's avatar
      79dc4e77
    • Jakob Stoklund Olesen's avatar
      Fix PR10244. · 71a3a003
      Jakob Stoklund Olesen authored
      A split point inserted in a block with a landing pad successor may be
      hoisted above the call to ensure that it dominates all successors. The
      code that handles the rest of the basic block must take this into
      account.
      
      I am not including a test case, it would be very fragile. PR10244 comes
      from building clang with exceptions enabled.
      
      llvm-svn: 134369
      71a3a003
  7. Jul 03, 2011
  8. Jul 02, 2011
  9. Jul 01, 2011
Loading