Skip to content
  1. May 25, 2013
  2. 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
  3. Oct 17, 2012
    • Jakob Stoklund Olesen's avatar
      Merge MRI::isPhysRegOrOverlapUsed() into isPhysRegUsed(). · 07364426
      Jakob Stoklund Olesen authored
      All callers of these functions really want the isPhysRegOrOverlapUsed()
      functionality which also checks aliases. For historical reasons, targets
      without register aliases were calling isPhysRegUsed() instead.
      
      Change isPhysRegUsed() to also check aliases, and switch all
      isPhysRegOrOverlapUsed() callers to isPhysRegUsed().
      
      llvm-svn: 166117
      07364426
  4. Oct 03, 2012
  5. Jun 02, 2012
  6. Mar 04, 2012
  7. Dec 21, 2011
  8. 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
  9. Nov 23, 2011
    • Jakob Stoklund Olesen's avatar
      Fix PR11422. · 02845410
      Jakob Stoklund Olesen authored
      This was a bug in keeping track of the available domains when merging
      domain values.
      
      The wrong domain mask caused ExecutionDepsFix to try to move VANDPSYrr
      to the integer domain which is only available in AVX2.
      
      Also add an assertion to catch future attempts at emitting AVX2
      instructions.
      
      llvm-svn: 145096
      02845410
  10. Nov 15, 2011
    • Jakob Stoklund Olesen's avatar
      Check all overlaps when looking for used registers. · e14ef7e6
      Jakob Stoklund Olesen authored
      A function using any RC alias is enough to enable the ExeDepsFix pass.
      
      llvm-svn: 144636
      e14ef7e6
    • Jakob Stoklund Olesen's avatar
      Break false dependencies before partial register updates. · f8ad336b
      Jakob Stoklund Olesen authored
      Two new TargetInstrInfo hooks lets the target tell ExecutionDepsFix
      about instructions with partial register updates causing false unwanted
      dependencies.
      
      The ExecutionDepsFix pass will break the false dependencies if the
      updated register was written in the previoius N instructions.
      
      The small loop added to sse-domains.ll runs twice as fast with
      dependency-breaking instructions inserted.
      
      llvm-svn: 144602
      f8ad336b
    • Jakob Stoklund Olesen's avatar
      Track register ages more accurately. · 543bef6e
      Jakob Stoklund Olesen authored
      Keep track of the last instruction to define each register individually
      instead of per DomainValue.  This lets us track more accurately when a
      register was last written.
      
      Also track register ages across basic blocks.  When entering a new
      basic block, use the least stale predecessor def as a worst case
      estimate for register age.
      
      The register age is used to arbitrate between conflicting domains. The
      most recently defined register wins.
      
      llvm-svn: 144601
      543bef6e
  11. Nov 09, 2011
    • Jakob Stoklund Olesen's avatar
      Collapse DomainValues across loop back-edges. · 3dc89c97
      Jakob Stoklund Olesen authored
      During the initial RPO traversal of the basic blocks, remember the ones
      that are incomplete because of back-edges from predecessors that haven't
      been visited yet.
      
      After the initial RPO, revisit all those loop headers so the incoming
      DomainValues on the back-edges can be properly collapsed.
      
      This will properly fix execution domains on software pipelined code,
      like the included test case.
      
      llvm-svn: 144151
      3dc89c97
    • Jakob Stoklund Olesen's avatar
      Link to the live DomainValue after merging. · 53ec977c
      Jakob Stoklund Olesen authored
      When merging two uncollapsed DomainValues, place a link to the active
      DomainValue from the passive DomainValue.  This allows old stale
      references to the passive DomainValue to be updated to point to the
      active DomainValue.
      
      The new resolve() function finds the active DomainValue and updates the
      pointer.
      
      This change makes old live-out lists more useful since they may contain
      uncollapsed DomainValues that have since been merged into other
      DomainValues.
      
      llvm-svn: 144149
      53ec977c
    • Jakob Stoklund Olesen's avatar
      Track reference count independently from clear(). · b7e44a3f
      Jakob Stoklund Olesen authored
      This allows clear() to be called on a DomainValue with references.
      
      llvm-svn: 144147
      b7e44a3f
  12. Nov 08, 2011
  13. Nov 07, 2011
  14. Sep 28, 2011
  15. Aug 06, 2010
  16. May 26, 2010
  17. Apr 13, 2010
  18. Apr 07, 2010
  19. Apr 06, 2010
  20. Apr 04, 2010
  21. Mar 31, 2010
Loading