mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-21 04:50:24 +08:00
re PR middle-end/66134 ([CHKP] ICE: Unable to coalesce ssa_names 18 and 17 which are marked as MUST COALESCE)
gcc/ PR middle-end/66134 * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New. (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy. gcc/testsuite/ PR middle-end/66134 * gcc.target/i386/mpx/pr66134.c: New test. From-SVN: r223215
This commit is contained in:
parent
95f991707b
commit
2c1f37b57a
@ -1,3 +1,9 @@
|
||||
2015-05-15 Ilya Enkovich <enkovich.gnu@gmail.com>
|
||||
|
||||
PR middle-end/66134
|
||||
* tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
|
||||
(chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
|
||||
|
||||
2015-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2015-05-15 Ilya Enkovich <enkovich.gnu@gmail.com>
|
||||
|
||||
PR middle-end/66134
|
||||
* gcc.target/i386/mpx/pr66134.c: New test.
|
||||
|
||||
2015-05-14 Rohit Arul Raj <rohitrulraj@freescale.com>
|
||||
|
||||
* gcc.target/powerpc/pr60158.c: New test.
|
||||
|
@ -1097,7 +1097,20 @@ chkp_get_bounds_var (tree ptr_var)
|
||||
return bnd_var;
|
||||
}
|
||||
|
||||
/* If BND is an abnormal bounds copy, return a copied value.
|
||||
Otherwise return BND. */
|
||||
static tree
|
||||
chkp_get_orginal_bounds_for_abnormal_copy (tree bnd)
|
||||
{
|
||||
if (bitmap_bit_p (chkp_abnormal_copies, SSA_NAME_VERSION (bnd)))
|
||||
{
|
||||
gimple bnd_def = SSA_NAME_DEF_STMT (bnd);
|
||||
gcc_checking_assert (gimple_code (bnd_def) == GIMPLE_ASSIGN);
|
||||
bnd = gimple_assign_rhs1 (bnd_def);
|
||||
}
|
||||
|
||||
return bnd;
|
||||
}
|
||||
|
||||
/* Register bounds BND for object PTR in global bounds table.
|
||||
A copy of bounds may be created for abnormal ssa names.
|
||||
@ -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 (),
|
||||
CHKP_BOUND_TMP_NAME);
|
||||
bnd = chkp_get_orginal_bounds_for_abnormal_copy (bnd);
|
||||
assign = gimple_build_assign (copy, bnd);
|
||||
|
||||
if (dump_file && (dump_flags & TDF_DETAILS))
|
||||
|
Loading…
x
Reference in New Issue
Block a user