Merge pull request #11865 from ethereum/compressSourceIndices

Only list used source names.
This commit is contained in:
chriseth 2021-09-06 22:13:27 +02:00 committed by GitHub
commit a7b85d3a41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 108 additions and 103 deletions

View File

@ -127,9 +127,10 @@ string IRNames::zeroValue(Type const& _type, string const& _variableName)
return "zero_" + _type.identifier() + _variableName; return "zero_" + _type.identifier() + _variableName;
} }
string sourceLocationComment(langutil::SourceLocation const& _location, IRGenerationContext const& _context) string dispenseLocationComment(langutil::SourceLocation const& _location, IRGenerationContext& _context)
{ {
solAssert(_location.sourceName, ""); solAssert(_location.sourceName, "");
_context.markSourceUsed(*_location.sourceName);
return "/// @src " return "/// @src "
+ to_string(_context.sourceIndices().at(*_location.sourceName)) + to_string(_context.sourceIndices().at(*_location.sourceName))
+ ":" + ":"
@ -138,9 +139,9 @@ string sourceLocationComment(langutil::SourceLocation const& _location, IRGenera
+ to_string(_location.end); + to_string(_location.end);
} }
string sourceLocationComment(ASTNode const& _node, IRGenerationContext const& _context) string dispenseLocationComment(ASTNode const& _node, IRGenerationContext& _context)
{ {
return sourceLocationComment(_node.location(), _context); return dispenseLocationComment(_node.location(), _context);
} }
} }

View File

@ -71,10 +71,11 @@ struct IRNames
/** /**
* @returns a source location comment in the form of * @returns a source location comment in the form of
* `/// @src <sourceIndex>:<locationStart>:<locationEnd>`. * `/// @src <sourceIndex>:<locationStart>:<locationEnd>`
* and marks the source index as used.
*/ */
std::string sourceLocationComment(langutil::SourceLocation const& _location, IRGenerationContext const& _context); std::string dispenseLocationComment(langutil::SourceLocation const& _location, IRGenerationContext& _context);
std::string sourceLocationComment(ASTNode const& _node, IRGenerationContext const& _context); std::string dispenseLocationComment(ASTNode const& _node, IRGenerationContext& _context);
} }

View File

@ -166,6 +166,8 @@ public:
void copyFunctionIDsFrom(IRGenerationContext const& _other); void copyFunctionIDsFrom(IRGenerationContext const& _other);
std::map<std::string, unsigned> const& sourceIndices() const { return m_sourceIndices; } std::map<std::string, unsigned> const& sourceIndices() const { return m_sourceIndices; }
void markSourceUsed(std::string const& _name) { m_usedSourceNames.insert(_name); }
std::set<std::string> const& usedSourceNames() const { return m_usedSourceNames; }
bool immutableRegistered(VariableDeclaration const& _varDecl) const { return m_immutableVariables.count(&_varDecl); } bool immutableRegistered(VariableDeclaration const& _varDecl) const { return m_immutableVariables.count(&_varDecl); }
@ -175,6 +177,7 @@ private:
RevertStrings m_revertStrings; RevertStrings m_revertStrings;
OptimiserSettings m_optimiserSettings; OptimiserSettings m_optimiserSettings;
std::map<std::string, unsigned> m_sourceIndices; std::map<std::string, unsigned> m_sourceIndices;
std::set<std::string> m_usedSourceNames;
ContractDefinition const* m_mostDerivedContract = nullptr; ContractDefinition const* m_mostDerivedContract = nullptr;
std::map<VariableDeclaration const*, IRVariable> m_localVariables; std::map<VariableDeclaration const*, IRVariable> m_localVariables;
/// Memory offsets reserved for the values of immutable variables during contract creation. /// Memory offsets reserved for the values of immutable variables during contract creation.

View File

