58 void process(
const std::vector<IR::Block>& pages,
const std::vector<std::string>& symbols,
const std::vector<ValTableElem>& values,
IR::label_t last_label);
65 [[nodiscard]]
const std::vector<IR::Block>& intermediateRepresentation()
const noexcept;
68 std::vector<IR::Block>
m_ir;
89 [[nodiscard]]
static bool canBeInlined(
const IR::Block& candidate,
const IR::Block& source, std::size_t argc)
noexcept;
101 [[nodiscard]] std::optional<BlockInfo> blockToInlineInCall(
CallKind kind,
const std::vector<IR::Block>& pages, std::optional<uint16_t> maybe_id,
const IR::Block& current, std::size_t argc)
const noexcept;
109 [[nodiscard]]
static std::optional<IR::Entity> isBuiltinProxy(
const IR::Block& block);
124 void extractPagesMetadata(
const std::vector<IR::Block>& pages);
133 [[nodiscard]] std::optional<BlockInfo> findBlockBy(
CallKind kind, uint16_t
id)
const noexcept;