1. 20 Jun, 2016 1 commit
    • Subzero: Improve lowering of rematerializable call args. · e450656d
      Jim Stichnoth authored
      Normally, if a call argument is a rematerializable Variable, it is rematerialized into a GPR (via the "lea" instruction) and then written into the appropriate arg space.
      
      This is appropriate for arguments passed on the stack, but for register arguments, it forces an unnecessary copy through another register.
      
      This CL allows that intermediate register copy to be removed.
      
      The resulting code looks cleaner, but it is unlikely to have much effect on performance - there really aren't register pressure issues because lots of scratch registers are available right before the call (which kills all scratch registers).
      
      BUG= none
      R=jpp@chromium.org
      
      Review URL: https://codereview.chromium.org/2080443002 .
  2. 17 Jun, 2016 1 commit
  3. 16 Jun, 2016 3 commits
  4. 15 Jun, 2016 3 commits
  5. 14 Jun, 2016 2 commits
  6. 13 Jun, 2016 4 commits
  7. 10 Jun, 2016 1 commit
    • Subzero: Improve effectiveness of local register availability peephole. · f531931f
      Jim Stichnoth authored
      X86 only.  The register availability peephole optimization during lowering disallows available register substitution when the variable is pre-colored.  This is for good reasons (too complex to be discussed here).  However, that leaves some potential substitutions on the table.
      
      Specifically, this happens a lot around register arguments to function calls, both at the call site and in the prolog.
      
      The simplest solution seems to be to launder the pre-colored variable through a separate infinite-weight variable, as implemented in this CL through a combination of such copies and extra legalize() calls.
      
      There are other situations where this technique can also work, which may be handled in a separate CL.
      
      This CL also fixes a problem where the stack pointer adjustment in the prolog is subject to dead-code elimination if the function has no epilog.  This would only happen in asm-verbose mode, in the final liveness analysis pass prior to code emission.
      
      BUG= none
      R=eholk@chromium.org
      
      Review URL: https://codereview.chromium.org/2052683003 .
  8. 09 Jun, 2016 1 commit
  9. 07 Jun, 2016 1 commit
  10. 02 Jun, 2016 1 commit
  11. 01 Jun, 2016 1 commit
  12. 31 May, 2016 3 commits
  13. 30 May, 2016 1 commit
  14. 27 May, 2016 1 commit
  15. 24 May, 2016 2 commits
  16. 18 May, 2016 1 commit
  17. 17 May, 2016 1 commit
  18. 12 May, 2016 1 commit
  19. 10 May, 2016 1 commit
  20. 09 May, 2016 2 commits
  21. 06 May, 2016 1 commit
  22. 02 May, 2016 2 commits
  23. 29 Apr, 2016 1 commit
  24. 27 Apr, 2016 1 commit
  25. 26 Apr, 2016 1 commit
  26. 25 Apr, 2016 2 commits