@ -131,12 +131,21 @@ string IRGenerator::generate(
subObjectsSources += _otherYulSources.at(subObject); subObjectsSources += _otherYulSources.at(subObject);
return subObjectsSources; return subObjectsSources;
}; };
auto formatUseSrcMap = [](IRGenerationContext const& _context) -> string
{
return joinHumanReadable(
ranges::views::transform(_context.usedSourceNames(), [_context](string const& _sourceName) {
return to_string(_context.sourceIndices().at(_sourceName)) + ":" + escapeAndQuoteString(_sourceName);
}),
", "
);
};
Whiskers t(R"( Whiskers t(R"(
/// @use-src <useSrcMapCreation> /// @use-src <useSrcMapCreation>
object "<CreationObject>" { object "<CreationObject>" {
code { code {
<sourceLocationComment> <sourceLocationCommentCreation>
<memoryInitCreation> <memoryInitCreation>
<callValueCheck> <callValueCheck>
<?library> <?library>
@ -150,7 +159,7 @@ string IRGenerator::generate(
/// @use-src <useSrcMapDeployed> /// @use-src <useSrcMapDeployed>
object "<DeployedObject>" { object "<DeployedObject>" {
code { code {
<sourceLocationComment> <sourceLocationCommentDeployed>
<memoryInitDeployed> <memoryInitDeployed>
<?library> <?library>
let called_via_delegatecall := iszero(eq(loadimmutable("<library_address>"), address())) let called_via_delegatecall := iszero(eq(loadimmutable("<library_address>"), address()))
@ -169,19 +178,8 @@ string IRGenerator::generate(
for (VariableDeclaration const* var: ContractType(_contract).immutableVariables()) for (VariableDeclaration const* var: ContractType(_contract).immutableVariables())
m_context.registerImmutableVariable(*var); m_context.registerImmutableVariable(*var);
auto invertedSourceIndicies = invertMap(m_context.sourceIndices());
string useSrcMap = joinHumanReadable(
ranges::views::transform(invertedSourceIndicies, [](auto&& _pair) {
return to_string(_pair.first) + ":" + escapeAndQuoteString(_pair.second);
}),
", "
);
t("useSrcMapCreation", useSrcMap);
t("sourceLocationComment", sourceLocationComment(_contract));
t("CreationObject", IRNames::creationObject(_contract)); t("CreationObject", IRNames::creationObject(_contract));
t("sourceLocationCommentCreation", dispenseLocationComment(_contract));
t("library", _contract.isLibrary()); t("library", _contract.isLibrary());
FunctionDefinition const* constructor = _contract.constructor(); FunctionDefinition const* constructor = _contract.constructor();
@ -211,6 +209,7 @@ string IRGenerator::generate(
// This has to be called only after all other code generation for the creation object is complete. // This has to be called only after all other code generation for the creation object is complete.
bool creationInvolvesAssembly = m_context.inlineAssemblySeen(); bool creationInvolvesAssembly = m_context.inlineAssemblySeen();
t("memoryInitCreation", memoryInit(!creationInvolvesAssembly)); t("memoryInitCreation", memoryInit(!creationInvolvesAssembly));
t("useSrcMapCreation", formatUseSrcMap(m_context));
resetContext(_contract, ExecutionContext::Deployed); resetContext(_contract, ExecutionContext::Deployed);
@ -220,8 +219,8 @@ string IRGenerator::generate(
m_context.initializeInternalDispatch(move(internalDispatchMap)); m_context.initializeInternalDispatch(move(internalDispatchMap));
// Do not register immutables to avoid assignment. // Do not register immutables to avoid assignment.
t("useSrcMapDeployed", useSrcMap);
t("DeployedObject", IRNames::deployedObject(_contract)); t("DeployedObject", IRNames::deployedObject(_contract));
t("sourceLocationCommentDeployed", dispenseLocationComment(_contract));
t("library_address", IRNames::libraryAddressImmutable()); t("library_address", IRNames::libraryAddressImmutable());
t("dispatch", dispatchRoutine(_contract)); t("dispatch", dispatchRoutine(_contract));
set<FunctionDefinition const*> deployedFunctionList = generateQueuedFunctions(); set<FunctionDefinition const*> deployedFunctionList = generateQueuedFunctions();
@ -231,6 +230,7 @@ string IRGenerator::generate(
t("metadataName", yul::Object::metadataName()); t("metadataName", yul::Object::metadataName());
t("cborMetadata", toHex(_cborMetadata)); t("cborMetadata", toHex(_cborMetadata));
t("useSrcMapDeployed", formatUseSrcMap(m_context));
// This has to be called only after all other code generation for the deployed object is complete. // This has to be called only after all other code generation for the deployed object is complete.
bool deployedInvolvesAssembly = m_context.inlineAssemblySeen(); bool deployedInvolvesAssembly = m_context.inlineAssemblySeen();
@ -294,7 +294,7 @@ InternalDispatchMap IRGenerator::generateInternalDispatchFunctions(ContractDefin
} }
<sourceLocationComment> <sourceLocationComment>
)"); )");
templ("sourceLocationComment", sourceLocationComment(_contract)); templ("sourceLocationComment", dispenseLocationComment(_contract));
templ("functionName", funName); templ("functionName", funName);
templ("panic", m_utils.panicFunction(PanicCode::InvalidInternalFunction)); templ("panic", m_utils.panicFunction(PanicCode::InvalidInternalFunction));
templ("in", suffixedVariableNameList("in_", 0, arity.in)); templ("in", suffixedVariableNameList("in_", 0, arity.in));
@ -347,10 +347,10 @@ string IRGenerator::generateFunction(FunctionDefinition const& _function)
<contractSourceLocationComment> <contractSourceLocationComment>
)"); )");
t("sourceLocationComment", sourceLocationComment(_function)); t("sourceLocationComment", dispenseLocationComment(_function));
t( t(
"contractSourceLocationComment", "contractSourceLocationComment",
sourceLocationComment(m_context.mostDerivedContract()) dispenseLocationComment(m_context.mostDerivedContract())
); );
t("functionName", functionName); t("functionName", functionName);
@ -436,10 +436,10 @@ string IRGenerator::generateModifier(
_modifierInvocation.name().annotation().referencedDeclaration _modifierInvocation.name().annotation().referencedDeclaration
); );
solAssert(modifier, ""); solAssert(modifier, "");
t("sourceLocationComment", sourceLocationComment(*modifier)); t("sourceLocationComment", dispenseLocationComment(*modifier));
t( t(
"contractSourceLocationComment", "contractSourceLocationComment",
sourceLocationComment(m_context.mostDerivedContract()) dispenseLocationComment(m_context.mostDerivedContract())
); );
switch (*_modifierInvocation.name().annotation().requiredLookup) switch (*_modifierInvocation.name().annotation().requiredLookup)
@ -499,10 +499,10 @@ string IRGenerator::generateFunctionWithModifierInner(FunctionDefinition const&
} }
<contractSourceLocationComment> <contractSourceLocationComment>
)"); )");
t("sourceLocationComment", sourceLocationComment(_function)); t("sourceLocationComment", dispenseLocationComment(_function));
t( t(
"contractSourceLocationComment", "contractSourceLocationComment",
sourceLocationComment(m_context.mostDerivedContract()) dispenseLocationComment(m_context.mostDerivedContract())
); );
t("functionName", functionName); t("functionName", functionName);
vector<string> retParams; vector<string> retParams;
@ -547,10 +547,10 @@ string IRGenerator::generateGetter(VariableDeclaration const& _varDecl)
} }
<contractSourceLocationComment> <contractSourceLocationComment>
)") )")
("sourceLocationComment", sourceLocationComment(_varDecl)) ("sourceLocationComment", dispenseLocationComment(_varDecl))
( (
"contractSourceLocationComment", "contractSourceLocationComment",
sourceLocationComment(m_context.mostDerivedContract()) dispenseLocationComment(m_context.mostDerivedContract())
) )
("functionName", functionName) ("functionName", functionName)
("id", to_string(_varDecl.id())) ("id", to_string(_varDecl.id()))
@ -566,10 +566,10 @@ string IRGenerator::generateGetter(VariableDeclaration const& _varDecl)
} }
<contractSourceLocationComment> <contractSourceLocationComment>
)") )")
("sourceLocationComment", sourceLocationComment(_varDecl)) ("sourceLocationComment", dispenseLocationComment(_varDecl))
( (
"contractSourceLocationComment", "contractSourceLocationComment",
sourceLocationComment(m_context.mostDerivedContract()) dispenseLocationComment(m_context.mostDerivedContract())
) )
("functionName", functionName) ("functionName", functionName)
("constantValueFunction", IRGeneratorForStatements(m_context, m_utils).constantValueFunction(_varDecl)) ("constantValueFunction", IRGeneratorForStatements(m_context, m_utils).constantValueFunction(_varDecl))
@ -692,10 +692,10 @@ string IRGenerator::generateGetter(VariableDeclaration const& _varDecl)
("params", joinHumanReadable(parameters)) ("params", joinHumanReadable(parameters))
("retVariables", joinHumanReadable(returnVariables)) ("retVariables", joinHumanReadable(returnVariables))
("code", std::move(code)) ("code", std::move(code))
("sourceLocationComment", sourceLocationComment(_varDecl)) ("sourceLocationComment", dispenseLocationComment(_varDecl))
( (
"contractSourceLocationComment", "contractSourceLocationComment",
sourceLocationComment(m_context.mostDerivedContract()) dispenseLocationComment(m_context.mostDerivedContract())
) )
.render(); .render();
}); });
@ -818,14 +818,14 @@ void IRGenerator::generateConstructors(ContractDefinition const& _contract)
for (ASTPointer<VariableDeclaration> const& varDecl: contract->constructor()->parameters()) for (ASTPointer<VariableDeclaration> const& varDecl: contract->constructor()->parameters())
params += m_context.addLocalVariable(*varDecl).stackSlots(); params += m_context.addLocalVariable(*varDecl).stackSlots();
t("sourceLocationComment", sourceLocationComment( t("sourceLocationComment", dispenseLocationComment(
contract->constructor() ? contract->constructor() ?
dynamic_cast<ASTNode const&>(*contract->constructor()) : dynamic_cast<ASTNode const&>(*contract->constructor()) :
dynamic_cast<ASTNode const&>(*contract) dynamic_cast<ASTNode const&>(*contract)
)); ));
t( t(
"contractSourceLocationComment", "contractSourceLocationComment",
sourceLocationComment(m_context.mostDerivedContract()) dispenseLocationComment(m_context.mostDerivedContract())
); );
t("params", joinHumanReadable(params)); t("params", joinHumanReadable(params));
@ -1073,7 +1073,7 @@ void IRGenerator::resetContext(ContractDefinition const& _contract, ExecutionCon
m_context.addStateVariable(*get<0>(var), get<1>(var), get<2>(var)); m_context.addStateVariable(*get<0>(var), get<1>(var), get<2>(var));
} }
string IRGenerator::sourceLocationComment(ASTNode const& _node) const string IRGenerator::dispenseLocationComment(ASTNode const& _node)
{ {
return ::sourceLocationComment(_node, m_context); return ::dispenseLocationComment(_node, m_context);
} }

