OSDN Git Service

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