Add a new statement type 'InlineMarker' to indicate inlined functions.
This will be leveraged in followup CLs to avoid recursive inlining death
spirals.
Change-Id: Icf99c88c4acaaa766e0dc0971830329e24d70509
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315861
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
diff --git a/src/sksl/SkSLDehydrator.cpp b/src/sksl/SkSLDehydrator.cpp
index 6488969..b9b0646 100644
--- a/src/sksl/SkSLDehydrator.cpp
+++ b/src/sksl/SkSLDehydrator.cpp
@@ -26,6 +26,7 @@
#include "src/sksl/ir/SkSLFunctionDefinition.h"
#include "src/sksl/ir/SkSLIfStatement.h"
#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLInlineMarker.h"
#include "src/sksl/ir/SkSLIntLiteral.h"
#include "src/sksl/ir/SkSLInterfaceBlock.h"
#include "src/sksl/ir/SkSLNullLiteral.h"
@@ -441,6 +442,12 @@
this->write(i.fIfFalse.get());
break;
}
+ case Statement::Kind::kInlineMarker: {
+ const InlineMarker& i = s->as<InlineMarker>();
+ this->writeU8(Rehydrator::kInlineMarker_Command);
+ this->writeId(i.fFuncDecl);
+ break;
+ }
case Statement::Kind::kNop:
SkASSERT(false);
break;