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. Jun 27, 2011
  4. Jun 16, 2011
  5. Jun 02, 2011
  6. Feb 08, 2011
  7. Feb 05, 2011
    • Andrew Trick's avatar
      Fix an anti-dep breaker corner case. · f8415714
      Andrew Trick authored
      <rdar://problem/8959122> illegal register operands for UMULL instruction in cfrac nightly test
      I'm stil working on a unit test, but the case is:
      rx = movcc rx, r3
      r2 = ldr
      r2, r3 = umull r2, r2
      
      The anti-dep breaker should not convert this into an illegal instruction:
      r2, r2 = umull
      
      llvm-svn: 124932
      f8415714
  8. Nov 02, 2010
  9. Oct 02, 2010
    • Bob Wilson's avatar
      Fix a miscompile in 186.crafty for Thumb2 that was exposed by Evan's · c57c220d
      Bob Wilson authored
      scheduling change in svn 115121.  The CriticalAntiDepBreaker had bad
      liveness information.  It was calculating the KillIndices for one scheduling
      region in a basic block, rescheduling that region so the KillIndices were
      no longer valid, and then using those wrong KillIndices to make decisions
      for the next scheduling region.  I've not been able to reduce a small
      testcase for this.  Radar 8502534.
      
      llvm-svn: 115400
      c57c220d
  10. Sep 11, 2010
  11. Sep 02, 2010
  12. Jul 27, 2010
  13. Jul 15, 2010
  14. Jun 16, 2010
  15. Jun 02, 2010
  16. May 14, 2010
  17. Apr 20, 2010
  18. Mar 05, 2010
  19. Jan 06, 2010
  20. Jan 04, 2010
    • David Greene's avatar
      · 96b90539
      David Greene authored
      Change errs() to dbgs().
      
      llvm-svn: 92490
      96b90539
  21. Dec 09, 2009
  22. Nov 20, 2009
  23. Nov 03, 2009
  24. Oct 26, 2009
Loading