Skip to content
  1. Apr 20, 2008
  2. Apr 18, 2008
  3. Apr 17, 2008
  4. Apr 16, 2008
  5. Apr 15, 2008
  6. Apr 14, 2008
  7. Apr 13, 2008
  8. Apr 12, 2008
    • Duncan Sands's avatar
      Factor some libcall code. · 844d55a4
      Duncan Sands authored
      llvm-svn: 49583
      844d55a4
    • Dan Gohman's avatar
      Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal · 544ab2c5
      Dan Gohman authored
      on any current target and aren't optimized in DAGCombiner. Instead
      of using intermediate nodes, expand the operations, choosing between
      simple loads/stores, target-specific code, and library calls,
      immediately.
      
      Previously, the code to emit optimized code for these operations
      was only used at initial SelectionDAG construction time; now it is
      used at all times. This fixes some cases where rep;movs was being
      used for small copies where simple loads/stores would be better.
      
      This also cleans up code that checks for alignments less than 4;
      let the targets make that decision instead of doing it in
      target-independent code. This allows x86 to use rep;movs in
      low-alignment cases.
      
      Also, this fixes a bug that resulted in the use of rep;stos for
      memsets of 0 with non-constant memory size when the alignment was
      at least 4. It's better to use the library in this case, which
      can be significantly faster when the size is large.
      
      This also preserves more SourceValue information when memory
      intrinsics are lowered into simple loads/stores.
      
      llvm-svn: 49572
      544ab2c5
  9. Apr 11, 2008
  10. Apr 07, 2008
  11. Apr 06, 2008
  12. Apr 05, 2008
  13. Apr 03, 2008
    • Evan Cheng's avatar
      Start of a series of patches related to implicit_def. · 916802a7
      Evan Cheng authored
      There is no point in creating a long live range defined by an implicit_def. Scheduler now duplicates implicit_def instruction for each of its uses. Therefore, if an implicit_def node has multiple uses, it will become a number of very short live ranges, rather than a long one. This will make coalescer's job easier.
      
      llvm-svn: 49164
      916802a7
    • Evan Cheng's avatar
      Backing out 48222 temporarily. · 025cea11
      Evan Cheng authored
      llvm-svn: 49124
      025cea11
  14. Apr 02, 2008
    • Dale Johannesen's avatar
      Recommitting EH patch; this should answer most of the · fd967cf3
      Dale Johannesen authored
      review feedback.
      -enable-eh is still accepted but doesn't do anything.
      EH intrinsics use Dwarf EH if the target supports that,
      and are handled by LowerInvoke otherwise.
      The separation of the EH table and frame move data is,
      I think, logically figured out, but either one still
      causes full EH info to be generated (not sure how to
      split the metadata correctly).
      MachineModuleInfo::needsFrameInfo is no longer used and
      is removed.
      
      llvm-svn: 49064
      fd967cf3
  15. Apr 01, 2008
  16. Mar 31, 2008
  17. Mar 30, 2008
  18. Mar 29, 2008
  19. Mar 28, 2008
  20. Mar 27, 2008
    • Duncan Sands's avatar
      Implement LegalizeTypes support for softfloat LOAD. · f740509e
      Duncan Sands authored
      In order to handle indexed nodes I had to introduce
      a new constructor, and since I was there I factorized
      the code in the various load constructors.
      
      llvm-svn: 48894
      f740509e
    • Dan Gohman's avatar
      Avoid creating chain dependencies from CopyToReg nodes to load and store · cad51cb6
      Dan Gohman authored
      nodes. This doesn't currently have much impact the generated code, but it
      does produce simpler-looking SelectionDAGs, and consequently
      simpler-looking ScheduleDAGs, because there are fewer spurious
      dependencies.
      
      In particular, CopyValueToVirtualRegister now uses the entry node as the
      input chain dependency for new CopyToReg nodes instead of calling getRoot
      and depending on the most recent memory reference.
      
      Also, rename UnorderedChains to PendingExports and pull it up from being
      a local variable in SelectionDAGISel::BuildSelectionDAG to being a
      member variable of SelectionDAGISel, so that it doesn't have to be
      passed around to all the places that need it.
      
      llvm-svn: 48893
      cad51cb6
Loading