mirror of git://gcc.gnu.org/git/gcc.git
re PR target/41089 (stdarg pass produces wrong code)
2009-09-09 Martin Jambor <mjambor@suse.cz> PR tree-optimization/41089 * tree-sra.c (find_var_candidates): Do not consider va_lists in early SRA. From-SVN: r151566
This commit is contained in:
parent
8b9db065c6
commit
ca1bb752ae
|
|
@ -1,3 +1,9 @@
|
||||||
|
2009-09-09 Martin Jambor <mjambor@suse.cz>
|
||||||
|
|
||||||
|
PR tree-optimization/41089
|
||||||
|
* tree-sra.c (find_var_candidates): Do not consider va_lists in
|
||||||
|
early SRA.
|
||||||
|
|
||||||
2009-09-09 Richard Henderson <rth@redhat.com>
|
2009-09-09 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
* gimple.h (CASE_GIMPLE_OMP): New.
|
* gimple.h (CASE_GIMPLE_OMP): New.
|
||||||
|
|
|
||||||
|
|
@ -1165,7 +1165,13 @@ find_var_candidates (void)
|
||||||
|| !COMPLETE_TYPE_P (type)
|
|| !COMPLETE_TYPE_P (type)
|
||||||
|| !host_integerp (TYPE_SIZE (type), 1)
|
|| !host_integerp (TYPE_SIZE (type), 1)
|
||||||
|| tree_low_cst (TYPE_SIZE (type), 1) == 0
|
|| tree_low_cst (TYPE_SIZE (type), 1) == 0
|
||||||
|| type_internals_preclude_sra_p (type))
|
|| type_internals_preclude_sra_p (type)
|
||||||
|
/* Fix for PR 41089. tree-stdarg.c needs to have va_lists intact but
|
||||||
|
we also want to schedule it rather late. Thus we ignore it in
|
||||||
|
the early pass. */
|
||||||
|
|| (sra_mode == SRA_MODE_EARLY_INTRA
|
||||||
|
&& (TYPE_MAIN_VARIANT (TREE_TYPE (var))
|
||||||
|
== TYPE_MAIN_VARIANT (va_list_type_node))))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
bitmap_set_bit (candidate_bitmap, DECL_UID (var));
|
bitmap_set_bit (candidate_bitmap, DECL_UID (var));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue