OSDN Git Service

2008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
2
3         PR other/28322
4         * opts.c (print_ignored_options): report postponed diagnostics for
5         unknown -Wno-* options as warnings, not errors.
6         (postpone_unknown_option_error): renamed to
7         postpone_unknown_option_warning.
8         * gcc.dg/pr28322-2.c: check that emitted diagnostic for -Wno-foobar
9         is a warning and not an error.
10
11 2008-07-09  Doug Kwan  <dougkwan@google.com>
12
13         Revert:
14         2008-07-08  Doug Kwan  <dougkwan@google.com>
15
16         * config/arm/arm.opt (mandroid): New option.
17         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
18         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
19         (CC1_SPEC): Same.
20         (CC1PLUS_SPEC): Same.
21         (LIB_SPEC): Same.
22         (STARTFILE_SPEC): Same.
23         (ENDFILE_SPEC): Same.
24         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
25         used.
26
27 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
28
29         PR target/35802
30         * config/mips/mips.h (reg_class): Remove V1_REG.
31         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
32         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
33         instead of V1_REGS.
34         (mips_get_tp): New function.
35         (mips_legitimize_tls_address): Use it.
36         * config/mips/constraints.md (v): Delete.
37         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
38         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
39         After reload, split into a move and ...
40         (*tls_get_tp_<mode>_split): ...this new instruction.
41
42 2008-07-09  David Daney  <ddaney@avtrex.com>
43
44         * config/mips/driver-native.c: Include coretypes.h and tm.h.
45
46 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
47
48         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
49         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
50         Add c argument.
51         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
52         htab_delete should be called.  Don't free c.
53         (lookup_tmp_var): Create temp_htab lazily.
54         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
55         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
56         callers.
57         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
58         lower_omp_ordered, lower_omp_critical, lower_omp_for,
59         create_task_copyfn, lower_omp_taskreg, execute_lower_omp): 
60         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
61         * tree-sra.c (generate_element_init): Likewise.
62         * tree-mudflap.c (execute_mudflap_function_ops,
63         execute_mudflap_function_decls): Likewise.
64         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
65         * tree-gimple.h (struct gimplify_ctx): New type.
66         (push_gimplify_context): Adjust prototype.
67
68 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
69
70         * tree-ssa-pre.c (phi_translate_1): Update placement of
71         add_to_value calls.
72
73 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
74
75         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
76         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
77         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
78         * targhooks.c (default_hard_regno_scratch_ok): New function.
79         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
80         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
81         * recog.c:  Include "target.h".
82         (peep2_find_free_register): Add check for global regs. Add target
83         specific check.
84         * Makefile.in (recog.o): Depend on target.h.
85
86 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
87
88         * config/sh/sh.c (sh_canonical_va_list_type): New.
89         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
90
91 2008-07-09  Raksit Ashok <raksit@google.com>
92
93         * doc/invoke.texi (Option Summary): Mention new option
94         -Wdisallowed-function-list=...
95         (Warning Options): Document -Wdisallowed-function-list=...
96         * common.opt (Wdisallowed-function-list=): New flag.
97         * flags.h (warn_disallowed_functions): External definition of new
98         boolean warning flag.
99         (warn_if_disallowed_function_p): Declare new function.
100         * opts.c (warning_disallowed_functions): New static variable.
101         (warn_disallowed_functions): New boolean warning flag.
102         (warn_if_disallowed_function_p): New function.
103         (add_comma_separated_to_vector): Rename
104         add_instrument_functions_exclude_list to this.
105         (common_handle_option): Handle new option. Rename calls to
106         add_instrument_functions_exclude_list into calls to
107         add_comma_separated_to_vector.
108         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
109         based on flag warn_disallowed_functions.
110
111 2008-07-09  Christian Bruel  <christian.bruel@st.com>
112
113         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
114          instead of get_attr_length.
115
116 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
117
118         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
119         keywords.
120         * genemit.c (gen_insn): Likewise.
121         * gengtype.c (note_def_vec): Likewise.
122         * gengtype.h (note_def_vec): Likewise.
123         * genoutput.c (struct data, output_insn_data, process_template,
124         gen_expand, gen_split, note_constraint): Likewise.
125         * genrecog.c (new_decision, add_to_sequence, factor_tests,
126         make_insn_sequence): Likewise.
127         * gensupport.c (record_insn_name): Likewise.
128
129 2008-07-08  Doug Kwan  <dougkwan@google.com>
130
131         * config/arm/arm.opt (mandroid): New option.
132         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
133         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
134         (CC1_SPEC): Same.
135         (CC1PLUS_SPEC): Same.
136         (LIB_SPEC): Same.
137         (STARTFILE_SPEC): Same.
138         (ENDFILE_SPEC): Same.
139         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
140         used.
141
142 2008-07-08  Raksit Ashok  <raksit@google.com>
143
144         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
145         (set_storage_via_setmem): Fix expected_align parameter.
146         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
147         missing from the list.
148         * doc/md.texi (movmem): Explicitly state that expected alignment is
149         to be expressed in bytes.
150         (setmem): Explicitly state that expected alignment is to be expressed
151         in bytes.
152
153 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
154
155         * reload.c (find_reloads_subreg_address): Do not require validity
156         of address in original mode before reloading address.
157
158 2008-07-07  Tianwei Sheng  <tianweis@google.com>
159
160         * df-core.c (df_remove_problem): Adjust the access to avoid out of
161         bounds array access.
162
163 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
164
165         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P
166         dst.
167
168 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
169         
170         Fix PR tree-optimization/23455
171         Fix PR tree-optimization/35286
172         Fix PR tree-optimization/35287
173         * Makefile.in (OBJS-common): Remove tree-vn.o.
174         tree-vn.o: Remove.
175         * dbgcnt.def: Add treepre_insert debug counter.
176         * gcc/tree-flow.h (add_to_value): Updated for other changes.
177         (debug_value_expressions): Ditto.
178         (print_value_expressions): Ditto.
179         * tree-pretty-print.c (dump_generic_node): Updated for
180         VALUE_HANDLE removal.
181         * tree-ssa-dom.c (record_equality): Ditto.
182         (cprop_operand): Ditto.
183         (lookup_avail_expr): Ditto.
184         * tree-ssa-threadedge.c
185         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
186         (simplify_control_stmt_condition): Ditto.
187         * tree.c (tree_code_size): Ditto.
188         (tree_node_structure): Ditto.
189         (iterative_hash_expr): Ditto.
190         * tree.def: Ditto.
191         * tree.h (VALUE_HANDLE_ID): Ditto.
192         (VALUE_HANDLE_EXPR_SET): Ditto.
193         (struct tree_value_handle): Ditto.
194         (union tree_node): Ditto.
195         * treestruct.def: Ditto.
196         * tree-vn.c: Removed.
197         * tree-ssa-pre.c: Rewritten entirely.
198         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
199         (constant_value_ids): Ditto.
200         (vn_nary_op_t): Moved to header.
201         (vn_phi_t): Ditto.
202         (vn_reference_op_t): Ditto
203         (vn_reference_t): Ditto.
204         (next_value_id): New variable.
205         (VN_INFO): Add an assert.
206         (vn_constant_eq): New function.
207         (vn_constant_hash): Ditto.
208         (get_or_alloc_constant_value_id): Ditto.
209         (value_id_constant_p): Ditto.
210         (vn_reference_compute_hash): De-staticify.
211         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
212         Disable some code with a FIXME.
213         Remove VALUE_HANDLE use.
214         (valueize_refs): Update opcode if it changes from ssa name to
215         constant.
216         (vn_reference_lookup_1): Add new argument.
217         (vn_reference_lookup):  Ditto.
218         (vn_reference_lookup_pieces): New function.
219         (vn_reference_insert): Add return type. Modify to deal with value
220         ids.
221         (vn_reference_insert_pieces):  New function.
222         (vn_nary_op_compute_hash): De-staticify.
223         (vn_nary_op_eq): Ditto.
224         (vn_nary_op_lookup_pieces): New function.
225         (vn_nary_op_lookup): Add new argument.  
226         (vn_nary_op_insert_pieces): New function.
227         (vn_nary_op_insert): Add return type. Modify to deal with value
228         ids.
229         (vn_phi_insert): Ditto.
230         (visit_unary_op): Update for callee changes.
231         (visit_binary_op): Ditto.
232         (visit_reference_op_load): Ditto.
233         (visit_reference_op_store): Ditto.
234         (init_scc_vn): Init next_value_id, constant_to_value_id and
235         constant_value_ids. 
236         (free_scc_vn): Free them.
237         (set_hashtable_value_ids): New function.
238         (run_scc_vn): Use it.
239         (get_max_value_id): New function.
240         (get_next_value_id): Ditto.
241         (expressions_equal_p): Moved from tree-vn.c
242         (sort_vuses): Ditto.
243         (sort_vuses_heap): Ditto.
244         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
245         above).
246         * tree.c (iterative_hash_hashval_t): Made non-static
247         * tree.h (iterative_hash_hashval_t): Declare it.
248         
249 2008-07-08  Martin Jambor  <mjambor@suse.cz>
250
251         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
252         instead of ipa_create_node_params.
253         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
254         ipa_check_create_edge_args, free them with
255         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
256
257         * ipa-prop.c: Include flags.h and tree-inline.h.
258         (ipa_node_params_vector): New variable.
259         (ipa_edge_args_vector): New variable.
260         (edge_removal_hook_holder): New variable.
261         (node_removal_hook_holder): New variable.
262         (edge_duplication_hook_holder): New variable.
263         (node_duplication_hook_holder): New variable.
264         (ipa_detect_param_modifications): Check for presence of modified flags.
265         (ipa_compute_jump_functions): Check for presence of jump functions.
266         (ipa_free_edge_args_substructures): New function.
267         (ipa_create_node_params): Removed.
268         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
269         (ipa_free_node_params_substructures): New function.
270         (ipa_free_all_node_params): Changed to deallocate the on-the-side
271         vector.
272         (ipa_edge_removal_hook): New function.
273         (ipa_node_removal_hook): New function.
274         (duplicate_array): New function.
275         (ipa_edge_duplication_hook): New function.
276         (ipa_node_duplication_hook): New function.
277         (ipa_register_cgraph_hooks): New function.
278         (ipa_unregister_cgraph_hooks): New function.
279         (free_all_ipa_structures_after_ipa_cp): New function.
280         
281         * ipa-prop.h: Include vec.h.
282         (ipa_node_params_t): New typedef with vector types for it.
283         (ipa_edge_args_t):  New typedef with vector types for it.
284         (IPA_NODE_REF): Changed to access an on-the-side vector.
285         (IPA_EDGE_REF): Changed to access an on-the-side vector.
286         (ipa_check_create_node_params): New function.
287         (ipa_check_create_edge_args): New function.
288         
289         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
290         all users.
291         
292 2008-07-07  Tom Tromey  <tromey@redhat.com>
293
294         * configure, config.in: Rebuilt.
295         * configure.ac: Don't check for scandir or alphasort.
296
297 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
298
299         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
300         types immediately after creating them.
301
302 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
303
304         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
305
306 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
307
308         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
309         dump_constraint_graph.
310         (dump_constraint_edge): New function.
311         (dump_constraint_graph): New function.
312         (debug_constraint_graph): New function.
313         (dump_constraint): Removed useless comparison.
314         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
315         (dump_constraint_graph): Declare.
316         (debug_constraint_graph): Declare.
317         * tree-dump.c (struct dump_option_value_info): Declare
318         TDF_GRAPH.
319
320 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
321
322         * config/i386/i386.c (is_va_list_char_pointer): New.
323         (ix86_va_start): Replace compare with ms_va_list_type_node
324         by is_va_list_char_pointer.
325         (ix86_gimplify_va_arg): Likewise.
326
327 2008-07-07  Martin Jambor  <mjambor@suse.cz>
328
329         * cgraph.c (cgraph_edge_max_uid): New variable.
330         (struct cgraph_edge_hook_list): New type.
331         (struct cgraph_node_hook_list): New type.
332         (struct cgraph_2edge_hook_list): New type.
333         (struct cgraph_2node_hook_list): New type.
334         (first_cgraph_edge_removal_hook): New variable.
335         (first_cgraph_node_removal_hook): New variable.
336         (first_cgraph_edge_duplicated_hook): New variable.
337         (first_cgraph_node_duplicated_hook): New variable.
338         (cgraph_add_edge_removal_hook): New function.
339         (cgraph_remove_edge_removal_hook): New function.
340         (cgraph_call_edge_removal_hooks):  New function.
341         (cgraph_add_node_removal_hook):  New function.
342         (cgraph_remove_node_removal_hook):  New function.
343         (cgraph_call_node_removal_hooks):  New function.
344         (cgraph_add_edge_duplication_hook):  New function.
345         (cgraph_remove_edge_duplication_hook):  New function.
346         (cgraph_call_edge_duplication_hooks):  New function.
347         (cgraph_add_node_duplication_hook):  New function.
348         (cgraph_remove_node_duplication_hook):  New function.
349         (cgraph_call_node_duplication_hooks):  New function.
350         (cgraph_create_edge): Assign to edge uid.
351         (cgraph_remove_edge): Call edge removal hooks.
352         (cgraph_node_remove_callees): Call edge removal hooks.
353         (cgraph_node_remove_callers): Call edge removal hooks.
354         (cgraph_remove_node): Call node removal hooks.
355         (cgraph_clone_edge): Call edge duplication hooks.
356         (cgraph_clone_node): Call node duplication hooks.
357
358         * cgraph.h (cgraph_edge): New field uid.
359         (cgraph_edge_hook): New type.
360         (cgraph_node_hook): New type.
361         (cgraph_2edge_hook): New type.
362         (cgraph_2node_hook): New type.
363
364 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
365
366         * config.in: Regenerate.
367
368 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
369
370         * gcc.c (print_sysroot): New.
371         (option_map, display_help, process_command): Handle the
372         -print-sysroot option.
373         (main): Print the sysroot if requested.
374         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
375         
376 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
377
378         PR target/34780
379         * unwind-pe.h (size_of_encoded_value): add attribute unused.
380
381 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
382
383         * function.c (assign_parm_remove_parallels): Check mode of
384         entry_parm.
385         (assign_parm_setup_block_p): Also check mode of entry_parm.
386
387 2008-07-07  Richard Guenther  <rguenther@suse.de>
388
389         * tree-ssa-structalias.h (set_used_smts): Remove.
390         * tree-ssa-structalias.c (used_smts): Likewise.
391         (set_used_smts): Likewise.
392         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
393         call to set_used_smts.
394
395 2008-07-07  Richard Guenther  <rguenther@suse.de>
396
397         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
398         (new_var_info): Set it to false.
399         (solution_set_add): Correctly handle pointers outside a var and
400         inside a field.
401         (type_safe): Treat variables with is_full_var properly.
402         (do_sd_constraint): Likewise.
403         (do_ds_constraint): Likewise.
404         (process_constraint): Remove zeroing offset for !use_field_sensitive.
405         (get_constraint_for_ptr_offset): New function.
406         (get_constraint_for_component_ref): For addresses at least include
407         the last field of the variable.  Handle is_full_vars properly.
408         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
409         (handle_ptr_arith): Remove.
410         (find_func_aliases): Simplify assignment handling.
411         (create_function_info_for): For parameter and result varinfos set
412         is_full_var flag.
413         (create_variable_info_for): Set is_full_var flag whenever we
414         just created a single varinfo for a decl.
415         (init_alias_vars): Initialize use_field_sensitive from
416         max-fields-for-field-sensitive parameter.
417
418 2008-07-07  Richard Guenther  <rguenther@suse.de>
419
420         PR tree-optimization/36713
421         * tree-flow-inline.h (is_call_used): New function.
422         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
423         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
424         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
425
426 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
427
428         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
429         
430 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
431
432         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
433
434 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
435             Nathan Sidwell  <nathan@codesourcery.com>
436
437         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
438         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
439         tmake_file.
440         * config/m68k/t-linux: New.
441         * doc/install.texi: Document m68k-*-linux is now multilibbed by
442         default.
443
444 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
445
446         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
447         * config/m68k/m68k-devices.def: Remove multilibs that only differ
448         by MAC/EMAC.
449
450 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
451
452         * gcc.c (execute): Fix -Wc++-compat warning.
453
454 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
455
456         PR target/36720
457         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
458         constant for little endian.
459
460 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
461
462         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
463         mips_base_mips16 instead of TARGET_MIPS16.
464         (mips_base_mips16): Declare.
465         * config/mips/mips.c (mips_base_mips16): Make global.
466         (was_mips16_p): Remove GTY marker.
467         (was_mips16_pch_p): New variable.
468         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
469         (mips_override_options): Force to non-MIPS16 mode initially.
470         Do not complain about MIPS16 PIC incompatibilities here.
471         Only allow -mgpopt if -mexplicit-relocs is in force for
472         non-MIPS16 code.
473
474 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
475
476         * configure.ac: Check for caddr_t, define to char * if not defined.
477         * configure: Regenerate.
478         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
479         (mmap_gt_pch_use_address): Likewise.
480         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
481
482 2008-07-06  Richard Guenther  <rguenther@suse.de>
483
484         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
485         (new_var_info): Deal with it.
486         (solution_set_add): Likewise.
487         (bitpos_of_field): Make signed, fix.
488         (struct fieldoff): Remove type and decl fields.  Make size field
489         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
490         flags.
491         (fieldoff_compare): Deal with it.
492         (push_fields_onto_fieldstack): Remove has_union argument, glob
493         adjacent non-pointer fields together.
494         (create_function_info_for): Do not set has_union.
495         (create_variable_info_for): Simplify.
496
497 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
498
499         * config.gcc (extra_headers): Add cross-stdarg.h for target
500         x86_64-*-* and i?86-*-*.
501         * config/i386/cross-stdarg.h: New.
502         * builtins.c (std_fn_abi_va_list): New.
503         (std_canonical_va_list_type): New.
504         (stabilize_va_list): Replace va_list_type_node use by
505         mtarget.canonical_va_list_type.
506         (gimplify_va_arg_expr): Likewise.
507         (expand_builtin_va_copy): Replace va_list_type_node use by
508         mtarget.fn_abi_va_list.
509         * tree-sra.c (is_va_list_type): New helper.
510         (decl_can_be_decomposed_p): Replace
511         va_list_type_node use by is_va_list_type.
512         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
513         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
514         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
515         * config/i386/i386-protos.h (ix86_get_valist_type): New.
516         (ix86_enum_va_list): New.
517         * config/i386/i386.c (sysv_va_list_type_node): New.
518         (ms_va_list_type_node): New.
519         (ix86_function_type_abi): Remove sorry.
520         (ix86_build_builtin_va_list_abi): New.
521         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
522         for 64-bit targets.
523         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
524         (ix86_init_builtins_va_builtins_abi): New.
525         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
526         for 64-bit targets.
527         (ix86_handle_abi_attribute): New.
528         (attribute_spec): Add sysv_abi and ms_abi.
529         (ix86_fn_abi_va_list): New.
530         (ix86_canonical_va_list_type): New.
531         (ix86_enum_va_list): New.
532         (TARGET_FN_ABI_VA_LIST): New.
533         (TARGET_CANONICAL_VA_LIST_TYPE): New.
534         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
535         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
536         (TARGET_CANONICAL_VA_LIST_TYPE): New.
537         (TARGET_ENUM_VA_LIST): New.
538         * expr.h (std_fn_abi_va_list): New.
539         (std_canonical_va_list_type): New.
540         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
541         (TARGET_CANONICAL_VA_LIST_TYPE): New.
542         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
543         TARGET_CANONICAL_VA_LIST_TYPE.
544         * target.h (struct gcc_target): Add fn_abi_va_list hook
545         and canonical_va_list_type hook.
546
547 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
548
549         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
550         integral and pointer types.
551
552 2008-07-04  Roger Sayle  <roger@eyesopen.com>
553
554         * config/rs6000/host-darwin.c (darwin_rs6000_extra_siganls): Cast
555         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
556
557 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
558
559         PR target/36684
560         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns
561         for PIC.
562
563 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
564
565         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
566         build_gimple_modify_stmt.
567         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
568         gimple operand.  Use fold_build* instead of build*.
569
570 2008-07-04  Richard Guenther  <rguenther@suse.de>
571
572         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
573         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
574         properly to compute the reachability set if we do field-sensitive PTA.
575         * invoke.texi (max-fields-for-field-sensitive): Document default.
576         * opts.c (decode_options): Set max-fields-for-field-sensitive to
577         100 for optimize >= 2.
578
579 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
580
581         * ggc-zone.c (lookup_page_table_if_allocated,
582         set_page_table_entry, zone_find_object_size, alloc_small_page,
583         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
584         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
585         -Wc++-compat and/or -Wcast-qual warnings.
586
587 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
588
589         PR target/36634
590         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
591         pic_offset_table_rtx to be marked as used here.
592         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
593         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
594         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
595         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
596         !TARGET_SECURE_PLT.
597
598 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
599
600         * alloc-pool.c (hash_descriptor, eq_descriptor,
601         alloc_pool_descriptor): Fix -Wc++-compat warnings.
602         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
603         Likewise.
604         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
605         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
606         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics):
607         Likewise.
608         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
609         Likewise.
610
611 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
612
613         * tree-flow.h (loop_only_exit_p): Declare.
614         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
615         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
616         the number of iterations if it is constant.  Otherwise, if this is the
617         only possible exit of the loop, use the conservative estimate on the
618         number of iterations of the entire loop if available.
619
620 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
621
622         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
623         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
624         Add synchronization functions.
625         * config/sync.c: New file.
626         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
627         (LIBGCC_SYNC_CFLAGS): Likewise.
628
629 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
630
631         PR target/36710
632         * config/i386/i386.md (mode): Add TF to "mode" attribute.
633         (*pushtf_sse): New insn pattern.
634         (pushtf splitters): New splitters.
635
636 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
637
638         PR middle-end/35736
639         * predict.c (build_predict_expr): Use void_type_node for the tree
640         type, instead of NULL_TREE.
641
642 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
643
644         * config/i386/i386.c (contains_aligned_value_p): Return true
645         for TCmode.
646         (ix86_data_alignment): Align TCmode to 128bits.
647         (ix86_local_alignment): Likewise.
648
649 2008-07-03  Andrew Haley  <aph@redhat.com>
650
651         PR bootstrap/33304
652         * vec.h (VEC_TA): New.
653         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
654         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
655         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
656         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
657         (C_COMMON_FIXED_TYPES): Remove first arg.
658         (C_COMMON_FIXED_MODE_TYPES): Likewise.
659         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
660         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
661         not to use empty macro arguments.
662
663 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
664
665         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
666         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
667         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
668         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
669         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
670         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
671         config/ia64/crtn.asm, config/m68hc11/larith.asm,
672         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
673         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
674         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
675         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
676         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
677         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
678         config/rs6000/e500crtres64gpr.asm,
679         config/rs6000/e500crtres64gprctr.asm,
680         config/rs6000/e500crtrest32gpr.asm,
681         config/rs6000/e500crtrest64gpr.asm,
682         config/rs6000/e500crtresx32gpr.asm,
683         config/rs6000/e500crtresx64gpr.asm,
684         config/rs6000/e500crtsav32gpr.asm,
685         config/rs6000/e500crtsav64gpr.asm,
686         config/rs6000/e500crtsav64gprctr.asm,
687         config/rs6000/e500crtsavg32gpr.asm,
688         config/rs6000/e500crtsavg64gpr.asm,
689         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
690         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
691         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
692         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
693         config/sparc/sol2-cn.asm: Remove .file directives.
694
695 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
696
697         * resource.c (mark_referenced_resources): Look inside
698         UNSPEC_VOLATILEs and ASM_INPUTs.
699
700 2008-07-02  Ian Lance Taylor  <iant@google.com>
701
702         * rtlanal.c (add_reg_note): New function.
703         * rtl.h (add_reg_note): Declare.
704         * auto-inc-dec.c (attempt_change): Use add_reg_note.
705         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
706         * builtins.c (expand_builtin_longjmp): Likewise.
707         (expand_builtin_nonlocal_goto): Likewise.
708         * calls.c (emit_call_1, expand_call): Likewise.
709         * cfgexpand.c (add_reg_br_prob_note): Likewise.
710         * cfglayout.c (fixup_reorder_chain): Likewise.
711         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
712         (commit_one_edge_insertion): Likewise.
713         * combine.c (move_deaths, distribute_notes): Likewise.
714         * df-problems.c (df_set_note): Likewise.
715         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
716         (set_unique_reg_note): Likewise.
717         (emit_copy_of_insn_after): Likewise.
718         * expr.c (expand_expr_real): Likewise.
719         * gcse.c (add_label_notes): Likewise.
720         * haifa-sched.c (create_check_block_twin): Likewise.
721         * jump.c (mark_jump_label_1): Likewise.
722         * loop-doloop.c (add_test, doloop_modify): Likewise.
723         * loop-unswitch.c (compare_and_jump_seq): Likewise.
724         * lower-subreg.c (move_eh_region_note): Likewise.
725         * optabs.c (emit_libcall_block): Likewise.
726         * predict.c (predict_insn): Likewise.
727         (combine_predictions_for_insn): Likewise.
728         * recog.c (peephole2_optimize): Likewise.
729         * regmove.c (try_auto_increment): Likewise.
730         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
731         * reload.c (find_reloads): Likewise.
732         * reload1.c (fixup_eh_region_note): Likewise.
733         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
734         * reorg.c (delete_prior_computation): Likewise.
735         (delete_computation, dbr_schedule): Likewise.
736         * config/pa/pa.c (legitimize_pic_address): Likewise.
737         * config/sh/sh.c (sh_reorg): Likewise.
738
739 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
740
741         PR target/36669
742         * config/libgcc-glibc.ver: Add %exclude.
743         * config/m32r/libgcc-glibc.ver: Likwise.
744         * config/s390/libgcc-glibc.ver: Likwise.
745         * config/sh/libgcc-glibc.ver: Likwise.
746         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
747
748         * config/i386/libgcc-glibc.ver: New.
749
750         * config/i386/libgcc-x86_64-glibc.ver: Removed.
751
752 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
753
754         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
755         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
756         i[34567]86-*-linux*, x86_64-*-linux*.  Add
757         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
758         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
759         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
760         i[34567]86-*-linux*, x86_64-*-linux*.
761
762         * libgcc-std.ver: Add empty GCC_4.4.0.
763
764         * mkmap-symver.awk: Support multiple versions per symbol.
765
766         * config/i386/i386.c (ix86_init_builtins): Always define
767         __builtin_fabsq and __builtin_copysignq with fallbacks.
768         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
769         and __builtin_copysignq if SSE2 isn't available.
770
771         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
772         (LIBGCC2_TF_CEXT): Likwise.
773         (TF_SIZE): Likwise.
774
775         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
776
777         * config/i386/sfp-machine.h: Moved to libgcc.
778
779         * config/i386/sfp-machine.h: New.
780         * config/i386/t-linux: Likwise.
781
782         * config/i386/t-darwin: Remove softfp_wrap_start and
783         softfp_wrap_end.
784         * config/i386/t-darwin64: Likewise.
785
786         * config/i386/t-fprules-softfp64: Renamed to ...
787         * config/i386/t-fprules-softfp: This.
788
789         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
790         and softfp_wrap_end.
791
792 2008-07-02  Jason Merrill  <jason@redhat.com>
793
794         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
795
796         * tree.c (ctor_to_list): New fn.
797         * tree.h: Declare it.
798         (CONSTRUCTOR_ELT): New macro.
799         (CONSTRUCTOR_NELTS): New macro.
800
801 2008-07-02  Richard Guenther  <rguenther@suse.de>
802
803         * tree-ssa-structalias.c (struct variable_info): Reorder
804         to fill padding on 64bit hosts.  Make collapsed_to an int.
805         (get_varinfo_fc): Deal with that.
806         (new_var_info): Likewise.
807         (collapse_rest_of_var): Likewise.
808
809 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
810
811         * doc/install.texi (--enable-java-home): Document.
812         (--enable-aot-compile-rpm): Likewise.
813         (--with-arch-directory): Likewise.
814         (--with-os-directory): Likewise.
815         (--with-origin-name): Likewise.
816         (--with-arch-suffix): Likewise.
817         (--with-jvm-root-dir): Likewise.
818         (--with-jvm-jar-dir): Likewise.
819         (--with-python-dir): Likewise.
820
821 2008-07-02  Richard Guenther  <rguenther@suse.de>
822
823         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
824         from decls explicitly.  Merge operand checking from tuples.
825
826 2008-07-02  Martin Jambor  <mjambor@suse.cz>
827
828         * tree-switch-conversion.c: Included timevar.h which I forgot before.
829         
830 2008-07-02  Martin Jambor  <mjambor@suse.cz>
831
832         * tree-switch-conversion.c: Included timevar.h
833         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
834
835         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
836
837 2008-07-02  Martin Jambor  <mjambor@suse.cz>
838
839         * tree-switch-conversion.c: Corrected various comments and
840         whitespace issues
841         (build_constructors): Fixed minor formatting mistakes.
842
843         * invoke.texi (Optimize Options): Corrected the
844         switch-conversion-max-branch-ratio parameter.
845
846 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
847
848         * final.c (asm_insn_count): Return zero for an empty asm body.
849
850 2008-07-02  Richard Guenther  <rguenther@suse.de>
851
852         * bitmap.h (bitmap_set_bit): Return bool.
853         (bitmap_clear_bit): Likewise.
854         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
855         write to the bitmap if it would.
856         (bitmap_clear_bit): Likewise.
857         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
858         bitmap_set_bit return value.
859         (add_pred_graph_edge): Likewise.
860         (add_graph_edge): Likewise.
861         (do_sd_constraint): Likewise.
862         (do_ds_constraint): Likewise.
863
864 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
865
866         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
867         Fix -Wc++-compat and/or -Wcast-qual warnings.
868         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
869         gen_regparm_prefix): Likewise.
870         * vmsdbgout.c (write_modbeg, lookup_filename,
871         vmsdbgout_source_line, vmsdbgout_init): Likewise.
872
873 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
874
875         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
876         defaults.h definition apply.
877
878 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
879
880         * function.c (assign_parm_remove_parallels): New.
881         (assign_parm_setup_block_p): Do not return true for non-BLKmode
882         PARALLELs.
883         (assign_parm_setup_block): Do not handle them.
884         (assign_parm_setup_reg, assign_parm_setup_stack): Call
885         assign_parm_remove_parallels.
886
887 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
888
889         * c-typeck.c (convert_for_assignment): Use
890         vector_targets_convertible_p.
891         * c-common.c (vector_targets_convertible_p): New.
892         * c-common.h (vector_targets_convertible_p): New prototype.
893         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
894         opaque_p_V2SI_type_node.
895
896 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
897
898         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
899         RFmode constants.
900
901 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
902
903         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
904         TFmode constants via two element DImode vector for hosts with
905         HOST_BITS_PER_WIDE_INT < 64.
906         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
907         also for HOST_BITS_PER_WIDE_INT < 64.
908
909 2008-07-01  Richard Guenther  <rguenther@suse.de>
910
911         PR tree-optimization/36666
912         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
913         (get_constraint_exp_from_ssa_var): Split into ...
914         (get_constraint_exp_for_temp): ... this ...
915         (get_constraint_for_ssa_var): ... and that.
916         Return constraint expressions for all touched sub-fields
917         if the results address is not taken.
918         (process_constraint): Remove assertion that aggregate
919         assignments do not happen at this place.
920         (get_constraint_for_component_ref): Add address_p argument.
921         Return constraint expressions for all touched sub-fields
922         if the results address is not taken.
923         (do_deref): Use get_constraint_exp_for_temp.
924         (get_constraint_for_1): Rename from ...
925         (get_constraint_for): ... this.  Add the old function as wrapper.
926         (do_structure_copy): Use get_constraint_for_1.
927
928 2008-07-01  Martin Jambor  <mjambor@suse.cz>
929
930         * Makefile.in (tree-switch-conversion.o): Add.
931         (OBJS-common): Add tree-swtch-conversion.o.
932         * passes.c (init_optimization_passes): Add pass_convert_switch.
933         * tree-pass.h: (pass_convert_switch): Add.
934         * tree-switch-conversion.c: New file.
935         * gcc.dg/tree-ssa/cswtch.c: New testcase.
936         * common.opt (ftree-cswtch): New option.
937         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
938         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
939         * opts.c (decode_options): Set flag_tree_switch_conversion when
940         optimization level is >= 2.
941         * doc/invoke.texi (Optimize Options): Added description of
942         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
943
944 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
945
946         * config/darwin-driver.c (darwin_default_min_version): Fix
947         -Wc++-compat warnings.
948
949 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
950
951         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
952         of operand 0.
953
954 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
955
956         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
957         
958 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
959
960         PR rtl-optimization/34744
961         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
962         (df_scan_free_internal): Free data structures not
963         allocated in storage pools.
964         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
965         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
966         df_scan_free_mws_vec.
967         * dse.c (dse_step6): Free offset_map_p and offset_map_n
968         unconditionally.
969
970 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
971
972         * config/i386/i386.c (contains_aligned_value_p): Return true
973         for __float128.
974         (ix86_function_arg_boundary): Return its natural boundary
975         for __float128.
976         (return_in_memory_32): Don't check TDmode.
977         (ix86_split_to_parts): Support splitting into 4 parts and
978         support TFmode for 32bit target.
979         (ix86_split_long_move): Support splitting into 4 parts.
980         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
981         for SSE2.
982         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
983         (ix86_init_builtins): Here.
984         (ix86_scalar_mode_supported_p): Always return true for TFmode.
985         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
986         'q' and 'w', respectively. 
987
988         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
989         TARGET_64BIT.
990         (movtf_internal): Likewise.
991         (<code>tf2): Likewise.
992         (*absnegtf2_sse): Likewise.
993         (copysign<mode>3): Likewise.
994         (copysign<mode>3_const): Likewise.
995         (copysign<mode>3_var): Likewise.
996         (define_split UNSPEC_COPYSIGN): Likewise.
997         * config/i386/sse.md (*nandtf3): Likewise.
998         (<code>tf3): Likewise.
999         (*<code>tf3): Likewise.
1000
1001 2008-06-30  Joey Ye  <joey.ye@intel.com>
1002             H.J. Lu  <hongjiu.lu@intel.com>
1003
1004         * global.c (compute_regsets): Set frame_pointer_needed here.
1005         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
1006
1007 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1008
1009         * doc/install.texi (specific): Expand Windows build notes.
1010
1011 2008-06-30  Ira Rosen  <irar@il.ibm.com>
1012
1013         PR tree-optimization/36648
1014         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
1015         number of prolog iterations by step. Fix the comment.
1016
1017 2008-06-30  Richard Guenther  <rguenther@suse.de>
1018
1019         PR middle-end/36671
1020         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
1021         handle calls from ECF_MALLOC functions.
1022         (handle_pure_call): ECF_MALLOC functions do not return
1023         call-used memory.
1024         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
1025
1026 2008-06-29  Andreas Schwab  <schwab@suse.de>
1027
1028         * config/m68k/m68k.c (print_operand): Always print a float
1029         constant in hex.
1030         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
1031         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
1032         Remove macros.
1033
1034         * config/rs6000/x-linux64: Remove never used file.
1035
1036 2008-06-29  Richard Guenther  <rguenther@suse.de>
1037
1038         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
1039         prototype.
1040         (struct alias_info): Move ...
1041         * tree-ssa-alias.c: ... here.
1042         (update_alias_info): Declare.
1043         (compute_may_aliases): Call it.
1044         (update_alias_info): New function.
1045         * tree-ssa-structalias.c (update_alias_info): Move ...
1046         * tree-ssa-alias.c (update_alias_info_1): ... here.
1047         * tree-ssa-structalias.c (process_constraint_1): Remove
1048         unused from_call argument.  Rename to ...
1049         (process_constraint): ... this.  Delete old wrapper.
1050         (make_constraint_to): Adjust callers.
1051         (handle_const_call): Likewise.
1052         (handle_pure_call): Likewise.
1053         (init_base_vars): Likewise.
1054         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
1055         (find_func_aliases): We don't need structure copies for
1056         complex types.
1057         (make_constraint_from_anything): Remove.
1058         (create_variable_info_for): For globals make constraints
1059         from escaped, not from anything.
1060         (compute_points_to_sets): Do not call update_alias_info.
1061         (ipa_pta_execute): Use make_constraint_from.
1062
1063 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1064
1065         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
1066         (bitmap.o-warn, dominance.o-warn): New.
1067         * configure.ac (cxx_compat_warn): Delete.
1068         (loose_warn): Add -Wcast-qual and -Wc++-compat.
1069         * system.h: Remove #pragma diagnostic for -Wcast-qual and
1070         -Wc++-compat.
1071         * configure: Regenerate.
1072
1073         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
1074         warnings.
1075
1076 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1077
1078         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
1079         * df-scan.c (df_notes_rescan): Likewise.
1080         * ggc-page.c (set_page_table_entry): Likewise.
1081         * intl.c (gcc_gettext_width): Likewise.
1082         * varasm.c (get_unnamed_section, get_noswitch_section,
1083         get_section): Likewise.
1084
1085 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
1086
1087         * regrename.c (build_def_use): Don't copy RTX.
1088
1089 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
1090
1091         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
1092         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
1093         punctuation.  Use @ref instead of @xref.
1094         (Function Names): Remove stray @display/@end display.
1095         (C++ Attributes): Use @ref instead of @xref.
1096         (Deprecated Features): Fix punctuation around @xref.
1097         (Backwards Compatibility): Likewise.
1098         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
1099
1100 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
1101
1102         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
1103         constants for E500 double.
1104
1105 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1106
1107         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
1108         element type of const_vector.
1109
1110 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
1111
1112         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
1113         Remove FLAGS_REG clobber from expander pattern.
1114         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
1115         (anddi3, andsi3, andhi3, andqi3): Ditto.
1116         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
1117         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
1118         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
1119         (ashlsi3, ashlhi3, ashlqi3): Ditto.
1120         (ashrsi3, ashrhi3, ashrqi3): Ditto.
1121         (lshrsi3, lshrhi3, lshrqi3): Ditto.
1122         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
1123         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
1124
1125 2008-06-28  Richard Guenther  <rguenther@suse.de>
1126
1127         * tree-ssa-structalias.c (callused_id, var_callused,
1128         callused_tree): Add.
1129         (handle_pure_call): New function.
1130         (find_func_aliases): Call it.
1131         (find_what_p_points_to): Handle the call-used set.
1132         (clobber_what_escaped): Likewise.
1133         (compute_call_used_vars): New function.
1134         (init_base_vars): Init the call-used variable.
1135         (do_sd_constraint): Do not propagate the solution from CALLUSED
1136         but use CALLUSED as a placeholder.
1137         (solve_graph): Likewise.
1138         * tree-flow-inline.h (gimple_call_used_vars): New function.
1139         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
1140         (compute_call_used_vars): Declare.
1141         * tree-ssa-alias.c (set_initial_properties): Call
1142         compute_call_used_vars.
1143         (reset_alias_info): Clear call-used variables.
1144         (add_call_clobber_ops): Assert we are not called for const/pure
1145         functions.  Remove handling of them.
1146         (add_call_read_ops): Handle pure functions by adding the
1147         call-used set of variables as VUSEs.
1148         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
1149         (delete_tree_ssa): Free it.
1150         * tree-dfa.c (remove_referenced_var): Clear the var from the
1151         call-used bitmap.
1152
1153 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
1154
1155         * tree.c (build_varargs_function_type_list): New.
1156         (build_function_type_list_1): New.
1157         (build_function_type_list): Use build_function_type_list_1.
1158         * tree.h (build_varargs_function_type_list): New.
1159
1160 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1161
1162         PR target/34856
1163         * config/spu/spu.c (spu_builtin_splats): Do not generate
1164         invalid CONST_VECTOR expressions.
1165         (spu_expand_vector_init): Likewise.
1166
1167 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
1168
1169         * optabs.c (libfunc_decls): New variable.
1170         (libfunc_decl_hash, libfunc_decl_eq): New functions.
1171         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
1172         for the same function twice.
1173
1174 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
1175
1176         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
1177         ix86_expand_binary_operator directly.
1178         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
1179         for operand 2.
1180         (*ashrti3_1): Ditto.
1181         (*lshrti3_1): Ditto.
1182         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
1183         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
1184         using only one splitter.  Conditionaly execute splitter before or
1185         after peephole2 pass.
1186         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
1187         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
1188         Use only one alternative in asm template.
1189         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
1190         in asm template.
1191         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
1192         "J" operand constraint for operand 2.
1193         (*ashldi3_cconly_rex64): Ditto.
1194         (*ashrdi3_cmp_rex64): Ditto.
1195         (*ashrdi3_cconly_rex64): Ditto.
1196         (*lshrdi3_cmp_rex64): Ditto.
1197         (*lshrdi3_cconly_rex64): Ditto.
1198         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
1199         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
1200         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
1201         gen_x86_shrd_1.
1202
1203 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
1204
1205         * gimplify.c (omp_is_private): Don't return true if decl is not
1206         already private on #pragma omp for or #pragma omp parallel for.
1207
1208         PR debug/36617
1209         * tree-cfg.c (struct move_stmt_d): Replace block field with
1210         orig_block and new_block fields.
1211         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
1212         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
1213         (move_block_to_fn): Replace vars_map and new_label_map arguments
1214         with struct move_stmt_d pointer.
1215         (replace_block_vars_by_duplicates): New function.
1216         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
1217         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
1218         all subblocks of ORIG_BLOCK to the new function.  Call
1219         replace_block_vars_by_duplicates.
1220         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
1221         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
1222         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
1223         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
1224         (expand_omp): Temporarily set input_location to the location of
1225         region's controlling stmt.
1226         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
1227         BIND_EXPR, push ctx->block_vars and gimplification vars into
1228         the BIND_EXPR and its block's BLOCK_VARS instead of directly
1229         into dest function.
1230         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
1231         there are any BLOCK_VARS.
1232         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
1233         OMP_PARALLEL or OMP_TASK stmt.
1234         (lower_omp): Save and restore input_location around the lower_omp_1
1235         call.
1236
1237 2008-06-27  Richard Guenther  <rguenther@suse.de>
1238
1239         PR tree-optimization/36400
1240         PR tree-optimization/36373
1241         PR tree-optimization/36344
1242         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
1243         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
1244         (update_alias_info): Remove call clobbering code.
1245         (make_constraint_to): New helper function.
1246         (make_escape_constraint): Likewise.
1247         (handle_rhs_call): Use it on all pointer containing arguments.
1248         Also mark the static chain escaped.
1249         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
1250         instead of ANYTHING.
1251         (make_constraint_from): New helper split out from ...
1252         (make_constraint_from_anything): ... here.
1253         (find_func_aliases): Add constraints for escape sites.
1254         (intra_create_variable_infos): Make constraints from NONLOCAL
1255         for parameters.
1256         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
1257         as ANYTHING.
1258         (clobber_what_p_points_to): Remove.
1259         (clobber_what_escaped): New function.
1260         (init_base_vars): Init NONLOCAL and ESCAPED.
1261         (do_sd_constraint): Do not propagate the solution from ESCAPED
1262         but use ESCAPED as a placeholder.
1263         (solve_graph): Likewise.
1264         * tree-flow.h (clobber_what_p_points_to): Remove.
1265         (clobber_what_escaped): Declare.
1266         * tree-ssa-alias.c (set_initial_properties): Call it.
1267         Remove code clobbering escaped pointers.
1268
1269 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
1270
1271         * function.c (allocate_struct_function): Only allocate a unique
1272         funcdef_no if the decl is nonzero.
1273
1274 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
1275
1276         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
1277         * config/mips/mips.c (mips_split_const_insns): New function.
1278         * config/mips/mips.md (move_type): New attribute.
1279         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
1280         (dword_mode): New attribute.
1281         (type): Avoid long line.  Map "move_type"s to "type"s,
1282         choosing "multi" for doubleword moves if appropriate.
1283         Swap MTC/MFC comments to match their declaration order.
1284         (extended_mips16): Default to "yes" if "move_type" is "sll0",
1285         "type" is "branch" or "jal" is "direct".
1286         (length): Handle "extended_mips16" first.  Make the default
1287         "0" for "ghost" instructions.  Set the length from "move_type".
1288         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
1289         of "type", with "sll0" for the register alternative.  Remove the
1290         "extended_mips16" attribute.
1291         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
1292         of "type", with "shift_shift" for the register alternative.
1293         Remove the "length" attribute.
1294         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
1295         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
1296         of "type", with "andi" for the register alternative.
1297         (*zero_extendqihi2): Likewise.
1298         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
1299         of "andi" instead of a "type" of "arith".
1300         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
1301         instead of "type".
1302         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
1303         (mov_<store>r, *mov<mode>_ra): Likewise.
1304         (extendsidi2): Use "move_type" instead of "type", with "move"
1305         for the register alternative.
1306         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
1307         of "type", with "signext" for the register alternative.
1308         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
1309         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
1310         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
1311         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
1312         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
1313         (unnamed branch insn): Likewise.
1314         (*movdi_gp32_fp64): Fold into...
1315         (*movdi_32bit): ...here.
1316         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
1317         (*movdf_hardfloat): ...this new pattern.
1318         (*movdf_softfloat): Remove redundant FPR alternatives.
1319         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
1320         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
1321         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
1322         the "move" attribute.
1323         (*movdi_32bit): Use "move_type" instead of "type" and remove the
1324         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
1325         and "store" for COP loads and stores.
1326         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
1327         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
1328         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
1329         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
1330         (*movtf_mips16, *movv2sf): Likewise.
1331         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
1332         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
1333         (mfhc1<mode>): Use "move_type" instead of "move".
1334         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
1335         (loadgp_blockage): Remove the "length" attribute.
1336         (blockage, set_got_version, update_got_version): Likewise.
1337         (call_internal): Remove the "extended_mips16" attribute.
1338         (call_value_internal, call_value_multiple_internal): Likewise.
1339         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
1340         instead of "move".
1341         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
1342         the "length" attribute.
1343
1344 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1345
1346         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
1347         -Wcast-qual warnings.
1348         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
1349         handle_pragma_pop_macro): Likewise.
1350         * collect2.c (resolve_lib_name): Likewise.
1351         * config/arc/arc.c (arc_init): Likewise.
1352         * config/arm/arm.c (neon_builtin_compare,
1353         locate_neon_builtin_icode): Likewise.
1354         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
1355         * config/bfin/bfin.c (bfin_init_machine_status,
1356         bfin_optimize_loop): Likewise.
1357         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1358         * config/cris/cris.c (cris_init_expanders): Likewise.
1359         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
1360         * config/darwin.c (machopic_indirection_eq,
1361         machopic_indirection_name, machopic_output_indirection): Likewise.
1362         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
1363         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
1364         frv_optimize_membar): Likewise.
1365         * config/i386/cygwin.h (mingw_scan,
1366         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
1367         * config/i386/cygwin1.c (mingw_scan): Likewise.
1368         * config/i386/i386.c (machopic_output_stub): Likewise.
1369         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
1370         i386_pe_unique_section): Likewise.
1371         * config/ia64/ia64.c (ia64_init_machine_status,
1372         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
1373         Likewise.
1374         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
1375         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
1376         * config/m68k/m68k.c (m68k_handle_option,
1377         m68k_sched_md_init_global): Likewise.
1378         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
1379         mcore_unique_section): Likewise.
1380         * config/mips/mips.c (mips_block_move_straight,
1381         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
1382         Likewise.
1383         * config/mmix/mmix.c (mmix_init_machine_status,
1384         mmix_encode_section_info): Likewise.
1385         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
1386         * config/rs6000/rs6000.c (rs6000_init_machine_status,
1387         print_operand_address, output_toc, redefine_groups,
1388         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
1389         * config/s390/s390.c (s390_init_machine_status): Likewise.
1390         * config/score/score.c (score_block_move_straight,
1391         score_block_move_loop_body): Likewise.
1392         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
1393         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1394         * emit-rtl.c (find_auto_inc): Likewise.
1395         * gcc.c (translate_options, process_command): Likewise.
1396         * reorg.c (dbr_schedule): Likewise.
1397         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
1398         * xcoffout.c (xcoffout_declare_function): Likewise.
1399
1400 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
1401
1402         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
1403         ipa-pta working again.
1404
1405 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
1406
1407         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
1408         genautomata.
1409
1410 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
1411
1412         * config.gcc (powerpc*-*-*): Add new core e500mc.
1413         * config/rs6000/e500mc.md: New file.
1414         * config/rs6000/rs6000.c (processor_costs): Add new costs for
1415         e500mc.
1416         (rs6000_override_options): Add e500mc case to
1417         processor_target_table. Altivec and Spe options not allowed
1418         with e500mc. Add isel instruction to e500mc by
1419         default. Initialize rs6000_cost for e500mc.
1420         (rs6000_issue_rate): Set issue rate for e500mc.
1421         * config/rs6000/rs6000.h (processor_type): Add
1422         PROCESSOR_PPCE500MC.
1423         (ASM_CPU_SPEC): Add e500mc.
1424         Set TARGET_ISEL to rs6000_isel.
1425         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
1426         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
1427         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
1428         Include e500mc.md.
1429         * doc/invoke.texi: Add e500mc to list of cpus.
1430
1431 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1432
1433         PR c/34867
1434         * c-lex.c (lex_charconst): Initialize unsignedp.
1435
1436 2008-06-27  Olivier Hainque  <hainque@adacore.com>
1437
1438         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
1439         documented assumptions.
1440
1441 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
1442
1443         * dwarf2out.c: Remove trailing white spaces.  Break long line
1444         in comments.
1445
1446 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
1447
1448         * libfuncs.h (LTI_synchronize): New libfunc_index.
1449         (synchronize_libfunc): Declare.
1450         * builtins.c (expand_builtin_synchronize): Consider using
1451         synchronize_libfunc before falling back on an asm blockage.
1452         * config/mips/mips.c: Include libfuncs.h
1453         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
1454
1455 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
1456
1457         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
1458         parameter.  Copy stack_reg to r11 where appropriate.
1459         (no_global_regs_above): Add gpr parameter.
1460         (rs6000_stack_info): Only add padding for SPE save area if we
1461         are saving SPE GPRs and CR.
1462         (saveres_routine_syms): New variable.
1463         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
1464         Define.
1465         (rs6000_savres_routine_sym): New function.
1466         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
1467         split out of...
1468         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
1469         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
1470         Tweak FPR out-of-line saving.
1471         (rs6000_make_savres_rtx): New function.
1472         (rs6000_use_multiple_p): New function.
1473         (rs6000_savres_strategy): New function.
1474         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
1475         out-of-line if appropriate.
1476         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
1477         if we are optimizing for size.
1478         (GP_SAVE_INLINE): Define.
1479         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
1480         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
1481         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
1482         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
1483         (*save_fpregs_<mode>): Add use of r11.
1484         (*restore_gpregs_<mode>): New insn.
1485         (*return_and_restore_gpregs_<mode>): New insn.
1486         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
1487         use r11.
1488         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
1489         (*restore_gpregs_spe): New insn.
1490         (*return_and_restore_gpregs_spe): New insn.
1491         * config/rs6000/predicates.md (save_world_operation): Fix check.
1492
1493 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
1494
1495         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
1496         this point, so assert that.
1497
1498 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
1499
1500         * cfganal.c: Include vec.h and vecprim.h.
1501         (compute_idf): Import from...
1502         * tree-into-ssa (compute_idf): ...here.
1503         * basic-block.h (compute_idf): Export.
1504
1505 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
1506
1507         * c-decl.c (merge_decls): Use !current_function_decl to check for
1508         extern declaration of C99 inline function being at file scope.
1509
1510 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
1511
1512         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
1513
1514 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1515
1516         * alias.c (record_alias_subset, init_alias_analysis): Fix
1517         -Wc++-compat and/or -Wcast-qual warnings.
1518         * attribs.c (lookup_attribute_spec): Likewise.
1519         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
1520         copy_bb, connect_traces,
1521         find_rarely_executed_basic_blocks_and_cr): Likewise.
1522         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
1523         note_btr_set, migrate_btr_defs): Likewise.
1524         * builtins.c (result_vector, expand_builtin_memcpy,
1525         expand_builtin_mempcpy_args, expand_builtin_strncpy,
1526         builtin_memset_read_str, expand_builtin_printf,
1527         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
1528         Likewise.
1529         * caller-save.c (mark_set_regs): Likewise.
1530         * calls.c (expand_call, emit_library_call_value_1): Likewise.
1531         * cgraph.c (cgraph_edge): Likewise.
1532         * combine.c (likely_spilled_retval_1): Likewise.
1533         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
1534         htab_counts_entry_del, get_coverage_counts): Likewise.
1535         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
1536         new_cselib_val): Likewise.
1537         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
1538         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
1539         Likewise.
1540         * df-core.c (df_compact_blocks): Likewise.
1541         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
1542         * df-scan.c (df_grow_reg_info, df_ref_create,
1543         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
1544         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
1545         df_record_entry_block_defs, df_record_exit_block_uses,
1546         df_bb_verify): Likewise.
1547         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
1548         DF_REF_EXTRACT_MODE_CONST): New.
1549         * dominance.c (get_immediate_dominator, get_dominated_by,
1550         nearest_common_dominator, root_of_dom_tree,
1551         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
1552         -Wc++-compat and/or -Wcast-qual warnings.
1553         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
1554         record_store, replace_read, check_mem_read_rtx, scan_insn,
1555         dse_step1, dse_record_singleton_alias_set): Likewise.
1556         * dwarf2asm.c (dw2_force_const_mem): Likewise.
1557
1558 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1559
1560         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
1561         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
1562         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
1563         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
1564         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
1565         add_ranges_num, add_ranges_by_labels, file_info_cmp,
1566         file_name_acquire, output_file_names, add_const_value_attribute,
1567         premark_used_types_helper, file_table_eq, file_table_hash,
1568         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
1569         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
1570         -Wcast-qual warnings.
1571         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
1572         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
1573         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
1574         gen_reg_rtx, start_sequence, init_emit): Likewise.
1575         * et-forest.c (et_new_occ, et_new_tree): Likewise.
1576         * except.c (init_eh_for_function, gen_eh_region,
1577         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
1578         arh_to_landing_pad, arh_to_label, add_action_record,
1579         add_call_site, switch_to_exception_section): Likewise.
1580         * expmed.c (synth_mult): Likewise.
1581         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
1582         store_expr): Likewise.
1583         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
1584         Likewise.
1585         * function.c (assign_stack_temp_for_type,
1586         allocate_struct_function, match_asm_constraints_1): Likewise.
1587         * gcov-io.c (gcov_allocate): Likewise.
1588         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
1589         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
1590         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
1591         record_one_set, insert_expr_in_table, insert_set_in_table,
1592         dump_hash_table, compute_hash_table_work, alloc_hash_table,
1593         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
1594         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
1595         -Wcast-qual warnings.
1596
1597 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1598
1599         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
1600         -Wcast-qual warnings.
1601         * gcc.c (process_command): Likewise.
1602         * genattrtab.c (oballoc): Use XOBNEW.
1603         (oballocvec): Define.
1604         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
1605         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
1606         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
1607         -Wc++-compat and/or -Wcast-qual warnings.
1608         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
1609         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
1610         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
1611         gen_presence_absence_set, gen_automaton, gen_regexp_el,
1612         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
1613         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
1614         add_excls, process_presence_absence_names,
1615         process_presence_absence_patterns, add_presence_absence,
1616         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
1617         get_free_state, add_arc, get_free_automata_list_el,
1618         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
1619         transform_3, cache_presence, create_ainsns, create_automata,
1620         create_state_ainsn_table, dfa_insn_code_enlarge,
1621         output_trans_func, output_min_issue_delay_func,
1622         output_dead_lock_func, output_reset_func,
1623         output_get_cpu_unit_code_func, output_dfa_start_func,
1624         expand_automata): Likewise.
1625         * genextract.c (gen_insn): Likewise.
1626         * gengtype-lex.l: Likewise.
1627         * gengtype.c (read_input_list, adjust_field_type,
1628         process_gc_options): Likewise.
1629         * genoutput.c (note_constraint): Likewise.
1630         * genpreds.c (mangle, add_constraint): Likewise.
1631         * genrecog.c (process_define_predicate, new_decision,
1632         add_to_sequence): Likewise.
1633         * gensupport.c (record_insn_name): Likewise.
1634
1635 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1636
1637         * config/i386/driver-i386.c (detect_caches_amd,
1638         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
1639         and/or -Wcast-qual warnings.
1640         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
1641         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
1642         gt_pch_save): Likewise.
1643         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
1644         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
1645         * global.c (compute_regsets): Likewise.
1646         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
1647         finish_graph_dump_file): Likewise.
1648         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
1649         unlink_bb_notes): Likewise.
1650         * integrate.c (get_hard_reg_initial_val): Likewise.
1651         * ipa-prop.c (ipa_push_func_to_list): Likewise.
1652         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
1653         * local-alloc.c (update_equiv_regs): Likewise.
1654         * loop-invariant.c (check_invariant_table_size,
1655         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
1656         Likewise.
1657         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
1658         altered_reg_used, mark_altered): Likewise.
1659         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
1660         insert_var_expansion_initialization,
1661         combine_var_copies_in_loop_exit, apply_opt_in_copies,
1662         release_var_copies): Likewise.
1663         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
1664         analyze_matrix_decl, add_allocation_site, analyze_transpose,
1665         analyze_accesses_for_phi_node, check_var_notmodified_p,
1666         check_allocation_function, find_sites_in_func,
1667         record_all_accesses_in_func, transform_access_sites,
1668         transform_allocation_sites): Likewise.
1669         * omp-low.c (new_omp_region, create_omp_child_function_name,
1670         check_omp_nesting_restrictions, check_combined_parallel,
1671         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
1672         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
1673         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
1674         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
1675         Likewise.
1676         * opts-common.c (prune_options): Likewise.
1677         * opts.c (add_input_filename, print_filtered_help,
1678         get_option_state): Likewise.
1679         * params.c (add_params): Likewise.
1680         * passes.c (set_pass_for_id, next_pass_1,
1681         do_per_function_toporder, pass_fini_dump_file): Likewise.
1682         * postreload.c (reload_cse_simplify_operands): Likewise.
1683         * predict.c (tree_predicted_by_p, tree_predict_edge,
1684         clear_bb_predictions, combine_predictions_for_bb): Likewise.
1685
1686 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1687
1688         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
1689         warnings.
1690         * recog.c (check_asm_operands, validate_change_1): Likewise.
1691         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
1692         subst_asm_stack_regs): Likewise.
1693         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
1694         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
1695         * regmove.c (reg_is_remote_constant_p): Likewise.
1696         * regrename.c (regrename_optimize, scan_rtx_reg,
1697         kill_clobbered_value, kill_set_value, kill_autoinc_value):
1698         Likewise.
1699         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
1700         regstat_compute_calls_crossed): Likewise.
1701         * reload1.c (init_reload, new_insn_chain,
1702         has_nonexceptional_receiver, reload, copy_reloads,
1703         calculate_needs_all_insns, init_elim_table): Likewise.
1704         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
1705         * rtl.c (shallow_copy_rtx_stat): Likewise.
1706         * rtlanal.c (parms_set): Likewise.
1707         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
1708         sbitmap_resize, sbitmap_vector_alloc): Likewise.
1709         * sched-ebb.c (earliest_block_with_similiar_load,
1710         add_deps_for_risky_insns): Likewise.
1711         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
1712         schedule_region): Likewise.
1713         * see.c (eq_descriptor_pre_extension,
1714         hash_descriptor_pre_extension, hash_del_pre_extension,
1715         eq_descriptor_properties, hash_descriptor_properties,
1716         hash_del_properties, see_seek_pre_extension_expr,
1717         see_initialize_data_structures, see_print_register_properties,
1718         see_print_pre_extension_expr, see_delete_merged_def_extension,
1719         see_delete_unmerged_def_extension, see_emit_use_extension,
1720         see_pre_delete_extension, see_map_extension, see_commit_changes,
1721         see_analyze_merged_def_local_prop,
1722         see_analyze_merged_def_local_prop,
1723         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
1724         see_set_prop_merged_def, see_set_prop_unmerged_def,
1725         see_set_prop_unmerged_use, see_print_one_extension,
1726         see_merge_one_use_extension, see_merge_one_def_extension,
1727         see_store_reference_and_extension, see_update_uses_relevancy,
1728         see_update_defs_relevancy): Likewise.
1729         * statistics.c (hash_statistics_hash, hash_statistics_eq,
1730         hash_statistics_free, curr_statistics_hash): Likewise.
1731         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
1732         expand_asm_operands, expand_return, case_bit_test_cmp,
1733         expand_case): Likewise.
1734         * stor-layout.c (start_record_layout): Likewise.
1735         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
1736         gt_pch_save_stringpool): Likewise.
1737         * tree-data-ref.c (hash_stmt_vertex_info,
1738         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
1739         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
1740
1741 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
1742
1743         PR target/36627
1744         * config/i386/i386.md : Change constraints of HImode and QImode
1745         immediate operands from "i" to "n".  Change SImode "ni" constraint to
1746         "i" and SImode "rmi" constraint to "g".  Remove all constraints
1747         from const0_operand and const1_operand predicated operands.
1748         (i): Change QImode and HImode attribute from "i" to "n".
1749         (*subqi_2): Change HImode operands to QImode.
1750         (*subqi_3): Ditto.
1751
1752 2008-06-25  Olivier Hainque  <hainque@adacore.com>
1753
1754         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
1755         sed substitutions.
1756
1757 2008-06-25  Richard Guenther  <rguenther@suse.de>
1758
1759         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
1760         not overflow the result type.
1761
1762 2008-06-25  Richard Guenther  <rguenther@suse.de>
1763
1764         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
1765         (vn_lookup): Likewise.
1766
1767 2008-06-25  Richard Guenther  <rguenther@suse.de>
1768
1769         PR tree-optimization/35518
1770         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
1771         * tree-sra.c (instantiate_element): Use fold_build3 to build
1772         BIT_FIELD_REFs.
1773         (try_instantiate_multiple_fields): Likewise.
1774
1775 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1776
1777         * config/rs6000/rs6000.md: Change all string instruction's clobber to
1778         be early clobbers.
1779
1780 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1781
1782         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
1783         use_backchain_to_restore_sp to true
1784         if the offset of the link register save area would go over the 32k - 1
1785         offset limit of the load
1786         instructions.
1787
1788 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
1789
1790         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
1791         anchor for the type-punning blurb.  Cross-reference "Structures
1792         unions enumerations and bit-fields implementation".  Provide a
1793         cast-through-pointer example.  Make final sentence self-contained.
1794         * doc/implement-c.texi (Structures unions enumerations and
1795         bit-fields implementation): Cross-reference the type-punning blurb
1796         in the -fstrict-aliasing documentation.
1797
1798 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1799
1800         PR middle-end/36594
1801         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
1802         the memory instead of the memory itself for the save area.
1803
1804 2008-06-24  Olivier Hainque  <hainque@adacore.com>
1805             Nicolas Roche  <roche@adacore.com>
1806
1807         * gengtype.c (srcdir_len): size_t instead of int.
1808         (get_file_realbasename): New function.  For F a filename, the real
1809         basename of F, with all the path components stripped.
1810         (get_file_srcdir_relative_path): New function.  For F a filename, the
1811         relative path to F from $(srcdir).
1812         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
1813         get_file_realbasename.  Adjust the head comment.
1814         (get_prefix_langdir_index): New function. For F a filename, return the
1815         lang_dir_names[] relative index of the language directory that is
1816         a prefix in F.
1817         (get_file_langdir): For F a filename, return the name of the language
1818         directory where F is located.
1819         (get_file_gtfilename): New function. The gt- output file name for an
1820         input filename F.
1821         (get_output_file_with_visibility): Replace in-line computations with
1822         uses of get_file_gtfilename and get_prefix_langdir_index.
1823         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
1824
1825 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
1826
1827         PR tree-optimization/36504
1828         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
1829         references without base address.
1830
1831 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
1832
1833         PR middle-end/36584
1834         * calls.c (expand_call): Increase alignment for recursive functions.
1835
1836 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
1837
1838         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
1839         (TARGET_FUNCTION_VALUE): New define.
1840         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
1841         * config/avr/avr.h (FUNCTION_VALUE): Remove.
1842
1843 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
1844
1845         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
1846         (fmod<mode>3): Ditto.
1847         (remainderxf3): Ditto.
1848         (remainder<mode>3): Ditto.
1849
1850 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
1851
1852         PR target/36533
1853         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
1854         REG is a hard register.
1855
1856         PR tree-optimization/36508
1857         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
1858         499, don't check it at all in release compilers.
1859
1860 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
1861
1862         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
1863         together with SSE_TARGET_MATH to disable insn pattern.
1864         (*fop_<MODEF:mode>_2_i387): Ditto.
1865         (*fop_<MODEF:mode>_3_i387): Ditto.
1866
1867 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
1868
1869         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
1870         
1871 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1872
1873         PR middle-end/34906
1874         * gimplify.c (gimplify_asm_expr): Check the return code of
1875         parse_output_constraint call, set function return and is_inout
1876         value if it failed.
1877
1878 2008-06-22  Ian Lance Taylor  <iant@google.com>
1879
1880         * c-lex.c (narrowest_unsigned_type): Change itk to int.
1881         (narrowest_signed_type): Likewise.
1882         * c-typeck.c (c_common_type): Change local variable mclass to enum
1883         mode_class, twice.
1884         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
1885         tcc_comparison, not the tree code itself.
1886         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
1887         (c_expand_expr): Cast modifier to enum expand_modifier.
1888         * c-common.h (C_RID_CODE): Add casts.
1889         (C_SET_RID_CODE): Define.
1890         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
1891         (c_lex_one_token): Add cast to avoid warning.
1892         (c_parser_objc_type_name): Rename local typename to type_name.
1893         (check_no_duplicate_clause): Change code parameter to enum
1894         omp_clause_code.
1895         (c_parser_omp_var_list_parens): Change kind parameter to enum
1896         omp_clause_code.
1897         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
1898         c_parser_omp_list_var_parens.
1899         (c_parser_omp_threadprivate): Likewise.
1900         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
1901         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
1902         * c-format.c (NO_FMT): Define.
1903         (printf_length_specs): Use NO_FMT.
1904         (asm_fprintf_length_specs): Likewise.
1905         (gcc_diag_length_specs): Likewise.
1906         (scanf_length_specs): Likewise.
1907         (strfmon_length_specs): Likewise.
1908         (gcc_gfc_length_specs): Likewise.
1909         (printf_flag_specs): Change 0 to STD_C89.
1910         (asm_fprintf_flag_specs): Likewise.
1911         (gcc_diag_flag_specs): Likewise.
1912         (gcc_cxxdiag_flag_specs): Likewise.
1913         (scanf_flag_specs): Likewise.
1914         (strftime_flag_specs): Likewise.
1915         (strfmon_flag_specs): Likewise.
1916         (print_char_table): Likewise.
1917         (asm_fprintf_char_table): Likewise.
1918         (gcc_diag_char_table): Likewise.
1919         (gcc_tdiag_char_table): Likewise.
1920         (gcc_cdiag_char_table): Likewise.
1921         (gcc_cxxdiag_char_table): Likewise.
1922         (gcc_gfc_char_table): Likewise.
1923         (scan_char_table): Likewise.
1924         (time_char_table): Likewis.
1925         (monetary_char_table): Likewise.
1926         * c-format.h (BADLEN): Likewise.
1927
1928 2008-06-21  Ian Lance Taylor  <iant@google.com>
1929
1930         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
1931         Define END_OF_BASE_TREE_CODES around inclusion.
1932         * tree.c (tree_code_type): New global array.
1933         (tree_code_length, tree_code_name): Likewise.
1934         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
1935         $(lang_tree_files).
1936         (all-tree.def, s-alltree): New targets.
1937         (gencheck.h, s-gencheck): Remove.
1938         (tree.o): Depend upon all-tree.def.
1939         (build/gencheck.o): Remove gencheck.h dependency.
1940         (mostlyclean): Don't remove gencheck.h.
1941         * c-common.h (enum c_tree_code): Remove.
1942         * c-lang.c (tree_code_type): Remove.
1943         (tree_code_length, tree_code_name): Remove.
1944         * gencheck.c (tree_codes): Include all-tree.def, rather than
1945         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
1946         after it is used.
1947         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
1948         than tree.def.
1949         * cp/cp-tree.h (enum cplus_tree_code): Remove.
1950         (operator_name_info): Size to MAX_TREE_CODES.
1951         (assignment_operator_name_info): Likewise.
1952         * cp/cp-lang.c (tree_code_type): Remove.
1953         (tree_code_length, tree_code_name): Remove.
1954         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
1955         (assignment_operator_name_info): Likewise.
1956         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
1957         MAX_TREE_CODES.
1958         * cp/mangle.c (write_expression): Likewise.
1959         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
1960         * fortran/f95-lang.c (tree_code_type): Remove.
1961         (tree_code_length, tree_code_name): Remove.
1962         * java/java-tree.h (enum java_tree_code): Remove.
1963         * java/lang.c (tree_code_type): Remove.
1964         (tree_code_length, tree_code_name): Remove.
1965         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
1966         * objc/objc-act.h (enum objc_tree_code): Remove.
1967         * objc/objc-lang.c (tree_code_type): Remove.
1968         (tree_code_length, tree_code_name): Remove.
1969         * objcp/objcp-lang.c (tree_code_type): Remove.
1970         (tree_code_length, tree_code_name): Remove.
1971         * ada/ada-tree.h (enum gnat_tree_code): Remove.
1972         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
1973         * ada/misc.c (tree_code_type): Remove.
1974         (tree_code_length, tree_code_name): Remove.
1975
1976 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
1977
1978         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
1979         the grand_bitmap_obstack.
1980
1981 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1982
1983         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
1984         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
1985         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
1986         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
1987         move_stmt_r, new_label_mapper): Likewise.
1988         * tree-complex.c (cvc_lookup): Likewise.
1989         * tree-dfa.c (create_function_ann): Likewise.
1990         * tree-dump.c (dump_register): Likewise.
1991         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
1992         find_phi_replacement_condition): Likewise.
1993         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
1994         tree_function_versioning): Likewise.
1995         * tree-into-ssa.c (cmp_dfsnum): Likewise.
1996         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
1997         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
1998         get_nonlocal_debug_decl, convert_nonlocal_reference,
1999         convert_nonlocal_omp_clauses, get_local_debug_decl,
2000         convert_local_reference, convert_local_omp_clauses,
2001         convert_nl_goto_reference, convert_nl_goto_receiver,
2002         convert_tramp_reference, convert_call_expr): Likewise.
2003         * tree-outof-ssa.c (contains_tree_r): Likewise.
2004         * tree-parloops.c (reduction_phi, initialize_reductions,
2005         eliminate_local_variables_1, add_field_for_reduction,
2006         add_field_for_name, create_phi_for_local_result,
2007         create_call_for_reduction_1, create_loads_for_reductions,
2008         create_stores_for_reduction, create_loads_and_stores_for_name):
2009         Likewise.
2010         * tree-phinodes.c (allocate_phi_node): Likewise.
2011         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
2012         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
2013         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
2014         * tree-ssa-coalesce.c (compare_pairs): Likewise.
2015         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
2016         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
2017         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
2018         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
2019         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
2020         vn_nary_op_insert): Likewise.
2021         * tree-ssa.c (redirect_edge_var_map_add,
2022         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
2023         * tree-vectorizer.c (vectorize_loops): Likewise.
2024         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
2025         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
2026         tree_cons_stat, build1_stat, build_variant_type_copy,
2027         decl_init_priority_lookup, decl_fini_priority_lookup,
2028         decl_priority_info, decl_restrict_base_lookup,
2029         decl_restrict_base_insert, decl_debug_expr_lookup,
2030         decl_debug_expr_insert, decl_value_expr_lookup,
2031         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
2032         type_hash_add, get_file_function_name, tree_check_failed,
2033         tree_not_check_failed, tree_range_check_failed,
2034         omp_clause_range_check_failed, build_omp_clause,
2035         build_vl_exp_stat): Likewise.
2036         * value-prof.c (gimple_histogram_value,
2037         gimple_duplicate_stmt_histograms): Likewise.
2038         * var-tracking.c (attrs_list_insert, attrs_list_copy,
2039         unshare_variable, variable_union_info_cmp_pos, variable_union,
2040         dataflow_set_different_1, dataflow_set_different_2,
2041         vt_find_locations, variable_was_changed, set_variable_part,
2042         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
2043         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
2044         section_entry_hash, object_block_entry_eq,
2045         object_block_entry_hash, create_block_symbol,
2046         initialize_cold_section_name, default_function_rodata_section,
2047         strip_reg_name, set_user_assembler_name, const_desc_eq,
2048         build_constant_desc, output_constant_def, lookup_constant_def,
2049         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
2050         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
2051         default_internal_label): Likewise.
2052         * varray.c (varray_init, varray_grow): Likewise.
2053         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
2054
2055 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
2056
2057         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
2058         operators for "test" insn.  Macroize insn using SWI mode macro.
2059         (*jcc_fused_2): Ditto.
2060         (*jcc_fused_3): Macroize insn using SWI mode macro.
2061         (*jcc_fused_4): Ditto.
2062
2063 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
2064
2065         * tree-ssa-pre.c: Fix typo in comment.
2066         (init_antic, fini_antic): Add explicit funtions for
2067         initializing and deinitializing ANTIC and AVAIL sets.
2068         (create_expression_by_pieces): Fix typo in comment.
2069         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
2070         (execute_pre): Eventually dump details about ANTIC_IN.
2071
2072 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2073
2074         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
2075         * gcc.c (translate_options, init_spec, store_arg, read_specs,
2076         add_to_obstack, file_at_path, find_a_file, execute,
2077         add_preprocessor_option, add_assembler_option, add_linker_option,
2078         process_command, insert_wrapper, do_option_spec, do_self_spec,
2079         spec_path, do_spec_1, is_directory, main, used_arg,
2080         getenv_spec_function): Likewise.
2081         * tlink.c (symbol_hash_lookup, file_hash_lookup,
2082         demangled_hash_lookup, symbol_push, file_push, frob_extension):
2083         Likewise.
2084
2085 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
2086
2087         * doc/rtl.texi: Updated subreg section.
2088
2089 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
2090
2091         PR c++/36523
2092         * cgraphunit.c (cgraph_process_new_functions): Don't clear
2093         node->needed and node->reachable.
2094         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
2095         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
2096         (expand_task_call): Don't call expand_task_copyfn.
2097         (expand_task_copyfn): Renamed to...
2098         (finalize_task_copyfn): ... this.
2099
2100 2008-06-19  Jan Hubicka  <jh@suse.cz>
2101
2102         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
2103         clobbering framepointer.
2104
2105 2008-06-19  Jan Hubicka  <jh@suse.cz>
2106
2107         * tree-optimize.c (execute_early_local_optimizations): Set
2108         cgraph_state only at first invocation.
2109
2110 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2111
2112         * system.h (-Wc++-compat): Activate as a warning, no an error.
2113
2114 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
2115
2116         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
2117         instead of "#" in insn asm template.
2118         (*jcc_fused_2): Ditto.
2119
2120 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
2121
2122         * config/i386/i386.h (ix86_tune_indices)
2123         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
2124         (TARGET_FUSE_CMP_AND_BRANCH): New define.
2125         * config/i386/i386.md (*jcc_fused_1): New insn pattern
2126         (*jcc_fused_2): Ditto.
2127         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
2128         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
2129         (print operand): Handle 'E' and 'e' code.
2130
2131 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
2132
2133         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
2134         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2135         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2136
2137 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
2138
2139         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
2140         node->decl.
2141         (cgraph_expand_function): Use local copy of decl.
2142         (cgraph_expand_all_functions): Remove redundant initialization of
2143         order_pos.
2144         (cgraph_optimize): Reword internal_error message.
2145
2146 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
2147
2148         * arm-protos.h (arm_return_in_memory): Remove public
2149         arm_return_in_memory() prototype.
2150         * arm.c (arm_return_in_memory): Add static prototype, add target
2151         hook macro, change definition and comments.
2152         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
2153
2154 2008-06-19  Ben Elliston  <bje@au.ibm.com>
2155
2156         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
2157         real.c: Remove references to IEEE 754R.
2158         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
2159         * doc/libgcc.texi (Decimal float library routines): Likewise.
2160
2161 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2162
2163         * targhooks.h (struct gcc_target): New member unwind_word_mode.
2164         (default_unwind_word_mode): Add prototype.
2165         * targhooks.c (default_unwind_word_mode): New function.
2166         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
2167         instead of word_mode.
2168         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
2169         (TARGET_INITIALIZER): Use it.
2170
2171         * c-common.c (handle_mode_attribute): Support "unwind_word"
2172         mode attribute.
2173         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
2174
2175         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
2176         word_mode to access SjLj_Function_Context member "data".
2177         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
2178         conversion from targetm.eh_return_filter_mode () to
2179         targetm.unwind_word_mode () if they differ.
2180
2181         * builtin-types.def (BT_UNWINDWORD): New primitive type.
2182         (BT_FN_UNWINDWORD_PTR): New function type.
2183         (BT_FN_WORD_PTR): Remove.
2184         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
2185         * except.c (expand_builtin_extend_pointer): Convert pointer to
2186         targetm.unwind_word_mode () instead of word_mode.
2187
2188         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
2189         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
2190         (spu_unwind_word_mode): New function.
2191         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
2192         (TARGET_UNWIND_WORD_MODE): Define.
2193         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
2194
2195 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2196
2197         * config/spu/spu.c (reg_align): Remove.
2198         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
2199         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
2200         (spu_split_store): Likewise.
2201
2202 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
2203
2204         * gcc/tree-vn.c: Fix typo in comment.
2205
2206 2008-06-18  Jan Hubicka  <jh@suse.cz>
2207
2208         * cgraphunit.c (cgraph_optimize): Output debug info when doing
2209         toplevel reorder too.
2210
2211 2008-06-18  Jan Hubicka  <jh@suse.cz>
2212
2213         * c-opts.c (c_common_post_options): PCH is not compatible with
2214         no-unit-at-a-time.
2215         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
2216         -fno-toplevel-reorder by default now.
2217
2218 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2219
2220         PR documentation/30739
2221         * doc/install.texi (Prerequisites): Document dependency on awk.
2222
2223 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
2224             Ian Lance Taylor  <iant@google.com>
2225
2226         PR rtl-optimization/35604
2227         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
2228         only want to change jump destinations, not eventual label comparisons.
2229
2230 2008-06-16  Jan Hubicka  <jh@suse.cz>
2231
2232         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
2233         syntax errors.
2234         (cgraph_analyze_function): Likewise.
2235
2236 2008-06-16  Jan Hubicka  <jh@suse.cz>
2237
2238         * cgraph.h (cgraph_mark_if_needed): New function.
2239         * cgraphunit.c (cgraph_mark_if_needed): New function.
2240         * c-decl.c (duplicate_decl): Use it.
2241
2242 2008-06-16  Jan Hubicka  <jh@suse.cz>
2243
2244         * cgraph.c (cgraph_add_new_function): When in expansion state, do
2245         lowering.
2246
2247 2008-06-16  Jan Hubicka  <jh@suse.cz>
2248
2249         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
2250
2251 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
2252             Kazu Hirata  <kazu@codesourcery.com>
2253             Maxim Kuvyrkov  <maxim@codesourcery.com
2254
2255         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
2256         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
2257         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
2258         EXTRA_SPEC_FUNCTIONS.
2259         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
2260         (DRIVER_SELF_SPECS): Adjust.
2261         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
2262         * config/mips/st.h, config/mips/t-st: New.
2263         * config/mips/driver-native.c, config/mips/x-native: New.
2264         * doc/invoke.texi (MIPS): Document 'native' value for -march and
2265         -mtune options.
2266
2267 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
2268
2269         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
2270         from it.
2271         (ISA_HAS_FP_CONDMOVE): New macro.
2272         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
2273         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
2274         (ISA_HAS_NMADD3_NMSUB3): New macro.
2275         * config/mips/mips.c (mips_rtx_costs): Update.
2276         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
2277         compiling for ST Loongson 2E/2F.
2278         (madd<mode>): Rename to madd4<mode>.  Update.
2279         (madd3<mode>): New pattern.
2280         (msub<mode>): Rename to msub4<mode>.  Update.
2281         (msub3<mode>): New pattern.
2282         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
2283         (nmadd3<mode>): New pattern.
2284         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
2285         (nmadd3<mode>_fastmath): New pattern.
2286         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
2287         (nmsub3<mode>): New pattern.
2288         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
2289         (nmsub3<mode>_fastmath): New pattern.
2290         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
2291
2292 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
2293
2294         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
2295         (DF_REF_INSN_INFO): New.
2296         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
2297         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
2298         with a NULL DF_REF_INSN_INFO.
2299         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
2300         DF_INSN_SET.
2301         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
2302         DF_INSN_INFO_EQ_USES): New.
2303         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
2304         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
2305         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
2306         * df-core.c: Update comment for above changes.
2307         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
2308         DF_INSN_UID_* macros.
2309         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
2310         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
2311         insn rtx.  Update all callers.
2312         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
2313         df_ref_create_structure, df_insn_refs_collect): Likewise.
2314         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
2315         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
2316         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
2317         macros to access the insn refs.
2318         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
2319         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
2320         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
2321         for accessing the refs.
2322         (try_fwprop_subst): Likewise.
2323         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
2324         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
2325         for accessing the refs.
2326         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
2327         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
2328         to look at the insn refs.
2329         (record_uses): Likewise.
2330         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
2331         function anymore.
2332         (mark_artificial_uses): Don't mark_insn for artificial refs.
2333         (mark_reg_rependencies): Likewise.
2334
2335         * doc/rtl.texi: Remove documentation of ADDRESSOF.
2336
2337 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2338
2339         * configure: Regenerate.
2340
2341 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
2342
2343         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
2344         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
2345         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
2346
2347 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
2348
2349         * config/avr/avr.c (avr_mcu_t): Add attiny167.
2350         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
2351         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
2352
2353 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
2354
2355         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
2356         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
2357         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
2358
2359 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
2360
2361         * tree-ssa-sccvn.c: Fix format of comments.
2362
2363 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
2364
2365         * cgraph.c: Remove unneeded forward declarations of eq_node()
2366         and hash_node().
2367
2368 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
2369
2370         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
2371         REG_RETVAL notes.
2372         (see_update_relevancy): Likewise.
2373         * fwprop.c (try_fwprop_subst): Likewise.
2374         * rtlanal.c (noop_move_p): Likewise.
2375         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
2376         notes to non-existing libcall blocks.
2377         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
2378         Remove orig_set.
2379         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
2380         (dead_libcall_p): Remove.
2381         (delete_trivially_dead_insns): Don't use it.
2382         * web.c (union_defs): Remove comment about keeping nops.
2383         * gcse.c (hash_scan_insn): Don't take libcall pointers.
2384         (compute_hash_table_work): Don't track libcall notes.
2385         (do_local_cprop): Don't take libcall pointers.  Don't update
2386         libcall notes.
2387         (adjust_libcall_notes): Deleted.
2388         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
2389         ever have existed in the first place).
2390         (replace_store_insn): Don't try to remove libcall notes.
2391         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
2392         (resolve_reg_notes): Don't call them.
2393         (resolve_simple_move): Likewise.
2394         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
2395         Don't remove REG_RETVAL notes.
2396         * emit-rtl.c (try_split): Don't update libcall notes.
2397         (emit_copy_of_insn_after): Dito.
2398         * cselib.c (cselib_current_insn_in_libcall): Remove.
2399         (cselib_process_insn): Don't set/clear it.
2400         (new_elt_loc_list): Don't record it.
2401         (cselib_init): Don't initialize it.
2402         * cselib.c (struct elt_loc_list): Remove in_libcall field.
2403         * loop-invariant.c (find_invariant_insn): Don't look for libcall
2404         notes.
2405         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
2406         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
2407         (init_deps): Don't initialize it.
2408         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
2409         * combine.c (delete_noop_moves): Don't update libcall notes.
2410         (can_combine_p): Remove now pointless #if 0 block.
2411         (try_combine): Remove another obsolete #if 0 block.
2412         (distribute_notes): Don't distribute libcall notes.
2413         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
2414         * dce.c (libcall_dead_p): Remove.
2415         (delete_unmarked_insns): Don't handle libcall blocks.
2416         (preserve_libcall_for_dce): Remove.
2417         (prescan_insns_for_dce): Don't special-case libcall block insns.
2418         * reload1 (reload): Don't handle libcall notes. 
2419         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
2420         documentation.
2421
2422 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
2423
2424         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
2425         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2426         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2427
2428 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
2429
2430         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
2431         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2432         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
2433
2434 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2435
2436         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
2437
2438 2008-06-16  Ira Rosen  <irar@il.ibm.com>
2439
2440         PR tree-optimization/36493
2441         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
2442         the arguments list. Use VECTYPE to create vector pointer.
2443         (vectorizable_store): Fail if accesses through a pointer to vectype
2444         do not alias the original memory reference operands.
2445         Call vect_create_data_ref_ptr without the removed argument.
2446         (vectorizable_load): Likewise.
2447         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
2448         removed argument.
2449
2450 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
2451
2452         PR target/36336
2453         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
2454         reg_equiv_constant.
2455
2456 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
2457
2458         * config/mips/loongson2ef.md: New file.
2459         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
2460         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
2461         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
2462         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
2463         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
2464         and loongson_2f.
2465         (loongson2ef.md): New include.
2466         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
2467         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
2468         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
2469         (loongson_gt_<mode>, loongson_extract_halfword)
2470         (loongson_insert_halfword_0, loongson_insert_halfword_2)
2471         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
2472         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
2473         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
2474         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
2475         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
2476         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
2477         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
2478         (vec_interleave_low<mode>): Define type attribute.
2479         * config/mips/mips.c (mips_ls2): New static variable.
2480         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
2481         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
2482         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
2483         Implement target scheduling hooks.
2484         (mips_multipass_dfa_lookahead): Update to handle tuning for
2485         Loongson 2E/2F.
2486         (mips_sched_init): Initialize data for Loongson scheduling.
2487         (mips_ls2_variable_issue): New static function.
2488         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
2489         Add sanity check.
2490         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
2491         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
2492         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
2493         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
2494         Handle ST Loongson 2E/2F cores.
2495         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
2496
2497 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2498
2499         * omp-low.c (extract_omp_for_data): Fix comment typo.
2500         * c.opt: Fix typo.
2501
2502 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2503
2504         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
2505         FIXME note about gcc/config.guess.
2506         * doc/options.texi (Option file format): Remove non-ASCII bytes.
2507         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
2508         * doc/cppopts.texi: Likewise.
2509         * doc/extend.texi: Likewise.
2510         * doc/gcc.texi: Likewise.
2511         * doc/gccint.texi: Likewise.
2512         * doc/gcov.texi: Likewise.
2513         * doc/gty.texi: Likewise.
2514         * doc/hostconfig.texi: Likewise.
2515         * doc/install.texi: Likewise.
2516         * doc/invoke.texi: Likewise.
2517         * doc/loop.texi: Likewise.
2518         * doc/makefile.texi: Likewise.
2519         * doc/md.texi: Likewise.
2520         * doc/passes.texi: Likewise.
2521         * doc/tm.texi: Likewise.
2522         * doc/tree-ssa.texi: Likewise.
2523         * doc/trouble.texi: Likewise.
2524
2525 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
2526             Nathan Sidwell  <nathan@codesourcery.com>
2527             Maxim Kuvyrkov  <maxim@codesourcery.com>
2528             Richard Sandiford  <rdsandiford@googlemail.com>
2529         
2530         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
2531         * config/mips/mips-protos.h (mips_expand_vector_init): New.
2532         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
2533         builtins.
2534         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
2535         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
2536         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
2537         V8QImode cases.
2538         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
2539         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
2540         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
2541         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
2542         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
2543         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
2544         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
2545         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
2546         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
2547         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
2548         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
2549         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
2550         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
2551         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
2552         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
2553         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
2554         (mips_builtins): Add Loongson builtins.
2555         (mips_loongson_2ef_bdesc): New.
2556         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
2557         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
2558         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
2559         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
2560         New.
2561         (mips_expand_vector_init): New.
2562         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
2563         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
2564         if appropriate.
2565         * config/mips/mips.md: Add unspec numbers for Loongson
2566         builtins.  Include loongson.md.
2567         (MOVE64): Include Loongson vector modes.
2568         (SPLITF): Include Loongson vector modes.
2569         (HALFMODE): Handle Loongson vector modes.
2570         * config/mips/loongson.md: New.
2571         * config/mips/loongson.h: New.
2572         * config.gcc: Add loongson.h header for mips*-*-* targets.
2573         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
2574
2575 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
2576
2577         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
2578         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
2579         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
2580         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
2581         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
2582         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
2583         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
2584         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
2585         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
2586         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
2587         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
2588         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
2589         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
2590         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
2591         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
2592         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
2593         Remove use_fixproto=yes.
2594         (ia64*-*-hpux*): Remove comment about using fixproto.
2595         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
2596
2597 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2598
2599         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
2600         library rebuilds.
2601         * configure: Regenerate.
2602
2603 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
2604
2605         PR middle-end/36520
2606         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
2607         before evaluating it.
2608
2609 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
2610
2611         PR c/36507
2612         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
2613         nested inline functions.
2614         (start_decl, start_function): Don't invert DECL_EXTERNAL
2615         for nested inline functions.
2616
2617 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
2618
2619         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
2620         splits that must be made for correctness.
2621
2622 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
2623
2624         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
2625         (AVAIL_NON_MIPS16): Likewise.
2626         (mips_builtin_description): Replace target_flags with a predicate.
2627         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
2628         (dspr2_32): New availability predicates.
2629         (MIPS_BUILTIN): New macro.
2630         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
2631         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
2632         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
2633         Replace the TARGET_FLAGS parameters with AVAIL parameters.
2634         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
2635         (mips_dsp_32only_bdesc): Merge into...
2636         (mips_builtins): ...this new array.
2637         (mips_bdesc_map, mips_bdesc_arrays): Delete.
2638         (mips_init_builtins): Update after above changes.
2639         (mips_expand_builtin_1): Merge into...
2640         (mips_expand_builtin): ...here and update after above changes.
2641
2642 2008-06-12  Paul Brook  <paul@codesourcery.com>
2643
2644         * longlong.h (__arm__): Define count_leading_zeros.
2645         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
2646         (clzsi2, clzdi2): New functions.
2647         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
2648         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
2649         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
2650         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
2651         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
2652         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
2653         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
2654         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
2655         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
2656         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
2657
2658 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
2659
2660         * config/m68k/m68k.c (m68k_tune_flags): New.
2661         (override_options): Compute m68k_tune_flags.
2662         (MULL_COST, MULW_COST): Update for various variants of CFV2.
2663         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
2664
2665 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
2666
2667         PR middle-end/36506
2668         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
2669
2670 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2671
2672         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
2673         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
2674
2675 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2676
2677         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
2678         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
2679
2680 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
2681
2682         PR middle-end/36506
2683         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
2684         reductions.
2685
2686 2008-06-12  Richard Guenther  <rguenther@suse.de>
2687
2688         PR tree-optimization/36345
2689         * tree-flow.h (struct ptr_info_def): Align escape_mask,
2690         add memory_tag_needed flag.
2691         (may_alias_p): Declare.
2692         * tree-ssa-alias.c (may_alias_p): Export.
2693         (set_initial_properties): Use memory_tag_needed flag.
2694         (update_reference_counts): Likewise.
2695         (reset_alias_info): Reset memory_tag_needed flag.
2696         (create_name_tags): Check memory_tag_needed flag.
2697         (dump_points_to_info_for): Dump it.
2698         * tree-ssa-structalias.c (struct variable_info): Remove
2699         directly_dereferenced flag.
2700         (new_var_info): Do not initialize it.
2701         (process_constraint_1): Do not set it.
2702         (update_alias_info): Set is_dereferenced flag.
2703         (set_uids_in_ptset): Use may_alias_p.
2704         (set_used_smts): Check memory_tag_needed flag.
2705         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
2706         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
2707         memory_tag_needed flag.
2708         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
2709         from broken design.
2710
2711 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
2712
2713         * config/i386/i386.c (ix86_compute_frame_layout): Disable
2714         red zone for w64 abi.
2715         (ix86_expand_prologue): Likewise.
2716         (ix86_force_to_memory): Likewise.
2717         (ix86_free_from_memory): Likewise.
2718
2719 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
2720
2721         PR target/36425
2722         * config/rs6000/rs6000.c (rs6000_override_options): Set
2723         rs6000_isel conditionally to the absence of comand line override.
2724         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
2725         Remove duplicate rs6000_isel setting.
2726         * config/rs6000/eabispe.h: Ditto.
2727
2728 2008-06-11  Richard Guenther  <rguenther@suse.de>
2729
2730         * alias.c (get_alias_set): Use the element alias-set for arrays.
2731         (record_component_aliases): For arrays and vectors do nothing.
2732         * c-common.c (strict_aliasing_warning): Handle the cases
2733         of alias set zero explicitly.
2734         * Makefile.in (dfp.o-warn): Add -Wno-error.
2735
2736 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
2737
2738         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
2739         tune_32 tune_64.
2740         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
2741         tune_32 tune_64 to supported_defaults.  Allow values not
2742         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
2743         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
2744         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
2745         with_cpu_64 to generic for 64-bit-supporting configurations, not
2746         with_cpu.  Remove FIXMEs.
2747         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
2748         --with-arch-64, --with-tune-32, --with-tune-64): Document.
2749         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
2750         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
2751         arch_32 and arch_64.
2752
2753 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
2754             Olivier Hainque  <hainque@adacore.com>
2755
2756         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
2757         Use DECL_SIZE_UNIT to retrieve the size of the field.
2758
2759 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
2760
2761         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
2762         with function calls after declarations.  Lay out
2763         neon_float_type_node before further use.
2764
2765 2008-06-11  Richard Guenther  <rguenther@suse.de>
2766
2767         * tree-flow.h (may_point_to_global_var): Declare.
2768         * tree-ssa-alias.c (may_point_to_global_var): New function.
2769         * tree-ssa-sink.c (is_hidden_global_store): Use it.
2770
2771 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
2772
2773         * configure.ac: Teach that fido supports .debug_line.
2774         * configure: Regenerate.
2775
2776 2008-06-10  Tom Tromey  <tromey@redhat.com>
2777
2778         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
2779         debug hook.
2780
2781 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
2782
2783         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
2784         (encode_decimal64, decode_decimal64, encode_decimal128,
2785         decode_decimal128): Reverse order of 32-bit parts of value if host
2786         and target endianness differ.
2787
2788 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
2789
2790         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
2791         Avoid division by 0.
2792         (tree_mod_pow2_value_transform): Likewise.
2793         (tree_ic_transform): Likewise.
2794         (tree_stringops_transform): Likewise.
2795         (tree_mod_subtract_transform): Likewise.
2796         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
2797         (copy_edges_for_bb): Likewise.
2798         (initialize_cfun): Likewise.
2799
2800 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
2801
2802         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
2803         nonmemory_operand. Add "N" operand constraint.
2804         (*btsi): Ditto.
2805         (*jcc_btdi_mask_rex64): New instruction and split pattern.
2806         (*jcc_btsi_mask): Ditto.
2807         (*jcc_btsi_mask_1): Ditto.
2808
2809 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
2810
2811         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
2812         TYPE_CANONICAL for copied element type.
2813
2814 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
2815
2816         PR target/36473
2817         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
2818         Add m_CORE2 and m_GENERIC.
2819         * config/i386/predicates.md (bt_comparison_operator): New predicate.
2820         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
2821         (*btsi): Ditto.
2822         (*jcc_btdi_rex64): New instruction and split pattern.
2823         (*jcc_btsi): Ditto.
2824         (*jcc_btsi_1): Ditto.
2825         (*btsq): Fix Intel asm dialect operand order.
2826         (*btrq): Ditto.
2827         (*btcq): Ditto.
2828
2829 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
2830
2831         PR middle-end/36447
2832         * simplify-rtx.c (simplify_subreg): Add check for shift count 
2833         greater than size.
2834
2835 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
2836
2837         * doc/md.texi: Synchronize with later constraints.md change.
2838         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
2839         with a C implementation.
2840         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
2841         MFLO handling.
2842         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
2843         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
2844         when moving to and from MD_REGNUM.
2845         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
2846         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
2847         Handle byte and halfword moves.
2848         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
2849         separately.
2850         * config/mips/constraints.md (h): Turn into NO_REGS.
2851         (l, x): Update documentation.
2852         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
2853         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
2854         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
2855         (HILO): New mode iterator.
2856         (MOVE128): Add TI.
2857         (any_div): New code iterator.
2858         (u): Extend code attribute to div and udiv.
2859         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
2860         d_operand in the splitters.  Remove redundant CONST_INT checks.
2861         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
2862         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
2863         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
2864         accordingly, using normal moves instead of unspecs to move LO into
2865         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
2866         (<u>mulsidi3): Handle expansion in C code.
2867         (<u>mulsidi3_32bit_internal): Rename to...
2868         (<u>mulsidi3_32bit): ...this.
2869         (<u>mulsidi3_32bit_r4000): Fix insn separator.
2870         (*<u>mulsidi3_64bit): Rename to...
2871         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
2872         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
2873         to set LO and HI to the multiplication result.  Use a normal move
2874         for MFLO and an unspec for MFHI.
2875         (*<u>mulsidi3_64bit_parts): Replace with...
2876         (<u>mulsidi3_64bit_hilo): ...this new instruction.
2877         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
2878         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
2879         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
2880         instead of HI.  Split the instruction into a separate multiplication
2881         and MFHI if !TARGET_FIX_R4000.
2882         (<su>muldi3_highpart): Likewise.
2883         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
2884         and the "=h" clobber.
2885         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
2886         (<u>mulditi3): New expander.
2887         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
2888         (madsi): Remove "=h" clobber.
2889         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
2890         Force the modulus result to be a GPR and split the instruction into
2891         a division followed by an MFHI after reload.
2892         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
2893         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
2894         the MIPS16 HIGH define_split.
2895         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
2896         of acc<->gpr moves to "multi".
2897         (*movdi_64bit): Replace the single "x" alternative with
2898         alternatives for moving into and out of "a".
2899         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
2900         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
2901         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
2902         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
2903         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
2904         (movti): New expander.
2905         (*movti, *movti_mips16): New insns.
2906         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
2907         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
2908         (mthi<GPR:mode>_<HILO:mode>): Likewise.
2909         * config/mips/predicates.md (fpr_operand): Delete.
2910         (d_operand): New predicate.
2911
2912 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
2913
2914         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
2915         failure on some Bourne shells.
2916         (x86_64-*-*): Ditto.
2917
2918 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
2919
2920         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
2921
2922 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
2923
2924         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
2925         (sparc-sun-solaris2*): Likewise.
2926
2927 2008-06-09  Arnaud Charlet  <charlet@adacore.com
2928
2929         * doc/install.texi: Update requirements to build the Ada compiler.
2930
2931 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
2932
2933         * df-scan.c (struct df_scan_problem_data): Remove the
2934         mw_link_pool alloc pool.
2935         (df_scan_free_internal): Don't free it.
2936         (df_scan_alloc): Don't allocate it.
2937         * df.h (struct df_link): Update comment.
2938
2939 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2940
2941         * except.h: Correct checks for when SJLJ exceptions must be used.
2942
2943 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2944
2945         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
2946         default.
2947         
2948 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
2949
2950         PR tree-optimization/36218
2951         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
2952         configure for the build system.
2953         (BUILD_LDFLAGS): Define.
2954         * configure: Regenerate.
2955         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
2956
2957 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
2958
2959         PR target/36424
2960         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
2961         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
2962         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
2963
2964 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
2965
2966         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
2967
2968 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
2969
2970         * config.gcc (Obsolete configurations): Remove list of
2971         configurations.
2972         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
2973         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
2974         targets matched by those patterns.
2975         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
2976         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
2977         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
2978         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
2979         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
2980         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
2981         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
2982         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
2983         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
2984         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
2985         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
2986         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
2987         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
2988         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
2989         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
2990         Make code for Solaris 7 and greater unconditional for Solaris.
2991         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
2992         Remove --with-* handling.
2993         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
2994         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
2995         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
2996         LINK_OS_WINDISS_SPEC): Remove.
2997         * config/rs6000/sysv4.opt (mwindiss): Remove.
2998         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
2999         * configure: Regenerate.
3000         * doc/cpp.texi: Don't mention BeOS.
3001         * doc/extend.texi (interrupt): Don't mention MS1.
3002         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
3003         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
3004         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
3005         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
3006         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
3007         Remove.
3008         * doc/invoke.texi (MT Options): Remove.
3009         (-mwindiss): Remove.
3010         (CRIS Options): Remove cris-axis-aout references.
3011         (HPPA Options): Don't mention hppa1.1-*-pro.
3012         * doc/md.texi: (MorphoTech family): Remove.
3013         * libgcc2.c: Don't handle UWIN.
3014         * config/alpha/t-unicosmk: Remove.
3015         * config/alpha/unicosmk.h: Remove.
3016         * config/arm/kaos-arm.h: Remove.
3017         * config/arm/kaos-strongarm.h: Remove.
3018         * config/arm/strongarm-coff.h: Remove.
3019         * config/arm/strongarm-elf.h: Remove.
3020         * config/arm/strongarm-pe.h: Remove.
3021         * config/arm/t-strongarm-pe: Remove.
3022         * config/arm/t-xscale-coff: Remove.
3023         * config/arm/t-xscale-elf: Remove.
3024         * config/arm/xscale-coff.h: Remove.
3025         * config/arm/xscale-elf.h: Remove.
3026         * config/chorus.h: Remove.
3027         * config/cris/aout.h: Remove.
3028         * config/cris/aout.opt: Remove.
3029         * config/cris/t-aout: Remove.
3030         * config/i386/beos-elf.h: Remove.
3031         * config/i386/kaos-i386.h: Remove.
3032         * config/i386/ptx4-i.h: Remove.
3033         * config/i386/sco5.h: Remove.
3034         * config/i386/sco5.opt: Remove.
3035         * config/i386/sysv4-cpp.h: Remove.
3036         * config/i386/sysv5.h: Remove.
3037         * config/i386/t-beos: Remove.
3038         * config/i386/t-sco5: Remove.
3039         * config/i386/t-uwin: Remove.
3040         * config/i386/uwin.asm: Remove.
3041         * config/i386/uwin.h: Remove.
3042         * config/kaos.h: Remove.
3043         * config/mips/windiss.h: Remove.
3044         * config/mt: Remove directory.
3045         * config/pa/pa-osf.h: Remove.
3046         * config/pa/pa-pro-end.h: Remove.
3047         * config/pa/t-pro: Remove.
3048         * config/ptx4.h: Remove.
3049         * config/rs6000/beos.h: Remove.
3050         * config/rs6000/kaos-ppc.h: Remove.
3051         * config/rs6000/t-beos: Remove.
3052         * config/rs6000/windiss.h: Remove.
3053         * config/sh/kaos-sh.h: Remove.
3054         * config/sol2-6.h: Remove.
3055         * config/sparc/sol26-sld.h: Remove.
3056         * config/sparc/sysv4-only.h: Remove.
3057         * config/vax/bsd.h: Remove.
3058         * config/vax/t-memfuncs: Remove.
3059         * config/vax/ultrix.h: Remove.
3060         * config/vax/vaxv.h: Remove.
3061         * config/windiss.h: Remove.
3062
3063 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
3064
3065         PR rtl-optimization/36438
3066         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
3067         for vector shifts with constant scalar shift operands.
3068
3069 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
3070
3071         * doc/invoke.texi: Document -march=xlr.
3072         * config/mips/xlr.md: New file.
3073         * config/mips/mips.md: Include it.
3074         (cpu): Add "xlr".
3075         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
3076         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
3077         (mips_rtx_cost_data): Likewise.
3078
3079 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
3080
3081         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
3082         PRE_INC and PRE_DEC cases.
3083
3084 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
3085
3086         PR rtl-optimization/36419
3087         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
3088         the emitting jump insn.
3089
3090         PR target/36362
3091         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
3092         is not bool, boolify the whole *expr_p and convert to the desired type.
3093
3094 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
3095
3096         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
3097         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
3098         Add omp_private_outer_ref hook, add another argument to
3099         omp_clause_default_ctor hook.
3100         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
3101         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
3102         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
3103         hook_tree_tree_tree_tree_null.
3104         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
3105         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
3106         * hooks.c (hook_tree_tree_tree_tree_null): New function.
3107         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
3108         * tree.def (OMP_TASK): New tree code.
3109         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
3110         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
3111         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
3112         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
3113         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
3114         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
3115         OMP_CLAUSE_COLLAPSE_EXPR): Define.
3116         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
3117         (OMP_DIRECTIVE_P): Add OMP_TASK.
3118         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
3119         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
3120         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
3121         and OMP_CLAUSE_UNTIED entries.
3122         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
3123         num_ops to 2.
3124         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3125         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
3126         * tree-pretty-print.c (dump_omp_clause): Handle
3127         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
3128         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
3129         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
3130         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
3131         warning about unsigned iterators.  Change decl/init/cond/incr
3132         arguments to TREE_VECs, check arguments for all collapsed loops.
3133         (c_finish_omp_taskwait): New function.
3134         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
3135         ws_clauses.
3136         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
3137         default_function_array_conversion on init.  Add par_clauses argument.
3138         If decl is present in parallel's lastprivate clause, change it to
3139         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
3140         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
3141         collapse count in clauses.
3142         (c_parser_omp_for, c_parser_omp_parallel): Adjust
3143         c_parser_omp_for_loop callers.
3144         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
3145         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
3146         (c_parser_omp_clause_name): Handle collapse and untied clauses.
3147         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
3148         functions.
3149         (c_parser_omp_clause_schedule): Handle schedule(auto).
3150         Include correct location in the error message.
3151         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
3152         and PRAGMA_OMP_CLAUSE_UNTIED.
3153         (OMP_TASK_CLAUSE_MASK): Define.
3154         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
3155         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
3156         * tree-nested.c (convert_nonlocal_omp_clauses,
3157         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
3158         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
3159         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3160         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
3161         OMP_CLAUSE_DECL.
3162         (conver_nonlocal_reference, convert_local_reference,
3163         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
3164         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
3165         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
3166         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
3167         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
3168         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
3169         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
3170         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
3171         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
3172         OMP_CLAUSE_UNTIED.
3173         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
3174         * c-common.h (c_finish_omp_taskwait): New prototype.
3175         * gimple-low.c (lower_stmt): Handle OMP_TASK.
3176         * tree-parloops.c (create_parallel_loop): Create 1 entry
3177         vectors for OMP_FOR_{INIT,COND,INCR}.
3178         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
3179         (make_edges): Handle OMP_TASK.
3180         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
3181         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3182         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
3183         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
3184         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
3185         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
3186         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
3187         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
3188         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
3189         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
3190         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
3191         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
3192         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
3193         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
3194         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
3195         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
3196         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
3197         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
3198         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
3199         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
3200         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
3201         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
3202         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
3203         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
3204         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
3205         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
3206         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
3207         original iterator is present in lastprivate clause or if
3208         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
3209         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3210         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
3211         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
3212         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
3213         if it is set, lookup var in outer contexts too.  Handle
3214         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
3215         to be implicitly determined firstprivate for task regions.
3216         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
3217         if it is set, lookup var in outer contexts too.  Set
3218         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
3219         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
3220         OMP_CLAUSE_UNTIED.  Take region_type as last argument
3221         instead of in_parallel and in_combined_parallel.
3222         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
3223         Adjust callers.
3224         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
3225         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
3226         (new_omp_context): Set default_kind to
3227         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
3228         (omp_region_type): New enum.
3229         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
3230         fields, add region_type.
3231         (new_omp_context): Take region_type as argument instead of is_parallel
3232         and is_combined_parallel.
3233         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
3234         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
3235         ctx->is_combined_parallel checks.
3236         (gimplify_omp_task): New function.
3237         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
3238         OMP_CLAUSE_UNTIED.
3239         * omp-low.c (extract_omp_for_data): Use schedule(static)
3240         for schedule(auto).  Handle pointer and unsigned iterators.
3241         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
3242         Add loops argument.  Extract data for collapsed OMP_FOR loops.
3243         (expand_parallel_call): Assert sched_kind isn't auto,
3244         map runtime schedule to index 3.
3245         (struct omp_for_data_loop): New type.
3246         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
3247         Add loop, loops, collapse and iter_type fields.
3248         (workshare_safe_to_combine_p): Disallow combined for if
3249         iter_type is unsigned long long.  Don't combine collapse > 1 loops
3250         unless all bounds and steps are constant.  Adjust extract_omp_for_data
3251         caller.
3252         (expand_omp_for_generic): Handle pointer, unsigned and long long
3253         iterators.  Handle collapsed OMP_FOR loops.  Adjust
3254         for struct omp_for_data changes.  If libgomp function doesn't return
3255         boolean_type_node, add comparison of the return value with 0.
3256         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
3257         pointer, unsigned and long long iterators.  Adjust for struct
3258         omp_for_data changes.
3259         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
3260         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
3261         unsigned long long.  Allocate loops array, pass it to
3262         extract_omp_for_data.  For collapse > 1 loops use always
3263         expand_omp_for_generic.
3264         (omp_context): Add sfield_map and srecord_type fields.
3265         (is_task_ctx, lookup_sfield): New functions.
3266         (use_pointer_for_field): Use is_task_ctx helper.  Change first
3267         argument's type from const_tree to tree.  Clarify comment.
3268         In OMP_TASK disallow copy-in/out sharing.
3269         (build_sender_ref): Call lookup_sfield instead of lookup_field.
3270         (install_var_field): Add mask argument.  Populate both record_type
3271         and srecord_type if needed.
3272         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
3273         in srecord_type.
3274         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
3275         and DECL_FIELD_OFFSET.
3276         (scan_sharing_clauses): Adjust install_var_field callers.  For
3277         firstprivate clauses on explicit tasks allocate the var by value in
3278         record_type unconditionally, rather than by reference.
3279         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
3280         Use is_taskreg_ctx instead of is_parallel_ctx.
3281         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3282         (create_omp_child_function_name): Add task_copy argument, use
3283         *_omp_cpyfn* names if it is true.
3284         (create_omp_child_function): Add task_copy argument, if true create
3285         *_omp_cpyfn* helper function.
3286         (scan_omp_parallel): Adjust create_omp_child_function callers.
3287         Rename parallel_nesting_level to taskreg_nesting_level.
3288         (scan_omp_task): New function.
3289         (lower_rec_input_clauses): Don't run constructors for firstprivate
3290         explicit task vars which are initialized by *_omp_cpyfn*.  
3291         Pass outer var ref to omp_clause_default_ctor hook if
3292         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
3293         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
3294         OMP_CLAUSE_REDUCTION_INIT.
3295         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
3296         avoid duplicate setting of fields.  Handle
3297         OMP_CLAUSE_PRIVATE_OUTER_REF.
3298         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
3299         copy-out if TREE_READONLY, only copy-in.
3300         (expand_task_copyfn): New function.
3301         (expand_task_call): New function.
3302         (struct omp_taskcopy_context): New type.
3303         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
3304         New functions.
3305         (lower_omp_parallel): Rename to...
3306         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
3307         Call create_task_copyfn if srecord_type is needed.  Adjust
3308         sender_decl type.
3309         (task_shared_vars): New variable.
3310         (check_omp_nesting_restrictions): Warn if work-sharing,
3311         barrier, master or ordered region is closely nested inside OMP_TASK.
3312         Add warnings for barrier if closely nested inside of work-sharing,
3313         ordered, or master region.
3314         (scan_omp_1): Call check_omp_nesting_restrictions even for
3315         GOMP_barrier calls.  Rename parallel_nesting_level to
3316         taskreg_nesting_level.  Handle OMP_TASK.
3317         (lower_lastprivate_clauses): Even if some lastprivate is found on a
3318         work-sharing construct, continue looking for them on parent parallel
3319         construct.
3320         (lower_omp_for_lastprivate): Add lastprivate clauses
3321         to the beginning of dlist rather than end.  Adjust for struct
3322         omp_for_data changes.
3323         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
3324         not after it.  Handle collapsed OMP_FOR loops, adjust for
3325         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
3326         (get_ws_args_for): Adjust extract_omp_for_data caller.
3327         (scan_omp_for): Handle collapsed OMP_FOR
3328         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3329         (lower_omp_single_simple): If libgomp function doesn't return
3330         boolean_type_node, add comparison of the return value with 0.
3331         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
3332         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
3333         (parallel_nesting_level): Rename to...
3334         (taskreg_nesting_level): ... this.
3335         (is_taskreg_ctx): New function.
3336         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
3337         of is_parallel_ctx.
3338         (execute_lower_omp): Rename parallel_nesting_level to
3339         taskreg_nesting_level.
3340         (expand_omp_parallel): Rename to...
3341         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
3342         Call omp_task_call for OMP_TASK regions.
3343         (expand_omp): Adjust caller, handle OMP_TASK.
3344         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
3345
3346         * bitmap.c (bitmap_default_obstack_depth): New variable.
3347         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
3348         if argument is NULL and bitmap_default_obstack is already initialized.
3349         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
3350         at the end.
3351         * matrix-reorg.c (matrix_reorg): Likewise.
3352
3353 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
3354