Skip to content
  1. Nov 12, 2010
  2. 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
  3. Oct 04, 2010
  4. Sep 25, 2010
  5. 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
  6. Sep 21, 2010
  7. 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
  8. Sep 02, 2010
  9. Sep 01, 2010
  10. Aug 06, 2010
  11. Jul 20, 2010
  12. Jul 19, 2010
  13. Jul 18, 2010
  14. Jul 17, 2010
  15. Jul 16, 2010
  16. Jul 12, 2010
  17. May 15, 2010
  18. Feb 18, 2010
  19. Feb 17, 2010
  20. 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
  21. 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
  22. Jan 05, 2010
  23. Dec 14, 2009
  24. Nov 15, 2009
  25. 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
  26. Oct 25, 2009
  27. Oct 03, 2009
  28. Sep 20, 2009
  29. Sep 06, 2009
  30. Sep 04, 2009
  31. Sep 03, 2009
    • Lang Hames's avatar
      · 0b3720b3
      Lang Hames authored
      Fixed a test that ensures the LocalRewriter does not attempt to
      avoid reloads by reusing clobbered registers.
      
      This was causing issues in 256.bzip2 when compiled with PIC for
      a while (starting at r78217), though the problem has since been masked. 
      
      llvm-svn: 80872
      0b3720b3
  32. Aug 20, 2009
  33. Aug 19, 2009
  34. Aug 12, 2009
Loading