Hi, I ran into a call of operand_equal_p for two type conversion tree nodes like: arg0: <nop_expr 0xb737a974 type <integer_type 0xb74faae0 public unsigned HI size <integer_cst 0xb74e87c4 constant 16> unit size <integer_cst 0xb74e87e0 constant 2> align 16 symtab 0 alias set -1 canonical type 0xb74faae0 precision 16 min <integer_cst 0xb74e8b28 0> max <integer_cst 0xb74e8a64 65535>>
arg 0 <ssa_name 0xb73222f8 type <integer_type 0xb74fa420 long int sizes-gimplified public SI size <integer_cst 0xb74e855c constant 32> unit size <integer_cst 0xb74e8578 constant 4> align 32 symtab 0 alias set 5 canonical type 0xb74fa420 precision 32 min <integer_cst 0xb74e8888 -2147483648> max <integer_cst 0xb74e88a4 2147483647> context <translation_unit_decl 0xb76a7d80 D.6120> pointer_to_this <pointer_type 0xb75017e0>> visiteddef_stmt _23 = *_22; version 23>> arg1: <convert_expr 0xb737a3e8 type <integer_type 0xb74fa2a0 short int sizes-gimplified public HI size <integer_cst 0xb74e87c4 constant 16> unit size <integer_cst 0xb74e87e0 constant 2> align 16 symtab 0 alias set 4 canonical type 0xb74fa2a0 precision 16 min <integer_cst 0xb74e8770 -32768> max <integer_cst 0xb74e878c 32767> context <translation_unit_decl 0xb76a7d80 D.6120> pointer_to_this <pointer_type 0xb72db600>> arg 0 <ssa_name 0xb73222f8 type <integer_type 0xb74fa420 long int sizes-gimplified public SI size <integer_cst 0xb74e855c constant 32> unit size <integer_cst 0xb74e8578 constant 4> align 32 symtab 0 alias set 5 canonical type 0xb74fa420 precision 32 min <integer_cst 0xb74e8888 -2147483648> max <integer_cst 0xb74e88a4 2147483647> context <translation_unit_decl 0xb76a7d80 D.6120> pointer_to_this <pointer_type 0xb75017e0>> visiteddef_stmt _23 = *_22; version 23>> Though arg0 is a nop_expr, the conversion is actually not NOP and it seems arg0 equals arg1. The problem is operand_equal_q simply return false because arg0/arg1 have different tree code. Should operand_equal_q take two kinds of conversion expression into consideration, or arg0/arg1 are not equal? Thanks. -- Best Regards.