OSDN Git Service

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