Skip to content
  1. Dec 07, 2011
    • Evan Cheng's avatar
      Add bundle aware API for querying instruction properties and switch the code · 7f8e563a
      Evan Cheng authored
      generator to it. For non-bundle instructions, these behave exactly the same
      as the MC layer API.
      
      For properties like mayLoad / mayStore, look into the bundle and if any of the
      bundled instructions has the property it would return true.
      For properties like isPredicable, only return true if *all* of the bundled
      instructions have the property.
      For properties like canFoldAsLoad, isCompare, conservatively return false for
      bundles.
      
      llvm-svn: 146026
      7f8e563a
  2. Jun 27, 2011
  3. Jan 10, 2011
  4. Jan 08, 2011
    • Evan Cheng's avatar
      Do not model all INLINEASM instructions as having unmodelled side effects. · 6eb516db
      Evan Cheng authored
      Instead encode llvm IR level property "HasSideEffects" in an operand (shared
      with IsAlignStack). Added MachineInstrs::hasUnmodeledSideEffects() to check
      the operand when the instruction is an INLINEASM.
      
      This allows memory instructions to be moved around INLINEASM instructions.
      
      llvm-svn: 123044
      6eb516db
  5. 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
  6. Oct 08, 2010
  7. Aug 31, 2010
    • Jakob Stoklund Olesen's avatar
      Track liveness of unallocatable, unreserved registers in machine DCE. · 7993dae7
      Jakob Stoklund Olesen authored
      Reserved registers are unpredictable, and are treated as always live by machine
      DCE.
      
      Allocatable registers are never reserved, and can be used for virtual registers.
      
      Unreserved, unallocatable registers can not be used for virtual registers, but
      otherwise behave like a normal allocatable register. Most targets only have
      the flag register in this set.
      
      llvm-svn: 112649
      7993dae7
  8. Aug 06, 2010
  9. Jul 22, 2010
  10. Mar 02, 2010
  11. Feb 12, 2010
  12. Feb 11, 2010
  13. Feb 10, 2010
  14. Feb 09, 2010
  15. Feb 06, 2010
    • Evan Cheng's avatar
      Run codegen dce pass for all targets at all optimization levels. Previously it's · ea5c6be7
      Evan Cheng authored
      only run for x86 with fastisel. I've found it being very effective in
      eliminating some obvious dead code as result of formal parameter lowering
      especially when tail call optimization eliminated the need for some of the loads
      from fixed frame objects. It also shrinks a number of the tests. A couple of
      tests no longer make sense and are now eliminated.
      
      llvm-svn: 95493
      ea5c6be7
  16. Jan 27, 2010
  17. Jan 04, 2010
    • David Greene's avatar
      · 7af1efc1
      David Greene authored
      Change errs() to dbgs().
      
      llvm-svn: 92496
      7af1efc1
  18. Oct 25, 2009
  19. Oct 10, 2009
    • Dan Gohman's avatar
      Factor out LiveIntervalAnalysis' code to determine whether an instruction · 87b02d5b
      Dan Gohman authored
      is trivially rematerializable and integrate it into
      TargetInstrInfo::isTriviallyReMaterializable. This way, all places that
      need to know whether an instruction is rematerializable will get the
      same answer.
      
      This enables the useful parts of the aggressive-remat option by
      default -- using AliasAnalysis to determine whether a memory location
      is invariant, and removes the questionable parts -- rematting operations
      with virtual register inputs that may not be live everywhere.
      
      llvm-svn: 83687
      87b02d5b
  20. Aug 22, 2009
  21. Aug 11, 2009
  22. Oct 16, 2008
  23. Oct 03, 2008
  24. Sep 25, 2008
  25. Sep 24, 2008
  26. Sep 23, 2008
  27. Sep 18, 2008
  28. Sep 17, 2008
Loading