Prototype of a full SSA transformation.

This commit is contained in:
Daniel Kirchner
2021-01-07 12:50:13 +01:00
parent 591f04e41c
commit dab68e6254
36 changed files with 1263 additions and 3 deletions
+32
View File
@@ -150,6 +150,38 @@ map<YulString, BuiltinFunctionForEVM> createBuiltins(langutil::EVMVersion _evmVe
builtins.emplace(createEVMFunction(name, opcode));
}
builtins.emplace(createFunction(
"phi_store",
2,
0,
SideEffects{false, false, false, false, true, SideEffects::None, SideEffects::None, SideEffects::None},
{LiteralKind::String, nullopt},
[](
FunctionCall const&,
AbstractAssembly&,
BuiltinContext&,
std::function<void(Expression const&)>
) {
yulAssert(false, "leftover phi_store");
}
));
builtins.emplace(createFunction(
"phi_load",
1,
1,
SideEffects{},
{LiteralKind::String},
[](
FunctionCall const&,
AbstractAssembly&,
BuiltinContext&,
std::function<void(Expression const&)>
) {
yulAssert(false, "leftover phi_load");
}
));
if (_objectAccess)
{
builtins.emplace(createFunction("linkersymbol", 1, 1, SideEffects{}, {LiteralKind::String}, [](