Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
97b30f09
R
Rust
项目概览
int
/
Rust
11 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
97b30f09
编写于
2月 04, 2018
作者:
W
Wesley Wiser
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Replace attr::contains_name(..., "cold")
Part of #47320
上级
4f840a68
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
5 addition
and
5 deletion
+5
-5
src/librustc_mir/transform/inline.rs
src/librustc_mir/transform/inline.rs
+5
-5
未找到文件。
src/librustc_mir/transform/inline.rs
浏览文件 @
97b30f09
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
//! Inlining pass for MIR functions
//! Inlining pass for MIR functions
use
rustc
::
hir
;
use
rustc
::
hir
;
use
rustc
::
hir
::
TransFnAttrFlags
;
use
rustc
::
hir
::
def_id
::
DefId
;
use
rustc
::
hir
::
def_id
::
DefId
;
use
rustc_data_structures
::
bitvec
::
BitVector
;
use
rustc_data_structures
::
bitvec
::
BitVector
;
...
@@ -206,10 +207,9 @@ fn should_inline(&self,
...
@@ -206,10 +207,9 @@ fn should_inline(&self,
return
false
;
return
false
;
}
}
let
attrs
=
tcx
.get_attrs
(
callsite
.callee
);
let
trans_fn_attrs
=
tcx
.trans_fn_attrs
(
callsite
.callee
);
let
hint
=
tcx
.trans_fn_attrs
(
callsite
.callee
)
.inline
;
let
hinted
=
match
hint
{
let
hinted
=
match
trans_fn_attrs
.inline
{
// Just treat inline(always) as a hint for now,
// Just treat inline(always) as a hint for now,
// there are cases that prevent inlining that we
// there are cases that prevent inlining that we
// need to check for first.
// need to check for first.
...
@@ -239,7 +239,7 @@ fn should_inline(&self,
...
@@ -239,7 +239,7 @@ fn should_inline(&self,
};
};
// Significantly lower the threshold for inlining cold functions
// Significantly lower the threshold for inlining cold functions
if
attr
::
contains_name
(
&
attrs
[
..
],
"cold"
)
{
if
trans_fn_attrs
.flags
.contains
(
TransFnAttrFlags
::
COLD
)
{
threshold
/=
5
;
threshold
/=
5
;
}
}
...
@@ -344,7 +344,7 @@ fn should_inline(&self,
...
@@ -344,7 +344,7 @@ fn should_inline(&self,
}
}
}
}
if
let
attr
::
InlineAttr
::
Always
=
hint
{
if
let
attr
::
InlineAttr
::
Always
=
trans_fn_attrs
.inline
{
debug!
(
"INLINING {:?} because inline(always) [cost={}]"
,
callsite
,
cost
);
debug!
(
"INLINING {:?} because inline(always) [cost={}]"
,
callsite
,
cost
);
true
true
}
else
{
}
else
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录