OSDN Git Service

Detect loop index modifications in loop body.
authorNicolas Capens <capn@google.com>
Mon, 28 May 2018 16:25:57 +0000 (12:25 -0400)
committerNicolas Capens <nicolascapens@google.com>
Tue, 29 May 2018 13:59:43 +0000 (13:59 +0000)
commitac3f2faccda5a53f3003ff66b600ed4e4cec1800
tree0f9e243ff3d7474158cbe9868652986fb5821e50
parent9d93107e78bd4596948f9f0096f244e505842c39
Detect loop index modifications in loop body.

Loops can only be unrolled if their loop index variable is not being
modified in the loop body.

Also check that the increment step of the loop operates on the initial
index variable.

Also remove some UNIMPLEMENTED's that were benign.

Bug chromium:845103
Bug chromium:843867
Bug skia:7846

Change-Id: Ib2b39f2d58763f0299ce7f6f75a8a75e6bdc7963
Reviewed-on: https://swiftshader-review.googlesource.com/18988
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
src/OpenGL/compiler/OutputASM.cpp
src/OpenGL/compiler/OutputASM.h