Disable optimizations for shaders with conditional discard in D3D9, and
only use expanded short-circuiting conditionals for expressions with
potential side-effects.

Conservatively assume aggreate and selection operators have side effects for now.

BUG=
ANGLEBUG=486
R=geofflang@chromium.org, kbr@chromium.org, nicolas@transgaming.com, shannonwoods@chromium.org

Review URL: https://codereview.appspot.com/14441075

Conflicts:
	src/common/version.h
	src/compiler/translator.vcxproj
	src/compiler/translator.vcxproj.filters
	src/compiler/translator/OutputHLSL.cpp
	src/libGLESv2/ProgramBinary.cpp
	src/libGLESv2/Shader.cpp
	src/libGLESv2/Shader.h

Change-Id: Iaf9f10b5de7b33c927ef032f3c4fe9d5095f64dd
diff --git a/src/libGLESv2/renderer/d3d11/Renderer11.cpp b/src/libGLESv2/renderer/d3d11/Renderer11.cpp
index 02cadd9..7ab7cc5 100644
--- a/src/libGLESv2/renderer/d3d11/Renderer11.cpp
+++ b/src/libGLESv2/renderer/d3d11/Renderer11.cpp
@@ -2758,7 +2758,7 @@
     return executable;
 }
 
-ShaderExecutable *Renderer11::compileToExecutable(gl::InfoLog &infoLog, const char *shaderHLSL, rx::ShaderType type)
+ShaderExecutable *Renderer11::compileToExecutable(gl::InfoLog &infoLog, const char *shaderHLSL, rx::ShaderType type, D3DWorkaroundType workaround)
 {
     const char *profile = NULL;