Skip to content
  1. Oct 18, 2013
  2. Oct 17, 2013
  3. Oct 16, 2013
  4. Oct 15, 2013
  5. Oct 14, 2013
    • Andrew Trick's avatar
      LiveRegUnits::removeRegsInMask safety. · 3f4d6c65
      Andrew Trick authored
      Clobbering is exclusive not inclusive on register units.
      For liveness, we need to consider all the preserved registers.
      e.g. A regmask that clobbers YMM0 may preserve XMM0.
      Units are only clobbered when all super-registers are clobbered.
      
      llvm-svn: 192623
      3f4d6c65
    • Andrew Trick's avatar
      Use a SparseSet in LiveRegUnits. · 276dd453
      Andrew Trick authored
      Some clients may add block live ins and may track liveness over a
      large scope. This guarantees an efficient implementation in all cases
      with no memory allocation/deallocation, independent of the number of
      target registers. It could be slightly less convenient but is fine in
      the expected case.
      
      llvm-svn: 192622
      276dd453
    • Andrew Trick's avatar
      Move LiveRegUnits implementation into .cpp. Comment and format. · 0aed0cfc
      Andrew Trick authored
      llvm-svn: 192621
      0aed0cfc
    • Andrew Trick's avatar
      ff3585c5
    • Manman Ren's avatar
      Debug Info: static member DIE creation. · c6b63927
      Manman Ren authored
      Clean up creation of static member DIEs. We can create static member DIEs from
      two places, so we call getOrCreateStaticMemberDIE from the two places.
      
      getOrCreateStaticMemberDIE will get or create the context DIE first, then it
      will check if the DIE already exists, if not, we create the static member DIE
      and add it to the context.
      
      Creation of static member DIEs are handled in a similar way as subprogram DIEs.
      
      llvm-svn: 192618
      c6b63927
    • David Blaikie's avatar
      Fix indenting. · 6004dbc9
      David Blaikie authored
      That wasn't confusing /at all/...
      
      llvm-svn: 192617
      6004dbc9
    • Will Dietz's avatar
      MachineSink: Fix and tweak critical-edge breaking heuristic. · 5cb7f4e3
      Will Dietz authored
      Per original comment, the intention of this loop
      is to go ahead and break the critical edge
      (in order to sink this instruction) if there's
      reason to believe doing so might "unblock" the
      sinking of additional instructions that define
      registers used by this one.  The idea is that if
      we have a few instructions to sink "together"
      breaking the edge might be worthwhile.
      
      This commit makes a few small changes
      to help better realize this goal:
      
      First, modify the loop to ignore registers
      defined by this instruction.  We don't
      sink definitions of physical registers,
      and sinking an SSA definition isn't
      going to unblock an upstream instruction.
      
      Second, ignore uses of physical registers.
      Instructions that define physical registers are
      rejected for sinking, and so moving this one
      won't enable moving any defining instructions.
      As an added bonus, while virtual register
      use-def chains are generally small due
      to SSA goodness, iteration over the uses
      and definitions (used by hasOneNonDBGUse)
      for physical registers like EFLAGS
      can be rather expensive in practice.
      (This is the original reason for looking at this)
      
      Finally, to keep things simple continue
      to only consider this trick for registers that
      have a single use (via hasOneNonDBGUse),
      but to avoid spuriously breaking critical edges
      only do so if the definition resides
      in the same MBB and therefore this one directly
      blocks it from being sunk as well.
      If sinking them together is meant to be,
      let the iterative nature of this pass
      sink the definition into this block first.
      
      Update tests to accomodate this change,
      add new testcase where sinking avoids pipeline stalls.
      
      llvm-svn: 192608
      5cb7f4e3
    • Rafael Espindola's avatar
      Remove the now unused strong phi elimination pass. · 9770bde5
      Rafael Espindola authored
      llvm-svn: 192604
      9770bde5
    • Elena Demikhovsky's avatar
      Fixed a bug in dynamic allocation memory on stack. · 82a46ebe
      Elena Demikhovsky authored
      The alignment of allocated space was wrong, see Bugzila 17345.
      
      Done by Zvi Rackover <zvi.rackover@intel.com>.
      
      llvm-svn: 192573
      82a46ebe
  6. Oct 13, 2013
  7. Oct 12, 2013
  8. Oct 11, 2013
Loading