Skip to content
  1. Jul 07, 2010
  2. Jul 06, 2010
  3. Jul 05, 2010
  4. Jul 04, 2010
  5. Jul 03, 2010
  6. Jul 02, 2010
    • Jim Grosbach's avatar
      Custom inserters (e.g., conditional moves in Thumb1 can introduce · 3c432485
      Jim Grosbach authored
      new basic blocks, and if used as a function argument, that can cause call frame
      setup / destroy pairs to be split across a basic block boundary. That prevents
      us from doing a simple assertion to check that the pairs match and alloc/
      dealloc the same amount of space. Modify the assertion to only check the
      amount allocated when there are matching pairs in the same basic block.
      
      rdar://8022442
      
      llvm-svn: 107517
      3c432485
    • Evan Cheng's avatar
      - Two-address pass should not assume unfolding is always successful. · 0ce84486
      Evan Cheng authored
      - X86 unfolding should check if the instructions being unfolded has memoperands.
        If there is no memoperands, then it must assume conservative alignment. If this
        would introduce an expensive sse unaligned load / store, then unfoldMemoryOperand
        etc. should not unfold the instruction.
      
      llvm-svn: 107509
      0ce84486
    • Dale Johannesen's avatar
      Propagate the AlignStack bit in InlineAsm's to the · 4d887f7c
      Dale Johannesen authored
      PrologEpilog code, and use it to determine whether
      the asm forces stack alignment or not.  gcc consistently
      does not do this for GCC-style asms; Apple gcc inconsistently
      sometimes does it for asm blocks.  There is no
      convenient place to put a bit in either the SDNode or
      the MachineInstr form, so I've added an extra operand
      to each; unlovely, but it does allow for expansion for
      more bits, should we need it.  PR 5125.  Some
      existing testcases are affected.
      The operand lists of the SDNode and MachineInstr forms
      are indexed with awesome mnemonics, like "2"; I may
      fix this someday, but not now.  I'm not making it any
      worse.  If anyone is inspired I think you can find all
      the right places from this patch.
      
      llvm-svn: 107506
      4d887f7c
    • Jakob Stoklund Olesen's avatar
      Remove invalid assert · df8429ae
      Jakob Stoklund Olesen authored
      llvm-svn: 107505
      df8429ae
    • Jakob Stoklund Olesen's avatar
      Properly handle debug values during inline spilling. · cf6c5c96
      Jakob Stoklund Olesen authored
      llvm-svn: 107503
      cf6c5c96
    • Jakob Stoklund Olesen's avatar
      Rematerialize as much as possible before inserting spills and reloads. · 96037187
      Jakob Stoklund Olesen authored
      This allows us to recognize the common case where all uses could be
      rematerialized, and no stack slot allocation is necessary.
      
      If some values could be fully rematerialized, remove them from the live range
      before allocating a stack slot for the rest.
      
      llvm-svn: 107492
      96037187
Loading