skia2/tests/sksl/inliner
John Stiles 44409c070a Distinguish between unscoped blocks and compound statements.
Previously, we used unscoped blocks for two similar functions:
- Rewrite one statement as two simpler statements:
  `int a, b;` -> `int a; int b;`
- Group together multiple statements without braces. e.g. the inliner
  uses unscoped Blocks to rearrange statements.

Conceptually, these are different from the debugger's perspective. The
compound statements should be treated as one unit; the grouped
statements should be treated individually (and the enclosing Block
should be ignored). A Block now contains a BlockKind enum to
distinguish between these cases.

Change-Id: Ie14a570bb46992689fb96b8fd3b67f2ca6e5239f
Bug: skia:13189
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/528655
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-04-11 14:34:07 +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 Distinguish between unscoped blocks and compound statements. 2022-04-11 14:34:07 +00:00
ExponentialGrowthStandaloneSettings.glsl Distinguish between unscoped blocks and compound statements. 2022-04-11 14:34:07 +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 Optimize saturation code again. 2022-04-07 21:36:07 +00:00
InlinerCanBeDisabledStandaloneSettings.glsl Optimize saturation code again. 2022-04-07 21:36:07 +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 Run SkSL inliner tests as part of dm. 2021-03-25 22:58:54 +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