Skip to content
  1. Feb 18, 2010
  2. Feb 17, 2010
  3. Feb 16, 2010
  4. Feb 15, 2010
    • Evan Cheng's avatar
      Split SelectionDAGISel::IsLegalAndProfitableToFold to · 5e73ff2e
      Evan Cheng authored
      IsLegalToFold and IsProfitableToFold. The generic version of the later simply checks whether the folding candidate has a single use.
      
      This allows the target isel routines more flexibility in deciding whether folding makes sense. The specific case we are interested in is folding constant pool loads with multiple uses.
      
      llvm-svn: 96255
      5e73ff2e
    • Chris Lattner's avatar
      Check in the first big step of rewriting DAGISelEmitter to · b02cdaaa
      Chris Lattner authored
      produce a table based matcher instead of gobs of C++ Code.
      
      Though it's not done yet, the shrinkage seems promising,
      the table for the X86 ISel is 75K and still has a lot of 
      optimization to come (compare to the ~1.5M of .o generated
      the old way, much of which will go away).
      
      The code is currently disabled by default (the #if 0 in
      DAGISelEmitter.cpp).  When enabled it generates a dead
      SelectCode2 function in the DAGISel Header which will
      eventually replace SelectCode.
      
      There is still a lot of stuff left to do, which are
      documented with a trail of FIXMEs.
      
      llvm-svn: 96215
      b02cdaaa
  5. Feb 14, 2010
  6. Feb 13, 2010
  7. Jan 05, 2010
  8. Jan 04, 2010
  9. Dec 19, 2009
  10. Nov 24, 2009
  11. Nov 14, 2009
  12. Nov 08, 2009
  13. Oct 30, 2009
  14. Oct 29, 2009
  15. Oct 15, 2009
  16. 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
    • Dan Gohman's avatar
      Rename getTargetNode to getMachineNode, for consistency with the · 32f71d71
      Dan Gohman authored
      naming scheme used in SelectionDAG, where there are multiple kinds
      of "target" nodes, but "machine" nodes are nodes which represent
      a MachineInstr.
      
      llvm-svn: 82790
      32f71d71
  17. Sep 11, 2009
  18. Aug 23, 2009
  19. Aug 22, 2009
  20. Aug 11, 2009
  21. Aug 08, 2009
  22. Jul 30, 2009
Loading