Skip to content
  1. Dec 15, 2009
  2. Dec 14, 2009
  3. 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
    • Bill Wendling's avatar
      Revert part of r91101 which was causing an infinite loop in the self-hosting · 9f13fc7d
      Bill Wendling authored
      build bots.
      
      llvm-svn: 91113
      9f13fc7d
    • Bill Wendling's avatar
      Address comments on last patch: · a1bce0c4
      Bill Wendling authored
      - Loosen the restrictions when checking of it branches to a landing pad.
      - Make the loop more efficient by checking the '.insert' return value.
      - Do cheaper checks first.
      
      llvm-svn: 91101
      a1bce0c4
    • Bill Wendling's avatar
      A machine basic block may end in an unconditional branch, however it may have · a581aacd
      Bill Wendling authored
      more than one successor. Normally, these extra successors are dead. However,
      some of them may branch to exception handling landing pads. If we remove those
      successors, then the landing pads could go away if all predecessors to it are
      removed. Before, it was checking if the direct successor was the landing
      pad. But it could be the result of jumping through multiple basic blocks to get
      to it. If we were to only check for the existence of an EH_LABEL in the basic
      block and not remove successors if it's in there, then it could stop actually
      dead basic blocks from being removed.
      
      llvm-svn: 91092
      a581aacd
  4. Dec 05, 2009
  5. Dec 03, 2009
  6. 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
  7. Nov 22, 2009
  8. Nov 20, 2009
  9. Nov 17, 2009
  10. Nov 12, 2009
  11. Nov 11, 2009
    • Dan Gohman's avatar
      Add support for tail duplication to BranchFolding, and extend · 64b5d0f4
      Dan Gohman authored
      tail merging support to handle more cases.
       - Recognize several cases where tail merging is beneficial even when
         the tail size is smaller than the generic threshold.
       - Make use of MachineInstrDesc::isBarrier to help detect
         non-fallthrough blocks.
       - Check for and avoid disrupting fall-through edges in more cases.
      
      llvm-svn: 86871
      64b5d0f4
  12. Oct 31, 2009
    • Dan Gohman's avatar
      Make -print-machineinstrs more readable. · 34341e69
      Dan Gohman authored
       - Be consistent when referring to MachineBasicBlocks: BB#0.
       - Be consistent when referring to virtual registers: %reg1024.
       - Be consistent when referring to unknown physical registers: %physreg10.
       - Be consistent when referring to known physical registers: %RAX
       - Be consistent when referring to register 0: %reg0
       - Be consistent when printing alignments: align=16
       - Print jump table contents.
       - Don't print host addresses, in general.
       - and various other cleanups.
      
      llvm-svn: 85682
      34341e69
  13. Oct 30, 2009
  14. Aug 23, 2009
  15. Aug 18, 2009
  16. Aug 03, 2009
    • David Greene's avatar
      · ec9bc288
      David Greene authored
      Re-apply LiveInterval index dumping patch, with fixes suggested by Bill
      and others.
      
      llvm-svn: 78003
      ec9bc288
  17. Jul 24, 2009
  18. Jul 21, 2009
  19. May 05, 2009
  20. Mar 31, 2009
  21. Mar 30, 2009
  22. Jan 08, 2009
  23. Oct 03, 2008
  24. Sep 13, 2008
    • Dan Gohman's avatar
      Remove isImm(), isReg(), and friends, in favor of · 38453eeb
      Dan Gohman authored
      isImmediate(), isRegister(), and friends, to avoid confusion
      about having two different names with the same meaning. I'm
      not attached to the longer names, and would be ok with
      changing to the shorter names if others prefer it.
      
      llvm-svn: 56189
      38453eeb
  25. Jul 28, 2008
    • Dan Gohman's avatar
      Fold the useful features of alist and alist_node into ilist, and · 804c95df
      Dan Gohman authored
      a new ilist_node class, and remove them. Unlike alist_node,
      ilist_node doesn't attempt to manage storage itself, so it avoids
      the associated problems, including being opaque in gdb.
      
      Adjust the Recycler class so that it doesn't depend on alist_node.
      Also, change it to use explicit Size and Align parameters, allowing
      it to work when the largest-sized node doesn't have the greatest
      alignment requirement.
      
      Change MachineInstr's MachineMemOperand list from a pool-backed
      alist to a std::list for now.
      
      llvm-svn: 54146
      804c95df
  26. Jul 18, 2008
  27. Jul 08, 2008
    • Dan Gohman's avatar
      Pool-allocation for MachineInstrs, MachineBasicBlocks, and · 3b460303
      Dan Gohman authored
      MachineMemOperands. The pools are owned by MachineFunctions.
      
      This drastically reduces the number of calls to malloc/free made
      during the "Emit" phase of scheduling, as well as later phases
      in CodeGen. Combined with other changes, this speeds up the
      "instruction selection" phase of CodeGen by 10% in some cases.
      
      llvm-svn: 53212
      3b460303
  28. May 05, 2008
  29. Apr 24, 2008
  30. Feb 28, 2008
Loading