/* Two save some code, sort the addresses by its id's. Beware, this
might break some things, so better check here. */
- assert(iro_SymConst < iro_Sel && iro_Sel < iro_Proj && "Code dependence breaked");
+ assert(iro_SymConst < iro_Sel && iro_Sel < iro_Proj && "Code dependence broken");
op1 = get_irn_opcode(adr1);
op2 = get_irn_opcode(adr2);
if (get_mode_size_bits(mode1) != get_mode_size_bits(mode2))
return no_alias;
+ /* cheap test: if only one is a reference mode, no alias */
+ if (mode_is_reference(mode1) != mode_is_reference(mode2))
+ return no_alias;
+
/* try rule R5 */
rel = different_types(adr1, adr2);
if (rel != may_alias)