1. 24 Nov, 2015 4 commits
  2. 23 Nov, 2015 1 commit
  3. 21 Nov, 2015 1 commit
  4. 20 Nov, 2015 11 commits
  5. 19 Nov, 2015 8 commits
  6. 18 Nov, 2015 4 commits
  7. 17 Nov, 2015 3 commits
  8. 13 Nov, 2015 7 commits
  9. 12 Nov, 2015 1 commit
    • Unfold short-circuiting operators in loop conditions correctly · 3fed4306
      Olli Etuaho authored
      Sometimes short-circuiting operators need to be unfolded to if
      statements. If the unfolded operator is inside a loop condition or
      expression, it needs to be evaluated repeatedly inside the loop. Add
      logic to UnfoldShortCircuitToIf that can move or copy the unfolded part
      of loop conditions or expressions to inside the loop.
      
      The exact changes that need to be done depend on the type of the loop.
      For loops may require also moving the initializer to outside the loop.
      
      The unfolded expression inside a loop condition or expression is moved
      or copied to inside the loop on the first traversal of the loop node,
      and unfolding to if is deferred until a second traversal. This keeps the
      code relatively simple.
      
      BUG=angleproject:1167
      TEST=WebGL 2 conformance tests,
           dEQP-GLES2.functional.shaders.*select_iteration_count*
      
      Change-Id: Ieffc0ea858186054378d387dca9aa64a5fa95137
      Reviewed-on: https://chromium-review.googlesource.com/310230Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarZhenyao Mo <zmo@chromium.org>
      Tested-by: 's avatarOlli Etuaho <oetuaho@nvidia.com>