Skip to content
  1. Feb 09, 2010
  2. Jan 26, 2010
    • Chris Lattner's avatar
      Rearrange handling of jump tables. Highlights: · b6db2c6b
      Chris Lattner authored
      1. MachineJumpTableInfo is now created lazily for a function the first time
         it actually makes a jump table instead of for every function.
      2. The encoding of jump table entries is now described by the
         MachineJumpTableInfo::JTEntryKind enum.  This enum is determined by the
         TLI::getJumpTableEncoding() hook, instead of by lots of code scattered
         throughout the compiler that "knows" that jump table entries are always
         32-bits in pic mode (for example).
      3. The size and alignment of jump table entries is now calculated based on
         their kind, instead of at machinefunction creation time.
      
      Future work includes using the EntryKind in more places in the compiler,
      eliminating other logic that "knows" the layout of jump tables in various
      situations.
      
      llvm-svn: 94470
      b6db2c6b
  3. Dec 24, 2009
    • David Greene's avatar
      · d60abbf7
      David Greene authored
      Change errs() to dbgs().
      
      llvm-svn: 92097
      d60abbf7
  4. Dec 16, 2009
  5. Dec 15, 2009
  6. Dec 11, 2009
    • Bill Wendling's avatar
      Don't try to move a MBB into the fall-through position if it's a landing pad or · b87b9925
      Bill Wendling authored
      branches only to a landing pad. Without this check, the compiler would go into
      an infinite loop because the branch to a landing pad is an "abnormal" edge which
      wasn't being taken into account.
      
      This is the meat of that fix:
      
        if (!PrevBB.canFallThrough() && !MBB->BranchesToLandingPad(MBB)) {
      
      The other stuff is simplification of the "branches to a landing pad" code.
      
      llvm-svn: 91161
      b87b9925
  7. Dec 05, 2009
  8. Dec 03, 2009
  9. Nov 26, 2009
    • Bob Wilson's avatar
      Split tail duplication into a separate pass. This is needed to avoid · 2d4ff12d
      Bob Wilson authored
      running tail duplication when doing branch folding for if-conversion, and
      we also want to be able to run tail duplication earlier to fix some
      reg alloc problems.  Move the CanFallThrough function from BranchFolding
      to MachineBasicBlock so that it can be shared by TailDuplication.
      
      llvm-svn: 89904
      2d4ff12d
  10. Nov 25, 2009
    • Bob Wilson's avatar
      Refactor target hook for tail duplication as requested by Chris. · d4d40670
      Bob Wilson authored
      Make tail duplication of indirect branches much more aggressive (for targets
      that indicate that it is profitable), based on further experience with
      this transformation.  I compiled 3 large applications with and without
      this more aggressive tail duplication and measured minimal changes in code
      size.  ("size" on Darwin seems to round the text size up to the nearest
      page boundary, so I can only say that any code size increase was less than
      one 4k page.) Radar 7421267.
      
      llvm-svn: 89814
      d4d40670
  11. Nov 19, 2009
  12. Nov 18, 2009
  13. Nov 17, 2009
  14. Nov 16, 2009
  15. Nov 13, 2009
  16. Nov 12, 2009
  17. Nov 11, 2009
  18. Nov 10, 2009
  19. Nov 04, 2009
    • Bob Wilson's avatar
      Fix branch folding bug for indirect branches: for a block containing only · 53a31ad3
      Bob Wilson authored
      an unconditional branch (possibly from tail merging), this code is
      trying to redirect all of its predecessors to go directly to the branch
      target, but that isn't feasible for indirect branches.  The other
      predecessors (that don't end with indirect branches) could theoretically
      still be handled, but that is not easily done right now.
      
      The AnalyzeBranch interface doesn't currently let us distinguish jump table
      branches from indirect branches, and this code is currently handling
      jump tables.  To avoid punting on address-taken blocks, we would have to give
      up handling jump tables.  That seems like a bad tradeoff.
      
      llvm-svn: 85975
      53a31ad3
  20. Oct 30, 2009
  21. Oct 29, 2009
Loading