Skip to content
  1. Oct 19, 2010
    • Evan Cheng's avatar
      Re-enable register pressure aware machine licm with fixes. Hoist() may have · 63c7608c
      Evan Cheng authored
      erased the instruction during LICM so UpdateRegPressureAfter() should not
      reference it afterwards.
      
      llvm-svn: 116845
      63c7608c
    • 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
    • Daniel Dunbar's avatar
      Revert r116781 "- Add a hook for target to determine whether an instruction def · 418204e5
      Daniel Dunbar authored
      is", which breaks some nightly tests.
      
      llvm-svn: 116816
      418204e5
    • Andrew Trick's avatar
      Fix for machine licm assert: RCCost <= RegPressure[RCId] · 2006bbef
      Andrew Trick authored
      in MultiSource/Benchmarks/VersaBench/beamformer/beamformer.
      SmallSet.insert returns true if the element is inserted.
      
      llvm-svn: 116790
      2006bbef
    • Evan Cheng's avatar
      - Add a hook for target to determine whether an instruction def is · 8249dfe6
      Evan Cheng authored
        "long latency" enough to hoist even if it may increase spilling. Reloading
        a value from spill slot is often cheaper than performing an expensive
        computation in the loop. For X86, that means machine LICM will hoist
        SQRT, DIV, etc. ARM will be somewhat aggressive with VFP and NEON
        instructions.
      - Enable register pressure aware machine LICM by default.
      
      llvm-svn: 116781
      8249dfe6
  2. Oct 16, 2010
  3. Oct 14, 2010
  4. Oct 12, 2010
  5. Oct 08, 2010
  6. Aug 06, 2010
  7. Jul 29, 2010
  8. Jul 22, 2010
  9. Jul 20, 2010
  10. Jul 14, 2010
  11. Jul 12, 2010
  12. Jul 09, 2010
  13. Jun 22, 2010
  14. May 29, 2010
  15. May 13, 2010
  16. Apr 20, 2010
  17. Apr 17, 2010
  18. Apr 14, 2010
  19. Apr 13, 2010
  20. Apr 12, 2010
  21. Apr 09, 2010
  22. Apr 08, 2010
  23. Apr 07, 2010
  24. Mar 03, 2010
    • Evan Cheng's avatar
      - Change MachineInstr::isIdenticalTo to take a new option that determines... · e9c46c25
      Evan Cheng authored
      - Change MachineInstr::isIdenticalTo to take a new option that determines whether it should skip checking defs or at least virtual register defs. This subsumes part of the TargetInstrInfo::isIdentical functionality.
      - Eliminate TargetInstrInfo::isIdentical and replace it with produceSameValue. In the default case, produceSameValue just checks whether two machine instructions are identical (except for virtual register defs). But targets may override it to check for unusual cases (e.g. ARM pic loads from constant pools).
      
      llvm-svn: 97628
      e9c46c25
  25. Feb 28, 2010
  26. Feb 09, 2010
Loading