1. 31 Aug, 2016 3 commits
  2. 29 Aug, 2016 2 commits
  3. 26 Aug, 2016 1 commit
  4. 22 Aug, 2016 1 commit
  5. 19 Aug, 2016 3 commits
  6. 18 Aug, 2016 1 commit
  7. 17 Aug, 2016 2 commits
  8. 16 Aug, 2016 2 commits
  9. 13 Aug, 2016 1 commit
  10. 11 Aug, 2016 1 commit
  11. 10 Aug, 2016 1 commit
  12. 09 Aug, 2016 1 commit
  13. 08 Aug, 2016 2 commits
  14. 05 Aug, 2016 3 commits
  15. 04 Aug, 2016 6 commits
  16. 03 Aug, 2016 1 commit
  17. 02 Aug, 2016 1 commit
  18. 01 Aug, 2016 2 commits
    • Enable Local CSE by default · 53c8fbdf
      Manasij Mukherjee authored
      Reduce the default number of iterations to 1
      Put the optional code behind the -lcse-no-ssa flag, which is disabled by
      default. This brings down the overhead of enabling this to about 2%.
      
      BUG=
      R=stichnot@chromium.org
      
      Review URL: https://codereview.chromium.org/2185193002 .
    • Subzero: Local variable splitting. · b9a84728
      Jim Stichnoth authored
      The linear-scan register allocator takes an all-or-nothing approach -- either the variable's entire live range gets a register, or none of it does.
      
      To help with this, we add a pass that splits successive uses of a variable within a basic block into a chain of linked variables.  This gives the register allocator the chance to allocate registers to subsets of the original live range.
      
      The split variables are linked to each other so that if they don't get a register, they share a stack slot with the original variable, and redundant writes to that stack slot are recognized and elided.
      
      This pass is executed after target lowering and right before register allocation.  As such, it has to deal with some idiosyncrasies of target lowering, specifically the possibility of intra-block control flow.  We experimented with doing this as a pre-lowering pass.  However, the transformations interfered with some of the target lowering's pattern matching, such as bool folding, so we concluded that post-lowering was a better place for it.
      
      Note: Some of the lit tests are overly specific about registers, and in these cases it was the path of least resistance to just disable local variable splitting.
      
      BUG= none
      R=eholk@chromium.org, jpp@chromium.org
      
      Review URL: https://codereview.chromium.org/2177033002 .
  19. 27 Jul, 2016 1 commit
  20. 26 Jul, 2016 1 commit
  21. 25 Jul, 2016 1 commit
  22. 21 Jul, 2016 3 commits