FRF: 8250675: Vector API crashes on AVX512 machines with assert(eval_map.contains(n)) failed: absent
jiefu(傅杰)
jiefu at tencent.com
Tue Jul 28 23:14:08 UTC 2020
Hi Vladimir Ivanov,
Thank you for your review and help.
How about fixing it in jdk/jdk directly?
I'd like to post it for review on hotspot-compiler-dev.
Then the fix will be merged into Panama automatically.
What do you think?
Best regards,
Jie
On 2020/7/29, 12:51 AM, "Vladimir Ivanov" <vladimir.x.ivanov at oracle.com> wrote:
Good catch, Jie!
I suggest the following variant of the fix:
static void eval_operands(Node* n,
uint& func1, uint& func2, uint& func3,
ResourceHashtable<Node*,uint>& eval_map) {
assert(is_vector_bitwise_op(n), "");
if (is_vector_unary_bitwise_op(n)) {
Node* opnd = n->in(1);
if (VectorNode::is_vector_bitwise_not_pattern(n) &&
is_all_ones_vector(opnd)) {
opnd = n->in(2);
}
func1 = eval_operand(opnd, eval_map);
} else if (is_vector_binary_bitwise_op(n)) {
func1 = eval_operand(n->in(1), eval_map);
func2 = eval_operand(n->in(2), eval_map);
} else {
assert(is_vector_ternary_bitwise_op(n), "unknown operation");
func1 = eval_operand(n->in(1), eval_map);
func2 = eval_operand(n->in(2), eval_map);
func3 = eval_operand(n->in(3), eval_map);
}
}
Strictly speaking, the bug is not Vector API-specific, but
auto-vectorizer doesn't generate such IR shape (scalar bitwise not
pattern is normalized by GVN). So, I'm fine to push the fix along with
Vector API.
But feel free to post it for review on hotspot-compiler-dev at ojn separately.
Best regards,
Vladimir Ivanov
On 28.07.2020 16:35, jiefu(傅杰) wrote:
> Hi all,
>
> Please review the following patch which fixes some Vector API crashes on AVX512 machines.
>
> JBS: https://bugs.openjdk.java.net/browse/JDK-8250675
> Webrev: http://cr.openjdk.java.net/~jiefu/8250675/webrev.00/
>
> Testing:
> - jdk/incubator/vector all passed on AVX512 machines
> - tier1 on Linux/x64
>
> Thanks a lot.
> Best regards,
> Jie
>
More information about the panama-dev
mailing list