Skip to content
  1. Apr 28, 2011
  2. Apr 27, 2011
  3. Apr 26, 2011
  4. Apr 25, 2011
  5. Apr 24, 2011
  6. Apr 23, 2011
  7. Apr 22, 2011
    • Chris Lattner's avatar
      Recommit the fix for rdar://9289512 with a couple tweaks to · 6d277517
      Chris Lattner authored
      fix bugs exposed by the gcc dejagnu testsuite:
      1. The load may actually be used by a dead instruction, which
         would cause an assert.
      2. The load may not be used by the current chain of instructions,
         and we could move it past a side-effecting instruction. Change
         how we process uses to define the problem away.
      
      llvm-svn: 130018
      6d277517
    • Benjamin Kramer's avatar
      DAGCombine: fold "(zext x) == C" into "x == (trunc C)" if the trunc is lossless. · 341c11da
      Benjamin Kramer authored
      On x86 this allows to fold a load into the cmp, greatly reducing register pressure.
        movzbl	(%rdi), %eax
        cmpl	$47, %eax
      ->
        cmpb	$47, (%rdi)
      
      This shaves 8k off gcc.o on i386. I'll leave applying the patch in README.txt to Chris :)
      
      llvm-svn: 130005
      341c11da
    • Devang Patel's avatar
      Do not leak argument's DbgVariables. · ad45d911
      Devang Patel authored
      llvm-svn: 130004
      ad45d911
    • Evan Cheng's avatar
      Typo · 8ea3af47
      Evan Cheng authored
      llvm-svn: 129970
      8ea3af47
    • Bill Wendling's avatar
      Branch folding is folding a landing pad into a regular BB. · c14d7322
      Bill Wendling authored
      An exception is thrown via a call to _cxa_throw, which we don't expect to
      return. Therefore, the "true" part of the invoke goes to a BB that has
      'unreachable' as its only instruction. This is lowered into an empty MachineBB.
      The landing pad for this invoke, however, is directly after the "true" MBB.
      When the empty MBB is removed, the landing pad is directly below the BB with the
      invoke call. The unconditional branch is removed and then the two blocks are
      merged together.
      
      The testcase is too big for a regression test.
      <rdar://problem/9305728>
      
      llvm-svn: 129965
      c14d7322
  8. Apr 21, 2011
    • Devang Patel's avatar
      Refactor. · 2266aa84
      Devang Patel authored
      llvm-svn: 129938
      2266aa84
    • Matt Beaumont-Gay's avatar
      Don't recycle loop variables. · 70597d4e
      Matt Beaumont-Gay authored
      llvm-svn: 129928
      70597d4e
    • Jakob Stoklund Olesen's avatar
      Allow allocatable ranges from global live range splitting to be split again. · 6a663b8d
      Jakob Stoklund Olesen authored
      These intervals are allocatable immediately after splitting, but they may be
      evicted because of later splitting. This is rare, but when it happens they
      should be split again.
      
      The remainder intervals that cannot be allocated after splitting still move
      directly to spilling.
      
      SplitEditor::finish can optionally provide a mapping from new live intervals
      back to the original interval indexes returned by openIntv().
      
      Each original interval index can map to multiple new intervals after connected
      components have been separated. Dead code elimination may also add existing
      intervals to the list.
      
      The reverse mapping allows the SplitEditor client to treat the new intervals
      differently depending on the split region they came from.
      
      llvm-svn: 129925
      6a663b8d
Loading