Skip to content
  1. Jun 02, 2012
  2. Jun 01, 2012
  3. May 08, 2012
    • Jakob Stoklund Olesen's avatar
      Add an MF argument to TRI::getPointerRegClass() and TII::getRegClass(). · 3c52f028
      Jakob Stoklund Olesen authored
      The getPointerRegClass() hook can return register classes that depend on
      the calling convention of the current function (ptr_rc_tailcall).
      
      So far, we have been able to infer the calling convention from the
      subtarget alone, but as we add support for multiple calling conventions
      per target, that no longer works.
      
      Patch by Yiannis Tsiouris!
      
      llvm-svn: 156328
      3c52f028
  4. Mar 17, 2012
  5. Mar 16, 2012
  6. Mar 05, 2012
  7. Mar 04, 2012
  8. Feb 23, 2012
  9. Feb 22, 2012
    • Andrew Trick's avatar
      Initialize SUnits before DAG building. · 46cc9a4a
      Andrew Trick authored
      Affect on SD scheduling and postRA scheduling:
      Printing the DAG will display the nodes in top-down topological order.
      This matches the order within the MBB and makes my life much easier in general.
      
      Affect on misched:
      We don't need to track virtual register uses at all. This is awesome.
      I also intend to rely on the SUnit ID as a topo-sort index. So if A < B then we cannot have an edge B -> A.
      
      llvm-svn: 151135
      46cc9a4a
  10. 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
  11. 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
  12. Jun 27, 2011
  13. Jun 16, 2011
  14. Jun 02, 2011
  15. Feb 08, 2011
  16. 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
  17. Nov 02, 2010
  18. 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
  19. Sep 11, 2010
  20. Sep 02, 2010
  21. Jul 27, 2010
  22. Jul 15, 2010
  23. Jun 16, 2010
  24. Jun 02, 2010
  25. May 14, 2010
  26. Apr 20, 2010
  27. Mar 05, 2010
  28. Jan 06, 2010
  29. Jan 04, 2010
    • David Greene's avatar
      · 96b90539
      David Greene authored
      Change errs() to dbgs().
      
      llvm-svn: 92490
      96b90539
  30. Dec 09, 2009
  31. Nov 20, 2009
  32. Nov 03, 2009
  33. Oct 26, 2009
Loading