Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
81ec663d
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
81ec663d
编写于
3月 26, 2013
作者:
N
neliasso
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8010281: Remove code that is never executed
Reviewed-by: kvn, roland Contributed-by: niclas.adlertz@oracle.com
上级
7b61dfe4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
4 addition
and
40 deletion
+4
-40
src/share/vm/opto/ifg.cpp
src/share/vm/opto/ifg.cpp
+4
-40
未找到文件。
src/share/vm/opto/ifg.cpp
浏览文件 @
81ec663d
...
...
@@ -37,8 +37,6 @@
#include "opto/memnode.hpp"
#include "opto/opcodes.hpp"
#define EXACT_PRESSURE 1
//=============================================================================
//------------------------------IFG--------------------------------------------
PhaseIFG
::
PhaseIFG
(
Arena
*
arena
)
:
Phase
(
Interference_Graph
),
_arena
(
arena
)
{
...
...
@@ -445,23 +443,15 @@ static void lower_pressure( LRG *lrg, uint where, Block *b, uint *pressure, uint
pressure
[
1
]
-=
lrg
->
reg_pressure
();
if
(
pressure
[
1
]
==
(
uint
)
FLOATPRESSURE
)
{
hrp_index
[
1
]
=
where
;
#ifdef EXACT_PRESSURE
if
(
pressure
[
1
]
>
b
->
_freg_pressure
)
b
->
_freg_pressure
=
pressure
[
1
]
+
1
;
#else
b
->
_freg_pressure
=
(
uint
)
FLOATPRESSURE
+
1
;
#endif
if
(
pressure
[
1
]
>
b
->
_freg_pressure
)
b
->
_freg_pressure
=
pressure
[
1
]
+
1
;
}
}
else
if
(
lrg
->
mask
().
overlap
(
*
Matcher
::
idealreg2regmask
[
Op_RegI
])
)
{
pressure
[
0
]
-=
lrg
->
reg_pressure
();
if
(
pressure
[
0
]
==
(
uint
)
INTPRESSURE
)
{
hrp_index
[
0
]
=
where
;
#ifdef EXACT_PRESSURE
if
(
pressure
[
0
]
>
b
->
_reg_pressure
)
b
->
_reg_pressure
=
pressure
[
0
]
+
1
;
#else
b
->
_reg_pressure
=
(
uint
)
INTPRESSURE
+
1
;
#endif
if
(
pressure
[
0
]
>
b
->
_reg_pressure
)
b
->
_reg_pressure
=
pressure
[
0
]
+
1
;
}
}
}
...
...
@@ -526,17 +516,13 @@ uint PhaseChaitin::build_ifg_physical( ResourceArea *a ) {
if
(
lrg
.
mask
().
is_UP
()
&&
lrg
.
mask_size
())
{
if
(
lrg
.
_is_float
||
lrg
.
_is_vector
)
{
// Count float pressure
pressure
[
1
]
+=
lrg
.
reg_pressure
();
#ifdef EXACT_PRESSURE
if
(
pressure
[
1
]
>
b
->
_freg_pressure
)
b
->
_freg_pressure
=
pressure
[
1
];
#endif
// Count int pressure, but do not count the SP, flags
}
else
if
(
lrgs
(
lidx
).
mask
().
overlap
(
*
Matcher
::
idealreg2regmask
[
Op_RegI
])
)
{
pressure
[
0
]
+=
lrg
.
reg_pressure
();
#ifdef EXACT_PRESSURE
if
(
pressure
[
0
]
>
b
->
_reg_pressure
)
b
->
_reg_pressure
=
pressure
[
0
];
#endif
}
}
}
...
...
@@ -589,30 +575,20 @@ uint PhaseChaitin::build_ifg_physical( ResourceArea *a ) {
RegMask
itmp
=
lrgs
(
r
).
mask
();
itmp
.
AND
(
*
Matcher
::
idealreg2regmask
[
Op_RegI
]);
int
iregs
=
itmp
.
Size
();
#ifdef EXACT_PRESSURE
if
(
pressure
[
0
]
+
iregs
>
b
->
_reg_pressure
)
b
->
_reg_pressure
=
pressure
[
0
]
+
iregs
;
#endif
if
(
pressure
[
0
]
<=
(
uint
)
INTPRESSURE
&&
pressure
[
0
]
+
iregs
>
(
uint
)
INTPRESSURE
)
{
#ifndef EXACT_PRESSURE
b
->
_reg_pressure
=
(
uint
)
INTPRESSURE
+
1
;
#endif
hrp_index
[
0
]
=
j
-
1
;
}
// Count the float-only registers
RegMask
ftmp
=
lrgs
(
r
).
mask
();
ftmp
.
AND
(
*
Matcher
::
idealreg2regmask
[
Op_RegD
]);
int
fregs
=
ftmp
.
Size
();
#ifdef EXACT_PRESSURE
if
(
pressure
[
1
]
+
fregs
>
b
->
_freg_pressure
)
b
->
_freg_pressure
=
pressure
[
1
]
+
fregs
;
#endif
if
(
pressure
[
1
]
<=
(
uint
)
FLOATPRESSURE
&&
pressure
[
1
]
+
fregs
>
(
uint
)
FLOATPRESSURE
)
{
#ifndef EXACT_PRESSURE
b
->
_freg_pressure
=
(
uint
)
FLOATPRESSURE
+
1
;
#endif
hrp_index
[
1
]
=
j
-
1
;
}
}
...
...
@@ -769,16 +745,12 @@ uint PhaseChaitin::build_ifg_physical( ResourceArea *a ) {
if
(
lrg
.
mask
().
is_UP
()
&&
lrg
.
mask_size
())
{
if
(
lrg
.
_is_float
||
lrg
.
_is_vector
)
{
pressure
[
1
]
+=
lrg
.
reg_pressure
();
#ifdef EXACT_PRESSURE
if
(
pressure
[
1
]
>
b
->
_freg_pressure
)
b
->
_freg_pressure
=
pressure
[
1
];
#endif
}
else
if
(
lrg
.
mask
().
overlap
(
*
Matcher
::
idealreg2regmask
[
Op_RegI
])
)
{
pressure
[
0
]
+=
lrg
.
reg_pressure
();
#ifdef EXACT_PRESSURE
if
(
pressure
[
0
]
>
b
->
_reg_pressure
)
b
->
_reg_pressure
=
pressure
[
0
];
#endif
}
}
assert
(
pressure
[
0
]
==
count_int_pressure
(
&
liveout
),
""
);
...
...
@@ -794,21 +766,13 @@ uint PhaseChaitin::build_ifg_physical( ResourceArea *a ) {
// the whole block is high pressure.
if
(
pressure
[
0
]
>
(
uint
)
INTPRESSURE
)
{
hrp_index
[
0
]
=
0
;
#ifdef EXACT_PRESSURE
if
(
pressure
[
0
]
>
b
->
_reg_pressure
)
b
->
_reg_pressure
=
pressure
[
0
];
#else
b
->
_reg_pressure
=
(
uint
)
INTPRESSURE
+
1
;
#endif
}
if
(
pressure
[
1
]
>
(
uint
)
FLOATPRESSURE
)
{
hrp_index
[
1
]
=
0
;
#ifdef EXACT_PRESSURE
if
(
pressure
[
1
]
>
b
->
_freg_pressure
)
b
->
_freg_pressure
=
pressure
[
1
];
#else
b
->
_freg_pressure
=
(
uint
)
FLOATPRESSURE
+
1
;
#endif
}
// Compute high pressure indice; avoid landing in the middle of projnodes
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录