Skip to content
  1. Jun 21, 2012
    • Jakob Stoklund Olesen's avatar
      Convert RAGreedy to LiveRegMatrix interference checking. · 96eebf0b
      Jakob Stoklund Olesen authored
      Stop depending on the LiveIntervalUnions in RegAllocBase, they are about
      to be removed.
      
      The changes are mostly replacing register alias iterators with regunit
      iterators, and querying LiveRegMatrix instrad of RegAllocBase.
      
      InterferenceCache is converted to work with per-regunit
      LiveIntervalUnions, and it checks fixed regunit interference separately,
      using the fixed live intervals provided by LiveIntervalAnalysis.
      
      The local splitting helper calcGapWeights() is also considering fixed
      regunit interference which is kept on the side now.
      
      llvm-svn: 158867
      96eebf0b
  2. Feb 10, 2012
    • Jakob Stoklund Olesen's avatar
      Add register mask support to InterferenceCache. · a16ae597
      Jakob Stoklund Olesen authored
      This makes global live range splitting behave identically with and
      without register mask operands.
      
      This is not necessarily the best way of using register masks for live
      range splitting.  It would be more efficient to first split global live
      ranges around calls (i.e., register masks), and reserve the fine grained
      per-physreg interference guidance for global live ranges that do not
      cross calls.
      
      For now the goal is to produce identical assembly when enabling register
      masks.
      
      llvm-svn: 150259
      a16ae597
    • Jakob Stoklund Olesen's avatar
      Remove unused variable. · b7c1715d
      Jakob Stoklund Olesen authored
      llvm-svn: 150258
      b7c1715d
  3. Jul 23, 2011
  4. Jul 14, 2011
    • Jakob Stoklund Olesen's avatar
      Reapply r135121 with a fixed copy constructor. · a153ca58
      Jakob Stoklund Olesen authored
      Original commit message:
      
      Count references to interference cache entries.
      
      Each InterferenceCache::Cursor instance references a cache entry. A
      non-zero reference count guarantees that the entry won't be reused for a
      new register.
      
      This makes it possible to have multiple live cursors examining
      interference for different physregs.
      
      The total number of live cursors into a cache must be kept below
      InterferenceCache::getMaxCursors().
      
      Code generation should be unaffected by this change, and it doesn't seem
      to affect the cache replacement strategy either.
      
      llvm-svn: 135130
      a153ca58
    • Jakob Stoklund Olesen's avatar
      Revert r135121 which broke a gcc-4.2 builder. · 1d4badae
      Jakob Stoklund Olesen authored
      llvm-svn: 135122
      1d4badae
    • Jakob Stoklund Olesen's avatar
      Count references to interference cache entries. · c270cb6e
      Jakob Stoklund Olesen authored
      Each InterferenceCache::Cursor instance references a cache entry. A
      non-zero reference count guarantees that the entry won't be reused for a
      new register.
      
      This makes it possible to have multiple live cursors examining
      interference for different physregs.
      
      The total number of live cursors into a cache must be kept below
      InterferenceCache::getMaxCursors().
      
      Code generation should be unaffected by this change, and it doesn't seem
      to affect the cache replacement strategy either.
      
      llvm-svn: 135121
      c270cb6e
    • Jakob Stoklund Olesen's avatar
      Reapply r135074 and r135080 with a fix. · d7e99371
      Jakob Stoklund Olesen authored
      The cache entry referenced by the best split candidate could become
      clobbered by an unsuccessful candidate.
      
      The correct fix here is to use reference counts on the cache entries.
      Coming up.
      
      llvm-svn: 135113
      d7e99371
    • Jakob Stoklund Olesen's avatar
      Revert r135074 and r135080. They broke clamscan. · fae30b24
      Jakob Stoklund Olesen authored
      llvm-svn: 135096
      fae30b24
  5. Jul 13, 2011
  6. Apr 09, 2011
  7. Apr 02, 2011
Loading