Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
01198792
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,发现更多精彩内容 >>
提交
01198792
编写于
10月 22, 2021
作者:
B
bors
浏览文件
操作
浏览文件
下载
差异文件
Auto merge of #89893 - camsteffen:redundant-dump-enabled, r=matthewjasper
Remove redundant dump_enabled check
上级
45b600c8
7166df4b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
8 addition
and
29 deletion
+8
-29
compiler/rustc_middle/src/mir/pretty.rs
compiler/rustc_middle/src/mir/pretty.rs
+1
-0
compiler/rustc_mir_transform/src/dump_mir.rs
compiler/rustc_mir_transform/src/dump_mir.rs
+1
-25
compiler/rustc_mir_transform/src/lib.rs
compiler/rustc_mir_transform/src/lib.rs
+6
-4
未找到文件。
compiler/rustc_middle/src/mir/pretty.rs
浏览文件 @
01198792
...
...
@@ -71,6 +71,7 @@ pub enum PassWhere {
/// or `typeck` appears in the name.
/// - `foo & nll | bar & typeck` == match if `foo` and `nll` both appear in the name
/// or `typeck` and `bar` both appear in the name.
#[inline]
pub
fn
dump_mir
<
'tcx
,
F
>
(
tcx
:
TyCtxt
<
'tcx
>
,
pass_num
:
Option
<&
dyn
Display
>
,
...
...
compiler/rustc_mir_transform/src/dump_mir.rs
浏览文件 @
01198792
//! This pass just dumps MIR at a specified point.
use
std
::
borrow
::
Cow
;
use
std
::
fmt
;
use
std
::
fs
::
File
;
use
std
::
io
;
use
crate
::
MirPass
;
use
rustc_middle
::
mir
::
write_mir_pretty
;
use
rustc_middle
::
mir
::
Body
;
use
rustc_middle
::
mir
::{
dump_enabled
,
dump_mir
,
write_mir_pretty
};
use
rustc_middle
::
ty
::
TyCtxt
;
use
rustc_session
::
config
::{
OutputFilenames
,
OutputType
};
...
...
@@ -21,29 +20,6 @@ fn name(&self) -> Cow<'_, str> {
fn
run_pass
(
&
self
,
_
tcx
:
TyCtxt
<
'tcx
>
,
_
body
:
&
mut
Body
<
'tcx
>
)
{}
}
pub
struct
Disambiguator
{
is_after
:
bool
,
}
impl
fmt
::
Display
for
Disambiguator
{
fn
fmt
(
&
self
,
formatter
:
&
mut
fmt
::
Formatter
<
'_
>
)
->
fmt
::
Result
{
let
title
=
if
self
.is_after
{
"after"
}
else
{
"before"
};
write!
(
formatter
,
"{}"
,
title
)
}
}
pub
fn
on_mir_pass
<
'tcx
>
(
tcx
:
TyCtxt
<
'tcx
>
,
pass_num
:
&
dyn
fmt
::
Display
,
pass_name
:
&
str
,
body
:
&
Body
<
'tcx
>
,
is_after
:
bool
,
)
{
if
dump_enabled
(
tcx
,
pass_name
,
body
.source
.def_id
())
{
dump_mir
(
tcx
,
Some
(
pass_num
),
pass_name
,
&
Disambiguator
{
is_after
},
body
,
|
_
,
_
|
Ok
(()));
}
}
pub
fn
emit_mir
(
tcx
:
TyCtxt
<
'_
>
,
outputs
:
&
OutputFilenames
)
->
io
::
Result
<
()
>
{
let
path
=
outputs
.path
(
OutputType
::
Mir
);
let
mut
f
=
io
::
BufWriter
::
new
(
File
::
create
(
&
path
)
?
);
...
...
compiler/rustc_mir_transform/src/lib.rs
浏览文件 @
01198792
...
...
@@ -28,7 +28,7 @@
use
rustc_hir
::
intravisit
::{
self
,
NestedVisitorMap
,
Visitor
};
use
rustc_index
::
vec
::
IndexVec
;
use
rustc_middle
::
mir
::
visit
::
Visitor
as
_
;
use
rustc_middle
::
mir
::{
traversal
,
Body
,
ConstQualifs
,
MirPhase
,
Promoted
};
use
rustc_middle
::
mir
::{
dump_mir
,
traversal
,
Body
,
ConstQualifs
,
MirPhase
,
Promoted
};
use
rustc_middle
::
ty
::
query
::
Providers
;
use
rustc_middle
::
ty
::{
self
,
TyCtxt
,
TypeFoldable
};
use
rustc_span
::{
Span
,
Symbol
};
...
...
@@ -188,12 +188,14 @@ fn run_passes(
let
mut
index
=
0
;
let
mut
run_pass
=
|
pass
:
&
dyn
MirPass
<
'tcx
>
|
{
let
run_hooks
=
|
body
:
&
_
,
index
,
is_after
|
{
dump_mir
::
on_mir_pass
(
let
disambiguator
=
if
is_after
{
"after"
}
else
{
"before"
};
dump_mir
(
tcx
,
&
format_args!
(
"{:03}-{:03}"
,
phase_index
,
index
),
Some
(
&
format_args!
(
"{:03}-{:03}"
,
phase_index
,
index
)
),
&
pass
.name
(),
&
disambiguator
,
body
,
is_after
,
|
_
,
_
|
Ok
(())
,
);
};
run_hooks
(
body
,
index
,
false
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录