Skip to content
  1. May 23, 2013
  2. Feb 05, 2013
  3. Dec 03, 2012
    • Chandler Carruth's avatar
      Use the new script to sort the includes of every file under lib. · ed0881b2
      Chandler Carruth authored
      Sooooo many of these had incorrect or strange main module includes.
      I have manually inspected all of these, and fixed the main module
      include to be the nearest plausible thing I could find. If you own or
      care about any of these source files, I encourage you to take some time
      and check that these edits were sensible. I can't have broken anything
      (I strictly added headers, and reordered them, never removed), but they
      may not be the headers you'd really like to identify as containing the
      API being implemented.
      
      Many forward declarations and missing includes were added to a header
      files to allow them to parse cleanly when included first. The main
      module rule does in fact have its merits. =]
      
      llvm-svn: 169131
      ed0881b2
  4. Oct 15, 2012
  5. Jun 02, 2012
    • Jakob Stoklund Olesen's avatar
      Switch all register list clients to the new MC*Iterator interface. · 54038d79
      Jakob Stoklund Olesen authored
      No functional change intended.
      
      Sorry for the churn. The iterator classes are supposed to help avoid
      giant commits like this one in the future. The TableGen-produced
      register lists are getting quite large, and it may be necessary to
      change the table representation.
      
      This makes it possible to do so without changing all clients (again).
      
      llvm-svn: 157854
      54038d79
  6. Jun 01, 2012
  7. Mar 05, 2012
  8. Mar 04, 2012
  9. Feb 09, 2012
    • Jakob Stoklund Olesen's avatar
      Never delete instructions that define reserved registers. · 5d33291e
      Jakob Stoklund Olesen authored
      I think this was already the intention, but DeadMachineInstructionElim
      was accidentally tracking the liveness of reserved registers. Now,
      instructions with reserved defs are never deleted.
      
      This prevents the call stack adjustment instructions from getting
      deleted when enabling register masks.
      
      llvm-svn: 150116
      5d33291e
  10. Feb 08, 2012
    • Andrew Trick's avatar
      Codegen pass definition cleanup. No functionality. · 1fa5bcbe
      Andrew Trick authored
      Moving toward a uniform style of pass definition to allow easier target configuration.
      Globally declare Pass ID.
      Globally declare pass initializer.
      Use INITIALIZE_PASS consistently.
      Add a call to the initializer from CodeGen.cpp.
      Remove redundant "createPass" functions and "getPassName" methods.
      
      While cleaning up declarations, cleaned up comments (sorry for large diff).
      
      llvm-svn: 150100
      1fa5bcbe
    • Andrew Trick's avatar
      whitespace · 9e761997
      Andrew Trick authored
      llvm-svn: 150094
      9e761997
  11. Feb 03, 2012
  12. Jan 20, 2012
  13. 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
  14. Jun 27, 2011
  15. Jan 10, 2011
  16. 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
  17. 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
  18. Oct 08, 2010
  19. 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
  20. Aug 06, 2010
  21. Jul 22, 2010
  22. Mar 02, 2010
  23. Feb 12, 2010
  24. Feb 11, 2010
  25. Feb 10, 2010
  26. Feb 09, 2010
  27. 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
  28. Jan 27, 2010
  29. Jan 04, 2010
    • David Greene's avatar
      · 7af1efc1
      David Greene authored
      Change errs() to dbgs().
      
      llvm-svn: 92496
      7af1efc1
  30. Oct 25, 2009
  31. 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
  32. Aug 22, 2009
  33. Aug 11, 2009
  34. Oct 16, 2008
Loading