Skip to content
  1. Jun 15, 2010
  2. Jun 04, 2010
  3. May 19, 2010
  4. May 18, 2010
    • Jakob Stoklund Olesen's avatar
      Properly handle multiple definitions of a virtual register in the same · 663543b4
      Jakob Stoklund Olesen authored
      instruction.
      
      This can happen on ARM:
      
      >> %reg1035:5<def>, %reg1035:6<def> = VLD1q16 %reg1028, 0, pred:14, pred:%reg0
      Regs: Q0=%reg1032* R0=%reg1028* R1=%reg1029* R2 R3=%reg1031*
      Killing last use: %reg1028
      Allocating %reg1035 from QPR
      Assigning %reg1035 to Q1
      << %D2<def>, %D3<def> = VLD1q16 %R0<kill>, 0, pred:14, pred:%reg0, %Q1<imp-def>
      
      llvm-svn: 104056
      663543b4
  5. May 17, 2010
  6. May 15, 2010
  7. May 14, 2010
  8. May 13, 2010
  9. May 12, 2010
  10. May 11, 2010
    • Jakob Stoklund Olesen's avatar
      Simplify the tracking of used physregs to a bulk bitor followed by a transitive · 3f0241e0
      Jakob Stoklund Olesen authored
      closure after allocating all blocks.
      
      Add a few more test cases for -regalloc=fast.
      
      llvm-svn: 103500
      3f0241e0
    • Jakob Stoklund Olesen's avatar
      Mostly rewrite RegAllocFast. · f1b3029a
      Jakob Stoklund Olesen authored
      Sorry for the big change. The path leading up to this patch had some TableGen
      changes that I didn't want to commit before I knew they were useful. They
      weren't, and this version does not need them.
      
      The fast register allocator now does no liveness calculations. Instead it relies
      on kill flags provided by isel. (Currently those kill flags are also ignored due
      to isel bugs). The allocation algorithm is supposed to work with any subset of
      valid kill flags. More kill flags simply means fewer spills inserted.
      
      Registers are allocated from a working set that contains no aliases. That means
      most allocations can be done directly without expensive alias checks. When the
      working set runs out of registers we do the full alias check to find new free
      registers.
      
      llvm-svn: 103488
      f1b3029a
Loading