Optimized IR: /*=====================================================* * WARNING * * Solidity to Yul compilation is still EXPERIMENTAL * * It can result in LOSS OF FUNDS or worse * * !USE AT YOUR OWN RISK! * *=====================================================*/ /// @use-src 0:"ir_compiler_subobjects/input.sol" object "C_3" { code { { /// @src 0:82:95 "contract C {}" let _1 := memoryguard(0x80) mstore(64, _1) if callvalue() { revert(0, 0) } let _2 := datasize("C_3_deployed") codecopy(_1, dataoffset("C_3_deployed"), _2) return(_1, _2) } } /// @use-src 0:"ir_compiler_subobjects/input.sol" object "C_3_deployed" { code { { /// @src 0:82:95 "contract C {}" mstore(64, memoryguard(0x80)) revert(0, 0) } } data ".metadata" hex"" } } Optimized IR: /*=====================================================* * WARNING * * Solidity to Yul compilation is still EXPERIMENTAL * * It can result in LOSS OF FUNDS or worse * * !USE AT YOUR OWN RISK! * *=====================================================*/ /// @use-src 0:"ir_compiler_subobjects/input.sol" object "D_16" { code { { /// @src 0:96:165 "contract D {..." let _1 := memoryguard(0x80) mstore(64, _1) if callvalue() { revert(0, 0) } let _2 := datasize("D_16_deployed") codecopy(_1, dataoffset("D_16_deployed"), _2) return(_1, _2) } } /// @use-src 0:"ir_compiler_subobjects/input.sol" object "D_16_deployed" { code { { /// @src 0:96:165 "contract D {..." let _1 := memoryguard(0x80) mstore(64, _1) if iszero(lt(calldatasize(), 4)) { let _2 := 0 if eq(0x26121ff0, shr(224, calldataload(_2))) { if callvalue() { revert(_2, _2) } if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) } /// @src 0:149:156 "new C()" let _3 := datasize("C_3") let _4 := add(_1, _3) if or(gt(_4, 0xffffffffffffffff), lt(_4, _1)) { /// @src 0:96:165 "contract D {..." mstore(_2, shl(224, 0x4e487b71)) mstore(4, 0x41) revert(_2, 0x24) } /// @src 0:149:156 "new C()" datacopy(_1, dataoffset("C_3"), _3) if iszero(create(/** @src 0:96:165 "contract D {..." */ _2, /** @src 0:149:156 "new C()" */ _1, sub(_4, _1))) { /// @src 0:96:165 "contract D {..." let pos := mload(64) returndatacopy(pos, _2, returndatasize()) revert(pos, returndatasize()) } return(mload(64), _2) } } revert(0, 0) } } /// @use-src 0:"ir_compiler_subobjects/input.sol" object "C_3" { code { { /// @src 0:82:95 "contract C {}" let _1 := memoryguard(0x80) mstore(64, _1) if callvalue() { revert(0, 0) } let _2 := datasize("C_3_deployed") codecopy(_1, dataoffset("C_3_deployed"), _2) return(_1, _2) } } /// @use-src 0:"ir_compiler_subobjects/input.sol" object "C_3_deployed" { code { { /// @src 0:82:95 "contract C {}" mstore(64, memoryguard(0x80)) revert(0, 0) } } data ".metadata" hex"" } } data ".metadata" hex"" } }