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