OSDN Git Service

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