gcc/:
[official-gcc.git] / gcc / ChangeLog
blob16a34f4d6bc6bd30031cd7545b78cb17f50aaba1
1 2009-04-20  Ian Lance Taylor  <iant@google.com>
3         Fix enum conversions which are invalid in C++:
4         * auto-inc-dec.c (attempt_change): Change 0 to SET in function
5         call.
6         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function
7         call.
8         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
9         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
10         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function
11         call.
12         (dbxout_parms): Likewise.
13         * df-core.c (df_set_flags): Change changeable_flags parameter to
14         int.
15         (df_clear_flags): Likewise.
16         * df-problems.c (df_rd_bb_local_compute_process_def): Change
17         top_flag parameter to int.
18         (df_chain_create_bb_process_use): Likewise.
19         (df_chain_add_problem): Change chain_flags parameter to unsigned
20         int.  Remove cast.
21         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
22         (df_ref_create_structure, df_def_record_1): Likewise.
23         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
24         (df_notes_rescan): Change 0 to VOIDmode in function call.
25         (df_get_call_refs, df_insn_refs_collect): Likewise.
26         (df_bb_regs_collect): Likewise.
27         (df_entry_block_defs_collect): Likewise.
28         (df_exit_block_uses_collect): Likewise.
29         * df.h: Update declarations.
30         * double-int.c (double_int_divmod): Add cast to enum type.
31         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
32         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
33         (based_loc_descr): Likewise.
34         (loc_descriptor_from_tree_1): Change first_op and second_op to
35         enum dwarf_location_atom.  Add cast to enum type.
36         * expmed.c (init_expmed): Change 0 to SET in function call.
37         * expr.c (init_expr_target): Change 0 to VOIDmode in function
38         call.
39         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
40         (do_store_flag): Likewise.
41         * fixed-value.h (struct fixed_value): Change mode to enum
42         machine_mode.
43         * function.c (assign_parms): Change 0 to VOIDmode in function
44         call.
45         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
46         function call.
47         (insert_insn_decl, insert_decl, insert_state): Likewise.
48         (automata_list_finish): Likewise.
49         * genrecog.c (process_define_predicate): Add cast to enum type.
50         * gensupport.c (init_predicate_table): Add cast to enum type.
51         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
52         function call.
53         (gimple_build_call_1, gimple_build_label): Likewise.
54         (gimple_build_goto, gimple_build_asm_1): Likewise.
55         (gimple_build_switch_1, gimple_build_cdt): Likewise.
56         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function
57         call.
58         (enum fallback): Rename from enum fallback_t.
59         (fallback_t): Typedef as int.
60         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
61         GSI_SAME_STMT in function call.
62         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
63         enum type.
64         (setup_reg_class_relations): Likewise.
65         (setup_reg_class_nregs): Change cl to int.  Add casts to enum
66         type.
67         (setup_prohibited_class_mode_regs): Add cast to enum type.
68         (setup_prohibited_mode_move_regs): Likewise.
69         * ira-costs.c (record_reg_classes): Change rclass to enum
70         reg_class.
71         (record_address_regs): Change i to enum reg_class.
72         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
73         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
74         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
75         (GET_MODE_2XWIDER_MODE): Likewise.
76         (GET_CLASS_NARROWEST_MODE): Likewise.
77         * omp-low.c (expand_omp_for): Add cast to enum type.
78         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
79         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
80         * postreload.c (reload_cse_simplify_operands): Change rclass local
81         to enum reg_class.
82         * predict.c (combine_predictions_for_insn): Change best_predictor
83         and predictor to enum br_predictor.
84         (combine_predictions_for_bb): Likewise.
85         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
86         use SET_PREDICT_EXPR_OUTCOME.
87         * real.c (real_arithmetic): Change icode to code in function
88         call.
89         * reginfo.c (init_move_cost): Add casts to enum type.
90         (init_reg_sets_1, init_fake_stack_mems): Likewise.
91         * regmove.c (regclass_compatible_p): Change class0 and class1 to
92         enum reg_class.
93         * reload.c (find_valid_class): Add casts to enum type.
94         (push_reload): Change 0 to NO_REGS in function call.
95         (find_reloads): Change this_alternative to array of enum
96         reg_class.  Remove some now-unnecessary casts.
97         (make_memloc): Change 0 to VOIDmode in function call.
98         * reload1.c (reload): Change 0 to VOIDmode in function call.
99         (eliminate_regs_1, elimination_effects): Likewise.
100         (eliminate_regs_in_insn): Likewise.
101         (emit_input_reload_insns): Add cast to enum type.
102         (delete_output_reload): Change 0 to VOIDmode in function call.
103         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
104         to enum type in function call.
105         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
106         (SET_PREDICT_EXPR_OUTCOME): Define.
107         * tree-dump.c (get_dump_file_info): Change phase parameter to
108         int.
109         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
110         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
111         (dump_function): Likewise.
112         * tree-dump.h: Update declarations.
113         * tree-pass.h: Update declarations.
114         * varasm.c (assemble_integer): Change mclass to enum mode_class.
115         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
116         enum type.
117         (arm_rtx_costs_1): Correct parenthesization.
118         (arm_rtx_costs): Add casts to enum type.
119         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
120         (vfp_emit_fstmd): Use add_rg_note.
121         (emit_multi_reg_push, emit_sfm): Likewise.
122         (thumb_set_frame_pointer): Likewise.
123         (arm_expand_prologue): Likewise.
124         (arm_regno_class): Change return type to enum reg_class.
125         (thumb1_expand_prologue): Use add_reg_note.
126         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
127         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
128         in function call.
129         * config/arm/gentune.sh: Add cast to enum type.
130         * config/arm/arm-tune.md: Rebuild.
131         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
132         (ix86_split_fp_branch, predict_jump): Likewise.
133         (ix86_expand_multi_arg_builtin): Change sub_code from enum
134         insn_code to enum rtx_code.
135         (ix86_builtin_vectorized_function): Add cast to enum type.
136         * config/i386/i386.md (truncdfsf2): Change slot to enum
137         ix86_stack_slot.
138         (truncxf<mode>2, isinf<mode>2): Likewise.
139         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
140         enum type.
141         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
142         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
143         (insert_bundle_state): Change 1 to INSERT in function call.
144         (ia64_add_bundle_selector_before): Likewise.
145         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
146         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
147         (restore_stack_nonlocal): Likewise.
148         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
149         function call.
150         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
151         function call.
152         (mips_rtx_costs): Likewise.
153         (mips_override_options): Add casts to enum type.
154         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
155         in function call.
156         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
157         (store_reg, set_reg_plus_d): Likewise.
158         (hppa_expand_prologue, hppa_profile_hook): Likewise.
159         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
160         cast to enum type.
161         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
162         function call.
163         (emit_unlikely_jump): Use add_reg_note.
164         (rs6000_emit_allocate_stack): Likewise.
165         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
166         (output_toc): Change 1 to INSERT in function call.
167         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
168         (rs6000_initialize_trampoline): Likewise.
169         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
170         function call.
171         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
172         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
173         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
174         (save_gprs): Use add_reg_note.
175         (s390_emit_prologue): Likewise.
176         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function
177         call.
178         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
179         (sparc_fold_builtin): Add cast to enum type.
180         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
181         enum insn_code.
182         (spu_expand_prologue): Use add_reg_note.
183         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function
184         call.
186 2009-04-20  Ian Lance Taylor  <iant@google.com>
188         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
189         (c_parser_postfix_expression_after_primary): Get VEC for list of
190         arguments.  Get original types of arguments.  Call
191         build_function_call_vec.
192         (cached_expr_list_1, cached_expr_list_2): New static variables.
193         (c_parser_expr_list): Change return type to VEC *.  Add
194         p_orig_types parameter.  Change all callers.
195         (c_parser_release_expr): New static function.
196         (c_parser_vec_to_tree_list): New static function.
197         * c-typeck.c (build_function_call): Rewrite to build a VEC and
198         call build_function_call_vec.
199         (build_function_call_vec): New function, based on old
200         build_function_call.
201         (convert_arguments): Remove nargs and argarray parameters.  Change
202         values to a VEC.  Add origtypes parameter.
203         (build_modify_expr): Add rhs_origtype parameter.  Change all
204         callers.
205         (convert_for_assignment): Add origtype parameter.  Change all
206         callers.  If warn_cxx_compat, check for conversion to an enum
207         type when calling a function.
208         (store_init_value): Add origtype parameter.  Change all callers.
209         (digest_init): Likewise.
210         (struct init_node): Add origtype field.
211         (add_pending_init): Add origtype parameter.  Change all callers.
212         (output_init_element): Likewise.
213         (output_pending_init_elements): Pass origtype from init_node to
214         output_init_element.
215         (process_init_elemnt): Pass origtype from c_expr to
216         output_init_element.
217         (c_finish_return): Add origtype parameter.  Change all callers.
218         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
219         caller.
220         (sync_resolve_params): Likewise.
221         (sync_resolve_return): Change params to first_param.  Change
222         caller.
223         (resolve_overloaded_builtins): Change params to VEC *.  Change
224         callers.   Save first parameter around call to
225         build_function_call_vec.
226         * c-decl.c (finish_decl): Add origtype parameter.  Change all
227         callers.  Call build_function_call_vec rather than
228         build_function_call for cleanup.
229         * c-tree.h: Update declarations.
230         * c-common.h: Update declarations.
231         * stub-objc.c (objc_rewrite_function_call): Change parameter from
232         params to first_param.
233         * target.h (struct gcc_target): Change resolve_overloaded_builtin
234         params parameter from tree to void *.
235         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
236         Change arglist parameter to have type void *, and to be a pointer
237         to a VEC.
238         * config/rs6000/rs6000-protos.h
239         (altivec_resolve_overloaded_builtin): Update declaration.
240         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
241         fnargs parameter to have type void *, and to be a pointer to a
242         VEC.  Call build_function_call_vec instead of
243         build_function_call.
244         * config/spu/spu-protos.h (spu_expand_builtin): Update
245         declaration.
247 2009-04-20  Joey Ye  <joey.ye@intel.com>
248             Xuepeng Guo <xuepeng.guo@intel.com>
249             H.J. Lu  <hongjiu.lu@intel.com>
251         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
253         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
254         (IX86_LEA_PRIORITY): Likewise.
255         (distance_non_agu_define): New function.
256         (distance_agu_use): Likewise.
257         (ix86_lea_for_add_ok): Likewise.
258         (ix86_dep_by_shift_count): Likewise.
260         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
261         should split for LEA.
263         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
264         function.
265         (ix86_dep_by_shift_count): Likewise.
267 2009-04-20  Richard Guenther  <rguenther@suse.de>
269         * expr.c (handled_component_p): Move ...
270         * tree.h (handled_component_p): ... here.
271         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
272         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
273         and REALPART_EXPR to be in one group.
275 2009-04-20  Richard Guenther  <rguenther@suse.de>
277         * basic-block.h (get_all_dominated_blocks): Declare.
278         * dominance.c (get_all_dominated_blocks): New function.
279         * tree-cfg.c (get_all_dominated_blocks): Remove.
280         (remove_edge_and_dominated_blocks): Adjust.
281         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
282         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
283         instead of recursing.
285 2009-04-20  Doug Kwan  <dougkwan@google.com>
287         * cgraph.h (cgraph_node_ptr): New type for vector functions.
288         (struct cgraph_node_set_def): New type.
289         (cgraph_node_set) New type. Also declare vector functions.
290         (struct cgraph_node_set_element_def): New type.
291         (cgraph_node_set_element): Ditto.
292         (cgraph_node_set_iterator): New iterator type.
293         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
294         cgraph_node_set_remove, dump_cgraph_node_set,
295         debug_cgraph_node_set): New prototypes.
296         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
297         cgraph_node_set_size): New inlines.
298         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
299         including cgraph.h.
300         (struct ipa_opt_pass): Add struct cgraph_node_set_def
301         argument to function 'write_summary'.
302         * ipa.c: Include ggc.h.
303         (hash_cgraph_node_set_element,
304         eq_cgraph_node_set_element, cgraph_node_set_new,
305         cgraph_node_set_add, cgraph_node_set_remove,
306         cgraph_node_set_find, dump_cgraph_node_set,
307         debug_cgraph_node_set): New functions.
308         * Makefile.in (ipa.o): Add dependency on GGC_H.
310 2009-04-20  Ira Rosen  <irar@il.ibm.com>
312         PR tree-optimization/39675
313         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant 
314         check of the return code of vect_schedule_slp. Check that stmt_vec_info
315         still exists for the statement, before checking its vectorization type.
317 2009-04-20  Michael Matz  <matz@suse.de>
319         * Makefile.in (generated_files): Take out $(simple_generated_c).
321 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
323         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
324         (UINTPTR_TYPE):  Likewise.
326 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
328         PR c/37481
329         * c-typeck.c (digest_init): Check for initializing an array with a
330         string literal.
332 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
334         PR c/19771
335         * c-semantics.c (pop_stmt_list): Propagate
336         STATEMENT_LIST_HAS_LABEL to parent statement list.
338 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
340         * config/mips/mips.h (mips_tune_attr): New macro.
341         * config/mips/mips.md (cpu): Use it.
343 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
345         PR c/38243
346         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
347         declaring a tag.
349 2009-04-19  Diego Novillo  <dnovillo@google.com>
351         * toplev.c (compile_file): Move call to coverage_finish ...
352         * cgraphunit.c (ipa_passes): ... here.
353         Call cgraph_process_new_functions.
354         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
355         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
357 2009-04-19  Jan Hubicka  <jh@suse.cz>
359         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper cfun.
360         (dump_cgraph_node): Dump can throw external flag.
361         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
363 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
365         PR c/32061
366         PR c++/36954
367         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
368         * common.opt (Wlogical-op): Move from here...
369         * c.opt (Wlogical-op): ... to here.
370         * c-typeck.c (parser_build_binary_op): Update call to
371         warn_logical_operator.
372         * c-opts.c (c_common_post_options): Enable warn_logical_op with
373         extra_warnings.
374         * c-common.c (warn_logical_op): Update.
375         * c-common.h (warn_logical_op): Update declaration.
377 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
379         * tree.c (protected_set_expr_location): Fix formatting.
381 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
383         PR c/27676
384         * c-typeck.c (readonly_warning): new.
385         (build_unary_op, build_modify_expr): Use readonly_warning for
386         storing into something readonly but not const-qualified.
388 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
390         PR c/22367
391         * c-typeck.c (build_unary_op): Check for taking address of
392         expression of type void.
394 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
396         PR c/35210
397         * c-typeck.c (build_function_call): Check for calling a function
398         with qualified void return types.  Call require_complete_type when
399         generating a trap.
401 2009-04-18  Jan Hubicka  <jh@suse.cz>
403         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
404         Set nothrow flag.
405         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
406         can_throw_external flag.
407         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
408         * ipa-pure-const.c (ignore_edge): New function.
409         (propagate): Compute order for NOTHROW computation; set NOTHROWs
410         only over can_throw_external edges.
411         (local_pure_const): Add nothrow flag.
412         * ipa-utils.c (searchc): Add ignore_edge callback.
413         (ipa_utils_reduced_inorder): Add ignore_edge callback.
414         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
415         (set_nothrow_function_flags): Update cgraph.
416         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
418 2009-04-18  Richard Guenther  <rguenther@suse.de>
420         PR middle-end/39804
421         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
422         (fold_stmt): ... this and ...
423         (fold_stmt_inplace): ... this.
424         (fold_stmt_1): Fold references in calls and asms.
425         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
427 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
429         * tree-vrp.c (ssa_name_nonzero_p): Remove.
430         * tree.h: Remove the prototype for ssa_name_nonzero_p.
432 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
434         * tree.c (function_args_count): Remove.
435         * tree.h: Remove the prototype for function_args_count.
437 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
439         * tree-iterator.c (expr_only): Remove.
440         * tree.h: Remove the prototype for expr_only.
442 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
444         * reginfo.c (cannot_change_mode_set_regs): Remove.
445         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
447 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
449         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
450         whether operands 0 and 1 overlaps.
452 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
454         PR middle-end/36902
455         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
456         pointer. Use warning_at instead of warning.
457         (search_for_addr_array): Likewise.
458         (check_array_bounds): Likewise.
459         (check_all_array_refs): Check that the incoming edge is not in the
460         list of edges to be removed.
461         (check_all_array_refs): Avoid the temporal pointer.
462         (vrp_visit_cond_stmt): Fix typo.
463         (simplify_switch_using_ranges): Handle the case where the switch
464         index is an integer constant.
466 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
468         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
470 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
472         * doc/extend.texi, doc/invoke.texi: Fix typos.
474 2009-04-17  Cary Coutant  <ccoutant@google.com>
476         * tree-flow-inline.h (get_lineno): Fix inverted test.
478 2009-04-17  Diego Novillo  <dnovillo@google.com>
480         * tree-ssa-pre.c (create_expression_by_pieces): Remove
481         assertion for AVAIL_OUT.
483 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
485         PR target/38627
486         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
487         * config/sh/linux-atomic.asm: Likewise.
489 2009-04-17  Diego Novillo  <dnovillo@google.com>
491         * except.c (debug_eh_tree): New.
492         (struct eh_region, struct eh_status): Move ...
493         * except.h: ... here.
494         (add_type_for_runtime): Declare extern.
495         (lookup_type_for_runtime): Likewise.
496         (debug_eh_tree): Declare.
497         * Makefile.in (GTFILES): List except.h before except.c
499 2009-04-17  Diego Novillo  <dnovillo@google.com>
501         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT
502         for DECL.
503         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
504         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
505         (find_vars_r): ... here.
506         * tree-flow.h (find_referenced_vars_in): Declare.
507         * tree-ssa-pre.c (create_expression_by_pieces): Assert
508         that AVAIL_OUT exists for BLOCK.
509         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
510         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
511         (tree-parloops.o): Likewise.
513 2009-04-17  Simon Baldwin  <simonb@google.com>
515         * toplev.c (default_tree_printer): Add handling for %E format.
517 2009-04-17  Diego Novillo  <dnovillo@google.com>
519         * tree-pretty-print.c (dump_generic_node): Add break
520         after TREE_BINFO handler.
521         Handle COMPLEX_TYPE, REAL_TYPE and FIXED_POINT_TYPE
522         Handle NULL TREE_TYPEs.
523         Handle METHOD_TYPE and FUNCTION_TYPE together.
524         Call print_struct_decl when printing structures and
525         TDF_SLIM is not given.
526         (print_struct_decl): Fix logic for detecting recursion.
528 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
530         PR 31567
531         * gcc.c (create_at_file): New.
532         (compile_input_file_p): New.
533         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
534         * main.c (main): Update call to toplev_main.
535         * toplev.c (toplev_main): Change signature. Call expandargv.
536         * toplev.h (toplev_main): Change signature.
538 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
540         * dwarf2out.c (field_byte_offset): Use the type size as the field size
541         if the latter is not constant.
543 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
545         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
547 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
549         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
550         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
552 2009-04-17  Richard Guenther  <rguenther@suse.de>
554         * tree-ssa-structalias.c (get_constraint_for_component_ref):
555         Handle component references view-converting an invariant address.
557 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
559         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
560         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
561         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
562         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
563         Use @deftypevr rather than @deftypevar.
565 2009-04-17  Richard Guenther  <rguenther@suse.de>
567         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up
568         tuplification.
569         (get_prop_source_stmt): Likewise.
570         (can_propagate_from): Likewise.
572 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
574         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
575         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
576         (--with-multilib-list): Add default value.
577         * configure: Regenerate.
578         * Makefile.in (TM_ENDIAN_CONFIG): Define.
579         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
580         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
581         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
582         Don't add default cpu to multilib list unnecessarily, but do enable
583         the relevant compiler option..
584         Add support for --with-multilib-list=<blank> and
585         --with-multilib-list=!<somelib> to supress unwanted multilibs.
586         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
587         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
588         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
589         TM_MULTILIB_CONFIG.
590         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
591         (MULTILIB_OSDIRNAMES): New variable.
592         * config/sh/t-1e: Delete file.
593         * config/sh/t-mlib-sh1: Delete file.
594         * config/sh/t-mlib-sh2: Delete file.
595         * config/sh/t-mlib-sh2a: Delete file.
596         * config/sh/t-mlib-sh2a-nofpu: Delete file.
597         * config/sh/t-mlib-sh2a-single: Delete file.
598         * config/sh/t-mlib-sh2a-single-only: Delete file.
599         * config/sh/t-mlib-sh2e: Delete file.
600         * config/sh/t-mlib-sh3e: Delete file.
601         * config/sh/t-mlib-sh4: Delete file.
602         * config/sh/t-mlib-sh4-nofpu: Delete file.
603         * config/sh/t-mlib-sh4-single: Delete file.
604         * config/sh/t-mlib-sh4-single-only: Delete file.
605         * config/sh/t-mlib-sh4a: Delete file.
606         * config/sh/t-mlib-sh4a-nofpu: Delete file.
607         * config/sh/t-mlib-sh4a-single: Delete file.
608         * config/sh/t-mlib-sh4a-single-only: Delete file.
609         * config/sh/t-mlib-sh4al: Delete file.
610         * config/sh/t-mlib-sh5-32media: Delete file.
611         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
612         * config/sh/t-mlib-sh5-64media: Delete file.
613         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
614         * config/sh/t-mlib-sh5-compact: Delete file.
615         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
616         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
617         * doc/install.texi (Options specification): Add
618         --with-multilib-list and --with-endian.
620 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
622         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
623         REVISION_c.
624         (OBJS-common): Add plugin-version.o.
625         (plugin-version.o): New.
626         * gcc-plugin.h (plugin_gcc_version): New.
627         (plugin_default_version_check): New.
628         (plugin_init_func, plugin_init): Add version argument.
629         * plugin-version.c: New.
630         * plugin.c (str_plugin_gcc_version_name): New.
631         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
632         pass it to the init function.
633         (plugin_default_version_check): New.
635 2009-04-17  Richard Guenther  <rguenther@suse.de>
637         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
638         for decl-vs-decl disambiguation.
640 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
642         * config/s390/s390.h (s390_tune_attr): New macro definition.
643         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
645 2009-04-17  Richard Guenther  <rguenther@suse.de>
647         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
648         (fold_stmt_r): Likewise.
649         (maybe_fold_reference): New function.
650         (fold_gimple_assign): Handle cases fold_stmt_r did.
651         (fold_stmt): Do not use fold_stmt_r.
652         (fold_stmt_inplace): Likewise.
654 2009-04-17  Richard Guenther  <rguenther@suse.de>
656         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
657         (record_equivalences_from_stmt): Remove useless checks and
658         simplifications.
659         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
660         the type is already suitable.
662 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
664         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
666 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
668         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
669         (CMPtype): Define as __gcc_CMPtype.
671 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
673         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
674         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
676 2009-04-17  Richard Guenther  <rguenther@suse.de>
678         PR tree-optimization/39746
679         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
680         special-casing for builtins and static variable use/def.
681         (call_may_clobber_ref_p_1): Likewise.
683 2009-04-16  Ian Lance Taylor  <iant@google.com>
685         * df.h: Include "timevar.h".
686         (struct df_problem): Change tv_id field to timevar_id_t.
687         * tree-pass.h: Include "timevar.h".
688         (struct opt_pass): Change tv_id field to timevar_id_t.
689         * timevar.h (timevar_id_t): Define TV_NONE.
690         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
691         TV_NONE rather than tv_id != 0.
692         (execute_one_pass): Likewise.
693         * Makefile.in (DF_H): Add $(TIMEVAR_H).
694         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
695         dependencies to $(TREE_PASS_H).
696         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
697         to TV_NONE.
698         (pass_branch_target_load_optimize2): Likewise.
699         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
700         (pass_outof_cfg_layout_mode): Likewise.
701         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
702         (pass_rebuild_cgraph_edges): Likewise.
703         (pass_remove_cgraph_callee_edges): Likewise.
704         * df-core.c (pass_df_initialize_opt): Likewise.
705         (pass_df_initialize_no_opt): Likewise.
706         (pass_df_finish): Likewise.
707         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
708         * except.c (pass_set_nothrow_function_flags): Likewise.
709         (pass_convert_to_eh_region_ranges): Likewise.
710         * final.c (pass_compute_alignments): Likewise.
711         * function.c (pass_instantiate_virtual_regs): Likewise.
712         (pass_init_function): Likewise.
713         (pass_leaf_regs): Likewise.
714         (pass_match_asm_constraints): Likewise.
715         * gimple-low.c (pass_lower_cf): Likewise.
716         (pass_mark_used_blocks): Likewise.
717         * init-regs.c (pass_initialize_regs): Likewise.
718         * integrate.c (pass_initial_value_sets): Likewise.
719         * ira.c (pass_ira): Likewise.
720         * jump.c (pass_cleanup_barriers): Likewise.
721         * omp-low.c (pass_expand_omp): Likewise.
722         (pass_lower_omp): Likewise.
723         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
724         * recog.c (pass_split_all_insns): Likewise.
725         (pass_split_after_reload): Likewise.
726         (pass_split_before_regstack): Likewise.
727         (pass_split_before_sched2): Likewise.
728         (pass_split_for_shorten_branches): Likewise.
729         * reginfo.c (pass_reginfo_init): Likewise.
730         (pass_subregs_of_mode_init): Likewise.
731         (pass_subregs_of_mode_finish): Likewise.
732         * passes.c (pass_postreload): Likewise.
733         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
734         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
735         (pass_warn_function_return): Likewise.
736         (pass_warn_function_noreturn): Likewise.
737         * tree-complex.c (pass_lower_complex): Likewise.
738         (pass_lower_complex_O0): Likewise.
739         * tree-if-conv.c (pass_if_conversion): Likewise.
740         * tree-into-ssa.c (pass_build_ssa): Likewise.
741         * tree-mudflap.c (pass_mudflap_1): Likewise.
742         (pass_mudflap_2): Likewise.
743         * tree-nomudflap.c (pass_mudflap_1): Likewise.
744         (pass_mudflap_2): Likewise.
745         * tree-nrv.c (pass_return_slot): Likewise.
746         * tree-object-size.c (pass_object_sizes): Likewise.
747         * tree-optimize.c (pass_all_optimizations): Likewise.
748         (pass_early_local_passes): Likewise.
749         (pass_all_early_optimizations): Likewise.
750         (pass_cleanup_cfg): Likewise.
751         (pass_cleanup_cfg_post_optimizing): Likewise.
752         (pass_free_datastructures): Likewise.
753         (pass_free_cfg_annotations): Likewise.
754         (pass_fixup_cfg): Likewise.
755         (pass_init_datastructures): Likewise.
756         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
757         (pass_late_warn_uninitialized): Likewise.
758         (pass_update_address_taken): Likewise.
759         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
760         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
761         (pass_cse_sincos): Likewise.
762         (pass_convert_to_rsqrt): Likewise.
763         * tree-ssa-structalias.c (pass_build_alias): Likewise.
764         * tree-stdarg.c (pass_stdarg): Likewise.
765         * tree-tailcall.c (pass_tail_recursion): Likewise.
766         (pass_tail_calls): Likewise.
767         * tree-vect-generic.c (pass_lower_vector): Likewise.
768         (pass_lower_vector_ssa): Likewise.
769         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
771 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
773         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
774         XLR entry.
775         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
776         Handle -march=xlr.
777         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
778         logical and signext.
780 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
782         PR target/39767
783         * config/sh/predicates.md (arith_operand): Check if the operand
784         of TRUNCATE is a REG.
786 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
788         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
789         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
791 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
793         * tree-iterator.c (tsi_split_statement_list_after,
794         tsi_split_statement_list_before): Remove.
795         * tree-iterator.h: Remove the prototypes for
796         tsi_split_statement_list_after and tsi_split_statement_list_before.
798 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
800         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
801         * tree-ssa-propagate.h: Remove the prototype for
802         stmt_makes_single_load.
804 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
806         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
807         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
809 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
811         * tree-iterator.c (EXPR_LAST_BODY): Remove.
813 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
815         * except.c (eh_region_outer_p): Remove.
816         * except.h: Remove the prototype for eh_region_outer_p.
818 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
820         * function.c (current_function_assembler_name): Remove.
821         * function.h: Remove the prototype for
822         current_function_assembler_name.
824 2009-04-16  Ian Lance Taylor  <iant@google.com>
826         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
827         (add_reg_note): Call alloc_reg_note.
828         * rtl.h (alloc_reg_note): Declare.
829         * combine.c (try_combine): Use alloc_reg_note.
830         (recog_for_combine, move_deaths): Likewise.
831         (distribute_notes): Use alloc_reg_note and add_reg_note.
832         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
833         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
834         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
836 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
838         PR rtl-optimization/39762
839         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
840         ira_may_move_out_cost): Add comments about way of their usage.
841         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
842         
843         * ira-conflicts.c (process_regs_for_copy): Use function
844         ira_get_register_move_cost instead of global
845         ira_register_move_cost.
847         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
848         color_pass, move_spill_restore, update_curr_costs): Ditto.
850         * ira-lives.c (process_single_reg_class_operands): Ditto.
852         * ira-emit.c (emit_move_list): Ditto.
854         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
855         (record_reg_classes): Ditto.  Use functions
856         ira_get_register_move_cost and ira_get_may_move_cost instead of
857         global vars ira_register_move_cost, ira_may_move_out_cost and
858         ira_may_move_in_cost.
859         (record_address_regs): Don't call ira_init_register_move_cost.
860         Use function ira_get_may_move_cost instead of global
861         ira_may_move_in_cost.
862         (process_bb_node_for_hard_reg_moves): Use function
863         ira_get_register_move_cost instead of global ira_register_move_cost.
864         (ira_costs): Don't call ira_init_register_move_cost.
865         
866 2009-04-16  Richard Guenther  <rguenther@suse.de>
868         * tree-cfg.c (verify_gimple_assign_binary):
869         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
870         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
871         (create_general_new_stmt): Note that this function is broken.
873 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
875         * common.opt (fhelp): Add Var(help_flag).
876         * gcc-plugin.h (plugin_info): Add help.
877         * plugin.c (plugin_name_args): Add help.
878         (register_plugin_info): Set plugin->help.
879         (print_help_one_plugin): New.
880         (print_plugins_help): New.
881         * plugin.h (print_plugins_help): New.
882         * toplev.c (toplev_main): Call print_plugins_help if needed.
884 2009-04-16  Richard Guenther  <rguenther@suse.de>
886         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
887         (gimple_ior_addresses_taken_1): New function.
888         (gimple_ior_addresses_taken): Likewise.
889         * gimple.h (struct gimple_statement_with_ops_base): Remove
890         addresses_taken member.
891         (gimple_ior_addresses_taken): Declare.
892         (gimple_addresses_taken, gimple_addresses_taken_ptr,
893         gimple_set_addresses_taken): Remove.
894         * ipa-reference.c (mark_address): New function.
895         (scan_stmt_for_static_refs): Use it for marking addresses taken.
896         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
897         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
898         (gimple_add_to_addresses_taken): Remove.
899         (get_tmr_operands): Call mark_address_taken.
900         (get_asm_expr_operands): Likewise.
901         (get_expr_operands): Likewise.
902         (build_ssa_operands): Do not clear the addresses_taken bitmap.
903         (free_stmt_operands): Do not free it.
904         * tree-ssa.c (delete_tree_ssa): Likewise.
905         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
907 2009-04-16  Richard Guenther  <rguenther@suse.de>
909         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
910         (walk_stmt_load_store_ops): Likewise.
911         * gimple.c (get_base_loadstore): New function.
912         (walk_stmt_load_store_addr_ops): Likewise.
913         (walk_stmt_load_store_ops): Likewise.
914         * ipa-pure-const.c (check_op): Simplify.
915         (check_load, check_store): New functions.
916         (check_stmt): Use walk_stmt_load_store_ops.
917         * ipa-reference.c (mark_load): Adjust signature.
918         (mark_store): Likewise.
919         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
921 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
923         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
924         (plugin_info): New.
925         * opts.c (common_handle_option): Don't call print_version.
926         * plugin.c (plugin_name_args): Add version.
927         (register_plugin_info): New.
928         (register_callback): Handle PLUGIN_INFO.
929         (try_init_one_plugin): New.
930         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
931         if failed to init.
932         (finalize_one_plugin): New.
933         (finalize_plugins): New.
934         (print_one_plugin): New.
935         (print_plugins_versions): New.
936         * plugin.h (print_plugins_versions): New.
937         (finalize_plugins): New.
938         * toplev.c (compile_file): Don't call initialize_plugins.
939         (print_version): Call print_plugins_versions.
940         (toplev_main): Call initialize_plugins. Print version if needed.
941         Call finalize_plugins.
943 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
945         * common.opt (fversion): New.
946         * gcc.c (print_version): New.
947         (process_command): Don't print the version. Just set print_version.
948         (main): Print version. Call subprocesses if print_version and
949         verbose_flag are set.
950         * opts.c (common_handle_option): Handle OPT_fversion.
952 2009-04-16  Richard Guenther  <rguenther@suse.de>
953             Ira Rosen  <irar@il.ibm.com>
955         PR tree-optimization/39698
956         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
957         type of the reduction variable.  Only generate the def if
958         it is needed.
960         * omp-low.c (expand_omp_for_generic): When converting to a pointer
961         make sure to first convert to an integer of the same precision.
962         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
963         the type of the evolution correctly in computing the new
964         induction variable base.
966 2009-04-16  Richard Guenther  <rguenther@suse.de>
968         PR middle-end/39625
969         * tree-cfg.c (make_blocks): Split statements with to-be
970         abnormal SSA names on the lhs.
972 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
974         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
975         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
976         * c-typeck.c (really_start_incremental_init): Likewise.
977         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
978         (TARGET_INITIALIZER): Remove it.
979         * target.h (struct target): Remove vector_opaque_p.
980         * tree.c (build_opaque_vector_type): New.
981         * tree.h (TYPE_VECTOR_OPAQUE): New.
982         (build_opaque_vector_type): Declare.
983         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
984         * config/rs6000/rs6000.c (build_opaque_vector_type,
985         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
986         (rs6000_init_builtins): Use build_opaque_vector_type for
987         opaque_V4SI_type_node.
989 2009-04-15  Catherine Moore  <clm@codesourcery.com>
991         * debug.h (set_name):  Declare.
992         * dwarf2out.c (dwarf2out_set_name): Declare.
993         (dwarf2_debug_hooks): Add set_name.
994         (find_AT_string): New.
995         (add_AT_string): Call find_AT_string.
996         (dwarf2out_set_name): New.
997         * cp/decl.c (grokdeclarator): Call set_name.
998         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
999         * debug.c (do_nothing_debug_hooks):  Likewise.
1000         * dbxout.c (dbx_debug_hooks): Likewise.
1001         * sdbout.c (sdb_debug_hooks): Likewise.
1003 2009-04-15  Michael Eager <eager@eagercon.com>
1005         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
1006         reg for single-precision FPU.
1007         * config/rs6000/rs6000.md (movsi_internal1): Only for
1008         !TARGET_SINGLE_FPU.
1009         (movsi_internal1_single): New. Add pattern to move SI values to/from
1010         single-precision FP regs.
1012 2009-04-15  Richard Guenther  <rguenther@suse.de>
1014         * omp-low.c (lower_rec_input_clauses): Build correct address
1015         expressions.
1016         (expand_omp_for_generic): Fix multiplication type.
1017         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
1018         (generate_memset_zero): Fix types.
1019         * tree-profile.c (prepare_instrumented_value): Correctly
1020         widen a pointer.
1022 2009-04-15  Ian Lance Taylor  <iant@google.com>
1024         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
1025         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
1026         for -Wall and for -Wc++-compat.
1027         (c_common_post_options): For C++, set warn_enum_compare if not
1028         already set.
1029         * c-tree.h (struct c_expr): Add field original_type.
1030         (build_external_ref): Update declaration.
1031         * c-parser.c (c_parser_braced_init): Set original_type.
1032         (c_parser_initelt): Likewise.
1033         (c_parser_expr_no_commas): Likewise.
1034         (c_parser_conditional_expression): Likewise.
1035         (c_parser_cast_expression): Likewise.
1036         (c_parser_unary_expression): Likewise.  Pull setting of
1037         original_code to top of function.
1038         (c_parser_sizeof_expression): Set original_type.
1039         (c_parser_alignof_expression): Likewise.
1040         (c_parser_postfix_expression): Likewise.  Pull setting of
1041         original_code to top of function.
1042         (c_parser_postfix_expression_after_paren_type): Set original_type.
1043         (c_parser_postfix_expression_after_primary): Likewise.
1044         (c_parser_expression): Likewise.
1045         * c-typeck.c (build_external_ref): Add type parameter.  Change all
1046         callers.
1047         (c_expr_sizeof_expr): Set original_type field.
1048         (parser_build_unary_op): Likewise.
1049         (parser_build_binary_op): Likewise.  Optionally warn about
1050         comparisons of enums of different types.
1051         (digest_init): Set original_type field.
1052         (really_start_incremental_init): Likewise.
1053         (push_init_level, pop_init_level): Likewise.
1054         * doc/invoke.texi (Warning Options): -Wenum-compare now
1055         supported in C.
1057 2009-04-15  Richard Guenther  <rguenther@suse.de>
1059         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
1060         out a necessary conversion.
1061         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
1062         names we didn't value number.
1063         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
1065 2009-04-15  Richard Guenther  <rguenther@suse.de>
1067         PR tree-optimization/39764
1068         * tree-ssa-ccp.c (get_value): Canonicalize value with
1069         canonicalize_float_value.
1071 2009-04-15  Jan Hubicka  <jh@suse.cz>
1073         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
1074         Wrong version of patch.
1076 2009-04-15  Jan Hubicka  <jh@suse.cz>
1078         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
1080 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
1082         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
1083         our distinct integral and vector types.
1085 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
1087         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
1088         * init.c (build_vtbl_address): Remove call to assemble_external.
1090 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
1092         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
1093         output for other floating point modes.
1095 2009-04-14  Diego Novillo  <dnovillo@google.com>
1097         * diagnostic.c (diagnostic_report_diagnostic): Do not
1098         warn about loaded plugins for DK_ERROR and DK_WARNING.
1099         * c-decl.c (declspecs_add_type): Move call to
1100         invoke_plugin_callbacks ...
1101         * c-parser.c (c_parser_declspecs): ... here.
1102         * plugin.c (dump_active_plugins): Tidy output.
1104 2009-04-14  Diego Novillo  <dnovillo@google.com>
1105             Le-Chun Wu  <lcwu@google.com>
1107         * configure.ac: Add --enable-plugin support.
1108         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
1109         * Makefile.in (PLUGIN_H): Define.
1110         Export ENABLE_PLUGIN and GMPINC to site.exp.
1111         Add PLUGINLIBS to link command.
1112         Add/modify dependencies for plugin.o and files including plugin.h.
1113         (plugin.o): New.
1114         * config.in: Regenerate.
1115         
1116         * opts.c (common_handle_option): Handle OPT_fplugin_ and
1117         OPT_fplugin_arg_.
1119 2009-04-14  Le-Chun Wu  <lcwu@google.com>
1121         * tree-pass.h (register_one_dump_file): Add a prototype for
1122         register_one_dump_file.
1123         * toplev.c (compile_file): Call initialize_plugins.
1124         (do_compile): Call invoke_plugin_callbacks.
1125         (toplev_main): Call invoke_plugin_callbacks.
1126         * common.opt: Add -fplugin= and -fplugin-arg-.
1127         * gcc-plugin.h: New public header file for plugins to include.
1128         * plugin.c: New source file.
1129         * plugin.h: New internal header file.
1130         * passes.c (register_one_dump_file): Make it external.
1131         
1132         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
1134 2009-04-14  Diego Novillo  <dnovillo@google.com>
1136         * doc/plugins.texi: New.
1137         * doc/gccint.texi: Add reference to Plugins chapter.
1138         * doc/invoke.texi: Document -fplugin and -fplugin-arg
1139         * diagnostic.c (diagnostic_report_diagnostic): Warn about
1140         loaded plugins, if any.
1141         * timevar.def (TV_PLUGIN_INIT): Define.
1142         (TV_PLUGIN_RUN): Define.
1143         * plugin.c: Include timevar.h
1144         (plugins_active_p): New.
1145         (dump_active_plugins): New.
1146         (debug_active_plugins): New.
1148 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
1150         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
1151         library paths.
1152         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
1154 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
1156         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
1157         the same as a minus without a shift.
1159 2009-04-14  Nick Clifton  <nickc@redhat.com>
1161         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
1162         comparisons with small integers will always produce a short
1163         branch.
1165 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
1167         Merge:
1168         2008-12-19  Diego Novillo  <dnovillo@google.com>
1170         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
1172 2000-04-14  Richard Guenther  <rguenther@suse.de>
1174         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
1175         verification.
1176         (verify_gimple_assign_binary): Likewise.  Handle shifts and
1177         rotates correctly.
1178         (verify_gimple_phi): Print the mismatched argument position.
1179         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
1180         Fix types.
1181         (vect_update_init_of_dr): Likewise.
1182         * matrix-reorg.c (transform_access_sites): Do what the
1183         comment suggests.
1184         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
1186 2009-04-13  Michael Eager <eager@eagercon.com>
1188         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
1189         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
1190         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
1191         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file, 
1192         remove duplicate config
1194 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1196         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
1197         file_name:line_number type locator of the call site.
1198         
1199 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
1201         * genautomata.c: Put blank after comma.
1202         (automaton_decls): New.
1203         (struct unit_usage): Add comments to member next.
1204         (store_alt_unit_usage): Keep the list ordered.
1205         (unit_present_on_list_p, equal_alternatives_p): New.
1206         (check_regexp_units_distribution): Check units distribution
1207         correctness correctly.
1208         (main): Don't write automata if error is found.  Return correct
1209         exit code.
1210         
1211         * config/m68k/cf.md (cfv4_ds): Remove.
1212         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
1213         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
1215         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
1216         power4-load-ext, power4-store, power4-store-update,
1217         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
1218         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
1219         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
1220         power4-sqrt, power4-isync): Modify reservation to make correct
1221         unit distribution to automata.
1223         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
1224         power5-store-update, power5-two, power5-three, power5-lmul,
1225         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
1226         
1227 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
1229         * except.c (pass_set_nothrow_function_flags): Set name and add
1230         TODO_dump_func.
1231         (set_nothrow_function_flags): Mention in the dump file when
1232         changing a function to nothrow.
1234 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
1236         PR/39066
1237         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
1238         instead of unsigned long.
1240 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1242         * config/arm/arm.c (return_used_this_function): Remove.
1243         (arm_output_function_prologue): Remove use of
1244         return_used_this_function.
1245         (output_return_instruction): Replace use of
1246         return_used_this_function
1247         by cfun->machine->return_used_this_function.
1248         (arm_output_epilogue): Likewise.
1249         (arm_output_function_epilogue): Likewise.
1250         (thumb_unexpanded_epilogue): Likewise.
1251         * config/arm/arm.h (struct machine_function):
1252         New member return_used_this_function.
1254 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
1256         * doc/install.texi: Correct description of default directory for
1257         --with-gxx-include-dir.
1259 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
1261         * fold-const.c (build_range_check): Properly deal with enumeral and
1262         boolean base types.
1264 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
1266         * doc/invoke.texi (max_gcse_passes): Remove documentation.
1267         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
1268         * params.h (MAX_GCSE_PASSES): Remove.
1269         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
1270         in sequence.  Remove ability to run multiple passes.
1271         (bypass_jumps): Report run as third CPROP pass.
1273 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
1275         PR middle-end/39651
1276         * except.c (can_throw_external): Look at each insn in a SEQUENCE
1277         when deciding whether the whole SEQUENCE can throw.
1279 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
1281         PR target/39740
1282         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
1283         offseted label references.
1285 2009-04-11  Jan Hubicka  <jh@suse.cz>
1287         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
1289 2009-04-11  Richard Guenther  <rguenther@suse.de>
1291         PR middle-end/39732
1292         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
1293         return variables as TREE_ADDRESSABLE.
1295 2009-04-11  Richard Guenther  <rguenther@suse.de>
1297         PR tree-optimization/39713
1298         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
1299         reference trees have SSA_NAME operands.
1301 2009-04-11  Richard Guenther  <rguenther@suse.de>
1303         PR c/39712
1304         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
1305         address expressions.
1307 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
1309         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
1310         match changes in Cygwin 1.7
1311         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
1312         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
1314 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
1316         PR tree-optimization/39701
1317         * doc/invoke.texi (Optimization Options): Document change in
1318         meaning and initialization of -fdelete-null-pointer-checks.
1320 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
1322         PR middle-end/39701
1323         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
1325         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
1326         here.
1328         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
1330 2009-04-10  Chao-ying Fu  <fu@mips.com>
1332         * doc/tm.texi (Instruction Output): Document
1333         TARGET_ASM_FINAL_POSTSCAN_INSN.
1334         * target.h (final_postscan_insn): New field in asm_out.
1335         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
1336         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
1337         * final.c (final_scan_insn): Call
1338         targetm.asm_out.final_postscan_insn after outputting
1339         an asm macro and a normal instruction.
1341         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
1342         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
1343         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
1344         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
1345         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
1347 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
1349         PR middle-end/39701
1350         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
1351         variables as non-NULL even with -fdelete-null-pointer-checks.
1353 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
1355         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
1357 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
1359         PR target/39678
1360         * config/i386/i386.c (classify_argument): Handle SCmode with
1361         (bit_offset % 64) != 0.
1363 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
1365         * doc/invoke.texi (Optimize Options): Add cross-reference to
1366         -Q --help=optimizers examples.
1368 2009-04-10  Ben Elliston  <bje@au.ibm.com>
1370         PR target/36800
1371         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
1372         regalign for the reg == fpr and TDmode case.
1374 2009-04-09  David Ayers  <ayers@fsfe.org>
1376         PR objc/29200
1377         * objc/objc-act.c (warn_with_method): Remove helper function.
1378         (check_duplicates): Call warning and inform directly.
1379         (really_start_method): Likewise.
1381 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
1383         * expmed.c (expand_divmod): Always use a comparison for a division
1384         by a large unsigned integer.
1386         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
1387         for things others than variables or functions as nonzero.
1389 2009-04-09  Nick Clifton  <nickc@redhat.com>
1391         * unwind-compat.c: Change copyright header to refer to version
1392         3 of the GNU General Public License with version 3.1 of the
1393         GCC Runtime Library Exception and to point readers at the
1394         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
1395         * config/alpha/crtfastmath.c: Likewise.
1396         * config/alpha/linux-unwind.h: Likewise.
1397         * config/alpha/qrnnd.asm: Likewise.
1398         * config/alpha/vms-crt0-64.c: Likewise.
1399         * config/alpha/vms-crt0.c: Likewise.
1400         * config/alpha/vms-dwarf2.asm: Likewise.
1401         * config/alpha/vms-dwarf2eh.asm: Likewise.
1402         * config/alpha/vms-psxcrt0-64.c: Likewise.
1403         * config/alpha/vms-psxcrt0.c: Likewise.
1404         * config/alpha/vms_tramp.asm: Likewise.
1405         * config/arc/initfini.c: Likewise.
1406         * config/arc/lib1funcs.asm: Likewise.
1407         * config/arm/bpabi-v6m.S: Likewise.
1408         * config/arm/bpabi.S: Likewise.
1409         * config/arm/bpabi.c: Likewise.
1410         * config/arm/crti.asm: Likewise.
1411         * config/arm/crtn.asm: Likewise.
1412         * config/arm/ieee754-df.S: Likewise.
1413         * config/arm/ieee754-sf.S: Likewise.
1414         * config/arm/lib1funcs.asm: Likewise.
1415         * config/arm/libunwind.S: Likewise.
1416         * config/arm/linux-atomic.c: Likewise.
1417         * config/arm/mmintrin.h: Likewise.
1418         * config/arm/pr-support.c: Likewise.
1419         * config/arm/unaligned-funcs.c: Likewise.
1420         * config/arm/unwind-arm.c: Likewise.
1421         * config/arm/unwind-arm.h: Likewise.
1422         * config/avr/libgcc.S: Likewise.
1423         * config/bfin/crti.s: Likewise.
1424         * config/bfin/crtlibid.s: Likewise.
1425         * config/bfin/crtn.s: Likewise.
1426         * config/bfin/lib1funcs.asm: Likewise.
1427         * config/bfin/linux-unwind.h: Likewise.
1428         * config/cris/arit.c: Likewise.
1429         * config/cris/cris_abi_symbol.c: Likewise.
1430         * config/darwin-64.c: Likewise.
1431         * config/darwin-crt2.c: Likewise.
1432         * config/darwin-crt3.c: Likewise.
1433         * config/darwin.h: Likewise.
1434         * config/dbxelf.h: Likewise.
1435         * config/dfp-bit.c: Likewise.
1436         * config/dfp-bit.h: Likewise.
1437         * config/elfos.h: Likewise.
1438         * config/fixed-bit.c: Likewise.
1439         * config/fixed-bit.h: Likewise.
1440         * config/fp-bit.c: Likewise.
1441         * config/fp-bit.h: Likewise.
1442         * config/fr30/crti.asm: Likewise.
1443         * config/fr30/crtn.asm: Likewise.
1444         * config/fr30/lib1funcs.asm: Likewise.
1445         * config/freebsd-spec.h: Likewise.
1446         * config/frv/cmovd.c: Likewise.
1447         * config/frv/cmovh.c: Likewise.
1448         * config/frv/cmovw.c: Likewise.
1449         * config/frv/frvbegin.c: Likewise.
1450         * config/frv/frvend.c: Likewise.
1451         * config/frv/lib1funcs.asm: Likewise.
1452         * config/glibc-stdint.h: Likewise.
1453         * config/h8300/clzhi2.c: Likewise.
1454         * config/h8300/crti.asm: Likewise.
1455         * config/h8300/crtn.asm: Likewise.
1456         * config/h8300/ctzhi2.c: Likewise.
1457         * config/h8300/fixunssfsi.c: Likewise.
1458         * config/h8300/lib1funcs.asm: Likewise.
1459         * config/h8300/parityhi2.c: Likewise.
1460         * config/h8300/popcounthi2.c: Likewise.
1461         * config/i386/ammintrin.h: Likewise.
1462         * config/i386/att.h: Likewise.
1463         * config/i386/avxintrin.h: Likewise.
1464         * config/i386/biarch64.h: Likewise.
1465         * config/i386/bmmintrin.h: Likewise.
1466         * config/i386/cpuid.h: Likewise.
1467         * config/i386/cross-stdarg.h: Likewise.
1468         * config/i386/crtfastmath.c: Likewise.
1469         * config/i386/crtprec.c: Likewise.
1470         * config/i386/cygming-crtbegin.c: Likewise.
1471         * config/i386/cygming-crtend.c: Likewise.
1472         * config/i386/cygwin.asm: Likewise.
1473         * config/i386/emmintrin.h: Likewise.
1474         * config/i386/gmm_malloc.h: Likewise.
1475         * config/i386/gthr-win32.c: Likewise.
1476         * config/i386/i386.h: Likewise.
1477         * config/i386/immintrin.h: Likewise.
1478         * config/i386/linux-unwind.h: Likewise.
1479         * config/i386/linux64.h: Likewise.
1480         * config/i386/mm3dnow.h: Likewise.
1481         * config/i386/mmintrin-common.h: Likewise.
1482         * config/i386/mmintrin.h: Likewise.
1483         * config/i386/nmmintrin.h: Likewise.
1484         * config/i386/pmm_malloc.h: Likewise.
1485         * config/i386/pmmintrin.h: Likewise.
1486         * config/i386/smmintrin.h: Likewise.
1487         * config/i386/sol2-c1.asm: Likewise.
1488         * config/i386/sol2-ci.asm: Likewise.
1489         * config/i386/sol2-cn.asm: Likewise.
1490         * config/i386/sol2-gc1.asm: Likewise.
1491         * config/i386/tmmintrin.h: Likewise.
1492         * config/i386/unix.h: Likewise.
1493         * config/i386/w32-unwind.h: Likewise.
1494         * config/i386/wmmintrin.h: Likewise.
1495         * config/i386/x86-64.h: Likewise.
1496         * config/i386/x86intrin.h: Likewise.
1497         * config/i386/xmmintrin.h: Likewise.
1498         * config/ia64/crtbegin.asm: Likewise.
1499         * config/ia64/crtend.asm: Likewise.
1500         * config/ia64/crtfastmath.c: Likewise.
1501         * config/ia64/crti.asm: Likewise.
1502         * config/ia64/crtn.asm: Likewise.
1503         * config/ia64/fde-glibc.c: Likewise.
1504         * config/ia64/lib1funcs.asm: Likewise.
1505         * config/ia64/linux-unwind.h: Likewise.
1506         * config/ia64/quadlib.c: Likewise.
1507         * config/ia64/unwind-ia64.c: Likewise.
1508         * config/linux.h: Likewise.
1509         * config/m32c/m32c-lib1.S: Likewise.
1510         * config/m32c/m32c-lib2-trapv.c: Likewise.
1511         * config/m32c/m32c-lib2.c: Likewise.
1512         * config/m32r/initfini.c: Likewise.
1513         * config/m68hc11/larith.asm: Likewise.
1514         * config/m68hc11/m68hc11-crt0.S: Likewise.
1515         * config/m68k/cf.md: Likewise.
1516         * config/m68k/crti.s: Likewise.
1517         * config/m68k/crtn.s: Likewise.
1518         * config/m68k/lb1sf68.asm: Likewise.
1519         * config/m68k/linux-unwind.h: Likewise.
1520         * config/mcore/crti.asm: Likewise.
1521         * config/mcore/crtn.asm: Likewise.
1522         * config/mcore/lib1.asm: Likewise.
1523         * config/mips/linux-unwind.h: Likewise.
1524         * config/mips/loongson.h: Likewise.
1525         * config/mips/mips16.S: Likewise.
1526         * config/mmix/crti.asm: Likewise.
1527         * config/mmix/crtn.asm: Likewise.
1528         * config/pa/fptr.c: Likewise.
1529         * config/pa/hpux-unwind.h: Likewise.
1530         * config/pa/lib2funcs.asm: Likewise.
1531         * config/pa/linux-atomic.c: Likewise.
1532         * config/pa/linux-unwind.h: Likewise.
1533         * config/pa/milli64.S: Likewise.
1534         * config/pa/quadlib.c: Likewise.
1535         * config/pa/stublib.c: Likewise.
1536         * config/picochip/libgccExtras/adddi3.asm: Likewise.
1537         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
1538         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
1539         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
1540         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
1541         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
1542         * config/picochip/libgccExtras/divmod15.asm: Likewise.
1543         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
1544         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
1545         * config/picochip/libgccExtras/longjmp.asm: Likewise.
1546         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
1547         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
1548         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
1549         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
1550         * config/picochip/libgccExtras/setjmp.asm: Likewise.
1551         * config/picochip/libgccExtras/subdi3.asm: Likewise.
1552         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
1553         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
1554         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
1555         * config/rs6000/750cl.h: Likewise.
1556         * config/rs6000/altivec.h: Likewise.
1557         * config/rs6000/biarch64.h: Likewise.
1558         * config/rs6000/crtresfpr.asm: Likewise.
1559         * config/rs6000/crtresgpr.asm: Likewise.
1560         * config/rs6000/crtresxfpr.asm: Likewise.
1561         * config/rs6000/crtresxgpr.asm: Likewise.
1562         * config/rs6000/crtsavfpr.asm: Likewise.
1563         * config/rs6000/crtsavgpr.asm: Likewise.
1564         * config/rs6000/darwin-asm.h: Likewise.
1565         * config/rs6000/darwin-fallback.c: Likewise.
1566         * config/rs6000/darwin-fpsave.asm: Likewise.
1567         * config/rs6000/darwin-ldouble.c: Likewise.
1568         * config/rs6000/darwin-tramp.asm: Likewise.
1569         * config/rs6000/darwin-unwind.h: Likewise.
1570         * config/rs6000/darwin-vecsave.asm: Likewise.
1571         * config/rs6000/darwin-world.asm: Likewise.
1572         * config/rs6000/e500crtres32gpr.asm: Likewise.
1573         * config/rs6000/e500crtres64gpr.asm: Likewise.
1574         * config/rs6000/e500crtres64gprctr.asm: Likewise.
1575         * config/rs6000/e500crtrest32gpr.asm: Likewise.
1576         * config/rs6000/e500crtrest64gpr.asm: Likewise.
1577         * config/rs6000/e500crtresx32gpr.asm: Likewise.
1578         * config/rs6000/e500crtresx64gpr.asm: Likewise.
1579         * config/rs6000/e500crtsav32gpr.asm: Likewise.
1580         * config/rs6000/e500crtsav64gpr.asm: Likewise.
1581         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
1582         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
1583         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
1584         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
1585         * config/rs6000/eabi-ci.asm: Likewise.
1586         * config/rs6000/eabi-cn.asm: Likewise.
1587         * config/rs6000/eabi.asm: Likewise.
1588         * config/rs6000/linux-unwind.h: Likewise.
1589         * config/rs6000/linux64.h: Likewise.
1590         * config/rs6000/paired.h: Likewise.
1591         * config/rs6000/paired.md: Likewise.
1592         * config/rs6000/ppc64-fp.c: Likewise.
1593         * config/rs6000/ppu_intrinsics.h: Likewise.
1594         * config/rs6000/rs6000.h: Likewise.
1595         * config/rs6000/si2vmx.h: Likewise.
1596         * config/rs6000/sol-ci.asm: Likewise.
1597         * config/rs6000/sol-cn.asm: Likewise.
1598         * config/rs6000/spe.h: Likewise.
1599         * config/rs6000/spu2vmx.h: Likewise.
1600         * config/rs6000/sysv4.h: Likewise.
1601         * config/rs6000/tramp.asm: Likewise.
1602         * config/rs6000/vec_types.h: Likewise.
1603         * config/s390/linux-unwind.h: Likewise.
1604         * config/s390/tpf-unwind.h: Likewise.
1605         * config/score/crti.asm: Likewise.
1606         * config/score/crtn.asm: Likewise.
1607         * config/sh/crt1.asm: Likewise.
1608         * config/sh/crti.asm: Likewise.
1609         * config/sh/crtn.asm: Likewise.
1610         * config/sh/divtab-sh4-300.c: Likewise.
1611         * config/sh/divtab-sh4.c: Likewise.
1612         * config/sh/divtab.c: Likewise.
1613         * config/sh/lib1funcs-4-300.asm: Likewise.
1614         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
1615         * config/sh/lib1funcs.asm: Likewise.
1616         * config/sh/lib1funcs.h: Likewise.
1617         * config/sh/linux-atomic.asm: Likewise.
1618         * config/sh/linux-unwind.h: Likewise.
1619         * config/sh/shmedia.h: Likewise.
1620         * config/sh/sshmedia.h: Likewise.
1621         * config/sh/ushmedia.h: Likewise.
1622         * config/sparc/crtfastmath.c: Likewise.
1623         * config/sparc/linux-unwind.h: Likewise.
1624         * config/sparc/sol2-c1.asm: Likewise.
1625         * config/sparc/sol2-ci.asm: Likewise.
1626         * config/sparc/sol2-cn.asm: Likewise.
1627         * config/spu/divmodti4.c: Likewise.
1628         * config/spu/divv2df3.c: Likewise.
1629         * config/spu/float_disf.c: Likewise.
1630         * config/spu/float_unsdidf.c: Likewise.
1631         * config/spu/float_unsdisf.c: Likewise.
1632         * config/spu/float_unssidf.c: Likewise.
1633         * config/spu/mfc_multi_tag_release.c: Likewise.
1634         * config/spu/mfc_multi_tag_reserve.c: Likewise.
1635         * config/spu/mfc_tag_release.c: Likewise.
1636         * config/spu/mfc_tag_reserve.c: Likewise.
1637         * config/spu/mfc_tag_table.c: Likewise.
1638         * config/spu/multi3.c: Likewise.
1639         * config/spu/spu_internals.h: Likewise.
1640         * config/spu/spu_intrinsics.h: Likewise.
1641         * config/spu/spu_mfcio.h: Likewise.
1642         * config/spu/vec_types.h: Likewise.
1643         * config/spu/vmx2spu.h: Likewise.
1644         * config/stormy16/stormy16-lib2.c: Likewise.
1645         * config/svr4.h: Likewise.
1646         * config/sync.c: Likewise.
1647         * config/v850/lib1funcs.asm: Likewise.
1648         * config/vxlib-tls.c: Likewise.
1649         * config/vxlib.c: Likewise.
1650         * config/vxworks-dummy.h: Likewise.
1651         * config/xtensa/crti.asm: Likewise.
1652         * config/xtensa/crtn.asm: Likewise.
1653         * config/xtensa/ieee754-df.S: Likewise.
1654         * config/xtensa/ieee754-sf.S: Likewise.
1655         * config/xtensa/lib1funcs.asm: Likewise.
1656         * config/xtensa/lib2funcs.S: Likewise.
1657         * config/xtensa/linux-unwind.h: Likewise.
1658         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
1659         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
1660         * coretypes.h: Likewise.
1661         * crtstuff.c: Likewise.
1662         * defaults.h: Likewise.
1663         * dwarf2.h: Likewise.
1664         * emutls.c: Likewise.
1665         * gbl-ctors.h: Likewise.
1666         * gcov-io.h: Likewise.
1667         * ginclude/float.h: Likewise.
1668         * ginclude/iso646.h: Likewise.
1669         * ginclude/stdarg.h: Likewise.
1670         * ginclude/stdbool.h: Likewise.
1671         * ginclude/stddef.h: Likewise.
1672         * ginclude/stdfix.h: Likewise.
1673         * ginclude/stdint-gcc.h: Likewise.
1674         * ginclude/tgmath.h: Likewise.
1675         * gthr-aix.h: Likewise.
1676         * gthr-dce.h: Likewise.
1677         * gthr-gnat.c: Likewise.
1678         * gthr-gnat.h: Likewise.
1679         * gthr-lynx.h: Likewise.
1680         * gthr-mipssde.h: Likewise.
1681         * gthr-nks.h: Likewise.
1682         * gthr-posix.c: Likewise.
1683         * gthr-posix.h: Likewise.
1684         * gthr-posix95.h: Likewise.
1685         * gthr-rtems.h: Likewise.
1686         * gthr-single.h: Likewise.
1687         * gthr-solaris.h: Likewise.
1688         * gthr-tpf.h: Likewise.
1689         * gthr-vxworks.h: Likewise.
1690         * gthr-win32.h: Likewise.
1691         * gthr.h: Likewise.
1692         * libgcc2.c: Likewise.
1693         * libgcc2.h: Likewise.
1694         * libgcov.c: Likewise.
1695         * tsystem.h: Likewise.
1696         * typeclass.h: Likewise.
1697         * unwind-c.c: Likewise.
1698         * unwind-compat.h: Likewise.
1699         * unwind-dw2-fde-compat.c: Likewise.
1700         * unwind-dw2-fde-darwin.c: Likewise.
1701         * unwind-dw2-fde-glibc.c: Likewise.
1702         * unwind-dw2-fde.c: Likewise.
1703         * unwind-dw2-fde.h: Likewise.
1704         * unwind-dw2.c: Likewise.
1705         * unwind-dw2.h: Likewise.
1706         * unwind-generic.h: Likewise.
1707         * unwind-pe.h: Likewise.
1708         * unwind-sjlj.c: Likewise.
1709         * unwind.inc: Likewise.
1710         * config/arm/neon-gen.ml: Change generated copyright header to
1711         refer to version 3 of the GNU General Public License with
1712         version 3.1 of the GCC Runtime Library Exception and to point
1713         readers at the COPYING3 and COPYING3.RUNTIME files and the
1714         FSF's license web page.
1715         * config/arm/arm_neon.h: Regenerate.
1717 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
1719         * config/cris/cris.md: Change copyright header to refer to version
1720         3 of the GNU General Public License.
1721         * doc/install.texi2html: Change copyright header to refer to version
1722         3 of the GNU General Public License and to point readers at the
1723         COPYING3 file and the FSF's license web page.
1724         * config/vax/linux.h: Likewise.
1726 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
1728         * config/i386/i386.md (cmpcc): New.
1729         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
1730         (sync_compare_and_swap_cc*): Delete.
1732         * config/s390/s390.c (s390_compare_emitted): Remove.
1733         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
1734         s390_compare_emitted used to be handled.  Assert that modes match.
1735         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
1736         refer to sync_compare_and_swap_ccsi.
1737         * config/s390/s390.h (s390_compare_emitted): Remove.
1738         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
1739         instead of s390_compare_emitted.
1740         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
1741         instead of s390_compare_emitted.
1742         * config/s390/s390.md (cmpcc): New.
1743         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
1744         CC_REGNUM, do not pretend it's set.
1745         (sync_compare_and_swap_cc*): Delete.
1746         * config/s390/predicates.md (cc_reg_operand): New.
1748         * expr.c (sync_compare_and_swap_cc): Delete.
1749         * optabs.h (sync_compare_and_swap_cc): Delete.
1750         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
1751         is being used with can_compare_p.
1752         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
1753         (find_cc_set): New.
1754         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
1755         look for a MODE_CC set instead.  Use emit_store_flag.
1756         (expand_compare_and_swap_loop): Likewise, with some additional
1757         complication to avoid a force_reg when useless.  Use
1758         emit_cmp_and_jump_insns.
1759         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
1760         * doc/md.texi (sync_compare_and_swap_cc): Merge with
1761         sync_compare_and_swap documentation.
1763 2009-04-09  Jan Hubicka  <jh@suse.cz>
1765         * except.c (find_prev_try): Break out from ....
1766         (duplicate_eh_regions): ... here; properly update prev_try pointers
1767         when duplication part of tree.
1768         (dump_eh_tree): Improve dumping.
1769         (verify_eh_region): New.
1770         (verify_eh_tree): Use it.
1772 2009-04-06  Richard Guenther  <rguenther@suse.de>
1774         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
1775         &ARRAY addresses by adjusting their types and prepending
1776         a conversion.
1777         * tree-cfg.c (verify_gimple_assign_single): Verify that
1778         addresses are correct.
1780 2009-04-09  Richard Guenther  <rguenther@suse.de>
1782         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
1783         indices into an array reference if possible.
1784         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1785         Fold POINTER_PLUS_EXPR statements with invariant address.
1787 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
1789         PR target/39634
1790         * config.gcc (powerpc64-*-linux*): Always build biarch.
1792 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
1794         PR c/39613
1795         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
1796         it and pedwarn if this results in an INTEGER_CST.
1798 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1800         * doc/install.texi: Update minimum GMP version.  Remove obsolete
1801         text in MPFR section.
1803 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
1805         * dwarf2out.c (class_scope_p): New static inline.
1806         (class_or_namespace_scope_p): Use it.
1807         (gen_variable_die): Use DW_TAG_member tag for static data member
1808         declarations instead of DW_TAG_variable.
1810         PR middle-end/39573
1811         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
1812         variables.
1814 2009-04-08  Richard Guenther  <rguenther@suse.de>
1816         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
1817         valueize random data.
1819 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
1821         * config.gcc (aix tm_file):  Add aix-stdint.h.
1822         (aix tm clause use_gcc_stdint):  Set to wrap.
1823         * config/rs6000/aix-stdint.h:  New file.
1824         
1825 2009-04-08  Richard Guenther  <rguenther@suse.de>
1827         PR middle-end/36291
1828         * tree-dfa.c (add_referenced_var): Do not recurse into
1829         global initializers.
1830         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
1831         exposed variables.
1832         (fold_const_aggregate_ref): Likewise.
1834 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
1836         * recog.c (ordered_comparison_operator): New.
1837         * gensupport.c (std_preds): Add it.
1838         * doc/md.texi (Machine-Independent Predicates): Document it.
1840 2009-04-08  Jan Hubicka  <jh@suse.cz>
1842         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
1843         * function.h (rtl_eh): Remove exception_handler_label_map.
1844         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
1845         remove_exception_handler_label, for_each_eh_label_1): Remove.
1846         (rtl_remove_unreachable_regions): Remove.
1847         (convert_from_eh_region_ranges): Do not remove unreachable regions.
1848         (find_exception_handler_labels): Don't build the hashtable.
1849         (maybe_remove_eh_handler): Remove.
1850         (for_each_eh_label): Rewrite to walk the tree.
1851         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
1852         * except.h (maybe_remove_eh_handler): Remove.
1853         * passes.c (init_optimization_passes): Schedule second EH cleanup
1854         before out-of-ssa.
1855         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
1856         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
1858 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
1860         * genoutput.c (validate_optab_operands): New.
1861         (gen_insn, gen_expand): Call it.
1863         * genflags.c (gen_insn): Detect misused iterators.
1864         (main): Pass line_no to gen_insn, exit with status 1 on error.
1866         * genextract.c (line_no): Make global.
1867         (VEC_safe_set_locstr): Change assertion to error message.
1868         (main): Exit with status 1 on error.
1870 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
1872         PR c/39614
1873         PR c/39673
1874         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
1875         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
1876         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
1877         * c-convert.c (convert): Do not call fold on results of conversion
1878         functions when the result is a C_MAYBE_CONST_EXPR.
1879         * c-parser.c (c_parser_postfix_expression): Do not fold condition
1880         of __builtin_choose_expr.
1881         * c-typeck.c (remove_c_maybe_const_expr): New.
1882         (build_unary_op, build_conditional_expr, build_compound_expr,
1883         build_binary_op, c_objc_common_truthvalue_conversion): Call
1884         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
1885         integer operands.
1887 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
1889         * fold-const.c (const_binop): Combine two VECTOR_CST under operation 
1890         CODE to produce a new one. Add a prototype to use fold_convert_const
1892 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
1894         PR bootstrap/39660
1895         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
1896         mix declarations and code.
1898 2009-04-08  Ben Elliston  <bje@au.ibm.com>
1900         * gcc.c: Replace `CC' with `GCC' throughout.
1902 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1904         * doc/invoke.texi: Document Atom support.
1906 2009-04-07  Jason Merrill  <jason@redhat.com>
1908         PR c++/25185
1909         * c-common.h, c-common.c: Add flag_pretty_templates.
1910         * c-opts.c (c_common_handle_option): Set it.
1911         * c.opt: Add -fno-pretty-templates.
1912         * doc/invoke.texi (C++ Dialect Options): Likewise.
1914 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
1916         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
1917         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
1918         (ia64_expand_builtin): Likewise.
1920 2009-04-07  Martin Jambor  <mjambor@suse.cz>
1922         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
1923         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
1924         ADDR_EXPRS are include too.
1926 2009-04-07  Richard Guenther  <rguenther@suse.de>
1928         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
1929         decls are only used if passes as parameters or if they are
1930         local statics and the call is not to a builtin.
1931         (call_may_clobber_ref_p_1): Likewise.
1933 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1935         * expr.c (do_store_flag): Remove last argument.  Simplify code
1936         to avoid duplication of tests already done by can_compare_p.
1937         (expand_expr_real_1): Adjust caller.
1939 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1941         * optabs.c (can_compare_p): Test the predicate of a
1942         cbranch and cstore pattern.
1944 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1946         * expr.c (convert_move): Use emit_store_flag instead of
1947         "emulating" it.
1949 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1951         * config/i386/i386.c (ix86_compare_emitted): Remove.
1952         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
1953         ix86_compare_op0 like ix86_compare_emitted used to be handled.
1954         * config/i386/i386.h (ix86_compare_emitted): Remove.
1955         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
1956         instead of ix86_compare_emitted.
1957         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
1959 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
1961         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
1962         Add t-sysroot-suffix to tmake_file.
1963         * config/print-sysroot-suffix.sh: New file.
1964         * config/t-sysroot-suffix: New file.
1966 2009-04-07  Ben Elliston  <bje@au.ibm.com>
1968         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
1969         as the latter produces a warning when the target does not support
1970         infinity.
1972 2009-04-07  Ben Elliston  <bje@au.ibm.com>
1974         * dfp.c: Replace type punning assignments with memcpy throughout.
1975         * Makefile.in (dfp.o-warn): Remove.
1976         
1977 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
1979         PR target/39634
1980         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
1981         Include soft-fp/t-softfp after rs6000/t-linux64.
1983 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1985         * stor-layout.c (set_sizetype): Use the full precision of their
1986         machine mode for bitsize types.
1988 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
1990         * config/i386/i386.md: Revert 2 accidental checkins.
1992 2009-04-06  Joey Ye  <joey.ye@intel.com>
1993             Xuepeng Guo <xuepeng.guo@intel.com>
1994             H.J. Lu  <hongjiu.lu@intel.com>
1996         Atom pipeline model, tuning and insn selection.
1997         * config.gcc (atom): Add atom config options and target.
1999         * config/i386/atom.md: New.
2001         * config/i386/i386.c (atom_cost): New cost.
2002         (m_ATOM): New macro flag.
2003         (initial_ix86_tune_features): Set m_ATOM.
2004         (x86_accumulate_outgoing_args): Likewise.
2005         (x86_arch_always_fancy_math_387): Likewise.
2006         (processor_target): Add Atom cost.
2007         (cpu_names): Add Atom cpu name.
2008         (override_options): Set Atom ISA.
2009         (ix86_issue_rate): New case PROCESSOR_ATOM.
2010         (ix86_adjust_cost): Likewise.
2012         * config/i386/i386.h (TARGET_ATOM): New target macro.
2013         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
2014         (TARGET_OPT_AGU): New target option.
2015         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
2016         (processor_type): Add PROCESSOR_ATOM.
2018         * config/i386/i386.md (cpu): Add new value "atom".
2019         (use_carry, movu): New attr.
2020         (atom.md): Include atom.md.
2021         (adddi3_carry_rex64): Set attr "use_carry".
2022         (addqi3_carry): Likewise.
2023         (addhi3_carry): Likewise.
2024         (addsi3_carry): Likewise.
2025         (*addsi3_carry_zext): Likewise.
2026         (subdi3_carry_rex64): Likewise.
2027         (subqi3_carry): Likewise.
2028         (subhi3_carry): Likewise.
2029         (subsi3_carry): Likewise.
2030         (x86_movdicc_0_m1_rex64): Likewise.
2031         (*x86_movdicc_0_m1_se): Likewise.
2032         (x86_movsicc_0_m1): Likewise.
2033         (*x86_movsicc_0_m1_se): Likewise.
2034         (*adddi_1_rex64): Emit add insn as much as possible.
2035         (*addsi_1): Likewise.
2036         (return_internal): Set atom_unit.
2037         (return_internal_long): Likewise.
2038         (return_pop_internal): Likewise.
2039         (*rcpsf2_sse): Set atom_sse_attr attr.
2040         (*qrt<mode>2_sse): Likewise.
2041         (*prefetch_sse): Likewise.
2043         * config/i386/i386-c.c (ix86_target_macros_internal): New case
2044         PROCESSOR_ATOM.
2045         (ix86_target_macros_internal): Likewise.
2047         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
2048         (*prefetch_sse_rex): Likewise.
2049         (sse_rcpv4sf2): Likewise.
2050         (sse_vmrcpv4sf2): Likewise.
2051         (sse_sqrtv4sf2): Likewise.
2052         (<sse>_vmsqrt<mode>2): Likewise.
2053         (sse_ldmxcsr): Likewise.
2054         (sse_stmxcsr): Likewise.
2055         (*sse_sfence): Likewise.
2056         (sse2_clflush): Likewise.
2057         (*sse2_mfence): Likewise.
2058         (*sse2_lfence): Likewise.
2059         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
2060         (<sse>_movup<ssemodesuffixf2c>): Likewise.
2061         (avx_movdqu<avxmodesuffix>): Likewise.
2062         (avx_lddqu<avxmodesuffix>): Likewise.
2063         (sse2_movntv2di): Change attr "type" to "ssemov".
2064         (sse2_movntsi): Likewise.
2065         (rsqrtv8sf2): Change attr "type" to "sseadd".
2066         (sse3_addsubv2df3): Set attr "atom_unit".
2067         (sse3_h<plusminus_insn>v4sf3): Likewise.
2068         (*sse2_pmaddwd): Likewise.
2069         (*vec_extractv2di_1_rex64): Likewise.
2070         (*vec_extractv2di_1_avx): Likewise.
2071         (sse2_psadbw): Likewise.
2072         (ssse3_phaddwv8hi3): Likewise.
2073         (ssse3_phaddwv4hi3): Likewise.
2074         (ssse3_phadddv4si3): Likewise.
2075         (ssse3_phadddv2si3): Likewise.
2076         (ssse3_phaddswv8hi3): Likewise.
2077         (ssse3_phaddswv4hi3): Likewise.
2078         (ssse3_phsubwv8hi3): Likewise.
2079         (ssse3_phsubwv4hi3): Likewise.
2080         (ssse3_phsubdv4si3): Likewise.
2081         (ssse3_phsubdv2si3): Likewise.
2082         (ssse3_phsubswv8hi3): Likewise.
2083         (ssse3_phsubswv4hi3): Likewise.
2084         (ssse3_pmaddubsw128): Likewise.
2085         (sse3_pmaddubsw: Likewise.
2086         (ssse3_palignrti): Likewise.
2087         (ssse3_palignrdi): Likewise.
2089 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
2091         * doc/install.texi (Specific): Fix two cross-references to MinGW.
2093 2009-04-06  Richard Guenther  <rguenther@suse.de>
2095         PR tree-optimization/28868
2096         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
2097         of which PHI results we inserted.
2098         (insert_into_preds_of_block): Record inserted PHIs.
2099         (eliminate): Eliminate redundant PHI nodes.
2100         (init_pre): Init inserted_phi_names.
2102 2009-04-06  Richard Guenther  <rguenther@suse.de>
2104         PR tree-optimization/39643
2105         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
2106         IMAGPART_EXPRs of complex constants.
2107         (execute_fold_all_builtins): If we folded a call queue
2108         TODO_update_address_taken.
2110 2009-04-06  Jan Hubicka  <jh@suse.cz>
2112         PR middle-end/39659
2113         * except.c (remove_unreachable_regions): Propagate may_contain_throw
2114         flag.
2116 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
2118         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
2119         delay slot.
2120         (ic_invalidate_array): Likewise.
2122 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
2124         * calls.c (emit_library_call_value_1): Fix a problem with parameter
2125         alignment for library calls.
2127 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
2129         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
2130         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
2131         * config/i386/mingw-stdint.h:  New file.
2133 2009-04-05  Richard Guenther  <rguenther@suse.de>
2135         PR tree-optimization/39648
2136         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
2137         our &A vs. &A[0] IL deficiencies.
2139 2009-04-04  Jan Hubicka  <jh@suse.cz>
2141         * except.c (sjlj_find_directly_reachable_regions): Be ready for
2142         removed toplevel regions.
2143         (sjlj_mark_call_sites): Likewise.
2145 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
2147         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
2148         (cygwin tm clause use_gcc_stdint):  Set to wrap.
2149         * config/i386/cygwin-stdint.h:  New file.
2151 2009-04-04  Richard Guenther  <rguenther@suse.de>
2153         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
2154         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
2155         single-argument PHIs if we are in loop-closed SSA form.
2156         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
2157         for the pre-condition.
2158         (slpeel_tree_peel_loop_to_edge): Likewise.
2159         (vect_build_loop_niters): Take an optional sequence to append stmts.
2160         (vect_generate_tmps_on_preheader): Likewise.
2161         (vect_do_peeling_for_loop_bound): Take extra guards for the
2162         pre-condition.
2163         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
2164         the cost model check.
2165         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
2166         guards if we are going to peel.  Do not apply versioning in that case.
2167         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
2168         (vect_do_peeling_for_loop_bound): Likewise.
2169         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
2170         loop bound only record extra pre-conditions, do not apply loop
2171         versioning.
2173 2009-04-04  Richard Guenther  <rguenther@suse.de>
2175         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
2176         renaming code.
2178 2009-04-04  Jan Hubicka  <jh@suse.cz>
2180         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
2181         last_basic_block for size of bb->index indexed array.
2182         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
2183         compute_out, link_btr_uses, build_btr_def_use_webs,
2184         build_btr_def_use_webs, migrate_btr_defs): Likewise.
2186 2009-04-04  Jan Hubicka  <jh@suse.cz>
2188         * except.c (remove_eh_handler_and_replace): Break out from ...
2189         (remove_eh_handler): ... here.
2190         (bring_to_root): New function.
2191         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
2192         handled ones, bring others to root of tree.
2194 2009-04-04  Jan Hubicka  <jh@suse.cz>
2196         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
2197         (all_phis_safe_to_merge): New function.
2198         (update_info): New structure.
2199         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
2200         (cleanup_empty_eh): Update SSA if possible.
2202 2009-04-04  Richard Guenther  <rguenther@suse.de>
2204         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
2205         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
2206         (append_vuse): Likewise.
2208 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
2210         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
2211         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
2212         instead of REG_UNSAVED for DW_CFA_undefined.
2213         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
2214         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
2215         outermost frame.
2217 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
2219         PR target/39501
2220         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
2221         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
2222         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
2224 2009-04-04  Richard Guenther  <rguenther@suse.de>
2226         PR tree-optimization/8781
2227         PR tree-optimization/37892
2228         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
2229         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
2230         (valueize_refs): Call it for *& valueizations.
2231         (shared_reference_ops_from_ref): Rename to ...
2232         (valueize_shared_reference_ops_from_ref): ... this and valueize.
2233         (shared_reference_ops_from_call): Rename to ...
2234         (valueize_shared_reference_ops_from_call): ... this and valueize.
2235         (vn_reference_lookup): Update.
2236         (visit_reference_op_call): Likewise.
2237         * tree-ssa-pre.c (phi_translate_1): Fold *&.
2238         (eliminate): Value-replace the call address in call statements.
2240 2009-04-04  Richard Guenther  <rguenther@suse.de>
2242         PR tree-optimization/39636
2243         * tree-ssa-forwprop.c
2244         (forward_propagate_addr_into_variable_array_index): Check for
2245         GIMPLE_ASSIGN before accessing the rhs code.
2247 2009-04-03  Jason Merrill  <jason@redhat.com>
2249         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
2251 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
2253         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
2254         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
2255         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
2256         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
2257         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
2258         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
2259         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
2260         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
2261         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
2262         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
2263         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
2264         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
2265         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
2266         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
2267         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
2268         Use fr_reg_or_fp01_operand instead of fr_register_operand
2270         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
2271         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
2272         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
2274 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
2276         PR rtl-optimization/39607
2277         PR rtl-optimization/39631
2279         Revert:
2280         
2281         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2282         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
2283         instead of DF_LR_OUT.
2284         * ira-lives.c (process_bb_node_lives): Ditto.
2285         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
2286         instead of DF_LR_{OUT,IN}.
2287         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
2288         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
2290 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
2292         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
2293         (execute_lower_omp): Always run but take the short way out if -fopenmp
2294         is not given.
2295         (gate_lower_omp): Remove, forcing the pass manager to always run the
2296         pass and always set PROP_gimple_lomp.
2297         (pass_lower_omp): Remove gate function.
2298         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
2299         PROP_trees.  Instead, require it.
2300         * ipa-cp.c (pass_ipa_cp): Likewise.
2301         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
2302         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
2303         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
2304         and PROP_gimple_leh.
2306 2009-04-03  Richard Guenther  <rguenther@suse.de>
2308         PR middle-end/13146
2309         PR tree-optimization/23940
2310         PR tree-optimization/33237
2311         PR middle-end/33974
2312         PR middle-end/34093
2313         PR tree-optimization/36201
2314         PR tree-optimization/36230
2315         PR tree-optimization/38049
2316         PR tree-optimization/38207
2317         PR tree-optimization/38230
2318         PR tree-optimization/38301
2319         PR tree-optimization/38585
2320         PR middle-end/38895
2321         PR tree-optimization/38985
2322         PR tree-optimization/39299
2323         * tree-ssa-structalias.h: Remove.
2324         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
2325         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
2326         (struct vuse_element_d): Remove.
2327         (struct vuse_vec_d): Likewise.
2328         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
2329         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
2330         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
2331         VUSE_ELEMENT_VAR): Likewise.
2332         (struct voptype_d): Likewise.
2333         (NUM_VOP_FREE_BUCKETS): Likewise.
2334         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
2335         (struct stmt_operands_d): Remove.
2336         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
2337         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
2338         VDEF_NUM, VDEF_VECT): Likewise.
2339         (copy_virtual_operands): Remove.
2340         (operand_build_cmp): Likewise.
2341         (create_ssa_artificial_load_stmt): Likewise.
2342         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
2343         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
2344         vuse_index and mayuse_index members.  Pack and move done and iter_type
2345         members to the front.
2346         (SSA_OP_VMAYUSE): Remove.
2347         (SSA_OP_VIRTUAL_USES): Adjust.
2348         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
2349         (unlink_stmt_vdef): Declare.
2350         (add_to_addressable_set): Remove.
2351         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
2352         (vrp_visit_stmt): Likewise.
2353         * doc/tree-ssa.texi (Alias analysis): Update.
2354         * doc/invoke.texi (max-aliased-vops): Remove docs.
2355         (avg-aliased-vops): Likewise.
2356         * tree-into-ssa.c (syms_to_rename): Remove.
2357         (need_to_update_vops_p): Likewise.
2358         (need_to_initialize_update_ssa_p): Rename to ...
2359         (update_ssa_initialized_fn): ... this.  Track function we are
2360         initialized for.
2361         (symbol_marked_for_renaming): Simplify.
2362         (add_new_name_mapping): Do not set need_to_update_vops_p.
2363         (dump_currdefs): Use SYMS_TO_RENAME.
2364         (rewrite_update_stmt): Always walk all uses/defs.
2365         (dump_update_ssa): Adjust.
2366         (init_update_ssa): Take function argument.  Track what we are
2367         initialized for.
2368         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
2369         (create_new_def_for): Initialize for cfun, assert we are initialized
2370         for cfun.
2371         (mark_sym_for_renaming): Simplify.
2372         (mark_set_for_renaming): Do not initialize update-ssa.
2373         (need_ssa_update_p): Simplify.  Take function argument.
2374         (name_mappings_registered_p): Assert we ask for the correct function.
2375         (name_registered_for_update_p): Likewise.
2376         (ssa_names_to_replace): Likewise.
2377         (release_ssa_name_after_update_ssa): Likewise.
2378         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
2379         (dump_decl_set): Do not print a newline.
2380         (debug_decl_set): Do it here.
2381         (dump_update_ssa): And here.
2382         * tree-ssa-loop-im.c (move_computations): Adjust.
2383         (movement_possibility): Likewise.
2384         (determine_max_movement): Likewise.
2385         (gather_mem_refs_stmt): Likewise.
2386         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
2387         or NAME_MEMORY_TAG.
2388         * tree-complex.c (update_all_vops): Remove.
2389         (expand_complex_move): Adjust.
2390         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
2391         Simplify test for memory referencing statement.  Exclude
2392         non-invariant ADDR_EXPRs.
2393         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
2394         * tree-loop-distribution.c (generate_memset_zero): Adjust.
2395         (rdg_flag_uses): Likewise.
2396         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
2397         related code.
2398         (tree_optimize_tail_calls_1): Also split the
2399         edge from the entry block if we have degenerate PHI nodes in
2400         the first basic block.
2401         * tree.c (init_ttree): Remove memory-tag related code.
2402         (tree_code_size): Likewise.
2403         (tree_node_structure): Likewise.
2404         (build7_stat): Re-write to be build6_stat.
2405         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
2406         (SSA_VAR_P): Adjust.
2407         (struct tree_memory_tag): Remove.
2408         (struct tree_memory_partition_tag): Likewise.
2409         (union tree_node): Adjust.
2410         (build7): Re-write to be build6.
2411         * tree-pass.h (pass_reset_cc_flags): Remove.
2412         (TODO_update_address_taken): New flag.
2413         (pass_simple_dse): Remove.
2414         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
2415         * params.h (MAX_ALIASED_VOPS): Remove.
2416         (AVG_ALIASED_VOPS): Likewise.
2417         * omp-low.c (expand_omp_taskreg): Update SSA form.
2418         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
2419         aliases the lhs in a copy stmt.
2420         * tree-ssa-dse.c (struct address_walk_data): Remove.
2421         (memory_ssa_name_same): Likewise.
2422         (memory_address_same): Likewise.
2423         (get_kill_of_stmt_lhs): Likewise.
2424         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
2425         unused stores.  Look through PHI nodes into post-dominated regions.
2426         (dse_optimize_stmt): Simplify.  Properly remove stores.
2427         (tree_ssa_dse): Compute dominators.
2428         (execute_simple_dse): Remove.
2429         (pass_simple_dse): Likewise.
2430         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
2431         gimple_loaded_syms and gimple_stored_syms computation.
2432         * toplev.c (dump_memory_report): Dump alias and pta stats.
2433         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
2434         (vn_reference_eq): Likewise.
2435         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
2436         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
2437         valueize_vuses): Remove.
2438         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
2439         (get_def_ref_stmt_vuse): ... this.
2440         (vn_reference_lookup_2): New function.
2441         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
2442         walking equivalent vuses.  Simplify.
2443         (vn_reference_lookup): Likewise.
2444         (vn_reference_insert): Likewise.
2445         (vn_reference_insert_pieces): Likewise.
2446         (visit_reference_op_call): Simplify.
2447         (visit_reference_op_load): Likewise.
2448         (visit_reference_op_store): Likewise.
2449         (init_scc_vn): Remove shared_lookup_vuses initialization.
2450         (free_scc_vn): Remove shared_lookup_vuses freeing.
2451         (sort_vuses, sort_vuses_heap): Remove.
2452         (get_ref_from_reference_ops): Export.
2453         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
2454         vector with single vuse pointer.
2455         (vn_reference_lookup_pieces, vn_reference_lookup,
2456         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
2457         (shared_vuses_from_stmt): Remove.
2458         (get_ref_from_reference_ops): Declare.
2459         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
2460         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2461         memory-tag related code.
2462         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
2463         (likely_value): Add comment, skip static-chain of call statements.
2464         (surely_varying_stmt_p): Adjust.
2465         (gimplify_and_update_call_from_tree): Likewise.
2466         (execute_fold_all_builtins): Do not rebuild alias info.
2467         (gimplify_and_update_call_from_tree): Properly update VOPs.
2468         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
2469         (copy_ref_info): Remove memory-tag related code.
2470         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
2471         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
2472         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
2473         computation.
2474         * tree-ssa-dom.c (gimple_p): Remove typedef.
2475         (eliminate_redundant_computations): Adjust.
2476         (record_equivalences_from_stmt): Likewise.
2477         (avail_expr_hash): Likewise.
2478         (avail_expr_eq): Likewise.
2479         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
2480         (stmt_makes_single_load): Likewise.
2481         (stmt_makes_single_store): Likewise.
2482         * tree-ssa-alias.c: Rewrite completely.
2483         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
2484         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
2485         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
2486         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
2487         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
2488         Remove public functions.
2489         (pass_reset_cc_flags): Remove.
2490         (pass_build_alias): Move ...
2491         * tree-ssa-structalias.c (pass_build_alias): ... here.
2492         * tree-ssa-alias.c (may_be_aliased): Move ...
2493         * tree-flow-inline.h (may_be_aliased): ... here.
2494         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
2495         count_uses_and_derefs): Move ...
2496         * gimple.c: ... here.
2497         * gimple.h (count_uses_and_derefs): Declare.
2498         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
2499         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
2500         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
2501         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
2502         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
2503         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
2504         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
2505         New functions.
2506         * tree-dfa.c (refs_may_alias_p): Move ...
2507         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
2508         * tree-ssa-alias.h: New file.
2509         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
2510         (statement_sink_location): Likewise.
2511         * opts.c (decode_options): Do not adjust max-aliased-vops or
2512         avg-aliased-vops values.
2513         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
2514         (TV_CALL_CLOBBER): Likewise.
2515         (TV_FLOW_SENSITIVE): Likewise.
2516         (TV_FLOW_INSENSITIVE): Likewise.
2517         (TV_MEMORY_PARTITIONING): Likewise.
2518         (TV_ALIAS_STMT_WALK): New timevar.
2519         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
2520         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
2521         (get_address_description): Remove memory-tag related code.
2522         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
2523         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
2524         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
2525         and immediate uses in statements.  Document.
2526         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
2527         (dump_symbols): Remove.
2528         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
2529         * alias.c (get_deref_alias_set): New function split out from ...
2530         (get_alias_set): ... here.
2531         * alias.h (get_deref_alias_set): Declare.
2532         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
2533         type parameter.  Remove restrict pointer handling.  Create a
2534         ref-all pointer in case type-based alias sets do not conflict.
2535         (vect_analyze_data_refs): Remove SMT related code.
2536         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
2537         (vectorizable_load): Likewise.
2538         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
2539         (DR_SYMBOL_TAG, DR_VOPS): Remove.
2540         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
2541         Ignore vops and SMTs.
2542         (dr_analyze_alias): Likewise..
2543         (free_data_ref): Likewise.
2544         (create_data_ref): Likewise.
2545         (analyze_all_data_dependences): Likewise.
2546         (get_references_in_stmt): Adjust.
2547         * tree-flow-inline.h (gimple_aliases_computed_p,
2548         gimple_addressable_vars, gimple_call_clobbered_vars,
2549         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
2550         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
2551         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
2552         gimple_mem_ref_stats): Remove.
2553         (gimple_vop): New function.
2554         (op_iter_next_use): Remove vuses and mayuses cases.
2555         (op_iter_next_def): Remove vdefs case.
2556         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
2557         (clear_and_done_ssa_iter): Do not set removed fields.
2558         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
2559         Assert we are not iterating over vuses or vdefs if not also
2560         iterating over uses or defs.
2561         (op_iter_init_use): Likewise.
2562         (op_iter_init_def): Likewise.
2563         (op_iter_next_vdef): Remove.
2564         (op_iter_next_mustdef): Likewise.
2565         (op_iter_init_vdef): Likewise.
2566         (compare_ssa_operands_equal): Likewise.
2567         (link_use_stmts_after): Handle vuse operand.
2568         (is_call_used): Use is_call_clobbered.
2569         (is_call_clobbered): Global variables are always call clobbered,
2570         query the call-clobbers bitmap.
2571         (mark_call_clobbered): Ignore global variables.
2572         (clear_call_clobbered): Likewise.
2573         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
2574         virtual operands sanity check.
2575         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
2576         Remove.
2577         (TARGET_MEM_REF): Remove TMR_TAG operand.
2578         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
2579         Remove call-clobber related code.
2580         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
2581         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
2582         partitions or escape reason.
2583         (get_single_def_stmt, get_single_def_stmt_from_phi,
2584         get_single_def_stmt_with_phi): Remove.
2585         (dump_referenced_vars): Tidy.
2586         (get_ref_base_and_extent): Allow bare decls.
2587         (collect_dfa_stats): Adjust.
2588         * graphite.c (rename_variables_in_stmt): Adjust.
2589         (graphite_copy_stmts_from_block): Likewise.
2590         (translate_clast): Likewise.
2591         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
2592         (EXPR_DIES): New.
2593         (translate_vuse_through_block): Use the oracle.
2594         (phi_translate_1): Adjust.
2595         (value_dies_in_block_x): Use the oracle.  Cache the outcome
2596         in EXPR_DIES.
2597         (valid_in_sets): Check if the VUSE for
2598         a REFERENCE is available.
2599         (eliminate): Do not remove stmts during elimination,
2600         instead queue and remove them afterwards.
2601         (do_pre): Do not rebuild alias info.
2602         (pass_pre): Run TODO_rebuild_alias before PRE.
2603         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
2604         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
2605         (mark_all_v_defs_stmt): Remove.
2606         (mark_all_v_defs_seq): Adjust.
2607         (sra_replace): Likewise.
2608         (scalarize_use): Likewise.
2609         (scalarize_copy): Likewise.
2610         (scalarize_init): Likewise.
2611         (scalarize_ldst): Likewise.
2612         (todoflags): Remove.
2613         (tree_sra): Do not rebuild alias info.
2614         (tree_sra_early): Adjust.
2615         (pass_sra): Run TODO_update_address_taken before SRA.
2616         * tree-predcom.c (set_alias_info): Remove.
2617         (prepare_initializers_chain): Do not call it.
2618         (mark_virtual_ops_for_renaming): Adjust.
2619         (mark_virtual_ops_for_renaming_list): Remove.
2620         (initialize_root_vars): Adjust.
2621         (initialize_root_vars_lm): Likewise.
2622         (prepare_initializers_chain): Likewise.
2623         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
2624         (may_propagate_copy_into_stmt): Likewise.
2625         (merge_alias_info): Do nothing for now.
2626         (propagate_tree_value_into_stmt): Adjust.
2627         (stmt_may_generate_copy): Likewise.
2628         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
2629         not mark symbols for renaming.
2630         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
2631         with the same statement, make sure to update the new pointed-to one.
2632         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
2633         call statements, do not mark symbols for renaming.
2634         (mark_operand_necessary): Dump something.
2635         (ref_may_be_aliased): New function.
2636         (mark_aliased_reaching_defs_necessary_1): New helper function.
2637         (mark_aliased_reaching_defs_necessary): Likewise.
2638         (mark_all_reaching_defs_necessary_1): Likewise.
2639         (mark_all_reaching_defs_necessary): Likewise.
2640         (propagate_necessity): Do not process virtual PHIs.  For
2641         non-aliased loads mark all reaching definitions as necessary.
2642         For aliased loads and stores mark the immediate dominating
2643         aliased clobbers as necessary.
2644         (visited): New global static.
2645         (perform_tree_ssa_dce): Free visited bitmap after propagating
2646         necessity.
2647         (remove_dead_phis): Perform simple dead virtual PHI removal.
2648         (remove_dead_stmt): Properly unlink virtual operands when
2649         removing stores.
2650         (eliminate_unnecessary_stmts): Schedule PHI removal after
2651         stmt removal.
2652         * tree-ssa-ter.c (is_replaceable_p): Adjust.
2653         (process_replaceable): Likewise.
2654         (find_replaceable_in_bb): Likewise.
2655         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
2656         based on the single gimple vop.
2657         (verify_flow_insensitive_alias_info): Remove.
2658         (verify_flow_sensitive_alias_info): Likewise.
2659         (verify_call_clobbering): Likewise.
2660         (verify_memory_partitions): Likewise.
2661         (verify_alias_info): Likewise.
2662         (verify_ssa): Adjust..
2663         (execute_update_addresses_taken): Export.  Update SSA
2664         manually.  Optimize only when optimizing.  Use a local bitmap.
2665         (pass_update_address_taken): Remove TODO_update_ssa, add
2666         TODO_dump_func.
2667         (pass_update_address_taken): Just use TODO_update_address_taken.
2668         (init_tree_ssa): Do not initialize addressable_vars.
2669         (verify_ssa): Verify new VUSE / VDEF properties.
2670         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
2671         Do not call verify_alias_info.
2672         (delete_tree_ssa): Clear the VUSE, VDEF operands.
2673         Do not free the loaded and stored syms bitmaps.  Reset the escaped
2674         and callused solutions.  Do not free addressable_vars.
2675         Remove memory-tag related code.
2676         (warn_uninitialized_var): Aliases are always available.
2677         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
2678         * lambda-code.c (can_put_in_inner_loop): Adjust.
2679         (can_put_after_inner_loop): Likewise.
2680         (perfect_nestify): Likewise.
2681         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
2682         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
2683         (vectorizable_conversion): Do not mark symbols for renaming.
2684         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
2685         (expand_call_inline): Unlink the calls virtual operands before
2686         replacing it.
2687         (tree_function_versioning): Do not call update_ssa if we are not
2688         updating clones.  Simplify.
2689         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
2690         (propagate_with_phi): Likewise..
2691         * tree-outof-ssa.c (create_temp): Remove memory tag and call
2692         clobber code.  Assert we are not aliased or global.
2693         * tree-flow.h: Include tree-ssa-alias.h
2694         (enum escape_type): Remove.
2695         (struct mem_sym_stats_d): Likewise.
2696         (struct mem_ref_stats_d): Likewise.
2697         (struct gimple_df): Add vop member.  Remove global_var,
2698         call_clobbered_vars, call_used_vars, addressable_vars,
2699         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
2700         escaped and callused members.
2701         (struct ptr_info_def): Remove all members, add points-to solution
2702         member pt.
2703         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
2704         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
2705         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
2706         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
2707         (tree-ssa-alias.o): Likewise.
2708         (toplev.o): Add tree-ssa-alias.h
2709         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
2710         * gimple.c (gimple_set_bb): Fix off-by-one error.
2711         (is_gimple_reg): Do not handle memory tags.
2712         (gimple_copy): Also copy virtual operands.
2713         Delay updating the statement.  Do not reset loaded and stored syms.
2714         (gimple_set_stored_syms): Remove.
2715         (gimple_set_loaded_syms): Likewise.
2716         (gimple_call_copy_skip_args): Copy the virtual operands
2717         and mark the new statement modified.
2718         * tree-ssa-structalias.c (may_alias_p): Remove.
2719         (set_uids_in_ptset): Take the alias set to prune with as
2720         parameter.  Fold in the alias test of may_alias_p.
2721         (compute_points_to_sets): Compute whether a ptr is dereferenced
2722         in a local sbitmap.
2723         (process_constraint): Deal with &ANYTHING on the lhs, reject all
2724         other ADDRESSOF constraints on the lhs.
2725         (get_constraint_for_component_ref): Assert that we don't get
2726         ADDRESSOF constraints from the base of the reference.
2727         Properly generate UNKNOWN_OFFSET for DEREF if needed.
2728         (struct variable_info): Remove collapsed_to member.
2729         (get_varinfo_fc): Remove.
2730         (new_var_info): Do not set collapsed_to.
2731         (dump_constraint): Do not follow cycles.
2732         (dump_constraint_graph): Likewise.
2733         (build_pred_graph): Likewise.
2734         (build_succ_graph): Likewise.
2735         (rewrite_constraints): Likewise.
2736         (do_simple_structure_copy): Remove.
2737         (do_rhs_deref_structure_copy): Remove.
2738         (do_lhs_deref_structure_copy): Remove.
2739         (collapse_rest_of_var): Remove.
2740         (do_structure_copy): Re-implement.
2741         (pta_stats): New global variable.
2742         (dump_pta_stats): New function.
2743         (struct constraint_expr): Make offset signed.
2744         (UNKNOWN_OFFSET): Define special value.
2745         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
2746         (solution_set_expand): New helper function split out from ...
2747         (do_sd_constraint): ... here.
2748         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
2749         (do_ds_constraint): Likewise.
2750         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
2751         and CALLUSED = *CALLUSED.
2752         (set_union_with_increment): Make inc argument signed.
2753         (type_safe): Remove.
2754         (get_constraint_for_ptr_offset): Handle unknown and negative
2755         constant offsets.
2756         (first_vi_for_offset): Handle offsets before start.  Bail
2757         out early for offsets beyond the variable extent.
2758         (first_or_preceding_vi_for_offset): New function.
2759         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
2760         Together with ESCAPED = *ESCAPED this properly computes reachability.
2761         (find_what_var_points_to): New function.
2762         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
2763         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
2764         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
2765         pt_solutions_intersect): New functions.
2766         (compute_call_used_vars): Remove.
2767         (compute_may_aliases): New main entry into PTA computation.
2768         * gimple.h (gimple_p): New typedef.
2769         (struct gimple_statement_base): Remove references_memory_p.
2770         (struct gimple_statement_with_memory_ops_base): Remove
2771         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
2772         members.
2773         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
2774         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
2775         gimple_set_references_memory): Remove.
2776         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
2777         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
2778         New functions.
2779         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
2780         (verify_expr): Allow RESULT_DECL.
2781         (gimple_duplicate_bb): Do not copy virtual operands.
2782         (gimple_duplicate_sese_region): Adjust.
2783         (gimple_duplicate_sese_tail): Likewise.
2784         (mark_virtual_ops_in_region): Remove.
2785         (move_sese_region_to_fn): Do not call it.
2786         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
2787         and pass_simple_dse.
2788         (execute_function_todo): Handle TODO_update_address_taken,
2789         call execute_update_addresses_taken for TODO_rebuild_alias.
2790         (execute_todo): Adjust.
2791         (execute_one_pass): Init dump files early.
2792         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
2793         call-clobbered.
2794         (create_general_new_stmt): Clear vops.
2795         * tree-ssa-reassoc.c (get_rank): Adjust.
2796         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
2797         symbols for renaming.
2798         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
2799         (PARAM_AVG_ALIASED_VOPS): Likewise.
2800         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
2801         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
2802         * tree-ssa-operands.c: Simplify for new virtual operand representation.
2803         (operand_build_cmp, copy_virtual_operands,
2804         create_ssa_artificial_load_stmt, add_to_addressable_set,
2805         gimple_add_to_addresses_taken): Remove public functions.
2806         (unlink_stmt_vdef): New function.
2808 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
2810         * config.gcc (powerpc-*-linux*): Merge variants.
2812 2009-04-02  Chao-ying Fu  <fu@mips.com>
2813             James Grosbach <james.grosbach@microchip.com>
2815         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
2816         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
2817         cop0_sp_offset.
2818         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
2819         keep_interrupts_masked_p, use_debug_exception_return_p.
2820         (mips_attribute_table): Add interrupt, use_shadow_register_set,
2821         keep_interrupts_masked, use_debug_exception_return.
2822         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
2823         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
2824         New functions.
2825         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
2826         (mips_print_operand): Process COP0 registers to print $0 .. $31
2827         correctly for GAS to process.
2828         (mips_interrupt_extra_call_saved_reg_p): New function.
2829         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
2830         extra registers.
2831         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
2832         (mips_compute_frame_info): Add supports for interrupt context that
2833         includes doubleword accumulators and COP0 registers.
2834         (mips_for_each_saved_acc): New function.
2835         (mips_for_each_saved_gpr_and_fpr): Change the function name from
2836         mips_for_each_saved_reg.
2837         (mips_save_reg): Save accumulators.
2838         (mips_kernel_reg_p): A new for_each_rtx callback.
2839         (mips_expand_prologue): Support interrupt handlers.
2840         (mips_restore_reg): Restore accumulators.
2841         (mips_expand_epilogue): Support interrupt handlers.
2842         (mips_can_use_return_insn): Return false for interrupt handlers.
2843         (mips_epilogue_uses): New function.
2844         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
2845         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
2846         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
2847         cop0_move): New instructions.
2848         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
2849         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
2850         defines.
2851         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
2852         New defines.
2853         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
2854         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
2855         interrupt handlers, we use K0 as the temporary register.
2856         (EPILOGUE_USES): Change to a function call.
2857         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
2858         handlers, we use K0 as the temporary register.
2859         
2860         * doc/extend.texi (Function Attributes): Document interrupt,
2861         use_shadow_register_set, keep_interrupts_masked,
2862         use_debug_exception_return for MIPS attributes.
2864 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
2866         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
2867         Remove a number of t-files from tmake_file.
2868         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
2869         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
2870         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
2871         target_prototype, not TARGET_PROTOTYPE.
2872         (LINK_OS_GNU_SPEC): Define.
2873         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
2874         and darwin-ldoubdle.c.
2876 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2878         PR driver/39293
2879         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
2880         (cpp_options): Ditto.
2881         (default_compilers): Ditto.
2882         (display_help): Ditto.
2883         (process_command): Ditto.
2884         (do_spec_1): Ditto.
2885         (set_input): Use lbasename instead of duplicate code.
2886         (save_temps_prefix): New static for -save-temps=obj.
2887         (save_temps_length): Ditto.
2888         
2889         * doc/invoke.texi (-save-temps=obj): Document new variant to
2890         -save-temps switch.
2892 2009-04-02  Jeff Law  <law@redhat.com>
2894         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
2895         variable.
2897 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
2899         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
2900         * configure: Regenerated.
2902 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2904         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
2905         share the argument list.
2907 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2909         Merge
2911         2009-02-12  Diego Novillo  <dnovillo@google.com>
2913         * varpool.c (debug_varpool): New.
2914         * cgraph.h (debug_varpool): Declare.
2916 2009-04-02  Jan Hubicka  <jh@suse.cz>
2918         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
2919         pass.
2921 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
2923         * config/i386/i386.c (ix86_abi): Move initialization to ...
2924         (override_options): Here.
2926 2009-04-02  Christian Bruel  <christian.bruel@st.com>
2928         * config/sh/sh.c (sh_dwarf_register_span): New function.
2929         (TARGET_DWARF_REGISTER_SPAN): Define.
2930         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2931         
2932 2009-04-02  Ira Rosen  <irar@il.ibm.com>
2934         PR tree-optimization/39595
2935         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 
2936         interleaved loads group is not  greater than the SLP group size.
2938 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2940         * builtins.c (is_builtin_name): New.
2941         (called_as_built_in): Use is_builtin_name.
2942         * tree.h (is_builtin_name): New.
2943         * varasm.c (incorporeal_function_p): Use is_builtin_name
2945 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
2947         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
2949 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
2951         PR c++/26693
2952         * c-decl.c (clone_underlying_type): Move this ...
2953         * c-common.c (set_underlying_type): ... here.
2954         Also, make sure the function properly sets TYPE_STUB_DECL() on
2955         the newly created typedef variant type.
2956         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
2957         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
2958         points.
2960 2009-04-02  Richard Guenther  <rguenther@suse.de>
2962         PR tree-optimization/37221
2963         * tree-flow.h (degenerate_phi_result): Declare.
2964         * tree-ssa-dom.c (degenerate_phi_result): Export.
2965         * tree-scalar-evolution.c (analyze_initial_condition): If
2966         the initial condition is defined by a degenerate PHI node
2967         use the degenerate value.
2969 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
2971         PR rtl-optimization/39588
2972         * combine.c (merge_outer_ops): Do not set the constant when this
2973         is not necessary.
2974         (simplify_shift_const_1): Do not modify it either in this case.
2976 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
2978         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
2979         tuning is deprecated if -mtune value is set to an Itanium1 variant.
2981 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
2983         PR c/29027
2984         * c-lex.c (interpret_float): Default (no suffix) is double.
2986 2009-04-1  Xinliang David Li  <davidxl@google.com>
2988         * config/i386/i386.c (legitimate_constant_p): Recognize
2989         all one vector constant.
2991 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2993         * gcc/config/vax/vax.c: Add #includes to silence warnings.
2994         Change #include order to silence two warnings.
2996 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2998         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
2999         (ASM_SPEC): Pass -k to the assembler for PIC code.
3001 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3003         * gcc/config.gcc: Add vax-*-linux* to the switch.
3004         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
3005         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
3007 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3009         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
3010         Use predicate macros instead of GET_CODE() == foo.
3011         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
3012         ashlsi3, rotrsi3, <unnamed>): Likewise.
3014 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3016         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
3017         jbbccihi, jbbccisi): Remova trailing whitespace.
3018         * gcc/config/vax/constraints.md: Likewise.
3019         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3020         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
3021         * gcc/config/vax/predicates.md: Likewise.
3022         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
3023         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
3024         * gcc/config/vax/vax.h: Likewise.
3025         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
3027 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3029         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
3030         (indirectable_address_p, adjacent_operands_p): Add spaces around
3031         braces.
3032         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
3034 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3036         * gcc/config/vax/vax.c (legitimate_constant_address_p,
3037         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
3038         index_term_p, reg_plus_index_p, legitimate_address_p,
3039         vax_mode_dependent_address_p): Update comments to match functions
3040         modified by the recent int->bool conversion.
3042 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3044         * gcc/config/vax/builtins.md: Update copyright message.
3045         * gcc/config/vax/constraints.md: Likewise.
3046         * gcc/config/vax/netbsd-elf.h: Likewise.
3047         * gcc/config/vax/predicates.md: Likewise.
3048         * gcc/config/vax/vax-protos.h: Likewise.
3049         * gcc/config/vax/vax.c: Likewise.
3050         * gcc/config/vax/vax.h: Likewise.
3051         * gcc/config/vax/vax.md: Likewise.
3052         * gcc/config/vax/vax.opt: Likewise.
3054 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3056         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
3057         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
3058         * gcc/config/vax/constraints.md (B, R): Likewise.
3059         * gcc/config/vax/predicates.md (external_memory_operand,
3060         nonimmediate_addsub_di_operand): Likewise.
3061         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
3062         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
3063         untyped_call): Likewise.
3065 2009-04-01  Matt Thomas <matt@3am-software.com>
3067         * config/vax/predicates.md: New file.
3068         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
3069         external_const_operand, nonsymbolic_operand, external_memory_operand,
3070         indirect_memory_operand, indexed_memory_operand,
3071         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
3072         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
3073         predicate.
3074         * config/vax/constraints.md: New file.
3075         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
3076         New constraint.
3077         * config/vax/builtins.md: New file.
3078         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
3079         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
3080         jbbccisi): Define.
3081         * config/vax/vax.opt (mqmath): Add option.
3082         * config/vax/vax.md (isfx): Extend with DI.
3083         (VAXintQH, VAXintQHSD): Define.
3084         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
3085         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
3086         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
3087         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
3088         (movdi): Update constraints and use vax_output_int_move().
3089         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
3090         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
3091         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
3092         nonlocal_goto): New.
3093         (mov<mode>): Extend accepted operand types.
3094         (subdi3_old): Rename from subdi3, change update constraints and use
3095         a new implementation.
3096         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
3097         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
3098         MOVE_RATIO, CLEAR_RATIO): Define.
3099         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
3100         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
3101         (PRINT_OPERAND): Redefine using a function instead of inlined code.
3102         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
3103         (split_quadword_operands): Make static and really allow variable
3104         splitting.
3105         (print_operand_address): Update for PIC generation.
3106         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
3107         indexable_address_p, fixup_mathdi_operand,
3108         vax_expand_addsub_di_operands, adjacent_operands_p): New.
3109         (vax_float_literal, legitimate_constant_p,
3110         indirectable_constant_address_p, index_term_p,
3111         reg_plus_index_p): Return bool instead of int.
3112         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
3113         where needed.
3114         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
3115         generation.
3116         (vax_output_conditional_branch): Indent.
3117         (legitimate_constant_address_p, indirectable_constant_address_p,
3118         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
3119         vax_mode_dependent_address_p): Return bool instead of int, update for
3120         PIC generation.
3121         * config/vax/vax-protos.h (legitimate_constant_address_p,
3122         legitimate_constant_p, legitimate_address_p,
3123         vax_mode_dependent_address_p): Change declaration to bool.
3124         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
3125         vax_expand_addsub_di_operands, vax_output_int_subtract,
3126         vax_output_movmemsi): Declare.
3127         (split_quadword_operands, vax_float_literal): Delete declaration.
3128         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
3129         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
3130         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
3131         ASM_OUTPUT_DWARF_PCREL): Define.
3132         (ASM_SPEC): Change definition to allow PIC generation.
3134 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
3136         * doc/sourcebuild.texi: Update front-end requirements.
3138 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
3140         PR target/39226
3141         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
3142         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
3143         (booldi3_internal3): Use boolean_or_operator instead of
3144         boolean_operator.
3146 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
3148         PR c/39605
3149         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
3150         declarator whose size is not an integer constant expression but
3151         folds to an integer constant, then treat it as a constant
3152         subsequently.
3154 2009-04-01  Richard Guenther  <rguenther@suse.de>
3156         * fold-const.c (fold_plusminus_mult_expr): Do not fold
3157         i * 4 + 2 to (i * 2 + 1) * 2.
3159 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
3161         PR c/37772
3162         * c-parser.c (c_parser_asm_statement): Skip until close paren and
3163         return if c_parser_asm_string_literal returned NULL.
3165 2009-04-01  Nick Clifton  <nickc@redhat.com>
3167         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
3168         already defined.
3169         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
3170         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
3171         other typedefs to avoid conflicts with libgcc2.c.  Define labels
3172         to gain 16-bit bit-manipulation functions from libgcc2.c and then
3173         include it.
3174         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
3175         to gain 16-bit trapping arithmetic functions from libgcc2.c and
3176         then include it.
3178 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
3180         * varasm.c (default_function_rodata_section): Declare DOT as
3181         const char*.
3183 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
3184             Andrey Galkin <agalkin@hypercom.com>
3186         PR/39492
3187         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
3188         Make object_name unique for each process.
3190 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
3192         PR other/39591
3193         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
3194         addressable variables in the parallel that could go out of scope while
3195         running queued tasks.
3197 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
3199         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
3200         (CASE_VALUES_THRESHOLD): Redefine.
3201         * config/avr/avr.c (avr_override_options): Remove initialization of
3202         avr_case_values_threshold variable.
3203         (avr_case_values_threshold): Remove variable. Add new function.
3204         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
3205         * config/avr/avr.opt (mno-tablejump): Remove option.
3206         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
3208 2009-04-01  DJ Delorie  <dj@redhat.com>
3210         * varasm.c (default_function_rodata_section): Don't assume
3211         anything about where the first '.' in the section name is.
3213 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
3215         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
3216         rs6000_emit_stack_tie.
3218 2009-03-31  Ian Lance Taylor  <iant@google.com>
3220         * tree-eh.c (tree_remove_unreachable_handlers): Compare
3221         gimple_code with GIMPLE_RESX, not RESX.
3223 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
3225         * c-common.c (c_get_ident): New.
3226         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
3228 2009-04-01  Ben Elliston  <bje@au.ibm.com>
3230         * config/rs6000/sysv4.opt (msdata): Improve option description.
3232 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
3234         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
3235         (divdf3_internal_lat): Remove.
3236         (divxf3_internal_lat): Remove.
3237         (divxf3_internal_thr): Remove.
3238         (divxf): Use divxf3_internal.
3239         * config/ia64/div.md (divsf3_internal_lat): New.
3240         (divdf3_internal_lat): New.
3241         (divxf3_internal): New.
3243 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
3245         PR c/448
3246         * Makefile.in (USE_GCC_STDINT): Define.
3247         (stmp-int-hdrs): Install stdint.h if applicable.
3248         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
3249         if known.
3250         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
3251         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
3252         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
3253         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3254         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3255         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3256         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3257         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3258         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3259         (c_common_nodes_and_builtins): Initialize
3260         underlying_wchar_type_node.  Do not initialize
3261         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
3262         nodes for new types.
3263         (c_stddef_cpp_builtins): Define macros for new types.
3264         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
3265         Remove.
3266         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
3267         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
3268         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
3269         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
3270         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
3271         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
3272         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
3273         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
3274         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
3275         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
3276         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
3277         int16_type_node, int32_type_node, int64_type_node,
3278         uint8_type_node, uint16_type_node, c_uint32_type_node,
3279         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
3280         int_least32_type_node, int_least64_type_node,
3281         uint_least8_type_node, uint_least16_type_node,
3282         uint_least32_type_node, uint_least64_type_node,
3283         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
3284         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
3285         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
3286         uintptr_type_node): Define.
3287         * c-cppbuiltin.c (builtin_define_constants,
3288         builtin_define_type_minmax): New.
3289         (builtin_define_stdint_macros): Define more macros.
3290         (c_cpp_builtins): Define more limit macros.
3291         (type_suffix): New.
3292         (builtin_define_type_max): Define in terms of
3293         builtin_define_type_minmax.  Remove is_long parameter.  All
3294         callers changed.
3295         * config.gcc (use_gcc_stdint): Define.
3296         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
3297         Add newlib-stdint.h for generic targets.
3298         * config/glibc-stdint.h, config/newlib-stdint.h,
3299         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
3300         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
3301         * config/score/score.h (UINTPTR_TYPE): Define.
3302         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3303         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3304         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3305         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3306         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3307         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3308         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3309         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3310         * config/spu/spu.h (STDINT_LONG32): Define.
3311         * configure.ac (use_gcc_stdint): Substitute.
3312         * configure: Regenerate.
3313         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
3314         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
3315         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
3316         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
3317         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
3318         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
3319         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
3320         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
3321         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
3322         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
3323         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
3324         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
3325         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
3326         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
3327         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
3328         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
3329         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
3330         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
3331         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
3332         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
3333         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
3334         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
3335         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
3336         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3337         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3338         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3339         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3340         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3341         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
3343 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
3345         * loop-iv.c (suitable_set_for_replacement): Renamed from
3346         simplify_using_assignment; changed to return bool and to accept new
3347         args DEST and SRC.  Return true iff we find a source/destination pair
3348         that can be used to make a replacement, and fill SRC and DEST if so.
3349         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
3350         changed.
3351         (simplify_using_initial_values): Deal with altered regs here and track
3352         more precisely the effect they have on the validity of our expression.
3354         * loop-iv.c (simplify_using_condition): A condition of the form
3355         (EQ REG CONST) can be used to simply make a substitution.
3356         (simplify_using_initial_values): Keep track of conditions we have seen
3357         and keep using them to simplify new expressions, while applying the
3358         same substitutions to them as to the expression.
3360         * simplify-rtx.c (simplify_relational_operation_1): Simplify
3361         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
3362         GEU/LTU reversed.
3364         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
3365         changed.  Use this when trying to improve the upper bound.
3366         Generate the comparison by using simplify_gen_relational.
3368         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
3370         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
3371         functions.
3372         (simplify_using_assignment, simplify_using_initial_values): Call 
3373         replace_in_expr to make replacements.  Call replace_single_def_regs
3374         once on the initial version of the expression.
3376 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3378         PR target/27237
3379         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
3380         
3381 2009-03-31  Richard Guenther  <rguenther@suse.de>
3383         PR middle-end/31029
3384         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
3385         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
3387 2009-03-31  Richard Guenther  <rguenther@suse.de>
3389         * tree.h (div_if_zero_remainder): Declare.
3390         * fold-const.c (div_if_zero_remainder): Export.
3391         * tree-ssa-forwprop.c
3392         (forward_propagate_addr_into_variable_array_index): Handle
3393         constant array index addition outside of the variable index.
3395 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
3397         PR target/39592
3398         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
3399         define_splits, floatunssi<mode>2): Require x87 conversions from
3400         DImode to be permitted.
3402 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
3404         PR preprocessor/15638
3405         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
3407 2009-03-31  Richard Guenther  <rguenther@suse.de>
3409         PR middle-end/23401
3410         PR middle-end/27810
3411         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
3412         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
3413         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
3414         a separate statement.
3415         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
3416         (lookup_tmp_var): Likewise.
3417         (is_gimple_formal_tmp_or_call_rhs): Remove.
3418         (is_gimple_reg_or_call_rhs): Rename to ...
3419         (is_gimple_reg_rhs_or_call): ... this.
3420         (is_gimple_mem_or_call_rhs): Rename to ...
3421         (is_gimple_mem_rhs_or_call): ... this.
3422         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
3423         DECL_GIMPLE_REG_P only if is_formal is true.
3424         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
3425         for non-proper post-modify expression gimplification.
3426         (gimplify_self_mod_expr): For post-modify expressions gimplify
3427         the lvalue to a minimal lvalue.
3428         (rhs_predicate_for): Remove formal temp case.
3429         (gimplify_modify_expr_rhs): Likewise.
3430         (gimplify_addr_expr): Use is_gimple_reg.
3431         (gimplify_expr): Remove formal temp cases.
3432         (gimple_regimplify_operands): Likewise.
3433         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
3434         and FILTER_EXPR like constants.
3435         * gimple.c (walk_gimple_op): Fix val_only initialization, use
3436         is_gimple_reg.
3437         (is_gimple_formal_tmp_rhs): Remove.
3438         (is_gimple_reg_rhs): Remove special casing.
3439         (is_gimple_mem_rhs): Fix.
3440         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
3441         (is_gimple_formal_tmp_var): Remove.
3442         (is_gimple_formal_tmp_reg): Likewise.
3443         (is_gimple_min_lval): Allow invariant component ref parts.
3444         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
3445         is_gimple_formal_tmp_reg): Remove declarations.
3446         * tree-cfg.c (verify_expr): Verify that variables with address
3447         taken do not have DECL_GIMPLE_REG_P set.
3448         * tree-mudflap.c (mf_build_check_statement_for): Use
3449         force_gimple_operand instead of gimplify_expr.
3451 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
3453         * modulo-sched.c (sms_schedule_by_order): Pass the actual
3454         schedulable rows to compute_split_row.
3456 2009-03-31  Ben Elliston  <bje@au.ibm.com>
3458         PR target/31635
3459         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
3460         OPT_mvrsave.
3462 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
3464         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
3465         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
3466         * configure: Regenerate.
3467         * config.in: Regenerate.
3468         * config/rs6000/rs6000.opt (mtls-markers): Add.
3469         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
3470         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
3471         (tls_ld_aix, tls_ld_sysv): Likewise.
3472         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
3473         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
3475 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
3477         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
3479 2009-03-30  Jan Hubicka  <jh@suse.cz>
3481         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
3482         out of RESX.
3483         (tree_remove_unreachable_handlers): Cleanup EH predecestor
3484         detection and label handling.
3486 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
3488         * ira-int.h (ira_allocno): Rename left_conflicts_num to
3489         left_conflicts_size.
3490         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
3491         ALLOCNO_LEFT_CONFLICTS_SIZE.
3493         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
3494         remove_allocno_from_bucket_and_push,
3495         allocno_spill_priority_compare, push_allocnos_to_stack,
3496         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
3497         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
3498         (setup_allocno_left_conflicts_num): Ditto.  Rename to
3499         setup_allocno_left_conflicts_size.
3500         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
3501         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
3502         setup_allocno_left_conflicts_size instead of
3503         setup_allocno_left_conflicts_num.
3505         * ira-build.c (ira_create_allocno): Use
3506         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
3507         ALLOCNO_LEFT_CONFLICTS_NUM.
3508                 
3509 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
3511         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
3512         instead of DF_LR_OUT.
3514         * ira-lives.c (process_bb_node_lives): Ditto.
3516         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
3517         instead of DF_LR_{OUT,IN}.
3519         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
3521         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
3523 2009-03-30  Jan Hubicka  <jh@suse.cz>
3525         * except.c (label_to_region_map): Fix thinko.
3527 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
3529         PR middle-end/38237
3530         * tree.h (tree_find_value): New declaration.
3531         * tree.c (tree_find_value): New function.
3532         * varasm.c (assemble_external): Avoid duplicate entries on lists.
3534 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
3536         PR debug/39563
3537         * c-decl.c (struct c_binding): Add locus field.
3538         (bind): Add locus argument, set locus field from it.
3539         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
3540         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
3541         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
3542         implicitly_declare, undeclared_variable, lookup_label,
3543         declare_label, c_make_fname_decl, c_builtin_function,
3544         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
3545         bind callers.
3547 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
3549         PR target/38781
3550         * config/i386/i386.c (classify_argument): Check total size of
3551         structure.
3553 2009-03-30  Martin Jambor  <mjambor@suse.cz>
3555         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
3556         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
3557         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
3558         respectively.
3560         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
3561         seen_variable_array_ref while also traversing a union.
3563         * tree-inline.c (optimize_inline_calls): Do not call
3564         cgraph_node_remove_callees.
3565         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
3566         (pass_remove_cgraph_callee_edges): New variable.
3567         * passes.c (init_optimization_passes): Add
3568         pass_remove_cgraph_callee_edges after early inlining and before all
3569         late intraprocedural passes.
3571         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
3573 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
3575         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
3576         Fix typos in names.
3578 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
3580         * combine.c (simplify_comparison): Use have_insn_for.
3581         * dojump.c (do_jump): Likewise.
3583 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
3585         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
3586         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
3587         sparc_compare_op0 like sparc_compare_emitted used to be handled.
3588         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
3589         instead of sparc_compare_emitted.
3590         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
3591         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
3592         instead of sparc_compare_emitted.
3594 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
3596         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
3597         enter/exit cfglayout mode.
3598         (pass_partition_block): Require it.
3599         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
3600         (combine_instructions): Track basic blocks instead of labels.
3601         (update_cfg_for_uncondjump): New.
3602         (try_combine): Use it.  Update jumps after rescanning.
3603         (pass_combine): Require PROP_cfglayout.
3604         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
3606 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
3608         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
3609         Provide/destroy PROP_cfglayout respectively.
3610         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
3611         * tree-pass.h (PROP_cfglayout): New.
3613 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
3615         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
3616         fold_convert_const_fixed_from_fixed,
3617         fold_convert_const_fixed_from_int,
3618         fold_convert_const_fixed_from_real, fold_negate_const): Do not
3619         set TREE_CONSTANT_OVERFLOW.
3620         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
3621         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
3623 2009-03-30  Ira Rosen  <irar@il.ibm.com>
3625         * tree-vect-loop-manip.c: New file.
3626         * tree-vectorizer.c: Update documentation and included files.
3627         (vect_loop_location): Make extern.
3628         (rename_use_op): Move to tree-vect-loop-manip.c
3629         (rename_variables_in_bb, rename_variables_in_loop, 
3630         slpeel_update_phis_for_duplicate_loop, 
3631         slpeel_update_phi_nodes_for_guard1,
3632         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
3633         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
3634         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
3635         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
3636         find_loop_location): Likewise.
3637         (new_stmt_vec_info): Move to tree-vect-stmts.c.
3638         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
3639         get_vectype_for_scalar_type, vect_is_simple_use,
3640         supportable_widening_operation, supportable_narrowing_operation):
3641         Likewise.
3642         (bb_in_loop_p): Move to tree-vect-loop.c.
3643         (new_loop_vec_info, destroy_loop_vec_info, 
3644         reduction_code_for_scalar_code, report_vect_op, 
3645         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
3646         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
3647         (vect_supportable_dr_alignment): Likewise.
3648         * tree-vectorizer.h (tree-data-ref.h): Include.
3649         (vect_loop_location): Declare.
3650         Reorganize function declarations according to the new file structure.
3651         * tree-vect-loop.c: New file.
3652         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
3653         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
3654         * tree-vect-data-refs.c: New file.
3655         * tree-vect-patterns.c (timevar.h): Don't include.
3656         * tree-vect-stmts.c: New file.
3657         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
3658         tree-vect-slp.c, tree-vect-loop.c.
3659         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
3660         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
3661         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
3662         (tree-vect-analyze.o): Remove.
3663         (tree-vect-transform.o): Likewise.
3664         (tree-vect-data-refs.o): Add rule.
3665         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
3666         tree-vect-slp.o): Likewise.
3667         (tree-vect-patterns.o): Remove redundant dependencies.
3668         (tree-vectorizer.o): Likewise.
3669         * tree-vect-slp.c: New file.
3671 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3673         * optc-gen.awk: Warn if an option flag has multiple different
3674         help strings.
3676 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
3678         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
3679         -floop-block): Document dependences on PPL, CLooG and Graphite.
3681 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
3683         PR rtl-optimization/323
3684         * c-common.c (c_fully_fold, convert_and_check,
3685         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
3686         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
3687         * c-common.def (EXCESS_PRECISION_EXPR): New.
3688         * c-cppbuiltin.c (builtin_define_float_constants): Define
3689         constants with enough digits for long double.
3690         * c-lex.c (interpret_float): Interpret constant with excess
3691         precision where appropriate.
3692         * c-opts.c (c_common_post_options): Set
3693         flag_excess_precision_cmdline.  Give an error for
3694         -fexcess-precision=standard for C++ for processors where the
3695         option is significant.
3696         * c-parser.c (c_parser_conditional_expression): Handle excess
3697         precision in condition.
3698         * c-typeck.c (convert_arguments): Handle arguments with excess
3699         precision.
3700         (build_unary_op): Move excess precision outside operation.
3701         (build_conditional_expr): Likewise.
3702         (build_compound_expr): Likewise.
3703         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
3704         (build_modify_expr): Handle excess precision in RHS.
3705         (convert_for_assignment): Handle excess precision in converted
3706         value.
3707         (digest_init, output_init_element, process_init_element): Handle
3708         excess precision in initializer.
3709         (c_finish_return): Handle excess precision in return value.
3710         (build_binary_op): Handle excess precision in operands and add
3711         excess precision as needed for operation.
3712         * common.opt (-fexcess-precision=): New option.
3713         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
3714         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
3715         For standard excess precision, output explicit conversion to and
3716         truncation from XFmode.
3717         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
3718         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
3719         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
3720         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
3721         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
3722         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
3723         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
3724         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
3725         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
3726         define_splits, sqrt<mode>2): Disable where appropriate for
3727         standard excess precision.
3728         * convert.c (convert_to_real): Do not shorten arithmetic to type
3729         for which excess precision would be used.
3730         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
3731         * doc/invoke.texi (-fexcess-precision=): Document option.
3732         (-mfpmath=): Correct index entry.
3733         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
3734         flag_excess_precision): New.
3735         * langhooks.c (lhd_post_options): Set
3736         flag_excess_precision_cmdline.
3737         * opts.c (common_handle_option): Handle -fexcess-precision=.
3738         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
3739         init_excess_precision): New.
3740         (lang_dependent_init_target): Call init_excess_precision.
3741         * tree.c (excess_precision_type): New.
3742         * tree.h (excess_precision_type): Declare.
3744 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
3746         PR c/35235
3747         * c-typeck.c (build_component_ref): Do not copy qualifiers from
3748         non-lvalue to component.
3750 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
3752         PR preprocessor/34695
3753         * Makefile.in (c-opts.o): Depend on c-tree.h.
3754         * c-common.c: Move down include of diagnostic.h.
3755         (done_lexing, c_cpp_error): New.
3756         * c-common.h (done_lexing): Declare.
3757         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
3758         (parse_in).
3759         * c-opts.c: Include c-tree.h.
3760         (c_common_init_options): Set preprocessor error callback.
3761         (c_common_handle_option): Do not set preprocessor
3762         inhibit_warnings, warnings_are_errors, warn_system_headers,
3763         pedantic_errors or inhibit_warnings flags.
3764         (c_common_post_options): Do not check cpp_errors (parse_in).
3765         (c_common_finish): Do not output dependencies if there were
3766         errors.  Do not check return value of cpp_finish.
3767         * c-ppoutput.c (pp_file_change): Set input_location.
3768         * c-tree.h (c_cpp_error): Declare.
3769         * diagnostic.c (diagnostic_set_info_translated): Also initialize
3770         override_column.
3771         (diagnostic_build_prefix): Check override_column.
3772         * diagnostic.h (diagnostic_info): Add override_column field.
3773         (diagnostic_override_column): Define.
3775 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
3777         * c-common.c (c_expand_expr, c_staticp): Remove.
3778         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
3779         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
3780         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
3781         * c-gimplify.c (gimplify_compound_literal_expr,
3782         optimize_compound_literals_in_ctor): Remove.
3783         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
3784         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
3785         * c-semantics.c (emit_local_var): Remove.
3787         * langhooks-def.h (lhd_expand_expr): Remove.
3788         * langhooks.c (lhd_expand_expr): Remove.
3789         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
3791         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
3792         handling from c-semantics.c; don't call into langhook.
3793         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
3794         * gimplify.c (gimplify_compound_literal_expr,
3795         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
3796         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
3797         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
3798         as was done in c-gimplify.c.
3799         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
3800         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
3801         Move from c-common.h.
3802         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
3804         * tree.c (staticp): Do not call langhook.
3805         * langhooks.c (lhd_staticp): Delete.
3806         * langhooks-def.h (lhd_staticp): Delete prototype.
3807         (LANG_HOOKS_STATICP): Delete.
3808         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
3810         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
3811         instead of DECL_STMTs.
3813 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
3815         PR c/456
3816         PR c/5675
3817         PR c/19976
3818         PR c/29116
3819         PR c/31871
3820         PR c/35198
3821         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
3822         void_type_node.
3823         (fold_call_expr): Return a NOP_EXPR from folding rather than the
3824         contained expression.
3825         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
3826         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
3827         conditional expressions for C.
3828         (decl_constant_value_for_optimization): Move from
3829         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
3830         whether optimizing and that the expression is a VAR_DECL not of
3831         array type instead of doing such checks in the caller.  Do not
3832         check pedantic.  Call gcc_unreachable for C++.
3833         * c-common.def (C_MAYBE_CONST_EXPR): New.
3834         * c-common.h (c_fully_fold, c_save_expr,
3835         decl_constant_value_for_optimization): New prototypes.
3836         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
3837         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
3838         EXPR_INT_CONST_OPERANDS): Define.
3839         * c-convert.c (convert): Strip nops from expression.
3840         * c-decl.c (groktypename): Take extra parameters expr and
3841         expr_const_operands.  Update call to grokdeclarator.
3842         (start_decl): Update call to grokdeclarator.  Add statement for
3843         expressions used in type of decl.
3844         (grokparm): Update call to grokdeclarator.
3845         (push_parm_decl): Update call to grokdeclarator.
3846         (build_compound_literal): Add parameter non_const and build a
3847         C_MAYBE_COSNT_EXPR if applicable.
3848         (grokdeclarator): Take extra parameters expr and
3849         expr_const_operands.  Track expressions used in declaration
3850         specifiers and declarators.  Fold array sizes and track whether
3851         they are constant expressions and whether they are integer
3852         constant expressions.
3853         (parser_xref_tag): Set expr and expr_const_operands fields in
3854         return value.
3855         (grokfield): Update call to grokdeclarator.
3856         (start_function): Update call to grokdeclarator.
3857         (build_null_declspecs): Set expr and expr_const_operands fields in
3858         return value.
3859         (declspecs_add_type): Handle expressions in typeof specifiers.
3860         * c-parser.c (c_parser_declspecs): Set expr and
3861         expr_const_operands fields for declaration specifiers.
3862         (c_parser_enum_specifier): Likewise.
3863         (c_parser_struct_or_union_specifier): Likewise.
3864         (c_parser_typeof_specifier): Likewise.  Update call to
3865         groktypename.  Fold expression as needed.  Return expressions with
3866         type instead of adding statements.
3867         (c_parser_attributes): Update calls to c_parser_expr_list.
3868         (c_parser_statement_after_labels): Fold expression before passing
3869         to objc_build_throw_stmt.
3870         (c_parser_condition): Fold expression.
3871         (c_parser_asm_operands): Fold expression.
3872         (c_parser_conditional_expression): Use c_save_expr.  Update call
3873         to build_conditional_expr.
3874         (c_parser_alignof_expression): Update call to groktypename.
3875         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
3876         original_code.  Fold expression argument of va_arg.  Create
3877         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
3878         argument to va_arg.  Update calls to groktypename.  Fold array
3879         index for offsetof.  Verify that first argument to
3880         __builtin_choose_expr has integer type.
3881         (c_parser_postfix_expression_after_paren_type): Update calls to
3882         groktypename and build_compound_literal.  Handle expressions with
3883         side effects in type name.
3884         (c_parser_postfix_expression_after_primary): Update call to
3885         c_parser_expr_list.  Set original_code for calls to
3886         __builtin_constant_p.
3887         (c_parser_expr_list): Take extra parameter fold_p.  Fold
3888         expressions if requested.
3889         (c_parser_objc_type_name): Update call to groktypename.
3890         (c_parser_objc_synchronized_statement): Fold expression.
3891         (c_parser_objc_receiver): Fold expression.
3892         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
3893         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
3894         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
3895         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
3896         (struct c_typespec): Add elements expr and expr_const_operands.
3897         (struct c_declspecs): Add elements expr and expr_const_operands.
3898         (groktypename, build_conditional_expr, build_compound_literal):
3899         Update prototypes.
3900         (in_late_binary_op): Declare.
3901         * c-typeck.c (note_integer_operands): New function.
3902         (in_late_binary_op): New variable.
3903         (decl_constant_value_for_broken_optimization): Move to c-common.c
3904         and rename to decl_constant_value_for_optimization.
3905         (default_function_array_conversion): Do not strip nops.
3906         (default_conversion): Do not call
3907         decl_constant_value_for_broken_optimization.
3908         (build_array_ref): Do not fold result.
3909         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
3910         result when operand is a VLA.
3911         (c_expr_sizeof_type): Update call to groktypename.  Handle
3912         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
3913         result when operand names a VLA type.
3914         (build_function_call): Update call to build_compound_literal.
3915         Only fold result for calls to __builtin_* functions.  Strip
3916         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
3917         the function designator.
3918         (convert_arguments): Fold arguments.  Update call to
3919         convert_for_assignment.
3920         (build_unary_op): Handle increment and decrement of
3921         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
3922         decrement earlier.  Fold operand of increment and decrement.
3923         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
3924         built for integer operand.  Wrap returns that are INTEGER_CSTs
3925         without being integer constant expressions or that have integer
3926         constant operands without being INTEGER_CSTs.
3927         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
3928         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
3929         result is an integer constant expression or can be used in
3930         unevaluated parts of one and avoid folding and wrap as
3931         appropriate.  Fold operands before possibly doing -Wsign-compare
3932         warnings.
3933         (build_compound_expr): Wrap result for C99 if operands can be used
3934         in integer constant expressions.
3935         (build_c_cast): Update call to digest_init.  Do not ignore
3936         overflow from casting floating-point constants to integers.  Wrap
3937         results that could be confused with integer constant expressions,
3938         null pointer constants or floating-point constants.
3939         (c_cast_expr): Update call to groktypename.  Handle expressions
3940         included in type name.
3941         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
3942         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
3943         Update calls to convert_for_assignment.
3944         (convert_for_assignment): Take new parameter
3945         null_pointer_constant.  Do not strip nops or call
3946         decl_constant_value_for_broken_optimization.  Set
3947         in_late_binary_op for conversions to boolean.
3948         (store_init_value): Update call to digest_init.
3949         (digest_init): Take new parameter null_pointer_constant.  Do not
3950         call decl_constant_value_for_broken_optimization.  pedwarn for
3951         initializers not constant expressions.  Update calls to
3952         convert_for_assignment.
3953         (constructor_nonconst): New.
3954         (struct constructor_stack): Add nonconst element.
3955         (really_start_incremental_init, push_init_level, pop_init_level):
3956         Handle constructor_nonconst and nonconst element.
3957         (set_init_index): Call constant_expression_warning for array
3958         designators.
3959         (output_init_element): Fold value.  Set constructor_nonconst as
3960         applicable.  pedwarn for initializers not constant expressions.
3961         Update call to digest_init.  Call constant_expression_warning
3962         where constant initializers are required.
3963         (process_init_element): Use c_save_expr.
3964         (c_finish_goto_ptr): Fold expression.
3965         (c_finish_return): Fold return value.  Update call to
3966         convert_for_assignment.
3967         (c_start_case): Fold switch expression.
3968         (c_process_expr_stmt): Fold expression.
3969         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
3970         ensure statement expression is not evaluated in constant expression.
3971         (build_binary_op): Track whether results are integer constant
3972         expressions or may occur in such, disable folding and wrap results
3973         as applicable.  Fold operands for -Wsign-compare warnings unless
3974         in_late_binary_op.
3975         (c_objc_common_truthvalue_conversion): Handle results folded to
3976         integer constants that are not integer constant expressions.
3977         * doc/extend.texi: Document when typeof operands are evaluated,
3978         that condition of __builtin_choose_expr is an integer constant
3979         expression, and more about use of __builtin_constant_p in
3980         initializers.
3982 2009-03-29  Richard Guenther  <rguenther@suse.de>
3984         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
3985         propagate addresses of array references.
3987 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
3989         * regmove.c (perhaps_ends_bb_p): Remove.
3990         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
3991         from INSN and check that the main loop stays within that basic block.
3992         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
3993         (regmove_forward_pass): Split out from regmove_optimize.  Use
3994         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
3995         (regmove_backward_pass): Split out from regmove_optimize.  Use
3996         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
3997         (regmove_optimize): Simplify.
3999 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
4001         PR target/39545
4002         * config/i386/i386.c (classify_argument): Ignore flexible array
4003         member in struct and warn ABI change.
4005 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
4007         * config/i386/i386-protos.h (ix86_agi_dependent): New.
4009         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
4010         (ix86_adjust_cost): Updated.
4012 2009-03-29  Jan Hubicka  <jh@suse.cz>
4014         PR middle-end/28850
4015         * tree-pass.h (pass_cleanup_eh): New function.
4016         (remove_unreachable_regions): Break code handling RTL
4017         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
4018         that can not be reached by runtime.
4019         (can_be_reached_by_runtime): New function.
4020         (label_to_region_map): New function.
4021         (num_eh_regions): New function.
4022         (rtl_remove_unreachable_regions): New function.
4023         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
4024         (remove_eh_region): New function.
4025         * except.h: Include sbitmap and vecprim.
4026         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
4027         num_eh_regions): Declare.
4028         * passes.c (init_optimization_passes): Schedule cleanup_eh.
4029         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
4030         * tree-eh.c (tree_remove_unreachable_handlers): New function.
4031         (tree_empty_eh_handler_p): New function.
4032         (cleanup_empty_eh): New function.
4033         (cleanup_eh): New function.
4034         (pass_cleanup_eh): New function.
4036 2009-03-29  Jan Hubicka  <jh@suse.cz>
4038         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
4039         for removed regions.
4041 2009-03-29  Jan Hubicka  <jh@suse.cz>
4043         * except.c (dump_eh_tree): Dump all datastructures.
4045 2009-03-29  Jan Hubicka  <jh@suse.cz>
4047         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
4048         (duplicate_eh_regions_1): Likewise.
4049         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
4050         vector; call EH verification.
4051         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
4052         Be ready for region being removed.
4054 2009-03-29  Jan Hubicka  <jh@suse.cz>
4056         * bitmap.c (bitmap_last_set_bit): New function.
4057         * bitmap.h (bitmap_last_set_bit): Declare.
4059 2009-03-29  David Ayers  <ayers@fsfe.org>
4061         PR objc/27377
4062         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
4063         by calling objc_compare_types and surpress warnings about
4064         incompatible C pointers that are compatible ObjC pointers.
4065         
4066 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
4068         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
4069         call initialize_inline_failed.
4070         (initialize_inline_failed): Move it from here ...
4071         * cgraph.c (initialize_inline_failed): ... to here.
4072         (cgraph_create_edge): Call initialize_inline_failed rather than
4073         setting inline_failed directly.
4075 2009-03-29  Ben Elliston  <bje@au.ibm.com>
4077         PR target/32542
4078         * sysv4.opt (msdata): Improve comment.
4079         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
4080         * sysv4.h (SVR4_ASM_SPEC): Likewise.
4082 2009-03-29  Ben Elliston  <bje@au.ibm.com>
4084         PR target/30451
4085         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
4086         load and store attributes.
4088 2009-03-29  Ben Elliston  <bje@au.ibm.com>
4090         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
4091         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
4092         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
4093         * doc/extend.texi (X86 Built-in Functions): Add index entries for
4094         __builtin_infq and __builtin_huge_valq.
4096 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
4098         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
4099         atmega8m1 devices.
4100         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
4101         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
4103 2009-03-28  Xinliang David Li  <davidxl@google.com>
4105         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
4106         (do_dbg_cnt): New function.
4108 2009-03-28  Jan Hubicka  <jh@suse.cz>
4110         Merge from pretty-ipa:
4112         2009-03-27  Jan Hubicka  <jh@suse.cz>
4114         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
4115         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
4116         * passes.c (function_called_by_processed_nodes_p): New.
4117         * ipa-pure-const.c (check_call): Fix handling of operands.
4118         (analyze_function): Dump debug output for skipped bodies.
4119         (local_pure_const): Use function_called_by_processed_nodes_p.
4120         * dwarf2out.c (reference_to_unused): Use output.
4121         * passes.c (do_per_function_toporder): Likewise.
4123         2008-11-12  Jan Hubicka  <jh@suse.cz>
4125         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
4126         * ipa-pure-const.c (funct_state_d): Add can throw field; make
4127         state_set_in_source enum
4128         (check_decl): Ignore memory tags; do not set fake looping flags;
4129         dump diagnostics.
4130         (check_operand, check_tree, check_rhs_var, check_lhs_var,
4131         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
4132         (check_call, analyze_function): Rewrite.
4133         (check_stmt): New.
4134         (add_new_function): Update call of analyze_function.
4135         (generate_summary): Add call of analyze_function.
4136         (propagate): Propagate can_throw; handle state_set_in_source correctly.
4137         (local_pure_const): New function.
4138         (pass_local_pure_const): New pass.
4139         * ipa-inline.c (inline_transform): Set after_inlining.
4140         * tree-eh.c (stmt_can_throw_external): New.
4141         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
4142         work with aliasing built.
4143         * tree-flow.h (stmt_can_throw_external): New.
4144         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
4145         and local pure/const pass in early and late optimization queue.
4147 2009-03-28  Martin Jambor  <mjambor@suse.cz>
4149         * fold-const.c (get_pointer_modulus_and_residue): New parameter
4150         allow_func_align.
4151         (fold_binary): Allow function decl aligment consideration is the
4152         second argument is integer constant one.
4153         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
4154         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
4155         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
4157 2009-03-28  Jan Hubicka  <jh@suse.cz>
4159         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
4160         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
4161         * function.h (rtl_data): Add nothrow flag.
4162         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
4163         set DECL_NOTHROW for AVAILABLE functions.
4165 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
4167         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
4168         following vector keyword has expansion starting with pixel or bool
4169         keyword, expand vector to __vector and pixel or bool to __pixel or
4170         __bool.
4172         PR c++/39554
4173         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
4174         warn_if_disallowed_function_p): Removed.
4175         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
4176         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
4177         warning_if_disallowed_function_p.
4178         * flags.h (warn_if_disallowed_function_p,
4179         warn_disallowed_functions): Removed.
4180         * common.opt (Wdisallowed-function-list=): Removed.
4181         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
4183 2009-03-28  Richard Guenther  <rguenther@suse.de>
4185         PR tree-optimization/38723
4186         * tree-ssa-pre.c (compute_avail): Add all default definitions to
4187         the entry block.
4189 2009-03-28  Jan Hubicka  <jh@suse.cz>
4191         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
4192         test introduced by my previous patch.
4194 2009-03-28  Richard Guenther  <rguenther@suse.de>
4196         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
4197         the PHIs value undefined.
4199 2009-03-28  Jan Hubicka  <jh@suse.cz>
4201         * tree-pass.h (pass_fixup_cfg): New pass.
4202         * ipa-inline.c (inline_transform): Set
4203         always_inline_functions_inlined/after_inlining.
4204         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
4205         (pass_fixup_cfg): New pass.
4206         * passes.c (init_optimization_passes): Add fixup_cfg.
4208 2009-03-28  Richard Guenther  <rguenther@suse.de>
4210         PR tree-optimization/38458
4211         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
4212         argument use the arguments copy-of value.
4214 2009-03-28  Richard Guenther  <rguenther@suse.de>
4216         PR tree-optimization/38180
4217         * tree-ssa-ccp.c (get_default_value): Simplify.
4218         (likely_value): Likewise.
4219         (surely_varying_stmt_p): Properly handle VOP case.
4220         (ccp_initialize): Likewise.
4221         (ccp_fold): Handle propagating through *&.
4222         (fold_const_aggregate_ref): Also handle decls.
4224 2009-03-28  Jan Hubicka  <jh@suse.cz>
4226         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
4227         * cgraph.h (cgraph_node): Likewise.
4228         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
4229         (cgraph_reset_node): Use process flag.
4230         (cgraph_mark_functions_to_output): Likewise.
4231         (cgraph_expand_function): Likewise.
4232         (cgraph_expand_all_functions): Likewise.
4233         (cgraph_output_in_order): Likewise.
4234         * dwarf2out.c (reference_to_unused): Likewise.
4235         * passes.c do_per_function_toporder): Likewise.
4237 2009-03-28  Jan Hubicka  <jh@suse.cz>
4239         Bring from lto-branch:
4241         2008-09-03  Doug Kwan  <dougkwan@google.com>
4243         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
4244         enums instead of reason strings.
4245         * cgraph.c (cgraph_create_edge): Same.
4246         (cgraph_inline_failed_string): New function.
4247         * cgraph.h (cgraph_inline_failed_t): New enum type.
4248         (cgraph_inline_failed_string): New prototype.
4249         (struct cgraph_edge): Change type of INLINED_FAILED from constant
4250         char pointer to cgraph_inline_failed_t.
4251         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
4252         (cgraph_default_inline_p): Ditto.
4253         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
4254         to cgraph_inline_failed_t pointer.
4255         * cif-code.def: New file.
4256         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
4257         reason string.
4258         (cgraph_check_inline_limits): Change type of REASON to pointer to
4259         cgraph_inline_failed_t.  Replace reason strings with enums.
4260         (cgraph_default_inline_p): Ditto.
4261         (cgraph_recursive_inlining_p): Ditto.
4262         (update_caller_keys): Change type of FAILED_REASON to
4263         cgraph_inline_failed_t.
4264         (cgraph_set_inline_failed): Change type of REASON to pointer to
4265         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
4266         convert enums to strings for text output.
4267         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
4268         to be of type cgraph_inline_failed_t.  Replace reason strings with
4269         enums.  Call cgraph_inline_failed_string to covert enums
4270         to strings for text output.
4271         (cgraph_decide_inlining): Replace reason strings with enums.
4272         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
4273         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
4274         for text output.
4275         * tree-inline.c (expand_call_inline): Change type of REASON
4276         to cgraph_inline_failed_t.  Replace reason strings with enums.
4277         Call cgraph_inline_failed_string for text output.
4278         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
4279         (cgraph.o): Ditto.
4281 2009-03-28  Jan Hubicka  <jh@suse.cz>
4283         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
4284         cgraph_clone_node): Remove master clone handling.
4285         (cgraph_is_master_clone, cgraph_master_clone): Remove.
4286         * cgraph.h (master_clone): Remove.
4287         (cgraph_is_master_clone, cgraph_master_clone): Remove.
4288         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
4289         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
4291 2009-03-28  Jan Hubicka  <jh@suse.cz>
4293         * cgraph.c (cgraph_function_body_availability): Functions declared
4294         inline are always safe to assume that it is not going to be replaced.
4296 2009-03-28  Richard Guenther  <rguenther@suse.de>
4298         PR tree-optimization/38513
4299         * tree-ssa-pre.c (eliminate): Remove redundant stores.
4300         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
4301         EXC_PTR_EXPR and FILTER_EXPR.
4302         (get_ref_from_reference_ops): Likewise.
4304 2009-03-28  Richard Guenther  <rguenther@suse.de>
4306         PR tree-optimization/38968
4307         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
4308         Use FLOOR_MOD_EXPR to compute misalignment.
4310 2009-03-28  Richard Guenther  <rguenther@suse.de>
4312         PR tree-optimization/37795
4313         * tree.h (combine_comparisons): Declare.
4314         * fold-const.c (combine_comparisons): Export.
4315         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
4316         comparisons.
4317         (ifcombine_iforif): Use combine_comparisons.
4319 2009-03-28  Jan Hubicka  <jh@suse.cz>
4321         * tree-eh.c (inlinable_call_p): New function.
4322         (make_eh_edges): Use it.
4323         (verify_eh_edges): Use it.
4324         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
4325         * except.c (reachable_next_level): Add inlinable_function argument
4326         (sjlj_find_directly_reachable_regions): Update.
4327         (add_reachable_handler): Do not set saw_any_handlers.
4328         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
4329         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
4330         Add new inlinable call parameter.
4331         (can_throw_internal, can_throw_external): Update.
4332         * except.h (can_throw_internal_1, can_throw_external_1,
4333         foreach_reachable_handler): Update declaration.
4335 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
4337         * config/arm/t-arm-coff, config/h8300/coff.h,
4338         config/i386/i386-aout.h, config/i386/i386-coff.h,
4339         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
4340         config/pdp11/2bsd.h, config/rs6000/aix41.h,
4341         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
4342         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
4343         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
4344         sys-types.h: Remove.
4345         * Makefile.in: Remove protoize and fixproto support and references
4346         in comments.
4347         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
4348         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
4349         Remove.
4350         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
4351         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
4352         unprotoize$(exeext).
4353         (rest.encap): Don't depend on $(STMP_FIXPROTO)
4354         (.PHONY): Don't depend on proto.
4355         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
4356         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
4357         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
4358         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
4359         build/gen-protos.o, build/scan.o, xsys-protos.h,
4360         build/fix-header$(build_exeext), build/fix-header.o,
4361         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
4362         stmp-install-fixproto): Remove.
4363         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
4364         SYSCALLS.c or fixproto files.
4365         (install-common): Don't install protoize.
4366         (install-headers-tar, install-headers-cpio, install-headers-cp):
4367         Don't depend on $(STMP_FIXPROTO).
4368         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
4369         install fixproto files or write out fixproto settings.
4370         (uninstall): Don't uninstall protoize.
4371         * config.gcc (use_fixproto): Remove.
4372         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
4373         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
4374         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
4375         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
4376         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
4377         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
4378         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
4379         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
4380         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
4381         * config/t-vxworks (STMP_FIXPROTO): Remove.
4382         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
4383         STMP_FIXPROTO): Remove.
4384         * config.in, configure: Regenerate.
4385         * crtstuff.c (gid_t, uid_t): Don't undefine.
4386         * doc/install.texi: Change m68k-coff to m68k-elf in example.
4387         (arm-*-coff, arm-*-aout: Remove target entries.
4388         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
4389         Remove mention of AIX 4.1.
4390         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
4391         * doc/invoke.texi (Running Protoize): Remove.
4392         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
4393         (Protoize Caveats): Remove.
4394         * tsystem.h: Update comments on headers assumed to exist.
4396 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
4398         * genautomata.c: Add a new year to the copyright.  Add a new
4399         reference.
4400         (struct insn_reserv_decl): Add comments for member bypass_list.
4401         (find_bypass): Remove.
4402         (insert_bypass): New.
4403         (process_decls): Use insert_bypass.
4404         (output_internal_insn_latency_func): Output all bypasses with the
4405         same input insn in one switch case.
4407         * rtl.def (define_bypass): Describe bypass choice.
4408         * doc/md.texi (define_bypass): Ditto.
4410 2009-03-27  Richard Guenther  <rguenther@suse.de>
4412         * gimplify.c (mark_addressable): Export.
4413         * tree-flow.h (mark_addressable): Declare.
4414         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
4415         * tree-ssa.c (verify_phi_args): Verify that address taken
4416         variables have TREE_ADDRESSABLE set.
4418 2009-03-27  Richard Guenther  <rguenther@suse.de>
4420         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
4421         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
4422         Do not mark decls TREE_ADDRESSABLE.
4423         (build_fold_addr_expr): Adjust.
4424         (fold_addr_expr): Remove.
4425         (fold_unary): Use build_fold_addr_expr.
4426         (fold_comparison): Likewise.
4427         (split_address_to_core_and_offset): Likewise.
4428         * coverage.c (tree_coverage_counter_addr): Mark the array decl
4429         TREE_ADDRESSABLE.
4430         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
4431         (gimplify_modify_expr_to_memcpy): Mark source and destination
4432         addressable.
4433         * omp-low.c (create_omp_child_function): Mark the object decl
4434         TREE_ADDRESSABLE.
4435         (lower_rec_input_clauses): Mark the var we take the address of
4436         TREE_ADDRESSABLE.
4437         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
4439 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4441         PR middle-end/39315
4442         * cfgexpand.c (expand_one_stack_var_at): Change alignment
4443         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
4445 2009-03-27  Richard Guenther  <rguenther@suse.de>
4447         PR tree-optimization/39120
4448         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
4449         constraints.
4450         (handle_lhs_call): Process return constraints.  Add escape
4451         constraints if necessary.
4452         (handle_const_call): Fill out return constraints.  Make nested
4453         case more precise.  Avoid consttmp if possible.
4454         (handle_pure_call): Fill out return constraints.  Avoid
4455         callused if possible.
4456         (find_func_aliases): Simplify call handling.
4458 2009-03-27  Richard Guenther  <rguenther@suse.de>
4460         PR tree-optimization/39120
4461         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
4462         as a representative.
4463         (solve_graph): Do propagate CALLUSED.
4464         (handle_pure_call): Use a scalar constraint from CALLUSED for
4465         the return value.
4466         (find_what_p_points_to): CALLUSED shall not appear in poins-to
4467         solutions.
4469 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4471         PR c/39323
4472         * c-common.c (handle_aligned_attribute): Properly check alignment
4473         overflow.  Use (1U << i) instead of (1 << i).
4475         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
4477         * expr.h (get_mem_align_offset): Updated.
4479         * tree.h (tree_decl_common): Change align to "unsigned int" and
4480         move it before pointer_alias_set.
4482 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4483             Jakub Jelinek  <jakub@redhat.com>
4485         PR target/38034
4486         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
4487         gr_register_operand with gr_reg_or_0_operand.
4488         (cmpxchg_rel_di): Likewise.
4489         (sync_lock_test_and_set<mode>): Likewise.
4491 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4493         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
4494         (true_regnum): Likewise.
4496         * rtlanal.c (subreg_info): Moved to ...
4497         * rtl.h (subreg_info): Here.  New.
4498         (subreg_get_info): New.
4500         * rtlanal.c (subreg_get_info): Make it extern.
4502 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4504         PR target/39472
4505         * config/i386/i386.c (ix86_abi): New.
4506         (override_options): Handle -mabi=.
4507         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
4508         (ix86_call_abi_override): Likewise.
4509         (init_cumulative_args): Likewise.
4510         (function_arg_advance): Likewise.
4511         (function_arg_64): Likewise.
4512         (function_arg): Likewise.
4513         (ix86_pass_by_reference): Likewise.
4514         (ix86_function_value_regno_p): Likewise.
4515         (ix86_build_builtin_va_list_abi): Likewise.
4516         (setup_incoming_varargs_64): Likewise.
4517         (is_va_list_char_pointer): Likewise.
4518         (ix86_init_machine_status): Likewise.
4519         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
4520         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
4521         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
4522         (ix86_function_abi): Make it static and return enum calling_abi.
4523         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
4524         with ix86_abi.
4525         (ix86_fn_abi_va_list): Updated.
4527         * config/i386/i386.h (ix86_abi): New.
4528         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
4529         (CONDITIONAL_REGISTER_USAGE): Likewise.
4530         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
4531         (machine_function): Likewise.
4533         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
4534         with ix86_abi.
4535         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
4536         (STACK_BOUNDARY): Likewise.
4537         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
4539         * config/i386/i386.opt (mabi=): New.
4541         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
4542         return enum calling_abi.
4543         (ix86_function_type_abi): Likewise.
4544         (ix86_function_abi): Removed.
4546         * doc/invoke.texi: Document -mabi= option for x86.
4548 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4550         * builtins.c (real_dconstp): Delete.
4551         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
4553 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
4554             Jakub Jelinek  <jakub@redhat.com>
4556         PR debug/37959
4557         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
4558         (gen_subprogram_die): When a function is explicit, generate the
4559         DW_AT_explicit attribute.
4560         * langhooks.h (struct lang_hooks_for_decls): Add
4561         function_decl_explicit_p langhook.
4562         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
4563         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
4565 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
4567         * builtins.c (fold_builtin_memory_op): Optimize memmove
4568         into memcpy if we can prove source and destination don't overlap.
4570         * tree-inline.c: Include gt-tree-inline.h.
4571         (clone_fn_id_num): New variable.
4572         (clone_function_name): New function.
4573         (tree_function_versioning): Use it.
4574         * Makefile.in (GTFILES): Add tree-inline.c.
4576 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
4578         * BASE-VER: Change to 4.5.0.
4580 2009-03-27  Xinliang David Li  <davidxl@google.com>
4582         PR tree-optimization/39557
4583         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
4585 2009-03-27  Xinliang David Li  <davidxl@google.com>
4587         PR tree-optimization/39548
4588         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
4589         candidate check.
4591 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4593         * c-common.c (pointer_int_sum): Use %wd on return from
4594         tree_low_cst.
4596 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4598         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
4599         on return from tree_low_cst.
4601 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4603         PR c++/36799
4604         * ginclude/stdarg.h (va_copy): Define also for
4605         __GXX_EXPERIMENTAL_CXX0X__.
4607 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4609         PR c++/35652
4610         * builtins.h (c_strlen): Do not warn here.
4611         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
4612         * c-common.c (pointer_int_sum): Take an explicit location.
4613         Warn about offsets out of bounds.
4614         * c-common.h (pointer_int_sum): Adjust declaration.
4616 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4618         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
4619         markup glitch.
4621 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
4623         PR c++/39554
4624         * opts.c (warn_if_disallowed_function_p): Don't assume
4625         get_callee_fndecl must return non-NULL.
4627 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
4629         PR rtl-optimization/39522
4630         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
4631         when reg_reloaded_valid is set.
4633 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4635         * config/spu/divv2df3.c: New file.
4636         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
4637         (DPBIT_FUNCS): Filter out _div_df.
4639 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
4641         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
4642         a jump insn, count that jump in the distance to the loop start.
4644 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
4646         PR target/39523
4647         * config/sh/sh.c (calc_live_regs): Fix condition for global
4648         registers except PIC_OFFSET_TABLE_REGNUM.
4650 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
4652         PR/39518
4653         * doc/invoke.texi (-mconsole): New.
4654         (-mcygwin): New.
4655         (-mno-cygwin): New.
4656         (-mdll): New.
4657         (-mnop-fun-dllimport): New.
4658         (-mthread): New.
4659         (-mwin32): New.
4660         (-mwindows): New.
4661         (sub section "i386 and x86-64 Windows Options"): New.
4663 2009-03-25  Ralf Corsépius <ralf.corsepius@rtems.org>
4665         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
4666         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
4668 2009-03-25  Richard Guenther  <rguenther@suse.de>
4670         PR middle-end/39497
4671         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
4672         of -Wno-error.
4674 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
4676         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
4677         neither of haifa/selective schedulers are working.
4679 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4681         * doc/invoke.texi (Debugging Options): Fix description of
4682         -fno-merge-debug-strings.
4684 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
4686         * config/cris/libgcc.ver: New version-script.
4687         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
4689         * configure.ac <GAS features, nop mnemonic>: Add pattern
4690         crisv32-*-* for "nop".
4691         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
4692         * configure: Regenerate.
4694 2009-03-24  Ira Rosen  <irar@il.ibm.com>
4696         PR tree-optimization/39529
4697         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
4698         mark_sym_for_renaming for the tag copied to the new vector
4699         pointer.
4701 2009-03-24  Arthur Loiret  <aloiret@debian.org>
4703         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
4704         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
4705         EXTRA_SPEC_FUNCTIONS.
4706         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
4707         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
4708         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
4709         -march and -mtune options.
4711 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
4713         * config/m68k/t-rtems: Add m5329 multilib.
4715 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
4716             Jakub Jelinek  <jakub@redhat.com>
4718         PR debug/39524
4719         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
4720         nodes.
4722 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
4724         PR c/39495
4725         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
4726         instead of c_parser_expression_conv, if original_code isn't one of the
4727         4 allowed comparison codes, fail.
4729 2009-03-23  Richard Guenther  <rguenther@suse.de>
4731         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
4732         * tree.h (struct tree_type): Likewise.
4733         * reload.h (struct insn_chain): Likewise.
4734         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
4735         * function.h (struct function): Likewise.
4736         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
4738 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
4740         PR tree-optimization/39516
4741         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
4743 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
4745         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
4746         should be set true if BITS_PER_WORD of target is bigger than 32
4748 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
4750         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
4751         Translate -B-options to -rpath-link.  Correct existing
4752         rpath-link and conditionalize on !nostdlib.
4754 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4756         * doc/extend.texi (Function Attributes, Variable Attributes):
4757         Fix typos.
4758         * doc/invoke.texi (Debugging Options, Optimize Options)
4759         (i386 and x86-64 Options, MCore Options): Likewise.
4761 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
4763         PR debug/37890
4764         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
4765         it for block local namespace aliases.
4766         (gen_decl_die): Pass context_die to gen_namespace_die.
4768 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
4770         PR c/39495
4771         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
4772         minimum or maximum value.
4774 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
4776         * reginfo.c (globalize_reg): Recompute derived reg sets.
4778 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
4780         PR target/39063
4781         * libgcc2.c (mprotect): Do not use signed arguments for
4782         VirtualProtect, use DWORD arguments.  Also fix the 'may
4783         be used uninitialized' warning for the np variable.
4785 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
4787         PR target/39496
4788         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
4789         functions using regparm calling conventions when not optimizing.
4790         (ix86_function_sseregparm): Similarly for sseregparm calling
4791         conventions.
4793 2009-03-19  Li Feng  <nemokingdom@gmail.com>
4795         PR middle-end/39500
4796         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
4797         dependence if the first conflict is after niter iterations.
4799 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
4801         PR middle-end/38609
4802         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
4803         functions with dynamic stack-pointer adjustments.
4805 2009-03-19  Ben Elliston  <bje@au.ibm.com>
4807         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
4808         option; change to -msdata=data.
4810 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4812         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
4813         and -fopenmp.
4815 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
4817         PR target/35180
4818         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
4820 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
4822         * doc/invoke.texi (Code Gen Options): Expand discussion of
4823         -fno-common.
4825 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
4827         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
4828         * matrix-reorg.c (struct matrix_info): Likewise.
4829         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
4830         * rtl.h (struct mem_attrs): Likewise.
4831         * df.h (struct df): Likewise.
4832         * tree-data-ref.h (struct data_dependence_relation): Likewise.
4833         * ira-int.h (struct ira_allocno): Likewise.
4834         * df-scan.c (struct df_collection_rec): Likewise.
4835         * ira.c (struct equivalence): Likewise.
4836         * function.c (struct temp_slot): Likewise.
4837         * cfgloop.h (struct loop): Likewise.
4839         PR debug/39485
4840         * function.c (use_register_for_decl): When not optimizing, disregard
4841         register keyword for variables with types containing methods.
4843 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
4845         PR middle-end/39447
4846         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
4847         (is_simple_operand): Call contains_component_ref_p before calling data
4848         reference analysis that would fail on COMPONENT_REFs.
4850         * tree-vrp.c (search_for_addr_array): Fix formatting.
4852 2009-03-18  Richard Guenther  <rguenther@suse.de>
4854         * tree-vect-transform.c (vect_loop_versioning): Fold the
4855         generated comparisons.
4856         * tree-vectorizer.c (set_prologue_iterations): Likewise.
4857         (slpeel_tree_peel_loop_to_edge): Likewise.
4859 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4861         PR middle-end/37805
4862         * opts.c (print_specific_help): In addition to `undocumented',
4863         accept `separate' and `joined' flags if passed alone.  Describe
4864         output by the first matched one of those.
4865         (common_handle_option): Skip over empty strings.
4866         * gcc.c (display_help): Fix help string for `--help='.
4867         * doc/invoke.texi (Option Summary, Overall Options): With
4868         `--help=', classes and qualifiers can both be repeated, but
4869         only the latter can be negated.  One should not pass only
4870         negated qualifiers.  Fix markup and examples.
4872         Revert
4873         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
4874         PR middle-end/37805
4875         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
4876         and -fhelp=separate.
4878 2009-03-17  Jing Yu  <jingyu@google.com>
4880         PR middle-end/39378
4881         * function.h (struct rtl_data): Move is_thunk from here...
4882         (struct function): ...to here.
4883         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
4884         * varasm.c (assemble_start_function): Change is_thunk from crtl to
4885         cfun.
4886         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
4887         cfun.
4888         (alpha_does_function_need_gp, alpha_start_function): Likewise.
4889         (alpha_output_function_end_prologue): Likewise.
4890         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
4891         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
4892         (rs6000_output_function_epilogue): Likewise.
4893         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
4895 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
4897         PR target/39482
4898         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
4899         from different units in a single alternative.
4900         (*truncdfsf_i387): Ditto.
4901         (*truncxfsf2_mixed): Ditto.
4902         (*truncxfdf2_mixed): Ditto.
4904 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
4906         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
4907         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
4909         PR debug/39474
4910         * tree-ssa-live.c (remove_unused_locals): Don't remove local
4911         unused non-artificial variables when not optimizing.
4913         PR debug/39471
4914         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
4915         DW_TAG_imported_module even if decl is IMPORTED_DECL with
4916         NAMESPACE_DECL in its DECL_INITIAL.
4918         PR middle-end/39443
4919         * optabs.c (set_user_assembler_libfunc): New function.
4920         * expr.h (set_user_assembler_libfunc): New prototype.
4921         * c-common.c: Include libfuncs.h.
4922         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
4923         for memcmp, memset, memcpy, memmove and abort.
4924         * Makefile.in (c-common.o): Depend on libfuncs.h.
4926         PR debug/39412
4927         * dwarf2out.c (gen_inlined_enumeration_type_die,
4928         gen_inlined_structure_type_die, gen_inlined_union_type_die,
4929         gen_tagged_type_instantiation_die): Removed.
4930         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
4931         do nothing.
4933 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
4935         PR testsuite/38526
4936         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
4937         its use.
4938         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
4939         (check-parallel-%): Ditto.
4940         (check-consistency): Ditto.
4942 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
4944         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
4945         local variable rhs by NULL_TREE.
4947 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4949         PR target/39477
4950         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
4952 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4954         PR target/39476
4955         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
4957 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4959         PR target/39473
4960         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
4961         for ms->sysv ABI calls only in 64bit mode.
4963         * config/i386/i386.md (untyped_call): Support 32bit.
4965 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
4967         * doc/extend.texi: Replace x86_65 with x86_64.
4969 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
4971         PR tree-optimization/39455
4972         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
4973         mismatches for POINTER_TYPE_P (type).
4974         (number_of_iterations_le): Likewise.
4976 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
4978         * config/picochip/picochip.c: Removed profiling support.
4979         * config/picochip/picochip.md: Removed profiling instruction.
4980         * config/picochip/picochip.h: Removed profiling builtin.
4982 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
4984         * doc/install.texi (--with-host-libstdcxx): Document.
4986 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
4988         PR target/34299
4989         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
4990         generate a warning if the function name does not begin with
4991         "__vector" and the function has either the 'signal' or 'interrupt'
4992         attribute, from here to ...
4993         (avr_declare_function_name): ...here. New function.
4994         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
4995         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
4997 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
4999         PR bootstrap/39454
5000         * cse.c (fold_rtx): Don't modify original const_arg1 when
5001         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
5002         separate variable instead.
5003         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
5004         from out of range shift counts.
5005         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
5007 2008-03-13  Catherine Moore  <clm@codesourcery.com>
5009         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
5010         diagnostic.h with $(DIAGNOSTIC_H).
5012 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
5014         PR target/39431
5015         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
5016         predicate.
5017         * config/i386/sync.md (sync_compare_and_swap<mode>,
5018         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
5019         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
5020         into a register.
5021         (sync_double_compare_and_swapdi_pic,
5022         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
5023         cmpxchg8b_pic_memory_operand instead of just memory_operand.
5025 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
5027         PR target/39445
5028         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
5030 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
5032         PR target/39327
5033         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
5034         (avx_addsubv4df3): Likewise.
5035         (*avx_addsubv4sf3): Likewise.
5036         (sse3_addsubv4sf3): Likewise.
5038 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
5040         PR target/38824
5041         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
5043 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
5045         PR debug/39432
5046         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
5047         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
5048         registers for allocnos created from user-defined variables.
5050 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5052         PR target/39181
5053         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
5054         of non-integer mode as well.
5056 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
5058         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
5059         for functions for which the parameter types are unknown.
5061 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
5063         PR target/39137
5064         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
5065         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
5066         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
5067         * config/i386/i386.c (ix86_local_alignment): For
5068         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
5069         long long variables on the stack to avoid dynamic realignment.
5070         Allow the first argument to be a decl rather than type.
5071         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
5073 2009-03-11  Nick Clifton  <nickc@redhat.com>
5075         PR target/5362
5076         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
5077         options.
5078         Add description to mno-lsim option.
5079         * config/mcore/mcore.h: Remove comment about deprecated m4align
5080         option.
5081         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
5082         * doc/invoke.texi: Add description of mno-lsim and
5083         mstack-increment options.
5085         * config/fr30/fr30.opt: Document the -mno-lsim option.
5086         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
5087         and -mno-lsim options.
5089 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5091         * fold-const.c (fold_comparison): Only call fold_inf_compare
5092         if the mode supports infinities.
5094 2009-03-11  Jason Merrill  <jason@redhat.com>
5096         PR debug/39086
5097         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
5098         end already did.  Notice GIMPLE_CALL modifications of the result.
5099         Don't copy debug information from an ignored decl or a decl from
5100         another function.
5102 2009-03-10  Richard Guenther  <rguenther@suse.de>
5103             Nathan Froyd  <froydnj@codesourcery.com>
5105         PR middle-end/37850
5106         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
5107         (__divMODE3): Likewise.
5109 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
5111         PR tree-optimization/39394
5112         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
5113         DECL_SIZE_UNIT of variable length FIELD_DECLs.
5115 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5117         * recog.c (verfiy_changes): Disallow renaming of hard regs in
5118         inline asms for register asm ("") declarations.
5120 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
5122         * fold-const.c (fold_unary): Fix comment.
5124 2009-03-07  Jan Hubicka  <jh@suse.cz>
5126         PR target/39361
5127         * tree-inline.c (setup_one_parameter): Do replacement of const
5128         argument by constant in SSA form.
5130 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5132         PR middle-end/38028
5133         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
5134         determine alignment passed to assign_stack_local.
5135         (assign_parms_unsplit_complex): Likewise.
5136         * except.c (sjlj_build_landing_pads): Likewise.
5138 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
5140         PR middle-end/39360
5141         * tree-flow.h (add_referenced_var): Return bool instead of void.
5142         * tree-dfa.c (add_referenced_var): Return result of
5143         referenced_var_check_and_insert call.
5144         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
5145         of referenced_var_check_and_insert.
5147         PR debug/39372
5148         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
5149         (gen_variable_die): Emit DW_AT_location on abstract static variable's
5150         DIE, don't emit it if abstract origin already has it.
5151         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
5152         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
5154 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5156         * genpreds.c (needs_variable): Fix parentheses at variable name
5157         detection.
5158         (write_tm_constrs_h): Indent generated code.
5160 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5162         * doc/extend.texi (Function Attributes): Add documentation
5163         for isr attributes.
5165 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
5167         PR debug/39387
5168         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
5169         take locus from its DECL_SOURCE_LOCATION instead of input_location.
5171 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
5173         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
5174         the loop as bad.
5176 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
5178         PR debug/39379
5179         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
5180         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
5182 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
5184         * config/i386/i386.md (R8_REG, R9_REG): New constants.
5185         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
5186         constants instead of magic numbers.
5187         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
5188         (QI_REG_P): Ditto.
5189         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
5190         (x86_64_ms_abi_int_parameter_registers): Ditto.
5191         (x86_64_int_return_registers): Ditto.
5192         (ix86_maybe_switch_abi): Ditto.
5193         (ix86_expand_call): Ditto for clobbered_registers array.
5194         (ix86_hard_regno_mode_ok): Ditto.
5195         (x86_extended_QIreg_mentioned_p): Ditto.
5197 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
5199         PR tree-optimization/39349
5200         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
5202         * combine.c (gen_lowpart_for_combine): Use omode when generating
5203         clobber.
5205 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
5207         PR rtl-optimization/39235
5208         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
5210 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
5212         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
5214 2009-03-04  Richard Guenther  <rguenther@suse.de>
5216         PR tree-optimization/39362
5217         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
5218         that occur in abnormal PHIs should be varying.
5220 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
5222         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
5223         Extend comments.
5224         (simple_iv):  Take loop as an argument instead of statement.
5225         * tree-scalar-evolution.h (simple_iv): Declaration changed.
5226         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
5227         to simple_iv.
5228         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
5229         Ditto.
5230         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
5231         * matrix-reorg.c (analyze_transpose): Ditto.
5232         * tree-data-ref.c (dr_analyze_innermost): Ditto.
5233         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
5234         * tree-predcom.c (ref_at_iteration): Ditto.
5235         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
5237 2009-03-04  Richard Guenther  <rguenther@suse.de>
5239         PR tree-optimization/39358
5240         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
5241         escaped_id and callused_id.
5242         (solve_graph): Likewise.
5244 2009-03-04  Richard Guenther  <rguenther@suse.de>
5246         PR tree-optimization/39339
5247         * tree-sra.c (try_instantiate_multiple_fields): Make it
5248         no longer ICE on the above.
5250 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
5252         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
5253         that fits within Pmode.
5255 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
5257         PR middle-end/10109
5258         * tm.texi (LIBCALL_VALUE): Update description.
5260 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
5262         PR middle-end/34443
5263         * doc/extend.texi (section): Update description.
5265 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
5267         PR middle-end/39345
5268         * tree-inline.c (remapped_type): New.
5269         (can_be_nonlocal): Call remapped_type instead of remap_type.
5271 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
5273         PR fortran/39354
5274         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
5275         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
5277 2009-03-03  Richard Guenther  <rguenther@suse.de>
5279         PR middle-end/39272
5280         * tree.c (tree_nonartificial_location): New function.
5281         * tree.h (tree_nonartificial_location): Declare.
5282         * builtins.c (expand_builtin_memory_chk): Provide location
5283         of the call location for artificial function pieces.
5284         (maybe_emit_chk_warning): Likewise.
5285         (maybe_emit_sprintf_chk_warning): Likewise.
5286         (maybe_emit_free_warning): Likewise.
5287         * expr.c (expand_expr_real_1): Likewise.
5289 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
5291         PR tree-optimization/39343
5292         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
5293         COMPONENT_REF t has ARRAY_TYPE.
5295 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
5297         PR middle-end/39335
5298         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
5299         when the type precision of the induction variable should be
5300         larger than the type precision of nit.
5301         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
5302         * graphite.c (graphite_loop_normal_form): Same.
5303         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
5305 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
5307         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
5308         (*call_1_rex64_ms_sysv): Use named constants instead of magic
5309         numbers to describe clobbered registers.
5310         (*call_value_0_rex64_ms_sysv): Ditto.
5311         * config/i386/mmx.md (mmx_emms): Ditto.
5312         (mmx_femms): Ditto.
5314 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
5316         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
5317         of ABI_64.
5319 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5321         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
5322         (spu_section_type_flags): New function.
5324 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
5326         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
5327         reg_class_contents of FLOAT_REGS into a temporary.
5329 2009-03-02  Richard Guenther  <rguenther@suse.de>
5330             Ira Rosen  <irar@il.ibm.com>
5332         PR tree-optimization/39318
5333         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
5334         information to the vectorized statement.
5336 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
5338         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
5339         variable.  Use defined names instead of magic constants for REX SSE
5340         registers.
5342 2009-03-01  Richard Guenther  <rguenther@suse.de>
5344         PR tree-optimization/39331
5345         * omp-low.c (lower_send_shared_vars): Do not receive new
5346         values for the reference of DECL_BY_REFERENCE parms or results.
5348 2009-03-01  Jan Hubicka  <jh@suse.cz>
5350         PR debug/39267
5351         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
5352         BLOCK_NONLOCALIZED_VAR): New macros.
5353         (tree_block): Add nonlocalized_vars.
5354         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
5355         gen_decl_die): Add origin argument.  Allow generation of die with
5356         origin at hand only.
5357         (gen_member_die, gen_type_die_with_usage, force_decl_die,
5358         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
5359         of gen_*.
5360         (gen_block_die): Fix checking for unused blocks.
5361         (process_scope_var): Break out from .... ; work with origins only.
5362         (decls_for_scope) ... here; process nonlocalized list.
5363         (dwarf2out_ignore_block): Look for nonlocalized vars.
5364         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
5365         vars.
5366         (dump_scope_block): Dump them.
5367         * tree-inline.c (remap_decls): Handle nonlocalized vars.
5368         (remap_block): Likewise.
5369         (can_be_nonlocal): New predicate.
5370         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
5372 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5374         * configure: Regenerate.
5376 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5378         * optc-gen.awk: No need to duplicate option flags twice.
5379         Reuse help texts for duplicate options which do not have any.
5381         * gcc.c (display_help): Document --version.
5383         * gcc.c (main): If print_help_list and verbose_flag, ensure
5384         driver output comes before subprocess output.
5386         * optc-gen.awk: Assign all remaining fields to help string,
5387         space-separated, for multi-line help in *.opt.
5389         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
5390         -Wno-pedantic-ms-format is for MinGW targets only.
5392         * doc/options.texi (Option file format): Fix bad indentation,
5393         restoring dropped sentence.
5395 2009-02-28  Jan Hubicka  <jh@suse.cz>
5397         * tree-inline.c (tree_function_versioning): Output debug info.
5399 2009-02-28  Jan Hubicka  <jh@suse.cz>
5401         PR debug/39267
5402         * tree-inline.c (setup_one_parameter): Do not copy propagate
5403         arguments when not optimizing.
5405 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
5407         PR target/39327
5408         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
5409         (avx_addsubv4df3): Likewise.
5410         (*avx_addsubv4sf3): Likewise.
5411         (sse3_addsubv4sf3): Likewise.
5412         (*avx_addsubv2df3): Likewise.
5413         (sse3_addsubv2df3): Likewise.
5414         (avx_unpckhps256): Correct item selectors.
5415         (avx_unpcklps256): Likewise.
5416         (avx_unpckhpd256): Likewise.
5417         (avx_unpcklpd256): Likewise.
5419 2009-02-28  Jan Hubicka  <jh@suse.cz>
5421         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
5422         static vars.
5423         (copy_arguments_for_versioning): If var is declared don't declare it.
5424         (tree_function_versioning): First setup substitutions and then copy
5425         args.
5427 2009-02-27  Jan Hubicka  <jh@suse.cz>
5429         PR debug/39267
5430         * cgraph.h (varpool_output_debug_info): Remove.
5431         * cgraphunit.c (varpool_output_debug_info): Remove.
5432         * dwarf2out.c (deferred_locations_struct): New struct
5433         (deferred_locations): New type.
5434         (deferred_locations_list): New static var.
5435         (deffer_location): New function.
5436         (gen_variable_die): Use it.
5437         (decls_for_scope): Output info on local static vars.
5438         (dwarf2out_finish): Process deferred locations.
5439         * varpool.c (varpool_output_debug_info): Remove.
5441 2009-02-27  Jan Hubicka  <jh@suse.cz>
5443         PR debug/39267
5444         * tree.h (TREE_PROTECTED): Fix comment.
5445         (BLOCK_HANDLER_BLOCK): Remove.
5446         (struct tree_block): Remove handler_block add body_block.
5447         (inlined_function_outer_scope_p): New.
5448         (is_body_block): Remove.
5449         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
5450         * dwarf2out.c (is_inlined_entry_point): Remove.
5451         (add_high_low_attributes): Use inlined_function_outer_scope_p.
5452         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
5453         code.
5454         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
5455         * gimplify.c (gimplify_expr): Gimplify body blocks.
5456         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
5457         block with multiple subblocks.
5458         (dump_scope_block): Prettier output; dump more flags and info.
5459         (dump_scope_blocks): New.
5460         (remove_unused_locals): Use dump_scope_blocks.
5461         * tree-flow.h (dump_scope_blocks): Declare.
5462         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
5463         * stmt.c (is_body_block): Remove.
5464         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
5465         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
5467 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
5469         PR middle-end/39308
5470         * graphite.c (graphite_loop_normal_form): Do not call 
5471         number_of_iterations_exit from a gcc_assert.
5473 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5475         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
5476         jumps if COND is NULL.
5477         (find_cond_jump): New function.
5478         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
5479         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
5481 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
5483         * config/alpha/alpha.h (alpha_expand_mov): Return false if
5484         force_const_mem returns NULL_RTX.
5486 2009-02-26  Jan Hubicka  <jh@suse.cz>
5488         PR debug/39267
5489         * cgraph.h (varpool_output_debug_info): Remove.
5490         * cgraphunit.c (varpool_output_debug_info): Remove.
5491         * dwarf2out.c (deferred_locations_struct): New struct
5492         (deferred_locations): New type.
5493         (deferred_locations_list): New static var.
5494         (deffer_location): New function.
5495         (gen_variable_die): Use it.
5496         (decls_for_scope): Output info on local static vars.
5497         (dwarf2out_finish): Process deferred locations.
5498         * varpool.c (varpool_output_debug_info): Remove.
5500 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
5502         PR rtl-optimization/39241
5503         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
5504         to subreg_offset_representable_p.
5506 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
5508         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
5509         execute function prototype.  Get f and nregs from max_reg_num
5510         and get_insns.  Remove the first backward pass as it's dead,
5511         guard the forward pass by flag_expensive_optimizations.
5512         (rest_of_handle_regmove): Delete.
5513         (pass_regmove): Replace it with regmove_optimize.
5515 2009-02-25  Martin Jambor  <mjambor@suse.cz>
5517         PR tree-optimization/39259
5518         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
5519         calls_alloca function flags.
5520         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
5521         calls are detected.
5523 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
5525         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
5526         flags_set_1_rtx, flags_set_1_set): Delete.
5527         (regmove_optimize): Do not call mark_flags_life_zones.
5529 2009-02-24  Julian Brown  <julian@codesourcery.com>
5531         PR target/35965
5532         * config/arm/arm.c (require_pic_register): Only set
5533         cfun->machine->pic_reg once per function.
5535 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
5537         * doc/invoke.texi (Link Options): Document an easier way to pass
5538         options that take arguments to the GNU linker using -Xlinker and -Wl.
5540 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
5542         PR target/33785
5543         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
5545 2009-02-24  Richard Guenther  <rguenther@suse.de>
5547         PR debug/39285
5548         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
5550 2009-02-24  Richard Guenther  <rguenther@suse.de>
5551             Zdenek Dvorak  <ook@ucw.cz>
5553         PR tree-optimization/39233
5554         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
5555         from converting them to a generic type.
5557 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
5559         PR tree-optimization/39260
5560         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
5561         contains a condition with a real type.
5562         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
5564 2009-02-23  Jason Merrill  <jason@redhat.com>
5566         PR c++/38880
5567         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
5568         narrowing_initializer_constant_valid_p.
5569         (narrowing_initializer_constant_valid_p): Don't return 
5570         null_pointer_node for adding a pointer to itself.
5572 2009-02-23  Jan Hubicka  <jh@suse.cz>
5574         PR c/12245
5575         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
5576         resizing.
5578 2009-02-23  Jan Hubicka  <jh@suse.cz>
5580         PR tree-optimization/37709
5581         * tree.c (block_ultimate_origin): Move here from dwarf2out.
5582         * tree.h (block_ultimate_origin): Declare.
5583         * dwarf2out.c (block_ultimate_origin): Move to tree.c
5584         * tree-ssa-live.c (remove_unused_scope_block_p):
5585         Eliminate blocks containig no instructions nor live variables nor
5586         nested blocks.
5587         (dump_scope_block): New function.
5588         (remove_unused_locals): Enable removal of dead blocks by default;
5589         enable dumping at TDF_DETAILS.
5591 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
5593         * config/i386/i386.c (classify_argument): Don't allow COImode
5594         and OImode.
5595         (function_arg_advance_32): Don't allow OImode.
5596         (function_arg_32): Likewise.
5597         (function_value_32): Likewise.
5598         (return_in_memory_32): Likewise.
5599         (function_arg_64): Remove OImode comment.
5601 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
5603         PR target/39261
5604         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
5605         ix86_expand_vector_set for V4DImode in 64bit mode only.
5606         (ix86_expand_vector_init_one_var): Likewise.
5608 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
5610         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
5612 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
5614         PR bootstrap/39257
5615         * loop-iv.c: Revert last change.
5616         * emit-rtl.c: Likewise.
5618 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
5620         PR target/39256
5621         * config/i386/i386.c (type_natural_mode): Remove an extra
5622         space in the warning message.
5623         (function_value_32): Handle 32-byte vector modes.
5624         (return_in_memory_32): Likewise.
5626 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
5628         * loop-iv.c (truncate_value): New function.
5629         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
5630         of lowpart_subreg.
5631         (lowpart_subreg): Move to...
5632         * emit-rtl.c: ...here.
5634 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
5636         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
5637         accidental and undocumented change at revision 140860.
5639 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
5641         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
5642         take gimple_seq * arguments.
5643         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
5644         types_compatible_p langhook.
5646 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
5647             Joseph Myers  <joseph@codesourcery.com>
5649         * config/arm/arm.c (arm_builtin_va_list): New function.
5650         (arm_expand_builtin_va_start): Likewise.
5651         (arm_gimplify_va_arg_expr): Likewise.
5652         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
5653         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
5654         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
5655         (va_list_type): New variable.
5656         (arm_mangle_type): Mangle va_list_type appropriately.
5658 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
5660         PR middle-end/39157
5661         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
5662         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
5663         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
5664         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
5665         parameter to 1000 for -O1 by default.
5666         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
5667         parameter.
5668         * loop-invariant.c: Include params.h.
5669         (move_loop_invariants): Don't call move_single_loop_invariants on
5670         very large loops.
5672 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
5674         * calls.c (emit_library_call_value_1): Use slot_offset instead of
5675         offset when calculating bounds for indexing stack_usage_map.  Fixes
5676         a buffer overflow with certain target setups.
5678 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
5680         PR target/39240
5681         * calls.c (expand_call): Clear try_tail_call if caller and callee
5682         disagree in promotion of function return value.
5684 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
5686         PR target/39175
5687         * c-common.c (c_determine_visibility): If visibility changed and
5688         DECL_RTL has been already set, call make_decl_rtl to update symbol
5689         flags.
5691 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
5693         PR c++/39188
5694         * varasm.c (assemble_variable): Don't check DECL_NAME when
5695         globalizing a variable.
5697 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
5699         PR c/38483
5700         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
5701         expression before any __builtin_trap call.
5702         * c-typeck.c (build_function_call): Convert and check function
5703         arguments before generating a call to a trap.  Evaluate the
5704         function arguments before the trap.
5706 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
5708         PR target/39228
5709         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
5710         (UNSPEC_FXAM_MEM): New unspec.
5711         (fxam<mode>2_i387_with_temp): New insn and split pattern.
5712         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
5713         memory using fxam<mode>2_i387_with_temp to remove excess precision.
5715 2009-02-19  Richard Guenther  <rguenther@suse.de>
5717         PR tree-optimization/39207
5718         PR tree-optimization/39074
5719         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
5720         storedanything_tree): New.
5721         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
5722         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
5723         (build_succ_graph): Add edges from STOREDANYTHING to all
5724         non-direct nodes.
5725         (init_base_vars): Initialize STOREDANYTHING.
5726         (compute_points_to_sets): Free substitution info after
5727         building the succ graph.
5728         (ipa_pta_execute): Likewise.
5730         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
5731         field.
5732         (do_ds_constraint): Do not add to special var or non-pointer
5733         field solutions.
5734         (type_could_have_pointers): Split out from ...
5735         (could_have_pointers): ... here.  For arrays use the element type.
5736         (create_variable_info_for): Initialize may_have_pointers.
5737         (new_var_info): Likewise.
5738         (handle_lhs_call): Make the HEAP variable unknown-sized.
5739         (intra_create_variable_infos): Use a type with pointers for
5740         PARM_NOALIAS, make it unknown-sized.
5742 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5744         PR target/39224
5745         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
5747 2009-02-18  Jason Merrill  <jason@redhat.com>
5749         PR target/39179
5750         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
5751         value if DECL_EXTERNAL.
5752         * tree-sra.c (sra_walk_gimple_assign): Likewise.
5753         * target.h (gcc_target::binds_local_p): Clarify "module".
5754         * tree.h (TREE_PUBLIC): Clarify "module".
5756 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
5758         PR target/38891
5759         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
5760         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
5762 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
5764         PR target/39082
5765         * c.opt (Wabi): Support C and ObjC.
5766         (Wpsabi): New.
5768         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
5770         * config/i386/i386.c (classify_argument): Warn once about the ABI
5771         change when passing union with long double.
5773         * doc/invoke.texi: Update -Wabi for warning psABI changes.
5775 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
5777         PR c/35447
5778         * c-parser.c (c_parser_compound_statement): Always enter and leave
5779         a scope.
5781 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5783         PR target/34587
5784         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
5786 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
5788         PR tree-optimization/36922
5789         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
5790         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
5791         Likewise.
5793 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
5795         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
5796         to 0 for EABI64.
5798 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
5800         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
5802 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
5804         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
5805         tree sharing.
5807 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
5808             Richard Sandiford  <rdsandiford@googlemail.com>
5810         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
5811         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
5812         (loongson_biadd): ...this.
5814 2009-02-17  Richard Guenther  <rguenther@suse.de>
5816         PR tree-optimization/39202
5817         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
5818         a var make sure to follow existing collapses.
5820 2009-02-17  Richard Guenther  <rguenther@suse.de>
5822         PR middle-end/39214
5823         * langhooks.c (lhd_print_error_function): Check for NULL block.
5825 2009-02-17  Richard Guenther  <rguenther@suse.de>
5827         PR tree-optimization/39204
5828         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
5829         of the PHI arg.
5831 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
5833         * config/soft-fp/double.h: Update from glibc CVS.
5835 2009-02-17  Richard Guenther  <rguenther@suse.de>
5837         PR tree-optimization/39207
5838         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
5839         strict-aliasing warnings for pointers pointing to NULL.
5841 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
5843         PR c/35446
5844         * c-parser.c (c_parser_braced_init): Call pop_init_level when
5845         skipping until next close brace.
5847 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
5849         PR target/37049
5850         * config/i386/i386.c (ix86_expand_push): Set memory alignment
5851         to function argument boundary.
5853 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
5855         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
5856         in the lea_add. Reload eventually constraints it properly.
5857         * config/picochip/constraints.md : Remove the target constraint
5858         "b", since it is not needed anymore.
5860 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
5862         * gthr-dce.h: Uglify function parameter and local variable names.
5863         * gthr-gnat.h: Likewise.
5864         * gthr-mipssde.h: Likewise.
5865         * gthr-nks.h: Likewise.
5866         * gthr-posix95.h: Likewise.
5867         * gthr-posix.h: Likewise.
5868         * gthr-rtems.h: Likewise.
5869         * gthr-single.h: Likewise.
5870         * gthr-solaris.h: Likewise.
5871         * gthr-tpf.h: Likewise.
5872         * gthr-vxworks.h: Likewise.
5873         * gthr-win32.h: Likewise.
5875 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
5877         PR target/39196
5878         * config/i386/i386.md: Restrict the new peephole2 to move
5879         between MMX/SSE registers.
5881 2009-02-15  Richard Guenther  <rguenther@suse.de>
5883         Revert
5884         2009-02-13  Richard Guenther  <rguenther@suse.de>
5886         * configure.ac: Enable LFS.
5887         * configure: Re-generate.
5888         * config.in: Likewise.
5890 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5892         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
5893         spu_srqwbyte, spu_srqwbytebc): Define.
5894         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
5895         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
5896         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
5897         "shrqby_<mode>"): New insn-and-split patterns.
5898         * config/spu/spu.c (expand_builtin_args): Determine and return
5899         number of operands using spu_builtin_description data.
5900         (spu_expand_builtin_1): Use it.
5902 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
5904         PR target/38056
5905         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
5906         TARGET_CONST_GP.
5908 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
5910         PR target/39149
5911         * config/i386/i386.c (override_options): Correct warning
5912         messages for -malign-loops, -malign-jumps and -malign-functions.
5914 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
5916         PR target/39152
5917         * config/i386/i386.md: Restrict the new peephole2 to move
5918         between the general purpose registers.
5920 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
5922         PR target/39162
5923         * config/i386/i386.c (type_natural_mode): Add a new argument.
5924         Return the original mode and warn ABI change if vector size is 32byte.
5925         (function_arg_advance): Updated.
5926         (function_arg): Likewise.
5927         (ix86_function_value): Likewise.
5928         (ix86_return_in_memory): Likewise.
5929         (ix86_sol10_return_in_memory): Likewise.
5930         (ix86_gimplify_va_arg): Likewise.
5931         (function_arg_32): Don't warn ABX ABI change here.
5932         (function_arg_64): Likewise.
5934 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
5936         * loop-iv.c (implies_p): In the final case, test that operands 0
5937         of the two comparisons match.
5939         * config/bfin/bfin.c (find_prev_insn_start): New function.
5940         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
5941         (find_next_insn_start): Move.
5943 2009-02-13  Richard Guenther  <rguenther@suse.de>
5945         * configure.ac: Enable LFS.
5946         * configure: Re-generate.
5947         * config.in: Likewise.
5949 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
5951         PR c/35444
5952         * c-parser.c (c_parser_parms_list_declarator): Discard pending
5953         sizes on syntax error after some arguments have been parsed.
5955 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
5957         * doc/invoke.texi (-fira): Remove.
5959 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
5961         * caller-save.c: Replace regclass.c with reginfo.c in comments.
5962         * recog.c: Likewise.
5963         * rtl.h: Likewise.
5965 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
5967         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
5968         (umul_ppmm): Likewise.
5969         (count_leading_zeros): Likewise.
5970         (count_trailing_zeros): Likewise.
5971         (UMUL_TIME): Likewise.
5973 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
5975         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
5976         soft-fp/t-softfp to tmake_file.
5978         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
5979         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
5980         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
5981         IA64_BUILTIN_INFQ]: New.
5982         (ia64_init_builtins): Initialize __builtin_infq,
5983         __builtin_fabsq and __builtin_copysignq if not HPUX.
5984         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
5985         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
5987         * config/ia64/lib1funcs.asm (__divtf3): Define only if
5988         SHARED is defined.
5989         (__fixtfti): Likewise.
5990         (__fixunstfti): Likewise.
5991         (__floattitf): Likewise.
5993         * config/ia64/libgcc-glibc.ver: New.
5994         * config/ia64/t-fprules-softfp: Likewise.
5995         * config/ia64/sfp-machine.h: Likewise.
5997         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
5998         (LIBGCC2_TF_CEXT): Likewise.
5999         (TF_SIZE): Likewise.
6000         (TARGET_INIT_LIBFUNCS): Likewise.
6002         * config/ia64/t-glibc (SHLINB_MAPFILES):
6003         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
6005 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
6007         * config/i386/i386.c (construct_container): Rewrite processing
6008         BLKmode with X86_64_SSE_CLASS.
6010 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
6012         PR target/39152
6013         * config/i386/i386.md: Replace simplify_replace_rtx with
6014         replace_rtx in the new peephole2.
6016 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
6018         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
6019         loop unrolling do not happen at -O2.
6021 2009-02-12  Michael Matz  <matz@suse.de>
6023         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
6025 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
6027         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
6028         for -g3.
6030 2009-02-12  Ben Elliston  <bje@au.ibm.com>
6032         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
6033         patterns when updating the back chain.  Missed in the 2009-02-10
6034         change.
6036 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
6038         * doc/extend.texi (Decimal Floating Types): Update identifier of
6039         draft TR and list of missing support.
6041 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
6043         PR middle-end/39154
6044         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
6045         bit to variable length decl's flags, add it also to its
6046         pointer replacement variable.
6048 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
6049             Jakub Jelinek  <jakub@redhat.com>
6051         PR target/39118
6052         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
6053         (memory_blockage): New expander.
6054         (*memory_blockage): New insn pattern.
6055         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
6056         instead of general blockage at the end of function prologue when
6057         frame pointer is used to access red zone area.  Do not emit blockage
6058         when profiling, it is emitted in generic code.
6059         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
6060         function epilogue when frame pointer is used to access red zone area.
6062 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
6064         PR target/38824
6065         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
6066         by arithmetic with memory operands.
6067         * config/i386/predicates.md (commutative_operator): New.
6069 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
6071         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
6072         bulleted lists.
6074 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
6076         * alias.h (record_alias_subset): Declare.
6077         * alias.c (record_alias_subset): Make global.
6079 2009-02-10  Nick Clifton  <nickc@redhat.com>
6081         * tree-parloops.c: Change license to GPLv3.
6082         * ipa-struct-reorg.c: Change license to GPLv3.
6083         * ipa-struct-reorg.h: Change license to GPLv3.
6085 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
6087         PR c/39084
6088         * c-decl.c (start_struct): Return NULL on error.
6090 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
6092         PR middle-end/39124
6093         * cfgloopmanip.c (remove_path): Call remove_bbs after
6094         cancel_loop_tree, not before it.
6096         PR target/39139
6097         * function.h (struct function): Add has_local_explicit_reg_vars bit.
6098         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
6099         VAR_DECLs were seen.
6100         * tree-ssa-live.c (remove_unused_locals): Recompute
6101         cfun->has_local_explicit_reg_vars.
6102         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
6103         copies or clearings if cfun->has_local_explicit_reg_vars.
6105 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
6107         PR target/39118
6108         * config/i386/i386.c (expand_prologue): Emit blockage at the end
6109         of function prologue when frame pointer is used to access
6110         red zone area.
6112 2009-02-10  Richard Guenther  <rguenther@suse.de>
6114         PR middle-end/39127
6115         * gimplify.c (gimple_regimplify_operands): Always look if
6116         we need to create a temporary.
6118 2009-02-10  Richard Guenther  <rguenther@suse.de>
6120         PR tree-optimization/39132
6121         * tree-loop-distribution.c (todo): New global var.
6122         (generate_memset_zero): Trigger TODO_rebuild_alias.
6123         (tree_loop_distribution): Return todo.
6125 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
6127         PR target/39119
6128         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
6129         (x86_64_reg_class_name): Removed.
6130         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
6131         first one isn't X86_64_SSE_CLASS or any other ones aren't
6132         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
6133         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
6134         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
6135         and 3 X86_64_SSEUP_CLASS.
6136         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
6137         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
6139 2009-02-10  Ben Elliston  <bje@au.ibm.com>
6141         * config/rs6000/rs6000.md (allocate_stack): Always use an update
6142         form instruction to update the stack back chain word, even if the
6143         user has disabled the generation of update instructions.
6144         (movdi_<mode>_update_stack): New.
6145         (movsi_update_stack): Likewise.
6146         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
6147         always use an update form instruction to update the stack back
6148         chain word.
6150 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
6152         PR middle-end/38953
6153         * graphite.c (if_region_set_false_region): After moving a region in
6154         the false branch of a condition, remove the empty dummy basic block.
6155         (gloog): Remove wrong fix for PR38953.
6157 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6159         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
6160         generation due to implicit sign extension.
6162 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
6164         PR middle-end/38981
6165         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
6166         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
6168 2009-02-09  Richard Guenther  <rguenther@suse.de>
6170         PR middle-end/35202
6171         * convert.c (convert_to_real): Disable (float)fn((double)x)
6172         to fnf(x) conversion if errno differences may occur and
6173         -fmath-errno is set.
6175 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
6177         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
6178         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6179         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
6181 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
6183         PR c/35434
6184         * c-common.c (handle_alias_attribute): Disallow attribute for
6185         anything not a FUNCTION_DECL or VAR_DECL.
6187 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
6189         PR c/39035
6190         * real.c (do_compare): Special-case compare of zero against
6191         decimal float value.
6193 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
6195         PR c/36432
6196         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
6197         as indicating flexible array members unless the field itself is
6198         being declarared as the incomplete array.
6200 2009-02-06  Jan Hubicka  <jh@suse.cz>
6202         PR tree-optimization/38844
6203         * ipa-inline.c (try_inline): Stop inlining recursion when edge
6204         is already inlined.
6206 2009-02-06  Richard Guenther  <rguenther@suse.de>
6208         PR middle-end/38977
6209         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
6210         fork because we may expand it as __gcov_fork.
6212 2009-02-06  Nick Clifton  <nickc@redhat.com>
6214         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
6216 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
6218         PR tree-optimization/35659
6219         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
6220         vn_phi_eq): Shortcut if hashcode does not match.
6221         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
6222         NULL operands.
6223         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
6224         and avoid iterative_hash_expr.
6225         (FOR_EACH_VALUE_ID_IN_SET): New.
6226         (value_id_compare): Remove.
6227         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
6228         sort expressions by value id.
6230 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6232         PR target/38991
6233         * config/sh/predicates.md (general_movsrc_operand): Don't check
6234         the subreg of system registers here.
6236 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
6238         PR c++/39106
6239         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
6240         on the copied decl.
6242 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
6244         PR rtl-optimization/39110
6245         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
6246         addresses, not aligned ones.
6248 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
6249             Richard Guenther  <rguenther@suse.de>
6251         PR tree-optimization/39100
6252         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
6253         comment says and add edges.
6255 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
6257         PR c/35435
6258         * c-common.c (handle_tls_model_attribute): Ignore attribute for
6259         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
6261 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
6263         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
6264         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
6265         register_bb_in_sese, new_sese, free_sese): Moved.
6266         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
6267         outermost_loop_in_scop, build_scop_iteration_domain,
6268         expand_scalar_variables_ssa_name, get_vdef_before_scop,
6269         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
6270         Use loop_in_sese_p instead of loop_in_scop_p.
6271         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
6272         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
6273         (scopdet_basic_block_info): Fix bug in scop detection.
6274         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
6275         eq_loop_to_cloog_loop): Remove.
6276         (nb_loops_around_loop_in_scop, nb_loop
6277         ref_nb_loops): Moved here...
6278         * graphite.h (ref_nb_loops): ... from here.
6279         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
6280         (loop_domain_dim, loop_iteration_vector_dim): Remove.
6281         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
6282         * testsuite/gcc.dg/graphite/scop-19.c: New
6284 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
6285             Hans-Peter Nilsson  <hp@axis.com>
6287         PR rtl-optimization/37889
6288         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
6289         Move offset handling from PLUS to before the switch.  Use new
6290         arguments when considering SYMBOL_REFs too.
6291         (rtx_addr_can_trap_p): Pass dummy offset and size.
6292         (enum may_trap_p_flags): Remove.
6293         (may_trap_p_1): Pass size from MEM_SIZE.
6295         PR rtl-optimization/38921
6296         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
6297         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
6298         * rtlanal.c (may_trap_after_code_motion_p): Delete.
6299         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
6301 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
6303         AVX Programming Reference (January, 2009)
6304         * config/i386/sse.md (*vpclmulqdq): New.
6306 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
6308         PR tree-optimization/38977
6309         PR gcov-profile/38292
6310         * calls.c (special_function_p): Disregard __builtin_ prefix.
6312 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
6314         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
6315         non-indexable addresses even before reload.
6317 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
6319         PR c/29129
6320         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
6321         as having variable size.  Do not give an error for unnamed
6322         parameters with [*] declarators.  Give a warning for type names
6323         with [*] declarators and mark them as variable size.
6324         * c-parser.c (c_parser_sizeof_expression): Do not give an error
6325         for sizeof applied to [*] type names.
6327 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6329         PR C++/36607
6330         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
6332 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
6334         * gcc.c (process_command): Update copyright notice dates.
6335         * gcov.c (print_version): Likewise.
6336         * gcov-dump.c (print_version): Likewise.
6337         * mips-tfile.c (main): Likewise.
6338         * mips-tdump.c (main): Likewise.
6340 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
6342         PR c/35433
6343         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
6344         for composite type involving a zero-length array type.
6346 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
6348         PR target/35318
6349         * function.c (match_asm_constraints_1): Skip over
6350         initial optional % in the constraint.
6352         PR inline-asm/39059
6353         * c-parser.c (c_parser_postfix_expression): If fixed point is not
6354         supported, don't accept FIXED_CSTs.
6355         * c-decl.c (finish_declspecs): Error if fixed point is not supported
6356         and _Sat is used without _Fract/_Accum.  Set specs->type to
6357         integer_type_node for cts_fract/cts_accum if fixed point is not
6358         supported.
6360 2009-02-02  Catherine Moore  <clm@codesourcery.com>
6362         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
6364 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
6366         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
6367         (ABI_HAS_64BIT_SYMBOLS): Use it.
6368         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
6370 2009-02-02  Paul Brook  <paul@codesourcery.com>
6372         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
6374 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
6376         PR inline-asm/39058
6377         * recog.h (asm_operand_ok): Add constraints argument.
6378         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
6379         recurse on matching constraint.
6380         (check_asm_operands): Pass constraints as 3rd argument to
6381         asm_operand_ok.  Don't look up matching constraint here.
6382         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
6383         to asm_operand_ok.
6385 2009-02-02  Ben Elliston  <bje@au.ibm.com>
6387         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
6388         TARGET_NARROW_VOLATILE_BITFIELD macro names.
6390 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6392         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
6393         information.  Remove some obsolete information.  Reorganize.
6395         * config/pa/fptr.c: Revert license to GPL 2.
6396         * config/pa/milli64.S: Likewise.
6398 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
6400         PR target/38904
6401         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
6402         LIBRARY name in, instead of hard-coding it.
6403         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
6404         extra target make frag to tmake_files according to EH model.
6405         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
6406         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
6407         frags that define makefile variable EH_MODEL appropriately.
6408         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
6409         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
6410         to "-sjlj" according to type of EH configured.
6411         (LIBGCC_SONAME):  Concatenate it to shared library base name.
6412         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
6413         to "_sjlj" according to type of EH configured.
6414         (LIBGCC_SONAME):  Concatenate it to shared library base name.
6415         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
6416         (SHLIB_LINK):  Add missing semicolon to if-else construct.
6417         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
6418         string value of "pe_dll" command-line option.
6419         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
6420         (SHLIB_SONAME):  Use it when overriding t-cygming default.
6421         (SHLIB_IMPLIB):  Override t-cygming default.
6422         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
6423         string value of "pe_dll" command-line option.
6425 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
6427         PR target/38952
6428         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
6429         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
6431 2009-01-31  Richard Guenther  <rguenther@suse.de>
6433         PR tree-optimization/38937
6434         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
6435         computing the transitive closure.
6437 2009-01-30  Richard Guenther  <rguenther@suse.de>
6439         PR tree-optimization/39041
6440         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
6441         Propagate variable indices only if the types match for this stmt.
6443 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
6445         PR target/39013
6446         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
6447         inline but never defined.
6449 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
6451         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
6452         (*insv_h_di_reg_extimm): New insn.
6453         (*insv_l<mode>_reg_extimm): New insn.
6455 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
6457         * config/picochip/picochip.c (flag_conserve_stack): set
6458         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
6459         fconserve-stack. Reduce call-overhead used by inliner.
6461 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
6463         PR/38157
6464         * common.opt (flag_conserve_stack): Initialised to zero.
6466 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
6468         PR/39002
6469         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
6470         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
6471         method.
6473 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
6475         * ira-color.c (allocno_reload_assign): Update comments.
6476         * regmove.c (regmove_optimize): Likewise.
6478         * ra.h: Removed.
6480 2009-01-29  Robert Millan  <rmh@aybabtu.com>
6482         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
6483         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
6484         `MD_UNWIND_SUPPORT'.
6485         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
6487 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
6489         PR tree-optimization/39007
6490         * tree-loop-distribution.c (generate_builtin): Use
6491         recompute_dominator to compute the immediate dominator of the
6492         basic block just after the loop.
6494 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6496         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
6497         (ASM_OUTPUT_DWARF_PCREL): Define.
6499 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
6501         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
6502         * doc/passes.texi: Remove entries about regclass, local-alloc, and
6503         global.  Modify entries about regmove and IRA.
6505         * ra-conflict.c: Remove the file.
6507         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
6509         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
6510         (pass_regclass_init): Rename to pass_reginfo_init.
6512         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
6514         * toplev.h (flag_ira): Remove.
6516         * caller-save.c (setup_save_areas): Remove flag_ira.
6518         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
6520         * global.c: Remove the file.
6522         * opts.c (decode_options): Remove flag_ira.
6524         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
6526         * regmove.c: Modify file description.
6527         (find_use_as_address, try_auto_increment): Define them only if
6528         AUTO_INC_DEC is defined.
6529         (replacement_quality, replace_in_call_usage, fixup_match_1,
6530         stable_and_no_regs_but_for_p): Remove.
6531         (reg_set_in_bb): Make it static.
6532         (regmove_optimize): Remove flag_ira and code which worked for
6533         !flag_ira.
6535         * local-alloc.c: Remove the file.
6537         * common.opt (fira): Remove.
6539         * ira.c: Include except.h.
6540         (eliminable_regset): Move from global.c.
6541         (mark_elimination): Ditto.  Remove flag_ira.
6542         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
6543         equiv_mem_modified, validate_equiv_mem_from_store,
6544         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
6545         contains_replace_regs, memref_referenced_p, memref_used_between_p,
6546         no_equiv, recorded_label_ref): Move from local-alloc.c.
6547         (update_equiv_regs): Ditto.  Make it static.
6548         (print_insn_chain, print_insn_chains): Move it from global.c.
6549         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
6550         (build_insn_chain): Ditto.  Make it static.
6551         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
6552         Rename to init_live_subregs.
6553         (gate_ira): Remove flag_ira.
6555         * regclass.c: Rename reginfo.c.  Change file description.
6556         (FORBIDDEN_INC_DEC_CLASSES): Remove.
6557         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
6558         (init_reg_sets_1): Remove code for evaluation of
6559         reg_class_superclasses and losing_caller_save_reg_set.
6560         (init_regs): Remove init_reg_autoinc.
6561         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
6562         ok_for_base_p_nonstrict): Remove.
6563         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
6564         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
6565         corresponding entries.
6566         (dump_regclass, record_operand_costs, scan_one_insn,
6567         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
6568         record_address_regs, auto_inc_dec_reg_p): Remove.
6569         (gt-regclass.h): Rename to gt-reginfo.h.
6571         * rtl.h (dump_global_regs, retry_global_alloc,
6572         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
6574         * Makefile.in (RA_H): Remove.
6575         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
6576         Rename regclass.o to reginfo.o.
6577         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
6578         gt-reginfo.h.
6579         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
6580         (GTFILES): Rename regclass.c to reginfo.c.
6582         * passes.c (init_optimization_passes): Remove pass_local_alloc and
6583         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
6585         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
6586         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
6587         Remove flag_ira.
6588         (finish_spills): Ditto.  Remove code for !flag_ira.
6589         
6590 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
6592         PR middle-end/35854
6593         * doc/invoke.texi (rtl debug options): Complete rewrite.
6594         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
6595         to auto_inc_dec".
6596         * mode-switching.c (pass_mode_switching): Rename pass from
6597         "mode-sw" to "mode_sw".
6598         * except.c (pass_convert_to_eh_ranges): Rename pass from
6599         "eh-ranges" to "eh_ranges".
6600         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
6601         to "subreg1".
6602                 
6603         
6604 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
6605             Alexander Monakov  <amonakov@ispras.ru>
6607         PR middle-end/38857
6608         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
6609         register.
6610         (move_exprs_to_boundary): Change return type and pass through
6611         should_move from move_op.  Relax assert.  Update usage ...
6612         (schedule_expr_on_boundary): ... here.  Use should_move instead of
6613         cant_move.
6614         (move_op_orig_expr_found): Indicate that insn was disconnected from
6615         stream.
6616         (code_motion_process_successors): Do not call after_merge_succs
6617         callback if original expression was not found when traversing any of
6618         the branches.
6619         (code_motion_path_driver): Change return type.  Update prototype.
6620         (move_op): Update comment.  Add a new parameter (should_move).  Update
6621         prototype.  Set *should_move based on indication provided by
6622         move_op_orig_expr_found.
6624 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
6626         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
6627         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
6628         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
6629         * config/rs6000/rs6000.c (rs6000_override_options): Default
6630         avoid-indexed-addresses on for Power6, off for everything else.
6631         (avoiding_indexed_address_p): New function.
6632         (rs6000_legitimize_address): Use it.
6633         (rs6000_legitimate_address): Likewise.
6634         * config/rs6000/rs6000.md (movXX_updateX): Likewise
6636 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
6638         PR tree-optimization/38997
6639         * tree-loop-distribution.c (generate_memset_zero): Use
6640         POINTER_PLUS_EXPR for a pointer addition.
6642 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
6644         * config/s390/s390.md (bswap<mode>2): New pattern added.
6646 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
6648         * config/s390/s390.md (*tls_load_31): Added type attribute.
6650 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
6652         * config/s390/s390.md: Fix a few comments.
6654 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
6656         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
6657         (*tm<mode>_full): Fixed z10prop attribute.
6658         (*tst<mode>_extimm): Fixed z10prop attribute.
6659         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
6660         (*tstqiCCT_cconly): Fixed z10prop attribute.
6661         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
6662         (*movsi_larl): Fixed z10prop attribute.
6663         (*movsi_zarch): Fixed z10prop attribute.
6664         (*movsi_eas): Fixed z10prop attribute.
6665         (*movhi): Fixed z10prop attribute.
6666         (*movqi): Fixed z10prop attribute.
6667         (*movstrictqi): Fixed z10prop attribute.
6668         (*mov<mode>): Fixed z10prop attribute.
6669         (*movcc): Fixed z10prop attribute.
6670         (*sethighpartdi_64): Fixed z10prop attribute.
6671         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
6672         (*negdi2_sign_cc): Fixed z10prop attribute.
6673         (*negdi2_sign): Fixed z10prop attribute.
6674         (*absdi2_sign_cc): Fixed z10prop attribute.
6675         (*absdi2_sign): Fixed z10prop attribute.
6676         (*negabsdi2_sign_cc): Fixed z10prop attribute.
6677         (*negabsdi2_sign): Fixed z10prop attribute.
6678         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
6679         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
6680         (doloop_si64): Fixed z10prop attribute.
6681         (doloop_si31): Fixed z10prop attribute.
6682         (doloop_long): Fixed z10prop attribute.
6683         (indirect_jump): Fixed z10prop attribute.
6684         (nop): Fixed z10prop attribute.
6685         (main_base_64): Fixed z10prop attribute.
6686         (reload_base_64): Fixed z10prop attribute.
6688 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
6690         PR rtl-optimization/38740
6691         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
6692         if !optimize.
6693         * config/mips/mips.c (mips_reorg): Likewise.
6695 2009-01-28  Richard Guenther  <rguenther@suse.de>
6697         PR tree-optimization/38926
6698         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
6699         with the correct value id to a value.
6700         (do_regular_insertion): Use the value number of edoubleprime
6701         for the value number of the expr.
6703         Revert
6704         2008-08-21  Richard Guenther  <rguenther@suse.de>
6706         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
6707         a PHI ask VN if it is already available.
6708         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
6709         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
6711 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
6713         PR middle-end/38934
6714         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
6715         set to varying whenever max has TREE_OVERFLOW set, similarly
6716         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
6718 2009-01-28  Richard Guenther  <rguenther@suse.de>
6720         PR middle-end/38908
6721         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
6722         uninitialized aggregate uses in call arguments.
6724 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
6726         PR tree-optimization/38984
6727         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
6728         the nothing_id variable if -fno-delete-null-pointer-checks.
6730 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
6732         PR target/38988
6733         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
6734         (set_got_offset_rex64): Ditto.
6736 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
6738         PR target/38941
6739         * doc/extend.texi: Improve local variable with asm reg.
6741 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
6743         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
6744         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
6745         was not supplied then set warn_packed_bitfield_compat to the
6746         default value of 1.
6747         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
6748         against 1.
6750 2009-01-27  Richard Guenther  <rguenther@suse.de>
6752         PR tree-optimization/38503
6753         * cfgexpand.c (expand_gimple_basic_block): Ignore
6754         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
6755         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
6756         variables that cannot have TBAA applied.
6757         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
6758         statements.
6760 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
6762         PR middle-end/38969
6763         * calls.c (initialize_argument_information): Do not wrap complex
6764         arguments in SAVE_EXPR.
6766 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
6768         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
6769         (INSTALL_LIBGCC): Revert typo commit.
6771 2009-01-26  Richard Guenther  <rguenther@suse.de>
6773         PR tree-optimization/38745
6774         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
6775         from special handling.
6777 2009-01-26  Richard Guenther  <rguenther@suse.de>
6779         PR tree-optimization/38745
6780         * tree-ssa.c (execute_update_addresses_taken): Do not include
6781         variables that cannot possibly be a register in not_reg_needs.
6782         Do not clear TREE_ADDRESSABLE on vars that may not become
6783         registers.
6784         * tree-ssa.c (update_alias_info_1): Include those in the set
6785         of addressable vars.
6787 2009-01-26  Richard Guenther  <rguenther@suse.de>
6789         PR middle-end/38851
6790         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
6791         * tree-ssa-dse.c: Include langhooks.h
6792         (execute_simple_dse): Remove stores with zero size.
6794 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
6796         PR c/38957
6797         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
6798         as PLUS_EXPR.
6800 2009-01-24  Julian Brown  <julian@codesourcery.com>
6802         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
6803         config/arm/linux-atomic.c.
6804         * config/arm/linux-atomic.c: New.
6806 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
6808         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
6809         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
6810         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
6812 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
6814         PR c/38938
6815         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
6816         properly.
6818 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
6820         PR tree-optimization/38953
6821         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
6822         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
6823         (gloog): Split the exit of the scop when the scop exit is a loop exit.
6824         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
6825         changed the CFG.
6827 2009-01-24  Paul Brook  <paul@codesourcery.com>
6829         * config/arm/neon.md (neon_type): Move to arm.md.
6830         (neon_mov<VSTRUCT>): Add neon_type attribute.
6831         * config/arm/arm.md (neon_type): Move to here.
6832         (conds): Add "unconditioal" and use as default for NEON insns.
6834 2009-01-24  Ben Elliston  <bje@au.ibm.com>
6836         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
6837         void *' warning from -Wc++-compat.
6838         * Makefile.in (dominance.o-warn): Remove.
6840 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
6842         PR tree-optimization/38932
6843         * fold-const.c (fold_unary_ignore_overflow): New.
6844         * tree.h (fold_unary_ignore_overflow): Declare.
6845         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
6846         * tree-ssa-sccvn.c (visit_reference_op_load,
6847         simplify_unary_expression): Likewise.
6849 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
6851         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
6852         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
6853         regardless of their type.
6854         * c-common.c (handle_packed_attribute): Don't ignore packed on
6855         bitfields.
6856         * c.opt (Wpacked-bitfield-compat): New warning option.
6857         * stor-layout.c (place_field): Warn if offset of a field changed.
6858         * doc/extend.texi (packed): Mention the ABI change.
6859         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
6860         (Warning Options): Add it to the list.
6862 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
6864         * c-opts.c (c_common_post_options): Fix a typo in comments.
6866 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
6868         PR middle-end/38615
6869         * gimplify.c (gimplify_init_constructor): Fix promotion of const
6870         variables to static.
6871         * doc/invoke.texi (-fmerge-all-constants): Update description.
6873 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
6875         PR target/38931
6876         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
6877         (*movdi_1_rex64): Use type "mmx" for alternative 5.
6879 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
6881         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
6882         a word boundary.
6883         (LOCAL_ALIGNMENT): Similarly.
6885 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
6886             Joseph Myers  <joseph@codesourcery.com>
6888         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
6889         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
6890         * config/arm/arm-tune.md: Regenerate.
6891         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
6892         -march=iwmmxt2.
6894 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
6896         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
6897         version number to five.
6899 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
6901         PR c++/38930
6902         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
6903         * c-common.c (set_underlying_type): Likewise.
6904         (is_typedef_decl ): Likewise
6905         * tree.h: Likewise
6906         (set_underlying_type): Likewise.
6907         (is_typedef_type): Likewise.
6909 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
6911         PR middle-end/38587
6912         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
6913         crossing setjmps.
6915 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
6917         PR bootstrap/37660
6918         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
6919         (LIBGCC_SPEC):  Don't define.
6920         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
6922 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
6924         PR rtl-optimization/38879
6925         * alias.c (base_alias_check): Unaligned access via AND address can
6926         alias all surrounding object types except those with sizes equal
6927         or wider than the size of unaligned access.
6929 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
6931         PR c++/26693
6932         * c-decl.c (clone_underlying_type): Move this ...
6933         * c-common.c (set_underlying_type): ... here.
6934         Also, make sure the function properly sets TYPE_STUB_DECL() on
6935         the newly created typedef variant type.
6936         (is_typedef_decl ): New entry point.
6937         * tree.h: Added a new member member_types_needing_access_check to
6938         struct tree_decl_non_common.
6939         (set_underlying_type): New entry point.
6940         (is_typedef_type): Likewise.
6942 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
6944         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
6945         Check whether two instructions have memory references that
6946         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
6947         are helper functions for traversing.
6948         * alias.h (insn_alias_sets_confilict_p): New prototypes.
6949         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
6950         not to draw dependency edge for instructions with non-conflicting
6951         alias sets.
6953 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
6955         PR other/38758
6956         * longlong.h: Update copyright years.  Use soft-fp license notice.
6957         Sync __clz_tab declaration with glibc.
6959 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
6961         PR target/30687
6962         * doc/extend.texi (syscall_linkage): New.
6963         (version_id): Modify.
6965 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6966             Richard Guenther  <rguenther@suse.de>
6968         PR tree-optimization/38747
6969         PR tree-optimization/38748
6970         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
6971         conversion if the base address is an indirect reference and the
6972         aliasing sets could cause issues.
6974 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
6976         * common.opt (fgraphite, fgraphite-identity): Add comment for 
6977         explaining why these options are not documented.
6979 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
6981         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
6982         gimple_call_lhs is NULL.
6984 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
6986         PR target/38868
6987         * emit-rtl.c (adjust_address_1): Make sure memref is never
6988         overwritten.
6990 2009-01-20  Ben Elliston  <bje@au.ibm.com>
6992         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
6993         const qualifier from arg parameter. Remove unnecessary cast to char *.
6994         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
6995         const qualifier from arg 2.
6997 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
6999         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
7001 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
7003         PR c/38869
7004         * rtl.h (reinit_regs): New prototype.
7005         * regclass.c: Include ira.h.
7006         (reinit_regs): New.
7007         * Makefile.in (regclass.o): Add ira.h.
7008         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
7010 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
7012         PR target/38736
7013         * c-common.c (handle_aligned_attribute): Use
7014         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
7015         default alignment value.
7017         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
7019         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
7020         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
7022         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
7023         __BIGGEST_ALIGNMENT__.
7025         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
7027 2009-01-18  Richard Guenther  <rguenther@suse.de>
7029         PR tree-optimization/38819
7030         * tree-flow.h (operation_could_trap_helper_p): Declare.
7031         * tree-eh.c (operation_could_trap_helper_p): Export.
7032         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
7033         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
7034         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
7035         are about to insert a possibly trapping instruction and fail
7036         in this case.
7038 2009-01-18  Andreas Schwab  <schwab@suse.de>
7040         * doc/install.texi (Configuration): Remove obsolete paragraph
7041         about use of --with-gnu-ld with --with-gnu-as.
7043 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
7045         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
7046         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
7047         Follow spelling conventions.
7049 2009-01-18  Ben Elliston  <bje@au.ibm.com>
7051         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
7052         C++ warning about implicit conversion from void * to struct
7053         bitmap_head_def *.
7054         (bitmap_obstack_free): Likewise for bitmap_element *.
7055         * Makefile.in (bitmap.o-warn): Remove.
7057 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
7059         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
7061 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
7062             Tobias Grosser  <tobi.grosser@amd.com>
7064         * graphite.c (graphite_trans_scop_block): Do not block single
7065         nested loops.
7067 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
7069         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
7070         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
7071         test with assertion.
7073 2009-01-16  Richard Guenther  <rguenther@suse.de>
7075         PR tree-optimization/38835
7076         PR middle-end/36227
7077         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
7078         and INT + PTR -> (INT)(PTR p+ INT) folding.
7079         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
7081 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
7083         PR target/38554
7084         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
7085         the subreg from a lowpart subreg if it is also casting the value.
7087 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7088             Tobias Grosser  <tobi.grosser@amd.com>
7090         * graphite.c (compare_prefix_loops): New.
7091         (build_scop_canonical_schedules): Rewritten.
7092         (graphite_transform_loops): Move build_scop_canonical_schedules
7093         after build_scop_iteration_domain.
7095 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7096             Tobias Grosser  <tobi.grosser@amd.com>
7098         * graphite.c (add_conditions_to_domain): Add the loops to 
7099         the dimension of the iteration domain.  Do copy the domain
7100         only when it exists.
7101         (build_scop_conditions_1): Do not call add_conditions_to_domain.
7102         (add_conditions_to_constraints): New.
7103         (can_generate_code_stmt, can_generate_code): Removed.
7104         (gloog): Do not call can_generate_code.
7105         (graphite_transform_loops): Call add_conditions_to_constraints
7106         after building the iteration domain.
7108 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
7110         PR tree-optimization/38789
7111         * tree-ssa-threadedge.c
7112         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
7113         __builtin_constant_p.
7115 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
7117         * dce.c (delete_unmarked_insns): Reversed the order that insns are
7118         examined before deleting them.
7119         
7120 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
7122         * function.c (aggregate_value_p): Correctly extract the function
7123         type from CALL_EXPR_FN lookup.
7125 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
7127         * config/picochip/picochip.c (picochip_override_options): Revert
7128         CFI asm flag disable commited previously.
7130 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
7131             Tobias Grosser  <tobi.grosser@amd.com>
7132             Jan Sjodin  <jan.sjodin@amd.com>
7134         * graphite.c (scan_tree_for_params): On substractions negate
7135         all the coefficients of the term.
7136         (clast_to_gcc_expression_red): New.  Handle reduction expressions
7137         of more than two operands.
7138         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
7139         (get_vdef_before_scop): Handle also the case of default definitions.
7141 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
7143         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
7144         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
7145         Also use them when walking CALL_INSN_FUNCTION_USAGE.
7147 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
7148             Joey Ye  <joey.ye@intel.com>
7150         PR middle-end/37843
7151         * cfgexpand.c (expand_stack_alignment): Don't update stack
7152         boundary nor check incoming stack boundary here.
7153         (gimple_expand_cfg): Update stack boundary and check incoming
7154         stack boundary here.
7156 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
7158         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
7159         
7160 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
7162         PR rtl-optimization/38245
7163         * calls.c (expand_call): Add stack arguments to
7164         CALL_INSN_FUNCTION_USAGE even for pure calls (when
7165         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
7166         in regs and partially in memory or BLKmode arguments.
7167         (emit_library_call_value_1): Add stack arguments to
7168         CALL_INSN_FUNCTION_USAGE even for pure calls (when
7169         ACCUMULATE_OUTGOING_ARGS).
7170         * dce.c: Include tm_p.h.
7171         (find_call_stack_args): New function.
7172         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
7173         argument.
7174         (mark_insn): Call find_call_stack_args for CALL_Ps.
7175         (prescan_insns_for_dce): Walk insns backwards in bb rather than
7176         forwards.  Allocate and free arg_stores bitmap if needed, pass it
7177         down to deletable_insn_p, don't mark stores set in arg_stores
7178         bitmap, clear the bitmap at the beginning of each bb.
7179         * Makefile.in (dce.o): Depend on $(TM_P_H).
7181 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
7183         PR target/22599
7184         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
7185         to make sure the insn is a conditional test (bug 22599).  Reformat a
7186         few long lines.
7188 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
7190         PR middle-end/38431
7191         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
7192         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
7193         (gloog): Do not call cleanup_tree_cfg.
7194         (graphite_transform_loops): Call cleanup_tree_cfg after all 
7195         scops have been code generated.
7197 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
7198         * doc/gty.texi (Invoking the garbage collector): Added new node
7199         and section documenting ggc_collect.
7201 2009-01-14  Richard Guenther  <rguenther@suse.de>
7203         PR tree-optimization/38826
7204         PR middle-end/38477
7205         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
7206         initialization notes only if we actually emitted a warning.
7207         (intra_create_variable_infos): Add constraints for a result decl
7208         that is passed by hidden reference.
7209         (build_pred_graph): Mark all related variables non-direct on
7210         address-taking.
7212 2009-01-14  Nick Clifton  <nickc@redhat.com>
7214         * ira-conflicts.c: Include addresses.h for the definition of
7215         base_reg_class.
7216         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
7217         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
7219 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
7221         PR target/38811
7222         * Makefile.in (ira-lives.o): Add except.h.
7224         * ira-lives.c: Include except.h.
7225         (process_bb_node_lives): Process can_throw_internal.
7227 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
7229         PR rtl-optimization/38774
7230         * combine.c (simplify_set): When undoing cc_use change, don't do
7231         PUT_CODE on the newly created comparison, but instead put back the
7232         old comparison.
7234 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
7236         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
7237         values.  Remove duplicate arm8 entry.
7239 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
7241         PR tree-optimization/38786
7242         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
7243         the SSA_NAME case of expand_scalar_variables_expr.
7244         Set the type of an expression to the type of its assign statement.
7245         (expand_scalar_variables_expr): Also gather the scalar computation
7246         used to index the memory access.  Do not pass loop_p.
7247         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
7248         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
7249         the gimple_stmt_iterator where it inserts new code.
7250         Do not pass loop_p.
7251         (copy_bb_and_scalar_dependences): Do not pass loop_p.
7252         (translate_clast): Update call to copy_bb_and_scalar_dependences.
7254 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
7256         * graphite.h (debug_value): Removed.
7257         * graphite.c (debug_value): Removed.
7259 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
7261         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
7262         ldrd/strd with two 32-bit instructions.
7264 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
7266         * config/arm/arm.c (struct processors): Pass for speed down into
7267         cost helper functions.
7268         (const_ok_for_op): Handle COMPARE and inequality nodes.
7269         (arm_rtx_costs_1): Rewrite.
7270         (arm_size_rtx_costs): Update prototype.
7271         (arm_rtx_costs): Pass speed down to helper functions.
7272         (arm_slowmul_rtx_costs): Rework cost calculations.
7273         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
7274         (arm_9e_rtx_costs): Likewise.
7276 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
7278         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
7279         relocations of local symbols wider than UNITS_PER_WORD are not valid.
7280         (alpha_legitimize_address): Do not split local symbols wider than
7281         UNITS_PER_WORD into HIGH/LO_SUM parts.
7283 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
7285         PR bootstrap/38580
7286         * gcc.c (process_command): Replace call to execvp with calls
7287         to pex_one and exit.
7289 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
7291         PR target/29141
7292         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
7293         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
7294         variant for devices with 3-byte PC.
7295         (__tablejump_elpm__): New.
7297 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
7299         PR c/32041
7300         * c-parser.c (c_parser_postfix_expression): Allow `->' in
7301         offsetof member-designator, handle it as `[0].'.
7303 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7305         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
7306         function when not using named sections on targets with named sections
7307         if branch distance is less than 262132.
7309 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
7311         * combine.c (combine_instructions):  Recompute
7312         optimize_this_for_speed_p  for each BB in the main combine loop.
7314 2009-01-12  Tomas Bily  <tbily@suse.cz>
7316         PR middlend/38385
7317         * tree-loop-distribution.c (prop_phis): New function.
7318         (generate_builtin): Call prop_phis.
7319         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
7321 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
7323         PR tree-optimization/38807
7324         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
7325         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
7327 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
7329         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
7330         subreg of op0 to the original op0.
7332 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
7334         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
7335         
7336 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
7338         PR debug/7055
7339         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
7340         starting with digits.
7342 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
7344         PR target/38695
7345         * config/arm/arm.c (arm_is_long_call_p): Don't call
7346         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
7348 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
7350         * regrename.c (regrename_optimize): Fix dumping.
7351         (find_oldest_value_reg): Preserve REG_POINTER.
7352         (copy_hardreg_forward_1): Likewise.
7354 2009-01-09  Diego Novillo  <dnovillo@google.com>
7356         * gimple.h (struct gimple_statement_base) <uid>: Document
7357         the restrictions on its use.
7358         (gimple_uid): Tidy.
7359         (gimple_set_uid): Tidy.
7361 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
7363         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
7364         zero guard even if align_bytes != 0 and count is smaller than
7365         size_needed.
7367 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
7369         PR rtl-optimization/38495
7370         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
7371         (add_range_and_copies_from_move_list): Print all added ranges.
7372         Add ranges to memory optimized destination.
7374 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
7376         PR target/38686
7377         PR target/38708
7378         * config/i386/i386.c (override_options): Reject
7379         -mstringop-strategy=rep_8byte with -m32.
7380         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
7381         to 1.  Do count comparison against epilogue_size_needed at compile
7382         time even when count_exp was constant forced into register.  For
7383         size_needed don't jump to epilogue, instead just avoid aligning
7384         and invoke the body algorithm.  If need_zero_guard, add zero guard
7385         even if count is non-zero, but smaller than size_needed + number of
7386         bytes that could be stored for alignment.
7387         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
7388         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
7389         but smaller than size_needed + number of bytes that could be stored
7390         for alignment.  Compare size_needed with epilogue_size_needed instead
7391         of desired_align - align, don't adjust size_needed, pass
7392         epilogue_size_needed to the epilogue expanders.
7394         PR c/35742
7395         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
7397 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7399         * pa.c (last_address): Change to unsigned.
7400         (update_total_code_bytes): Change argument to unsigned.  Don't
7401         check if insn addresses are set.
7402         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
7403         addresses are not set.
7404         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
7406 2009-01-09  Nick Clifton  <nickc@redhat.com>
7408         * config/sh/symbian.c: Replace uses of DECL_INLINE with
7409         DECL_DECLARED_INLINE_P.
7411 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
7413         PR middle-end/38347
7414         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
7415         GET_MODE (op0) in operand_subword_force calls.
7417         PR middle-end/38771
7418         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
7419         fold_convert arg0 operands to TREE_TYPE (op0) first.
7421 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
7423         * params.def (ira-max-conflict-table-size): Decrease default value
7424         to 1000.
7426 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
7428         PR tree-optimization/37031
7429         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
7430         on parameter_set.
7431         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
7432         allocate it using gc instead of heap, use VEC_quick_push instead of
7433         VEC_safe_push.
7434         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
7435         instead of heap, use VEC_quick_push instead of VEC_safe_push.
7436         * tree-data-ref.h (struct access_matrix): Change matrix to gc
7437         allocated vector from heap allocated.
7438         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
7439         * tree-loop-linear.c (linear_transform_loops): Allocate nest
7440         vector only after perfect_loop_nest_depth call.
7442 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
7443             Jan Sjodin  <jan.sjodin@amd.com>
7445         PR tree-optimization/38559
7446         * graphite.c (debug_value, copy_constraint,
7447         swap_constraint_variables, scale_constraint_variable, ): New.
7448         (get_lower_bound, get_upper_bound): Removed.
7449         (graphite_trans_bb_strip_mine): Clean up this code that works
7450         only for constant number of iterations.  Fully copy upper and
7451         lower bound constraints, not only the constant part of them.
7452         * graphite.h (debug_value): Declared.
7454 2009-01-08  Ira Rosen  <irar@il.ibm.com>
7456         PR tree-optimization/37194
7457         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
7458         Don't add the cost of cost model guard in prologue to scalar 
7459         outside cost in case of known number of iterations.
7461 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
7462             Alan Modra  <amodra@bigpond.net.au>
7464         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
7465         non-word-aligned REG+CONST addressing.
7467 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
7469         PR target/38706
7470         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
7471         free_after_compilation when outputting a thunk.
7472         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
7473         Do not call free_after_compilation here.
7475 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
7477         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
7478         (ix86_valid_target_attribute_inner_p): Ditto.
7480 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
7482         PR tree-optimization/38492
7483         PR tree-optimization/38498
7484         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
7485         * tree-chrec.h (scev_is_linear_expression): Declared.
7486         * graphite.c (graphite_cannot_represent_loop_niter): New.
7487         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
7488         (graphite_loop_normal_form): Use gcc_assert.
7489         (scan_tree_for_params): Use CASE_CONVERT.
7490         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
7491         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
7492         Use gcc_assert.  Discard scops that contain unhandled cases.
7493         (build_scop_conditions): Return a boolean status for unhandled cases.
7494         (strip_mine_profitable_p): Print the loop number, not its depth.
7495         (is_interchange_valid): Pass the depth of the loop nest, don't
7496         recompute it wrongly.
7497         (graphite_trans_bb_block): Same.
7498         (graphite_trans_bb_block): Print tentative of loop blocking.
7499         (graphite_trans_scop_block): Do not print that the loop has been
7500         blocked.
7501         (graphite_transform_loops): Do not handle scops that contain condition
7502         scalar phi nodes.
7504 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
7506         AVX Programming Reference (December, 2008)
7507         * config/i386/avxintrin.h (_mm256_stream_si256): New.
7508         (_mm256_stream_pd): Likewise.
7509         (_mm256_stream_ps): Likewise.
7511         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
7512         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
7513         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
7514         (bdesc_special_args): Add __builtin_ia32_movntdq256,
7515         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
7516         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
7517         (ix86_expand_special_args_builtin): Likewise.
7519         * config/i386/sse.md (AVXMODEDI): New.
7520         (avx_movnt<mode>): Likewise.
7521         (avx_movnt<mode>): Likewise.
7522         (<sse>_movnt<mode>): Remove AVX support.
7523         (sse2_movntv2di): Likewise.
7525 2009-01-07  Richard Guenther  <rguenther@suse.de>
7527         PR middle-end/38751
7528         * fold-const.c (extract_muldiv): Remove obsolete comment.
7529         (fold_plusminus_mult_expr): Undo MINUS_EXPR
7530         to PLUS_EXPR canonicalization for the canonicalization.
7532 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
7534         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
7535         hosted cross-compilers generating less efficient code.
7537 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
7539         * function.h (rtl_data): Add a dbr_scheduled_p field.
7540         * reorg.c (dbr_schedule): Set it.
7541         (gate_handle_delay_slots): Check it.
7542         * config/mips/mips.c (mips_base_delayed_branch): Delete.
7543         (mips_reorg): Check flag_delayed_branch instead of
7544         mips_base_delayed_branch.
7545         (mips_override_options): Don't set mips_base_delayed_branch
7546         or flag_delayed_branch.
7548 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
7550         PR rtl-optimization/38426.
7551         * ira.c (ira): Set current_function_is_leaf earlier.
7553 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
7555         PR rtl-optimization/38722
7556         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
7557         too early, only set a flag and modify after last possible
7558         undo_all point.
7560 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
7562         PR c/34252
7563         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
7564         * real.c (decimal_single_format): Correct values of emin and emax.
7565         (decimal_double_format): Ditto.
7566         (decimal_quad_format): Ditto.
7567         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
7568         computation of DECnn_MIN and DECnn_MAX for corrected values of
7569         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
7570         __DECnn_MIN__, and adjust its computation for the corrected value
7571         of emin.
7573 2009-01-06  Jan Hubicka  <jh@suse.cz>
7575         PR target/38744
7576         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
7578 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
7580         * doc/contrib.texi (Contributors): Slightly adjust the end note.
7581         Add Robert Clark to the list of testers.
7583 2009-01-06  Jan Hubicka  <jh@suse.cz>
7584             Kai Tietz  <kai.tietz@onevision.com>
7586         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
7587         * config/i386/i386.c (ix86_expand_call): Add clobbers.
7589 2009-01-06  Jan Hubicka  <jh@suse.cz>
7590             Kai Tietz  <kai.tietz@onevision.com>
7592         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
7593         for w64 ABI.
7594         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7595         (ix86_nsaved_regs): Count only general purpose regs.
7596         (ix86_nsaved_sseregs): New.
7597         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
7598         to 16 for w64; compute padding and size of sse reg save area.
7599         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
7600         general purpose regs.
7601         (ix86_emit_save_sse_regs_using_mov): New.
7602         (ix86_expand_prologue): Save SSE regs if needed.
7603         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
7604         (ix86_emit_restore_sse_regs_using_mov): New.
7605         (ix86_expand_epilogue): Save SSE regs if needed.
7607 2009-01-06  Jan Hubicka  <jh@suse.cz>
7608             Kai Tietz  <kai.tietz@onevision.com>
7610         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
7611         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
7612         functions when accumulate outgoing args is off.
7614 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
7616         PR bootstrap/38742
7617         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
7618         before using pseudos_have_intersected_live_ranges_p.
7620         * ira-int.h (ira_assert): Always define.
7622 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
7624         AVX Programming Reference (December, 2008)
7625         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
7626         (_mm256_permute2_pd): Likewise.
7627         (_mm_permute2_ps): Likewise.
7628         (_mm256_permute2_ps): Likewise.
7629         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
7630         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
7632         * config/i386/i386.c (ix86_builtins): Remove
7633         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
7634         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
7635         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
7636         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
7637         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
7638         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
7639         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
7640         __builtin_ia32_vpermil2ps256.
7641         (ix86_init_mmx_sse_builtins): Updated.
7642         (ix86_expand_args_builtin): Likewise.
7644 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7646         * pa.c (output_call): Relocate non-jump insns in the delay slot of
7647         long absolute calls when generating PA 2.0 code.
7649 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
7651         PR rtl-optimization/38583
7652         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
7654         * params.def (ira-max-conflict-table-size): New.
7656         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
7657         
7658         * ira.h (ira_conflicts_p): New external definition.
7659         
7660         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
7661         table.  Report this.  Return result of building.
7662         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
7663         building conflict table.
7665         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
7666         (ira_color): Use ira_conflicts_p.
7667         
7668         * global.c: Include ira.h.
7669         (pseudo_for_reload_consideration_p, build_insn_chain): Use
7670         ira_conflicts_p.
7672         * Makefile.in (global.o): Add ira.h.
7673         
7674         * ira-build.c (mark_all_loops_for_removal,
7675         propagate_some_info_from_allocno): New.
7676         (remove_unnecessary_allocnos): Call
7677         propagate_some_info_from_allocno.
7678         (remove_low_level_allocnos): New.
7679         (remove_unnecessary_regions): Add parameter.  Call
7680         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
7681         parameter to remove_unnecessary_regions.
7682         (ira_build): Remove all regions but root if the conflict table was
7683         not built.  Update conflict hard regs for allocnos crossing calls.
7685         * ira.c (ira_conflicts_p): New global.
7686         (ira): Define and use ira_conflicts_p.
7688         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
7689         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
7690         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
7691         
7692 2009-01-06  Ben Elliston  <bje@au.ibm.com>
7694         * gengtype-lex.l (YY_NO_INPUT): Define.
7696 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7698         PR c/34911
7699         * c-common.c (handle_vector_size_attribute): Also reject
7700         BOOLEAN_TYPE types.
7702 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
7704         PR tree-optimization/38492
7705         * graphite.c (rename_map_elt, debug_rename_elt,
7706         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
7707         rename_map_elt_info, eq_rename_map_elts,
7708         get_new_name_from_old_name, bb_in_sese_p): Moved around.
7709         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
7710         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
7711         (sese_build_livein_liveouts): New.
7712         (new_sese, free_sese): New.
7713         (new_scop): Call new_sese.
7714         (free_scop): Call free_sese.
7715         (rename_variables_from_edge, rename_phis_end_scop): Removed.
7716         (register_old_new_names): Renamed register_old_and_new_names.
7717         (register_scop_liveout_renames, add_loop_exit_phis,
7718         insert_loop_close_phis, struct igp,
7719         default_liveout_before_guard, add_guard_exit_phis,
7720         insert_guard_phis, copy_renames): New.
7721         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
7722         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
7723         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
7724         (scop_adjust_phis_for_liveouts): New.
7725         (gloog): Call scop_adjust_phis_for_liveouts.
7727         * graphite.h (struct sese): Documented.  Added fields liveout,
7728         num_ver and livein.
7729         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
7730         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
7731         (struct scop): Added field liveout_renames.
7732         (SCOP_LIVEOUT_RENAMES): New.
7734 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
7736         PR tree-optimization/38510
7737         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
7738         (translate_clast): Call recompute_all_dominators before
7739         graphite_verify.
7740         (gloog): Call recompute_all_dominators before graphite_verify.
7742 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
7743             Jan Sjodin  <jan.sjodin@amd.com>
7745         PR tree-optimization/38500
7746         * graphite.c (create_sese_edges): Call fix_loop_structure after
7747         splitting blocks.
7749 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
7751         * config.gcc: Add m32r*-*-rtems*.
7752         * config/m32r/rtems.h: New file.
7754 2009-01-05  Ben Elliston  <bje@au.ibm.com>
7756         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
7757         (.po.pox): Likewise.
7758         (po/gcc.pot): Likewise.
7760 2009-01-04  David S. Miller  <davem@davemloft.net>
7762         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
7763         (STARTING_FRAME_OFFSET): Always set to zero.
7765 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
7767         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
7768         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
7769         fixed-point types, and vectors of the same.
7771 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
7773         * config/mips/sync.md (*mb_barrier): Rename to...
7774         (*memory_barrier): ...this.
7776 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
7778         * doc/extend.texi (Function Attributes): Move @cindex after @item
7779         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
7780         and put in alphabetical order. Fix 'target' name and put in order.
7781         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
7782         typos.
7784 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
7786         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
7787         (memory_barrier): Expand as unspec instead of unspec_volatile.
7788         Remove mem:BLK from insn operands.  Use Pmode scratch register.
7789         (*memory_barrier): Define as unspec instead of unspec_volatile.
7790         Use (match_dup 0) as input operand.
7792         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
7793         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
7794         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
7795         scratch register.  Remove operand 1.
7796         (*stbar): Define as unspec instead of unspec_volatile.
7797         Use (match_dup 0) as input operand, remove (const_int 8).
7798         (*membar): Define as unspec instead of unspec_volatile.
7799         Use (match_dup 0) as input operand, remove input operand 2.
7801         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
7802         (memory_barrier): Expand as unspec instead of unspec_volatile.
7803         Remove mem:BLK from insn operands.  Use Pmode scratch register.
7804         (*memory_barrier): Define as unspec instead of unspec_volatile.
7805         Use (match_dup 0) as input operand.
7807         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
7808         Remove mem:BLK from insn operands.  Use Pmode scratch register.
7809         Set volatile flag on operand 0.
7810         (*memory_barrier): New insn pattern.
7812         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
7813         insn operands.
7814         (*memory_barrier): Use (match_dup 0) as input operand.
7816         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
7817         Remove mem:BLK from insn operands.  Use Pmode scratch register.
7818         Set volatile flag on operand 0.
7819         (*mb_internal): New insn pattern.
7821         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
7823 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
7825         PR middle-end/38586
7826         * function.c (struct temp_slot): Move to the section of the file
7827         that deals with temp slots.  Remove field 'address'.
7828         (temp_slot_address_table): New hash table of address -> temp slot.
7829         (struct temp_slot_address_entry): New struct, items for the table.
7830         (temp_slot_address_compute_hash, temp_slot_address_hash,
7831         temp_slot_address_eq, insert_temp_slot_address): Support functions
7832         for the new table.
7833         (find_temp_slot_from_address): Rewrite to use the new hash table.
7834         (remove_unused_temp_slot_addresses): Remove addresses of temp
7835         slots that have been made available.
7836         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
7837         worker function for remove_unused_temp_slot_addresses.
7838         (assign_stack_temp_for_type): Don't clear the temp slot address list.
7839         Add the temp slot address to the address -> temp slot map.
7840         (update_temp_slot_address): Update via insert_temp_slot_address.
7841         (free_temp_slots): Call remove_unused_temp_slot_addresses.
7842         (pop_temp_slots): Likewise.
7843         (init_temp_slots): Allocate the address -> temp slot map, or empty
7844         the map if it is already allocated.
7845         (prepare_function_start): Initialize temp slot processing.
7847 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
7849         PR middle-end/38584
7850         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
7851         Calculate the size of all stack vars assuming no packing of stack
7852         vars will happen, replacing a quadratic algorithm with a linear one.
7854 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
7856         PR target/38707
7857         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
7858         can't be used.
7860 2009-01-03  Diego Novillo  <dnovillo@google.com>
7862         * doc/contrib.texi: Update contributions.
7864 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
7866         PR c++/38705
7867         * builtins.c (fold_builtin_memory_op): Give up if either operand
7868         is volatile.  Set srctype or desttype to non-qualified version
7869         of the other type.
7871         PR c/38700
7872         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
7873         and FUNCTION_DECLs.
7875 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
7877         PR rtl-optimization/35805
7878         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
7879         problem if fast dce is able to remove any instructions.
7880         * dce.c (dce_process_block): Fix dump message.
7881         
7882 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
7884         PR 33649
7885         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
7887 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
7889         PR middle-end/38690
7890         * tree-flow.h (op_code_prio, op_prio): New prototypes.
7891         * tree-pretty-print.c (op_code_prio): New function.
7892         (op_prio): No longer static.  Use op_code_prio.
7893         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
7894         Use op_prio and op_code_prio to determine if () should be
7895         printed around operand(s) or not.
7897         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
7898         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
7899         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
7900         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
7901         pp_character instead of pp_string for single letter printing.
7903 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
7905         * doc/extend.texi: Fix '#pragma GCC option' typo.
7907 2009-01-02  Richard Guenther  <rguenther@suse.de>
7909         * doc/install.texi (--enable-checking): Mention different
7910         default for stage1.
7911         (--enable-stage1-checking): Document.
7913 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
7915         PR middle-end/30142
7916         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
7917         case to be an error.
7919 2009-01-02  Ben Elliston  <bje@au.ibm.com>
7921         * config/fp-bit.h (pack_d): Constify argument.
7922         * config/fp-bit.c (makenan): Constify return type. Remove casts.
7923         (isnan): Constify argument.
7924         (isinf): Likewise.
7925         (iszero): Likewise.
7926         (pack_d): Likewise.
7927         (_fpadd_parts): Constify return type.
7928         (_fpmul_parts): Likewise.
7929         (_fpdiv_parts): Likewise.
7931 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
7933         PR c/36489
7934         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
7935         warn about overwriting initializer with side-effects or
7936         -Woverride-init if !IMPLICIT.
7937         (output_init_element): Likewise.  Pass IMPLICIT down to
7938         add_pending_init.
7939         (process_init_element): Add IMPLICIT argument.  Pass it down
7940         to output_init_element.
7941         (push_init_element, pop_init_level, set_designator): Adjust
7942         process_init_element callers.
7943         (set_nonincremental_init, set_nonincremental_init_from_string):
7944         Adjust add_pending_init callers.
7945         (output_pending_init_elements): Adjust output_init_element callers.
7946         * c-tree.h (process_init_element): Adjust prototype.
7947         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
7948         process_init_element callers.