Commit a0791dcc by Richard Biener Committed by Richard Biener

tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call): Use stack…

tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call): Use stack auto_vecs for constraint expressions.

2014-09-01  Richard Biener  <rguenther@suse.de>

	* tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
	Use stack auto_vecs for constraint expressions.
	(find_func_aliases_for_call): Likewise.
	(find_func_aliases): Likewise.
	(find_func_clobbers): Likewise.

From-SVN: r214795
parent 27d79c21
2014-09-01 Richard Biener <rguenther@suse.de> 2014-09-01 Richard Biener <rguenther@suse.de>
* tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
Use stack auto_vecs for constraint expressions.
(find_func_aliases_for_call): Likewise.
(find_func_aliases): Likewise.
(find_func_clobbers): Likewise.
2014-09-01 Richard Biener <rguenther@suse.de>
* tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
operands vector in most cases. Remove redundant code. operands vector in most cases. Remove redundant code.
...@@ -4129,8 +4129,8 @@ static bool ...@@ -4129,8 +4129,8 @@ static bool
find_func_aliases_for_builtin_call (struct function *fn, gimple t) find_func_aliases_for_builtin_call (struct function *fn, gimple t)
{ {
tree fndecl = gimple_call_fndecl (t); tree fndecl = gimple_call_fndecl (t);
vec<ce_s> lhsc = vNULL; auto_vec<ce_s, 2> lhsc;
vec<ce_s> rhsc = vNULL; auto_vec<ce_s, 4> rhsc;
varinfo_t fi; varinfo_t fi;
if (gimple_call_builtin_p (t, BUILT_IN_NORMAL)) if (gimple_call_builtin_p (t, BUILT_IN_NORMAL))
...@@ -4183,16 +4183,14 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4183,16 +4183,14 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
else else
get_constraint_for (dest, &rhsc); get_constraint_for (dest, &rhsc);
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
lhsc.release (); lhsc.truncate (0);
rhsc.release (); rhsc.truncate (0);
} }
get_constraint_for_ptr_offset (dest, NULL_TREE, &lhsc); get_constraint_for_ptr_offset (dest, NULL_TREE, &lhsc);
get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc);
do_deref (&lhsc); do_deref (&lhsc);
do_deref (&rhsc); do_deref (&rhsc);
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
lhsc.release ();
rhsc.release ();
return true; return true;
} }
case BUILT_IN_MEMSET: case BUILT_IN_MEMSET:
...@@ -4209,8 +4207,7 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4209,8 +4207,7 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
get_constraint_for (res, &lhsc); get_constraint_for (res, &lhsc);
get_constraint_for (dest, &rhsc); get_constraint_for (dest, &rhsc);
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
lhsc.release (); lhsc.truncate (0);
rhsc.release ();
} }
get_constraint_for_ptr_offset (dest, NULL_TREE, &lhsc); get_constraint_for_ptr_offset (dest, NULL_TREE, &lhsc);
do_deref (&lhsc); do_deref (&lhsc);
...@@ -4228,7 +4225,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4228,7 +4225,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
ac.offset = 0; ac.offset = 0;
FOR_EACH_VEC_ELT (lhsc, i, lhsp) FOR_EACH_VEC_ELT (lhsc, i, lhsp)
process_constraint (new_constraint (*lhsp, ac)); process_constraint (new_constraint (*lhsp, ac));
lhsc.release ();
return true; return true;
} }
case BUILT_IN_POSIX_MEMALIGN: case BUILT_IN_POSIX_MEMALIGN:
...@@ -4247,8 +4243,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4247,8 +4243,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
tmpc.type = ADDRESSOF; tmpc.type = ADDRESSOF;
rhsc.safe_push (tmpc); rhsc.safe_push (tmpc);
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
lhsc.release ();
rhsc.release ();
return true; return true;
} }
case BUILT_IN_ASSUME_ALIGNED: case BUILT_IN_ASSUME_ALIGNED:
...@@ -4260,8 +4254,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4260,8 +4254,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
get_constraint_for (res, &lhsc); get_constraint_for (res, &lhsc);
get_constraint_for (dest, &rhsc); get_constraint_for (dest, &rhsc);
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
lhsc.release ();
rhsc.release ();
} }
return true; return true;
} }
...@@ -4303,8 +4295,8 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4303,8 +4295,8 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
do_deref (&lhsc); do_deref (&lhsc);
do_deref (&rhsc); do_deref (&rhsc);
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
lhsc.release (); lhsc.truncate (0);
rhsc.release (); rhsc.truncate (0);
/* For realloc the resulting pointer can be equal to the /* For realloc the resulting pointer can be equal to the
argument as well. But only doing this wouldn't be argument as well. But only doing this wouldn't be
correct because with ptr == 0 realloc behaves like malloc. */ correct because with ptr == 0 realloc behaves like malloc. */
...@@ -4313,8 +4305,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4313,8 +4305,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
get_constraint_for (gimple_call_lhs (t), &lhsc); get_constraint_for (gimple_call_lhs (t), &lhsc);
get_constraint_for (gimple_call_arg (t, 0), &rhsc); get_constraint_for (gimple_call_arg (t, 0), &rhsc);
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
lhsc.release ();
rhsc.release ();
} }
return true; return true;
} }
...@@ -4338,8 +4328,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4338,8 +4328,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
rhsc.safe_push (nul); rhsc.safe_push (nul);
get_constraint_for (gimple_call_lhs (t), &lhsc); get_constraint_for (gimple_call_lhs (t), &lhsc);
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
lhsc.release ();
rhsc.release ();
} }
return true; return true;
/* Trampolines are special - they set up passing the static /* Trampolines are special - they set up passing the static
...@@ -4361,8 +4349,8 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4361,8 +4349,8 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
lhs = get_function_part_constraint (nfi, fi_static_chain); lhs = get_function_part_constraint (nfi, fi_static_chain);
get_constraint_for (frame, &rhsc); get_constraint_for (frame, &rhsc);
FOR_EACH_VEC_ELT (rhsc, i, rhsp) FOR_EACH_VEC_ELT (rhsc, i, rhsp)
process_constraint (new_constraint (lhs, *rhsp)); process_constraint (new_constraint (lhs, *rhsp));
rhsc.release (); rhsc.truncate (0);
/* Make the frame point to the function for /* Make the frame point to the function for
the trampoline adjustment call. */ the trampoline adjustment call. */
...@@ -4370,8 +4358,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4370,8 +4358,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
do_deref (&lhsc); do_deref (&lhsc);
get_constraint_for (nfunc, &rhsc); get_constraint_for (nfunc, &rhsc);
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
rhsc.release ();
lhsc.release ();
return true; return true;
} }
...@@ -4390,8 +4376,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4390,8 +4376,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
get_constraint_for (tramp, &rhsc); get_constraint_for (tramp, &rhsc);
do_deref (&rhsc); do_deref (&rhsc);
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
rhsc.release ();
lhsc.release ();
} }
return true; return true;
} }
...@@ -4413,8 +4397,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4413,8 +4397,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
do_deref (&lhsc); do_deref (&lhsc);
get_constraint_for (src, &rhsc); get_constraint_for (src, &rhsc);
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
lhsc.release ();
rhsc.release ();
return true; return true;
} }
CASE_BUILT_IN_TM_LOAD (1): CASE_BUILT_IN_TM_LOAD (1):
...@@ -4435,8 +4417,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4435,8 +4417,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
get_constraint_for (addr, &rhsc); get_constraint_for (addr, &rhsc);
do_deref (&rhsc); do_deref (&rhsc);
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
lhsc.release ();
rhsc.release ();
return true; return true;
} }
/* Variadic argument handling needs to be handled in IPA /* Variadic argument handling needs to be handled in IPA
...@@ -4465,7 +4445,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t) ...@@ -4465,7 +4445,6 @@ find_func_aliases_for_builtin_call (struct function *fn, gimple t)
} }
FOR_EACH_VEC_ELT (lhsc, i, lhsp) FOR_EACH_VEC_ELT (lhsc, i, lhsp)
process_constraint (new_constraint (*lhsp, rhs)); process_constraint (new_constraint (*lhsp, rhs));
lhsc.release ();
/* va_list is clobbered. */ /* va_list is clobbered. */
make_constraint_to (get_call_clobber_vi (t)->id, valist); make_constraint_to (get_call_clobber_vi (t)->id, valist);
return true; return true;
...@@ -4508,8 +4487,6 @@ static void ...@@ -4508,8 +4487,6 @@ static void
find_func_aliases_for_call (struct function *fn, gimple t) find_func_aliases_for_call (struct function *fn, gimple t)
{ {
tree fndecl = gimple_call_fndecl (t); tree fndecl = gimple_call_fndecl (t);
vec<ce_s> lhsc = vNULL;
vec<ce_s> rhsc = vNULL;
varinfo_t fi; varinfo_t fi;
if (fndecl != NULL_TREE if (fndecl != NULL_TREE
...@@ -4521,7 +4498,7 @@ find_func_aliases_for_call (struct function *fn, gimple t) ...@@ -4521,7 +4498,7 @@ find_func_aliases_for_call (struct function *fn, gimple t)
if (!in_ipa_mode if (!in_ipa_mode
|| (fndecl && !fi->is_fn_info)) || (fndecl && !fi->is_fn_info))
{ {
vec<ce_s> rhsc = vNULL; auto_vec<ce_s, 16> rhsc;
int flags = gimple_call_flags (t); int flags = gimple_call_flags (t);
/* Const functions can return their arguments and addresses /* Const functions can return their arguments and addresses
...@@ -4541,10 +4518,10 @@ find_func_aliases_for_call (struct function *fn, gimple t) ...@@ -4541,10 +4518,10 @@ find_func_aliases_for_call (struct function *fn, gimple t)
if (gimple_call_lhs (t)) if (gimple_call_lhs (t))
handle_lhs_call (t, gimple_call_lhs (t), handle_lhs_call (t, gimple_call_lhs (t),
gimple_call_return_flags (t), rhsc, fndecl); gimple_call_return_flags (t), rhsc, fndecl);
rhsc.release ();
} }
else else
{ {
auto_vec<ce_s, 2> rhsc;
tree lhsop; tree lhsop;
unsigned j; unsigned j;
...@@ -4570,6 +4547,7 @@ find_func_aliases_for_call (struct function *fn, gimple t) ...@@ -4570,6 +4547,7 @@ find_func_aliases_for_call (struct function *fn, gimple t)
lhsop = gimple_call_lhs (t); lhsop = gimple_call_lhs (t);
if (lhsop) if (lhsop)
{ {
auto_vec<ce_s, 2> lhsc;
struct constraint_expr rhs; struct constraint_expr rhs;
struct constraint_expr *lhsp; struct constraint_expr *lhsp;
...@@ -4579,11 +4557,11 @@ find_func_aliases_for_call (struct function *fn, gimple t) ...@@ -4579,11 +4557,11 @@ find_func_aliases_for_call (struct function *fn, gimple t)
&& DECL_RESULT (fndecl) && DECL_RESULT (fndecl)
&& DECL_BY_REFERENCE (DECL_RESULT (fndecl))) && DECL_BY_REFERENCE (DECL_RESULT (fndecl)))
{ {
vec<ce_s> tem = vNULL; auto_vec<ce_s, 2> tem;
tem.safe_push (rhs); tem.quick_push (rhs);
do_deref (&tem); do_deref (&tem);
gcc_checking_assert (tem.length () == 1);
rhs = tem[0]; rhs = tem[0];
tem.release ();
} }
FOR_EACH_VEC_ELT (lhsc, j, lhsp) FOR_EACH_VEC_ELT (lhsc, j, lhsp)
process_constraint (new_constraint (*lhsp, rhs)); process_constraint (new_constraint (*lhsp, rhs));
...@@ -4602,7 +4580,7 @@ find_func_aliases_for_call (struct function *fn, gimple t) ...@@ -4602,7 +4580,7 @@ find_func_aliases_for_call (struct function *fn, gimple t)
lhs = get_function_part_constraint (fi, fi_result); lhs = get_function_part_constraint (fi, fi_result);
FOR_EACH_VEC_ELT (rhsc, j, rhsp) FOR_EACH_VEC_ELT (rhsc, j, rhsp)
process_constraint (new_constraint (lhs, *rhsp)); process_constraint (new_constraint (lhs, *rhsp));
rhsc.release (); rhsc.truncate (0);
} }
/* If we use a static chain, pass it along. */ /* If we use a static chain, pass it along. */
...@@ -4628,8 +4606,8 @@ static void ...@@ -4628,8 +4606,8 @@ static void
find_func_aliases (struct function *fn, gimple origt) find_func_aliases (struct function *fn, gimple origt)
{ {
gimple t = origt; gimple t = origt;
vec<ce_s> lhsc = vNULL; auto_vec<ce_s, 16> lhsc;
vec<ce_s> rhsc = vNULL; auto_vec<ce_s, 16> rhsc;
struct constraint_expr *c; struct constraint_expr *c;
varinfo_t fi; varinfo_t fi;
...@@ -4715,14 +4693,13 @@ find_func_aliases (struct function *fn, gimple origt) ...@@ -4715,14 +4693,13 @@ find_func_aliases (struct function *fn, gimple origt)
else if (code == COND_EXPR) else if (code == COND_EXPR)
{ {
/* The result is a merge of both COND_EXPR arms. */ /* The result is a merge of both COND_EXPR arms. */
vec<ce_s> tmp = vNULL; auto_vec<ce_s, 2> tmp;
struct constraint_expr *rhsp; struct constraint_expr *rhsp;
unsigned i; unsigned i;
get_constraint_for_rhs (gimple_assign_rhs2 (t), &rhsc); get_constraint_for_rhs (gimple_assign_rhs2 (t), &rhsc);
get_constraint_for_rhs (gimple_assign_rhs3 (t), &tmp); get_constraint_for_rhs (gimple_assign_rhs3 (t), &tmp);
FOR_EACH_VEC_ELT (tmp, i, rhsp) FOR_EACH_VEC_ELT (tmp, i, rhsp)
rhsc.safe_push (*rhsp); rhsc.safe_push (*rhsp);
tmp.release ();
} }
else if (truth_value_p (code)) else if (truth_value_p (code))
/* Truth value results are not pointer (parts). Or at least /* Truth value results are not pointer (parts). Or at least
...@@ -4731,7 +4708,7 @@ find_func_aliases (struct function *fn, gimple origt) ...@@ -4731,7 +4708,7 @@ find_func_aliases (struct function *fn, gimple origt)
else else
{ {
/* All other operations are merges. */ /* All other operations are merges. */
vec<ce_s> tmp = vNULL; auto_vec<ce_s, 4> tmp;
struct constraint_expr *rhsp; struct constraint_expr *rhsp;
unsigned i, j; unsigned i, j;
get_constraint_for_rhs (gimple_assign_rhs1 (t), &rhsc); get_constraint_for_rhs (gimple_assign_rhs1 (t), &rhsc);
...@@ -4742,7 +4719,6 @@ find_func_aliases (struct function *fn, gimple origt) ...@@ -4742,7 +4719,6 @@ find_func_aliases (struct function *fn, gimple origt)
rhsc.safe_push (*rhsp); rhsc.safe_push (*rhsp);
tmp.truncate (0); tmp.truncate (0);
} }
tmp.release ();
} }
process_all_all_constraints (lhsc, rhsc); process_all_all_constraints (lhsc, rhsc);
} }
...@@ -4804,7 +4780,7 @@ find_func_aliases (struct function *fn, gimple origt) ...@@ -4804,7 +4780,7 @@ find_func_aliases (struct function *fn, gimple origt)
any global memory. */ any global memory. */
if (op) if (op)
{ {
vec<ce_s> lhsc = vNULL; auto_vec<ce_s, 2> lhsc;
struct constraint_expr rhsc, *lhsp; struct constraint_expr rhsc, *lhsp;
unsigned j; unsigned j;
get_constraint_for (op, &lhsc); get_constraint_for (op, &lhsc);
...@@ -4813,7 +4789,6 @@ find_func_aliases (struct function *fn, gimple origt) ...@@ -4813,7 +4789,6 @@ find_func_aliases (struct function *fn, gimple origt)
rhsc.type = SCALAR; rhsc.type = SCALAR;
FOR_EACH_VEC_ELT (lhsc, j, lhsp) FOR_EACH_VEC_ELT (lhsc, j, lhsp)
process_constraint (new_constraint (*lhsp, rhsc)); process_constraint (new_constraint (*lhsp, rhsc));
lhsc.release ();
} }
} }
for (i = 0; i < gimple_asm_ninputs (t); ++i) for (i = 0; i < gimple_asm_ninputs (t); ++i)
...@@ -4836,9 +4811,6 @@ find_func_aliases (struct function *fn, gimple origt) ...@@ -4836,9 +4811,6 @@ find_func_aliases (struct function *fn, gimple origt)
make_escape_constraint (op); make_escape_constraint (op);
} }
} }
rhsc.release ();
lhsc.release ();
} }
...@@ -4866,8 +4838,8 @@ static void ...@@ -4866,8 +4838,8 @@ static void
find_func_clobbers (struct function *fn, gimple origt) find_func_clobbers (struct function *fn, gimple origt)
{ {
gimple t = origt; gimple t = origt;
vec<ce_s> lhsc = vNULL; auto_vec<ce_s, 16> lhsc;
auto_vec<ce_s> rhsc; auto_vec<ce_s, 16> rhsc;
varinfo_t fi; varinfo_t fi;
/* Add constraints for clobbered/used in IPA mode. /* Add constraints for clobbered/used in IPA mode.
...@@ -4906,7 +4878,7 @@ find_func_clobbers (struct function *fn, gimple origt) ...@@ -4906,7 +4878,7 @@ find_func_clobbers (struct function *fn, gimple origt)
get_constraint_for_address_of (lhs, &rhsc); get_constraint_for_address_of (lhs, &rhsc);
FOR_EACH_VEC_ELT (rhsc, i, rhsp) FOR_EACH_VEC_ELT (rhsc, i, rhsp)
process_constraint (new_constraint (lhsc, *rhsp)); process_constraint (new_constraint (lhsc, *rhsp));
rhsc.release (); rhsc.truncate (0);
} }
} }
...@@ -4934,7 +4906,7 @@ find_func_clobbers (struct function *fn, gimple origt) ...@@ -4934,7 +4906,7 @@ find_func_clobbers (struct function *fn, gimple origt)
get_constraint_for_address_of (rhs, &rhsc); get_constraint_for_address_of (rhs, &rhsc);
FOR_EACH_VEC_ELT (rhsc, i, rhsp) FOR_EACH_VEC_ELT (rhsc, i, rhsp)
process_constraint (new_constraint (lhs, *rhsp)); process_constraint (new_constraint (lhs, *rhsp));
rhsc.release (); rhsc.truncate (0);
} }
} }
...@@ -4982,12 +4954,10 @@ find_func_clobbers (struct function *fn, gimple origt) ...@@ -4982,12 +4954,10 @@ find_func_clobbers (struct function *fn, gimple origt)
lhs = get_function_part_constraint (fi, fi_clobbers); lhs = get_function_part_constraint (fi, fi_clobbers);
FOR_EACH_VEC_ELT (lhsc, i, lhsp) FOR_EACH_VEC_ELT (lhsc, i, lhsp)
process_constraint (new_constraint (lhs, *lhsp)); process_constraint (new_constraint (lhs, *lhsp));
lhsc.release ();
get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc);
lhs = get_function_part_constraint (fi, fi_uses); lhs = get_function_part_constraint (fi, fi_uses);
FOR_EACH_VEC_ELT (rhsc, i, rhsp) FOR_EACH_VEC_ELT (rhsc, i, rhsp)
process_constraint (new_constraint (lhs, *rhsp)); process_constraint (new_constraint (lhs, *rhsp));
rhsc.release ();
return; return;
} }
/* The following function clobbers memory pointed to by /* The following function clobbers memory pointed to by
...@@ -5003,7 +4973,6 @@ find_func_clobbers (struct function *fn, gimple origt) ...@@ -5003,7 +4973,6 @@ find_func_clobbers (struct function *fn, gimple origt)
lhs = get_function_part_constraint (fi, fi_clobbers); lhs = get_function_part_constraint (fi, fi_clobbers);
FOR_EACH_VEC_ELT (lhsc, i, lhsp) FOR_EACH_VEC_ELT (lhsc, i, lhsp)
process_constraint (new_constraint (lhs, *lhsp)); process_constraint (new_constraint (lhs, *lhsp));
lhsc.release ();
return; return;
} }
/* The following functions clobber their second and third /* The following functions clobber their second and third
...@@ -5073,7 +5042,6 @@ find_func_clobbers (struct function *fn, gimple origt) ...@@ -5073,7 +5042,6 @@ find_func_clobbers (struct function *fn, gimple origt)
get_constraint_for_address_of (arg, &rhsc); get_constraint_for_address_of (arg, &rhsc);
FOR_EACH_VEC_ELT (rhsc, j, rhsp) FOR_EACH_VEC_ELT (rhsc, j, rhsp)
process_constraint (new_constraint (lhs, *rhsp)); process_constraint (new_constraint (lhs, *rhsp));
rhsc.release ();
} }
/* Build constraints for propagating clobbers/uses along the /* Build constraints for propagating clobbers/uses along the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment