Skip to content
  1. Dec 04, 2007
  2. Dec 03, 2007
  3. Dec 02, 2007
  4. Dec 01, 2007
  5. Nov 30, 2007
  6. Nov 29, 2007
  7. Nov 28, 2007
  8. Nov 27, 2007
  9. Nov 24, 2007
    • Chris Lattner's avatar
      cab915f9
    • Chris Lattner's avatar
      Implement support for custom legalization in DAGTypeLegalizer::ExpandOperand. · 6e364189
      Chris Lattner authored
      Improve a comment.
      Unbreak Duncan's carefully written path compression where I didn't realize
      what was happening!
      
      llvm-svn: 44301
      6e364189
    • Chris Lattner's avatar
      Several changes: · f81d5886
      Chris Lattner authored
      1) Change the interface to TargetLowering::ExpandOperationResult to 
         take and return entire NODES that need a result expanded, not just
         the value.  This allows us to handle things like READCYCLECOUNTER,
         which returns two values.
      2) Implement (extremely limited) support in LegalizeDAG::ExpandOp for MERGE_VALUES.
      3) Reimplement custom lowering in LegalizeDAGTypes in terms of the new
         ExpandOperationResult.  This makes the result simpler and fully 
         general.
      4) Implement (fully general) expand support for MERGE_VALUES in LegalizeDAGTypes.
      5) Implement ExpandOperationResult support for ARM f64->i64 bitconvert and ARM
         i64 shifts, allowing them to work with LegalizeDAGTypes.
      6) Implement ExpandOperationResult support for X86 READCYCLECOUNTER and FP_TO_SINT,
         allowing them to work with LegalizeDAGTypes.
      
      LegalizeDAGTypes now passes several more X86 codegen tests when enabled and when
      type legalization in LegalizeDAG is ifdef'd out.
      
      llvm-svn: 44300
      f81d5886
  10. Nov 21, 2007
  11. Nov 19, 2007
  12. Nov 17, 2007
    • Nate Begeman's avatar
      Add support for vectors to int <-> float casts. · d4d45c26
      Nate Begeman authored
      llvm-svn: 44204
      d4d45c26
    • Evan Cheng's avatar
      Live interval splitting: · 8e223793
      Evan Cheng authored
      When a live interval is being spilled, rather than creating short, non-spillable
      intervals for every def / use, split the interval at BB boundaries. That is, for
      every BB where the live interval is defined or used, create a new interval that
      covers all the defs and uses in the BB.
      
      This is designed to eliminate one common problem: multiple reloads of the same
      value in a single basic block. Note, it does *not* decrease the number of spills
      since no copies are inserted so the split intervals are *connected* through
      spill and reloads (or rematerialization). The newly created intervals can be
      spilled again, in that case, since it does not span multiple basic blocks, it's
      spilled in the usual manner. However, it can reuse the same stack slot as the
      previously split interval.
      
      This is currently controlled by -split-intervals-at-bb.
      
      llvm-svn: 44198
      8e223793
  13. Nov 16, 2007
  14. Nov 15, 2007
Loading