RegionDesc::Block::Block(const Func* func, bool resumed, Offset start, int length, FPInvOffset initSpOff, uint16_t inlineLevel) : m_id(s_nextId--) , m_func(func) , m_resumed(resumed) , m_start(start) , m_last(kInvalidOffset) , m_length(length) , m_initialSpOffset(initSpOff) , m_inlinedCallee(nullptr) , m_inlineLevel(inlineLevel) { assertx(length >= 0); if (length > 0) { SrcKey sk(func, start, resumed); for (unsigned i = 1; i < length; ++i) sk.advance(); m_last = sk.offset(); } checkInstructions(); checkMetadata(); }
RegionDesc::Block::Block(const Func* func, Offset start, int length) : m_func(func) , m_start(start) , m_last(kInvalidOffset) , m_length(length) , m_inlinedCallee(nullptr) { assert(length >= 0); if (length > 0) { SrcKey sk(func, start); for (unsigned i = 1; i < length; ++i) sk.advance(); m_last = sk.offset(); } checkInstructions(); checkMetadata(); }
RegionDesc::Block::Block(const Func* func, bool resumed, Offset start, int length, FPInvOffset initSpOff) : m_id(s_nextId.fetch_sub(1, std::memory_order_relaxed)) , m_func(func) , m_resumed(resumed) , m_start(start) , m_last(kInvalidOffset) , m_length(length) , m_initialSpOffset(initSpOff) , m_profTransID(kInvalidTransID) { assertx(length >= 0); if (length > 0) { SrcKey sk(func, start, resumed); for (unsigned i = 1; i < length; ++i) sk.advance(); m_last = sk.offset(); } checkInstructions(); checkMetadata(); }