OSDN Git Service

* loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2
3         * loop-iv.c (suitable_set_for_replacement): Renamed from
4         simplify_using_assignment; changed to return bool and to accept new
5         args DEST and SRC.  Return true iff we find a source/destination pair
6         that can be used to make a replacement, and fill SRC and DEST if so.
7         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
8         changed.
9         (simplify_using_initial_values): Deal with altered regs here and track
10         more precisely the effect they have on the validity of our expression.
11
12         * loop-iv.c (simplify_using_condition): A condition of the form
13         (EQ REG CONST) can be used to simply make a substitution.
14         (simplify_using_initial_values): Keep track of conditions we have seen
15         and keep using them to simplify new expressions, while applying the
16         same substitutions to them as to the expression.
17
18         * simplify-rtx.c (simplify_relational_operation_1): Simplify
19         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
20         GEU/LTU reversed.
21
22         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
23         changed.  Use this when trying to improve the upper bound.
24         Generate the comparison by using simplify_gen_relational.
25
26         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
27
28 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29
30         PR target/27237
31         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
32         
33 2009-03-31  Richard Guenther  <rguenther@suse.de>
34
35         PR middle-end/31029
36         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
37         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
38
39 2009-03-31  Richard Guenther  <rguenther@suse.de>
40
41         * tree.h (div_if_zero_remainder): Declare.
42         * fold-const.c (div_if_zero_remainder): Export.
43         * tree-ssa-forwprop.c
44         (forward_propagate_addr_into_variable_array_index): Handle
45         constant array index addition outside of the variable index.
46
47 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
48
49         PR target/39592
50         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
51         define_splits, floatunssi<mode>2): Require x87 conversions from
52         DImode to be permitted.
53
54 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
55
56         PR preprocessor/15638
57         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
58
59 2009-03-31  Richard Guenther  <rguenther@suse.de>
60
61         PR middle-end/23401
62         PR middle-end/27810
63         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
64         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
65         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
66         a separate statement.
67         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
68         (lookup_tmp_var): Likewise.
69         (is_gimple_formal_tmp_or_call_rhs): Remove.
70         (is_gimple_reg_or_call_rhs): Rename to ...
71         (is_gimple_reg_rhs_or_call): ... this.
72         (is_gimple_mem_or_call_rhs): Rename to ...
73         (is_gimple_mem_rhs_or_call): ... this.
74         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
75         DECL_GIMPLE_REG_P only if is_formal is true.
76         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
77         for non-proper post-modify expression gimplification.
78         (gimplify_self_mod_expr): For post-modify expressions gimplify
79         the lvalue to a minimal lvalue.
80         (rhs_predicate_for): Remove formal temp case.
81         (gimplify_modify_expr_rhs): Likewise.
82         (gimplify_addr_expr): Use is_gimple_reg.
83         (gimplify_expr): Remove formal temp cases.
84         (gimple_regimplify_operands): Likewise.
85         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
86         and FILTER_EXPR like constants.
87         * gimple.c (walk_gimple_op): Fix val_only initialization, use
88         is_gimple_reg.
89         (is_gimple_formal_tmp_rhs): Remove.
90         (is_gimple_reg_rhs): Remove special casing.
91         (is_gimple_mem_rhs): Fix.
92         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
93         (is_gimple_formal_tmp_var): Remove.
94         (is_gimple_formal_tmp_reg): Likewise.
95         (is_gimple_min_lval): Allow invariant component ref parts.
96         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
97         is_gimple_formal_tmp_reg): Remove declarations.
98         * tree-cfg.c (verify_expr): Verify that variables with address
99         taken do not have DECL_GIMPLE_REG_P set.
100         * tree-mudflap.c (mf_build_check_statement_for): Use
101         force_gimple_operand instead of gimplify_expr.
102
103 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
104
105         * modulo-sched.c (sms_schedule_by_order): Pass the actual
106         schedulable rows to compute_split_row.
107
108 2009-03-31  Ben Elliston  <bje@au.ibm.com>
109
110         PR target/31635
111         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
112         OPT_mvrsave.
113
114 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
115
116         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
117         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
118         * configure: Regenerate.
119         * config.in: Regenerate.
120         * config/rs6000/rs6000.opt (mtls-markers): Add.
121         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
122         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
123         (tls_ld_aix, tls_ld_sysv): Likewise.
124         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
125         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
126
127 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
128
129         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
130
131 2009-03-30  Jan Hubicka  <jh@suse.cz>
132
133         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
134         out of RESX.
135         (tree_remove_unreachable_handlers): Cleanup EH predecestor
136         detection and label handling.
137
138 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
139
140         * ira-int.h (ira_allocno): Rename left_conflicts_num to
141         left_conflicts_size.
142         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
143         ALLOCNO_LEFT_CONFLICTS_SIZE.
144
145         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
146         remove_allocno_from_bucket_and_push,
147         allocno_spill_priority_compare, push_allocnos_to_stack,
148         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
149         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
150         (setup_allocno_left_conflicts_num): Ditto.  Rename to
151         setup_allocno_left_conflicts_size.
152         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
153         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
154         setup_allocno_left_conflicts_size instead of
155         setup_allocno_left_conflicts_num.
156
157         * ira-build.c (ira_create_allocno): Use
158         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
159         ALLOCNO_LEFT_CONFLICTS_NUM.
160                 
161 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
162
163         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
164         instead of DF_LR_OUT.
165
166         * ira-lives.c (process_bb_node_lives): Ditto.
167
168         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
169         instead of DF_LR_{OUT,IN}.
170
171         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
172
173         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
174
175 2009-03-30  Jan Hubicka  <jh@suse.cz>
176
177         * except.c (label_to_region_map): Fix thinko.
178
179 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
180
181         PR middle-end/38237
182         * tree.h (tree_find_value): New declaration.
183         * tree.c (tree_find_value): New function.
184         * varasm.c (assemble_external): Avoid duplicate entries on lists.
185
186 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
187
188         PR debug/39563
189         * c-decl.c (struct c_binding): Add locus field.
190         (bind): Add locus argument, set locus field from it.
191         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
192         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
193         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
194         implicitly_declare, undeclared_variable, lookup_label,
195         declare_label, c_make_fname_decl, c_builtin_function,
196         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
197         bind callers.
198
199 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
200
201         PR target/38781
202         * config/i386/i386.c (classify_argument): Check total size of
203         structure.
204
205 2009-03-30  Martin Jambor  <mjambor@suse.cz>
206
207         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
208         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
209         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
210         respectively.
211
212         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
213         seen_variable_array_ref while also traversing a union.
214
215         * tree-inline.c (optimize_inline_calls): Do not call
216         cgraph_node_remove_callees.
217         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
218         (pass_remove_cgraph_callee_edges): New variable.
219         * passes.c (init_optimization_passes): Add
220         pass_remove_cgraph_callee_edges after early inlining and before all
221         late intraprocedural passes.
222
223         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
224
225 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
226
227         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
228         Fix typos in names.
229
230 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
231
232         * combine.c (simplify_comparison): Use have_insn_for.
233         * dojump.c (do_jump): Likewise.
234
235 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
236
237         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
238         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
239         sparc_compare_op0 like sparc_compare_emitted used to be handled.
240         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
241         instead of sparc_compare_emitted.
242         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
243         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
244         instead of sparc_compare_emitted.
245
246 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
247
248         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
249         enter/exit cfglayout mode.
250         (pass_partition_block): Require it.
251         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
252         (combine_instructions): Track basic blocks instead of labels.
253         (update_cfg_for_uncondjump): New.
254         (try_combine): Use it.  Update jumps after rescanning.
255         (pass_combine): Require PROP_cfglayout.
256         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
257
258 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
259
260         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
261         Provide/destroy PROP_cfglayout respectively.
262         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
263         * tree-pass.h (PROP_cfglayout): New.
264
265 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
266
267         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
268         fold_convert_const_fixed_from_fixed,
269         fold_convert_const_fixed_from_int,
270         fold_convert_const_fixed_from_real, fold_negate_const): Do not
271         set TREE_CONSTANT_OVERFLOW.
272         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
273         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
274
275 2009-03-30  Ira Rosen  <irar@il.ibm.com>
276
277         * tree-vect-loop-manip.c: New file.
278         * tree-vectorizer.c: Update documentation and included files.
279         (vect_loop_location): Make extern.
280         (rename_use_op): Move to tree-vect-loop-manip.c
281         (rename_variables_in_bb, rename_variables_in_loop, 
282         slpeel_update_phis_for_duplicate_loop, 
283         slpeel_update_phi_nodes_for_guard1,
284         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
285         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
286         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
287         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
288         find_loop_location): Likewise.
289         (new_stmt_vec_info): Move to tree-vect-stmts.c.
290         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
291         get_vectype_for_scalar_type, vect_is_simple_use,
292         supportable_widening_operation, supportable_narrowing_operation):
293         Likewise.
294         (bb_in_loop_p): Move to tree-vect-loop.c.
295         (new_loop_vec_info, destroy_loop_vec_info, 
296         reduction_code_for_scalar_code, report_vect_op, 
297         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
298         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
299         (vect_supportable_dr_alignment): Likewise.
300         * tree-vectorizer.h (tree-data-ref.h): Include.
301         (vect_loop_location): Declare.
302         Reorganize function declarations according to the new file structure.
303         * tree-vect-loop.c: New file.
304         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
305         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
306         * tree-vect-data-refs.c: New file.
307         * tree-vect-patterns.c (timevar.h): Don't include.
308         * tree-vect-stmts.c: New file.
309         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
310         tree-vect-slp.c, tree-vect-loop.c.
311         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
312         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
313         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
314         (tree-vect-analyze.o): Remove.
315         (tree-vect-transform.o): Likewise.
316         (tree-vect-data-refs.o): Add rule.
317         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
318         tree-vect-slp.o): Likewise.
319         (tree-vect-patterns.o): Remove redundant dependencies.
320         (tree-vectorizer.o): Likewise.
321         * tree-vect-slp.c: New file.
322
323 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
324
325         * optc-gen.awk: Warn if an option flag has multiple different
326         help strings.
327
328 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
329
330         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
331         -floop-block): Document dependences on PPL, CLooG and Graphite.
332
333 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
334
335         PR rtl-optimization/323
336         * c-common.c (c_fully_fold, convert_and_check,
337         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
338         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
339         * c-common.def (EXCESS_PRECISION_EXPR): New.
340         * c-cppbuiltin.c (builtin_define_float_constants): Define
341         constants with enough digits for long double.
342         * c-lex.c (interpret_float): Interpret constant with excess
343         precision where appropriate.
344         * c-opts.c (c_common_post_options): Set
345         flag_excess_precision_cmdline.  Give an error for
346         -fexcess-precision=standard for C++ for processors where the
347         option is significant.
348         * c-parser.c (c_parser_conditional_expression): Handle excess
349         precision in condition.
350         * c-typeck.c (convert_arguments): Handle arguments with excess
351         precision.
352         (build_unary_op): Move excess precision outside operation.
353         (build_conditional_expr): Likewise.
354         (build_compound_expr): Likewise.
355         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
356         (build_modify_expr): Handle excess precision in RHS.
357         (convert_for_assignment): Handle excess precision in converted
358         value.
359         (digest_init, output_init_element, process_init_element): Handle
360         excess precision in initializer.
361         (c_finish_return): Handle excess precision in return value.
362         (build_binary_op): Handle excess precision in operands and add
363         excess precision as needed for operation.
364         * common.opt (-fexcess-precision=): New option.
365         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
366         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
367         For standard excess precision, output explicit conversion to and
368         truncation from XFmode.
369         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
370         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
371         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
372         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
373         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
374         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
375         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
376         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
377         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
378         define_splits, sqrt<mode>2): Disable where appropriate for
379         standard excess precision.
380         * convert.c (convert_to_real): Do not shorten arithmetic to type
381         for which excess precision would be used.
382         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
383         * doc/invoke.texi (-fexcess-precision=): Document option.
384         (-mfpmath=): Correct index entry.
385         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
386         flag_excess_precision): New.
387         * langhooks.c (lhd_post_options): Set
388         flag_excess_precision_cmdline.
389         * opts.c (common_handle_option): Handle -fexcess-precision=.
390         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
391         init_excess_precision): New.
392         (lang_dependent_init_target): Call init_excess_precision.
393         * tree.c (excess_precision_type): New.
394         * tree.h (excess_precision_type): Declare.
395
396 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
397
398         PR c/35235
399         * c-typeck.c (build_component_ref): Do not copy qualifiers from
400         non-lvalue to component.
401
402 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
403
404         PR preprocessor/34695
405         * Makefile.in (c-opts.o): Depend on c-tree.h.
406         * c-common.c: Move down include of diagnostic.h.
407         (done_lexing, c_cpp_error): New.
408         * c-common.h (done_lexing): Declare.
409         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
410         (parse_in).
411         * c-opts.c: Include c-tree.h.
412         (c_common_init_options): Set preprocessor error callback.
413         (c_common_handle_option): Do not set preprocessor
414         inhibit_warnings, warnings_are_errors, warn_system_headers,
415         pedantic_errors or inhibit_warnings flags.
416         (c_common_post_options): Do not check cpp_errors (parse_in).
417         (c_common_finish): Do not output dependencies if there were
418         errors.  Do not check return value of cpp_finish.
419         * c-ppoutput.c (pp_file_change): Set input_location.
420         * c-tree.h (c_cpp_error): Declare.
421         * diagnostic.c (diagnostic_set_info_translated): Also initialize
422         override_column.
423         (diagnostic_build_prefix): Check override_column.
424         * diagnostic.h (diagnostic_info): Add override_column field.
425         (diagnostic_override_column): Define.
426
427 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
428
429         * c-common.c (c_expand_expr, c_staticp): Remove.
430         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
431         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
432         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
433         * c-gimplify.c (gimplify_compound_literal_expr,
434         optimize_compound_literals_in_ctor): Remove.
435         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
436         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
437         * c-semantics.c (emit_local_var): Remove.
438
439         * langhooks-def.h (lhd_expand_expr): Remove.
440         * langhooks.c (lhd_expand_expr): Remove.
441         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
442
443         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
444         handling from c-semantics.c; don't call into langhook.
445         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
446         * gimplify.c (gimplify_compound_literal_expr,
447         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
448         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
449         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
450         as was done in c-gimplify.c.
451         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
452         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
453         Move from c-common.h.
454         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
455
456         * tree.c (staticp): Do not call langhook.
457         * langhooks.c (lhd_staticp): Delete.
458         * langhooks-def.h (lhd_staticp): Delete prototype.
459         (LANG_HOOKS_STATICP): Delete.
460         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
461
462         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
463         instead of DECL_STMTs.
464
465 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
466
467         PR c/456
468         PR c/5675
469         PR c/19976
470         PR c/29116
471         PR c/31871
472         PR c/35198
473         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
474         void_type_node.
475         (fold_call_expr): Return a NOP_EXPR from folding rather than the
476         contained expression.
477         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
478         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
479         conditional expressions for C.
480         (decl_constant_value_for_optimization): Move from
481         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
482         whether optimizing and that the expression is a VAR_DECL not of
483         array type instead of doing such checks in the caller.  Do not
484         check pedantic.  Call gcc_unreachable for C++.
485         * c-common.def (C_MAYBE_CONST_EXPR): New.
486         * c-common.h (c_fully_fold, c_save_expr,
487         decl_constant_value_for_optimization): New prototypes.
488         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
489         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
490         EXPR_INT_CONST_OPERANDS): Define.
491         * c-convert.c (convert): Strip nops from expression.
492         * c-decl.c (groktypename): Take extra parameters expr and
493         expr_const_operands.  Update call to grokdeclarator.
494         (start_decl): Update call to grokdeclarator.  Add statement for
495         expressions used in type of decl.
496         (grokparm): Update call to grokdeclarator.
497         (push_parm_decl): Update call to grokdeclarator.
498         (build_compound_literal): Add parameter non_const and build a
499         C_MAYBE_COSNT_EXPR if applicable.
500         (grokdeclarator): Take extra parameters expr and
501         expr_const_operands.  Track expressions used in declaration
502         specifiers and declarators.  Fold array sizes and track whether
503         they are constant expressions and whether they are integer
504         constant expressions.
505         (parser_xref_tag): Set expr and expr_const_operands fields in
506         return value.
507         (grokfield): Update call to grokdeclarator.
508         (start_function): Update call to grokdeclarator.
509         (build_null_declspecs): Set expr and expr_const_operands fields in
510         return value.
511         (declspecs_add_type): Handle expressions in typeof specifiers.
512         * c-parser.c (c_parser_declspecs): Set expr and
513         expr_const_operands fields for declaration specifiers.
514         (c_parser_enum_specifier): Likewise.
515         (c_parser_struct_or_union_specifier): Likewise.
516         (c_parser_typeof_specifier): Likewise.  Update call to
517         groktypename.  Fold expression as needed.  Return expressions with
518         type instead of adding statements.
519         (c_parser_attributes): Update calls to c_parser_expr_list.
520         (c_parser_statement_after_labels): Fold expression before passing
521         to objc_build_throw_stmt.
522         (c_parser_condition): Fold expression.
523         (c_parser_asm_operands): Fold expression.
524         (c_parser_conditional_expression): Use c_save_expr.  Update call
525         to build_conditional_expr.
526         (c_parser_alignof_expression): Update call to groktypename.
527         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
528         original_code.  Fold expression argument of va_arg.  Create
529         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
530         argument to va_arg.  Update calls to groktypename.  Fold array
531         index for offsetof.  Verify that first argument to
532         __builtin_choose_expr has integer type.
533         (c_parser_postfix_expression_after_paren_type): Update calls to
534         groktypename and build_compound_literal.  Handle expressions with
535         side effects in type name.
536         (c_parser_postfix_expression_after_primary): Update call to
537         c_parser_expr_list.  Set original_code for calls to
538         __builtin_constant_p.
539         (c_parser_expr_list): Take extra parameter fold_p.  Fold
540         expressions if requested.
541         (c_parser_objc_type_name): Update call to groktypename.
542         (c_parser_objc_synchronized_statement): Fold expression.
543         (c_parser_objc_receiver): Fold expression.
544         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
545         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
546         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
547         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
548         (struct c_typespec): Add elements expr and expr_const_operands.
549         (struct c_declspecs): Add elements expr and expr_const_operands.
550         (groktypename, build_conditional_expr, build_compound_literal):
551         Update prototypes.
552         (in_late_binary_op): Declare.
553         * c-typeck.c (note_integer_operands): New function.
554         (in_late_binary_op): New variable.
555         (decl_constant_value_for_broken_optimization): Move to c-common.c
556         and rename to decl_constant_value_for_optimization.
557         (default_function_array_conversion): Do not strip nops.
558         (default_conversion): Do not call
559         decl_constant_value_for_broken_optimization.
560         (build_array_ref): Do not fold result.
561         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
562         result when operand is a VLA.
563         (c_expr_sizeof_type): Update call to groktypename.  Handle
564         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
565         result when operand names a VLA type.
566         (build_function_call): Update call to build_compound_literal.
567         Only fold result for calls to __builtin_* functions.  Strip
568         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
569         the function designator.
570         (convert_arguments): Fold arguments.  Update call to
571         convert_for_assignment.
572         (build_unary_op): Handle increment and decrement of
573         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
574         decrement earlier.  Fold operand of increment and decrement.
575         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
576         built for integer operand.  Wrap returns that are INTEGER_CSTs
577         without being integer constant expressions or that have integer
578         constant operands without being INTEGER_CSTs.
579         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
580         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
581         result is an integer constant expression or can be used in
582         unevaluated parts of one and avoid folding and wrap as
583         appropriate.  Fold operands before possibly doing -Wsign-compare
584         warnings.
585         (build_compound_expr): Wrap result for C99 if operands can be used
586         in integer constant expressions.
587         (build_c_cast): Update call to digest_init.  Do not ignore
588         overflow from casting floating-point constants to integers.  Wrap
589         results that could be confused with integer constant expressions,
590         null pointer constants or floating-point constants.
591         (c_cast_expr): Update call to groktypename.  Handle expressions
592         included in type name.
593         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
594         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
595         Update calls to convert_for_assignment.
596         (convert_for_assignment): Take new parameter
597         null_pointer_constant.  Do not strip nops or call
598         decl_constant_value_for_broken_optimization.  Set
599         in_late_binary_op for conversions to boolean.
600         (store_init_value): Update call to digest_init.
601         (digest_init): Take new parameter null_pointer_constant.  Do not
602         call decl_constant_value_for_broken_optimization.  pedwarn for
603         initializers not constant expressions.  Update calls to
604         convert_for_assignment.
605         (constructor_nonconst): New.
606         (struct constructor_stack): Add nonconst element.
607         (really_start_incremental_init, push_init_level, pop_init_level):
608         Handle constructor_nonconst and nonconst element.
609         (set_init_index): Call constant_expression_warning for array
610         designators.
611         (output_init_element): Fold value.  Set constructor_nonconst as
612         applicable.  pedwarn for initializers not constant expressions.
613         Update call to digest_init.  Call constant_expression_warning
614         where constant initializers are required.
615         (process_init_element): Use c_save_expr.
616         (c_finish_goto_ptr): Fold expression.
617         (c_finish_return): Fold return value.  Update call to
618         convert_for_assignment.
619         (c_start_case): Fold switch expression.
620         (c_process_expr_stmt): Fold expression.
621         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
622         ensure statement expression is not evaluated in constant expression.
623         (build_binary_op): Track whether results are integer constant
624         expressions or may occur in such, disable folding and wrap results
625         as applicable.  Fold operands for -Wsign-compare warnings unless
626         in_late_binary_op.
627         (c_objc_common_truthvalue_conversion): Handle results folded to
628         integer constants that are not integer constant expressions.
629         * doc/extend.texi: Document when typeof operands are evaluated,
630         that condition of __builtin_choose_expr is an integer constant
631         expression, and more about use of __builtin_constant_p in
632         initializers.
633
634 2009-03-29  Richard Guenther  <rguenther@suse.de>
635
636         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
637         propagate addresses of array references.
638
639 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
640
641         * regmove.c (perhaps_ends_bb_p): Remove.
642         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
643         from INSN and check that the main loop stays within that basic block.
644         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
645         (regmove_forward_pass): Split out from regmove_optimize.  Use
646         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
647         (regmove_backward_pass): Split out from regmove_optimize.  Use
648         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
649         (regmove_optimize): Simplify.
650
651 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
652
653         PR target/39545
654         * config/i386/i386.c (classify_argument): Ignore flexible array
655         member in struct and warn ABI change.
656
657 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
658
659         * config/i386/i386-protos.h (ix86_agi_dependent): New.
660
661         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
662         (ix86_adjust_cost): Updated.
663
664 2009-03-29  Jan Hubicka  <jh@suse.cz>
665
666         PR middle-end/28850
667         * tree-pass.h (pass_cleanup_eh): New function.
668         (remove_unreachable_regions): Break code handling RTL
669         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
670         that can not be reached by runtime.
671         (can_be_reached_by_runtime): New function.
672         (label_to_region_map): New function.
673         (num_eh_regions): New function.
674         (rtl_remove_unreachable_regions): New function.
675         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
676         (remove_eh_region): New function.
677         * except.h: Include sbitmap and vecprim.
678         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
679         num_eh_regions): Declare.
680         * passes.c (init_optimization_passes): Schedule cleanup_eh.
681         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
682         * tree-eh.c (tree_remove_unreachable_handlers): New function.
683         (tree_empty_eh_handler_p): New function.
684         (cleanup_empty_eh): New function.
685         (cleanup_eh): New function.
686         (pass_cleanup_eh): New function.
687
688 2009-03-29  Jan Hubicka  <jh@suse.cz>
689
690         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
691         for removed regions.
692
693 2009-03-29  Jan Hubicka  <jh@suse.cz>
694
695         * except.c (dump_eh_tree): Dump all datastructures.
696
697 2009-03-29  Jan Hubicka  <jh@suse.cz>
698
699         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
700         (duplicate_eh_regions_1): Likewise.
701         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
702         vector; call EH verification.
703         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
704         Be ready for region being removed.
705
706 2009-03-29  Jan Hubicka  <jh@suse.cz>
707
708         * bitmap.c (bitmap_last_set_bit): New function.
709         * bitmap.h (bitmap_last_set_bit): Declare.
710
711 2009-03-29  David Ayers  <ayers@fsfe.org>
712
713         PR objc/27377
714         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
715         by calling objc_compare_types and surpress warnings about
716         incompatible C pointers that are compatible ObjC pointers.
717         
718 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
719
720         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
721         call initialize_inline_failed.
722         (initialize_inline_failed): Move it from here ...
723         * cgraph.c (initialize_inline_failed): ... to here.
724         (cgraph_create_edge): Call initialize_inline_failed rather than
725         setting inline_failed directly.
726
727 2009-03-29  Ben Elliston  <bje@au.ibm.com>
728
729         PR target/32542
730         * sysv4.opt (msdata): Improve comment.
731         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
732         * sysv4.h (SVR4_ASM_SPEC): Likewise.
733
734 2009-03-29  Ben Elliston  <bje@au.ibm.com>
735
736         PR target/30451
737         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
738         load and store attributes.
739
740 2009-03-29  Ben Elliston  <bje@au.ibm.com>
741
742         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
743         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
744         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
745         * doc/extend.texi (X86 Built-in Functions): Add index entries for
746         __builtin_infq and __builtin_huge_valq.
747
748 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
749
750         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
751         atmega8m1 devices.
752         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
753         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
754
755 2009-03-28  Xinliang David Li  <davidxl@google.com>
756
757         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
758         (do_dbg_cnt): New function.
759
760 2009-03-28  Jan Hubicka  <jh@suse.cz>
761
762         Merge from pretty-ipa:
763
764         2009-03-27  Jan Hubicka  <jh@suse.cz>
765
766         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
767         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
768         * passes.c (function_called_by_processed_nodes_p): New.
769         * ipa-pure-const.c (check_call): Fix handling of operands.
770         (analyze_function): Dump debug output for skipped bodies.
771         (local_pure_const): Use function_called_by_processed_nodes_p.
772         * dwarf2out.c (reference_to_unused): Use output.
773         * passes.c (do_per_function_toporder): Likewise.
774
775         2008-11-12  Jan Hubicka  <jh@suse.cz>
776
777         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
778         * ipa-pure-const.c (funct_state_d): Add can throw field; make
779         state_set_in_source enum
780         (check_decl): Ignore memory tags; do not set fake looping flags;
781         dump diagnostics.
782         (check_operand, check_tree, check_rhs_var, check_lhs_var,
783         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
784         (check_call, analyze_function): Rewrite.
785         (check_stmt): New.
786         (add_new_function): Update call of analyze_function.
787         (generate_summary): Add call of analyze_function.
788         (propagate): Propagate can_throw; handle state_set_in_source correctly.
789         (local_pure_const): New function.
790         (pass_local_pure_const): New pass.
791         * ipa-inline.c (inline_transform): Set after_inlining.
792         * tree-eh.c (stmt_can_throw_external): New.
793         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
794         work with aliasing built.
795         * tree-flow.h (stmt_can_throw_external): New.
796         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
797         and local pure/const pass in early and late optimization queue.
798
799 2009-03-28  Martin Jambor  <mjambor@suse.cz>
800
801         * fold-const.c (get_pointer_modulus_and_residue): New parameter
802         allow_func_align.
803         (fold_binary): Allow function decl aligment consideration is the
804         second argument is integer constant one.
805         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
806         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
807         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
808
809 2009-03-28  Jan Hubicka  <jh@suse.cz>
810
811         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
812         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
813         * function.h (rtl_data): Add nothrow flag.
814         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
815         set DECL_NOTHROW for AVAILABLE functions.
816
817 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
818
819         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
820         following vector keyword has expansion starting with pixel or bool
821         keyword, expand vector to __vector and pixel or bool to __pixel or
822         __bool.
823
824         PR c++/39554
825         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
826         warn_if_disallowed_function_p): Removed.
827         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
828         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
829         warning_if_disallowed_function_p.
830         * flags.h (warn_if_disallowed_function_p,
831         warn_disallowed_functions): Removed.
832         * common.opt (Wdisallowed-function-list=): Removed.
833         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
834
835 2009-03-28  Richard Guenther  <rguenther@suse.de>
836
837         PR tree-optimization/38723
838         * tree-ssa-pre.c (compute_avail): Add all default definitions to
839         the entry block.
840
841 2009-03-28  Jan Hubicka  <jh@suse.cz>
842
843         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
844         test introduced by my previous patch.
845
846 2009-03-28  Richard Guenther  <rguenther@suse.de>
847
848         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
849         the PHIs value undefined.
850
851 2009-03-28  Jan Hubicka  <jh@suse.cz>
852
853         * tree-pass.h (pass_fixup_cfg): New pass.
854         * ipa-inline.c (inline_transform): Set
855         always_inline_functions_inlined/after_inlining.
856         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
857         (pass_fixup_cfg): New pass.
858         * passes.c (init_optimization_passes): Add fixup_cfg.
859
860 2009-03-28  Richard Guenther  <rguenther@suse.de>
861
862         PR tree-optimization/38458
863         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
864         argument use the arguments copy-of value.
865
866 2009-03-28  Richard Guenther  <rguenther@suse.de>
867
868         PR tree-optimization/38180
869         * tree-ssa-ccp.c (get_default_value): Simplify.
870         (likely_value): Likewise.
871         (surely_varying_stmt_p): Properly handle VOP case.
872         (ccp_initialize): Likewise.
873         (ccp_fold): Handle propagating through *&.
874         (fold_const_aggregate_ref): Also handle decls.
875
876 2009-03-28  Jan Hubicka  <jh@suse.cz>
877
878         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
879         * cgraph.h (cgraph_node): Likewise.
880         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
881         (cgraph_reset_node): Use process flag.
882         (cgraph_mark_functions_to_output): Likewise.
883         (cgraph_expand_function): Likewise.
884         (cgraph_expand_all_functions): Likewise.
885         (cgraph_output_in_order): Likewise.
886         * dwarf2out.c (reference_to_unused): Likewise.
887         * passes.c do_per_function_toporder): Likewise.
888
889 2009-03-28  Jan Hubicka  <jh@suse.cz>
890
891         Bring from lto-branch:
892
893         2008-09-03  Doug Kwan  <dougkwan@google.com>
894
895         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
896         enums instead of reason strings.
897         * cgraph.c (cgraph_create_edge): Same.
898         (cgraph_inline_failed_string): New function.
899         * cgraph.h (cgraph_inline_failed_t): New enum type.
900         (cgraph_inline_failed_string): New prototype.
901         (struct cgraph_edge): Change type of INLINED_FAILED from constant
902         char pointer to cgraph_inline_failed_t.
903         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
904         (cgraph_default_inline_p): Ditto.
905         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
906         to cgraph_inline_failed_t pointer.
907         * cif-code.def: New file.
908         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
909         reason string.
910         (cgraph_check_inline_limits): Change type of REASON to pointer to
911         cgraph_inline_failed_t.  Replace reason strings with enums.
912         (cgraph_default_inline_p): Ditto.
913         (cgraph_recursive_inlining_p): Ditto.
914         (update_caller_keys): Change type of FAILED_REASON to
915         cgraph_inline_failed_t.
916         (cgraph_set_inline_failed): Change type of REASON to pointer to
917         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
918         convert enums to strings for text output.
919         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
920         to be of type cgraph_inline_failed_t.  Replace reason strings with
921         enums.  Call cgraph_inline_failed_string to covert enums
922         to strings for text output.
923         (cgraph_decide_inlining): Replace reason strings with enums.
924         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
925         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
926         for text output.
927         * tree-inline.c (expand_call_inline): Change type of REASON
928         to cgraph_inline_failed_t.  Replace reason strings with enums.
929         Call cgraph_inline_failed_string for text output.
930         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
931         (cgraph.o): Ditto.
932
933 2009-03-28  Jan Hubicka  <jh@suse.cz>
934
935         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
936         cgraph_clone_node): Remove master clone handling.
937         (cgraph_is_master_clone, cgraph_master_clone): Remove.
938         * cgraph.h (master_clone): Remove.
939         (cgraph_is_master_clone, cgraph_master_clone): Remove.
940         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
941         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
942
943 2009-03-28  Jan Hubicka  <jh@suse.cz>
944
945         * cgraph.c (cgraph_function_body_availability): Functions declared
946         inline are always safe to assume that it is not going to be replaced.
947
948 2009-03-28  Richard Guenther  <rguenther@suse.de>
949
950         PR tree-optimization/38513
951         * tree-ssa-pre.c (eliminate): Remove redundant stores.
952         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
953         EXC_PTR_EXPR and FILTER_EXPR.
954         (get_ref_from_reference_ops): Likewise.
955
956 2009-03-28  Richard Guenther  <rguenther@suse.de>
957
958         PR tree-optimization/38968
959         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
960         Use FLOOR_MOD_EXPR to compute misalignment.
961
962 2009-03-28  Richard Guenther  <rguenther@suse.de>
963
964         PR tree-optimization/37795
965         * tree.h (combine_comparisons): Declare.
966         * fold-const.c (combine_comparisons): Export.
967         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
968         comparisons.
969         (ifcombine_iforif): Use combine_comparisons.
970
971 2009-03-28  Jan Hubicka  <jh@suse.cz>
972
973         * tree-eh.c (inlinable_call_p): New function.
974         (make_eh_edges): Use it.
975         (verify_eh_edges): Use it.
976         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
977         * except.c (reachable_next_level): Add inlinable_function argument
978         (sjlj_find_directly_reachable_regions): Update.
979         (add_reachable_handler): Do not set saw_any_handlers.
980         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
981         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
982         Add new inlinable call parameter.
983         (can_throw_internal, can_throw_external): Update.
984         * except.h (can_throw_internal_1, can_throw_external_1,
985         foreach_reachable_handler): Update declaration.
986
987 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
988
989         * config/arm/t-arm-coff, config/h8300/coff.h,
990         config/i386/i386-aout.h, config/i386/i386-coff.h,
991         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
992         config/pdp11/2bsd.h, config/rs6000/aix41.h,
993         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
994         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
995         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
996         sys-types.h: Remove.
997         * Makefile.in: Remove protoize and fixproto support and references
998         in comments.
999         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
1000         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
1001         Remove.
1002         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
1003         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
1004         unprotoize$(exeext).
1005         (rest.encap): Don't depend on $(STMP_FIXPROTO)
1006         (.PHONY): Don't depend on proto.
1007         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
1008         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
1009         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
1010         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
1011         build/gen-protos.o, build/scan.o, xsys-protos.h,
1012         build/fix-header$(build_exeext), build/fix-header.o,
1013         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
1014         stmp-install-fixproto): Remove.
1015         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
1016         SYSCALLS.c or fixproto files.
1017         (install-common): Don't install protoize.
1018         (install-headers-tar, install-headers-cpio, install-headers-cp):
1019         Don't depend on $(STMP_FIXPROTO).
1020         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
1021         install fixproto files or write out fixproto settings.
1022         (uninstall): Don't uninstall protoize.
1023         * config.gcc (use_fixproto): Remove.
1024         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
1025         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
1026         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
1027         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
1028         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
1029         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
1030         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
1031         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
1032         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
1033         * config/t-vxworks (STMP_FIXPROTO): Remove.
1034         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
1035         STMP_FIXPROTO): Remove.
1036         * config.in, configure: Regenerate.
1037         * crtstuff.c (gid_t, uid_t): Don't undefine.
1038         * doc/install.texi: Change m68k-coff to m68k-elf in example.
1039         (arm-*-coff, arm-*-aout: Remove target entries.
1040         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
1041         Remove mention of AIX 4.1.
1042         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
1043         * doc/invoke.texi (Running Protoize): Remove.
1044         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
1045         (Protoize Caveats): Remove.
1046         * tsystem.h: Update comments on headers assumed to exist.
1047
1048 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
1049
1050         * genautomata.c: Add a new year to the copyright.  Add a new
1051         reference.
1052         (struct insn_reserv_decl): Add comments for member bypass_list.
1053         (find_bypass): Remove.
1054         (insert_bypass): New.
1055         (process_decls): Use insert_bypass.
1056         (output_internal_insn_latency_func): Output all bypasses with the
1057         same input insn in one switch case.
1058
1059         * rtl.def (define_bypass): Describe bypass choice.
1060         * doc/md.texi (define_bypass): Ditto.
1061
1062 2009-03-27  Richard Guenther  <rguenther@suse.de>
1063
1064         * gimplify.c (mark_addressable): Export.
1065         * tree-flow.h (mark_addressable): Declare.
1066         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
1067         * tree-ssa.c (verify_phi_args): Verify that address taken
1068         variables have TREE_ADDRESSABLE set.
1069
1070 2009-03-27  Richard Guenther  <rguenther@suse.de>
1071
1072         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
1073         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
1074         Do not mark decls TREE_ADDRESSABLE.
1075         (build_fold_addr_expr): Adjust.
1076         (fold_addr_expr): Remove.
1077         (fold_unary): Use build_fold_addr_expr.
1078         (fold_comparison): Likewise.
1079         (split_address_to_core_and_offset): Likewise.
1080         * coverage.c (tree_coverage_counter_addr): Mark the array decl
1081         TREE_ADDRESSABLE.
1082         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
1083         (gimplify_modify_expr_to_memcpy): Mark source and destination
1084         addressable.
1085         * omp-low.c (create_omp_child_function): Mark the object decl
1086         TREE_ADDRESSABLE.
1087         (lower_rec_input_clauses): Mark the var we take the address of
1088         TREE_ADDRESSABLE.
1089         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
1090
1091 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1092
1093         PR middle-end/39315
1094         * cfgexpand.c (expand_one_stack_var_at): Change alignment
1095         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
1096
1097 2009-03-27  Richard Guenther  <rguenther@suse.de>
1098
1099         PR tree-optimization/39120
1100         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
1101         constraints.
1102         (handle_lhs_call): Process return constraints.  Add escape
1103         constraints if necessary.
1104         (handle_const_call): Fill out return constraints.  Make nested
1105         case more precise.  Avoid consttmp if possible.
1106         (handle_pure_call): Fill out return constraints.  Avoid
1107         callused if possible.
1108         (find_func_aliases): Simplify call handling.
1109
1110 2009-03-27  Richard Guenther  <rguenther@suse.de>
1111
1112         PR tree-optimization/39120
1113         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
1114         as a representative.
1115         (solve_graph): Do propagate CALLUSED.
1116         (handle_pure_call): Use a scalar constraint from CALLUSED for
1117         the return value.
1118         (find_what_p_points_to): CALLUSED shall not appear in poins-to
1119         solutions.
1120
1121 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1122
1123         PR c/39323
1124         * c-common.c (handle_aligned_attribute): Properly check alignment
1125         overflow.  Use (1U << i) instead of (1 << i).
1126
1127         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
1128
1129         * expr.h (get_mem_align_offset): Updated.
1130
1131         * tree.h (tree_decl_common): Change align to "unsigned int" and
1132         move it before pointer_alias_set.
1133
1134 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1135             Jakub Jelinek  <jakub@redhat.com>
1136
1137         PR target/38034
1138         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
1139         gr_register_operand with gr_reg_or_0_operand.
1140         (cmpxchg_rel_di): Likewise.
1141         (sync_lock_test_and_set<mode>): Likewise.
1142
1143 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1144
1145         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
1146         (true_regnum): Likewise.
1147
1148         * rtlanal.c (subreg_info): Moved to ...
1149         * rtl.h (subreg_info): Here.  New.
1150         (subreg_get_info): New.
1151
1152         * rtlanal.c (subreg_get_info): Make it extern.
1153
1154 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1155
1156         PR target/39472
1157         * config/i386/i386.c (ix86_abi): New.
1158         (override_options): Handle -mabi=.
1159         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
1160         (ix86_call_abi_override): Likewise.
1161         (init_cumulative_args): Likewise.
1162         (function_arg_advance): Likewise.
1163         (function_arg_64): Likewise.
1164         (function_arg): Likewise.
1165         (ix86_pass_by_reference): Likewise.
1166         (ix86_function_value_regno_p): Likewise.
1167         (ix86_build_builtin_va_list_abi): Likewise.
1168         (setup_incoming_varargs_64): Likewise.
1169         (is_va_list_char_pointer): Likewise.
1170         (ix86_init_machine_status): Likewise.
1171         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
1172         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
1173         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
1174         (ix86_function_abi): Make it static and return enum calling_abi.
1175         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
1176         with ix86_abi.
1177         (ix86_fn_abi_va_list): Updated.
1178
1179         * config/i386/i386.h (ix86_abi): New.
1180         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
1181         (CONDITIONAL_REGISTER_USAGE): Likewise.
1182         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
1183         (machine_function): Likewise.
1184
1185         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
1186         with ix86_abi.
1187         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
1188         (STACK_BOUNDARY): Likewise.
1189         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
1190
1191         * config/i386/i386.opt (mabi=): New.
1192
1193         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
1194         return enum calling_abi.
1195         (ix86_function_type_abi): Likewise.
1196         (ix86_function_abi): Removed.
1197
1198         * doc/invoke.texi: Document -mabi= option for x86.
1199
1200 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1201
1202         * builtins.c (real_dconstp): Delete.
1203         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
1204
1205 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
1206             Jakub Jelinek  <jakub@redhat.com>
1207
1208         PR debug/37959
1209         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
1210         (gen_subprogram_die): When a function is explicit, generate the
1211         DW_AT_explicit attribute.
1212         * langhooks.h (struct lang_hooks_for_decls): Add
1213         function_decl_explicit_p langhook.
1214         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
1215         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
1216
1217 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
1218
1219         * builtins.c (fold_builtin_memory_op): Optimize memmove
1220         into memcpy if we can prove source and destination don't overlap.
1221
1222         * tree-inline.c: Include gt-tree-inline.h.
1223         (clone_fn_id_num): New variable.
1224         (clone_function_name): New function.
1225         (tree_function_versioning): Use it.
1226         * Makefile.in (GTFILES): Add tree-inline.c.
1227
1228 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
1229
1230         * BASE-VER: Change to 4.5.0.
1231
1232 2009-03-27  Xinliang David Li  <davidxl@google.com>
1233
1234         PR tree-optimization/39557
1235         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
1236
1237 2009-03-27  Xinliang David Li  <davidxl@google.com>
1238
1239         PR tree-optimization/39548
1240         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
1241         candidate check.
1242
1243 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1244
1245         * c-common.c (pointer_int_sum): Use %wd on return from
1246         tree_low_cst.
1247
1248 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1249
1250         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
1251         on return from tree_low_cst.
1252
1253 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1254
1255         PR c++/36799
1256         * ginclude/stdarg.h (va_copy): Define also for
1257         __GXX_EXPERIMENTAL_CXX0X__.
1258
1259 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1260
1261         PR c++/35652
1262         * builtins.h (c_strlen): Do not warn here.
1263         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
1264         * c-common.c (pointer_int_sum): Take an explicit location.
1265         Warn about offsets out of bounds.
1266         * c-common.h (pointer_int_sum): Adjust declaration.
1267
1268 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1269
1270         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
1271         markup glitch.
1272
1273 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
1274
1275         PR c++/39554
1276         * opts.c (warn_if_disallowed_function_p): Don't assume
1277         get_callee_fndecl must return non-NULL.
1278
1279 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
1280
1281         PR rtl-optimization/39522
1282         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
1283         when reg_reloaded_valid is set.
1284
1285 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1286
1287         * config/spu/divv2df3.c: New file.
1288         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
1289         (DPBIT_FUNCS): Filter out _div_df.
1290
1291 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
1292
1293         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
1294         a jump insn, count that jump in the distance to the loop start.
1295
1296 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1297
1298         PR target/39523
1299         * config/sh/sh.c (calc_live_regs): Fix condition for global
1300         registers except PIC_OFFSET_TABLE_REGNUM.
1301
1302 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
1303
1304         PR/39518
1305         * doc/invoke.texi (-mconsole): New.
1306         (-mcygwin): New.
1307         (-mno-cygwin): New.
1308         (-mdll): New.
1309         (-mnop-fun-dllimport): New.
1310         (-mthread): New.
1311         (-mwin32): New.
1312         (-mwindows): New.
1313         (sub section "i386 and x86-64 Windows Options"): New.
1314
1315 2009-03-25  Ralf Corsépius <ralf.corsepius@rtems.org>
1316
1317         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
1318         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
1319
1320 2009-03-25  Richard Guenther  <rguenther@suse.de>
1321
1322         PR middle-end/39497
1323         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
1324         of -Wno-error.
1325
1326 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
1327
1328         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
1329         neither of haifa/selective schedulers are working.
1330
1331 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1332
1333         * doc/invoke.texi (Debugging Options): Fix description of
1334         -fno-merge-debug-strings.
1335
1336 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
1337
1338         * config/cris/libgcc.ver: New version-script.
1339         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
1340
1341         * configure.ac <GAS features, nop mnemonic>: Add pattern
1342         crisv32-*-* for "nop".
1343         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
1344         * configure: Regenerate.
1345
1346 2009-03-24  Ira Rosen  <irar@il.ibm.com>
1347
1348         PR tree-optimization/39529
1349         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
1350         mark_sym_for_renaming for the tag copied to the new vector
1351         pointer.
1352
1353 2009-03-24  Arthur Loiret  <aloiret@debian.org>
1354
1355         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
1356         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
1357         EXTRA_SPEC_FUNCTIONS.
1358         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
1359         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
1360         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
1361         -march and -mtune options.
1362
1363 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
1364
1365         * config/m68k/t-rtems: Add m5329 multilib.
1366
1367 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
1368             Jakub Jelinek  <jakub@redhat.com>
1369
1370         PR debug/39524
1371         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
1372         nodes.
1373
1374 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
1375
1376         PR c/39495
1377         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
1378         instead of c_parser_expression_conv, if original_code isn't one of the
1379         4 allowed comparison codes, fail.
1380
1381 2009-03-23  Richard Guenther  <rguenther@suse.de>
1382
1383         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
1384         * tree.h (struct tree_type): Likewise.
1385         * reload.h (struct insn_chain): Likewise.
1386         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
1387         * function.h (struct function): Likewise.
1388         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
1389
1390 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
1391
1392         PR tree-optimization/39516
1393         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
1394
1395 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
1396
1397         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
1398         should be set true if BITS_PER_WORD of target is bigger than 32
1399
1400 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
1401
1402         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
1403         Translate -B-options to -rpath-link.  Correct existing
1404         rpath-link and conditionalize on !nostdlib.
1405
1406 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1407
1408         * doc/extend.texi (Function Attributes, Variable Attributes):
1409         Fix typos.
1410         * doc/invoke.texi (Debugging Options, Optimize Options)
1411         (i386 and x86-64 Options, MCore Options): Likewise.
1412
1413 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
1414
1415         PR debug/37890
1416         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
1417         it for block local namespace aliases.
1418         (gen_decl_die): Pass context_die to gen_namespace_die.
1419
1420 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
1421
1422         PR c/39495
1423         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
1424         minimum or maximum value.
1425
1426 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
1427
1428         * reginfo.c (globalize_reg): Recompute derived reg sets.
1429
1430 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
1431
1432         PR target/39063
1433         * libgcc2.c (mprotect): Do not use signed arguments for
1434         VirtualProtect, use DWORD arguments.  Also fix the 'may
1435         be used uninitialized' warning for the np variable.
1436
1437 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
1438
1439         PR target/39496
1440         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
1441         functions using regparm calling conventions when not optimizing.
1442         (ix86_function_sseregparm): Similarly for sseregparm calling
1443         conventions.
1444
1445 2009-03-19  Li Feng  <nemokingdom@gmail.com>
1446
1447         PR middle-end/39500
1448         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
1449         dependence if the first conflict is after niter iterations.
1450
1451 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
1452
1453         PR middle-end/38609
1454         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
1455         functions with dynamic stack-pointer adjustments.
1456
1457 2009-03-19  Ben Elliston  <bje@au.ibm.com>
1458
1459         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
1460         option; change to -msdata=data.
1461
1462 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1463
1464         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
1465         and -fopenmp.
1466
1467 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
1468
1469         PR target/35180
1470         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
1471
1472 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
1473
1474         * doc/invoke.texi (Code Gen Options): Expand discussion of
1475         -fno-common.
1476
1477 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
1478
1479         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
1480         * matrix-reorg.c (struct matrix_info): Likewise.
1481         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
1482         * rtl.h (struct mem_attrs): Likewise.
1483         * df.h (struct df): Likewise.
1484         * tree-data-ref.h (struct data_dependence_relation): Likewise.
1485         * ira-int.h (struct ira_allocno): Likewise.
1486         * df-scan.c (struct df_collection_rec): Likewise.
1487         * ira.c (struct equivalence): Likewise.
1488         * function.c (struct temp_slot): Likewise.
1489         * cfgloop.h (struct loop): Likewise.
1490
1491         PR debug/39485
1492         * function.c (use_register_for_decl): When not optimizing, disregard
1493         register keyword for variables with types containing methods.
1494
1495 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
1496
1497         PR middle-end/39447
1498         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
1499         (is_simple_operand): Call contains_component_ref_p before calling data
1500         reference analysis that would fail on COMPONENT_REFs.
1501
1502         * tree-vrp.c (search_for_addr_array): Fix formatting.
1503
1504 2009-03-18  Richard Guenther  <rguenther@suse.de>
1505
1506         * tree-vect-transform.c (vect_loop_versioning): Fold the
1507         generated comparisons.
1508         * tree-vectorizer.c (set_prologue_iterations): Likewise.
1509         (slpeel_tree_peel_loop_to_edge): Likewise.
1510
1511 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1512
1513         PR middle-end/37805
1514         * opts.c (print_specific_help): In addition to `undocumented',
1515         accept `separate' and `joined' flags if passed alone.  Describe
1516         output by the first matched one of those.
1517         (common_handle_option): Skip over empty strings.
1518         * gcc.c (display_help): Fix help string for `--help='.
1519         * doc/invoke.texi (Option Summary, Overall Options): With
1520         `--help=', classes and qualifiers can both be repeated, but
1521         only the latter can be negated.  One should not pass only
1522         negated qualifiers.  Fix markup and examples.
1523
1524         Revert
1525         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
1526         PR middle-end/37805
1527         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
1528         and -fhelp=separate.
1529
1530 2009-03-17  Jing Yu  <jingyu@google.com>
1531
1532         PR middle-end/39378
1533         * function.h (struct rtl_data): Move is_thunk from here...
1534         (struct function): ...to here.
1535         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
1536         * varasm.c (assemble_start_function): Change is_thunk from crtl to
1537         cfun.
1538         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
1539         cfun.
1540         (alpha_does_function_need_gp, alpha_start_function): Likewise.
1541         (alpha_output_function_end_prologue): Likewise.
1542         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
1543         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
1544         (rs6000_output_function_epilogue): Likewise.
1545         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
1546
1547 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
1548
1549         PR target/39482
1550         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
1551         from different units in a single alternative.
1552         (*truncdfsf_i387): Ditto.
1553         (*truncxfsf2_mixed): Ditto.
1554         (*truncxfdf2_mixed): Ditto.
1555
1556 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
1557
1558         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
1559         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
1560
1561         PR debug/39474
1562         * tree-ssa-live.c (remove_unused_locals): Don't remove local
1563         unused non-artificial variables when not optimizing.
1564
1565         PR debug/39471
1566         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
1567         DW_TAG_imported_module even if decl is IMPORTED_DECL with
1568         NAMESPACE_DECL in its DECL_INITIAL.
1569
1570         PR middle-end/39443
1571         * optabs.c (set_user_assembler_libfunc): New function.
1572         * expr.h (set_user_assembler_libfunc): New prototype.
1573         * c-common.c: Include libfuncs.h.
1574         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
1575         for memcmp, memset, memcpy, memmove and abort.
1576         * Makefile.in (c-common.o): Depend on libfuncs.h.
1577
1578         PR debug/39412
1579         * dwarf2out.c (gen_inlined_enumeration_type_die,
1580         gen_inlined_structure_type_die, gen_inlined_union_type_die,
1581         gen_tagged_type_instantiation_die): Removed.
1582         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
1583         do nothing.
1584
1585 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
1586
1587         PR testsuite/38526
1588         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
1589         its use.
1590         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
1591         (check-parallel-%): Ditto.
1592         (check-consistency): Ditto.
1593
1594 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
1595
1596         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
1597         local variable rhs by NULL_TREE.
1598
1599 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
1600
1601         PR target/39477
1602         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
1603
1604 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
1605
1606         PR target/39476
1607         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
1608
1609 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
1610
1611         PR target/39473
1612         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
1613         for ms->sysv ABI calls only in 64bit mode.
1614
1615         * config/i386/i386.md (untyped_call): Support 32bit.
1616
1617 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
1618
1619         * doc/extend.texi: Replace x86_65 with x86_64.
1620
1621 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
1622
1623         PR tree-optimization/39455
1624         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
1625         mismatches for POINTER_TYPE_P (type).
1626         (number_of_iterations_le): Likewise.
1627
1628 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
1629
1630         * config/picochip/picochip.c: Removed profiling support.
1631         * config/picochip/picochip.md: Removed profiling instruction.
1632         * config/picochip/picochip.h: Removed profiling builtin.
1633
1634 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
1635
1636         * doc/install.texi (--with-host-libstdcxx): Document.
1637
1638 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
1639
1640         PR target/34299
1641         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
1642         generate a warning if the function name does not begin with
1643         "__vector" and the function has either the 'signal' or 'interrupt'
1644         attribute, from here to ...
1645         (avr_declare_function_name): ...here. New function.
1646         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
1647         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
1648
1649 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
1650
1651         PR bootstrap/39454
1652         * cse.c (fold_rtx): Don't modify original const_arg1 when
1653         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
1654         separate variable instead.
1655         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
1656         from out of range shift counts.
1657         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
1658
1659 2008-03-13  Catherine Moore  <clm@codesourcery.com>
1660
1661         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
1662         diagnostic.h with $(DIAGNOSTIC_H).
1663
1664 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
1665
1666         PR target/39431
1667         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
1668         predicate.
1669         * config/i386/sync.md (sync_compare_and_swap<mode>,
1670         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
1671         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
1672         into a register.
1673         (sync_double_compare_and_swapdi_pic,
1674         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
1675         cmpxchg8b_pic_memory_operand instead of just memory_operand.
1676
1677 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
1678
1679         PR target/39445
1680         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
1681
1682 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
1683
1684         PR target/39327
1685         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
1686         (avx_addsubv4df3): Likewise.
1687         (*avx_addsubv4sf3): Likewise.
1688         (sse3_addsubv4sf3): Likewise.
1689
1690 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
1691
1692         PR target/38824
1693         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
1694
1695 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
1696
1697         PR debug/39432
1698         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
1699         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
1700         registers for allocnos created from user-defined variables.
1701
1702 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1703
1704         PR target/39181
1705         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
1706         of non-integer mode as well.
1707
1708 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
1709
1710         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
1711         for functions for which the parameter types are unknown.
1712
1713 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
1714
1715         PR target/39137
1716         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
1717         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
1718         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
1719         * config/i386/i386.c (ix86_local_alignment): For
1720         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
1721         long long variables on the stack to avoid dynamic realignment.
1722         Allow the first argument to be a decl rather than type.
1723         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
1724
1725 2009-03-11  Nick Clifton  <nickc@redhat.com>
1726
1727         PR target/5362
1728         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
1729         options.
1730         Add description to mno-lsim option.
1731         * config/mcore/mcore.h: Remove comment about deprecated m4align
1732         option.
1733         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
1734         * doc/invoke.texi: Add description of mno-lsim and
1735         mstack-increment options.
1736
1737         * config/fr30/fr30.opt: Document the -mno-lsim option.
1738         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
1739         and -mno-lsim options.
1740
1741 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1742
1743         * fold-const.c (fold_comparison): Only call fold_inf_compare
1744         if the mode supports infinities.
1745
1746 2009-03-11  Jason Merrill  <jason@redhat.com>
1747
1748         PR debug/39086
1749         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
1750         end already did.  Notice GIMPLE_CALL modifications of the result.
1751         Don't copy debug information from an ignored decl or a decl from
1752         another function.
1753
1754 2009-03-10  Richard Guenther  <rguenther@suse.de>
1755             Nathan Froyd  <froydnj@codesourcery.com>
1756
1757         PR middle-end/37850
1758         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
1759         (__divMODE3): Likewise.
1760
1761 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
1762
1763         PR tree-optimization/39394
1764         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
1765         DECL_SIZE_UNIT of variable length FIELD_DECLs.
1766
1767 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1768
1769         * recog.c (verfiy_changes): Disallow renaming of hard regs in
1770         inline asms for register asm ("") declarations.
1771
1772 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
1773
1774         * fold-const.c (fold_unary): Fix comment.
1775
1776 2009-03-07  Jan Hubicka  <jh@suse.cz>
1777
1778         PR target/39361
1779         * tree-inline.c (setup_one_parameter): Do replacement of const
1780         argument by constant in SSA form.
1781
1782 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1783
1784         PR middle-end/38028
1785         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
1786         determine alignment passed to assign_stack_local.
1787         (assign_parms_unsplit_complex): Likewise.
1788         * except.c (sjlj_build_landing_pads): Likewise.
1789
1790 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
1791
1792         PR middle-end/39360
1793         * tree-flow.h (add_referenced_var): Return bool instead of void.
1794         * tree-dfa.c (add_referenced_var): Return result of
1795         referenced_var_check_and_insert call.
1796         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
1797         of referenced_var_check_and_insert.
1798
1799         PR debug/39372
1800         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
1801         (gen_variable_die): Emit DW_AT_location on abstract static variable's
1802         DIE, don't emit it if abstract origin already has it.
1803         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
1804         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
1805
1806 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1807
1808         * genpreds.c (needs_variable): Fix parentheses at variable name
1809         detection.
1810         (write_tm_constrs_h): Indent generated code.
1811
1812 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1813
1814         * doc/extend.texi (Function Attributes): Add documentation
1815         for isr attributes.
1816
1817 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
1818
1819         PR debug/39387
1820         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
1821         take locus from its DECL_SOURCE_LOCATION instead of input_location.
1822
1823 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1824
1825         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
1826         the loop as bad.
1827
1828 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
1829
1830         PR debug/39379
1831         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
1832         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
1833
1834 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
1835
1836         * config/i386/i386.md (R8_REG, R9_REG): New constants.
1837         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
1838         constants instead of magic numbers.
1839         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
1840         (QI_REG_P): Ditto.
1841         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
1842         (x86_64_ms_abi_int_parameter_registers): Ditto.
1843         (x86_64_int_return_registers): Ditto.
1844         (ix86_maybe_switch_abi): Ditto.
1845         (ix86_expand_call): Ditto for clobbered_registers array.
1846         (ix86_hard_regno_mode_ok): Ditto.
1847         (x86_extended_QIreg_mentioned_p): Ditto.
1848
1849 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
1850
1851         PR tree-optimization/39349
1852         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
1853
1854         * combine.c (gen_lowpart_for_combine): Use omode when generating
1855         clobber.
1856
1857 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
1858
1859         PR rtl-optimization/39235
1860         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
1861
1862 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
1863
1864         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
1865
1866 2009-03-04  Richard Guenther  <rguenther@suse.de>
1867
1868         PR tree-optimization/39362
1869         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
1870         that occur in abnormal PHIs should be varying.
1871
1872 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
1873
1874         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
1875         Extend comments.
1876         (simple_iv):  Take loop as an argument instead of statement.
1877         * tree-scalar-evolution.h (simple_iv): Declaration changed.
1878         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
1879         to simple_iv.
1880         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
1881         Ditto.
1882         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
1883         * matrix-reorg.c (analyze_transpose): Ditto.
1884         * tree-data-ref.c (dr_analyze_innermost): Ditto.
1885         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
1886         * tree-predcom.c (ref_at_iteration): Ditto.
1887         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
1888
1889 2009-03-04  Richard Guenther  <rguenther@suse.de>
1890
1891         PR tree-optimization/39358
1892         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
1893         escaped_id and callused_id.
1894         (solve_graph): Likewise.
1895
1896 2009-03-04  Richard Guenther  <rguenther@suse.de>
1897
1898         PR tree-optimization/39339
1899         * tree-sra.c (try_instantiate_multiple_fields): Make it
1900         no longer ICE on the above.
1901
1902 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
1903
1904         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
1905         that fits within Pmode.
1906
1907 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
1908
1909         PR middle-end/10109
1910         * tm.texi (LIBCALL_VALUE): Update description.
1911
1912 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
1913
1914         PR middle-end/34443
1915         * doc/extend.texi (section): Update description.
1916
1917 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
1918
1919         PR middle-end/39345
1920         * tree-inline.c (remapped_type): New.
1921         (can_be_nonlocal): Call remapped_type instead of remap_type.
1922
1923 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
1924
1925         PR fortran/39354
1926         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
1927         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
1928
1929 2009-03-03  Richard Guenther  <rguenther@suse.de>
1930
1931         PR middle-end/39272
1932         * tree.c (tree_nonartificial_location): New function.
1933         * tree.h (tree_nonartificial_location): Declare.
1934         * builtins.c (expand_builtin_memory_chk): Provide location
1935         of the call location for artificial function pieces.
1936         (maybe_emit_chk_warning): Likewise.
1937         (maybe_emit_sprintf_chk_warning): Likewise.
1938         (maybe_emit_free_warning): Likewise.
1939         * expr.c (expand_expr_real_1): Likewise.
1940
1941 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
1942
1943         PR tree-optimization/39343
1944         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
1945         COMPONENT_REF t has ARRAY_TYPE.
1946
1947 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
1948
1949         PR middle-end/39335
1950         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
1951         when the type precision of the induction variable should be
1952         larger than the type precision of nit.
1953         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
1954         * graphite.c (graphite_loop_normal_form): Same.
1955         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
1956
1957 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
1958
1959         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
1960         (*call_1_rex64_ms_sysv): Use named constants instead of magic
1961         numbers to describe clobbered registers.
1962         (*call_value_0_rex64_ms_sysv): Ditto.
1963         * config/i386/mmx.md (mmx_emms): Ditto.
1964         (mmx_femms): Ditto.
1965
1966 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
1967
1968         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
1969         of ABI_64.
1970
1971 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1972
1973         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
1974         (spu_section_type_flags): New function.
1975
1976 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
1977
1978         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
1979         reg_class_contents of FLOAT_REGS into a temporary.
1980
1981 2009-03-02  Richard Guenther  <rguenther@suse.de>
1982             Ira Rosen  <irar@il.ibm.com>
1983
1984         PR tree-optimization/39318
1985         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
1986         information to the vectorized statement.
1987
1988 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
1989
1990         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
1991         variable.  Use defined names instead of magic constants for REX SSE
1992         registers.
1993
1994 2009-03-01  Richard Guenther  <rguenther@suse.de>
1995
1996         PR tree-optimization/39331
1997         * omp-low.c (lower_send_shared_vars): Do not receive new
1998         values for the reference of DECL_BY_REFERENCE parms or results.
1999
2000 2009-03-01  Jan Hubicka  <jh@suse.cz>
2001
2002         PR debug/39267
2003         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
2004         BLOCK_NONLOCALIZED_VAR): New macros.
2005         (tree_block): Add nonlocalized_vars.
2006         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
2007         gen_decl_die): Add origin argument.  Allow generation of die with
2008         origin at hand only.
2009         (gen_member_die, gen_type_die_with_usage, force_decl_die,
2010         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
2011         of gen_*.
2012         (gen_block_die): Fix checking for unused blocks.
2013         (process_scope_var): Break out from .... ; work with origins only.
2014         (decls_for_scope) ... here; process nonlocalized list.
2015         (dwarf2out_ignore_block): Look for nonlocalized vars.
2016         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
2017         vars.
2018         (dump_scope_block): Dump them.
2019         * tree-inline.c (remap_decls): Handle nonlocalized vars.
2020         (remap_block): Likewise.
2021         (can_be_nonlocal): New predicate.
2022         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
2023
2024 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2025
2026         * configure: Regenerate.
2027
2028 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2029
2030         * optc-gen.awk: No need to duplicate option flags twice.
2031         Reuse help texts for duplicate options which do not have any.
2032
2033         * gcc.c (display_help): Document --version.
2034
2035         * gcc.c (main): If print_help_list and verbose_flag, ensure
2036         driver output comes before subprocess output.
2037
2038         * optc-gen.awk: Assign all remaining fields to help string,
2039         space-separated, for multi-line help in *.opt.
2040
2041         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
2042         -Wno-pedantic-ms-format is for MinGW targets only.
2043
2044         * doc/options.texi (Option file format): Fix bad indentation,
2045         restoring dropped sentence.
2046
2047 2009-02-28  Jan Hubicka  <jh@suse.cz>
2048
2049         * tree-inline.c (tree_function_versioning): Output debug info.
2050
2051 2009-02-28  Jan Hubicka  <jh@suse.cz>
2052
2053         PR debug/39267
2054         * tree-inline.c (setup_one_parameter): Do not copy propagate
2055         arguments when not optimizing.
2056
2057 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
2058
2059         PR target/39327
2060         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
2061         (avx_addsubv4df3): Likewise.
2062         (*avx_addsubv4sf3): Likewise.
2063         (sse3_addsubv4sf3): Likewise.
2064         (*avx_addsubv2df3): Likewise.
2065         (sse3_addsubv2df3): Likewise.
2066         (avx_unpckhps256): Correct item selectors.
2067         (avx_unpcklps256): Likewise.
2068         (avx_unpckhpd256): Likewise.
2069         (avx_unpcklpd256): Likewise.
2070
2071 2009-02-28  Jan Hubicka  <jh@suse.cz>
2072
2073         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
2074         static vars.
2075         (copy_arguments_for_versioning): If var is declared don't declare it.
2076         (tree_function_versioning): First setup substitutions and then copy
2077         args.
2078
2079 2009-02-27  Jan Hubicka  <jh@suse.cz>
2080
2081         PR debug/39267
2082         * cgraph.h (varpool_output_debug_info): Remove.
2083         * cgraphunit.c (varpool_output_debug_info): Remove.
2084         * dwarf2out.c (deferred_locations_struct): New struct
2085         (deferred_locations): New type.
2086         (deferred_locations_list): New static var.
2087         (deffer_location): New function.
2088         (gen_variable_die): Use it.
2089         (decls_for_scope): Output info on local static vars.
2090         (dwarf2out_finish): Process deferred locations.
2091         * varpool.c (varpool_output_debug_info): Remove.
2092
2093 2009-02-27  Jan Hubicka  <jh@suse.cz>
2094
2095         PR debug/39267
2096         * tree.h (TREE_PROTECTED): Fix comment.
2097         (BLOCK_HANDLER_BLOCK): Remove.
2098         (struct tree_block): Remove handler_block add body_block.
2099         (inlined_function_outer_scope_p): New.
2100         (is_body_block): Remove.
2101         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
2102         * dwarf2out.c (is_inlined_entry_point): Remove.
2103         (add_high_low_attributes): Use inlined_function_outer_scope_p.
2104         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
2105         code.
2106         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
2107         * gimplify.c (gimplify_expr): Gimplify body blocks.
2108         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
2109         block with multiple subblocks.
2110         (dump_scope_block): Prettier output; dump more flags and info.
2111         (dump_scope_blocks): New.
2112         (remove_unused_locals): Use dump_scope_blocks.
2113         * tree-flow.h (dump_scope_blocks): Declare.
2114         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
2115         * stmt.c (is_body_block): Remove.
2116         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
2117         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
2118
2119 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
2120
2121         PR middle-end/39308
2122         * graphite.c (graphite_loop_normal_form): Do not call 
2123         number_of_iterations_exit from a gcc_assert.
2124
2125 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2126
2127         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
2128         jumps if COND is NULL.
2129         (find_cond_jump): New function.
2130         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
2131         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
2132
2133 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
2134
2135         * config/alpha/alpha.h (alpha_expand_mov): Return false if
2136         force_const_mem returns NULL_RTX.
2137
2138 2009-02-26  Jan Hubicka  <jh@suse.cz>
2139
2140         PR debug/39267
2141         * cgraph.h (varpool_output_debug_info): Remove.
2142         * cgraphunit.c (varpool_output_debug_info): Remove.
2143         * dwarf2out.c (deferred_locations_struct): New struct
2144         (deferred_locations): New type.
2145         (deferred_locations_list): New static var.
2146         (deffer_location): New function.
2147         (gen_variable_die): Use it.
2148         (decls_for_scope): Output info on local static vars.
2149         (dwarf2out_finish): Process deferred locations.
2150         * varpool.c (varpool_output_debug_info): Remove.
2151
2152 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
2153
2154         PR rtl-optimization/39241
2155         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
2156         to subreg_offset_representable_p.
2157
2158 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
2159
2160         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
2161         execute function prototype.  Get f and nregs from max_reg_num
2162         and get_insns.  Remove the first backward pass as it's dead,
2163         guard the forward pass by flag_expensive_optimizations.
2164         (rest_of_handle_regmove): Delete.
2165         (pass_regmove): Replace it with regmove_optimize.
2166
2167 2009-02-25  Martin Jambor  <mjambor@suse.cz>
2168
2169         PR tree-optimization/39259
2170         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
2171         calls_alloca function flags.
2172         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
2173         calls are detected.
2174
2175 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
2176
2177         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
2178         flags_set_1_rtx, flags_set_1_set): Delete.
2179         (regmove_optimize): Do not call mark_flags_life_zones.
2180
2181 2009-02-24  Julian Brown  <julian@codesourcery.com>
2182
2183         PR target/35965
2184         * config/arm/arm.c (require_pic_register): Only set
2185         cfun->machine->pic_reg once per function.
2186
2187 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
2188
2189         * doc/invoke.texi (Link Options): Document an easier way to pass
2190         options that take arguments to the GNU linker using -Xlinker and -Wl.
2191
2192 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
2193
2194         PR target/33785
2195         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
2196
2197 2009-02-24  Richard Guenther  <rguenther@suse.de>
2198
2199         PR debug/39285
2200         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
2201
2202 2009-02-24  Richard Guenther  <rguenther@suse.de>
2203             Zdenek Dvorak  <ook@ucw.cz>
2204
2205         PR tree-optimization/39233
2206         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
2207         from converting them to a generic type.
2208
2209 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
2210
2211         PR tree-optimization/39260
2212         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
2213         contains a condition with a real type.
2214         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
2215
2216 2009-02-23  Jason Merrill  <jason@redhat.com>
2217
2218         PR c++/38880
2219         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
2220         narrowing_initializer_constant_valid_p.
2221         (narrowing_initializer_constant_valid_p): Don't return 
2222         null_pointer_node for adding a pointer to itself.
2223
2224 2009-02-23  Jan Hubicka  <jh@suse.cz>
2225
2226         PR c/12245
2227         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
2228         resizing.
2229
2230 2009-02-23  Jan Hubicka  <jh@suse.cz>
2231
2232         PR tree-optimization/37709
2233         * tree.c (block_ultimate_origin): Move here from dwarf2out.
2234         * tree.h (block_ultimate_origin): Declare.
2235         * dwarf2out.c (block_ultimate_origin): Move to tree.c
2236         * tree-ssa-live.c (remove_unused_scope_block_p):
2237         Eliminate blocks containig no instructions nor live variables nor
2238         nested blocks.
2239         (dump_scope_block): New function.
2240         (remove_unused_locals): Enable removal of dead blocks by default;
2241         enable dumping at TDF_DETAILS.
2242
2243 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
2244
2245         * config/i386/i386.c (classify_argument): Don't allow COImode
2246         and OImode.
2247         (function_arg_advance_32): Don't allow OImode.
2248         (function_arg_32): Likewise.
2249         (function_value_32): Likewise.
2250         (return_in_memory_32): Likewise.
2251         (function_arg_64): Remove OImode comment.
2252
2253 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
2254
2255         PR target/39261
2256         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2257         ix86_expand_vector_set for V4DImode in 64bit mode only.
2258         (ix86_expand_vector_init_one_var): Likewise.
2259
2260 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
2261
2262         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
2263
2264 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
2265
2266         PR bootstrap/39257
2267         * loop-iv.c: Revert last change.
2268         * emit-rtl.c: Likewise.
2269
2270 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
2271
2272         PR target/39256
2273         * config/i386/i386.c (type_natural_mode): Remove an extra
2274         space in the warning message.
2275         (function_value_32): Handle 32-byte vector modes.
2276         (return_in_memory_32): Likewise.
2277
2278 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
2279
2280         * loop-iv.c (truncate_value): New function.
2281         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
2282         of lowpart_subreg.
2283         (lowpart_subreg): Move to...
2284         * emit-rtl.c: ...here.
2285
2286 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
2287
2288         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
2289         accidental and undocumented change at revision 140860.
2290
2291 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
2292
2293         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
2294         take gimple_seq * arguments.
2295         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
2296         types_compatible_p langhook.
2297
2298 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
2299             Joseph Myers  <joseph@codesourcery.com>
2300
2301         * config/arm/arm.c (arm_builtin_va_list): New function.
2302         (arm_expand_builtin_va_start): Likewise.
2303         (arm_gimplify_va_arg_expr): Likewise.
2304         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
2305         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
2306         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
2307         (va_list_type): New variable.
2308         (arm_mangle_type): Mangle va_list_type appropriately.
2309
2310 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
2311
2312         PR middle-end/39157
2313         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
2314         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
2315         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
2316         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
2317         parameter to 1000 for -O1 by default.
2318         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
2319         parameter.
2320         * loop-invariant.c: Include params.h.
2321         (move_loop_invariants): Don't call move_single_loop_invariants on
2322         very large loops.
2323
2324 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
2325
2326         * calls.c (emit_library_call_value_1): Use slot_offset instead of
2327         offset when calculating bounds for indexing stack_usage_map.  Fixes
2328         a buffer overflow with certain target setups.
2329
2330 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
2331
2332         PR target/39240
2333         * calls.c (expand_call): Clear try_tail_call if caller and callee
2334         disagree in promotion of function return value.
2335
2336 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
2337
2338         PR target/39175
2339         * c-common.c (c_determine_visibility): If visibility changed and
2340         DECL_RTL has been already set, call make_decl_rtl to update symbol
2341         flags.
2342
2343 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
2344
2345         PR c++/39188
2346         * varasm.c (assemble_variable): Don't check DECL_NAME when
2347         globalizing a variable.
2348
2349 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
2350
2351         PR c/38483
2352         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
2353         expression before any __builtin_trap call.
2354         * c-typeck.c (build_function_call): Convert and check function
2355         arguments before generating a call to a trap.  Evaluate the
2356         function arguments before the trap.
2357
2358 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
2359
2360         PR target/39228
2361         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
2362         (UNSPEC_FXAM_MEM): New unspec.
2363         (fxam<mode>2_i387_with_temp): New insn and split pattern.
2364         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
2365         memory using fxam<mode>2_i387_with_temp to remove excess precision.
2366
2367 2009-02-19  Richard Guenther  <rguenther@suse.de>
2368
2369         PR tree-optimization/39207
2370         PR tree-optimization/39074
2371         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
2372         storedanything_tree): New.
2373         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
2374         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
2375         (build_succ_graph): Add edges from STOREDANYTHING to all
2376         non-direct nodes.
2377         (init_base_vars): Initialize STOREDANYTHING.
2378         (compute_points_to_sets): Free substitution info after
2379         building the succ graph.
2380         (ipa_pta_execute): Likewise.
2381
2382         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
2383         field.
2384         (do_ds_constraint): Do not add to special var or non-pointer
2385         field solutions.
2386         (type_could_have_pointers): Split out from ...
2387         (could_have_pointers): ... here.  For arrays use the element type.
2388         (create_variable_info_for): Initialize may_have_pointers.
2389         (new_var_info): Likewise.
2390         (handle_lhs_call): Make the HEAP variable unknown-sized.
2391         (intra_create_variable_infos): Use a type with pointers for
2392         PARM_NOALIAS, make it unknown-sized.
2393
2394 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
2395
2396         PR target/39224
2397         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
2398
2399 2009-02-18  Jason Merrill  <jason@redhat.com>
2400
2401         PR target/39179
2402         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
2403         value if DECL_EXTERNAL.
2404         * tree-sra.c (sra_walk_gimple_assign): Likewise.
2405         * target.h (gcc_target::binds_local_p): Clarify "module".
2406         * tree.h (TREE_PUBLIC): Clarify "module".
2407
2408 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
2409
2410         PR target/38891
2411         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
2412         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
2413
2414 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
2415
2416         PR target/39082
2417         * c.opt (Wabi): Support C and ObjC.
2418         (Wpsabi): New.
2419
2420         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
2421
2422         * config/i386/i386.c (classify_argument): Warn once about the ABI
2423         change when passing union with long double.
2424
2425         * doc/invoke.texi: Update -Wabi for warning psABI changes.
2426
2427 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
2428
2429         PR c/35447
2430         * c-parser.c (c_parser_compound_statement): Always enter and leave
2431         a scope.
2432
2433 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2434
2435         PR target/34587
2436         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
2437
2438 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
2439
2440         PR tree-optimization/36922
2441         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
2442         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
2443         Likewise.
2444
2445 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
2446
2447         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
2448         to 0 for EABI64.
2449
2450 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
2451
2452         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
2453
2454 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
2455
2456         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
2457         tree sharing.
2458
2459 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
2460             Richard Sandiford  <rdsandiford@googlemail.com>
2461
2462         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
2463         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
2464         (loongson_biadd): ...this.
2465
2466 2009-02-17  Richard Guenther  <rguenther@suse.de>
2467
2468         PR tree-optimization/39202
2469         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
2470         a var make sure to follow existing collapses.
2471
2472 2009-02-17  Richard Guenther  <rguenther@suse.de>
2473
2474         PR middle-end/39214
2475         * langhooks.c (lhd_print_error_function): Check for NULL block.
2476
2477 2009-02-17  Richard Guenther  <rguenther@suse.de>
2478
2479         PR tree-optimization/39204
2480         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
2481         of the PHI arg.
2482
2483 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
2484
2485         * config/soft-fp/double.h: Update from glibc CVS.
2486
2487 2009-02-17  Richard Guenther  <rguenther@suse.de>
2488
2489         PR tree-optimization/39207
2490         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
2491         strict-aliasing warnings for pointers pointing to NULL.
2492
2493 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
2494
2495         PR c/35446
2496         * c-parser.c (c_parser_braced_init): Call pop_init_level when
2497         skipping until next close brace.
2498
2499 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
2500
2501         PR target/37049
2502         * config/i386/i386.c (ix86_expand_push): Set memory alignment
2503         to function argument boundary.
2504
2505 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
2506
2507         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
2508         in the lea_add. Reload eventually constraints it properly.
2509         * config/picochip/constraints.md : Remove the target constraint
2510         "b", since it is not needed anymore.
2511
2512 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
2513
2514         * gthr-dce.h: Uglify function parameter and local variable names.
2515         * gthr-gnat.h: Likewise.
2516         * gthr-mipssde.h: Likewise.
2517         * gthr-nks.h: Likewise.
2518         * gthr-posix95.h: Likewise.
2519         * gthr-posix.h: Likewise.
2520         * gthr-rtems.h: Likewise.
2521         * gthr-single.h: Likewise.
2522         * gthr-solaris.h: Likewise.
2523         * gthr-tpf.h: Likewise.
2524         * gthr-vxworks.h: Likewise.
2525         * gthr-win32.h: Likewise.
2526
2527 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
2528
2529         PR target/39196
2530         * config/i386/i386.md: Restrict the new peephole2 to move
2531         between MMX/SSE registers.
2532
2533 2009-02-15  Richard Guenther  <rguenther@suse.de>
2534
2535         Revert
2536         2009-02-13  Richard Guenther  <rguenther@suse.de>
2537
2538         * configure.ac: Enable LFS.
2539         * configure: Re-generate.
2540         * config.in: Likewise.
2541
2542 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2543
2544         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
2545         spu_srqwbyte, spu_srqwbytebc): Define.
2546         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
2547         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
2548         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
2549         "shrqby_<mode>"): New insn-and-split patterns.
2550         * config/spu/spu.c (expand_builtin_args): Determine and return
2551         number of operands using spu_builtin_description data.
2552         (spu_expand_builtin_1): Use it.
2553
2554 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
2555
2556         PR target/38056
2557         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
2558         TARGET_CONST_GP.
2559
2560 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2561
2562         PR target/39149
2563         * config/i386/i386.c (override_options): Correct warning
2564         messages for -malign-loops, -malign-jumps and -malign-functions.
2565
2566 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2567
2568         PR target/39152
2569         * config/i386/i386.md: Restrict the new peephole2 to move
2570         between the general purpose registers.
2571
2572 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2573
2574         PR target/39162
2575         * config/i386/i386.c (type_natural_mode): Add a new argument.
2576         Return the original mode and warn ABI change if vector size is 32byte.
2577         (function_arg_advance): Updated.
2578         (function_arg): Likewise.
2579         (ix86_function_value): Likewise.
2580         (ix86_return_in_memory): Likewise.
2581         (ix86_sol10_return_in_memory): Likewise.
2582         (ix86_gimplify_va_arg): Likewise.
2583         (function_arg_32): Don't warn ABX ABI change here.
2584         (function_arg_64): Likewise.
2585
2586 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2587
2588         * loop-iv.c (implies_p): In the final case, test that operands 0
2589         of the two comparisons match.
2590
2591         * config/bfin/bfin.c (find_prev_insn_start): New function.
2592         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
2593         (find_next_insn_start): Move.
2594
2595 2009-02-13  Richard Guenther  <rguenther@suse.de>
2596
2597         * configure.ac: Enable LFS.
2598         * configure: Re-generate.
2599         * config.in: Likewise.
2600
2601 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
2602
2603         PR c/35444
2604         * c-parser.c (c_parser_parms_list_declarator): Discard pending
2605         sizes on syntax error after some arguments have been parsed.
2606
2607 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
2608
2609         * doc/invoke.texi (-fira): Remove.
2610
2611 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
2612
2613         * caller-save.c: Replace regclass.c with reginfo.c in comments.
2614         * recog.c: Likewise.
2615         * rtl.h: Likewise.
2616
2617 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
2618
2619         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
2620         (umul_ppmm): Likewise.
2621         (count_leading_zeros): Likewise.
2622         (count_trailing_zeros): Likewise.
2623         (UMUL_TIME): Likewise.
2624
2625 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
2626
2627         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
2628         soft-fp/t-softfp to tmake_file.
2629
2630         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
2631         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
2632         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
2633         IA64_BUILTIN_INFQ]: New.
2634         (ia64_init_builtins): Initialize __builtin_infq,
2635         __builtin_fabsq and __builtin_copysignq if not HPUX.
2636         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
2637         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
2638
2639         * config/ia64/lib1funcs.asm (__divtf3): Define only if
2640         SHARED is defined.
2641         (__fixtfti): Likewise.
2642         (__fixunstfti): Likewise.
2643         (__floattitf): Likewise.
2644
2645         * config/ia64/libgcc-glibc.ver: New.
2646         * config/ia64/t-fprules-softfp: Likewise.
2647         * config/ia64/sfp-machine.h: Likewise.
2648
2649         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
2650         (LIBGCC2_TF_CEXT): Likewise.
2651         (TF_SIZE): Likewise.
2652         (TARGET_INIT_LIBFUNCS): Likewise.
2653
2654         * config/ia64/t-glibc (SHLINB_MAPFILES):
2655         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
2656
2657 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
2658
2659         * config/i386/i386.c (construct_container): Rewrite processing
2660         BLKmode with X86_64_SSE_CLASS.
2661
2662 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
2663
2664         PR target/39152
2665         * config/i386/i386.md: Replace simplify_replace_rtx with
2666         replace_rtx in the new peephole2.
2667
2668 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
2669
2670         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
2671         loop unrolling do not happen at -O2.
2672
2673 2009-02-12  Michael Matz  <matz@suse.de>
2674
2675         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
2676
2677 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
2678
2679         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
2680         for -g3.
2681
2682 2009-02-12  Ben Elliston  <bje@au.ibm.com>
2683
2684         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
2685         patterns when updating the back chain.  Missed in the 2009-02-10
2686         change.
2687
2688 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
2689
2690         * doc/extend.texi (Decimal Floating Types): Update identifier of
2691         draft TR and list of missing support.
2692
2693 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
2694
2695         PR middle-end/39154
2696         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
2697         bit to variable length decl's flags, add it also to its
2698         pointer replacement variable.
2699
2700 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
2701             Jakub Jelinek  <jakub@redhat.com>
2702
2703         PR target/39118
2704         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
2705         (memory_blockage): New expander.
2706         (*memory_blockage): New insn pattern.
2707         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
2708         instead of general blockage at the end of function prologue when
2709         frame pointer is used to access red zone area.  Do not emit blockage
2710         when profiling, it is emitted in generic code.
2711         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
2712         function epilogue when frame pointer is used to access red zone area.
2713
2714 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
2715
2716         PR target/38824
2717         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
2718         by arithmetic with memory operands.
2719         * config/i386/predicates.md (commutative_operator): New.
2720
2721 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
2722
2723         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
2724         bulleted lists.
2725
2726 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
2727
2728         * alias.h (record_alias_subset): Declare.
2729         * alias.c (record_alias_subset): Make global.
2730
2731 2009-02-10  Nick Clifton  <nickc@redhat.com>
2732
2733         * tree-parloops.c: Change license to GPLv3.
2734         * ipa-struct-reorg.c: Change license to GPLv3.
2735         * ipa-struct-reorg.h: Change license to GPLv3.
2736
2737 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
2738
2739         PR c/39084
2740         * c-decl.c (start_struct): Return NULL on error.
2741
2742 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
2743
2744         PR middle-end/39124
2745         * cfgloopmanip.c (remove_path): Call remove_bbs after
2746         cancel_loop_tree, not before it.
2747
2748         PR target/39139
2749         * function.h (struct function): Add has_local_explicit_reg_vars bit.
2750         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
2751         VAR_DECLs were seen.
2752         * tree-ssa-live.c (remove_unused_locals): Recompute
2753         cfun->has_local_explicit_reg_vars.
2754         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
2755         copies or clearings if cfun->has_local_explicit_reg_vars.
2756
2757 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
2758
2759         PR target/39118
2760         * config/i386/i386.c (expand_prologue): Emit blockage at the end
2761         of function prologue when frame pointer is used to access
2762         red zone area.
2763
2764 2009-02-10  Richard Guenther  <rguenther@suse.de>
2765
2766         PR middle-end/39127
2767         * gimplify.c (gimple_regimplify_operands): Always look if
2768         we need to create a temporary.
2769
2770 2009-02-10  Richard Guenther  <rguenther@suse.de>
2771
2772         PR tree-optimization/39132
2773         * tree-loop-distribution.c (todo): New global var.
2774         (generate_memset_zero): Trigger TODO_rebuild_alias.
2775         (tree_loop_distribution): Return todo.
2776
2777 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
2778
2779         PR target/39119
2780         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
2781         (x86_64_reg_class_name): Removed.
2782         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
2783         first one isn't X86_64_SSE_CLASS or any other ones aren't
2784         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
2785         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
2786         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
2787         and 3 X86_64_SSEUP_CLASS.
2788         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
2789         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
2790
2791 2009-02-10  Ben Elliston  <bje@au.ibm.com>
2792
2793         * config/rs6000/rs6000.md (allocate_stack): Always use an update
2794         form instruction to update the stack back chain word, even if the
2795         user has disabled the generation of update instructions.
2796         (movdi_<mode>_update_stack): New.
2797         (movsi_update_stack): Likewise.
2798         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
2799         always use an update form instruction to update the stack back
2800         chain word.
2801
2802 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
2803
2804         PR middle-end/38953
2805         * graphite.c (if_region_set_false_region): After moving a region in
2806         the false branch of a condition, remove the empty dummy basic block.
2807         (gloog): Remove wrong fix for PR38953.
2808
2809 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2810
2811         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
2812         generation due to implicit sign extension.
2813
2814 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
2815
2816         PR middle-end/38981
2817         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
2818         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
2819
2820 2009-02-09  Richard Guenther  <rguenther@suse.de>
2821
2822         PR middle-end/35202
2823         * convert.c (convert_to_real): Disable (float)fn((double)x)
2824         to fnf(x) conversion if errno differences may occur and
2825         -fmath-errno is set.
2826
2827 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
2828
2829         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
2830         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2831         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2832
2833 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
2834
2835         PR c/35434
2836         * c-common.c (handle_alias_attribute): Disallow attribute for
2837         anything not a FUNCTION_DECL or VAR_DECL.
2838
2839 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
2840
2841         PR c/39035
2842         * real.c (do_compare): Special-case compare of zero against
2843         decimal float value.
2844
2845 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
2846
2847         PR c/36432
2848         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
2849         as indicating flexible array members unless the field itself is
2850         being declarared as the incomplete array.
2851
2852 2009-02-06  Jan Hubicka  <jh@suse.cz>
2853
2854         PR tree-optimization/38844
2855         * ipa-inline.c (try_inline): Stop inlining recursion when edge
2856         is already inlined.
2857
2858 2009-02-06  Richard Guenther  <rguenther@suse.de>
2859
2860         PR middle-end/38977
2861         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
2862         fork because we may expand it as __gcov_fork.
2863
2864 2009-02-06  Nick Clifton  <nickc@redhat.com>
2865
2866         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
2867
2868 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
2869
2870         PR tree-optimization/35659
2871         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
2872         vn_phi_eq): Shortcut if hashcode does not match.
2873         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
2874         NULL operands.
2875         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
2876         and avoid iterative_hash_expr.
2877         (FOR_EACH_VALUE_ID_IN_SET): New.
2878         (value_id_compare): Remove.
2879         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
2880         sort expressions by value id.
2881
2882 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
2883
2884         PR target/38991
2885         * config/sh/predicates.md (general_movsrc_operand): Don't check
2886         the subreg of system registers here.
2887
2888 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
2889
2890         PR c++/39106
2891         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
2892         on the copied decl.
2893
2894 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
2895
2896         PR rtl-optimization/39110
2897         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
2898         addresses, not aligned ones.
2899
2900 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
2901             Richard Guenther  <rguenther@suse.de>
2902
2903         PR tree-optimization/39100
2904         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
2905         comment says and add edges.
2906
2907 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
2908
2909         PR c/35435
2910         * c-common.c (handle_tls_model_attribute): Ignore attribute for
2911         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
2912
2913 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
2914
2915         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
2916         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
2917         register_bb_in_sese, new_sese, free_sese): Moved.
2918         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
2919         outermost_loop_in_scop, build_scop_iteration_domain,
2920         expand_scalar_variables_ssa_name, get_vdef_before_scop,
2921         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
2922         Use loop_in_sese_p instead of loop_in_scop_p.
2923         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
2924         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
2925         (scopdet_basic_block_info): Fix bug in scop detection.
2926         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
2927         eq_loop_to_cloog_loop): Remove.
2928         (nb_loops_around_loop_in_scop, nb_loop
2929         ref_nb_loops): Moved here...
2930         * graphite.h (ref_nb_loops): ... from here.
2931         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
2932         (loop_domain_dim, loop_iteration_vector_dim): Remove.
2933         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
2934         * testsuite/gcc.dg/graphite/scop-19.c: New
2935
2936 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
2937             Hans-Peter Nilsson  <hp@axis.com>
2938
2939         PR rtl-optimization/37889
2940         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
2941         Move offset handling from PLUS to before the switch.  Use new
2942         arguments when considering SYMBOL_REFs too.
2943         (rtx_addr_can_trap_p): Pass dummy offset and size.
2944         (enum may_trap_p_flags): Remove.
2945         (may_trap_p_1): Pass size from MEM_SIZE.
2946
2947         PR rtl-optimization/38921
2948         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
2949         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
2950         * rtlanal.c (may_trap_after_code_motion_p): Delete.
2951         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
2952
2953 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
2954
2955         AVX Programming Reference (January, 2009)
2956         * config/i386/sse.md (*vpclmulqdq): New.
2957
2958 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
2959
2960         PR tree-optimization/38977
2961         PR gcov-profile/38292
2962         * calls.c (special_function_p): Disregard __builtin_ prefix.
2963
2964 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
2965
2966         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
2967         non-indexable addresses even before reload.
2968
2969 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
2970
2971         PR c/29129
2972         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
2973         as having variable size.  Do not give an error for unnamed
2974         parameters with [*] declarators.  Give a warning for type names
2975         with [*] declarators and mark them as variable size.
2976         * c-parser.c (c_parser_sizeof_expression): Do not give an error
2977         for sizeof applied to [*] type names.
2978
2979 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2980
2981         PR C++/36607
2982         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
2983
2984 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
2985
2986         * gcc.c (process_command): Update copyright notice dates.
2987         * gcov.c (print_version): Likewise.
2988         * gcov-dump.c (print_version): Likewise.
2989         * mips-tfile.c (main): Likewise.
2990         * mips-tdump.c (main): Likewise.
2991
2992 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
2993
2994         PR c/35433
2995         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
2996         for composite type involving a zero-length array type.
2997
2998 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
2999
3000         PR target/35318
3001         * function.c (match_asm_constraints_1): Skip over
3002         initial optional % in the constraint.
3003
3004         PR inline-asm/39059
3005         * c-parser.c (c_parser_postfix_expression): If fixed point is not
3006         supported, don't accept FIXED_CSTs.
3007         * c-decl.c (finish_declspecs): Error if fixed point is not supported
3008         and _Sat is used without _Fract/_Accum.  Set specs->type to
3009         integer_type_node for cts_fract/cts_accum if fixed point is not
3010         supported.
3011
3012 2009-02-02  Catherine Moore  <clm@codesourcery.com>
3013
3014         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
3015
3016 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
3017
3018         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
3019         (ABI_HAS_64BIT_SYMBOLS): Use it.
3020         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
3021
3022 2009-02-02  Paul Brook  <paul@codesourcery.com>
3023
3024         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
3025
3026 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
3027
3028         PR inline-asm/39058
3029         * recog.h (asm_operand_ok): Add constraints argument.
3030         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
3031         recurse on matching constraint.
3032         (check_asm_operands): Pass constraints as 3rd argument to
3033         asm_operand_ok.  Don't look up matching constraint here.
3034         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
3035         to asm_operand_ok.
3036
3037 2009-02-02  Ben Elliston  <bje@au.ibm.com>
3038
3039         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
3040         TARGET_NARROW_VOLATILE_BITFIELD macro names.
3041
3042 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3043
3044         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
3045         information.  Remove some obsolete information.  Reorganize.
3046
3047         * config/pa/fptr.c: Revert license to GPL 2.
3048         * config/pa/milli64.S: Likewise.
3049
3050 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
3051
3052         PR target/38904
3053         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
3054         LIBRARY name in, instead of hard-coding it.
3055         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
3056         extra target make frag to tmake_files according to EH model.
3057         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
3058         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
3059         frags that define makefile variable EH_MODEL appropriately.
3060         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
3061         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
3062         to "-sjlj" according to type of EH configured.
3063         (LIBGCC_SONAME):  Concatenate it to shared library base name.
3064         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
3065         to "_sjlj" according to type of EH configured.
3066         (LIBGCC_SONAME):  Concatenate it to shared library base name.
3067         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
3068         (SHLIB_LINK):  Add missing semicolon to if-else construct.
3069         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
3070         string value of "pe_dll" command-line option.
3071         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
3072         (SHLIB_SONAME):  Use it when overriding t-cygming default.
3073         (SHLIB_IMPLIB):  Override t-cygming default.
3074         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
3075         string value of "pe_dll" command-line option.
3076
3077 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
3078
3079         PR target/38952
3080         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
3081         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
3082
3083 2009-01-31  Richard Guenther  <rguenther@suse.de>
3084
3085         PR tree-optimization/38937
3086         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
3087         computing the transitive closure.
3088
3089 2009-01-30  Richard Guenther  <rguenther@suse.de>
3090
3091         PR tree-optimization/39041
3092         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
3093         Propagate variable indices only if the types match for this stmt.
3094
3095 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
3096
3097         PR target/39013
3098         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
3099         inline but never defined.
3100
3101 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
3102
3103         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
3104         (*insv_h_di_reg_extimm): New insn.
3105         (*insv_l<mode>_reg_extimm): New insn.
3106
3107 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3108
3109         * config/picochip/picochip.c (flag_conserve_stack): set
3110         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
3111         fconserve-stack. Reduce call-overhead used by inliner.
3112
3113 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3114
3115         PR/38157
3116         * common.opt (flag_conserve_stack): Initialised to zero.
3117
3118 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
3119
3120         PR/39002
3121         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
3122         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
3123         method.
3124
3125 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
3126
3127         * ira-color.c (allocno_reload_assign): Update comments.
3128         * regmove.c (regmove_optimize): Likewise.
3129
3130         * ra.h: Removed.
3131
3132 2009-01-29  Robert Millan  <rmh@aybabtu.com>
3133
3134         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
3135         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
3136         `MD_UNWIND_SUPPORT'.
3137         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
3138
3139 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
3140
3141         PR tree-optimization/39007
3142         * tree-loop-distribution.c (generate_builtin): Use
3143         recompute_dominator to compute the immediate dominator of the
3144         basic block just after the loop.
3145
3146 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3147
3148         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
3149         (ASM_OUTPUT_DWARF_PCREL): Define.
3150
3151 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
3152
3153         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
3154         * doc/passes.texi: Remove entries about regclass, local-alloc, and
3155         global.  Modify entries about regmove and IRA.
3156
3157         * ra-conflict.c: Remove the file.
3158
3159         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
3160
3161         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
3162         (pass_regclass_init): Rename to pass_reginfo_init.
3163
3164         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
3165
3166         * toplev.h (flag_ira): Remove.
3167
3168         * caller-save.c (setup_save_areas): Remove flag_ira.
3169
3170         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
3171
3172         * global.c: Remove the file.
3173
3174         * opts.c (decode_options): Remove flag_ira.
3175
3176         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
3177
3178         * regmove.c: Modify file description.
3179         (find_use_as_address, try_auto_increment): Define them only if
3180         AUTO_INC_DEC is defined.
3181         (replacement_quality, replace_in_call_usage, fixup_match_1,
3182         stable_and_no_regs_but_for_p): Remove.
3183         (reg_set_in_bb): Make it static.
3184         (regmove_optimize): Remove flag_ira and code which worked for
3185         !flag_ira.
3186
3187         * local-alloc.c: Remove the file.
3188
3189         * common.opt (fira): Remove.
3190
3191         * ira.c: Include except.h.
3192         (eliminable_regset): Move from global.c.
3193         (mark_elimination): Ditto.  Remove flag_ira.
3194         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
3195         equiv_mem_modified, validate_equiv_mem_from_store,
3196         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
3197         contains_replace_regs, memref_referenced_p, memref_used_between_p,
3198         no_equiv, recorded_label_ref): Move from local-alloc.c.
3199         (update_equiv_regs): Ditto.  Make it static.
3200         (print_insn_chain, print_insn_chains): Move it from global.c.
3201         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
3202         (build_insn_chain): Ditto.  Make it static.
3203         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
3204         Rename to init_live_subregs.
3205         (gate_ira): Remove flag_ira.
3206
3207         * regclass.c: Rename reginfo.c.  Change file description.
3208         (FORBIDDEN_INC_DEC_CLASSES): Remove.
3209         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
3210         (init_reg_sets_1): Remove code for evaluation of
3211         reg_class_superclasses and losing_caller_save_reg_set.
3212         (init_regs): Remove init_reg_autoinc.
3213         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
3214         ok_for_base_p_nonstrict): Remove.
3215         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
3216         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
3217         corresponding entries.
3218         (dump_regclass, record_operand_costs, scan_one_insn,
3219         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
3220         record_address_regs, auto_inc_dec_reg_p): Remove.
3221         (gt-regclass.h): Rename to gt-reginfo.h.
3222
3223         * rtl.h (dump_global_regs, retry_global_alloc,
3224         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
3225
3226         * Makefile.in (RA_H): Remove.
3227         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
3228         Rename regclass.o to reginfo.o.
3229         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
3230         gt-reginfo.h.
3231         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
3232         (GTFILES): Rename regclass.c to reginfo.c.
3233
3234         * passes.c (init_optimization_passes): Remove pass_local_alloc and
3235         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
3236
3237         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
3238         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
3239         Remove flag_ira.
3240         (finish_spills): Ditto.  Remove code for !flag_ira.
3241         
3242 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
3243
3244         PR middle-end/35854
3245         * doc/invoke.texi (rtl debug options): Complete rewrite.
3246         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
3247         to auto_inc_dec".
3248         * mode-switching.c (pass_mode_switching): Rename pass from
3249         "mode-sw" to "mode_sw".
3250         * except.c (pass_convert_to_eh_ranges): Rename pass from
3251         "eh-ranges" to "eh_ranges".
3252         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
3253         to "subreg1".
3254                 
3255         
3256 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
3257             Alexander Monakov  <amonakov@ispras.ru>
3258
3259         PR middle-end/38857
3260         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
3261         register.
3262         (move_exprs_to_boundary): Change return type and pass through
3263         should_move from move_op.  Relax assert.  Update usage ...
3264         (schedule_expr_on_boundary): ... here.  Use should_move instead of
3265         cant_move.
3266         (move_op_orig_expr_found): Indicate that insn was disconnected from
3267         stream.
3268         (code_motion_process_successors): Do not call after_merge_succs
3269         callback if original expression was not found when traversing any of
3270         the branches.
3271         (code_motion_path_driver): Change return type.  Update prototype.
3272         (move_op): Update comment.  Add a new parameter (should_move).  Update
3273         prototype.  Set *should_move based on indication provided by
3274         move_op_orig_expr_found.
3275
3276 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
3277
3278         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
3279         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
3280         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
3281         * config/rs6000/rs6000.c (rs6000_override_options): Default
3282         avoid-indexed-addresses on for Power6, off for everything else.
3283         (avoiding_indexed_address_p): New function.
3284         (rs6000_legitimize_address): Use it.
3285         (rs6000_legitimate_address): Likewise.
3286         * config/rs6000/rs6000.md (movXX_updateX): Likewise
3287
3288 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
3289
3290         PR tree-optimization/38997
3291         * tree-loop-distribution.c (generate_memset_zero): Use
3292         POINTER_PLUS_EXPR for a pointer addition.
3293
3294 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
3295
3296         * config/s390/s390.md (bswap<mode>2): New pattern added.
3297
3298 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
3299
3300         * config/s390/s390.md (*tls_load_31): Added type attribute.
3301
3302 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
3303
3304         * config/s390/s390.md: Fix a few comments.
3305
3306 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
3307
3308         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
3309         (*tm<mode>_full): Fixed z10prop attribute.
3310         (*tst<mode>_extimm): Fixed z10prop attribute.
3311         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
3312         (*tstqiCCT_cconly): Fixed z10prop attribute.
3313         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
3314         (*movsi_larl): Fixed z10prop attribute.
3315         (*movsi_zarch): Fixed z10prop attribute.
3316         (*movsi_eas): Fixed z10prop attribute.
3317         (*movhi): Fixed z10prop attribute.
3318         (*movqi): Fixed z10prop attribute.
3319         (*movstrictqi): Fixed z10prop attribute.
3320         (*mov<mode>): Fixed z10prop attribute.
3321         (*movcc): Fixed z10prop attribute.
3322         (*sethighpartdi_64): Fixed z10prop attribute.
3323         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
3324         (*negdi2_sign_cc): Fixed z10prop attribute.
3325         (*negdi2_sign): Fixed z10prop attribute.
3326         (*absdi2_sign_cc): Fixed z10prop attribute.
3327         (*absdi2_sign): Fixed z10prop attribute.
3328         (*negabsdi2_sign_cc): Fixed z10prop attribute.
3329         (*negabsdi2_sign): Fixed z10prop attribute.
3330         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
3331         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
3332         (doloop_si64): Fixed z10prop attribute.
3333         (doloop_si31): Fixed z10prop attribute.
3334         (doloop_long): Fixed z10prop attribute.
3335         (indirect_jump): Fixed z10prop attribute.
3336         (nop): Fixed z10prop attribute.
3337         (main_base_64): Fixed z10prop attribute.
3338         (reload_base_64): Fixed z10prop attribute.
3339
3340 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
3341
3342         PR rtl-optimization/38740
3343         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
3344         if !optimize.
3345         * config/mips/mips.c (mips_reorg): Likewise.
3346
3347 2009-01-28  Richard Guenther  <rguenther@suse.de>
3348
3349         PR tree-optimization/38926
3350         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
3351         with the correct value id to a value.
3352         (do_regular_insertion): Use the value number of edoubleprime
3353         for the value number of the expr.
3354
3355         Revert
3356         2008-08-21  Richard Guenther  <rguenther@suse.de>
3357
3358         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
3359         a PHI ask VN if it is already available.
3360         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
3361         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
3362
3363 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
3364
3365         PR middle-end/38934
3366         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
3367         set to varying whenever max has TREE_OVERFLOW set, similarly
3368         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
3369
3370 2009-01-28  Richard Guenther  <rguenther@suse.de>
3371
3372         PR middle-end/38908
3373         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
3374         uninitialized aggregate uses in call arguments.
3375
3376 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
3377
3378         PR tree-optimization/38984
3379         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
3380         the nothing_id variable if -fno-delete-null-pointer-checks.
3381
3382 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
3383
3384         PR target/38988
3385         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
3386         (set_got_offset_rex64): Ditto.
3387
3388 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
3389
3390         PR target/38941
3391         * doc/extend.texi: Improve local variable with asm reg.
3392
3393 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
3394
3395         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
3396         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
3397         was not supplied then set warn_packed_bitfield_compat to the
3398         default value of 1.
3399         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
3400         against 1.
3401
3402 2009-01-27  Richard Guenther  <rguenther@suse.de>
3403
3404         PR tree-optimization/38503
3405         * cfgexpand.c (expand_gimple_basic_block): Ignore
3406         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
3407         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
3408         variables that cannot have TBAA applied.
3409         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
3410         statements.
3411
3412 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
3413
3414         PR middle-end/38969
3415         * calls.c (initialize_argument_information): Do not wrap complex
3416         arguments in SAVE_EXPR.
3417
3418 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
3419
3420         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
3421         (INSTALL_LIBGCC): Revert typo commit.
3422
3423 2009-01-26  Richard Guenther  <rguenther@suse.de>
3424
3425         PR tree-optimization/38745
3426         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
3427         from special handling.
3428
3429 2009-01-26  Richard Guenther  <rguenther@suse.de>
3430
3431         PR tree-optimization/38745
3432         * tree-ssa.c (execute_update_addresses_taken): Do not include
3433         variables that cannot possibly be a register in not_reg_needs.
3434         Do not clear TREE_ADDRESSABLE on vars that may not become
3435         registers.
3436         * tree-ssa.c (update_alias_info_1): Include those in the set
3437         of addressable vars.
3438
3439 2009-01-26  Richard Guenther  <rguenther@suse.de>
3440
3441         PR middle-end/38851
3442         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
3443         * tree-ssa-dse.c: Include langhooks.h
3444         (execute_simple_dse): Remove stores with zero size.
3445
3446 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
3447
3448         PR c/38957
3449         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
3450         as PLUS_EXPR.
3451
3452 2009-01-24  Julian Brown  <julian@codesourcery.com>
3453
3454         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
3455         config/arm/linux-atomic.c.
3456         * config/arm/linux-atomic.c: New.
3457
3458 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
3459
3460         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
3461         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
3462         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
3463
3464 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
3465
3466         PR c/38938
3467         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
3468         properly.
3469
3470 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
3471
3472         PR tree-optimization/38953
3473         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
3474         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
3475         (gloog): Split the exit of the scop when the scop exit is a loop exit.
3476         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
3477         changed the CFG.
3478
3479 2009-01-24  Paul Brook  <paul@codesourcery.com>
3480
3481         * config/arm/neon.md (neon_type): Move to arm.md.
3482         (neon_mov<VSTRUCT>): Add neon_type attribute.
3483         * config/arm/arm.md (neon_type): Move to here.
3484         (conds): Add "unconditioal" and use as default for NEON insns.
3485
3486 2009-01-24  Ben Elliston  <bje@au.ibm.com>
3487
3488         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
3489         void *' warning from -Wc++-compat.
3490         * Makefile.in (dominance.o-warn): Remove.
3491
3492 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
3493
3494         PR tree-optimization/38932
3495         * fold-const.c (fold_unary_ignore_overflow): New.
3496         * tree.h (fold_unary_ignore_overflow): Declare.
3497         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
3498         * tree-ssa-sccvn.c (visit_reference_op_load,
3499         simplify_unary_expression): Likewise.
3500
3501 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
3502
3503         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
3504         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
3505         regardless of their type.
3506         * c-common.c (handle_packed_attribute): Don't ignore packed on
3507         bitfields.
3508         * c.opt (Wpacked-bitfield-compat): New warning option.
3509         * stor-layout.c (place_field): Warn if offset of a field changed.
3510         * doc/extend.texi (packed): Mention the ABI change.
3511         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
3512         (Warning Options): Add it to the list.
3513
3514 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
3515
3516         * c-opts.c (c_common_post_options): Fix a typo in comments.
3517
3518 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
3519
3520         PR middle-end/38615
3521         * gimplify.c (gimplify_init_constructor): Fix promotion of const
3522         variables to static.
3523         * doc/invoke.texi (-fmerge-all-constants): Update description.
3524
3525 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
3526
3527         PR target/38931
3528         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
3529         (*movdi_1_rex64): Use type "mmx" for alternative 5.
3530
3531 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
3532
3533         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
3534         a word boundary.
3535         (LOCAL_ALIGNMENT): Similarly.
3536
3537 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
3538             Joseph Myers  <joseph@codesourcery.com>
3539
3540         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
3541         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
3542         * config/arm/arm-tune.md: Regenerate.
3543         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
3544         -march=iwmmxt2.
3545
3546 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
3547
3548         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
3549         version number to five.
3550
3551 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
3552
3553         PR c++/38930
3554         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
3555         * c-common.c (set_underlying_type): Likewise.
3556         (is_typedef_decl ): Likewise
3557         * tree.h: Likewise
3558         (set_underlying_type): Likewise.
3559         (is_typedef_type): Likewise.
3560
3561 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
3562
3563         PR middle-end/38587
3564         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
3565         crossing setjmps.
3566
3567 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
3568
3569         PR bootstrap/37660
3570         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
3571         (LIBGCC_SPEC):  Don't define.
3572         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
3573
3574 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
3575
3576         PR rtl-optimization/38879
3577         * alias.c (base_alias_check): Unaligned access via AND address can
3578         alias all surrounding object types except those with sizes equal
3579         or wider than the size of unaligned access.
3580
3581 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
3582
3583         PR c++/26693
3584         * c-decl.c (clone_underlying_type): Move this ...
3585         * c-common.c (set_underlying_type): ... here.
3586         Also, make sure the function properly sets TYPE_STUB_DECL() on
3587         the newly created typedef variant type.
3588         (is_typedef_decl ): New entry point.
3589         * tree.h: Added a new member member_types_needing_access_check to
3590         struct tree_decl_non_common.
3591         (set_underlying_type): New entry point.
3592         (is_typedef_type): Likewise.
3593
3594 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
3595
3596         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
3597         Check whether two instructions have memory references that
3598         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
3599         are helper functions for traversing.
3600         * alias.h (insn_alias_sets_confilict_p): New prototypes.
3601         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
3602         not to draw dependency edge for instructions with non-conflicting
3603         alias sets.
3604
3605 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
3606
3607         PR other/38758
3608         * longlong.h: Update copyright years.  Use soft-fp license notice.
3609         Sync __clz_tab declaration with glibc.
3610
3611 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
3612
3613         PR target/30687
3614         * doc/extend.texi (syscall_linkage): New.
3615         (version_id): Modify.
3616
3617 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3618             Richard Guenther  <rguenther@suse.de>
3619
3620         PR tree-optimization/38747
3621         PR tree-optimization/38748
3622         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
3623         conversion if the base address is an indirect reference and the
3624         aliasing sets could cause issues.
3625
3626 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
3627
3628         * common.opt (fgraphite, fgraphite-identity): Add comment for 
3629         explaining why these options are not documented.
3630
3631 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
3632
3633         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
3634         gimple_call_lhs is NULL.
3635
3636 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
3637
3638         PR target/38868
3639         * emit-rtl.c (adjust_address_1): Make sure memref is never
3640         overwritten.
3641
3642 2009-01-20  Ben Elliston  <bje@au.ibm.com>
3643
3644         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
3645         const qualifier from arg parameter. Remove unnecessary cast to char *.
3646         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
3647         const qualifier from arg 2.
3648
3649 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
3650
3651         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
3652
3653 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
3654
3655         PR c/38869
3656         * rtl.h (reinit_regs): New prototype.
3657         * regclass.c: Include ira.h.
3658         (reinit_regs): New.
3659         * Makefile.in (regclass.o): Add ira.h.
3660         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
3661
3662 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
3663
3664         PR target/38736
3665         * c-common.c (handle_aligned_attribute): Use
3666         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
3667         default alignment value.
3668
3669         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
3670
3671         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
3672         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
3673
3674         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
3675         __BIGGEST_ALIGNMENT__.
3676
3677         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
3678
3679 2009-01-18  Richard Guenther  <rguenther@suse.de>
3680
3681         PR tree-optimization/38819
3682         * tree-flow.h (operation_could_trap_helper_p): Declare.
3683         * tree-eh.c (operation_could_trap_helper_p): Export.
3684         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
3685         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
3686         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
3687         are about to insert a possibly trapping instruction and fail
3688         in this case.
3689
3690 2009-01-18  Andreas Schwab  <schwab@suse.de>
3691
3692         * doc/install.texi (Configuration): Remove obsolete paragraph
3693         about use of --with-gnu-ld with --with-gnu-as.
3694
3695 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
3696
3697         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
3698         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
3699         Follow spelling conventions.
3700
3701 2009-01-18  Ben Elliston  <bje@au.ibm.com>
3702
3703         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
3704         C++ warning about implicit conversion from void * to struct
3705         bitmap_head_def *.
3706         (bitmap_obstack_free): Likewise for bitmap_element *.
3707         * Makefile.in (bitmap.o-warn): Remove.
3708
3709 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
3710
3711         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
3712
3713 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
3714             Tobias Grosser  <tobi.grosser@amd.com>
3715
3716         * graphite.c (graphite_trans_scop_block): Do not block single
3717         nested loops.
3718
3719 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
3720
3721         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
3722         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
3723         test with assertion.
3724
3725 2009-01-16  Richard Guenther  <rguenther@suse.de>
3726
3727         PR tree-optimization/38835
3728         PR middle-end/36227
3729         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
3730         and INT + PTR -> (INT)(PTR p+ INT) folding.
3731         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
3732
3733 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
3734
3735         PR target/38554
3736         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
3737         the subreg from a lowpart subreg if it is also casting the value.
3738
3739 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
3740             Tobias Grosser  <tobi.grosser@amd.com>
3741
3742         * graphite.c (compare_prefix_loops): New.
3743         (build_scop_canonical_schedules): Rewritten.
3744         (graphite_transform_loops): Move build_scop_canonical_schedules
3745         after build_scop_iteration_domain.
3746
3747 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
3748             Tobias Grosser  <tobi.grosser@amd.com>
3749
3750         * graphite.c (add_conditions_to_domain): Add the loops to 
3751         the dimension of the iteration domain.  Do copy the domain
3752         only when it exists.
3753         (build_scop_conditions_1): Do not call add_conditions_to_domain.
3754         (add_conditions_to_constraints): New.
3755         (can_generate_code_stmt, can_generate_code): Removed.
3756         (gloog): Do not call can_generate_code.
3757         (graphite_transform_loops): Call add_conditions_to_constraints
3758         after building the iteration domain.
3759
3760 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
3761
3762         PR tree-optimization/38789
3763         * tree-ssa-threadedge.c
3764         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3765         __builtin_constant_p.
3766
3767 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
3768
3769         * dce.c (delete_unmarked_insns): Reversed the order that insns are
3770         examined before deleting them.
3771         
3772 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
3773
3774         * function.c (aggregate_value_p): Correctly extract the function
3775         type from CALL_EXPR_FN lookup.
3776
3777 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
3778
3779         * config/picochip/picochip.c (picochip_override_options): Revert
3780         CFI asm flag disable commited previously.
3781
3782 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
3783             Tobias Grosser  <tobi.grosser@amd.com>
3784             Jan Sjodin  <jan.sjodin@amd.com>
3785
3786         * graphite.c (scan_tree_for_params): On substractions negate
3787         all the coefficients of the term.
3788         (clast_to_gcc_expression_red): New.  Handle reduction expressions
3789         of more than two operands.
3790         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
3791         (get_vdef_before_scop): Handle also the case of default definitions.
3792
3793 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
3794
3795         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
3796         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
3797         Also use them when walking CALL_INSN_FUNCTION_USAGE.
3798
3799 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
3800             Joey Ye  <joey.ye@intel.com>
3801
3802         PR middle-end/37843
3803         * cfgexpand.c (expand_stack_alignment): Don't update stack
3804         boundary nor check incoming stack boundary here.
3805         (gimple_expand_cfg): Update stack boundary and check incoming
3806         stack boundary here.
3807
3808 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
3809
3810         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
3811         
3812 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
3813
3814         PR rtl-optimization/38245
3815         * calls.c (expand_call): Add stack arguments to
3816         CALL_INSN_FUNCTION_USAGE even for pure calls (when
3817         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
3818         in regs and partially in memory or BLKmode arguments.
3819         (emit_library_call_value_1): Add stack arguments to
3820         CALL_INSN_FUNCTION_USAGE even for pure calls (when
3821         ACCUMULATE_OUTGOING_ARGS).
3822         * dce.c: Include tm_p.h.
3823         (find_call_stack_args): New function.
3824         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
3825         argument.
3826         (mark_insn): Call find_call_stack_args for CALL_Ps.
3827         (prescan_insns_for_dce): Walk insns backwards in bb rather than
3828         forwards.  Allocate and free arg_stores bitmap if needed, pass it
3829         down to deletable_insn_p, don't mark stores set in arg_stores
3830         bitmap, clear the bitmap at the beginning of each bb.
3831         * Makefile.in (dce.o): Depend on $(TM_P_H).
3832
3833 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
3834
3835         PR target/22599
3836         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
3837         to make sure the insn is a conditional test (bug 22599).  Reformat a
3838         few long lines.
3839
3840 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
3841
3842         PR middle-end/38431
3843         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
3844         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
3845         (gloog): Do not call cleanup_tree_cfg.
3846         (graphite_transform_loops): Call cleanup_tree_cfg after all 
3847         scops have been code generated.
3848
3849 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
3850         * doc/gty.texi (Invoking the garbage collector): Added new node
3851         and section documenting ggc_collect.
3852
3853 2009-01-14  Richard Guenther  <rguenther@suse.de>
3854
3855         PR tree-optimization/38826
3856         PR middle-end/38477
3857         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
3858         initialization notes only if we actually emitted a warning.
3859         (intra_create_variable_infos): Add constraints for a result decl
3860         that is passed by hidden reference.
3861         (build_pred_graph): Mark all related variables non-direct on
3862         address-taking.
3863
3864 2009-01-14  Nick Clifton  <nickc@redhat.com>
3865
3866         * ira-conflicts.c: Include addresses.h for the definition of
3867         base_reg_class.
3868         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
3869         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
3870
3871 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
3872
3873         PR target/38811
3874         * Makefile.in (ira-lives.o): Add except.h.
3875
3876         * ira-lives.c: Include except.h.
3877         (process_bb_node_lives): Process can_throw_internal.
3878
3879 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
3880
3881         PR rtl-optimization/38774
3882         * combine.c (simplify_set): When undoing cc_use change, don't do
3883         PUT_CODE on the newly created comparison, but instead put back the
3884         old comparison.
3885
3886 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
3887
3888         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
3889         values.  Remove duplicate arm8 entry.
3890
3891 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
3892
3893         PR tree-optimization/38786
3894         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
3895         the SSA_NAME case of expand_scalar_variables_expr.
3896         Set the type of an expression to the type of its assign statement.
3897         (expand_scalar_variables_expr): Also gather the scalar computation
3898         used to index the memory access.  Do not pass loop_p.
3899         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
3900         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
3901         the gimple_stmt_iterator where it inserts new code.
3902         Do not pass loop_p.
3903         (copy_bb_and_scalar_dependences): Do not pass loop_p.
3904         (translate_clast): Update call to copy_bb_and_scalar_dependences.
3905
3906 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
3907
3908         * graphite.h (debug_value): Removed.
3909         * graphite.c (debug_value): Removed.
3910
3911 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
3912
3913         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
3914         ldrd/strd with two 32-bit instructions.
3915
3916 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
3917
3918         * config/arm/arm.c (struct processors): Pass for speed down into
3919         cost helper functions.
3920         (const_ok_for_op): Handle COMPARE and inequality nodes.
3921         (arm_rtx_costs_1): Rewrite.
3922         (arm_size_rtx_costs): Update prototype.
3923         (arm_rtx_costs): Pass speed down to helper functions.
3924         (arm_slowmul_rtx_costs): Rework cost calculations.
3925         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
3926         (arm_9e_rtx_costs): Likewise.
3927
3928 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
3929
3930         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
3931         relocations of local symbols wider than UNITS_PER_WORD are not valid.
3932         (alpha_legitimize_address): Do not split local symbols wider than
3933         UNITS_PER_WORD into HIGH/LO_SUM parts.
3934
3935 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
3936
3937         PR bootstrap/38580
3938         * gcc.c (process_command): Replace call to execvp with calls
3939         to pex_one and exit.
3940
3941 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
3942
3943         PR target/29141
3944         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
3945         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
3946         variant for devices with 3-byte PC.
3947         (__tablejump_elpm__): New.
3948
3949 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
3950
3951         PR c/32041
3952         * c-parser.c (c_parser_postfix_expression): Allow `->' in
3953         offsetof member-designator, handle it as `[0].'.
3954
3955 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3956
3957         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
3958         function when not using named sections on targets with named sections
3959         if branch distance is less than 262132.
3960
3961 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
3962
3963         * combine.c (combine_instructions):  Recompute
3964         optimize_this_for_speed_p  for each BB in the main combine loop.
3965
3966 2009-01-12  Tomas Bily  <tbily@suse.cz>
3967
3968         PR middlend/38385
3969         * tree-loop-distribution.c (prop_phis): New function.
3970         (generate_builtin): Call prop_phis.
3971         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
3972
3973 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
3974
3975         PR tree-optimization/38807
3976         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
3977         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
3978
3979 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
3980
3981         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
3982         subreg of op0 to the original op0.
3983
3984 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
3985
3986         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
3987         
3988 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
3989
3990         PR debug/7055
3991         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
3992         starting with digits.
3993
3994 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
3995
3996         PR target/38695
3997         * config/arm/arm.c (arm_is_long_call_p): Don't call
3998         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
3999
4000 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
4001
4002         * regrename.c (regrename_optimize): Fix dumping.
4003         (find_oldest_value_reg): Preserve REG_POINTER.
4004         (copy_hardreg_forward_1): Likewise.
4005
4006 2009-01-09  Diego Novillo  <dnovillo@google.com>
4007
4008         * gimple.h (struct gimple_statement_base) <uid>: Document
4009         the restrictions on its use.
4010         (gimple_uid): Tidy.
4011         (gimple_set_uid): Tidy.
4012
4013 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
4014
4015         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
4016         zero guard even if align_bytes != 0 and count is smaller than
4017         size_needed.
4018
4019 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
4020
4021         PR rtl-optimization/38495
4022         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
4023         (add_range_and_copies_from_move_list): Print all added ranges.
4024         Add ranges to memory optimized destination.
4025
4026 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
4027
4028         PR target/38686
4029         PR target/38708
4030         * config/i386/i386.c (override_options): Reject
4031         -mstringop-strategy=rep_8byte with -m32.
4032         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
4033         to 1.  Do count comparison against epilogue_size_needed at compile
4034         time even when count_exp was constant forced into register.  For
4035         size_needed don't jump to epilogue, instead just avoid aligning
4036         and invoke the body algorithm.  If need_zero_guard, add zero guard
4037         even if count is non-zero, but smaller than size_needed + number of
4038         bytes that could be stored for alignment.
4039         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
4040         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
4041         but smaller than size_needed + number of bytes that could be stored
4042         for alignment.  Compare size_needed with epilogue_size_needed instead
4043         of desired_align - align, don't adjust size_needed, pass
4044         epilogue_size_needed to the epilogue expanders.
4045
4046         PR c/35742
4047         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
4048
4049 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4050
4051         * pa.c (last_address): Change to unsigned.
4052         (update_total_code_bytes): Change argument to unsigned.  Don't
4053         check if insn addresses are set.
4054         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
4055         addresses are not set.
4056         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
4057
4058 2009-01-09  Nick Clifton  <nickc@redhat.com>
4059
4060         * config/sh/symbian.c: Replace uses of DECL_INLINE with
4061         DECL_DECLARED_INLINE_P.
4062
4063 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
4064
4065         PR middle-end/38347
4066         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
4067         GET_MODE (op0) in operand_subword_force calls.
4068
4069         PR middle-end/38771
4070         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
4071         fold_convert arg0 operands to TREE_TYPE (op0) first.
4072
4073 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
4074
4075         * params.def (ira-max-conflict-table-size): Decrease default value
4076         to 1000.
4077
4078 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
4079
4080         PR tree-optimization/37031
4081         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
4082         on parameter_set.
4083         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
4084         allocate it using gc instead of heap, use VEC_quick_push instead of
4085         VEC_safe_push.
4086         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
4087         instead of heap, use VEC_quick_push instead of VEC_safe_push.
4088         * tree-data-ref.h (struct access_matrix): Change matrix to gc
4089         allocated vector from heap allocated.
4090         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
4091         * tree-loop-linear.c (linear_transform_loops): Allocate nest
4092         vector only after perfect_loop_nest_depth call.
4093
4094 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
4095             Jan Sjodin  <jan.sjodin@amd.com>
4096
4097         PR tree-optimization/38559
4098         * graphite.c (debug_value, copy_constraint,
4099         swap_constraint_variables, scale_constraint_variable, ): New.
4100         (get_lower_bound, get_upper_bound): Removed.
4101         (graphite_trans_bb_strip_mine): Clean up this code that works
4102         only for constant number of iterations.  Fully copy upper and
4103         lower bound constraints, not only the constant part of them.
4104         * graphite.h (debug_value): Declared.
4105
4106 2009-01-08  Ira Rosen  <irar@il.ibm.com>
4107
4108         PR tree-optimization/37194
4109         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
4110         Don't add the cost of cost model guard in prologue to scalar 
4111         outside cost in case of known number of iterations.
4112
4113 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
4114             Alan Modra  <amodra@bigpond.net.au>
4115
4116         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
4117         non-word-aligned REG+CONST addressing.
4118
4119 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
4120
4121         PR target/38706
4122         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
4123         free_after_compilation when outputting a thunk.
4124         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
4125         Do not call free_after_compilation here.
4126
4127 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
4128
4129         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
4130         (ix86_valid_target_attribute_inner_p): Ditto.
4131
4132 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
4133
4134         PR tree-optimization/38492
4135         PR tree-optimization/38498
4136         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
4137         * tree-chrec.h (scev_is_linear_expression): Declared.
4138         * graphite.c (graphite_cannot_represent_loop_niter): New.
4139         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
4140         (graphite_loop_normal_form): Use gcc_assert.
4141         (scan_tree_for_params): Use CASE_CONVERT.
4142         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
4143         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
4144         Use gcc_assert.  Discard scops that contain unhandled cases.
4145         (build_scop_conditions): Return a boolean status for unhandled cases.
4146         (strip_mine_profitable_p): Print the loop number, not its depth.
4147         (is_interchange_valid): Pass the depth of the loop nest, don't
4148         recompute it wrongly.
4149         (graphite_trans_bb_block): Same.
4150         (graphite_trans_bb_block): Print tentative of loop blocking.
4151         (graphite_trans_scop_block): Do not print that the loop has been
4152         blocked.
4153         (graphite_transform_loops): Do not handle scops that contain condition
4154         scalar phi nodes.
4155
4156 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
4157
4158         AVX Programming Reference (December, 2008)
4159         * config/i386/avxintrin.h (_mm256_stream_si256): New.
4160         (_mm256_stream_pd): Likewise.
4161         (_mm256_stream_ps): Likewise.
4162
4163         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
4164         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
4165         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
4166         (bdesc_special_args): Add __builtin_ia32_movntdq256,
4167         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
4168         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
4169         (ix86_expand_special_args_builtin): Likewise.
4170
4171         * config/i386/sse.md (AVXMODEDI): New.
4172         (avx_movnt<mode>): Likewise.
4173         (avx_movnt<mode>): Likewise.
4174         (<sse>_movnt<mode>): Remove AVX support.
4175         (sse2_movntv2di): Likewise.
4176
4177 2009-01-07  Richard Guenther  <rguenther@suse.de>
4178
4179         PR middle-end/38751
4180         * fold-const.c (extract_muldiv): Remove obsolete comment.
4181         (fold_plusminus_mult_expr): Undo MINUS_EXPR
4182         to PLUS_EXPR canonicalization for the canonicalization.
4183
4184 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
4185
4186         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
4187         hosted cross-compilers generating less efficient code.
4188
4189 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
4190
4191         * function.h (rtl_data): Add a dbr_scheduled_p field.
4192         * reorg.c (dbr_schedule): Set it.
4193         (gate_handle_delay_slots): Check it.
4194         * config/mips/mips.c (mips_base_delayed_branch): Delete.
4195         (mips_reorg): Check flag_delayed_branch instead of
4196         mips_base_delayed_branch.
4197         (mips_override_options): Don't set mips_base_delayed_branch
4198         or flag_delayed_branch.
4199
4200 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
4201
4202         PR rtl-optimization/38426.
4203         * ira.c (ira): Set current_function_is_leaf earlier.
4204
4205 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
4206
4207         PR rtl-optimization/38722
4208         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
4209         too early, only set a flag and modify after last possible
4210         undo_all point.
4211
4212 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
4213
4214         PR c/34252
4215         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
4216         * real.c (decimal_single_format): Correct values of emin and emax.
4217         (decimal_double_format): Ditto.
4218         (decimal_quad_format): Ditto.
4219         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
4220         computation of DECnn_MIN and DECnn_MAX for corrected values of
4221         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
4222         __DECnn_MIN__, and adjust its computation for the corrected value
4223         of emin.
4224
4225 2009-01-06  Jan Hubicka  <jh@suse.cz>
4226
4227         PR target/38744
4228         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
4229
4230 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
4231
4232         * doc/contrib.texi (Contributors): Slightly adjust the end note.
4233         Add Robert Clark to the list of testers.
4234
4235 2009-01-06  Jan Hubicka  <jh@suse.cz>
4236             Kai Tietz  <kai.tietz@onevision.com>
4237
4238         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
4239         * config/i386/i386.c (ix86_expand_call): Add clobbers.
4240
4241 2009-01-06  Jan Hubicka  <jh@suse.cz>
4242             Kai Tietz  <kai.tietz@onevision.com>
4243
4244         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
4245         for w64 ABI.
4246         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
4247         (ix86_nsaved_regs): Count only general purpose regs.
4248         (ix86_nsaved_sseregs): New.
4249         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
4250         to 16 for w64; compute padding and size of sse reg save area.
4251         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
4252         general purpose regs.
4253         (ix86_emit_save_sse_regs_using_mov): New.
4254         (ix86_expand_prologue): Save SSE regs if needed.
4255         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
4256         (ix86_emit_restore_sse_regs_using_mov): New.
4257         (ix86_expand_epilogue): Save SSE regs if needed.
4258
4259 2009-01-06  Jan Hubicka  <jh@suse.cz>
4260             Kai Tietz  <kai.tietz@onevision.com>
4261
4262         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
4263         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
4264         functions when accumulate outgoing args is off.
4265
4266 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
4267
4268         PR bootstrap/38742
4269         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
4270         before using pseudos_have_intersected_live_ranges_p.
4271
4272         * ira-int.h (ira_assert): Always define.
4273
4274 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
4275
4276         AVX Programming Reference (December, 2008)
4277         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
4278         (_mm256_permute2_pd): Likewise.
4279         (_mm_permute2_ps): Likewise.
4280         (_mm256_permute2_ps): Likewise.
4281         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
4282         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
4283
4284         * config/i386/i386.c (ix86_builtins): Remove
4285         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
4286         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
4287         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
4288         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
4289         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
4290         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
4291         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
4292         __builtin_ia32_vpermil2ps256.
4293         (ix86_init_mmx_sse_builtins): Updated.
4294         (ix86_expand_args_builtin): Likewise.
4295
4296 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4297
4298         * pa.c (output_call): Relocate non-jump insns in the delay slot of
4299         long absolute calls when generating PA 2.0 code.
4300
4301 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
4302
4303         PR rtl-optimization/38583
4304         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
4305
4306         * params.def (ira-max-conflict-table-size): New.
4307
4308         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
4309         
4310         * ira.h (ira_conflicts_p): New external definition.
4311         
4312         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
4313         table.  Report this.  Return result of building.
4314         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
4315         building conflict table.
4316
4317         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
4318         (ira_color): Use ira_conflicts_p.
4319         
4320         * global.c: Include ira.h.
4321         (pseudo_for_reload_consideration_p, build_insn_chain): Use
4322         ira_conflicts_p.
4323
4324         * Makefile.in (global.o): Add ira.h.
4325         
4326         * ira-build.c (mark_all_loops_for_removal,
4327         propagate_some_info_from_allocno): New.
4328         (remove_unnecessary_allocnos): Call
4329         propagate_some_info_from_allocno.
4330         (remove_low_level_allocnos): New.
4331         (remove_unnecessary_regions): Add parameter.  Call
4332         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
4333         parameter to remove_unnecessary_regions.
4334         (ira_build): Remove all regions but root if the conflict table was
4335         not built.  Update conflict hard regs for allocnos crossing calls.
4336
4337         * ira.c (ira_conflicts_p): New global.
4338         (ira): Define and use ira_conflicts_p.
4339
4340         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
4341         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
4342         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
4343         
4344 2009-01-06  Ben Elliston  <bje@au.ibm.com>
4345
4346         * gengtype-lex.l (YY_NO_INPUT): Define.
4347
4348 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4349
4350         PR c/34911
4351         * c-common.c (handle_vector_size_attribute): Also reject
4352         BOOLEAN_TYPE types.
4353
4354 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
4355
4356         PR tree-optimization/38492
4357         * graphite.c (rename_map_elt, debug_rename_elt,
4358         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
4359         rename_map_elt_info, eq_rename_map_elts,
4360         get_new_name_from_old_name, bb_in_sese_p): Moved around.
4361         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
4362         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
4363         (sese_build_livein_liveouts): New.
4364         (new_sese, free_sese): New.
4365         (new_scop): Call new_sese.
4366         (free_scop): Call free_sese.
4367         (rename_variables_from_edge, rename_phis_end_scop): Removed.
4368         (register_old_new_names): Renamed register_old_and_new_names.
4369         (register_scop_liveout_renames, add_loop_exit_phis,
4370         insert_loop_close_phis, struct igp,
4371         default_liveout_before_guard, add_guard_exit_phis,
4372         insert_guard_phis, copy_renames): New.
4373         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
4374         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
4375         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
4376         (scop_adjust_phis_for_liveouts): New.
4377         (gloog): Call scop_adjust_phis_for_liveouts.
4378
4379         * graphite.h (struct sese): Documented.  Added fields liveout,
4380         num_ver and livein.
4381         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
4382         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
4383         (struct scop): Added field liveout_renames.
4384         (SCOP_LIVEOUT_RENAMES): New.
4385
4386 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
4387
4388         PR tree-optimization/38510
4389         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
4390         (translate_clast): Call recompute_all_dominators before
4391         graphite_verify.
4392         (gloog): Call recompute_all_dominators before graphite_verify.
4393
4394 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
4395             Jan Sjodin  <jan.sjodin@amd.com>
4396
4397         PR tree-optimization/38500
4398         * graphite.c (create_sese_edges): Call fix_loop_structure after
4399         splitting blocks.
4400
4401 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
4402
4403         * config.gcc: Add m32r*-*-rtems*.
4404         * config/m32r/rtems.h: New file.
4405
4406 2009-01-05  Ben Elliston  <bje@au.ibm.com>
4407
4408         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
4409         (.po.pox): Likewise.
4410         (po/gcc.pot): Likewise.
4411
4412 2009-01-04  David S. Miller  <davem@davemloft.net>
4413
4414         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
4415         (STARTING_FRAME_OFFSET): Always set to zero.
4416
4417 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
4418
4419         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
4420         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
4421         fixed-point types, and vectors of the same.
4422
4423 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
4424
4425         * config/mips/sync.md (*mb_barrier): Rename to...
4426         (*memory_barrier): ...this.
4427
4428 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
4429
4430         * doc/extend.texi (Function Attributes): Move @cindex after @item
4431         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
4432         and put in alphabetical order. Fix 'target' name and put in order.
4433         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
4434         typos.
4435
4436 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
4437
4438         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
4439         (memory_barrier): Expand as unspec instead of unspec_volatile.
4440         Remove mem:BLK from insn operands.  Use Pmode scratch register.
4441         (*memory_barrier): Define as unspec instead of unspec_volatile.
4442         Use (match_dup 0) as input operand.
4443
4444         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
4445         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
4446         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
4447         scratch register.  Remove operand 1.
4448         (*stbar): Define as unspec instead of unspec_volatile.
4449         Use (match_dup 0) as input operand, remove (const_int 8).
4450         (*membar): Define as unspec instead of unspec_volatile.
4451         Use (match_dup 0) as input operand, remove input operand 2.
4452
4453         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
4454         (memory_barrier): Expand as unspec instead of unspec_volatile.
4455         Remove mem:BLK from insn operands.  Use Pmode scratch register.
4456         (*memory_barrier): Define as unspec instead of unspec_volatile.
4457         Use (match_dup 0) as input operand.
4458
4459         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
4460         Remove mem:BLK from insn operands.  Use Pmode scratch register.
4461         Set volatile flag on operand 0.
4462         (*memory_barrier): New insn pattern.
4463
4464         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
4465         insn operands.
4466         (*memory_barrier): Use (match_dup 0) as input operand.
4467
4468         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
4469         Remove mem:BLK from insn operands.  Use Pmode scratch register.
4470         Set volatile flag on operand 0.
4471         (*mb_internal): New insn pattern.
4472
4473         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
4474
4475 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
4476
4477         PR middle-end/38586
4478         * function.c (struct temp_slot): Move to the section of the file
4479         that deals with temp slots.  Remove field 'address'.
4480         (temp_slot_address_table): New hash table of address -> temp slot.
4481         (struct temp_slot_address_entry): New struct, items for the table.
4482         (temp_slot_address_compute_hash, temp_slot_address_hash,
4483         temp_slot_address_eq, insert_temp_slot_address): Support functions
4484         for the new table.
4485         (find_temp_slot_from_address): Rewrite to use the new hash table.
4486         (remove_unused_temp_slot_addresses): Remove addresses of temp
4487         slots that have been made available.
4488         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
4489         worker function for remove_unused_temp_slot_addresses.
4490         (assign_stack_temp_for_type): Don't clear the temp slot address list.
4491         Add the temp slot address to the address -> temp slot map.
4492         (update_temp_slot_address): Update via insert_temp_slot_address.
4493         (free_temp_slots): Call remove_unused_temp_slot_addresses.
4494         (pop_temp_slots): Likewise.
4495         (init_temp_slots): Allocate the address -> temp slot map, or empty
4496         the map if it is already allocated.
4497         (prepare_function_start): Initialize temp slot processing.
4498
4499 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
4500
4501         PR middle-end/38584
4502         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
4503         Calculate the size of all stack vars assuming no packing of stack
4504         vars will happen, replacing a quadratic algorithm with a linear one.
4505
4506 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
4507
4508         PR target/38707
4509         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
4510         can't be used.
4511
4512 2009-01-03  Diego Novillo  <dnovillo@google.com>
4513
4514         * doc/contrib.texi: Update contributions.
4515
4516 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
4517
4518         PR c++/38705
4519         * builtins.c (fold_builtin_memory_op): Give up if either operand
4520         is volatile.  Set srctype or desttype to non-qualified version
4521         of the other type.
4522
4523         PR c/38700
4524         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
4525         and FUNCTION_DECLs.
4526
4527 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
4528
4529         PR rtl-optimization/35805
4530         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
4531         problem if fast dce is able to remove any instructions.
4532         * dce.c (dce_process_block): Fix dump message.
4533         
4534 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
4535
4536         PR 33649
4537         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
4538
4539 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
4540
4541         PR middle-end/38690
4542         * tree-flow.h (op_code_prio, op_prio): New prototypes.
4543         * tree-pretty-print.c (op_code_prio): New function.
4544         (op_prio): No longer static.  Use op_code_prio.
4545         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
4546         Use op_prio and op_code_prio to determine if () should be
4547         printed around operand(s) or not.
4548
4549         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
4550         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
4551         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
4552         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
4553         pp_character instead of pp_string for single letter printing.
4554
4555 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
4556
4557         * doc/extend.texi: Fix '#pragma GCC option' typo.
4558
4559 2009-01-02  Richard Guenther  <rguenther@suse.de>
4560
4561         * doc/install.texi (--enable-checking): Mention different
4562         default for stage1.
4563         (--enable-stage1-checking): Document.
4564
4565 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
4566
4567         PR middle-end/30142
4568         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
4569         case to be an error.
4570
4571 2009-01-02  Ben Elliston  <bje@au.ibm.com>
4572
4573         * config/fp-bit.h (pack_d): Constify argument.
4574         * config/fp-bit.c (makenan): Constify return type. Remove casts.
4575         (isnan): Constify argument.
4576         (isinf): Likewise.
4577         (iszero): Likewise.
4578         (pack_d): Likewise.
4579         (_fpadd_parts): Constify return type.
4580         (_fpmul_parts): Likewise.
4581         (_fpdiv_parts): Likewise.
4582
4583 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
4584
4585         PR c/36489
4586         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
4587         warn about overwriting initializer with side-effects or
4588         -Woverride-init if !IMPLICIT.
4589         (output_init_element): Likewise.  Pass IMPLICIT down to
4590         add_pending_init.
4591         (process_init_element): Add IMPLICIT argument.  Pass it down
4592         to output_init_element.
4593         (push_init_element, pop_init_level, set_designator): Adjust
4594         process_init_element callers.
4595         (set_nonincremental_init, set_nonincremental_init_from_string):
4596         Adjust add_pending_init callers.
4597         (output_pending_init_elements): Adjust output_init_element callers.
4598         * c-tree.h (process_init_element): Adjust prototype.
4599         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
4600         process_init_element callers.