Skip to content
  1. Aug 06, 2010
  2. Jul 27, 2010
  3. Jul 22, 2010
  4. Jul 21, 2010
  5. Jul 19, 2010
  6. Jul 16, 2010
  7. Jul 08, 2010
  8. Jul 03, 2010
  9. Jun 24, 2010
  10. May 15, 2010
  11. Apr 08, 2010
  12. Feb 26, 2010
  13. Jan 05, 2010
  14. Dec 19, 2009
  15. Dec 14, 2009
  16. Dec 10, 2009
    • Jakob Stoklund Olesen's avatar
      Also attempt trivial coalescing for live intervals that end in a copy. · 497161c4
      Jakob Stoklund Olesen authored
      The coalescer is supposed to clean these up, but when setting up parameters
      for a function call, there may be copies to physregs. If the defining
      instruction has been LICM'ed far away, the coalescer won't touch it.
      
      The register allocation hint does not always work - when the register
      allocator is backtracking, it clears the hints.
      
      This patch is more conservative than r90502, and does not break
      483.xalancbmk/i686. It still breaks the PowerPC bootstrap, so it is disabled
      by default, and can be enabled with the -trivial-coalesce-ends option.
      
      llvm-svn: 91049
      497161c4
  17. Dec 09, 2009
    • Lang Hames's avatar
      Added a new "splitting" spiller. · 1ab2b49e
      Lang Hames authored
      When a call is placed to spill an interval this spiller will first try to
      break the interval up into its component values. Single value intervals and
      intervals which have already been split (or are the result of previous splits)
      are spilled by the default spiller.
      
      Splitting intervals as described above may improve the performance of generated
      code in some circumstances. This work is experimental however, and it still
      miscompiles many benchmarks. It's not recommended for general use yet.
      
      llvm-svn: 90951
      1ab2b49e
  18. Dec 05, 2009
  19. Dec 04, 2009
    • Jakob Stoklund Olesen's avatar
      Also attempt trivial coalescing for live intervals that end in a copy. · ca9cf654
      Jakob Stoklund Olesen authored
      The coalescer is supposed to clean these up, but when setting up parameters
      for a function call, there may be copies to physregs. If the defining
      instruction has been LICM'ed far away, the coalescer won't touch it.
      
      The register allocation hint does not always work - when the register
      allocator is backtracking, it clears the hints.
      
      This patch takes care of a few more cases that r90163 missed.
      
      llvm-svn: 90502
      ca9cf654
  20. Nov 20, 2009
  21. Nov 19, 2009
    • David Greene's avatar
      · 50909c05
      David Greene authored
      Fix a small bug.
      
      Fix one case we missed to make sure we reserve registers from
      allocation.
      
      llvm-svn: 89376
      50909c05
    • David Greene's avatar
      · f37756d6
      David Greene authored
      Add support for spreading register allocation.
      
      Add a -linearscan-skip-count argument (default to 0) that tells the
      allocator to remember the last N registers it allocated and skip them
      when looking for a register candidate.  This tends to spread out
      register usage and free up post-allocation scheduling at the cost of
      slightly more register pressure.  The primary benefit is the ability
      to backschedule reloads.
      
      This is turned off by default.
      
      llvm-svn: 89356
      f37756d6
    • Lang Hames's avatar
      Added a new Spiller implementation which wraps LiveIntervals::addIntervalsForSpills. · 6912be4a
      Lang Hames authored
      All spiller calls in RegAllocLinearScan now go through the new Spiller interface.
      The "-new-spill-framework" command line option has been removed. To use the trivial in-place spiller you should now pass "-spiller=trivial -rewriter=trivial".
      (Note the trivial spiller/rewriter are only meant to serve as examples of the new in-place modification work. Enabling them will yield terrible, though hopefully functional, code).
      
      llvm-svn: 89311
      6912be4a
  22. Nov 04, 2009
    • Lang Hames's avatar
      The Indexes Patch. · 05fb9637
      Lang Hames authored
      This introduces a new pass, SlotIndexes, which is responsible for numbering
      instructions for register allocation (and other clients). SlotIndexes numbering
      is designed to match the existing scheme, so this patch should not cause any
      changes in the generated code.
      
      For consistency, and to avoid naming confusion, LiveIndex has been renamed
      SlotIndex.
      
      The processImplicitDefs method of the LiveIntervals analysis has been moved
      into its own pass so that it can be run prior to SlotIndexes. This was
      necessary to match the existing numbering scheme.
      
      llvm-svn: 85979
      05fb9637
  23. Oct 25, 2009
  24. Oct 03, 2009
  25. Sep 26, 2009
  26. Sep 04, 2009
  27. Aug 23, 2009
  28. Aug 22, 2009
  29. Aug 01, 2009
  30. Jul 25, 2009
    • Daniel Dunbar's avatar
      More migration to raw_ostream, the water has dried up around the iostream hole. · 0dd5e1ed
      Daniel Dunbar authored
       - Some clients which used DOUT have moved to DEBUG. We are deprecating the
         "magic" DOUT behavior which avoided calling printing functions when the
         statement was disabled. In addition to being unnecessary magic, it had the
         downside of leaving code in -Asserts builds, and of hiding potentially
         unnecessary computations.
      
      llvm-svn: 77019
      0dd5e1ed
  31. Jul 14, 2009
  32. Jul 13, 2009
  33. Jul 11, 2009
  34. Jul 01, 2009
Loading