Skip to content
  1. Nov 29, 2011
  2. Nov 28, 2011
  3. Nov 27, 2011
    • Craig Topper's avatar
      Merge detecting and handling for VSHUFPSY and VSHUFPDY since a lot of the code... · 79ee88a5
      Craig Topper authored
      Merge detecting and handling for VSHUFPSY and VSHUFPDY since a lot of the code was similar for both.
      
      llvm-svn: 145199
      79ee88a5
    • Chandler Carruth's avatar
      Prevent rotating the blocks of a loop (and thus getting a backedge to be · 4f567207
      Chandler Carruth authored
      fallthrough) in cases where we might fail to rotate an exit to an outer
      loop onto the end of the loop chain.
      
      Having *some* rotation, but not performing this rotation, is the primary
      fix of thep performance regression with -enable-block-placement for
      Olden/em3d (a whopping 30% regression). Still working on reducing the
      test case that actually exercises this and the new rotation strategy out
      of this code, but I want to check if this regresses other test cases
      first as that may indicate it isn't the correct fix.
      
      llvm-svn: 145195
      4f567207
    • Chandler Carruth's avatar
      Take two on rotating the block ordering of loops. My previous attempt · 03adbd46
      Chandler Carruth authored
      was centered around the premise of laying out a loop in a chain, and
      then rotating that chain. This is good for preserving contiguous layout,
      but bad for actually making sane rotations. In order to keep it safe,
      I had to essentially make it impossible to rotate deeply nested loops.
      The information needed to correctly reason about a deeply nested loop is
      actually available -- *before* we layout the loop. We know the inner
      loops are already fused into chains, etc. We lose information the moment
      we actually lay out the loop.
      
      The solution was the other alternative for this algorithm I discussed
      with Benjamin and some others: rather than rotating the loop
      after-the-fact, try to pick a profitable starting block for the loop's
      layout, and then use our existing layout logic. I was worried about the
      complexity of this "pick" step, but it turns out such complexity is
      needed to handle all the important cases I keep teasing out of benchmarks.
      
      This is, I'm afraid, a bit of a work-in-progress. It is still
      misbehaving on some likely important cases I'm investigating in Olden.
      It also isn't really tested. I'm going to try to craft some interesting
      nested-loop test cases, but it's likely to be extremely time consuming
      and I don't want to go there until I'm sure I'm testing the correct
      behavior. Sadly I can't come up with a way of getting simple, fine
      grained test cases for this logic. We need complex loop structures to
      even trigger much of it.
      
      llvm-svn: 145183
      03adbd46
    • Chandler Carruth's avatar
      Revert r145180 as it is causing test failures on all the bots. · 37ab257b
      Chandler Carruth authored
      Original commit message:
      Fixed ObjectFile functions:
      - getSymbolOffset() renamed as getSymbolFileOffset()
      - getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile.
      - added getRelocationOffset()
      - fixed MachOObjectFile::getSymbolSize()
      - fixed MachOObjectFile::getSymbolSection()
      - fixed MachOObjectFile::getSymbolOffset() for symbols without section data.
      
      llvm-svn: 145182
      37ab257b
Loading