Skip to content
  1. Mar 03, 2010
    • Evan Cheng's avatar
      - Change MachineInstr::isIdenticalTo to take a new option that determines... · e9c46c25
      Evan Cheng authored
      - Change MachineInstr::isIdenticalTo to take a new option that determines whether it should skip checking defs or at least virtual register defs. This subsumes part of the TargetInstrInfo::isIdentical functionality.
      - Eliminate TargetInstrInfo::isIdentical and replace it with produceSameValue. In the default case, produceSameValue just checks whether two machine instructions are identical (except for virtual register defs). But targets may override it to check for unusual cases (e.g. ARM pic loads from constant pools).
      
      llvm-svn: 97628
      e9c46c25
  2. Mar 02, 2010
  3. Feb 15, 2010
    • David Greene's avatar
      · 3a0412f1
      David Greene authored
      Add non-temporal flags to MachineMemOperand.
      
      llvm-svn: 96226
      3a0412f1
  4. Feb 10, 2010
  5. Feb 09, 2010
  6. Jan 19, 2010
  7. Jan 16, 2010
  8. Jan 13, 2010
  9. Jan 06, 2010
  10. Jan 05, 2010
    • David Greene's avatar
      · 29388d6a
      David Greene authored
      Change errs() to dbgs().
      
      llvm-svn: 92545
      29388d6a
  11. Dec 28, 2009
  12. Dec 25, 2009
  13. Dec 16, 2009
  14. Dec 08, 2009
  15. Dec 05, 2009
  16. Dec 03, 2009
  17. Dec 01, 2009
  18. Nov 23, 2009
  19. Nov 16, 2009
  20. Nov 09, 2009
    • Dan Gohman's avatar
      Print "..." instead of all the uninteresting register clobbers on call · 2745d192
      Dan Gohman authored
      instructions. This makes CodeGen dumps significantly less noisy.
      
      Example before:
        BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %R2<imp-def,dead>, %R3<imp-def,dead>, %R12<imp-def,dead>, %LR<imp-def,dead>, %D0<imp-def,dead>, %D1<imp-def,dead>, %D2<imp-def,dead>, %D3<imp-def,dead>, %D4<imp-def,dead>, %D5<imp-def,dead>, %D6<imp-def,dead>, %D7<imp-def,dead>, %D16<imp-def,dead>, %D17<imp-def,dead>, %D18<imp-def,dead>, %D19<imp-def,dead>, %D20<imp-def,dead>, %D21<imp-def,dead>, %D22<imp-def,dead>, %D23<imp-def,dead>, %D24<imp-def,dead>, %D25<imp-def,dead>, %D26<imp-def,dead>, %D27<imp-def,dead>, %D28<imp-def,dead>, %D29<imp-def,dead>, %D30<imp-def,dead>, %D31<imp-def,dead>, %CPSR<imp-def,dead>, %FPSCR<imp-def,dead>
      
      Same example after:
        BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %LR<imp-def,dead>, %CPSR<imp-def,dead>, ...
      
      llvm-svn: 86583
      2745d192
  21. Nov 06, 2009
  22. 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
  23. Oct 30, 2009
  24. Oct 21, 2009
  25. Oct 15, 2009
  26. Oct 14, 2009
  27. 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
  28. Oct 09, 2009
  29. Oct 07, 2009
  30. Oct 05, 2009
  31. Sep 29, 2009
  32. Sep 26, 2009
  33. 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
  34. Sep 23, 2009
    • Dan Gohman's avatar
      Give MachineMemOperand an operator<<, factoring out code from · c0353bff
      Dan Gohman authored
      two different places for printing MachineMemOperands.
      
      Drop the virtual from Value::dump and instead give Value a
      protected virtual hook that can be overridden by subclasses
      to implement custom printing. This lets printing be more
      consistent, and simplifies printing of PseudoSourceValue
      values.
      
      llvm-svn: 82599
      c0353bff
  35. Sep 21, 2009
  36. Sep 17, 2009
  37. Aug 23, 2009
Loading