X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Foptimize.h;h=75fffa13bb4fcaf6527d56ab676a7b88553cb8c5;hb=5871764de7aa23d2c40cac03ad9d07088fb57e06;hp=d9fc2d6a7a074367262dc890967ac632b9d22682;hpb=c43203c52410ee8a734e775e7ee7368a12f82ff7;p=libs%2Fgl.git diff --git a/source/glsl/optimize.h b/source/glsl/optimize.h index d9fc2d6a..75fffa13 100644 --- a/source/glsl/optimize.h +++ b/source/glsl/optimize.h @@ -122,6 +122,7 @@ private: Block *assign_scope = 0; std::vector uses; bool trivial = false; + bool blocked = false; }; std::list expressions; @@ -261,7 +262,7 @@ private: bool r_external_side_effects = false; public: - void apply(Stage &); + bool apply(Stage &); private: ConstantStatus check_constant_condition(const Expression &); @@ -276,6 +277,7 @@ private: virtual void visit(Iteration &); }; +/** Removes code which is never executed due to flow control statements. */ class UnreachableCodeRemover: private TraversingVisitor { private: