úÎ!4ú2|-      !"#$%&'()*+,Safe41Xreg-alloc-typespFrom the point of view of this library, a basic block is nothing more than an ordered sequence of operations.reg-alloc-typesxIdentify the block with a unique number. The nature and ordering of the number is not significant, only its uniqueness.reg-alloc-types$The immediate successors of a block. reg-alloc-typesÿyGiven two blocks, insert a new block between them to break up a "critical edge" (where the first block has multiple destinations due to a conditional branch, for example, while the second block has multiple originations due to branches from other blocks). The result is the new pair of blocks at that boundary. Typically, only one of the two will be a newly created block. reg-alloc-types™Return the entry, body, and exit operation of a block. Typically, the entry operation is a "label", and the exit operation is a branch, jump or return. reg-alloc-typesNReplace the set of operations for a block with a set of allocated operations.reg-alloc-typesÔEvery operation may reference multiple variables and/or specific physical registers. If a physical register is referenced, then that register is considered unavailable for allocation over its range of use.åCertain operations have special significance as to how basic blocks are organized and lifetime of allocations. Thus, if an operation begins or ends a loop, or represents a method call, this should be indicated using the  Ò field. Indication of calls is necessary for saving and restoring all registers around a call, while indication of loops is optional, as it merely avoids reloading spilled variables inside loop bodies.reg-alloc-types0Return the kind of operator prior to allocation.reg-alloc-types1Return all variable references for the operation.reg-alloc-typesYCreate move instruction(s) from one register to another, relating to the given variable.reg-alloc-types_Create a spill instruction from the given restriction, to a stack slot for the given variable.reg-alloc-types]Create a load instruction from the stack slot for the given variable, to the given register.reg-alloc-typesÈGiven an operation, and a set of register allocations for each variable used by the operation (differentiated by type of use), apply the allocations to create one or more post-allocation operations.reg-alloc-types6Render the given pre-allocation operation as a string.reg-alloc-types]Each "virtual variable" has details associated with it that affect the allocation procedure.!reg-alloc-typesBIdentify the variable, or if it is an explicit register reference."reg-alloc-typesÿThe kind of a variable determines the scope of its lifetime, and when it is spilled or loaded to or from stack. For example, output variables are not needed in a basic block until the first point of use, while the lifetime of input variables extends until their final use.#reg-alloc-typesSIf true, the variable's value must be loaded into a register at this use position.$    #"!$ #"!   -      !"#$%&'()*+,.reg-alloc-types-0.1.0.0-FNVhEZkrbV9HDhxbTHsiWiRegAlloc.Types UseVerifierVerifyDisabled VerifyEnabledVerifyEnabledStrictPhysReg BlockInfoblockIdblockSuccessorssplitCriticalEdgeblockOps setBlockOpsOpKindIsNormalIsCallIsBranchOpInfoopKindopRefsmoveOpsaveOp restoreOp applyAllocsshowOp1VarKindInput InputOutputTempOutputVarIdVarInfovarIdvarKind regRequired $fEqVarKind $fShowVarKind $fEqOpKind $fShowOpKind $fEqVarInfo $fShowVarInfo$fFunctorOpInfo$fEqUseVerifier$fShowUseVerifier