21、逃逸分析与数组存储优化技术解析

逃逸分析与数组存储优化技术解析

逃逸属性 E 的定义与分析

逃逸分析在程序分析中起着重要作用,它会对每个程序点 p 处,从作用域内的某个变量或字段可达对象的创建点集合进行过近似处理。为了更好地理解逃逸分析,我们首先需要定义可达对象的概念。

τ ∈ Typing σ = ⟨φ, µ⟩ ∈ Στ S ⊆ Στ ,在 σ 中可达对象的集合 Oτ(σ) 定义如下:
- O0τ(σ) = ∅
- Oi+1τ(σ) = {µφ(v) | v ∈ dom(τ), φ(v) ∈ Loc} ∪ {µ(o.φ(f)) | o ∈ Oiτ(σ), f ∈ dom(F(o.π)), o.φ(f) ∈ Loc}

同时,我们定义 αEτ (S) = {o.π | σ ∈ S 且 o ∈ Oτ(σ)} ⊆ Π 。需要注意的是,类型为 int 的变量和字段对 αEτ 没有贡献。

例如,在图 3 中, Oτ(⟨φ1, µ1⟩) = {o1, o2} αEτ (⟨φ1, µ1⟩) = {π, π2} ,而 o4 ∉ Oτ(⟨φ1, µ1⟩) ,因为 o4 无法从 φ1 的变量中到达。 </

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值