Skip to content
  1. Oct 18, 2009
  2. Oct 17, 2009
  3. Oct 12, 2009
  4. Oct 10, 2009
    • Dan Gohman's avatar
      Factor out LiveIntervalAnalysis' code to determine whether an instruction · 87b02d5b
      Dan Gohman authored
      is trivially rematerializable and integrate it into
      TargetInstrInfo::isTriviallyReMaterializable. This way, all places that
      need to know whether an instruction is rematerializable will get the
      same answer.
      
      This enables the useful parts of the aggressive-remat option by
      default -- using AliasAnalysis to determine whether a memory location
      is invariant, and removes the questionable parts -- rematting operations
      with virtual register inputs that may not be live everywhere.
      
      llvm-svn: 83687
      87b02d5b
  5. Sep 25, 2009
    • Dan Gohman's avatar
      Improve MachineMemOperand handling. · 48b185d6
      Dan Gohman authored
       - Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions.
         This eliminates MachineInstr's std::list member and allows the data to be
         created by isel and live for the remainder of codegen, avoiding a lot of
         copying and unnecessary translation. This also shrinks MemSDNode.
       - Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated
         fields for MachineMemOperands.
       - Change MemSDNode to have a MachineMemOperand member instead of its own
         fields with the same information. This introduces some redundancy, but
         it's more consistent with what MachineInstr will eventually want.
       - Ignore alignment when searching for redundant loads for CSE, but remember
         the greatest alignment.
      
      Target-specific code which previously used MemOperandSDNodes with generic
      SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range
      so that the SelectionDAG framework knows that MachineMemOperand information
      is available.
      
      llvm-svn: 82794
      48b185d6
  6. Sep 21, 2009
  7. Jul 22, 2009
    • Evan Cheng's avatar
      Let each target determines whether a machine instruction is dead. If true,... · 4dc848f3
      Evan Cheng authored
      Let each target determines whether a machine instruction is dead. If true, that allows late codeine passes to delete it.
      
      This is considered a workaround. The problem is some targets are not modeling side effects correctly. PPC is apparently one of those. This patch allows ppc llvm-gcc to bootstrap on Darwin. Once we find out which instruction definitions are wrong, we can remove the PPCInstrInfo workaround.
      
      llvm-svn: 76703
      4dc848f3
  8. Jul 16, 2009
  9. Jul 11, 2009
  10. Jul 10, 2009
  11. Jul 01, 2009
  12. May 13, 2009
    • Bill Wendling's avatar
      Change MachineInstrBuilder::addReg() to take a flag instead of a list of · f7b83c7a
      Bill Wendling authored
      booleans. This gives a better indication of what the "addReg()" is
      doing. Remembering what all of those booleans mean isn't easy, especially if you
      aren't spending all of your time in that code.
      
      I took Jakob's suggestion and made it illegal to pass in "true" for the
      flag. This should hopefully prevent any unintended misuse of this (by reverting
      to the old way of using addReg()).
      
      llvm-svn: 71722
      f7b83c7a
  13. Feb 03, 2009
  14. Dec 03, 2008
  15. Oct 03, 2008
  16. 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
  17. Sep 11, 2008
  18. Aug 15, 2008
  19. 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
  20. Jun 16, 2008
  21. Apr 16, 2008
  22. Mar 31, 2008
  23. Feb 15, 2008
  24. Feb 13, 2008
  25. Jan 07, 2008
  26. Jan 01, 2008
    • Chris Lattner's avatar
      Fix a problem where lib/Target/TargetInstrInfo.h would include and use · 25568e4c
      Chris Lattner authored
      a header file from libcodegen.  This violates a layering order: codegen
      depends on target, not the other way around.  The fix to this is to 
      split TII into two classes, TII and TargetInstrInfoImpl, which defines
      stuff that depends on libcodegen.  It is defined in libcodegen, where 
      the base is not.
      
      llvm-svn: 45475
      25568e4c
  27. Dec 31, 2007
    • Chris Lattner's avatar
      Add new shorter predicates for testing machine operands for various types: · a5bb370a
      Chris Lattner authored
      e.g. MO.isMBB() instead of MO.isMachineBasicBlock().  I don't plan on 
      switching everything over, so new clients should just start using the 
      shorter names.
      
      Remove old long accessors, switching everything over to use the short
      accessor: getMachineBasicBlock() -> getMBB(), 
      getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc.
      
      llvm-svn: 45464
      a5bb370a
  28. Dec 30, 2007
  29. Dec 29, 2007
  30. Sep 14, 2007
  31. Jul 07, 2007
  32. Jul 05, 2007
  33. Jun 08, 2007
  34. May 29, 2007
  35. May 23, 2007
Loading