------- Comment #7 from ubizjak at gmail dot com 2008-05-05 10:53 ------- validate_unshare_change was introduced by:
2007-06-26 Jan Hubicka <[EMAIL PROTECTED]> * fwprop.c (try_fwprop_subst): Use validate_unshare_change. * postreload.c (reload_cse_simplify_set): Instead of copying the rtx early use validate_unshare_change. (reload_combine): Likewise. * recog.c (change_t): New field unshare. (validate_change_1): Rename from validate_change; add argument unshare. (validate_change): Turn into wrapper of validate_change_1; update prototype for bools. (validate_unshare_change): New. (confirm_change_group): Unshare changes if asked for; avoid unnecesary calls of df_insn_rescan. * recog.h (validate_change): Replace ints by bools. (validate_unshare_change): Declare. The problem is, that validate_unshare_change logic creates sharing violation if the same RTX is propagated into two places in the same insn pattern. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36111