Skip to content
  1. Nov 13, 2011
  2. Aug 09, 2011
  3. Jun 27, 2011
  4. Jun 26, 2011
  5. Jun 17, 2011
  6. Jun 16, 2011
  7. Mar 10, 2011
  8. Nov 12, 2010
  9. 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
  10. Oct 04, 2010
  11. Sep 25, 2010
  12. Sep 23, 2010
    • Lang Hames's avatar
      Moved the PBQP allocator class out of the header and back in to the cpp file... · fd1bc422
      Lang Hames authored
      Moved the PBQP allocator class out of the header and back in to the cpp file to hide the gory details.
      Allocator instances can now be created by calling createPBQPRegisterAllocator.
      
      Tidied up use of CoalescerPair as per Jakob's suggestions.
      
      Made the new PBQPBuilder based construction process the default. The internal construction process
      remains in-place and available via -pbqp-builder=false for now. It will be removed shortly if the new
      process doesn't cause any regressions.
      
      llvm-svn: 114626
      fd1bc422
  13. Sep 21, 2010
  14. Sep 18, 2010
    • Benjamin Kramer's avatar
      Unbreak msvc build. · 45a56d3c
      Benjamin Kramer authored
      llvm-svn: 114284
      45a56d3c
    • Lang Hames's avatar
      Fixed non-const iterator error. · 361de987
      Lang Hames authored
      llvm-svn: 114273
      361de987
    • Lang Hames's avatar
      Added a separate class (PBQPBuilder) for PBQP Problem construction. This class... · cb1e1017
      Lang Hames authored
      Added a separate class (PBQPBuilder) for PBQP Problem construction. This class can be extended to support custom constraints.
      
      For now the allocator still uses the old (internal) construction mechanism by default. This will be phased out soon assuming 
      no issues with the builder system come up.
      
      To invoke the new construction mechanism just pass '-regalloc=pbqp -pbqp-builder' to llc. To provide custom constraints a
      Target just needs to extend PBQPBuilder and pass an instance of their derived builder to the RegAllocPBQP constructor.
      
      llvm-svn: 114272
      cb1e1017
  15. Sep 02, 2010
  16. Sep 01, 2010
  17. Aug 06, 2010
  18. Jul 20, 2010
  19. Jul 19, 2010
  20. Jul 18, 2010
  21. Jul 17, 2010
  22. Jul 16, 2010
  23. Jul 12, 2010
  24. May 15, 2010
  25. Feb 18, 2010
  26. Feb 17, 2010
  27. Feb 09, 2010
    • Lang Hames's avatar
      Fixed a bug in the PBQP allocator's findCoalesces method. · 48121948
      Lang Hames authored
      Previously spill registers, whose def indexes are not defined, would sometimes be improperly marked as coalescable with conflicting registers. The new findCoalesces routine conservatively assumes that any register with at least one undefined def is not coalescable with any register it interferes with.
      
      llvm-svn: 95636
      48121948
  28. Jan 26, 2010
    • Lang Hames's avatar
      New PBQP solver. · 090c7e82
      Lang Hames authored
      * Fixed a reduction bug which occasionally led to infinite-cost (invalid)
        register allocation solutions despite the existence finite-cost solutions.
      * Significantly reduced memory usage (>50% reduction).
      * Simplified a lot of the solver code.
      
      llvm-svn: 94514
      090c7e82
  29. Jan 05, 2010
  30. Dec 14, 2009
  31. Nov 15, 2009
  32. 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
  33. Oct 25, 2009
  34. Oct 03, 2009
Loading