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

Tobias Hartmann thartmann at openjdk.org
Mon Mar 20 08:29:23 UTC 2023


On Thu, 9 Mar 2023 01:19:40 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.
>
> Wang Haomin has updated the pull request incrementally with one additional commit since the last revision:
> 
>   compare the results with 0

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")) != 0
> 3989:       && strncmp("MachIf", inst->mach_base_class(_globalNames), strlen("MachIf")) != 0) {

Could you please explain this change, and how it relates to JDK-8292289, in more detail?

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

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


More information about the hotspot-compiler-dev mailing list