Lines Matching defs:const

60 static inline std::map<string, string> singleMap (const string& key, const string& value)
67 static inline string repeat (const string& str, int numRepeats, const string& delim = "")
75 static inline string repeatIndexedTemplate (const string& strTempl, int numRepeats, const string& delim = "", int ndxStart = 0)
77 const tcu::StringTemplate templ(strTempl);
121 ProgramData (const glu::ProgramSources& sources_, const vector<gls::AttribSpec>& attributes_ = vector<gls::AttribSpec>()) : sources(sources_), attributes(attributes_) {}
122 ProgramData (const glu::ProgramSources& sources_, const gls::AttribSpec& attribute) : sources(sources_), attributes(1, attribute) {}
126 static inline ProgramData defaultProgramData (CaseShaderType shaderType, const string& funcDefs, const string& mainStatements)
128 const bool isVertexCase = shaderType == CASESHADERTYPE_VERTEX;
129 const bool isFragmentCase = shaderType == CASESHADERTYPE_FRAGMENT;
130 const string vtxPrec = getShaderPrecision(CASESHADERTYPE_VERTEX);
131 const string fragPrec = getShaderPrecision(CASESHADERTYPE_FRAGMENT);
160 static inline ProgramData defaultProgramData (CaseShaderType shaderType, const string& mainStatements)
168 ShaderOptimizationCase (Context& context, const char* name, const char* description, CaseShaderType caseShaderType)
186 virtual ProgramData generateProgramData (bool optimized) const = 0;
188 const CaseShaderType m_caseShaderType;
203 SharedPtr<const ShaderProgram>& program (bool optimized) { return optimized ? m_optimizedProgram : m_unoptimizedProgram; }
211 SharedPtr<const ShaderProgram> m_unoptimizedProgram;
212 SharedPtr<const ShaderProgram> m_optimizedProgram;
219 const glu::RenderContext& renderCtx = m_context.getRenderContext();
226 const bool optimized = ndx == 1;
233 program(optimized) = SharedPtr<const ShaderProgram>(new ShaderProgram(renderCtx, programData(optimized).sources));
236 const tcu::ScopedLogSection section(log, optimized ? "OptimizedProgram" : "UnoptimizedProgram",
254 const bool optimized = m_state == STATE_INIT_OPTIMIZED;
266 const bool optimized = m_state == STATE_MEASURE_OPTIMIZED;
267 const tcu::ScopedLogSection section (log, optimized ? "OptimizedResult" : "UnoptimizedResult",
281 const float unoptimizedRelevantResult = m_caseShaderType == CASESHADERTYPE_VERTEX ? m_unoptimizedResult.megaVertPerSec : m_unoptimizedResult.megaFragPerSec;
282 const float optimizedRelevantResult = m_caseShaderType == CASESHADERTYPE_VERTEX ? m_optimizedResult.megaVertPerSec : m_optimizedResult.megaFragPerSec;
283 const char* const relevantResultName = m_caseShaderType == CASESHADERTYPE_VERTEX ? "vertex" : "fragment";
284 const float ratio = unoptimizedRelevantResult / optimizedRelevantResult;
285 const int handOptimizationGain = (int)deFloatRound(100.0f/ratio) - 100;
311 LoopUnrollCase (Context& context, const char* name, const char* description, CaseShaderType caseShaderType, CaseType caseType, int numRepetitions)
319 ProgramData generateProgramData (bool optimized) const
321 const string repetition = optimized ? repeatIndexedTemplate("\t" + expressionTemplate(m_caseType) + ";\n", m_numRepetitions)
328 const int m_numRepetitions;
329 const CaseType m_caseType;
343 static inline string loop (int iterations, const string& innerExpr)
352 LoopInvariantCodeMotionCase (Context& context, const char* name, const char* description, CaseShaderType caseShaderType, int numLoopIterations)
359 ProgramData generateProgramData (bool optimized) const
366 const string precision = getShaderPrecision(m_caseShaderType);
367 const string statements = optimized ? " " + precision + " vec4 valueOrig = value;\n"
389 const int m_numLoopIterations;
395 FunctionInliningCase (Context& context, const char* name, const char* description, CaseShaderType caseShaderType, int callNestingDepth)
402 ProgramData generateProgramData (bool optimized) const
404 const string precision = getShaderPrecision(m_caseShaderType);
405 const string expression = "value*vec4(0.8, 0.7, 0.6, 0.9)";
406 const string maybeFuncDefs = optimized ? "" : funcDefinitions(m_callNestingDepth, precision, expression);
407 const string mainValueStatement = (optimized ? "\tvalue = " + expression : "\tvalue = func" + toString(m_callNestingDepth-1) + "(value)") + ";\n";
413 const int m_callNestingDepth;
415 static inline string funcDefinitions (int callNestingDepth, const string& precision, const string& expression)
438 ConstantPropagationCase (Context& context, const char* name, const char* description, CaseShaderType caseShaderType, CaseType caseType, bool useConstantExpressionsOnly)
447 ProgramData generateProgramData (bool optimized) const
449 const bool isVertexCase = m_caseShaderType == CASESHADERTYPE_VERTEX;
450 const string precision = getShaderPrecision(m_caseShaderType);
451 const string statements = m_caseType == CASETYPE_BUILT_IN_FUNCTIONS ? builtinFunctionsCaseStatements (optimized, m_useConstantExpressionsOnly, precision, isVertexCase)
460 const CaseType m_caseType;
461 const bool m_useConstantExpressionsOnly;
463 static inline string builtinFunctionsCaseStatements (bool optimized, bool constantExpressionsOnly, const string& precision, bool useHeavierWorkload)
465 const string constMaybe = constantExpressionsOnly ? "const " : "";
466 const int numSinRows = useHeavierWorkload ? 12 : 1;
480 static inline string arrayCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
482 const int numSinRows = useHeavierWorkload ? 12 : 1;
486 : " const int arrLen = 4;\n"
499 static inline string structCaseStatements (bool optimized, bool constantExpressionsOnly, const string& precision, bool useHeavierWorkload)
501 const string constMaybe = constantExpressionsOnly ? "const " : "";
502 const int numSinRows = useHeavierWorkload ? 12 : 1;
540 CommonSubexpressionCase (Context& context, const char* name, const char* description, CaseShaderType caseShaderType, CaseType caseType)
547 ProgramData generateProgramData (bool optimized) const
549 const bool isVertexCase = m_caseShaderType == CASESHADERTYPE_VERTEX;
550 const string precision = getShaderPrecision(m_caseShaderType);
551 const string statements = m_caseType == CASETYPE_SINGLE_STATEMENT ? singleStatementCaseStatements (optimized, precision, isVertexCase)
561 const CaseType m_caseType;
563 static inline string singleStatementCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
565 const int numTopLevelRepeats = useHeavierWorkload ? 4 : 1;
575 static inline string multipleStatementsCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
577 const int numTopLevelRepeats = useHeavierWorkload ? 4 : 2;
595 static inline string staticBranchCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
597 const int numTopLevelRepeats = useHeavierWorkload ? 4 : 2;
639 static inline string loopCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
641 const int numLoopIterations = useHeavierWorkload ? 32 : 4;
681 DeadCodeEliminationCase (Context& context, const char* name, const char* description, CaseShaderType caseShaderType, CaseType caseType)
688 ProgramData generateProgramData (bool optimized) const
690 const bool isVertexCase = m_caseShaderType == CASESHADERTYPE_VERTEX;
691 const string precision = getShaderPrecision(m_caseShaderType);
692 const string funcDefs = m_caseType == CASETYPE_DEAD_BRANCH_FUNC_CALL ? deadBranchFuncCallCaseFuncDefs (optimized, precision)
696 const string statements = m_caseType == CASETYPE_DEAD_BRANCH_SIMPLE ? deadBranchSimpleCaseStatements (optimized, isVertexCase)
711 const CaseType m_caseType;
715 const int numLoopIterations = useHeavierWorkload ? 16 : 4;
728 static inline string deadBranchComplexCaseStatements (bool optimized, const string& precision, bool useConst, bool useHeavierWorkload)
730 const string constMaybe = useConst ? "const " : "";
731 const int numLoopIterations = useHeavierWorkload ? 16 : 4;
749 static inline string deadBranchFuncCallCaseFuncDefs (bool optimized, const string& precision)
756 const int numLoopIterations = useHeavierWorkload ? 16 : 4;
769 static inline string unusedValueBasicCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
771 const int numSinRows = useHeavierWorkload ? 12 : 1;
782 static inline string unusedValueLoopCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
784 const int numLoopIterations = useHeavierWorkload ? 16 : 4;
796 static inline string unusedValueAfterReturnCaseFuncDefs (bool optimized, const string& precision, bool useHeavierWorkload)
798 const int numSinRows = useHeavierWorkload ? 12 : 1;
822 static inline string unusedValueDeadBranchCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
824 const int numSinRows = useHeavierWorkload ? 12 : 1;
837 static inline string unusedValueMulZeroCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
839 const int numSinRows = useHeavierWorkload ? 12 : 1;
864 TestCaseGroup* const unrollGroup = new TestCaseGroup(m_context, "loop_unrolling", "Loop Unrolling Cases");
865 TestCaseGroup* const loopInvariantCodeMotionGroup = new TestCaseGroup(m_context, "loop_invariant_code_motion", "Loop-Invariant Code Motion Cases");
866 TestCaseGroup* const inlineGroup = new TestCaseGroup(m_context, "function_inlining", "Function Inlining Cases");
867 TestCaseGroup* const constantPropagationGroup = new TestCaseGroup(m_context, "constant_propagation", "Constant Propagation Cases");
868 TestCaseGroup* const commonSubexpressionGroup = new TestCaseGroup(m_context, "common_subexpression_elimination", "Common Subexpression Elimination Cases");
869 TestCaseGroup* const deadCodeEliminationGroup = new TestCaseGroup(m_context, "dead_code_elimination", "Dead Code Elimination Cases");
879 const CaseShaderType caseShaderType = (CaseShaderType)caseShaderTypeI;
880 const char* const caseShaderTypeSuffix = caseShaderType == CASESHADERTYPE_VERTEX ? "_vertex"
887 static const int loopIterationCounts[] = { 4, 8, 32 };
891 const LoopUnrollCase::CaseType caseType = (LoopUnrollCase::CaseType)caseTypeI;
892 const string caseTypeName = caseType == LoopUnrollCase::CASETYPE_INDEPENDENT ? "independent_iterations"
895 const string caseTypeDesc = caseType == LoopUnrollCase::CASETYPE_INDEPENDENT ? "loop iterations don't depend on each other"
901 const int loopIterations = loopIterationCounts[loopIterNdx];
902 const string name = caseTypeName + "_" + toString(loopIterations) + caseShaderTypeSuffix;
903 const string description = toString(loopIterations) + " iterations; " + caseTypeDesc;
913 static const int loopIterationCounts[] = { 4, 8, 32 };
917 const int loopIterations = loopIterationCounts[loopIterNdx];
918 const string name = toString(loopIterations) + "_iterations" + caseShaderTypeSuffix;
927 static const int callNestingDepths[] = { 4, 8, 32 };
931 const int nestingDepth = callNestingDepths[nestDepthNdx];
932 const string name = toString(nestingDepth) + "_nested" + caseShaderTypeSuffix;
942 const ConstantPropagationCase::CaseType caseType = (ConstantPropagationCase::CaseType)caseTypeI;
943 const string caseTypeName = caseType == ConstantPropagationCase::CASETYPE_BUILT_IN_FUNCTIONS ? "built_in_functions"
950 const bool constantExpressionsOnly = constantExpressionsOnlyI != 0;
951 const string name = caseTypeName + (constantExpressionsOnly ? "" : "_no_const") + caseShaderTypeSuffix;
964 const CommonSubexpressionCase::CaseType caseType = (CommonSubexpressionCase::CaseType)caseTypeI;
966 const string caseTypeName = caseType == CommonSubexpressionCase::CASETYPE_SINGLE_STATEMENT ? "single_statement"
972 const string description = caseType == CommonSubexpressionCase::CASETYPE_SINGLE_STATEMENT ? "A single statement containing multiple uses of same subexpression"
985 const DeadCodeEliminationCase::CaseType caseType = (DeadCodeEliminationCase::CaseType)caseTypeI;
986 const char* const caseTypeName = caseType == DeadCodeEliminationCase::CASETYPE_DEAD_BRANCH_SIMPLE ? "dead_branch_simple"
997 const char* const caseTypeDescription = caseType == DeadCodeEliminationCase::CASETYPE_DEAD_BRANCH_SIMPLE ? "Do computation inside a branch that is never taken (condition is simple false constant expression)"