2015-05-18 12:48 GMT+03:00 Richard Biener <richard.guent...@gmail.com>: > On Fri, May 15, 2015 at 11:43 AM, Ilya Enkovich <enkovich....@gmail.com> > wrote: >> Hi, >> >> This patch fixes misuse of abnormal bounds copy to avoid coalescing issue. >> Bootstrapped and regtested for x86_64-unknown-linux-gnu. Applied to trunk. >> Is it OK for gcc-5? > > Hum. I'm not sure how you can assert the value is defined by a > gimple-assign. (what about PHIs?) also see below
Bounds defined by PHI never go to chkp_abnormal_copies. >> @@ -1141,11 +1154,7 @@ chkp_maybe_copy_and_register_bounds (tree ptr, tree >> bnd) >> /* For abnormal copies we may just find original >> bounds and use them. */ >> if (!abnormal_ptr && !SSA_NAME_IS_DEFAULT_DEF (bnd)) >> - { >> - gimple bnd_def = SSA_NAME_DEF_STMT (bnd); >> - gcc_checking_assert (gimple_code (bnd_def) == GIMPLE_ASSIGN); >> - bnd = gimple_assign_rhs1 (bnd_def); >> - } >> + bnd = chkp_get_orginal_bounds_for_abnormal_copy (bnd); >> /* For undefined values we usually use none bounds >> value but in case of abnormal edge it may cause >> coalescing failures. Use default definition of >> @@ -1177,6 +1186,7 @@ chkp_maybe_copy_and_register_bounds (tree ptr, tree >> bnd) >> copy = make_temp_ssa_name (pointer_bounds_type_node, >> gimple_build_nop (), > > Just pass NULL here to avoid creating a garbage NOP stmt. OK, I'll clean up all such occurrences in tree-chkp.c. Thanks, Ilya