Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
d711c300
R
Rust
项目概览
int
/
Rust
接近 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d711c300
编写于
12月 09, 2020
作者:
T
Tomasz Miąsko
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove `first_merge` from liveness debug logs
上级
1700ca07
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
6 addition
and
18 deletion
+6
-18
compiler/rustc_passes/src/liveness.rs
compiler/rustc_passes/src/liveness.rs
+6
-18
未找到文件。
compiler/rustc_passes/src/liveness.rs
浏览文件 @
d711c300
...
...
@@ -781,19 +781,13 @@ fn init_from_succ(&mut self, ln: LiveNode, succ_ln: LiveNode) {
debug!
(
"init_from_succ(ln={}, succ={})"
,
self
.ln_str
(
ln
),
self
.ln_str
(
succ_ln
));
}
fn
merge_from_succ
(
&
mut
self
,
ln
:
LiveNode
,
succ_ln
:
LiveNode
,
first_merge
:
bool
)
->
bool
{
fn
merge_from_succ
(
&
mut
self
,
ln
:
LiveNode
,
succ_ln
:
LiveNode
)
->
bool
{
if
ln
==
succ_ln
{
return
false
;
}
let
changed
=
self
.rwu_table
.union
(
ln
,
succ_ln
);
debug!
(
"merge_from_succ(ln={:?}, succ={}, first_merge={}, changed={})"
,
ln
,
self
.ln_str
(
succ_ln
),
first_merge
,
changed
);
debug!
(
"merge_from_succ(ln={:?}, succ={}, changed={})"
,
ln
,
self
.ln_str
(
succ_ln
),
changed
);
changed
}
...
...
@@ -893,7 +887,6 @@ fn compute(&mut self, body: &hir::Body<'_>, hir_id: HirId) -> LiveNode {
};
// Propagate through calls to the closure.
let
mut
first_merge
=
true
;
loop
{
self
.init_from_succ
(
self
.closure_ln
,
succ
);
for
param
in
body
.params
{
...
...
@@ -903,10 +896,9 @@ fn compute(&mut self, body: &hir::Body<'_>, hir_id: HirId) -> LiveNode {
})
}
if
!
self
.merge_from_succ
(
self
.exit_ln
,
self
.closure_ln
,
first_merge
)
{
if
!
self
.merge_from_succ
(
self
.exit_ln
,
self
.closure_ln
)
{
break
;
}
first_merge
=
false
;
assert_eq!
(
succ
,
self
.propagate_through_expr
(
&
body
.value
,
self
.exit_ln
));
}
...
...
@@ -1012,7 +1004,6 @@ fn propagate_through_expr(&mut self, expr: &Expr<'_>, succ: LiveNode) -> LiveNod
//
let
ln
=
self
.live_node
(
expr
.hir_id
,
expr
.span
);
self
.init_empty
(
ln
,
succ
);
let
mut
first_merge
=
true
;
for
arm
in
arms
{
let
body_succ
=
self
.propagate_through_expr
(
&
arm
.body
,
succ
);
...
...
@@ -1021,8 +1012,7 @@ fn propagate_through_expr(&mut self, expr: &Expr<'_>, succ: LiveNode) -> LiveNod
body_succ
,
);
let
arm_succ
=
self
.define_bindings_in_pat
(
&
arm
.pat
,
guard_succ
);
self
.merge_from_succ
(
ln
,
arm_succ
,
first_merge
);
first_merge
=
false
;
self
.merge_from_succ
(
ln
,
arm_succ
);
}
self
.propagate_through_expr
(
&
e
,
ln
)
}
...
...
@@ -1133,7 +1123,7 @@ fn propagate_through_expr(&mut self, expr: &Expr<'_>, succ: LiveNode) -> LiveNod
let
ln
=
self
.live_node
(
expr
.hir_id
,
expr
.span
);
self
.init_from_succ
(
ln
,
succ
);
self
.merge_from_succ
(
ln
,
r_succ
,
false
);
self
.merge_from_succ
(
ln
,
r_succ
);
self
.propagate_through_expr
(
&
l
,
ln
)
}
...
...
@@ -1377,7 +1367,6 @@ fn propagate_through_loop(
*/
// first iteration:
let
mut
first_merge
=
true
;
let
ln
=
self
.live_node
(
expr
.hir_id
,
expr
.span
);
self
.init_empty
(
ln
,
succ
);
debug!
(
"propagate_through_loop: using id for loop body {} {:?}"
,
expr
.hir_id
,
body
);
...
...
@@ -1389,8 +1378,7 @@ fn propagate_through_loop(
let
body_ln
=
self
.propagate_through_block
(
body
,
ln
);
// repeat until fixed point is reached:
while
self
.merge_from_succ
(
ln
,
body_ln
,
first_merge
)
{
first_merge
=
false
;
while
self
.merge_from_succ
(
ln
,
body_ln
)
{
assert_eq!
(
body_ln
,
self
.propagate_through_block
(
body
,
ln
));
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录