View File

@ -119,7 +119,7 @@ private:
void resetContext(ContractDefinition const& _contract, ExecutionContext _context); void resetContext(ContractDefinition const& _contract, ExecutionContext _context);
std::string sourceLocationComment(ASTNode const& _node) const; std::string dispenseLocationComment(ASTNode const& _node);
langutil::EVMVersion const m_evmVersion; langutil::EVMVersion const m_evmVersion;
OptimiserSettings const m_optimiserSettings; OptimiserSettings const m_optimiserSettings;

View File

@ -217,7 +217,7 @@ std::ostringstream& IRGeneratorForStatementsBase::appendCode(bool _addLocationCo
m_currentLocation.isValid() && m_currentLocation.isValid() &&
m_lastLocation != m_currentLocation m_lastLocation != m_currentLocation
) )
m_code << sourceLocationComment(m_currentLocation, m_context) << "\n"; m_code << dispenseLocationComment(m_currentLocation, m_context) << "\n";
m_lastLocation = m_currentLocation; m_lastLocation = m_currentLocation;
@ -340,7 +340,7 @@ string IRGeneratorForStatements::constantValueFunction(VariableDeclaration const
<ret> := <value> <ret> := <value>
} }
)"); )");
templ("sourceLocationComment", sourceLocationComment(_constant, m_context)); templ("sourceLocationComment", dispenseLocationComment(_constant, m_context));
templ("functionName", functionName); templ("functionName", functionName);
IRGeneratorForStatements generator(m_context, m_utils); IRGeneratorForStatements generator(m_context, m_utils);
solAssert(_constant.value(), ""); solAssert(_constant.value(), "");

