def analyze_must_defined_regs(
blocks: List[BasicBlock],
cfg: CFG,
initial_defined: Set[Register],
num_regs: int) -> AnalysisResult[Register]:
"""Calculate always defined registers at each CFG location.
A register is defined if it has a value along all paths from the initial location.
"""
return run_analysis(blocks=blocks,
cfg=cfg,
gen_and_kill=MustDefinedVisitor(),
initial=initial_defined,
backward=False,
kind=MUST_ANALYSIS,
universe=set([Register(r) for r in range(num_regs)]))
评论列表
文章目录