RFR: 8303804: Fix some errors of If-VectorTest and CMove-VectorTest

Quan Anh Mai qamai at openjdk.org
Wed Mar 8 14:44:00 UTC 2023


On Wed, 8 Mar 2023 03:52:33 GMT, Wang Haomin <wanghaomin at openjdk.org> wrote:

> After https://bugs.openjdk.org/browse/JDK-8292289 ,  the base class of VectorTestNode changed from Node to CmpNode. So I add two match rule into ad file.
> 
> match(If cop (VectorTest op1 op2));
> match(Set dst (CMoveI (Binary cop (VectorTest op1 op2)) (Binary src1 src2)));
> 
> First error, rule1 shouldn't generate the statement "node->_bottom_type = _leaf->bottom_type();".
> Second error, both rule1 and rule2 need to use VectorTestNode, the VectorTestNode should be cloned like CmpNode.

Looks good to me with a small suggestion. Thanks a lot.

src/hotspot/share/adlc/output_c.cpp line 3989:

> 3987:   if (inst->captures_bottom_type(_globalNames)) {
> 3988:     if (strncmp("MachCall", inst->mach_base_class(_globalNames), strlen("MachCall"))
> 3989:       && strncmp("MachIf", inst->mach_base_class(_globalNames), strlen("MachIf"))) {

Maybe explicitly compare the results with 0 here for consistency with other usage of `strcmp`

-------------

Marked as reviewed by qamai (Committer).

PR: https://git.openjdk.org/jdk/pull/12917


More information about the hotspot-compiler-dev mailing list