| // | |
| // Copyright 2018 The ANGLE Project Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| // | |
| // RewriteRepeatedAssignToSwizzled.h: Rewrite expressions that assign an assignment to a swizzled | |
| // vector, like: | |
| // v.x = z = expression; | |
| // to: | |
| // z = expression; | |
| // v.x = z; | |
| // | |
| // Note that this doesn't handle some corner cases: expressions nested inside other expressions, | |
| // inside loop headers, or inside if conditions. | |
| #ifndef COMPILER_TRANSLATOR_TREEOPS_REWRITEREPEATEDASSIGNTOSWIZZLED_H_ | |
| #define COMPILER_TRANSLATOR_TREEOPS_REWRITEREPEATEDASSIGNTOSWIZZLED_H_ | |
| #include "common/angleutils.h" | |
| namespace sh | |
| { | |
| class TCompiler; | |
| class TIntermBlock; | |
| ANGLE_NO_DISCARD bool RewriteRepeatedAssignToSwizzled(TCompiler *compiler, TIntermBlock *root); | |
| } // namespace sh | |
| #endif // COMPILER_TRANSLATOR_TREEOPS_REWRITEREPEATEDASSIGNTOSWIZZLED_H_ |