> I also disabled type matching done by operand_equal_p and cleaned up the > conditional of MEM_REF into multiple ones - for example it was passing > OEP_ADDRESS_OF when comparing TYPE_SIZE which is quite a nonsense. > > I wonder what to do about OPE_CONSTANT_ADDRESS_OF. This flag does not seem > to be used at all in current tree nor documented somehow.
It is used and (un-)documented as OEP_ADDRESS_OF, see the ADDR_EXPR case: case ADDR_EXPR: return operand_equal_p (TREE_OPERAND (arg0, 0), TREE_OPERAND (arg1, 0), TREE_CONSTANT (arg0) && TREE_CONSTANT (arg1) ? OEP_CONSTANT_ADDRESS_OF | OEP_ADDRESS_OF : 0); So it's OEP_ADDRESS_OF but for constant addresses. -- Eric Botcazou