Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
runtime
提交
e5746e93
R
runtime
项目概览
dotNET Platform
/
runtime
10 个月 前同步成功
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
runtime
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
e5746e93
编写于
5月 30, 2022
作者:
S
SingleAccretion
提交者:
GitHub
5月 30, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Delete dead rationalizer transform (#69958)
Seems to have been a workaround for an issue long gone.
上级
b8acc97a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
0 addition
and
28 deletion
+0
-28
src/coreclr/jit/rationalize.cpp
src/coreclr/jit/rationalize.cpp
+0
-28
未找到文件。
src/coreclr/jit/rationalize.cpp
浏览文件 @
e5746e93
...
...
@@ -62,34 +62,6 @@ void Rationalizer::RewriteIndir(LIR::Use& use)
{
RewriteSIMDIndir
(
use
);
}
else
{
// Due to promotion of structs containing fields of type struct with a
// single scalar type field, we could potentially see IR nodes of the
// form GT_IND(GT_ADD(lclvarAddr, 0)) where 0 is an offset representing
// a field-seq. These get folded here.
//
// TODO: This code can be removed once JIT implements recursive struct
// promotion instead of lying about the type of struct field as the type
// of its single scalar field.
GenTree
*
addr
=
indir
->
Addr
();
if
(
addr
->
OperGet
()
==
GT_ADD
&&
addr
->
gtGetOp1
()
->
OperGet
()
==
GT_LCL_VAR_ADDR
&&
addr
->
gtGetOp2
()
->
IsIntegralConst
(
0
))
{
GenTreeLclVarCommon
*
lclVarNode
=
addr
->
gtGetOp1
()
->
AsLclVarCommon
();
const
LclVarDsc
*
varDsc
=
comp
->
lvaGetDesc
(
lclVarNode
);
if
(
indir
->
TypeGet
()
==
varDsc
->
TypeGet
())
{
JITDUMP
(
"Rewriting GT_IND(GT_ADD(LCL_VAR_ADDR,0)) to LCL_VAR
\n
"
);
lclVarNode
->
SetOper
(
GT_LCL_VAR
);
lclVarNode
->
gtType
=
indir
->
TypeGet
();
use
.
ReplaceWith
(
lclVarNode
);
BlockRange
().
Remove
(
addr
);
BlockRange
().
Remove
(
addr
->
gtGetOp2
());
BlockRange
().
Remove
(
indir
);
}
}
}
}
else
if
(
indir
->
OperIs
(
GT_OBJ
))
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录