1 // 2 // Copyright 2016 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 7 // BreakVariableAliasingInInnerLoops.h: To optimize simple assignments, the HLSL compiler frontend 8 // may record a variable as aliasing another. Sometimes the alias information gets garbled 9 // so we work around this issue by breaking the aliasing chain in inner loops. 10 11 #ifndef COMPILER_TRANSLATOR_TREEOPS_D3D_BREAKVARIABLEALIASINGININNERLOOPS_H_ 12 #define COMPILER_TRANSLATOR_TREEOPS_D3D_BREAKVARIABLEALIASINGININNERLOOPS_H_ 13 14 #include "common/angleutils.h" 15 16 namespace sh 17 { 18 class TCompiler; 19 class TIntermNode; 20 21 ANGLE_NO_DISCARD bool BreakVariableAliasingInInnerLoops(TCompiler *compiler, TIntermNode *root); 22 23 } // namespace sh 24 25 #endif // COMPILER_TRANSLATOR_TREEOPS_D3D_BREAKVARIABLEALIASINGININNERLOOPS_H_ 26