Skip to content
  1. Mar 10, 2011
  2. Mar 03, 2011
  3. Jan 27, 2011
    • Bob Wilson's avatar
      Avoid modifying the OneClassForEachPhysReg map while iterating over it. · 2d69fb41
      Bob Wilson authored
      Linear scan regalloc is currently assuming that any register aliased with
      a member of a regclass must also be in at least one regclass.  That is not
      always true.  For example, for X86, RIP is in a regclass but IP is not.
      If you're unlucky, this can cause a crash by invalidating the iterator.
      
      llvm-svn: 124365
      2d69fb41
  4. Jan 10, 2011
  5. Jan 06, 2011
  6. Dec 23, 2010
  7. Dec 03, 2010
  8. Nov 19, 2010
  9. Nov 16, 2010
  10. Nov 11, 2010
  11. Oct 28, 2010
  12. Oct 26, 2010
  13. Oct 19, 2010
    • Owen Anderson's avatar
      Get rid of static constructors for pass registration. Instead, every pass... · 6c18d1aa
      Owen Anderson authored
      Get rid of static constructors for pass registration.  Instead, every pass exposes an initializeMyPassFunction(), which
      must be called in the pass's constructor.  This function uses static dependency declarations to recursively initialize
      the pass's dependencies.
      
      Clients that only create passes through the createFooPass() APIs will require no changes.  Clients that want to use the
      CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
      before parsing commandline arguments.
      
      I have tested this with all standard configurations of clang and llvm-gcc on Darwin.  It is possible that there are problems
      with the static dependencies that will only be visible with non-standard options.  If you encounter any crash in pass
      registration/creation, please send the testcase to me directly.
      
      llvm-svn: 116820
      6c18d1aa
  14. Oct 12, 2010
  15. Oct 08, 2010
  16. Sep 25, 2010
  17. Sep 02, 2010
  18. Sep 01, 2010
  19. Aug 14, 2010
    • Jakob Stoklund Olesen's avatar
      Clean up the Spiller.h interface. · 27e1f265
      Jakob Stoklund Olesen authored
      The earliestStart argument is entirely specific to linear scan allocation, and
      can be easily calculated by RegAllocLinearScan.
      
      Replace std::vector with SmallVector.
      
      llvm-svn: 111055
      27e1f265
  20. Aug 06, 2010
  21. Jul 27, 2010
  22. Jul 22, 2010
  23. Jul 21, 2010
  24. Jul 19, 2010
  25. Jul 16, 2010
  26. Jul 08, 2010
  27. Jul 03, 2010
  28. Jun 24, 2010
  29. May 15, 2010
  30. Apr 08, 2010
  31. Feb 26, 2010
  32. Jan 05, 2010
  33. Dec 19, 2009
  34. Dec 14, 2009
  35. 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
  36. 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
Loading