Skip to content
  1. Jun 07, 2010
  2. Jun 05, 2010
  3. Jun 04, 2010
  4. Jun 03, 2010
    • Dale Johannesen's avatar
      Early implementation of tail call for ARM. · d679ff73
      Dale Johannesen authored
      A temporary flag -arm-tail-calls defaults to off,
      so there is no functional change by default.
      Intrepid users may try this; simple cases work
      but there are bugs.
      
      llvm-svn: 105413
      d679ff73
    • Dan Gohman's avatar
      Fix SimplifyDemandedBits' AssertZext logic to demand all the bits. It · d83e3e77
      Dan Gohman authored
      needs to demand the high bits because it's asserting that they're zero.
      
      llvm-svn: 105406
      d83e3e77
    • Bob Wilson's avatar
      Revert 105308. · 30093b5d
      Bob Wilson authored
      llvm-svn: 105399
      30093b5d
    • Bill Wendling's avatar
      Machine sink could potentially sink instructions into a block where the physical · f82aea63
      Bill Wendling authored
      registers it defines then interfere with an existing preg live range.
      
      For instance, if we had something like these machine instructions:
      
      BB#0
        ... = imul ... EFLAGS<imp-def,dead>
        test ..., EFLAGS<imp-def>
        jcc BB#2 EFLAGS<imp-use>
      
      BB#1
        ... ; fallthrough to BB#2
      
      BB#2
        ... ; No code that defines EFLAGS
        jcc ... EFLAGS<imp-use>
      
      Machine sink will come along, see that imul implicitly defines EFLAGS, but
      because it's "dead", it assumes that it can move imul into BB#2. But when it
      does, imul's "dead" imp-def of EFLAGS is raised from the dead (a zombie) and
      messes up the condition code for the jump (and pretty much anything else which
      relies upon it being correct).
      
      The solution is to know which pregs are live going into a basic block. However,
      that information isn't calculated at this point. Nor does the LiveVariables pass
      take into account non-allocatable physical registers. In lieu of this, we do a
      *very* conservative pass through the basic block to determine if a preg is live
      coming out of it.
      
      llvm-svn: 105387
      f82aea63
Loading