Skip to content
  1. Mar 24, 2011
  2. Dec 24, 2010
  3. Dec 19, 2010
  4. Nov 03, 2010
    • Evan Cheng's avatar
      Two sets of changes. Sorry they are intermingled. · debf9c50
      Evan Cheng authored
      1. Fix pre-ra scheduler so it doesn't try to push instructions above calls to
         "optimize for latency". Call instructions don't have the right latency and
         this is more likely to use introduce spills.
      2. Fix if-converter cost function. For ARM, it should use instruction latencies,
         not # of micro-ops since multi-latency instructions is completely executed
         even when the predicate is false. Also, some instruction will be "slower"
         when they are predicated due to the register def becoming implicit input.
         rdar://8598427
      
      llvm-svn: 118135
      debf9c50
  5. Oct 26, 2010
  6. Oct 06, 2010
    • Evan Cheng's avatar
      - Add TargetInstrInfo::getOperandLatency() to compute operand latencies. This · 49d4c0bd
      Evan Cheng authored
        allow target to correctly compute latency for cases where static scheduling
        itineraries isn't sufficient. e.g. variable_ops instructions such as
        ARM::ldm.
        This also allows target without scheduling itineraries to compute operand
        latencies. e.g. X86 can return (approximated) latencies for high latency
        instructions such as division.
      - Compute operand latencies for those defined by load multiple instructions,
        e.g. ldm and those used by store multiple instructions, e.g. stm.
      
      llvm-svn: 115755
      49d4c0bd
  7. Sep 15, 2010
  8. Sep 10, 2010
    • Evan Cheng's avatar
      Teach if-converter to be more careful with predicating instructions that would · bf407075
      Evan Cheng authored
      take multiple cycles to decode.
      For the current if-converter clients (actually only ARM), the instructions that
      are predicated on false are not nops. They would still take machine cycles to
      decode. Micro-coded instructions such as LDM / STM can potentially take multiple
      cycles to decode. If-converter should take treat them as non-micro-coded
      simple instructions.
      
      llvm-svn: 113570
      bf407075
  9. Sep 09, 2010
  10. Jun 18, 2010
  11. Aug 22, 2009
  12. Aug 02, 2009
  13. Jul 29, 2009
  14. May 05, 2009
  15. Apr 09, 2009
    • Bob Wilson's avatar
      Fix pr3954. The register scavenger asserts for inline assembly with · 51856173
      Bob Wilson authored
      register destinations that are tied to source operands.  The
      TargetInstrDescr::findTiedToSrcOperand method silently fails for inline
      assembly.  The existing MachineInstr::isRegReDefinedByTwoAddr was very
      close to doing what is needed, so this revision makes a few changes to
      that method and also renames it to isRegTiedToUseOperand (for consistency
      with the very similar isRegTiedToDefOperand and because it handles both
      two-address instructions and inline assembly with tied registers).
      
      llvm-svn: 68714
      51856173
  16. Jan 07, 2008
  17. 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
  18. 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
  19. Dec 30, 2007
  20. Dec 29, 2007
  21. Sep 14, 2007
  22. Jul 07, 2007
  23. Jul 05, 2007
  24. Jun 08, 2007
  25. May 29, 2007
  26. May 23, 2007
  27. May 17, 2007
  28. May 16, 2007
  29. Dec 08, 2006
  30. Dec 01, 2006
Loading