View File

@ -6,7 +6,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"constant_optimizer_yul/input.sol", 1:"#utility.yul" /// @use-src 0:"constant_optimizer_yul/input.sol"
object "C_12" { object "C_12" {
code { code {
{ {
@ -21,7 +21,7 @@ object "C_12" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"constant_optimizer_yul/input.sol", 1:"#utility.yul" /// @use-src 0:"constant_optimizer_yul/input.sol"
object "C_12_deployed" { object "C_12_deployed" {
code { code {
{ {

View File

@ -7,7 +7,7 @@ IR:
*=====================================================*/ *=====================================================*/
/// @use-src 0:"exp_base_literal/input.sol", 1:"#utility.yul" /// @use-src 0:"exp_base_literal/input.sol"
object "C_81" { object "C_81" {
code { code {
/// @src 0:82:370 /// @src 0:82:370
@ -38,7 +38,7 @@ object "C_81" {
} }
} }
/// @use-src 0:"exp_base_literal/input.sol", 1:"#utility.yul" /// @use-src 0:"exp_base_literal/input.sol"
object "C_81_deployed" { object "C_81_deployed" {
code { code {
/// @src 0:82:370 /// @src 0:82:370

View File

@ -6,7 +6,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol"
object "C_7" { object "C_7" {
code { code {
{ {
@ -18,7 +18,7 @@ object "C_7" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol"
object "C_7_deployed" { object "C_7_deployed" {
code { code {
{ {
@ -39,7 +39,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol"
object "D_10" { object "D_10" {
code { code {
{ {
@ -51,7 +51,7 @@ object "D_10" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol"
object "D_10_deployed" { object "D_10_deployed" {
code { code {
{ {

View File

@ -6,7 +6,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"ir_compiler_subobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_compiler_subobjects/input.sol"
object "C_3" { object "C_3" {
code { code {
{ {
@ -18,7 +18,7 @@ object "C_3" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"ir_compiler_subobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_compiler_subobjects/input.sol"
object "C_3_deployed" { object "C_3_deployed" {
code { code {
{ {
@ -39,7 +39,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"ir_compiler_subobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_compiler_subobjects/input.sol"
object "D_16" { object "D_16" {
code { code {
{ {
@ -51,7 +51,7 @@ object "D_16" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"ir_compiler_subobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_compiler_subobjects/input.sol"
object "D_16_deployed" { object "D_16_deployed" {
code { code {
{ {
@ -90,7 +90,7 @@ object "D_16" {
revert(0, 0) revert(0, 0)
} }
} }
/// @use-src 0:"ir_compiler_subobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_compiler_subobjects/input.sol"
object "C_3" { object "C_3" {
code { code {
{ {
@ -102,7 +102,7 @@ object "D_16" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"ir_compiler_subobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_compiler_subobjects/input.sol"
object "C_3_deployed" { object "C_3_deployed" {
code { code {
{ {

View File

@ -6,7 +6,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"ir_with_assembly_no_memoryguard_creation/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_with_assembly_no_memoryguard_creation/input.sol"
object "D_12" { object "D_12" {
code { code {
{ {
@ -18,7 +18,7 @@ object "D_12" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"ir_with_assembly_no_memoryguard_creation/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_with_assembly_no_memoryguard_creation/input.sol"
object "D_12_deployed" { object "D_12_deployed" {
code { code {
{ {

View File

@ -6,7 +6,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"ir_with_assembly_no_memoryguard_runtime/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_with_assembly_no_memoryguard_runtime/input.sol"
object "D_8" { object "D_8" {
code { code {
{ {
@ -18,7 +18,7 @@ object "D_8" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"ir_with_assembly_no_memoryguard_runtime/input.sol", 1:"#utility.yul" /// @use-src 0:"ir_with_assembly_no_memoryguard_runtime/input.sol"
object "D_8_deployed" { object "D_8_deployed" {
code { code {
{ {

View File

@ -6,7 +6,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"keccak_optimization_deploy_code/input.sol", 1:"#utility.yul" /// @use-src 0:"keccak_optimization_deploy_code/input.sol"
object "C_12" { object "C_12" {
code { code {
{ {
@ -22,7 +22,7 @@ object "C_12" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"keccak_optimization_deploy_code/input.sol", 1:"#utility.yul" /// @use-src 0:"keccak_optimization_deploy_code/input.sol"
object "C_12_deployed" { object "C_12_deployed" {
code { code {
{ {

View File

@ -6,7 +6,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"keccak_optimization_low_runs/input.sol", 1:"#utility.yul" /// @use-src 0:"keccak_optimization_low_runs/input.sol"
object "C_7" { object "C_7" {
code { code {
{ {
@ -18,7 +18,7 @@ object "C_7" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"keccak_optimization_low_runs/input.sol", 1:"#utility.yul" /// @use-src 0:"keccak_optimization_low_runs/input.sol"
object "C_7_deployed" { object "C_7_deployed" {
code { code {
{ {

View File

@ -6,7 +6,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"name_simplifier/input.sol", 1:"#utility.yul" /// @use-src 0:"name_simplifier/input.sol"
object "C_59" { object "C_59" {
code { code {
{ {
@ -18,7 +18,7 @@ object "C_59" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"name_simplifier/input.sol", 1:"#utility.yul" /// @use-src 0:"name_simplifier/input.sol"
object "C_59_deployed" { object "C_59_deployed" {
code { code {
{ {

View File

@ -6,7 +6,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"optimizer_array_sload/input.sol", 1:"#utility.yul" /// @use-src 0:"optimizer_array_sload/input.sol"
object "Arraysum_34" { object "Arraysum_34" {
code { code {
{ {
@ -18,7 +18,7 @@ object "Arraysum_34" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"optimizer_array_sload/input.sol", 1:"#utility.yul" /// @use-src 0:"optimizer_array_sload/input.sol"
object "Arraysum_34_deployed" { object "Arraysum_34_deployed" {
code { code {
{ {

View File

@ -7,7 +7,7 @@ IR:
*=====================================================*/ *=====================================================*/
/// @use-src 0:"revert_strings/input.sol", 1:"#utility.yul" /// @use-src 0:"revert_strings/input.sol"
object "C_15" { object "C_15" {
code { code {
/// @src 0:59:147 /// @src 0:59:147
@ -53,7 +53,7 @@ object "C_15" {
} }
} }
/// @use-src 0:"revert_strings/input.sol", 1:"#utility.yul" /// @use-src 0:"revert_strings/input.sol"
object "C_15_deployed" { object "C_15_deployed" {
code { code {
/// @src 0:59:147 /// @src 0:59:147

View File

@ -5,7 +5,7 @@
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_7\" { object \"C_7\" {
code { code {
/// @src 0:79:121 /// @src 0:79:121
@ -25,7 +25,7 @@ object \"C_7\" {
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb()
{ revert(0, 0) } { revert(0, 0) }
} }
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_7_deployed\" { object \"C_7_deployed\" {
code { code {
/// @src 0:79:121 /// @src 0:79:121

View File

@ -6,7 +6,7 @@
*=====================================================*/ *=====================================================*/
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_7\" { object \"C_7\" {
code { code {
/// @src 0:79:121 /// @src 0:79:121
@ -37,7 +37,7 @@ object \"C_7\" {
} }
} }
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_7_deployed\" { object \"C_7_deployed\" {
code { code {
/// @src 0:79:121 /// @src 0:79:121

View File

@ -6,7 +6,7 @@
*=====================================================*/ *=====================================================*/
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_3\" { object \"C_3\" {
code { code {
/// @src 0:79:92 /// @src 0:79:92
@ -37,7 +37,7 @@ object \"C_3\" {
} }
} }
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_3_deployed\" { object \"C_3_deployed\" {
code { code {
/// @src 0:79:92 /// @src 0:79:92
@ -83,7 +83,7 @@ object \"C_3\" {
*=====================================================*/ *=====================================================*/
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"D_16\" { object \"D_16\" {
code { code {
/// @src 0:93:146 /// @src 0:93:146
@ -114,7 +114,7 @@ object \"D_16\" {
} }
} }
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"D_16_deployed\" { object \"D_16_deployed\" {
code { code {
/// @src 0:93:146 /// @src 0:93:146
@ -215,7 +215,7 @@ object \"D_16\" {
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_3\" { object \"C_3\" {
code { code {
/// @src 0:79:92 /// @src 0:79:92
@ -246,7 +246,7 @@ object \"D_16\" {
} }
} }
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_3_deployed\" { object \"C_3_deployed\" {
code { code {
/// @src 0:79:92 /// @src 0:79:92

View File

@ -7,7 +7,7 @@ IR:
*=====================================================*/ *=====================================================*/
/// @use-src 0:"viair_abicoder_v1/input.sol", 1:"#utility.yul" /// @use-src 0:"viair_abicoder_v1/input.sol"
object "test_11" { object "test_11" {
code { code {
/// @src 0:79:169 /// @src 0:79:169
@ -38,7 +38,7 @@ object "test_11" {
} }
} }
/// @use-src 0:"viair_abicoder_v1/input.sol", 1:"#utility.yul" /// @use-src 0:"viair_abicoder_v1/input.sol"
object "test_11_deployed" { object "test_11_deployed" {
code { code {
/// @src 0:79:169 /// @src 0:79:169

View File

@ -12,7 +12,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"viair_subobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"viair_subobjects/input.sol"
object "C_3" { object "C_3" {
code { code {
{ {
@ -24,7 +24,7 @@ object "C_3" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"viair_subobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"viair_subobjects/input.sol"
object "C_3_deployed" { object "C_3_deployed" {
code { code {
{ {
@ -51,7 +51,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"viair_subobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"viair_subobjects/input.sol"
object "D_16" { object "D_16" {
code { code {
{ {
@ -63,7 +63,7 @@ object "D_16" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"viair_subobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"viair_subobjects/input.sol"
object "D_16_deployed" { object "D_16_deployed" {
code { code {
{ {
@ -102,7 +102,7 @@ object "D_16" {
revert(0, 0) revert(0, 0)
} }
} }
/// @use-src 0:"viair_subobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"viair_subobjects/input.sol"
object "C_3" { object "C_3" {
code { code {
{ {
@ -114,7 +114,7 @@ object "D_16" {
return(128, _1) return(128, _1)
} }
} }
/// @use-src 0:"viair_subobjects/input.sol", 1:"#utility.yul" /// @use-src 0:"viair_subobjects/input.sol"
object "C_3_deployed" { object "C_3_deployed" {
code { code {
{ {

View File

@ -6,7 +6,7 @@ Optimized IR:
* !USE AT YOUR OWN RISK! * * !USE AT YOUR OWN RISK! *
*=====================================================*/ *=====================================================*/
/// @use-src 0:"yul_optimizer_steps/input.sol", 1:"#utility.yul" /// @use-src 0:"yul_optimizer_steps/input.sol"
object "C_7" { object "C_7" {
code { code {
{ {
@ -25,7 +25,7 @@ object "C_7" {
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb()
{ revert(0, 0) } { revert(0, 0) }
} }
/// @use-src 0:"yul_optimizer_steps/input.sol", 1:"#utility.yul" /// @use-src 0:"yul_optimizer_steps/input.sol"
object "C_7_deployed" { object "C_7_deployed" {
code { code {
{ {

View File

@ -6,7 +6,7 @@
*=====================================================*/ *=====================================================*/
/// @use-src 0:\"C\", 1:\"D\", 2:\"#utility.yul\" /// @use-src 0:\"C\"
object \"C_54\" { object \"C_54\" {
code { code {
/// @src 0:79:428 /// @src 0:79:428
@ -156,7 +156,7 @@ object \"C_54\" {
} }
} }
/// @use-src 0:\"C\", 1:\"D\", 2:\"#utility.yul\" /// @use-src 0:\"C\"
object \"C_54_deployed\" { object \"C_54_deployed\" {
code { code {
/// @src 0:79:428 /// @src 0:79:428
@ -564,7 +564,7 @@ object \"C_54\" {
*=====================================================*/ *=====================================================*/
/// @use-src 0:\"C\", 1:\"D\", 2:\"#utility.yul\" /// @use-src 0:\"C\", 1:\"D\"
object \"D_72\" { object \"D_72\" {
code { code {
/// @src 1:91:166 /// @src 1:91:166
@ -781,7 +781,7 @@ object \"D_72\" {
} }
} }
/// @use-src 0:\"C\", 1:\"D\", 2:\"#utility.yul\" /// @use-src 0:\"C\", 1:\"D\"
object \"D_72_deployed\" { object \"D_72_deployed\" {
code { code {
/// @src 1:91:166 /// @src 1:91:166

View File

@ -6,7 +6,7 @@
*=====================================================*/ *=====================================================*/
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_11\" { object \"C_11\" {
code { code {
/// @src 0:78:164 /// @src 0:78:164
@ -37,7 +37,7 @@ object \"C_11\" {
} }
} }
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_11_deployed\" { object \"C_11_deployed\" {
code { code {
/// @src 0:78:164 /// @src 0:78:164

View File

@ -6,7 +6,7 @@
*=====================================================*/ *=====================================================*/
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_11\" { object \"C_11\" {
code { code {
/// @src 0:78:158 /// @src 0:78:158
@ -37,7 +37,7 @@ object \"C_11\" {
} }
} }
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_11_deployed\" { object \"C_11_deployed\" {
code { code {
/// @src 0:78:158 /// @src 0:78:158

View File

@ -6,7 +6,7 @@
*=====================================================*/ *=====================================================*/
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_11\" { object \"C_11\" {
code { code {
/// @src 0:78:159 /// @src 0:78:159
@ -37,7 +37,7 @@ object \"C_11\" {
} }
} }
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_11_deployed\" { object \"C_11_deployed\" {
code { code {
/// @src 0:78:159 /// @src 0:78:159

View File

@ -6,7 +6,7 @@
*=====================================================*/ *=====================================================*/
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_11\" { object \"C_11\" {
code { code {
/// @src 0:78:243 /// @src 0:78:243
@ -37,7 +37,7 @@ object \"C_11\" {
} }
} }
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_11_deployed\" { object \"C_11_deployed\" {
code { code {
/// @src 0:78:243 /// @src 0:78:243

View File

@ -6,7 +6,7 @@
*=====================================================*/ *=====================================================*/
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_11\" { object \"C_11\" {
code { code {
/// @src 0:78:159 /// @src 0:78:159
@ -37,7 +37,7 @@ object \"C_11\" {
} }
} }
/// @use-src 0:\"A\", 1:\"#utility.yul\" /// @use-src 0:\"A\"
object \"C_11_deployed\" { object \"C_11_deployed\" {
code { code {
/// @src 0:78:159 /// @src 0:78:159