1. 27 Jun, 2016 4 commits
  2. 25 Jun, 2016 4 commits
  3. 22 Jun, 2016 4 commits
  4. 21 Jun, 2016 3 commits
  5. 20 Jun, 2016 2 commits
    • Subzero: Fix frame size for floating-point register out-args. · c577727f
      Jim Stichnoth authored
      The code that calculates maximum out-arg stack space was neglecting the fact that on x86-64, the first N scalar floating-point arguments are passed through xmm registers, not the stack.  As a result, stack frames were sometimes larger than necessary.
      
      BUG= none
      R=jpp@chromium.org
      
      Review URL: https://codereview.chromium.org/2076663006 .
    • 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 .
  6. 17 Jun, 2016 1 commit
  7. 16 Jun, 2016 3 commits
  8. 15 Jun, 2016 3 commits
  9. 14 Jun, 2016 2 commits
  10. 13 Jun, 2016 4 commits
  11. 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 .
  12. 09 Jun, 2016 1 commit
  13. 07 Jun, 2016 1 commit
  14. 02 Jun, 2016 1 commit
  15. 01 Jun, 2016 1 commit
  16. 31 May, 2016 3 commits
  17. 30 May, 2016 1 commit
  18. 27 May, 2016 1 commit