@@ -1321,29 +1321,26 @@ struct CallData : IRExtraData {
13211321
13221322struct CallFuncEntryData : IRExtraData {
13231323 explicit CallFuncEntryData (const SrcKey& target,
1324- IRSPRelOffset spOffset,
13251324 uint32_t numInitArgs,
13261325 uint32_t arFlags,
13271326 bool formingRegion)
13281327 : target(target)
1329- , spOffset(spOffset)
13301328 , numInitArgs(numInitArgs)
13311329 , arFlags(arFlags)
13321330 , formingRegion(formingRegion)
13331331 {}
13341332
13351333 std::string show () const {
13361334 return folly::sformat (
1337- " {}, IRSP {}, numInitArgs {}, arFlags {}{}" ,
1338- showShort (target), spOffset. offset , numInitArgs, arFlags,
1335+ " {}, numInitArgs {}, arFlags {}{}" ,
1336+ showShort (target), numInitArgs, arFlags,
13391337 formingRegion ? " ,formingRegion" :" "
13401338 );
13411339 }
13421340
13431341 size_t stableHash () const {
13441342 return folly::hash::hash_combine (
13451343 SrcKey::StableHasher ()(target),
1346- std::hash<int32_t >()(spOffset.offset ),
13471344 std::hash<uint32_t >()(numInitArgs),
13481345 std::hash<uint32_t >()(arFlags),
13491346 std::hash<bool >()(formingRegion)
@@ -1352,7 +1349,6 @@ struct CallFuncEntryData : IRExtraData {
13521349
13531350 bool equals (const CallFuncEntryData& o) const {
13541351 return target == o.target &&
1355- spOffset == o.spOffset &&
13561352 numInitArgs == o.numInitArgs &&
13571353 arFlags == o.arFlags &&
13581354 formingRegion == o.formingRegion ;
@@ -1362,12 +1358,7 @@ struct CallFuncEntryData : IRExtraData {
13621358 return arFlags & (1 << ActRec::AsyncEagerRet);
13631359 }
13641360
1365- void updateStackOffsets (int32_t delta) {
1366- spOffset.offset += delta;
1367- }
1368-
13691361 SrcKey target;
1370- IRSPRelOffset spOffset;
13711362 uint32_t numInitArgs;
13721363 uint32_t arFlags;
13731364 bool formingRegion;
@@ -3054,6 +3045,40 @@ struct LdClsFallbackData : IRExtraData {
30543045 LdClsFallback fallback;
30553046};
30563047
3048+ struct EnterInlineFrameData : IRExtraData {
3049+ EnterInlineFrameData (bool copy, uint32_t numInitArgs)
3050+ : copy(copy)
3051+ , numInitArgs(numInitArgs)
3052+ {}
3053+
3054+ static EnterInlineFrameData Copy (uint32_t numInitArgs) {
3055+ return EnterInlineFrameData {true , numInitArgs};
3056+ }
3057+
3058+ static EnterInlineFrameData NoCopy () {
3059+ return EnterInlineFrameData {false , 0 };
3060+ }
3061+
3062+ std::string show () const {
3063+ return folly::to<std::string>(copy ? " copy, " : " " ,
3064+ " numInitArgs " , numInitArgs);
3065+ }
3066+ size_t hash () const {
3067+ return folly::hash::hash_combine (
3068+ copy ? 1 : 0 ,
3069+ std::hash<uint32_t >()(numInitArgs)
3070+ );
3071+ }
3072+ size_t stableHash () const { return hash (); }
3073+
3074+ bool equals (const EnterInlineFrameData& o) const {
3075+ return copy == o.copy && numInitArgs == o.numInitArgs ;
3076+ }
3077+
3078+ bool copy;
3079+ uint32_t numInitArgs;
3080+ };
3081+
30573082// ////////////////////////////////////////////////////////////////////
30583083
30593084#define X (op, data ) \
@@ -3134,6 +3159,7 @@ X(CallBuiltin, CallBuiltinData);
31343159X (CallFuncEntry, CallFuncEntryData);
31353160X (InlineSideExit, InlineSideExitData);
31363161X (InlineSideExitSyncStack, StackRange);
3162+ X (EnterInlineFrame, EnterInlineFrameData);
31373163X (RetCtrl, RetCtrlData);
31383164X (AsyncFuncRet, IRSPRelOffsetData);
31393165X (AsyncFuncRetSlow, IRSPRelOffsetData);
0 commit comments