OSDN Git Service

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