Skip to content
  1. Jan 07, 2012
    • Evan Cheng's avatar
      Added a late machine instruction copy propagation pass. This catches · 00b1a3cd
      Evan Cheng authored
      opportunities that only present themselves after late optimizations
      such as tail duplication .e.g.
      ## BB#1:
              movl    %eax, %ecx
              movl    %ecx, %eax
              ret
      
      The register allocator also leaves some of them around (due to false
      dep between copies from phi-elimination, etc.)
      
      This required some changes in codegen passes. Post-ra scheduler and the
      pseudo-instruction expansion passes have been moved after branch folding
      and tail merging. They were before branch folding before because it did
      not always update block livein's. That's fixed now. The pass change makes
      independently since we want to properly schedule instructions after
      branch folding / tail duplication.
      
      rdar://10428165
      rdar://10640363
      
      llvm-svn: 147716
      00b1a3cd
  2. 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
  3. Jul 01, 2011
  4. Jun 27, 2011
  5. Jun 16, 2011
  6. Jun 02, 2011
  7. Apr 15, 2011
  8. Dec 15, 2010
  9. Sep 02, 2010
  10. Jul 15, 2010
  11. Jul 12, 2010
    • Rafael Espindola's avatar
      Convert the last use of getPhysicalRegisterRegClass and remove it. · 871c7247
      Rafael Espindola authored
      AggressiveAntiDepBreaker should not be using getPhysicalRegisterRegClass. An
      instruction might be using a register that can only be replaced with one from
      a subclass of getPhysicalRegisterRegClass.
      
      With this patch we use getMinimalPhysRegClass. This is correct, but
      conservative. We should check the uses of the register and select the
      largest register class that can be used in all of them.
      
      llvm-svn: 108122
      871c7247
  12. Jun 16, 2010
  13. Jun 02, 2010
  14. Apr 20, 2010
  15. Apr 09, 2010
  16. Feb 09, 2010
  17. Jan 06, 2010
  18. Dec 24, 2009
    • David Greene's avatar
      · 75a2efb0
      David Greene authored
      Change errs() to dbgs().
      
      llvm-svn: 92093
      75a2efb0
  19. Dec 09, 2009
  20. Nov 24, 2009
  21. Nov 21, 2009
  22. Nov 20, 2009
  23. Nov 13, 2009
  24. Nov 12, 2009
  25. Nov 10, 2009
  26. Nov 05, 2009
  27. Nov 03, 2009
  28. Oct 30, 2009
  29. Oct 29, 2009
  30. Oct 26, 2009
Loading