OSDN Git Service

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