From 8f16059d3c29e285d4effed7f0c1f84c1f2f4d9d Mon Sep 17 00:00:00 2001 From: Thomas Lively <7121787+tlively@users.noreply.github.com> Date: Tue, 10 Mar 2020 13:43:06 -0700 Subject: Handle multivalue returns in the interpreter (#2684) Updates the interpreter to properly flow vectors of values, including at function boundaries. Adds a small spec test for multivalue return. --- src/passes/SimplifyGlobals.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/passes/SimplifyGlobals.cpp') diff --git a/src/passes/SimplifyGlobals.cpp b/src/passes/SimplifyGlobals.cpp index aa211b86b..44e3338e6 100644 --- a/src/passes/SimplifyGlobals.cpp +++ b/src/passes/SimplifyGlobals.cpp @@ -109,7 +109,7 @@ struct ConstantGlobalApplier if (auto* set = curr->dynCast()) { if (Properties::isConstantExpression(set->value)) { currConstantGlobals[set->name] = - getLiteralFromConstExpression(set->value); + getSingleLiteralFromConstExpression(set->value); } else { currConstantGlobals.erase(set->name); } @@ -253,7 +253,7 @@ struct SimplifyGlobals : public Pass { if (!global->imported()) { if (Properties::isConstantExpression(global->init)) { constantGlobals[global->name] = - getLiteralFromConstExpression(global->init); + getSingleLiteralFromConstExpression(global->init); } else if (auto* get = global->init->dynCast()) { auto iter = constantGlobals.find(get->name); if (iter != constantGlobals.end()) { -- cgit v1.2.3