Skip to content
  1. Oct 23, 2010
    • Andrew Trick's avatar
      This is a prototype of an experimental register allocation · 1c24605a
      Andrew Trick authored
      framework. It's purpose is not to improve register allocation per se,
      but to make it easier to develop powerful live range splitting. I call
      it the basic allocator because it is as simple as a global allocator
      can be but provides the building blocks for sophisticated register
      allocation with live range splitting. 
      
      A minimal implementation is provided that trivially spills whenever it
      runs out of registers. I'm checking in now to get high-level design
      and style feedback. I've only done minimal testing. The next step is
      implementing a "greedy" allocation algorithm that does some register
      reassignment and makes better splitting decisions.
      
      llvm-svn: 117174
      1c24605a
    • Jakob Stoklund Olesen's avatar
      Add more verification of LiveIntervals. · 0fb303d3
      Jakob Stoklund Olesen authored
      llvm-svn: 117170
      0fb303d3
    • Jakob Stoklund Olesen's avatar
      Be more strict about detecting multi-use blocks for isolation. · 4cf8fe31
      Jakob Stoklund Olesen authored
      When a block has exactly two uses and the register is both live-in and live-out,
      don't isolate the block. We would be inserting two copies, so we haven't really
      made any progress.
      
      If the live-in and live-out values separate into disconnected components after
      splitting, we would be making progress. We can't detect that for now.
      
      llvm-svn: 117169
      4cf8fe31
    • Jim Grosbach's avatar
      ARM mode encoding information for CLZ, RBIT, REV*, and PKH*. · 2c9ae05c
      Jim Grosbach authored
      llvm-svn: 117165
      2c9ae05c
  2. Oct 22, 2010
  3. Oct 21, 2010
Loading