Skip to content
  1. Jun 29, 2011
    • Jakob Stoklund Olesen's avatar
      Rewrite RAGreedy::splitAroundRegion, now with cool ASCII art. · ffbc05b7
      Jakob Stoklund Olesen authored
      This function has to deal with a lot of special cases, and the old
      version got it wrong sometimes. In particular, it would sometimes leave
      multiple uses in the stack interval in a single block. That causes bad
      code with multiple reloads in the same basic block.
      
      The new version handles block entry and exit in a single pass. It first
      eliminates all the easy cases, and then goes on to create a local
      interval for the blocks with difficult interference. Previously, we
      would only create the local interval for completely isolated blocks.
      
      It can happen that the stack interval becomes completely empty because
      we could allocate a register in all edge bundles, and the new local
      intervals deal with the interference. The empty stack interval is
      harmless, but we need to remove a SplitKit assertion that checks for
      empty intervals.
      
      llvm-svn: 134047
      ffbc05b7
  2. Jun 28, 2011
  3. Jun 27, 2011
Loading