skia2/tests/sksl/runtime
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
..
AllowNarrowingConversions.skvm Add test for Runtime Effects and narrowing conversions. 2021-08-03 15:58:46 +00:00
AllowNarrowingConversions.stage Add test for Runtime Effects and narrowing conversions. 2021-08-03 15:58:46 +00:00
ArrayIndexing.skvm Emit trace_scope ops from SkVM code generation. 2021-12-15 01:05:34 +00:00
ArrayIndexing.stage Add variable slot information to SkVMDebugInfo. 2021-11-15 14:24:08 +00:00
ArrayNarrowingConversions.skvm Add unit test for array narrowing conversions. 2021-08-06 13:05:35 +00:00
ArrayNarrowingConversions.stage Add tests for array assignment with narrowing conversions. 2021-08-11 12:56:40 +00:00
Blend.skvm Add dest-color support to the Pipeline stage. 2021-06-09 22:09:21 +00:00
Blend.stage Add dest-color support to the Pipeline stage. 2021-06-09 22:09:21 +00:00
ChildEffects.skvm Update opcode canonicalization logic in SkVM. 2022-03-24 19:14:51 +00:00
ChildEffects.stage Add a test runtime effect for child effects. 2022-02-12 01:06:57 +00:00
Commutative.skvm Emit trace_scope ops from SkVM code generation. 2021-12-15 01:05:34 +00:00
Commutative.stage Add test for commutative operations in SkVM. 2021-11-18 21:16:48 +00:00
ConstPreservation.skvm Test that we propagate 'const' to the GPU backend of runtime effects 2021-03-09 23:26:00 +00:00
ConstPreservation.stage Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +00:00
ConversionConstructors.skvm Optimize SkVM selects. 2022-03-24 21:17:41 +00:00
ConversionConstructors.stage Remove flexible runtime effects entirely 2021-04-29 16:02:27 +00:00
GlobalVariables.skvm Emit trace_scope ops from SkVM code generation. 2021-12-15 01:05:34 +00:00
GlobalVariables.stage Fix assertion when debug-tracing a void-return function. 2021-12-10 14:39:05 +00:00
GLSLTypeNames.skvm Add ivec GLSL type aliases to runtime effects 2021-04-12 16:55:41 +00:00
GLSLTypeNames.stage Add ivec GLSL type aliases to runtime effects 2021-04-12 16:55:41 +00:00
LargeProgram_BlocklessLoops.skvm Add program-too-large test using for loops without blocks. 2021-09-15 14:19:00 +00:00
LargeProgram_BlocklessLoops.stage Add program-too-large test using for loops without blocks. 2021-09-15 14:19:00 +00:00
LargeProgram_FlatLoop.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_FlatLoop.stage Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_Functions.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_Functions.stage Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +00:00
LargeProgram_NestedLoops.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_NestedLoops.stage Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_SplitLoops.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_SplitLoops.stage Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +00:00
LargeProgram_StackDepth.skvm Reject programs which exceed 50 stack frames during size analysis. 2021-09-03 02:41:34 +00:00
LargeProgram_StackDepth.stage Distinguish between unscoped blocks and compound statements. 2022-04-11 14:34:07 +00:00
LargeProgram_ZeroIterFor.skvm Enforce an upper bound on Runtime Effect program size. 2021-09-02 14:44:34 +00:00
LargeProgram_ZeroIterFor.stage Optimize away empty for loops. 2021-10-06 17:56:26 +00:00
LoopFloat.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
LoopFloat.stage Update LoopFloat/LoopInt tests to reduce hoisting. 2021-11-12 13:45:59 +00:00
LoopInt.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
LoopInt.stage Add workaround for LLVM crash in macOS 12 on Intel or M1. 2022-03-02 15:20:10 +00:00
MultipleCallsInOneStatement.skvm Fix debugger return-value display with repeated function calls. 2022-03-03 20:55:25 +00:00
MultipleCallsInOneStatement.stage Add test demonstrating issue with function calls. 2022-03-03 20:55:25 +00:00
PrecisionQualifiers.skvm Made SkSL type aliases into first-class objects 2022-01-05 16:20:19 +00:00
PrecisionQualifiers.stage Add variable slot information to SkVMDebugInfo. 2021-11-15 14:24:08 +00:00
QualifierOrder.skvm Emit qualifiers in the GLSL ES-required order. 2021-10-01 19:09:43 +00:00
QualifierOrder.stage Report an error if an out param is never written to. 2022-01-26 21:42:13 +00:00
RecursiveComparison_Arrays.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
RecursiveComparison_Arrays.stage Adding test files demonstrating type confusion for arrays/structs. 2021-12-03 20:54:36 +00:00
RecursiveComparison_Structs.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
RecursiveComparison_Structs.stage Adding test files demonstrating type confusion for arrays/structs. 2021-12-03 20:54:36 +00:00
RecursiveComparison_Types.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
RecursiveComparison_Types.stage Adding test files demonstrating type confusion for arrays/structs. 2021-12-03 20:54:36 +00:00
RecursiveComparison_Vectors.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
RecursiveComparison_Vectors.stage Adding test files demonstrating type confusion for arrays/structs. 2021-12-03 20:54:36 +00:00
SampleWithExplicitCoord.skvm Optimize commutative operations in SkVM. 2021-11-18 21:27:17 +00:00
SampleWithExplicitCoord.stage Convert internal SkSL to use .eval() 2021-09-03 15:54:54 +00:00
Switch.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
Switch.stage Implement switch in SkVM. 2021-09-23 19:58:55 +00:00
SwitchDefaultOnly.skvm Implement switch in SkVM. 2021-09-23 19:58:55 +00:00
SwitchDefaultOnly.stage Implement switch in SkVM. 2021-09-23 19:58:55 +00:00
SwitchWithFallthrough.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
SwitchWithFallthrough.stage Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +00:00
SwitchWithLoops.skvm Optimize SkVM bit-clears. 2022-03-24 21:04:23 +00:00
SwitchWithLoops.stage Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +00:00
VectorIndexing.skvm Optimize commutative operations in SkVM. 2021-11-18 21:27:17 +00:00
VectorIndexing.stage Emit prototypes in Pipeline for every defined function. 2021-09-30 21:37:26 +00:00