skia2/tests/sksl/inliner
John Stiles a75ee2620b Optimize away field accesses to known structs.
This is necessary for proper constant-folding, and can help us generate
better code. Most examples are pretty contrived, but a realistic benefit
can be found in inlined code (see TrivialArgumentsInlineDirectly.glsl).

Change-Id: I86aac9d48a70ae35a15109fd0b04400ae39a3b47
Bug: skia:13387
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/547277
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-06-06 20:38:43 +00:00
..
DoWhileBodyMustBeInlinedIntoAScope.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
DoWhileTestCannotBeInlined.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
ExponentialGrowth.glsl Remove InlineMarker IR node. 2022-04-29 17:40:58 +00:00
ExponentialGrowthStandaloneSettings.glsl Remove InlineMarker IR node. 2022-04-29 17:40:58 +00:00
ForBodyMustBeInlinedIntoAScope.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
ForInitializerExpressionsCanBeInlined.glsl Loosen ES3 restrictions in Runtime Effects for debugging. 2021-04-28 19:59:36 +00:00
ForWithoutReturnInsideCanBeInlined.glsl In SkSL tests, don't force opaque output 2022-02-03 17:25:35 +00:00
ForWithReturnInsideCannotBeInlined.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
IfBodyMustBeInlinedIntoAScope.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
IfElseBodyMustBeInlinedIntoAScope.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
IfElseChainWithReturnsCanBeInlined.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
IfTestCanBeInlined.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
IfWithReturnsCanBeInlined.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
InlineKeywordOverridesThreshold.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
InlinerAvoidsVariableNameOverlap.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
InlinerCanBeDisabled.glsl Add ReducedBlendModeInfo to shared code. 2022-04-22 17:18:31 +00:00
InlinerCanBeDisabledStandaloneSettings.glsl Add ReducedBlendModeInfo to shared code. 2022-04-22 17:18:31 +00:00
InlinerElidesTempVarForReturnsInsideBlock.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
InlinerManglesNames.glsl Allow multiple expressions on the same statement to be inlined. 2021-03-19 15:14:24 +00:00
InlinerUsesTempVarForMultipleReturns.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
InlinerUsesTempVarForReturnsInsideBlockWithVar.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
InlineThreshold.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
InlineWithModifiedArgument.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
InlineWithNestedBigCalls.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
InlineWithNestedCalls.glsl Prevent no-op statements in GLSL code generator. 2022-01-19 17:36:54 +00:00
InlineWithUnmodifiedArgument.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
InlineWithUnnecessaryBlocks.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
NoInline.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
Ossfuzz37994.glsl Prevent no-op statements in GLSL code generator. 2022-01-19 17:36:54 +00:00
ShortCircuitEvaluationsCannotInlineRightHandSide.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
StaticSwitch.glsl Reland "Eliminate unreachable code during optimization." 2021-05-20 20:02:15 +00:00
StructsCanBeInlinedSafely.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
SwitchWithCastCanBeInlined.glsl Revert "Inline functions of the form 'return (expr)' only." 2021-03-15 22:08:48 +00:00
SwitchWithoutReturnInsideCanBeInlined.glsl Revert "Inline functions of the form 'return (expr)' only." 2021-03-15 22:08:48 +00:00
SwizzleCanBeInlinedDirectly.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
TernaryResultsCannotBeInlined.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
TernaryTestCanBeInlined.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
TrivialArgumentsInlineDirectly.glsl Optimize away field accesses to known structs. 2022-06-06 20:38:43 +00:00
TrivialArgumentsInlineDirectlyES3.glsl Add ES3 test for trivially inlinable arguments. 2022-06-06 13:45:13 +00:00
WhileBodyMustBeInlinedIntoAScope.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00
WhileTestCannotBeInlined.glsl Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +00:00