OSDN Git Service

2008-07-09 Doug Kwan <dougkwan@google.com>
[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.
3915         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
3916         *fop_df_1_sse insn patterns using MODEF mode iterator.
3917         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
3918         *fop_df_1_i387 insn patterns using MODEF mode iterator.
3919         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
3920         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
3921         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
3922         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
3923         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
3924         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
3925         (*fop_xf_4_i387): Use <MODE> for mode attribute.
3926         (*fop_xf_5_i387): Ditto.
3927         (*fop_xf_6_i387): Ditto.
3928
3929 2008-05-30  Richard Guenther  <rguenther@suse.de>
3930
3931         * builtins.c (build_string_literal): Avoid generating
3932         a non-gimple_val result.
3933
3934 2008-05-30  DJ Delorie  <dj@redhat.com>
3935
3936         * exec-tool.in: Use an environment variable (private) instead of a
3937         file (shared) as a semaphore, so as to not break parallel builds.
3938
3939 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
3940
3941         * optabs.c (maybe_encapsulate_block): Remove.
3942         (emit_libcall_block): Adjust accordingly.
3943         * optabs.h (maybe_encapsulate_block): Remove prototype.
3944
3945         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
3946         Don't use maybe_encapsulate_block.
3947
3948 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
3949
3950         * config/rs6000/rs6000.c (rs6000_legitimize_address,
3951         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
3952         rtx is a SYMBOL_REF before calling get_pool_constant.
3953
3954 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
3955
3956         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
3957
3958 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
3959
3960         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
3961         rather than OS names to choose INO_T_EQ definition.
3962         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
3963         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
3964
3965 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
3966
3967         PR target/36348
3968         * config/darwin-f.c: New.
3969         * config/t-darwin: Added rule to build darwin-f.o.
3970         * config.gcc: Defined new variable, fortran_target_objs.
3971         (*-*-darwin*): Set fortran_target_objs.
3972         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
3973         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
3974         * configure: Regenerated.
3975
3976 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
3977
3978         PR target/35771
3979         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
3980         canonical type if needed.
3981
3982 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
3983
3984         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
3985
3986 2008-05-29  Richard Guenther  <rguenther@suse.de>
3987
3988         PR tree-optimization/36343
3989         PR tree-optimization/36346
3990         PR tree-optimization/36347
3991         * tree-flow.h (clobber_what_p_points_to): Declare.
3992         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
3993         pointed-to variable is dereferenced is irrelevant to whether
3994         the pointer can access the pointed-to variable.
3995         (clobber_what_p_points_to): New function.
3996         * tree-ssa-alias.c (set_initial_properties): Use it.
3997         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
3998         call clobber check for NMTs.
3999
4000 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
4001         
4002         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
4003         for printing gcov_type.
4004
4005 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
4006
4007         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
4008         and the eh region information.
4009         * value-prof.c (gimple_move_stmt_histograms): New function.
4010         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
4011
4012 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
4013
4014         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
4015
4016 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
4017
4018         * value-prof.c (tree_ic_transform): Print counts.
4019         * tree-profile.c (tree_gen_ic_func_profiler):
4020         Clear __gcov_indreict_call_callee variable to avoid misattribution
4021         of the profile.
4022
4023 2008-05-28  Rafael Espindola  <espindola@google.com>
4024
4025         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
4026         invalid sharing.
4027
4028 2008-05-28  Richard Guenther  <rguenther@suse.de>
4029
4030         PR tree-optimization/36339
4031         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
4032         and clobbering code out of the loop.
4033
4034 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
4035
4036         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
4037         letters defined.
4038
4039         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
4040         s390_contiguous_bitmask_p, s390_symref_operand_p,
4041         s390_check_symref_alignment, s390_reload_larl_operand,
4042         s390_reload_symref_address): New functions.
4043         (s390_branch_condition_mnemonic): Support compare and branch
4044         instructions.
4045         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
4046         and 'W' constraints.
4047         (s390_secondary_reload): Add secondary reloads for unaligned
4048         symbol refs or symbol refs to floating point or QI/TI mode
4049         integer values.
4050         (legitimate_address_p): Accept symbol references as addresses.
4051         (s390_expand_insv): Use rotate and insert selected bits
4052         instruction for insv when building for z10.
4053         (print_operand_address): Handle symbol ref addresses.
4054         (print_operand): Output modifier 'c' added for signed byte values.
4055         (s390_encode_section_info): Mark symbol refs with
4056         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
4057
4058         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
4059         (length attribute): RRF, RRR have 4 byte length.
4060         (FPALL, INTALL): New mode iterators added.
4061         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
4062         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
4063         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
4064         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
4065         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
4066         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
4067         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
4068         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
4069         instructions.
4070         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
4071         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
4072         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
4073         reload<INTALL:mode><P:mode>_toreg_z10,
4074         reload<FPALL:mode><P:mode>_tomem_z10,
4075         reload<FPALL:mode><P:mode>_toreg_z10,
4076         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
4077         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
4078         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
4079         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
4080         definition.
4081         (movmem, clrmem, cmpmem): New splitters added.
4082
4083         * config/s390/predicates.md (larl_operand): Use
4084         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
4085         SYMBOL_REF_ALIGN1_P.
4086         (s390_signed_integer_comparison,
4087         s390_unsigned_integer_comparison): New predicates.
4088
4089         * config/s390/s390-protos.h (s390_check_symref_alignment,
4090         s390_contiguous_bitmask_p, s390_reload_larl_operand,
4091         s390_reload_symref_address,
4092         s390_compare_and_branch_condition_mask): Prototypes added.
4093
4094         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
4095         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
4096         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
4097
4098 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
4099
4100         * config/s390/s390.c (z10_cost): New cost function for z10.
4101         (s390_handle_arch_option, override_options): Support -march=z10 switch.
4102         (s390_issue_rate): Adjust issue rate for z10.
4103         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
4104         (processor_flags): Add PF_Z10.
4105         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
4106         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
4107         * gcc/config.gcc: Add z10.
4108
4109 2008-05-28  Richard Guenther  <rguenther@suse.de>
4110
4111         PR tree-optimization/36291
4112         * tree-flow. h (struct gimple_df): Remove var_anns member.
4113         * tree-flow-inline.h (gimple_var_anns): Remove.
4114         (var_ann): Simplify.
4115         * tree-dfa.c (create_var_ann): Simplify.
4116         (remove_referenced_var): Clear alias info from var_anns of globals.
4117         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
4118         (delete_tree_ssa): Clear alias info from var_anns of globals.
4119         Do not free var_anns.
4120         (var_ann_eq): Remove.
4121         (var_ann_hash): Likewise.
4122
4123 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
4124
4125         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
4126         and loongson2f entries.
4127         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
4128         * config/mips/mips.h (processor_type): Add Loongson-2E
4129         and Loongson-2F entries.
4130         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
4131         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
4132         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
4133         * doc/invoke.texi (MIPS Options): Document loongson2e
4134         and loongson2f processor names.
4135
4136 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
4137
4138         PR target/35767
4139         PR target/35771
4140         * config/i386/i386.c (ix86_function_arg_boundary): Use
4141         alignment of canonical type.
4142         (ix86_expand_vector_move): Check unaligned memory access for
4143         all SSE modes.
4144
4145 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
4146
4147         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
4148         Moved to the front of file.
4149
4150 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
4151             H.J. Lu  <hongjiu.lu@intel.com>
4152
4153         * dwarf2out.c (current_fde): New.
4154         (add_cfi): Use it.
4155         (lookup_cfa:): Likewise.
4156         (dwarf2out_end_epilogue): Likewise.
4157         (dwarf2out_note_section_used): Likewise.
4158
4159 2008-05-27  Michael Matz  <matz@suse.de>
4160
4161         PR c++/27975
4162         * c.opt (Wenum-compare): New warning option.
4163         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
4164
4165 2008-05-27  Michael Matz  <matz@suse.de>
4166
4167         PR middle-end/36326
4168         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
4169         non-BLKmode types.
4170         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
4171         into memory as tail calls.
4172
4173 2008-05-27  Richard Guenther  <rguenther@suse.de>
4174
4175         PR tree-optimization/36339
4176         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
4177         pointers cause all addressable variables to be call clobbered.
4178
4179 2008-05-27  Richard Guenther  <rguenther@suse.de>
4180
4181         PR tree-optimization/36245
4182         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
4183
4184 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
4185
4186         * config/s390/s390.md: Replace all occurences of the 'm'
4187         constraint with 'RT'.
4188
4189 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
4190
4191         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
4192         definitions added.
4193         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
4194         "*movdi_64".
4195         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
4196         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
4197         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
4198
4199 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
4200
4201         * reload.c: (find_reloads): Skip alternatives according to the
4202         "enabled" attribute. Constify the constraint variable.
4203         * recog.c (get_attr_enabled): Add default implementation.
4204         (extract_insn): Set the alternative_enabled_p array
4205         in the recog_data struct.
4206         (preprocess_constraints, constrain_operands): Skip
4207         alternatives according to the "enabled" attribute
4208         * recog.h (struct recog_data): New field alternative_enabled_p.
4209         (skip_alternative): New inline function.
4210         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
4211         (record_reg_classes): Skip alternative according to the
4212         "enabled" attribute.
4213
4214         * doc/md.texi: Add documention for the "enabled" attribute.
4215
4216 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
4217
4218         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
4219         * postreload.c (reload_cse_simplify_operands): Replace 'm'
4220         constraint with TARGET_MEM_CONSTRAINT.
4221         * recog.c (asm_operand_ok, preprocess_constraints,
4222         constrain_operands): Likewise.
4223         * regclass.c (record_reg_classes): Likewise.
4224         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
4225         * reload1.c (maybe_fix_stack_asms): Likewise.
4226         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
4227         * recog.h: Adjust comment.
4228         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
4229         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
4230         * doc/md.texi: Add a note to description of 'm' constraint.
4231         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
4232
4233 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
4234
4235         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
4236         that the bitfield is of integral type before testing its precision.
4237
4238 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
4239             Sa Liu  <saliu@de.ibm.com> 
4240
4241         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
4242         __modti3, __udivti3, __umodti3 and __udivmodti4.
4243         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
4244         that implement TImode mul and div functions.
4245         * config/spu/multi3.c: New. Implement __multi3.
4246         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
4247         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
4248         functions on SPU.
4249
4250 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
4251
4252         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
4253         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
4254         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
4255         tls_sysv_suffix): New mode and mode attribute iterators.
4256         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
4257         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
4258         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
4259         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
4260         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
4261         iterators.
4262
4263 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
4264
4265         PR tree-optimization/36329
4266         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
4267         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
4268         * cgraphbuild.c (initialize_inline_failed): Use the latter
4269         macro in lieu of the former.
4270         * ipa-inline.c (cgraph_mark_inline): Likewise.
4271         (cgraph_decide_inlining_of_small_function): Likewise.
4272         (cgraph_decide_inlining): Likewise.
4273         (cgraph_decide_inlining_incrementally): Likewise.
4274
4275 2008-05-26  Tristan Gingold  <gingold@adacore.com>
4276             Anatoly Sokolov  <aesok@post.ru>
4277
4278         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
4279         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
4280         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
4281         optimization for 'avr6' architecture.
4282
4283 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
4284
4285         PR target/34932
4286         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
4287
4288 2008-05-26  Richard Guenther  <rguenther@suse.de>
4289
4290         * tree-ssa-sccvn.c (expr_has_constants): Declare.
4291         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
4292
4293 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
4294
4295         PR middle-end/36253
4296         * caller-save.c (insert_restore): Verify alignment of spill space.
4297         (insert_save): Likewise.
4298         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
4299         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
4300         (STACK_SLOT_ALIGNMENT): Likewise.
4301         * function.c (LOCAL_ALIGNMENT): Removed.
4302         (get_stack_local_alignment): New.
4303         (assign_stack_local): Use it.  Set alignment on stack slot.
4304         (assign_stack_temp_for_type): Use get_stack_local_alignment.
4305         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
4306         (STACK_SLOT_ALIGNMENT): New.
4307         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
4308         stack slot in XFmode.
4309
4310         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
4311
4312 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
4313
4314         PR/36321
4315         * config/i386/i386.md (allocate_stack_worker_64): Make sure
4316         argument operand in rax isn't removed.
4317
4318 2008-05-26  Richard Guenther  <rguenther@suse.de>
4319
4320         PR middle-end/36300
4321         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
4322         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
4323
4324 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
4325
4326         PR bootstrap/36331
4327         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
4328
4329 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
4330
4331         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
4332         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
4333
4334 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4335
4336         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
4337         build a trampoline if we don't want one.
4338         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
4339         return zero for nested functions if we don't want a trampoline.
4340
4341 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
4342
4343         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
4344
4345 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
4346
4347         PR fortran/18428
4348         * c.opt: Removed undocumented option '-lang-fortran'.
4349         * c-common.h: Removed global variable 'lang_fortran'.
4350         * c-opts.c (c_common_handle_option): Removed code to handle
4351         option '-lang-fortran'. Updated includes.
4352         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
4353         definition of '__GFORTRAN__'.
4354         (define__GNUC__): Reimplemented to use BASEVER and
4355         cpp_define_formatted.
4356         (builtin_define_with_value_n): Removed.
4357         * c-incpath.h: Renamed to ...
4358         * incpath.h: ... this.
4359         * c-incpath.c: Renamed to ...
4360         * incpath.c: ... this. Updated includes.
4361         * fix-header.c: Updated includes.
4362         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
4363         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
4364         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
4365
4366 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4367
4368         * tree.h: Update the table of flags used on tree nodes.
4369         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
4370         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
4371         (FORCED_LABEL): Add access check.
4372         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
4373         (ASM_INPUT_P): Likewise.
4374         (ASM_VOLATILE_P): Likewise.
4375         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
4376         (OMP_SECTION_LAST): Access private_flag directly.
4377         (OMP_RETURN_NOWAIT): Likewise.
4378         (OMP_PARALLEL_COMBINED): Likewise.
4379         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
4380         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
4381         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
4382         deprecated_flag directly.
4383
4384 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
4385
4386         * final.c (frame_pointer_needed): Removed.
4387         * flags.h (frame_pointer_needed): Likewise.
4388
4389         * function.h (rtl_data): Add frame_pointer_needed.
4390         (frame_pointer_needed): New.
4391
4392 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
4393
4394         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
4395
4396 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
4397
4398         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
4399         SRC is a REG.
4400
4401 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
4402
4403         * c-common.c (strip_array_types): Move function to..
4404         * tree.c: ..here.
4405         (get_inner_array_type): Delete.
4406         * c-common.h (strip_array_types): Move declaration to..
4407         * tree.h: ..here.
4408         (get_inner_array_type): Delete.
4409         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
4410         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
4411         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
4412         * config/pa/pa.c (emit_move_sequence): Likewise.
4413
4414 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
4415
4416         * config/i386/i386.md (*sse_prologue_save_insn): Set length
4417         attribute to 34.
4418
4419 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
4420
4421         * function.c: Include target hook for nonlocal_goto frame value.
4422
4423 2008-05-24  Richard Guenther  <rguenther@suse.de>
4424
4425         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
4426         variable can be only accessed through a pointer or a union.
4427
4428 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4429
4430         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
4431         * doc/extend.texi: Likewise.
4432
4433 2008-05-23  DJ Delorie  <dj@redhat.com>
4434
4435         * config/m32c/jump.md (untyped_call): Add.
4436
4437         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
4438         for A24 to PSImode.
4439         (m32c_address_cost): Detail costs for indirect offsets.
4440
4441 2008-05-23  Rafael Espindola  <espindola@google.com>
4442
4443         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
4444         if a node is a SUBREG.
4445         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
4446         is a SUBREG.
4447
4448 2008-05-23  Paul Brook  <paul@codesourcery.com>
4449             Carlos O'Donell  <carlos@codesourcery.com>
4450
4451         * doc/extend.texi: Clarify use of __attribute__((naked)).
4452         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
4453         * target.h (gcc_target): Add allocate_stack_slots_for_args.
4454         * function.c (use_register_for_decl): Use
4455         targetm.calls.allocate_stack_slots_for_args.
4456         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
4457         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
4458         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
4459
4460 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
4461
4462         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
4463
4464 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
4465
4466         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
4467         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
4468         is only rounded once.
4469
4470 2008-05-23  Richard Guenther  <rguenther@suse.de>
4471
4472         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
4473
4474 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
4475             Jakub Jelinek  <jakub@redhat.com>
4476
4477         PR target/36079
4478         * configure.ac: Handle --enable-cld.
4479         * configure: Regenerated.
4480         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
4481         * config/i386/i386.h (struct machine_function): Add needs_cld field.
4482         (ix86_current_function_needs_cld): New define.
4483         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
4484         (cld): New isns pattern.
4485         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
4486         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
4487         * config/i386/i386.opt (mcld): New option.
4488         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
4489         TARGET_CLD and ix86_current_function_needs_cld.
4490         (override_options): Use -mcld by default for 32-bit code if
4491         USE_IX86_CLD.
4492
4493         * doc/install.texi (Options specification): Document --enable-cld.
4494         * doc/invoke.texi (Machine Dependent Options)
4495         [i386 and x86-64 Options]: Add -mcld option.
4496         (Intel 386 and AMD x86-64 Options): Document -mcld option.
4497
4498 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
4499         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
4500         (return_in_memory_64): Likewise.
4501         (return_in_memory_ms_64): Likewise.
4502
4503 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4504
4505         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
4506         * builtins.c (fold_builtin_fpclassify): New.
4507         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
4508         * builtins.def (BUILT_IN_FPCLASSIFY): New.
4509         * c-common.c (handle_type_generic_attribute): Adjust to accept
4510         fixed arguments before an elipsis.
4511         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
4512         * doc/extend.texi: Document __builtin_fpclassify.
4513
4514 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
4515
4516         * omp-low.c (gate_expand_omp_ssa): Remove.
4517         (pass_expand_omp_ssa): Remove.
4518         (gate_expand_omp): Do not check for flag_openmp_ssa.
4519         * common.opt (-fopenmp-ssa): Remove.
4520         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
4521
4522 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
4523
4524         * config/sh/sh.opt (mfixed-range): New option.
4525         * config/sh/sh-protos.h (sh_fix_range): Declare.
4526         * config/sh/sh.c (sh_fix_range): New function.
4527         * config/sh/sh.h (sh_fixed_range_str): Declare.
4528         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
4529         is not empty.
4530         * doc/invoke.texi (SH Options): Document -mfixed-range.
4531
4532 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
4533
4534         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
4535         it before the redeclaration.
4536
4537 2008-05-22  Anatoly Sokolov <aesok@post.ru>
4538
4539         * config/avr/avr.c (get_sequence_length): Add new function.
4540         (expand_prologue, expand_epilogue): Remove duplicate code.
4541
4542 2008-05-22  Rafael Espindola  <espindola@google.com>
4543
4544         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
4545         sharing.
4546
4547 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
4548
4549         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
4550         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
4551
4552         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
4553         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
4554         (vect_update_misalignment_for_peel): Likewise.
4555         (vector_alignment_reachable_p): Likewise.
4556         * tree-vect-transform.c (vectorizable_load): Likewise.
4557         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
4558         (get_vectype_for_scalar_type): Pass mode of scalar_type
4559         to UNITS_PER_SIMD_WORD.
4560
4561         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
4562         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
4563         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
4564         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
4565         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
4566
4567 2008-05-22  Ira Rosen  <irar@il.ibm.com>
4568
4569         PR tree-optimization/36293
4570         * tree-vect-transform.c (vect_transform_strided_load): Don't check
4571         if the first load must be skipped because of a gap.
4572
4573 2008-05-22  Richard Guenther  <rguenther@suse.de>
4574
4575         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
4576         more cases of offset disambiguation that is possible if
4577         strict-aliasing rules apply.
4578         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
4579         for basic offset and type-based disambiguation.
4580
4581 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4582
4583         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
4584         ix86_expand_vector_set on V16QImode for SSE4.1.
4585
4586 2008-05-21  Tom Tromey  <tromey@redhat.com>
4587
4588         * c.opt (Wimport): Mark as undocumented.
4589         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
4590         -Wno-import.
4591         (Warning Options): Likewise.
4592         * doc/cppopts.texi: Don't mention -Wimport.
4593
4594 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
4595
4596         PR tree-optimization/36287
4597         PR tree-optimization/36286
4598         * lambda-code.c (build_access_matrix): Do not use the loop->num
4599         for computing the number of induction variables: use the loop depth
4600         instead.
4601
4602 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
4603
4604         PR/36280
4605         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
4606         option -f(no-)leading-underscore.
4607
4608 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4609
4610         * config/i386/i386.c (ix86_expand_vector_init_general): Use
4611         GET_MODE_NUNITS (mode).
4612
4613 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
4614
4615         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
4616         (-mmulhw): Add 464 to description.
4617         (-mdlmzb): Likewise.
4618         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
4619         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
4620         464fp entries.
4621         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
4622         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
4623         * config/rs6000/rs6000.md: Update comments for 464.
4624
4625 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
4626
4627         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
4628
4629 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4630
4631         * config/i386/sse.md (vec_extractv4sf): Removed.
4632         (vec_extractv2df): Likewise.
4633         (vec_extractv2di): Likewise.
4634         (vec_extractv4si): Likewise.
4635         (vec_extractv8hi): Likewise.
4636         (vec_extractv16qi): Likewise.
4637         (vec_extract<mode>): New.
4638
4639 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4640
4641         * config/i386/sse.md (vec_setv4sf): Removed.
4642         (vec_setv2df): Likewise.
4643         (vec_setv2di): Likewise.
4644         (vec_setv4si): Likewise.
4645         (vec_setv8hi): Likewise.
4646         (vec_setv16qi): Likewise.
4647         (vec_set<mode>): New.
4648
4649 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4650
4651         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
4652         goto for vec_concat and vec_interleave.
4653
4654 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4655
4656         * config/i386/sse.md (vec_initv4sf): Removed.
4657         (vec_initv2df): Likewise.
4658         (vec_initv2di): Likewise.
4659         (vec_initv4si): Likewise.
4660         (vec_initv8hi): Likewise.
4661         (vec_initv16qi): Likewise.
4662         (vec_init<mode>): New.
4663
4664 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
4665
4666         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
4667
4668 2008-05-21  Tom Tromey  <tromey@redhat.com>
4669
4670         * ggc-zone.c (lookup_page_table_if_allocated): New function.
4671         (zone_find_object_offset): Likewise.
4672         (gt_ggc_m_S): Likewise.
4673         (highest_bit): Likewise.
4674         * ggc-page.c (gt_ggc_m_S): New function.
4675         * stringpool.c (string_stack): Remove.
4676         (init_stringpool): Update.
4677         (ggc_alloc_string): Use ggc_alloc.
4678         (maybe_delete_ident): New function.
4679         (ggc_purge_stringpool): Likewise.
4680         (gt_ggc_m_S): Remove.
4681         * ggc-common.c (ggc_protect_identifiers): New global.
4682         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
4683         ggc_protect_identifiers.
4684         * ggc.h (ggc_protect_identifiers): Declare.
4685         (gt_ggc_m_S): Update.
4686         (ggc_purge_stringpool): Declare.
4687         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
4688         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
4689         special case.
4690         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
4691
4692 2008-05-21  David S. Miller  <davem@davemloft.net>
4693
4694         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
4695         tmake_file.
4696
4697 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
4698
4699         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
4700         once finished.
4701
4702 2008-05-20  David Daney  <ddaney@avtrex.com>
4703
4704         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
4705         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
4706         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
4707         UNSPEC_UPDATE_GOT_VERSION): Renumber.
4708         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
4709         (atomic_hiqi_op): New define_code_iterator.
4710         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
4711         mips_expand_compare_and_swap_12.
4712         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
4713         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
4714         (sync_<optab><mode>, sync_old_<optab><mode>,
4715         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
4716         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
4717         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
4718         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
4719         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
4720         (test_and_set_12): New insn.
4721         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
4722         sync_new_<optab><mode>, sync_old_nand<mode>,
4723         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
4724         clobber to operand 0 for SI and DI mode insns.
4725         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
4726         mips_gen_fn_4): New typedefs.
4727         (mips_gen_fn_ptrs): Define new union type.
4728         (mips_expand_compare_and_swap_12): Remove declaration.
4729         (mips_expand_atomic_qihi): Declare function.
4730         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
4731         (mips_expand_atomic_qihi): ... this.  Use new generator function
4732         parameter.
4733         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
4734         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
4735         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
4736         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
4737         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
4738         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
4739         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
4740         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
4741         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
4742         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
4743         New macros.
4744
4745 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
4746
4747         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
4748         the missing break.
4749
4750 2008-05-20  Anatoly Sokolov <aesok@post.ru>
4751
4752         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
4753         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
4754         (avr_attribute_table): Add 'OS_main' function attribute.
4755         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
4756         functions with 'OS_main' attribute.
4757
4758 2008-05-20  Richard Guenther  <rguenther@suse.de>
4759
4760         PR tree-optimization/35204
4761         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
4762         helper, split out from ...
4763         (DFS): ... here.  Make the DFS walk non-recursive.
4764
4765 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
4766             Jan Sjodin  <jan.sjodin@amd.com>
4767
4768         PR tree-optimization/36181
4769         * tree-parloops.c (loop_has_vector_phi_nodes): New.
4770         (parallelize_loops): Don't parallelize when the loop has vector
4771         phi nodes.
4772
4773 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
4774             Sebastian Pop  <sebastian.pop@amd.com>
4775
4776         * tree-loop-linear.c (gather_interchange_stats): Look in the access
4777         matrix, and never look at the tree representation of the memory
4778         accesses.
4779         (linear_transform_loops): Computes parameters and access matrices.
4780         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
4781         when fails.
4782         (access_matrix_get_index_for_parameter): New.
4783         * tree-data-ref.h (struct access_matrix): New.
4784         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
4785         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
4786         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
4787         am_vector_index_for_loop): New.
4788         (struct data_reference): Add field access_matrix.
4789         (DR_ACCESS_MATRIX): New.
4790         (compute_data_dependences_for_loop): Update declaration.
4791         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
4792         * lambda.h (lambda_vector_vec_p): Declared.
4793         * lambda-code.c: Depend on pointer-set.h.
4794         (lambda_collect_parameters_from_af, lambda_collect_parameters,
4795         av_for_af_base, av_for_af, build_access_matrix,
4796         lambda_compute_access_matrices): New.
4797         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
4798
4799 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
4800
4801         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
4802         $SOURCEDIR/include.
4803
4804 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
4805             Sebastian Pop  <sebastian.pop@amd.com>
4806
4807         PR tree-optimization/36206
4808         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
4809         FOLD_CONVERSIONS.
4810         (instantiate_scev_1): Rename flags to fold_conversions.
4811         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
4812         outeside instantiation_loop.
4813         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
4814         (evolution_function_is_affine_or_constant_p): Removed.
4815         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
4816         instantiate_scev.
4817         (analyze_siv_subscript): Pass in the loop nest number.
4818         Call evolution_function_is_affine_in_loop instead of 
4819         evolution_function_is_affine_p.
4820         (analyze_overlapping_iterations): Pass in the loop nest number.
4821
4822 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
4823             Sebastian Pop  <sebastian.pop@amd.com>
4824
4825         PR tree-optimization/36206
4826         * tree-chrec.h (chrec_fold_op): New.
4827         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
4828         and other trees.
4829
4830 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
4831
4832         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
4833         (DIRS_EQ): New.
4834         (remove_duplicates): Do not set inode on non-inode systems.
4835         Use DIRS_EQ.
4836
4837 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
4838
4839         * config.gcc (tm_file): Update comments about relative pathnames.
4840
4841 2008-05-20  Richard Guenther  <rguenther@suse.de>
4842
4843         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
4844         * tree-ssa-sccvn.c (process_scc): Likewise.
4845         * tree-ssa-sink.c (execute_sink_code): Likewise.
4846         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
4847         * tree-vrp.c (process_assert_insertions): Likewise.
4848         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
4849         (perform_tree_ssa_dce): Likewise.
4850         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
4851         (dump_dominator_optimization_stats): Likewise.
4852         * tree-vectorizer.c (vectorize_loops): Likewise.
4853
4854 2008-05-20  Richard Guenther  <rguenther@suse.de>
4855
4856         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
4857
4858 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
4859
4860         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
4861         (ix86_i386elf_return_in_memory): Likewise.
4862         (ix86_i386interix_return_in_memory): Likewise.
4863         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
4864         (SUBTARGET_RETURN_IN_MEMORY): New.
4865         * config/i386/i386elf.h: Likewise.
4866         * config/i386/ptx4-i.h: Likewise.
4867         * config/i386/sol2-10.h: Likewise.
4868         * config/i386/sysv4.h: Likewise.
4869         * config/i386/vx-common.h: Likewise.
4870         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
4871         * config/i386/i386.c (ix86_return_in_memory): Made static and
4872         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
4873         (ix86_i386elf_return_in_memory): Removed.
4874         (ix86_i386interix_return_in_memory): Removed.
4875         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
4876         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
4877
4878 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
4879
4880         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
4881
4882 2008-05-19  Xinliang David Li  <davidxl@google.com>
4883
4884         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
4885         * opts.c: Ditto.
4886         * common.opt: Ditto.
4887         * doc/invoke.texi: Ditto.
4888
4889 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4890
4891         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
4892         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
4893
4894 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
4895
4896         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
4897         sizes of operand array from 8/4 to 4/2.
4898         (ix86_expand_vector_init_general): Change size of operand array
4899         from 32 to 16.  Remove op0, op1 and half_mode.
4900
4901 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
4902
4903         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
4904         (ix86_expand_vector_init_interleave): Likewise.
4905         (ix86_expand_vector_init_general): Use them.  Assert
4906         word_mode == SImode when n_words == 4.
4907
4908 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
4909
4910         * config/i386/i386.c (ix86_secondary_reload): New static function.
4911         (TARGET_SECONDARY_RELOAD): New define.
4912         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
4913         * config/i386/i386.md (reload_outqi): Remove.
4914
4915 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4916
4917         PR middle-end/35509
4918         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
4919         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
4920         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
4921         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
4922         (fold_builtin_1): Likewise.
4923         * builtins.def (BUILT_IN_ISINF_SIGN): New.
4924         c-common.c (check_builtin_function_arguments): Handle
4925         BUILT_IN_ISINF_SIGN.
4926         * doc/extend.texi: Document __builtin_isinf_sign.
4927         * fold-const.c (operand_equal_p): Handle COND_EXPR.
4928
4929 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
4930
4931         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
4932         EH cleanup at the end of the pass, search for those that have been
4933         turned into forwarder blocks and do the cleanup on their successor.
4934
4935 2008-05-18  Richard Guenther  <rguenther@suse.de>
4936
4937         * tree-cfg.c (verify_gimple_expr): Allow conversions from
4938         pointers to sizetype and vice versa.
4939
4940 2008-05-18 Xinliang David Li   <davidxl@google.com>
4941
4942         * gcc/tree-ssa-dce.c: Coding style fix.
4943         (check_pow): Documentation comment. 
4944         (check_log): Documenation comment. Coding style fix.
4945         (is_unnecessary_except_errno_call): Ditto.
4946         (gen_conditions_for_pow): Ditto.
4947         (gen_conditions_for_log): Ditto.
4948         (gen_shrink_wrap_conditions): Ditto.
4949         (shrink_wrap_one_built_in_calls): Ditto.
4950         * gcc/doc/invoke.texi: Better documentation string.
4951         * ChangeLog: Fix wrong change log entries from 
4952         May 17 checkin on function call DCE.
4953
4954 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
4955
4956         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
4957
4958 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
4959
4960         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
4961         * df-problems.c (simulation routines): Fixed block comment to
4962         properly say how to add forwards scanning functions.
4963         
4964 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
4965
4966         * tree-inline.c (setup_one_parameter): Remove dead code.
4967
4968 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
4969
4970         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
4971         a BIT_AND_EXPR only for an INTEGER_TYPE.
4972
4973 2008-05-17 Xinliang David Li   <davidxl@google.com>
4974
4975         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
4976         (check_pow, check_log, is_unnecessary_except_errno_call): New 
4977         functions to check for eliminating math functions that are pure 
4978         except for setting errno.
4979         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
4980         general condition expressions for shrink-wrapping pow/log calls.
4981         (gen_shrink_wrap_conditions): Ditto.
4982         (shrink_wrap_one_built_in_call): Ditto.
4983         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
4984         (mark_operand_necessary): If debugging, output if OP is necessary.
4985         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
4986         unnecessary.
4987         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
4988         opt level >= 2.
4989         * gcc/common.opt: New user flag -ftree-builtin-dce.
4990         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
4991
4992 2008-05-16  David S. Miller  <davem@davemloft.net>
4993
4994         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
4995         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
4996
4997 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
4998
4999         PR target/36246
5000         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
5001
5002 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
5003
5004         * ifcvt.c (dead_or_predicable): Rename
5005         df_simulate_one_insn_backwards to df_simulate_one_insn.
5006         * recog.c (peephole2_optimize): Ditto.
5007         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
5008         Ditto.
5009         * df.h: Rename df_simulate_one_insn_backwards to
5010         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
5011         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
5012         scanning of defs and uses.
5013         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
5014         (df_simulate_one_insn_forwards): Removed.
5015
5016 2008-05-16  Doug Kwan  <dougkwan@google.com>
5017
5018         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
5019         QNaN & SNaN.
5020         (real_from_string): Handle NaNs and Inf as approriate.
5021
5022 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
5023
5024         * doc/gty.texi (Source Files Containing Type Information): Note
5025         that headers should appear first in the gtfiles list.
5026
5027 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
5028
5029         * tree.def (COND_EXEC): Properly documented this code.
5030
5031 2008-05-16  Diego Novillo  <dnovillo@google.com>
5032
5033         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
5034         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
5035         the new field.
5036
5037 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
5038
5039         * tree-ssa-dse (max_stmt_uid): Removed.
5040         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
5041         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
5042         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
5043         * function.h (cfun.last_stmt_uid): New field.
5044         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
5045         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
5046         New functions.
5047         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
5048         (create_stmt_ann): Initialize the ann->uid field.
5049         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
5050         with new calls.
5051         * tree-flow.h (renumber_gimple_stmt_uids): New function.
5052
5053 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
5054
5055         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
5056         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
5057         (init_empty_tree_cfg): Call it.
5058
5059 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
5060
5061         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
5062         Update all users.
5063
5064 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
5065
5066         * doc/invoke.text (-fdump-tree-*-verbose): New option.
5067         * tree-dump.c (dump_options): New verbose option.
5068         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
5069         Add verbose dump.
5070         * tree-pass.h (TDF_VERBOSE): New dump flag.
5071         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
5072         (tree-flow.h): Added include.
5073         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
5074
5075 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
5076
5077         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
5078
5079         From Jie Zhang  <jie.zhang@analog.com>
5080         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5081         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
5082         mcpu=bf561-none and mcpu=bf561-0.2.
5083         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5084         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
5085         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5086         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
5087         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
5088         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
5089         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
5090         option.
5091         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
5092         (cputype_selected): Remove.
5093         (bfin_handle_option): Don't use cputype_selected.
5094         (override_options): When no mcpu option, enable all workarounds.
5095         Don't use bfin_workarounds.
5096         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
5097         processor type.
5098         (DEFAULT_CPU_TYPE): Don't define.
5099
5100 2008-05-16  Richard Guenther  <rguenther@suse.de>
5101
5102         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
5103         on deletion of the last stmt.
5104
5105 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5106
5107         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
5108         V8HImode for SSE2 and V16QImode for SSE4.1.
5109
5110 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
5111
5112         * cgraph.h (compute_inline_parameters): Made public.
5113         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
5114         variable_generate_summary, function_write_summary,
5115         variable_write_summary, variable_read_summary.  Added generate_summary,
5116         write_summary, read_summary.
5117         * cgraphunit.c (cgraph_process_new_functions): Changed call from
5118         pass_ipa_inline.function_generate_summary, to
5119         compute_inline_parameters. 
5120         * ipa-inline.c (compute_inline_parameters): Made public and added
5121         node parameter.
5122         (compute_inline_parameters_for_current): New function.
5123         (pass_inline_param): Now calls compute_inline_parameters_for_current.
5124         (inline_generate_summary): Removed parameter and made to loop over
5125         all cgraph nodes.
5126         (pass_ipa_inline): Updated for new IPA_PASS structure.
5127         * passes.c (execute_ipa_summary_passes): Now is called once per
5128         pass rather than once per node*pass.
5129         
5130 2008-05-15  Anatoly Sokolov <aesok@post.ru>
5131
5132         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
5133         avr_have_mul_p, avr_asm_only_p): Remove variables.
5134         (avr_override_options): Remove initialization of removed variables.
5135         (avr_file_start):  Convert removed variables to fields of 
5136         'struct base_arch_s *avr_current_arch'. 
5137         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
5138         (AVR_HAVE_MUL): (Ditto.).
5139         (AVR_HAVE_MOVW): (Ditto.).
5140         (AVR_HAVE_LPMX): (Ditto.). 
5141         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
5142         avr_asm_only_p): Remove declaration.
5143
5144 2008-05-15  Diego Novillo  <dnovillo@google.com>
5145
5146         * config/arm/arm.c (arm_return_in_memory): Fix return type.
5147         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
5148
5149 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
5150
5151         PR middle-end/36194
5152         * combine.c (check_conversion): Rename back to check_promoted_subreg.
5153         Don't call record_truncated_value from here.
5154         (record_truncated_value): Turn it into a for_each_rtx callback.
5155         (record_truncated_values): New function.
5156         (combine_instructions): Call note_uses with record_truncated_values.
5157         Change name of check_conversion to check_promoted_subreg. 
5158
5159 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
5160
5161         * doc/sourcebuild.texi: Document support for torture tests.
5162
5163 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
5164
5165         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
5166         to alternative 4 of operand 2.
5167
5168 2008-05-15  Richard Guenther  <rguenther@suse.de>
5169
5170         * tree-pass.h (current_pass): Declare.
5171         (get_pass_for_id): Likewise.
5172         * passes.c (passes_by_id, passes_by_id_size): New globals.
5173         (set_pass_for_id): New function.
5174         (get_pass_for_id): Likewise.
5175         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
5176         (execute_function_todo): Flush per function statistics.
5177         * toplev.c (compile_file): Init statistics.
5178         (general_init): Do early statistics initialization.
5179         (finalize): Finish statistics.
5180         * statistics.h (statistics_early_init): Declare.
5181         (statistics_init): Likewise.
5182         (statistics_fini): Likewise.
5183         (statistics_fini_pass): Likewise.
5184         (statistics_counter_event): Likewise.
5185         (statistics_histogram_event): Likewise.
5186         * statistics.c: New file.
5187         * Makefile.in (OBJS-common): Add statistics.o.
5188         (statistics.o): Add dependencies.
5189         * doc/invoke.texi (-fdump-statistics): Document.
5190
5191         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
5192         (insert): Likewise.
5193         (execute_pre): Use statistics_counter_event.
5194         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
5195         (substitute_and_fold): Increment it.  Use statistics_counter_event.
5196
5197 2008-05-15  Diego Novillo  <dnovillo@google.com>
5198
5199         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
5200
5201         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
5202         * tree-ssa-alias.c (new_type_alias): Remove references to
5203         sub-variables from comment.
5204         * tree-ssa-operands.c (swap_tree_operands): Likewise.
5205
5206 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5207
5208         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
5209         attribute to 1 only for insertps alternative.
5210
5211 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
5212
5213         * config/bfin/bfin.md (loadbytes): New pattern.
5214         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
5215         (bfin_init_builtins): Initialize it.
5216         (bdesc_1arg): Add it.
5217
5218 2008-05-15  Sa Liu  <saliu@de.ibm.com>
5219
5220         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
5221         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
5222         * testsuite/lib/target-supports.exp: Add
5223         check_effective_target_fortran_integer_16.
5224
5225 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
5226
5227         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
5228         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
5229         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
5230         (TARGET_RETURN_IN_MEMORY): Define.
5231
5232 2008-05-15  Richard Guenther  <rguenther@suse.de>
5233
5234         PR middle-end/36244
5235         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
5236         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
5237         represent unmodifiable vars.
5238
5239 2008-05-15  Richard Guenther  <rguenther@suse.de>
5240
5241         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
5242         INDIRECT_REF and TARGET_MEM_REF.
5243         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
5244         TARGET_MEM_REF.
5245
5246 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
5247             H.J. Lu  <hongjiu.lu@intel.com>
5248
5249         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
5250         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
5251         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
5252         insn alternatives.  Add missing alternatives.
5253         (*vec_concatv2di_rex64_sse4_1): Likewise.
5254         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
5255         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
5256         Require TARGET_SSE.
5257
5258 2008-05-15  Richard Guenther  <rguenther@suse.de>
5259
5260         PR tree-optimization/36009
5261         PR tree-optimization/36204
5262         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
5263         (determine_invariantness_stmt): Record the loop a store is
5264         always executed in.
5265         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
5266         dependency.
5267
5268 2008-05-15  Richard Guenther  <rguenther@suse.de>
5269
5270         PR tree-optimization/34330
5271         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
5272         through the pointer will alias the SMT.
5273
5274 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
5275
5276         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
5277
5278 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
5279
5280         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
5281
5282 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
5283             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
5284
5285         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
5286         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
5287         (vashl_optab): New optab for vector/vector shifts.
5288         (vashr_optab): Ditto.
5289         (vlshr_optab): Ditto.
5290         (vrotl_optab): Ditto.
5291         (vrotr_optab): Ditto.
5292         (optab_subtype): New enum for optab_for_tree_code call.
5293         (optab_for_tree_code): Add enum optab_subtype argument.
5294
5295         * optabs.c (optab_for_tree_code): Take an additional argument to
5296         distinguish between a vector shift by a scalar and vector shift by
5297         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
5298         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
5299         vector shift by a vector.
5300         (expand_widen_pattern_expr): Pass additional argument to
5301         optab_for_tree_code.
5302
5303         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
5304         vrotl_optab, vrotr_optab.
5305
5306         * expr.c (expand_expr_real_1): Update calls to
5307         optab_for_tree_code to distinguish between vector shifted by a
5308         scalar and vector shifted by a vector.
5309         * tree-vectorizer.c (supportable_widening_operation): Ditto.
5310         (supportable_narrowing_operation): Ditto.
5311         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
5312         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
5313         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
5314         (vect_create_epilog_for_reduction): Ditto.
5315         (vectorizable_reduction): Ditto.
5316         (vectorizable_operation): Ditto.
5317         (vect_strided_store_supported): Ditto.
5318         (vect_strided_load_supported): Ditto.
5319         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
5320         * expmed.c (expand_shift): Ditto.
5321
5322         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
5323         scalar type.
5324         (ashr@var{m}3): Ditto.
5325         (vashl@var{m}3): Document new vector/vector shift standard name.
5326         (vashr@var{m}3): Ditto.
5327         (vlshr@var{m}3): Ditto.
5328         (vrotl@var{m}3): Ditto.
5329         (vrotr@var{m}3): Ditto.
5330
5331         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
5332         (PPERM_INVERT): Ditto.
5333         (PPERM_REVERSE): Ditto.
5334         (PPERM_REV_INV): Ditto.
5335         (PPERM_ZERO): Ditto.
5336         (PPERM_ONES): Ditto.
5337         (PPERM_SIGN): Ditto.
5338         (PPERM_INV_SIGN): Ditto.
5339         (PPERM_SRC1): Ditto.
5340         (PPERM_SRC2): Ditto.
5341
5342         * config/i386/sse.md (mulv2di3): Add SSE5 support.
5343         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
5344         allows a memory operand to be the value being added, and split it
5345         to improve vectorization.
5346         (sse5_pmacsdqh_mem): Ditto.
5347         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
5348         (sse5_mulv2div2di3_high): Ditto.
5349         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
5350         (vec_pack_trunc_v4si): Ditto.
5351         (vec_pack_trunc_v2di): Ditto.
5352         (sse5_pcmov_<mode>): Remove code that tried to use use
5353         andps/andnps instead of pcmov.
5354         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
5355         pmacsdqh instructions.
5356         (vec_widen_smult_lo_v4si): Ditto.
5357
5358         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
5359         (PPERM_INVERT): Ditto.
5360         (PPERM_REVERSE): Ditto.
5361         (PPERM_REV_INV): Ditto.
5362         (PPERM_ZERO): Ditto.
5363         (PPERM_ONES): Ditto.
5364         (PPERM_SIGN): Ditto.
5365         (PPERM_INV_SIGN): Ditto.
5366         (PPERM_SRC1): Ditto.
5367         (PPERM_SRC2): Ditto.
5368         (ix86_expand_sse_movcc): Move the SSE5 test after the if
5369         true/false tests.
5370         (ix86_expand_int_vcond): If SSE5 generate all possible integer
5371         comparisons.
5372         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
5373         says ignore whether the last reference is a memory operand.
5374
5375 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
5376             Paolo Bonzini <bonzini at gnu dot org>
5377
5378         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
5379         shift patterns.
5380
5381         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
5382         (vlshr<mode>3): Rename from vlshr<mode>3.
5383         (vashr<mode>3): Rename from vashr<mode>3.
5384         (mulv4sf3): Change the names of vector shift patterns.
5385         (mulv4si3): Ditto.
5386         (negv4sf2): Ditt.
5387
5388         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
5389         shift insns.
5390
5391         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
5392         (SI_SHLHI): Ditto.
5393         (SI_SHL): Ditto.
5394         (SI_SHLI): Ditto.
5395         (SI_ROTH): Ditto.
5396         (SI_ROTHI): Ditto.
5397         (SI_ROT): Ditto.
5398         (SI_ROTI): Ditto.
5399         (SPU_RL_0): Ditto.
5400         (SPU_RL_1): Ditto.
5401         (SPU_RL_2): Ditto.
5402         (SPU_RL_3): Ditto.
5403         (SPU_RL_4): Ditto.
5404         (SPU_RL_5): Ditto.
5405         (SPU_RL_6): Ditto.
5406         (SPU_RL_7): Ditto.
5407         (SPU_SL_0): Ditto.
5408         (SPU_SL_1): Ditto.
5409         (SPU_SL_2): Ditto.
5410         (SPU_SL_3): Ditto.
5411         (SPU_SL_4): Ditto.
5412         (SPU_SL_5): Ditto.
5413         (SPU_SL_6): Ditto.
5414         (SPU_SL_7): Ditto.
5415
5416         * config/spu/spu.md (v): New iterator macro to add v for vector types.
5417         (floatunssidf2_internal): Change vector/vector shift names.
5418         (floatunsdidf2_internal): Ditto.
5419         (mulv8hi3): Ditto.
5420         (ashrdi3): Ditto.
5421         (ashrti3): Ditto.
5422         (cgt_df): Ditto.
5423         (cgt_v2df): Ditto.
5424         (dftsv): Ditto.
5425         (vashl<mode>3): Rename from ashl<mode>3.
5426         (vashr<mode>3): Rename from ashr<mode>3.
5427         (vlshr<mode>3): Rename from lshr<mode>3.
5428         (vrotl<mode>3): Rename from rotl<mode>3.
5429
5430 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
5431
5432         PR target/36224
5433         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
5434         multiply gives the wrong value when doing widening multiplies.
5435         (vec_widen_smult_lo_v4si): Ditto.
5436
5437 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
5438
5439         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
5440         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
5441         emit_library_call_value. 
5442         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
5443         * tree.h (ECF_LIBCALL_BLOCK): Removed.
5444         * calls.c (initialize_argument_information, precompute_arguments, 
5445         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
5446         (precompute_arguments): Removed flags parameter.
5447         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
5448         
5449 2008-05-14  Richard Guenther  <rguenther@suse.de>
5450
5451         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
5452         Make sure to register the store if the use is a PHI_NODE.
5453
5454 2008-05-14  Olivier Hainque  <hainque@adacore.com>
5455
5456         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
5457         memory if the component is to be referenced in BLKmode according
5458         to get_inner_reference.
5459
5460 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
5461
5462         * calls.c (emit_library_call_value_1): Restore code clearing
5463         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
5464
5465 2008-05-14  Olivier Hainque  <hainque@adacore.com>
5466             Nicolas Roche  <roche@adacore.com>
5467
5468         * configure.ac: Add support for a "gcc_subdir" variable in
5469         config-lang.in, to denote a subdirectory where the language/GCC
5470         integration files are to be found.
5471         * configure: Regenerate.
5472
5473 2008-05-14  Ira Rosen  <irar@il.ibm.com>
5474
5475         PR tree-optimization/36098
5476         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
5477         value for the first load in the group in case of a gap.
5478         (vect_build_slp_tree): Check that there are no gaps in loads.
5479
5480 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
5481
5482         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
5483         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
5484         expand_copysign_bit, ): Change call to emit_no_conflict_block to
5485         emit_insn and remove unneeded code to construct extra args.
5486         (emit_no_conflict_block): Removed.
5487         * optabls.h: (emit_no_conflict_block): Removed.
5488         * cse.c (cse_extended_basic_block): Remove search for
5489         REG_NO_CONFLICT note.
5490         * global.c: Removed incorrect comment added in revision 117.
5491         * expr.c (convert_move): Change call to emit_no_conflict_block to
5492         emit_insn.
5493         * recog.c: Change comments so that they do not mention
5494         REG_NO_CONFLICT.
5495         * local_alloc.c (combine_regs): Removed last parameter.
5496         (no_conflict_p): Removed.
5497         (block_alloc): Removed note, no_conflict_combined_regno and set
5498         local vars. Removed all code to process REG_NO_CONFLICT blocks.
5499         (combine_regs): Removed already_dead and code to look for
5500         REG_NO_CONFLICT notes.
5501         * lower_subreg (remove_retval_note): Removed code to look for
5502         REG_NO_CONFLICT block.
5503         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
5504         (resolve_clobber): Remove code to process libcalls that have
5505         REG_NO_CONFLICT notes.
5506         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
5507         case.
5508         * combine.c (can_combine_p, distribute_notes):  Removed
5509         REG_NO_CONFLICT case.
5510         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
5511         to emit_insns.
5512         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
5513         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
5514         Ditto.
5515         * reg-notes.def (NO_CONFLICT): Removed.
5516
5517 2008-05-14  David S. Miller  <davem@davemloft.net>
5518
5519         * config/sparc/sparc.c (sparc_profile_hook): If
5520         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
5521         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
5522         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
5523
5524 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
5525
5526         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
5527
5528 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
5529
5530         PR target/36222
5531         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
5532         and op1 expansion before vector concat to have less live pseudos.
5533
5534 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
5535
5536         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
5537         ix86_expand_vector_set if supported.
5538
5539 2008-05-13  Diego Novillo  <dnovillo@google.com>
5540             Kenneth Zadeck  <zadeck@naturalbridge.com>
5541
5542         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
5543
5544         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
5545         phinodes_print_statistics, init_ssanames, fini_ssanames,
5546         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
5547         release_ssa_name, release_defs, replace_ssa_name_symbol,
5548         ssanames_print_statistics): Move ...
5549         * tree-flow.h: ... here.
5550         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
5551         Use FN instead of cfun.
5552         (make_ssa_name_fn): Rename from make_ssa_name.
5553         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
5554         * tree-flow-inline.h (make_ssa_name): Move from
5555         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
5556         * omp-low.c (expand_omp_parallel):
5557         * tree-flow-inline.h (redirect_edge_var_map_result):
5558         * tree-ssa.c (init_tree_ssa): Add argument FN.
5559         Use it instead of cfun.  Update all users.
5560
5561 2008-05-13  Tom Tromey  <tromey@redhat.com>
5562
5563         PR preprocessor/22168:
5564         * doc/cpp.texi (Top): Update menu.
5565         (Alternatives to Wrapper #ifndef): New node.
5566         (Other Directives): Document deprecation.
5567         (Obsolete Features): Remove menu.
5568         (Assertions): Merge node into Obsolete Features.
5569         (Obsolete once-only headers): Move earlier; rename to Alternatives
5570         to Wrapper #ifndef.
5571         * doc/cppopts.texi: Update.
5572         * c.opt (Wdeprecated): Enable for C and ObjC.
5573         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
5574         (C++ Dialect Options): Move -Wno-deprecated from here to...
5575         (Warning Options): ... here.
5576
5577 2008-05-13  Richard Guenther  <rguenther@suse.de>
5578
5579         PR middle-end/36227
5580         * fold-const.c (fold_sign_changed_comparison): Do not allow
5581         changes in pointer-ness.
5582
5583 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
5584
5585         PR target/24713
5586         * config/sh/sh.c (sh_expand_prologue): Don't clear
5587         RTX_FRAME_RELATED_P for push insns.
5588
5589 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
5590
5591         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
5592
5593 2008-05-12  Anatoly Sokolov <aesok@post.ru>
5594
5595         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
5596         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
5597         Use 'machine->is_leaf' instead of 'leaf_func_p'.
5598
5599 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
5600
5601         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
5602         (*vec_concatv4sf_sse): This.
5603         (*sse2_concatv2si): Renamed to ...
5604         (*vec_concatv2si_sse2): This.
5605         (*sse1_concatv2si): Renamed to ...
5606         (*vec_concatv2si_sse): This.
5607         (*vec_concatv2di_rex): Renamed to ...
5608         (*vec_concatv2di_rex64): This.
5609         (*vec_concatv2si_sse4_1): New.
5610         (*vec_concatv2di_rex64_sse4_1): Likewise.
5611
5612 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
5613
5614         PR rtl-optimization/36111
5615         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
5616         that was created for swappable operands.
5617
5618 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
5619
5620         PR ada/36001
5621         * Makefile.in: Substitute GNATMAKE and GNATBIND.
5622         * configure.ac: Add call to ACX_PROG_GNAT.
5623
5624 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
5625
5626         * optc-gen.awk: Fix comment typo.
5627
5628 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5629
5630         * pretty-print.c (pp_integer_with_precision): Use
5631         HOST_LONG_LONG_FORMAT.
5632
5633 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
5634
5635         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
5636                 
5637 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
5638
5639         * config/i386/i386.c (bdesc_ptest): Removed.
5640         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
5641         (bdesc_args): Add __builtin_ia32_ptestz128,
5642         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
5643         (ix86_init_mmx_sse_builtins): Updated.
5644         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
5645         (ix86_expand_builtin): Updated.
5646
5647 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
5648
5649         * tree-cfg.c (valid_fixed_convert_types_p): New function.
5650         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
5651
5652 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
5653
5654         * value-prof.c (interesting_stringop_to_profile): Do not
5655         return early for BUILT_IN_MEMPCPY.
5656
5657 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
5658
5659         * calls.c (expand_call): Don't use callgraph to increase
5660         preferred_stack_boundary.
5661
5662         * cgraph.h (cgraph_rtl_info): Use unsigned on
5663         preferred_incoming_stack_boundary.
5664
5665         * final.c (rest_of_clean_state): Use unsigned on
5666         preferred_stack_boundary.
5667
5668 2008-05-09  Tom Tromey  <tromey@redhat.com>
5669
5670         PR preprocessor/22231:
5671         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
5672         proceeding.
5673
5674 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
5675
5676         PR tree-optimization/36129
5677         * tree-ssa-ccp.c: Include value-prof.h.
5678         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
5679         built-in function was folded to a constant.
5680         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
5681
5682 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
5683             Sebastian Pop  <sebastian.pop@amd.com>
5684
5685         * tree-scalar-evolution.c: Document instantiate_scev.
5686         (instantiate_parameters_1): Renamed instantiate_scev_1.
5687         Don't use the same loop for instantiation_loop and evolution_loop.
5688         (instantiate_scev): New.
5689         (instantiate_parameters): Moved...
5690         (resolve_mixers): Update call to instantiate_scev_1 to pass the
5691         same loop twice.  Maintains the semantics for this function.
5692         * tree-scalar-evolution.h (instantiate_scev): Declare.
5693         (instantiate_parameters): ...here.  Now static inline.
5694         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
5695         instead of resolve_mixers.
5696
5697 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
5698
5699         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
5700
5701 2008-05-09  Tomas Bily  <tbily@suse.cz>
5702
5703         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
5704         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
5705         * tree-ssa-structalias.c (get_constraint_for): Likewise.
5706         * c-common.c (c_common_truthvalue_conversion): Likewise.
5707         * tree-object-size.c (compute_object_offset): Likewise.
5708         * tree-inline.c (estimate_num_insns_1): Likewise.
5709         * varasm.c (const_hash_1, compare_constant, copy_constant)
5710         (compute_reloc_for_constant, output_addressed_constants)
5711         (initializer_constant_valid_p): Likewise.
5712         * c-omp.c (check_omp_for_incr_expr): Likewise.
5713         * gimplify.c (gimplify_expr): Likewise.
5714         * c-typeck.c (c_finish_return): Likewise.
5715         * tree-vectorizer.c (supportable_widening_operation)
5716         (supportable_narrowing_operation): Likewise.
5717         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
5718         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
5719         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
5720         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
5721         (descr_info_loc): Likewise.
5722         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
5723         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
5724         (fold_unary): Likewise.
5725         * builtins.c (get_pointer_alignment): Likewise.
5726         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
5727         (instantiate_parameters_1): Likewise.
5728         * tree.c (expr_align, stabilize_reference): Likewise.
5729         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
5730         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
5731         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
5732         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
5733         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
5734         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
5735         Likewise.
5736         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
5737         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
5738         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
5739         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
5740         (forward_propagate_comparison)
5741         (tree_ssa_forward_propagate_single_use_vars): Likewise.
5742         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
5743         * emit-rtl.c (component_ref_for_mem_expr)
5744         (set_mem_attributes_minus_bitpos): Likewise.
5745         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
5746         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
5747         Likewise.
5748         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
5749         (build_function_call, pointer_diff, build_compound_expr)
5750         (c_finish_return): Likewise.
5751         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
5752         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
5753         Likewise.
5754         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
5755         * expr.c (is_aligning_offset): Likewise.
5756         * tree-ssa-alias.c (is_escape_site): Likewise.
5757         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
5758         (check_all_va_list_escapes): Likewise.
5759         * tree-ssa-loop-ivopts.c (determine_base_object)
5760         (determine_common_wider_type): Likewise.
5761         * dojump.c (do_jump): Likewise.
5762         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
5763         * tree-gimple.c (is_gimple_cast): Likewise.
5764         * fold-const.c (decode_field_reference, )
5765         (fold_sign_changed_comparison, fold_unary, fold_comparison)
5766         (fold_binary): Likewise.
5767         * tree-ssa-alias-warnings.c (find_alias_site_helper)
5768         (already_warned_in_frontend_p): Likewise.
5769         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
5770         * tree.c (really_constant_p, get_unwidened): Likewise.
5771         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
5772         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
5773         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
5774         Likewise.
5775         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
5776         CONVERT_EXPR_P.
5777         (CONVERT_EXPR_P): Define.
5778         (CASE_CONVERT): Define.
5779         
5780 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
5781
5782         PR middle-end/36117
5783         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
5784         (delete_unmarked_insns): When deleting a call, call
5785         delete_unreachable_blocks.
5786         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
5787         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
5788
5789 2008-05-08  Richard Guenther  <rguenther@suse.de>
5790
5791         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
5792         (-ftree-salias): Likewise.
5793         (salias-max-implicit-fields): Remove param documentation.
5794         (salias-max-array-elements): Likewise.
5795         * tree-pass.h (pass_create_structure_vars): Remove.
5796         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
5797         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
5798         * tree-ssa-alias.c (create_structure_vars): Remove.
5799         (gate_structure_vars): Likewise.
5800         (pass_create_structure_vars): Likewise.
5801         (gate_build_alias): Likewise.
5802         (pass_build_alias): Adjust to run always and dump the function.
5803         * common.opt (ftree-salias): Hide.
5804         * passes.c (init_optimization_passes): Remove
5805         pass_create_structure_vars, adjust comment.
5806         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
5807         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
5808         * opts.c (decode_options): Do not set flag_tree_salias.
5809         (common_handle_option): Add OPT_ftree_salias to the backward
5810         compatibility section.
5811
5812 2008-05-08  Richard Guenther  <rguenther@suse.de>
5813
5814         * tree-flow-inline.h (var_can_have_subvars): Move ...
5815         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
5816         * tree-flow.h (var_can_have_subvars): Remove.
5817         (push_fields_onto_fieldstack): Remove.
5818         (sort_fieldstack): Likewise.
5819         (struct fieldoff): Move ...
5820         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
5821         alias_set and base_for_components fields.
5822         (sort_fieldstack): Make static.
5823         (push_fields_onto_fieldstack): Likewise.  Remove code that
5824         handles anything but RECORD_TYPEs.  Remove alias_set and
5825         base_for_components handling.
5826         (create_variable_info_for): Adjust.
5827
5828 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
5829
5830         * common.opt (Wframe-larger-than=): Shorten the help message
5831         to one line.
5832         * doc/invoke.texi (Wframe-larger-than=): Add more description.
5833
5834 2008-05-08  Rafael Espindola  <espindola@google.com>
5835
5836         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
5837         trap.
5838         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
5839         trap and that both operands are gimple values.
5840         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
5841         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
5842         is a fp operation.
5843
5844 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
5845
5846         * read-rtl.c (join_c_conditions): Return the first string if the
5847         two strings are equal.
5848
5849 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
5850
5851         * gensupport.h (pred_data): Add a "num_codes" field.
5852         (add_predicate_code): Declare.
5853         * gensupport.c (add_predicate_code): New function.
5854         (std_pred_table): Add an "allows_const_p" field.
5855         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
5856         Remove the (incomplete) list of such codes from the codes field.
5857         (init_predicate_table): Use add_predicate_code.  Add all
5858         RTX_CONST_OBJs if allows_const_p is true.
5859         * genrecog.c (process_define_predicate): Use add_predicate_code.
5860
5861 2008-05-08  David Daney  <ddaney@avtrex.com>
5862             Richard Sandiford  <rsandifo@nildram.co.uk>
5863         
5864         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
5865         special case of constant zero operands.
5866         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
5867         old and new values.  Special case constant zero values.
5868         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
5869         fails.
5870         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
5871         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
5872
5873 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
5874
5875         PR target/36090
5876         * simplify-rtx.c (simplify_plus_minus): Create CONST of
5877         similar RTX_CONST_OBJ before CONST_INT.
5878
5879 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
5880
5881         * stmt.c (expand_stack_restore): Change sa mode if needed.
5882
5883 2008-05-08  Richard Guenther  <rguenther@suse.de>
5884
5885         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
5886         return type to bool.
5887         (ix86_sol10_return_in_memory): Likewise.
5888         (ix86_i386elf_return_in_memory): Likewise.
5889         (ix86_i386interix_return_in_memory): Likewise.
5890         * config/i386/i386.c (ix86_return_in_memory): Likewise.
5891         (ix86_sol10_return_in_memory): Likewise.
5892         (ix86_i386elf_return_in_memory): Likewise.
5893         (ix86_i386interix_return_in_memory): Likewise.
5894
5895 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
5896
5897         PR bootstrap/36180
5898         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
5899         fndecl argument.
5900         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
5901         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
5902         declared in front.
5903
5904 2008-05-08  Richard Guenther  <rguenther@suse.de>
5905
5906         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
5907         * tree-data-ref.h (struct dr_alias): Remove subvars field.
5908         (DR_SUBVARS): Remove.
5909         * tree-dfa.c (dump_subvars_for): Remove.
5910         (debug_subvars_for): Likewise.
5911         (dump_variable): Do not dump subvars.
5912         (remove_referenced_var): Do not remove subvars.
5913         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
5914         (lookup_subvars_for_var): Remove.
5915         (get_subvars_for_var): Likewise.
5916         (get_subvars_at): Likewise.
5917         (get_first_overlapping_subvar): Likewise.
5918         (overlap_subvar): Likewise.
5919         * tree-flow.h (subvar_t): Remove.
5920         (struct var_ann_d): Remove subvars field.
5921         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
5922         argument.  Remove special handling of SFTs.
5923         (compute_tag_properties): Likewise.
5924         (set_initial_properties): Likewise.
5925         (compute_call_clobbered): Likewise.
5926         (count_mem_refs): Likewise.
5927         (compute_memory_partitions): Likewise.
5928         (compute_flow_insensitive_aliasing): Likewise.
5929         (setup_pointers_and_addressables): Likewise.
5930         (new_type_alias): Likewise.
5931         (struct used_part): Remove.
5932         (used_portions): Likewise.
5933         (struct used_part_map): Likewise.
5934         (used_part_map_eq): Likewise.
5935         (used_part_map_hash): Likewise.
5936         (free_used_part_map): Likewise.
5937         (up_lookup): Likewise.
5938         (up_insert): Likewise.
5939         (get_or_create_used_part_for): Likewise.
5940         (create_sft): Likewise.
5941         (create_overlap_variables_for): Likewise.
5942         (find_used_portions): Likewise.
5943         (create_structure_vars): Likewise.
5944         * tree.def (STRUCT_FIELD_TAG): Remove.
5945         * tree.h (MTAG_P): Adjust.
5946         (struct tree_memory_tag): Remove base_for_components and
5947         unpartitionable flags.
5948         (struct tree_struct_field_tag): Remove.
5949         (SFT_PARENT_VAR): Likewise.
5950         (SFT_OFFSET): Likewise.
5951         (SFT_SIZE): Likewise.
5952         (SFT_NONADDRESSABLE_P): Likewise.
5953         (SFT_ALIAS_SET): Likewise.
5954         (SFT_UNPARTITIONABLE_P): Likewise.
5955         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
5956         (union tree_node): Remove sft field.
5957         * alias.c (get_alias_set): Remove special handling of SFTs.
5958         * print-tree.c (print_node): Remove handling of SFTs.
5959         * tree-dump.c (dequeue_and_dump): Likewise.
5960         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
5961         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
5962         * tree-predcom.c (set_alias_info): Do not set subvars.
5963         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
5964         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
5965         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
5966         (add_vars_for_offset): Remove.
5967         (add_virtual_operand): Remove special handling of SFTs.
5968         (add_call_clobber_ops): Likewise.
5969         (add_call_read_ops): Likewise.
5970         (get_asm_expr_operands): Likewise.
5971         (get_modify_stmt_operands): Likewise.
5972         (get_expr_operands): Likewise.
5973         (add_to_addressable_set): Likewise.
5974         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
5975         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
5976         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
5977         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
5978         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
5979         (tree_node_structure): Likewise.
5980         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
5981         handling of SFTs.
5982         (find_what_p_points_to): Likewise.
5983
5984 2008-05-08  Sa Liu  <saliu@de.ibm.com>
5985
5986         * config/spu/spu.md: Fixed subti3 pattern.
5987
5988 2008-05-08  Richard Guenther  <rguenther@suse.de>
5989
5990         PR middle-end/36154
5991         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
5992         sure to create a representative for trailing arrays for PTA.
5993
5994 2008-05-08  Richard Guenther  <rguenther@suse.de>
5995
5996         PR middle-end/36172
5997         * fold-const.c (operand_equal_p): Two objects which types
5998         differ in pointerness are not equal.
5999
6000 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
6001
6002         * calls.c (compute_argument_block_size): Add argument tree fndecl.
6003         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
6004         (emit_library_call_value_1): Add new variable fndecl initialized by
6005         NULL_TREE. It should be the decl type of orgfun, but this information
6006         seems not to be available here, so it uses the default calling abi.
6007         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
6008         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
6009         by TARGET_RETURN_IN_MEMORY.
6010         * config/i386/i386-interix.h: Likewise.
6011         * config/i386/i386.h: Likewise.
6012         * config/i386/i386elf.h: Likewise.
6013         * config/i386/ptx4-i.h: Likewise.
6014         * config/i386/sol2-10.h: Likewise.
6015         * config/i386/sysv4.h: Likewise.
6016         * config/i386/vx-common.h: Likewise.
6017         * config/cris/cris.h: Removed #if 0 clause.
6018         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
6019         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
6020         argument.
6021         (ix86_sol10_return_in_memory): Likewise.
6022         (ix86_i386elf_return_in_memory): New.
6023         (ix86_i386interix_return_in_memory): New.
6024         * config/mt/mt-protos.h (mt_return_in_memory): New.
6025         * config/mt/mt.c: Likewise.
6026         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
6027         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
6028         * config/bfin/bfin.h: Likewise.
6029         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
6030         argument.
6031         * config/bfin/bfin.c: Likewise.
6032         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
6033         * config/alpha/unicosmk.h: Likewise.
6034         * config/i386/cygming.h: Likewise.
6035         * config/iq2000/iq2000.h: Likewise.
6036         * config/mips/mips.h: Likewise.
6037         * config/mn10300/mn10300.h: Likewise.
6038         * config/rs6000/rs6000.h: Likewise.
6039         * config/score/score.h: Likewise.
6040         * config/spu/spu.h: Likewise.
6041         * config/v850/v850.h: Likewise.
6042         * defaults.h: Likewise.
6043         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
6044         * expr.c (emit_block_move): Adjust use of
6045         OUTGOING_REG_PARM_STACK_SPACE.
6046         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
6047         OUTGOING_REG_PARM_STACK_SPACE.
6048         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
6049
6050 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
6051
6052         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
6053         on OMP_RETURN for OMP_FOR.
6054
6055         PR debug/35896
6056         * dwarf2out.c (dw_expand_expr, common_check): Removed.
6057         (fortran_common): New function.
6058         (gen_variable_die): Call fortran_common instead of common_check,
6059         adjust for it returning tree instead of rtx.  Formatting.
6060
6061 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
6062
6063         PR rtl/7335
6064         PR rtl/33826
6065         * see.c (see_copy_insn): Copy new pure const attributes for new call.
6066         * c-decl.c (merge_decls): Ditto.
6067         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
6068         to RTL_CONST_OR_PURE_CALL_P.
6069         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
6070         Initialized DECL_LOOPING_CONST_PURE.
6071         (process_call_operands): Set tree_side_effects properly.
6072         * tree.h (TREE_READONLY_DECL_P): Removed.
6073         (DECL_IS_PURE): Renamed to DECL_PURE_P.
6074         (DECL_LOOPING_OR_CONST_P): New macro.
6075         (struct tree_function_decl): Added looping_const_or_pure_p.
6076         (ECF_*) Renumbered.
6077         (ECF_LOOPING_OR_CONST_P): New macro.
6078         * rtlanal.c (pure_const_p): Removed.
6079         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
6080         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
6081         to RTL_CONST_CALL_P.
6082         * ipa-pure-const.c (pure_const_state_e): Added looping field.
6083         (check_decl, check_tree, check_call, scan_function): Initialize
6084         looping.
6085         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
6086         (static_execute): Set looping true for recursive functions.
6087         Undo setting state to IPA_NEITHER for recursive functions.
6088         * cse.c (cse_insn): 
6089         * ifcvt.c (noce_can_store_speculate_p): Changed
6090         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
6091         RTL_CONST_OR_PURE_CALL_P.
6092         * dse.c (scan_insn): Ditto.
6093         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
6094         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
6095         RTL_CONST_OR_PURE_CALL_P.
6096         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
6097         pure_call_p to RTL_CONST_CALL_P.
6098         * gimplify.c (gimplify_call_expr): Clear side effects for
6099         non-looping pure and constant calls.
6100         * calls.c (emit_call_1): Set rtl flags from ecf flags.
6101         (flags_from_decl_or_type): Set ecf flags from decl flags.
6102         (initialize_argument_information): Turn off
6103         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
6104         Change const to pure if callee_copies is true rather than just
6105         turning off const.
6106         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
6107         way of marking pure calls.
6108         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
6109         Remove hack that was supposed to fix pr7335 and remove old
6110         way of marking pure calls.
6111         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
6112         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
6113         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
6114         RTL_CONST_OR_PURE_CALL_P.
6115         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
6116         * loop-invariant.c (find_exits, find_invariant_bb): Changed
6117         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
6118         * sched-deps.c (schedule_analyze): Ditto.
6119         * rtl.h (struct rtx_def): Use call field, unchanging field, and
6120         return_val field of calls to represent pure and const function info.
6121         (CONST_OR_PURE_CALL_P): Deleted macro.
6122         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
6123         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
6124         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
6125         TREE_READONLY.
6126         * tree-optimize.c (execute_fixup_cfg): Added test for
6127         ECF_LOOPING_CONST_OR_PURE.
6128         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
6129         DECL_PURE_P.
6130         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
6131         effects for looping pure or const calls.
6132         (verify_gimple_expr): Added verification code. 
6133         * config/alpha/alpha.c (alpha_legitimize_address,
6134         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
6135         RTL_CONST_CALL_P.
6136         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
6137         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
6138         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
6139         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
6140         RTL_CONST_OR_PURE_CALL_P.
6141         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
6142         and const calls to be deleted.
6143
6144 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
6145
6146         PR target/35714
6147         * config/i386/mmx.md (mmx_subv2sf3): New expander.
6148         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
6149         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
6150         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
6151         to handle nonimmediate operands.
6152         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
6153         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
6154         to handle nonimmediate operands.
6155         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
6156         (mmx_pmulhrwv4hi3): New expander.  Use
6157         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6158         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
6159         (sse2_umulv1siv1di3): New expander.  Use
6160         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6161         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
6162         (mmx_eq<mode>3): New expander.  Use
6163         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6164         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
6165         (mmx_uavgv8qi3): New expander.  Use
6166         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6167         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
6168         (mmx_uavgv4hi3): New expander.  Use
6169         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6170
6171         * config/i386/sse.md
6172         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
6173         to handle nonimmediate operands.
6174         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
6175         to handle nonimmediate operands.
6176         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
6177         to handle nonimmediate operands.
6178         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
6179         to handle nonimmediate operands.
6180         (sse2_unpckhpd_exp): New expander.  Use
6181         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6182         (sse2_unpcklpd_exp): New expander.  Use
6183         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6184         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
6185         to handle nonimmediate operands.
6186         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
6187         to handle nonimmediate operands.
6188         (*sse2_<plusminus_insn><mode>3): Rename from
6189         sse2_<plusminus_insn><mode>3 insn pattern.
6190         (sse2_<plusminus_insn><mode>3): New expander.  Use
6191         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6192         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
6193         (sse2_umulv2siv2di3): New expander.  Use
6194         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6195         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
6196         (sse4_1_mulv2siv2di3): New expander.  Use
6197         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6198         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
6199         (sse2_pmaddwd): New expander.  Use
6200         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6201         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
6202         (sse2_eq<mode>3): New expander.  Use
6203         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6204         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
6205         (sse4_1_eqv2di3): New expander.  Use
6206         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6207         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
6208         (sse2_uavgv16qi3): New expander.  Use
6209         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6210         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
6211         (sse2_uavgv16qi3): New expander.  Use
6212         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6213         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
6214         (sse2_uavgv8hi3): New expander.  Use
6215         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6216         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
6217         (ssse3_pmulhrswv8hi3): New expander.  Use
6218         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6219         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
6220         (ssse3_pmulhrswv4hi3): New expander.  Use
6221         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6222
6223         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
6224         (<sse>_vmmul<mode>3): Ditto.
6225         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
6226         (divv2df3): Ditto.
6227         (ssse3_pmaddubsw128): Use register_operand for operand 1.
6228         (ssse3_pmaddubsw): Ditto.
6229
6230         * config/i386/i386.c (struct_builtin_description)
6231         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
6232         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
6233         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
6234         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
6235         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
6236         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
6237         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
6238         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
6239         (ix86_fixup_binary_operands): Assert that src1
6240         and src2 must have the same mode when swapped.
6241         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
6242         and ix86_binary_operator_ok.  Do not force operands in registers
6243         when optimizing.
6244
6245 2008-05-07  Jan Hubicka  <jh@suse.cz>
6246
6247         * cgraph.c (dump_cgraph_node): Update.
6248         * cgraph.h (cgraph_local_info): Break out inline summary.
6249         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
6250         hook.
6251         * ipa-inline (inline_summary): New accestor function.
6252         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
6253         cgraph_decide_inlining, compute_inline_parameters): Update.
6254         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
6255
6256 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
6257
6258         Cleanup ColdFire scheduling support and add V4 pipeline model.
6259
6260         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
6261         (define_attr cpu): Add cfv4 value.
6262         (define_attr type, define_attr type1): Merge into a single 'type'
6263         attribute.  Update all uses.
6264         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
6265         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
6266         Update all uses.
6267         (define_attr opx_mem, define_attr opy_mem): Remove.
6268         (define_attr op_mem): Clean up, update comment.
6269         (define_attr size): Use specific values instead of general int.
6270         (define_attr guess, define_attr split): Remove.  Update all uses.
6271         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
6272         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
6273         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
6274         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
6275         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
6276         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
6277         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
6278         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
6279         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
6280         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
6281         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
6282         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
6283         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
6284         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
6285         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
6286         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
6287         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
6288         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
6289         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
6290         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
6291         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
6292         Update or set attributes.
6293         (stack_tie): New fake instruction.
6294
6295         * config/m68k/m68k.h (TUNE_CFV4): New macro.
6296         (m68k_sched_attr_size): Update declaration.
6297         (m68k_sched_attr_type2): Remove.
6298         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
6299         Declare new bypass predicates.
6300
6301         * config/m68k/m68k.c (m68k_sched_issue_rate,
6302         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
6303         implementations.
6304         (TARGET_SCHED_ISSUE_RATE,
6305         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
6306         (override_options): Handle scheduling for ColdFire V4 core.
6307         (m68k_expand_prologue): Emit stack_tie.
6308         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
6309         'OP_TYPE_FPN'.  Update all uses.
6310         (sched_guess_p): Remove.
6311         (sched_address_type): Handle symbolic addresses.
6312         (sched_get_operand): New static function.
6313         (sched_operand_type): Merge into sched_attr_op_type.
6314         (sched_attr_op_type): Handle FP registers, handle quick constants,
6315         update.
6316         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
6317         (m68k_sched_attr_size): Update.  Move logic to ...
6318         (sched_get_attr_size_int): New static function.
6319         (sched_get_opxy_mem_type): New static function.
6320         (m68k_sched_attr_op_mem): Update.
6321         (m68k_sched_attr_type2): Remove.
6322         (sched_cfv4_bypass_data): New static variable.
6323         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
6324         (m68k_sched_issue_rate): Implement scheduler hook.
6325         (struct _sched_ib: enabled_p): New field.
6326         (m68k_sched_variable_issue): Update.  Handle V4.
6327         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
6328         sched_dump_class_func_t, sched_dump_split_class,
6329         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
6330         sched_dump_dfa_class, m68k_sched_dump): Remove.
6331         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
6332         hook.
6333         (m68k_sched_init_global): Remove statisctics dumping, introduce
6334         sanity check that all instructions have pipeline reservations.  Handle
6335         ColdFire V4 core.
6336         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
6337         Handle ColdFire V4 core.
6338         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
6339         New static functions.
6340         (m68k_sched_address_bypass_p): New bypass predicate.
6341         (sched_get_indexed_address_scale): New static function.
6342         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
6343
6344         * cf.md: Update comments.
6345         (define_attr type2): Remove.  Use 'type' attribute instead.
6346         Update all uses.
6347         (cf_ib): Rename to cfv123_ib.  Update all uses.
6348         (cf_oep): Rename to cfv123_oep.  Update all uses.
6349         (cf_chr): Rename to cfv123_chr.  Update all uses.
6350         (cf_mem): Rename to cfv123_mem.  Update all uses.
6351         (cf_mac): Move to more appropriate place.
6352         (cfv123_guess): New automaton and cpu_unit.
6353         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
6354         Update uses of 'size' attribute.  Handle before reload scheduling.
6355         (cfv123_guess): New dummy reservation for unhandled instructions.
6356         (cfv4_*): Pipeline description of ColdFire V4 core.
6357         (ignore): New reservation to handle 'ignore' type.
6358
6359 2008-05-07  Ian Lance Taylor  <iant@google.com>
6360
6361         PR middle-end/36013
6362         * gimplify.c (find_single_pointer_decl_1): Don't look through
6363         indirections.
6364         (find_single_pointer_decl): Adjust comments.
6365
6366 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
6367
6368         PR middle-end/36137
6369         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
6370         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
6371
6372         PR middle-end/36106
6373         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
6374         integral type rather than floating point, then VIEW_CONVERT_EXPR
6375         to the floating point type.
6376
6377 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
6378
6379         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
6380         TFmode op0 to register.
6381
6382 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
6383
6384         * c-decl.c (grokdeclarator): Comment typo.
6385
6386 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
6387
6388         * tree-flow.h: Remove prototype for computed_goto_p.
6389         * tree-cfg.c (computed_goto_p): Make static.
6390
6391 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
6392
6393         PR target/35657
6394         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
6395         (contains_aligned_value_p): This.  Handle _Decimal128.
6396         (ix86_function_arg_boundary): Only align _Decimal128 to its
6397         natural boundary and handle it properly.
6398
6399 2008-05-06  Martin Jambor  <mjambor@suse.cz>
6400
6401         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
6402         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
6403         (ipcp_method_set_orig_node): Removed.
6404         (ipcp_cval_get_cvalue_type): Removed.
6405         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
6406         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
6407         (ipcp_cval_set_cvalue_type): Removed.
6408         (ipcp_cval_get_cvalue): Removed.
6409         (ipcp_cval_set_cvalue): Removed.
6410         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
6411         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
6412         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
6413         (ipcp_cval_meet): Renamed to ipa_lattice_meet
6414         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
6415         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
6416         (ipcp_get_ith_lattice): Changed parameters.
6417         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
6418         (ipcp_lattice_from_jfunc): Changed parameters.
6419         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
6420         (ipcp_method_cval_print): Added temporary variable info.
6421         (ipcp_redirect): Removed already unused local variable caller.
6422         (ipcp_redirect): New temporary variable orig_callee_info
6423         (ipcp_redirect): Removed newly unused local variable callee.
6424         (ipcp_redirect): Removed (a bit confusing) local variable type.
6425         (ipcp_insert_stage): Added local variable info.
6426         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
6427         renamed too
6428         (ipcp_formal_create): Removed.
6429         (ipcp_method_cval_set): Removed.
6430         (ipcp_propagate_stage): Renamed lattice variables.
6431         (ipcp_method_cval_set_cvalue_type): Removed.
6432         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
6433         (ipcp_print_all_lattices): Changed printed strings to refer to 
6434         lattices rather than cvals.
6435         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
6436         (ipcp_propagate_const): Changed formal parameters.
6437         (build_const_val): Changed formal parameters.
6438         (ipcp_insert_stage): Removed useless variable cvalue
6439         (build_const_val): Changed formal parameters.
6440         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
6441         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
6442         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
6443         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
6444         (ipcp_print_func_profile_counts): Changed string from "method" to 
6445         "function"
6446         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
6447         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
6448         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
6449         (ipcp_structures_print): Renamed to ipcp_print_all_structures
6450         (ipcp_profile_print): Renamed to ipcp_print_profile_data
6451         (ipcp_lat_is_const): Changed parameters and made inline.
6452         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
6453         (ipcp_redirect): Renamed to ipcp_need_redirect_p
6454         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
6455         the predicate condition directly
6456         (ipcp_propagate_stage): Added local variable args. Removed local
6457         variable callee.  (Both are mere code simplifications.)
6458         (ipcp_method_dont_insert_const): Renamed to
6459         ipcp_node_not_modifiable_p.
6460         (ipcp_node_not_modifiable_p): Made inline.
6461         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
6462         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
6463         (ipcp_print_all_lattices): Removed variable cvalue
6464         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
6465         Updated comments.
6466
6467 2008-05-06  Olivier Hainque  <hainque@adacore.com>
6468
6469         * tree-sra.c (try_instantiate_multiple_fields): Early return
6470         if field has POINTER_TYPE.
6471
6472 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
6473
6474         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
6475         by using 'q' specifier for instruction.
6476         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
6477
6478 2008-05-06  Anatoly Sokolov <aesok@post.ru>
6479
6480         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
6481         Change mode of zero_extract from QImode to HImode.
6482         (sign bit tests peepholes): (Ditto.).
6483
6484 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
6485
6486         * config/i386/mmx.md: Remove double backslashes from asm templates.
6487         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
6488         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
6489         to handle nonimmediate operands.
6490         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
6491         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
6492         to handle nonimmediate operands.
6493         (*mmx_<code>v2sf3_finite): New insn pattern.
6494         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
6495         (mmx_<code>v2sf3): New expander.  Use
6496         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6497         (mmx_<plusminus_insn><mode>3): New expander.  Use
6498         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6499         (*mmx_<plusminus_insn><mode>3): New insn pattern.
6500         (mmx_add<mode>3): Removed.
6501         (mmx_ssadd<mode>3): Ditto.
6502         (mmx_usadd<mode>3): Ditto.
6503         (mmx_sub<mode>3): Ditto.
6504         (mmx_sssub<mode>3): Ditto.
6505         (mmx_ussub<mode>3): Ditto.
6506         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
6507         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
6508         to handle nonimmediate operands.
6509         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
6510         insn pattern.
6511         (mmx_smulv4hi3_highpart): New expander.  Use
6512         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6513         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
6514         insn pattern.
6515         (mmx_umulv4hi3_highpart): New expander.  Use
6516         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6517         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
6518         (mmx_<code>v4hi3): New expander.  Use
6519         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6520         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
6521         (mmx_<code>v8qi3): New expander.  Use
6522         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6523         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
6524         (mmx_<code><mode>3): New expander.  Use
6525         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6526
6527 2008-05-05  Jan Hubicka  <jh@suse.cz>
6528
6529         PR tree-optimization/36118
6530         * passes.c (pass_init_dump_file): Fix dump header.
6531
6532 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6533
6534         PR middle-end/36141
6535         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
6536         VCE for function decls.
6537
6538 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
6539
6540         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
6541
6542 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
6543
6544         * config/i386/i386.md (sat_plusminus): New.
6545         (plusminus_insn): Likewise.
6546         (plusminus_mnemonic): Likewise.
6547         (addsub): Removed.
6548         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
6549         (*<addsub><mode>3_cc_overflow): Renamed to ...
6550         (*<plusminus_insn><mode>3_cc_overflow): This.
6551         (*<addsub>si3_zext_cc_overflow): Renamed to ...
6552         (*<plusminus_insn>si3_zext_cc_overflow): This.
6553
6554         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
6555         (<plusminus_insn><mode>3): This.
6556         (*<addsub><mode>3): Renamed to ...
6557         (*<plusminus_insn><mode>3): This.
6558         (<sse>_vm<addsub><mode>3): Renamed to ...
6559         (<sse>_vm<plusminus_insn><mode>3): This.
6560         (sse3_h<addsub>v4sf3): Renamed to ...
6561         (sse3_h<plusminus_insn>v4sf3): This.
6562         (sse3_h<addsub>v2df3): Renamed to ...
6563         (sse3_h<plusminus_insn>v2df3): This.
6564         (<plusminus_insn><mode>3): New.
6565         (*<plusminus_insn><mode>3): Likewise.
6566         (sse2_<plusminus_insn><mode>3): Likewise.
6567         (add<mode>): Removed.
6568         (*add<mode>3): Likewise.
6569         (sse2_ssadd<mode>3): Likewise.
6570         (sse2_usadd<mode>3): Likewise.
6571         (sub<mode>3): Likewise.
6572         (*sub<mode>3): Likewise.
6573         (sse2_sssub<mode>3): Likewise.
6574         (sse2_ussub<mode>3): Likewise.
6575
6576 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
6577
6578         * gthr-single.h: Add in required interface elements as per gthr.h.
6579         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
6580         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
6581         Generalize UNUSED macro. 
6582         (__gthread_once): Add.
6583         (__gthread_key_create): Add.
6584         (__gthread_key_delete): Add.
6585         (__gthread_getspecific): Add.
6586         (__gthread_setspecific): Add.
6587         
6588 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
6589
6590         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
6591         the same size types for the indirect reference on the rhs, then
6592         create a VCE.
6593
6594 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
6595
6596         * config/i386/i386.md
6597         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
6598         one insn template instead of template series.
6599         (*xordi_1_rex64): Ditto.
6600         (*xordi_2_rex64): Ditto.
6601
6602 2008-05-05  Ira Rosen  <irar@il.ibm.com>
6603
6604         PR tree-optimization/36119
6605         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
6606         in case of SLP.
6607
6608 2008-06-04  Jan Hubicka  <jh@suse.cz>
6609
6610         tree-optimization/36100
6611         * tree-pass.h (pass_O0_always_inline): Declare.
6612         * ipa-inline.c (inline_transform): Remove dead code.
6613         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
6614         pass_O0_always_inline): New.
6615         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
6616
6617 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
6618
6619         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
6620         mnemonic in this_param move for TARGET_64BIT.
6621
6622 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
6623
6624         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
6625         (*strmovsi_rex_1): Ditto.
6626         (*strsetsi_1): Ditto.
6627         (*strsetsi_rex_1): Ditto.
6628
6629         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
6630         adddicc expanders using SWI mode iterator.
6631
6632 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
6633
6634         PR target/36121
6635         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
6636         argument handling.
6637
6638 2008-05-04  David S. Miller  <davem@davemloft.net>
6639
6640         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
6641         (sparc*-*-linux*): Use linux.h in tm_file.
6642         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
6643         compiler defaulting to 32-bit.
6644         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
6645         no longer needed.
6646         * config/sparc/linux.h: Remove definitions now obtained
6647         properly from linux.h
6648         * config/sparc/linux64.h: Likewise.
6649         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
6650         don't want this setting for 32-bit builds in a biarch compiler.
6651         * doc/install.texi: Add sparc-linux to list of targets
6652         supporting --enable-targets=all.
6653
6654 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
6655
6656         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
6657
6658 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
6659
6660         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
6661         after V4SI_FTYPE_V8HI.
6662         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
6663         case V4SI_FTYPE_V2DF.
6664
6665 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
6666
6667         * doc/invoke.texi (max-flow-memory-locations): Removed.
6668         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
6669         
6670 2008-05-03  Richard Guenther  <rguenther@suse.de>
6671
6672         PR middle-end/34973
6673         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
6674
6675 2008-05-02  David S. Miller  <davem@davemloft.net>
6676
6677         * config.gcc (need_64bit_hwint): Document libcpp dependency.
6678
6679 2008-05-02  Simon Baldwin <simonb@google.com>
6680
6681         PR bootstrap/36108
6682         * c-common.h (warn_array_subscript_range): Removed.
6683         * c-common.c (warn_array_subscript_range): Ditto.
6684         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
6685         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
6686
6687 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
6688
6689         * config/i386/i386.c (ix86_special_builtin_type): New.
6690         (bdesc_special_args): Likewise.
6691         (ix86_expand_special_args_builtin): Likewise.
6692         (ix86_init_mmx_sse_builtins): Updated.
6693         (ix86_expand_builtin): Updated.
6694         (ix86_expand_store_builtin): Removed.
6695         (ix86_expand_unop_builtin): Likewise.
6696
6697         * config/i386/mm3dnow.h (__v2sf): Moved to ...
6698         * config/i386/mmintrin.h (__v2sf): Here.
6699
6700         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
6701         const __v2sf.
6702         (_mm_loadl_pi): Likewise.
6703         (_mm_storeh_pi): Replace __v2si with __v2sf.
6704         (_mm_storel_pi): Likewise.
6705
6706         * doc/extend.texi: Correct __builtin_ia32_loadhps,
6707         __builtin_ia32_loadlps, __builtin_ia32_storehps,
6708         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
6709         __builtin_ia32_loadlpd.
6710
6711 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
6712
6713         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
6714         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
6715         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
6716         (ix86_init_mmx_sse_builtins): Updated.
6717         (ix86_expand_args_builtin): Likewise.
6718         (ix86_expand_builtin): Likewise.
6719         (ix86_expand_unop1_builtin): Renamed to ...
6720         (ix86_expand_unop_vec_merge_builtin): This.
6721
6722 2008-05-01  Jan Hubicka  <jh@suse.cz>
6723
6724         PR bootstrap/36100
6725         * ipa-inline.c (inline_generate_summary): Make static.
6726         (inline_transform): Do not call inlining at -O0; make static.
6727         * passes.c (execute_todo): Add sanity check.
6728         (execute_one_ipa_transform_pass): Execute proper flags.
6729
6730 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
6731
6732         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
6733         (DECL_NONADDRESSABLE_P): Likewise.
6734         * alias.c (record_component_aliases): Fix comment.
6735
6736 2008-05-01  Simon Baldwin <simonb@google.com>
6737
6738         * c-common.h (warn_array_subscript_range): New function.
6739         * c-common.c (warn_array_subscript_range): Ditto.
6740         * tree-vrp.c (check_array_ref): Corrected code to agree with
6741         comment, ignoring only arrays of size 0 or size 1.
6742         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
6743
6744 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
6745
6746         * config/i386/i386.c (ix86_builtin_type): Replace
6747         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
6748         (bdesc_args): Updated.
6749         (ix86_init_mmx_sse_builtins): Likewise.
6750         (ix86_expand_args_builtin): Likewise.
6751
6752         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
6753         with __v1di.
6754
6755         * doc/extend.texi: Correct __builtin_ia32_palignr.
6756
6757 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
6758
6759         PR target/36095
6760         * config/i386/i386.c (bdesc_crc32): Removed.
6761         (ix86_expand_crc32): Likewise.
6762         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
6763         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
6764         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
6765         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
6766         UINT_FTYPE_UINT_UCHAR.
6767         (bdesc_args): Updated. Add crc32 builtins.
6768         (ix86_init_mmx_sse_builtins): Updated.
6769         (ix86_expand_args_builtin): Updated to support subreg.
6770
6771         * doc/extend.texi: Correct __builtin_ia32_crc32di.
6772
6773 2008-05-01  Jan Hubicka  <jh@suse.cz>
6774
6775         * tree-pass.h (opt_pass): Add IPA_PASS.
6776         (varpool_node, cgraph_node): Forward declare.
6777         (ipa_opt_pass): Define.
6778         (pass_ipa_inline): Turn into ipa_opt_pass.
6779         (pass_apply_inline): Remove.
6780         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
6781         (apply_inline): Turn into ....
6782         (inline_transform): ... this one.
6783         (inline_generate_summary): New function.
6784         (pass_apply_inline): Remove.
6785         * function.h (ipa_opt_pass): Forward declare structure; typedef;
6786         vector.
6787         (struct function): Add ipa_transforms_to_apply.
6788         * passes.c (register_one_dump_file): Work on IPA_PASS.
6789         (init_optimization_passes): Remove pass_inline_parameters and
6790         pass_apply_inline.
6791         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
6792         (execute_one_pass) ... here; apply transforms when possible.
6793         (add_ipa_transform_pass, execute_ipa_summary_asses,
6794         execute_one_ipa_transform_pass): New.
6795         (execute_ipa_pass_list): Update for IPA_PASS type.
6796
6797 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
6798
6799         * config/i386/i386.c (ix86_builtin_type): Add
6800         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
6801         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
6802         (bdesc_args): Add SSE4a builtins.
6803         (ix86_init_mmx_sse_builtins): Updated.
6804         (ix86_expand_args_builtin): Likewise.
6805         (ix86_expand_builtin): Likewise.
6806
6807 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
6808
6809         * config/i386/i386.c (ix86_builtin_type): Add
6810         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
6811         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
6812         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
6813         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
6814         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
6815         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
6816         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
6817         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
6818         and DI_FTYPE_DI_DI_INT.
6819         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
6820         (ix86_init_mmx_sse_builtins): Updated.
6821         (ix86_expand_args_builtin): Likewise.
6822         (ix86_expand_builtin): Likewise.
6823         (ix86_expand_binop_imm_builtin): Removed.
6824
6825         * doc/extend.texi: Correct __builtin_ia32_palignr128.
6826
6827 2008-04-30  Richard Guenther  <rguenther@suse.de>
6828
6829         PR tree-optimization/32921
6830         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
6831
6832 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
6833
6834         * config/arm/arm.c (arm_unwind_emit): Use
6835         crtl->all_throwers_are_sibcalls instead of
6836         cfun->all_throwers_are_sibcalls.
6837         (arm_output_fn_unwind): Likewise.
6838         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
6839         instead of cfun->uses_pic_offset_table.
6840         (frv_expand_prologue): Likewise.
6841         (frv_frame_pointer_required): Likewise.
6842         (frv_expand_fdpic_call): Likewise.
6843         (frv_emit_movsi): Likewise.
6844         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
6845         cfun->returns_pcc_struct instead of
6846         current_function_returns_pcc_struct.
6847         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
6848         instead of cfun->calls_eh_return.
6849         (m32c_pushm_popm): Likewise.
6850         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
6851         "extern" declaration.
6852
6853 2008-04-30  Richard Guenther  <rguenther@suse.de>
6854
6855         PR tree-optimization/21636
6856         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
6857         constant address.
6858         (evaluate_stmt): Print the likely value.
6859         (ccp_visit_stmt): Avoid excessive vertical spacing.
6860
6861 2008-04-30  Rafael Espindola  <espindola@google.com>
6862
6863         * builtins.c (fold_call_expr): Return realret.
6864         * tree-ssa-threadedge.c
6865         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
6866         __builtin_object_size.
6867
6868 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
6869
6870         * gcc.c (wrapper_string): New variable.
6871         (insert_wrapper): New function.
6872         (execute): New option -wrapper.
6873         * doc/invoke.texi (Overall Options): New driver option -wrapper.
6874
6875 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
6876
6877         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
6878         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
6879         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
6880         from...
6881         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
6882         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
6883         config/rs6000/e500crtres64gprctr.asm,
6884         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
6885         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
6886         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
6887         config/rs6000/e500crtsav64gprctr.asm,
6888         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
6889         config/rs6000/e500crtsavg64gprctr.asm: New files.
6890         * config/rs6000/t-ppccomm: Add build rules for new files.
6891         (LIB2FUNCS_STATIC_EXTRA): Add new files.
6892         * config/rs6000/t-netbsd: Add build rules for new files.
6893         (LIB2FUNCS_STATIC_EXTRA): New variable.
6894         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
6895         (CRTSAVRES_DEFAULT_SPEC): Likewise.
6896         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
6897
6898 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
6899
6900         * config/i386/i386.c (ix86_builtin_type): Add
6901         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
6902         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
6903         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
6904         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
6905         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
6906         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
6907         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
6908         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
6909         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
6910         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
6911         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
6912         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
6913         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
6914         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
6915         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
6916         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
6917         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
6918         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
6919         V1DI_FTYPE_V2SI_V2SI.
6920         (bdesc_2arg): Moved to ...
6921         (bdesc_args): Here.
6922         (ix86_init_mmx_sse_builtins): Updated.
6923         (ix86_expand_args_builtin): Updated.  Take a pointer
6924         to const struct builtin_description.  Handle comparison
6925         builtin functions.
6926         (ix86_expand_sse_compare): Take a new argument for swapping operands.
6927         (ix86_expand_builtin): Updated.
6928
6929         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
6930         (ssse3_pmaddubsw128): This.
6931         (ssse3_pmaddubswv4hi3): Renamed to ...
6932         (ssse3_pmaddubsw): This.
6933
6934         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
6935         (__builtin_ia32_packssdw128): Likewise.
6936         (__builtin_ia32_packuswb128): Likewise.
6937         (__builtin_ia32_pmaddubsw): Likewise.
6938         (__builtin_ia32_pmaddubsw128): Likewise.
6939
6940 2008-04-30  Richard Guenther  <rguenther@suse.de>
6941
6942         PR tree-optimization/14847
6943         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
6944         (recognize_bits_test): Use it.
6945         (recognize_single_bit_test): Likewise.
6946
6947 2008-04-30  Martin Jambor  <mjambor@suse.cz>
6948
6949         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
6950         instead of setting number of formal parameters to zero.
6951         (ipcp_init_stage): Do not set the number of actual parameters to zero 
6952         either.
6953         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
6954         which are called with variable number of arguments.
6955         (ipcp_insert_stage): Explicitely skipping all nodes which are
6956         called with variable number of arguments.
6957         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
6958         number of parameters.
6959
6960         * ipa-prop.h (struct ipa_node_params): Added flag
6961         called_with_var_arguments
6962         (ipa_set_param_count): Added.  Changed sole setter to use it.
6963         (ipa_get_param_count): Added.  All readers of param_count
6964         converted to use it instead.
6965         (ipa_set_called_with_variable_arg): Added.
6966         (ipa_is_called_with_var_arguments): Added.
6967         (ipa_get_ith_param): Added.  All readers of param_decls converted
6968         to use it instead.
6969         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
6970         changed to use it. 
6971         (ipa_get_cs_argument_count): Added, all readers of argument_count
6972         changed to cal it.
6973         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
6974         to use it.
6975         
6976         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
6977         (struct ipcp_lattice): Renamed cval_type to type
6978         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
6979
6980         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
6981         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
6982         (ipcp_insert_stage): Changed the type of variable cvalue to tree
6983         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
6984         (build_const_val): Changed the type of parameter cvalue to tree
6985         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
6986         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
6987         
6988         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
6989         constant 
6990
6991         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
6992         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
6993         (ipa_add_method): Renamed to ipa_push_func_to_list
6994         (ipa_remove_method): Renamed to ipa_pop_func_from_list
6995         (ipa_callsite_param_count): Removed.
6996         (ipa_callsite_param_count_set): Removed.
6997         (ipa_callsite_param): Removed.
6998         (ipa_callsite_callee): Removed.
6999         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
7000         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
7001         (ipa_method_formal_count): Removed.
7002         (ipa_method_formal_count_set): Removed.
7003         (ipa_method_get_tree): Removed.
7004         (ipa_method_tree_map_create): Removed.
7005         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
7006         (ipa_create_param_decls_array): Creates the array itself
7007         (ipa_create_param_decls_array): Temporary variable info instead of 
7008         a few dereferences.
7009         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
7010         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
7011         (get_type): Removed.
7012         (ipa_jf_get_info_type): Removed.
7013         (ipa_node_create): Renamed to ipa_create_node_params
7014         (ipa_free): Renamed to ipa_free_all_node_params
7015         (ipa_nodes_create): Renamed to ipa_create_all_node_params
7016         (ipa_edges_create): Renamed to ipa_create_all_edge_args
7017         (ipa_edges_free): Renamed to ipa_free_all_edge_args
7018         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
7019         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
7020         ipa_free_all_edge_args
7021         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
7022         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
7023         (ipa_create_methodlist_node): Removed.
7024         (ipa_methodlist_method): Removed.
7025         (ipa_methodlist_method_set): Removed.
7026         (ipa_methodlist_next_method): Removed.
7027         (ipa_methodlist_next_method_set): Removed.
7028         (ipa_method_is_modified): Removed.
7029         (ipa_method_modify_create): Removed.
7030         (ipa_method_modify_init): Temporary variable info instead of a few 
7031         dereferences.
7032         (ipa_detect_param_modifications): Temporary variable info instead of 
7033         a few dereferences.
7034         (ipa_compute_jump_functions): Temporary variable info instead of 
7035         a few dereferences.
7036         (ipa_method_modify_set): Removed.
7037         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
7038         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
7039         than craph_node as the first parameter.
7040         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
7041         (ipa_method_modify_init): Removed.
7042         (ipa_compute_jump_functions): Added a temp variable instead of 
7043         repeatadly dereferencing the cgraph_edge.aux pointer
7044         (ipa_callsite_param_set_type): Removed.
7045         (ipa_compute_jump_functions): i renamed to index and moved to 
7046         an inner block
7047         (ipa_callsite_param_set_info_type_formal): Removed.
7048         (ipa_callsite_param_set_info_type): Removed.
7049         (ipa_callsite_param_map_create): Removed.
7050         (ipa_callsite_tree): Removed.
7051         (ipa_callsite_caller): Removed.
7052         (ipa_pop_func_from_list): return_method removed to return_func
7053
7054         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
7055         prefixed all values with IPA_. Changed all users.
7056         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
7057         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
7058         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
7059         (union parameter_info): Renamed to jump_func_value.
7060         (union jump_func_value): Renamed value to constant
7061         (struct ipa_jump_func): Renamed info_type to value
7062         (struct ipa_node): Renamed to ipa_node_params
7063         (struct ipa_node_params): Renamed ipa_arg_num to param_count
7064         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
7065         (struct ipa_node_params): Renamed ipa_mod to modified_flags
7066         (struct ipa_edge): Renamed to ipa_edge_args
7067         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
7068         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
7069         (struct ipa_methodlist): Renamed to ipa_func_list
7070         (struct ipa_func_list): method_p renamed to node, next_method
7071         renamed to next
7072         (ipa_methodlist_p): Removed, switched all users to struct pointer
7073         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
7074
7075 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
7076
7077         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
7078         (rs6000_emit_epilogue): Use backchain to restore only when we
7079         have a large frame.  Make use of frame pointer to restore if we
7080         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
7081
7082 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
7083
7084         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
7085         Add mode to zero_extract.
7086         (sign bit tests peepholes): (Ditto.).
7087
7088 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
7089
7090         * config/i386/i386.c (ix86_builtins): Replace Prescott New
7091         Instructions in comments with SSE3.
7092         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
7093         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
7094         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
7095         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
7096         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
7097         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
7098         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
7099         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
7100         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
7101         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
7102         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
7103         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
7104         (bdesc_sse_args): Renamed to ...
7105         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
7106         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
7107         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
7108         IX86_BUILTIN_FABSQ.
7109         (bdesc_1arg): Moved to ...
7110         (bdesc_args): Here.
7111         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
7112         Instructions in comments with SSE3.
7113         (ix86_expand_sse_operands_builtin): Renamed to ...
7114         (ix86_expand_args_builtin): This.  Updated.
7115         (ix86_expand_unop1_builtin): Update comments.
7116         (ix86_expand_builtin): Updated.
7117
7118 2008-04-29  Richard Guenther  <rguenther@suse.de>
7119
7120         PR tree-optimization/36078
7121         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
7122         Update virtual SSA form after cleaning up the CFG.
7123
7124 2008-04-29  Richard Guenther  <rguenther@suse.de>
7125
7126         PR middle-end/15255
7127         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
7128
7129 2008-04-29  Richard Guenther  <rguenther@suse.de>
7130
7131         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
7132         (compute_may_aliases): Do not call finalize_ref_all_pointers.
7133         (compute_flow_insensitive_aliasing): Do not treat
7134         PTR_IS_REF_ALL pointers special.
7135         (get_smt_for): Likewise.
7136         (may_alias_p): Re-structure.
7137         (is_escape_site): A ref-all pointer conversion is not an escape site.
7138         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
7139         PTR_IS_REF_ALL pointers special.
7140         * tree-ssa-structalias.h (struct alias_info): Remove
7141         ref_all_symbol_mem_tag field.
7142         (PTR_IS_REF_ALL): Remove.
7143
7144 2008-04-29  Richard Guenther  <rguenther@suse.de>
7145
7146         PR middle-end/36077
7147         * fold-const.c (extract_muldiv_1): In combining division constants
7148         make sure to never overflow.
7149
7150 2008-04-29  Nick Clifton  <nickc@redhat.com>
7151
7152         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
7153
7154 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7155
7156         PR bootstrap/35169
7157         * optc-gen.awk: Work around HP-UX/IA awk bug.
7158
7159 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
7160
7161         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
7162         2008-04-25 commit.
7163
7164 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
7165
7166         PR target/36073
7167         * config/i386/i386.md
7168         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
7169         Change operand 1 predicate to nonimmediate_operand.
7170
7171 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
7172
7173         PR debug/36060
7174         * dwarf2out.c (struct die_struct): Mark as chain_circular through
7175         die_sub field.
7176         * gengtype.c (walk_type, write_func_for_structure): Handle
7177         chain_circular.
7178         * doc/gty.texi: Document chain_circular.
7179
7180 2008-04-28  Richard Guenther  <rguenther@suse.de>
7181
7182         PR tree-optimization/36066
7183         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
7184         SCEV and loop.
7185
7186 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
7187
7188         PR target/36064
7189         * config/i386/i386.md
7190         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
7191         Use match_scratch instead of match_operand for operands 3 and 4.
7192
7193 2008-04-27  Richard Guenther  <rguenther@suse.de>
7194
7195         PR tree-optimization/18754
7196         PR tree-optimization/34223
7197         * tree-pass.h (pass_complete_unrolli): Declare.
7198         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
7199         loop size before and after unconditionally of UL_NO_GROWTH in effect.
7200         Rewrite loop into loop closed SSA form if it is not already.
7201         (tree_unroll_loops_completely): Re-structure to iterate over
7202         innermost loops with intermediate CFG cleanups.
7203         Unroll outermost loops only if requested or the code does not grow
7204         doing so.
7205         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
7206         loops are available.
7207         (tree_vectorize): Instead do so here.
7208         (tree_complete_unroll): Also unroll outermost loops.
7209         (tree_complete_unroll_inner): New function.
7210         (gate_tree_complete_unroll_inner): Likewise.
7211         (pass_complete_unrolli): New pass.
7212         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
7213         uses outside of the loop.
7214         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
7215         form if it is available.  
7216         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
7217         * passes.c (init_optimization_passes): Schedule complete inner
7218         loop unrolling pass before the first CCP pass after final inlining.
7219
7220 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
7221
7222         * targhooks.h (default_emutls_var_fields,
7223         default_emutls_var_init): Declare.
7224         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
7225         * target.h (struct gcc_target): Add struct emutls member.
7226         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
7227         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
7228         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
7229         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
7230         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
7231         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
7232         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
7233         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
7234         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
7235         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
7236         emit debug information.
7237         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
7238         * varasm.c: Include targhooks.h.
7239         (emutls_object_section, emutls_tmpl_section): New.
7240         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
7241         (EMUTLS_SEPARATOR): New.
7242         (prefix_name): New.
7243         (get_emutls_object_name): New.
7244         (default_emutls_var_fields): New, broken out of ...
7245         (get_emutls_object_type): ... here.  Adjust to use target hooks.
7246         (get_emutls_init_templ_addr): Adjust to use target hooks.
7247         (emutls_decl): Adjust to use target hooks.
7248         (emutls_finish): Likewise.
7249         (default_emutls_var_init): New, broken out of ...
7250         (assemble_variable): ... here.  Adjust to use target hooks.
7251         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
7252         SECCAT_EMUTLS_TMPL.
7253         * c-common.c (handle_section_attribute): Prevent overriding
7254         sections for emulated tls with special sections.
7255         * config/i386/i386.c (x86_64_elf_select_section): Add
7256         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
7257         (x86_64_elf_unique_section): Likewise.
7258         * config/vxworks.c: Include tree.h.
7259         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
7260         (vxworks_override_options): Set TLS scheme.
7261         * doc/tm.texi (Emulated TLS): New node.
7262
7263 2008-04-26  Simon Baldwin <simonb@google.com>
7264
7265         PR c/35652
7266         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
7267         with propagated string constants.
7268
7269 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
7270
7271         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
7272         constraint for operand 2 when operand 0 is memory operand.
7273         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
7274         operand 0 is memory operand.
7275         (fix_trunc<mode>_i387_with_temp): Ditto.
7276         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
7277         operand 2 when operand 1 is memory operand.
7278         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
7279         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
7280         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
7281         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7282         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
7283         operands 2,3 and 4 when operand 1 is memory operand.
7284         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
7285         is memory operand.
7286         (fistdi2_floor_with_temp): Ditto.
7287         (fist<mode>2_floor_with_temp): Ditto.
7288         (fistdi2_ceil_with_temp): Ditto.
7289         (fist<mode>2_ceil_with_temp): Ditto.
7290         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
7291
7292 2008-04-26  David Daney  <ddaney@avtrex.com>
7293
7294         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
7295         unspec_volitile.
7296         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
7297         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
7298         UNSPEC_UPDATE_GOT_VERSION): Renumber.
7299         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
7300         (compare_and_swap_12): New insn.
7301         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
7302         * config/mips/mips.c (mips_force_binary): New function.
7303         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
7304         (mips_expand_compare_and_swap_12): New function.
7305         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
7306
7307 2008-04-25  Jan Hubicka  <jh@suse.cz>
7308
7309         PR testsuite/35843
7310         * cfgexpand.c (pass_expand): Turn into RTL pass.
7311         * passes.c (execute_one_pass): Do pass typechecking after execution.
7312         * tree-pass.h (pass_expand): Turn into RTL pass.
7313
7314         * function.h (struct rtl_data): Move here fields
7315         accesses_prior_frames, calls_eh_return, saves_all_registers,
7316         has_nonlocal_goto, has_asm_statement, is_thunk,
7317         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
7318         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
7319         arg_pointer_save_area_init from struct function; turn into bool.
7320         (struct function): Move
7321         calls_eh_return, saves_all_registers, has_nonlocal_goto,
7322         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
7323         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
7324         tail_call_emit, arg_pointer_save_area_init
7325         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
7326         (current_function_returns_struct, current_function_returns_pcc_struct,
7327         current_function_calls_setjmp, current_function_calls_alloca,
7328         current_function_accesses_prior_frames,
7329         current_function_calls_eh_return, current_function_is_thunk,
7330         current_function_stdarg, current_function_profile,
7331         current_function_limit_stack, current_function_uses_pic_offset_table,
7332         current_function_uses_const_pool, current_function_has_nonlocal_label,
7333         current_function_saves_all_registers,
7334         current_function_has_nonlocal_goto,
7335         current_function_has_asm_statement): Remove accesor macros.
7336         * ra-conflict.c (global_conflicts): Update.
7337         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
7338         (suitable_for_tail_call_opt_p): Update.
7339         * builtins.c (expand_builtin_return_addr): Update.
7340         (expand_builtin_setjmp_setup): Update.
7341         (expand_builtin_nonlocal_goto): Update.
7342         * final.c (final_start_function): Update.
7343         (profile_function): Update.
7344         (leaf_function_p): Update.
7345         (only_leaf_regs_used): Update.
7346         * df-scan.c (df_get_exit_block_use_set): Update.
7347         * dojump.c (clear_pending_stack_adjust): Update.
7348         * tree-stdarg.c (gate_optimize_stdarg): Update.
7349         * gimple-low.c (lower_function_body): Update.
7350         * global.c (compute_regsets): Update.
7351         (global_alloc): Update.
7352         * dwarf2out.c (dwarf2out_begin_prologue): Update.
7353         * expr.c (expand_assignment): Update.
7354         * dse.c (dse_step0): Update.
7355         (dse_step1): Update.
7356         * c-decl.c (store_parm_decls): Update.
7357         * local-alloc.c (combine_regs): Update.
7358         (find_free_reg): Update.
7359         * function.c (assign_parms_augmented_arg_list): Update.
7360         (assign_parm_find_data_types): Update.
7361         (assign_parms): Update.
7362         (allocate_struct_function): Update.
7363         (expand_function_start): Update.
7364         (expand_function_end): Update.
7365         (get_arg_pointer_save_area): Update.
7366         (thread_prologue_and_epilogue_insns): Update.
7367         (rest_of_match_asm_constraints): Update.
7368         * stor-layout.c (variable_size): Update.
7369         * gcse.c (gcse_main): Update.
7370         (bypass_jumps): Update.
7371         * gimplify.c (gimplify_function_tree): Update.
7372         * calls.c (emit_call_1): Update.
7373         (expand_call): Update.
7374         * bt-load.c (compute_defs_uses_and_gen): Update.
7375         * except.c (sjlj_assign_call_site_values): Update.
7376         (sjlj_emit_function_enter): Update.
7377         (can_throw_external): Update.
7378         (set_nothrow_function_flags): Update.
7379         (expand_builtin_unwind_init): Update.
7380         (expand_eh_return): Update.
7381         (convert_to_eh_region_ranges): Update.
7382         (output_function_exception_table): Update.
7383         * emit-rtl.c (gen_tmp_stack_mem): Update.
7384         * cfgexpand.c (expand_used_vars): Update.
7385         (tree_expand_cfg): Update.
7386         * cfgcleanup.c (rest_of_handle_jump): Update.
7387         * explow.c (allocate_dynamic_stack_space): Update.
7388         * varasm.c (assemble_start_function): Update.
7389         (force_const_mem): Update.
7390         (mark_constant_pool): Update.
7391         * tree-optimize.c (tree_rest_of_compilation): Update.
7392         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
7393         * tree-cfg.c (notice_special_calls): Update.
7394         (is_ctrl_altering_stmt): Update.
7395         (tree_can_make_abnormal_goto): Update.
7396         (tree_purge_dead_abnormal_call_edges): Update.
7397         * config/alpha/predicates.md: Update.
7398         * config/alpha/alpha.c (alpha_sa_mask): Update.
7399         (alpha_sa_size): Update.
7400         (alpha_does_function_need_gp): Update.
7401         (alpha_expand_prologue): Update.
7402         (alpha_start_function): Update.
7403         (alpha_output_function_end_prologue): Update.
7404         (alpha_expand_epilogue): Update.
7405         * config/frv/frv.c (frv_stack_info): Update.
7406         (frv_expand_epilogue): Update.
7407         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
7408         (s390_register_info): Update.
7409         (s390_frame_info): Update.
7410         (s390_init_frame_layout): Update.
7411         (s390_can_eliminate): Update.
7412         (save_gprs): Update.
7413         * config/spu/spu.c (spu_split_immediate): Update.
7414         (need_to_save_reg): Update.
7415         (spu_expand_prologue): Update.
7416         (spu_expand_epilogue): Update.
7417         * config/sparc/sparc.md: Update.
7418         * config/sparc/sparc.c (eligible_for_return_delay): Update.
7419         (sparc_tls_got): Update.
7420         (legitimize_pic_address): Update.
7421         (sparc_emit_call_insn): Update.
7422         (sparc_expand_prologue): Update.
7423         (output_return): Update.
7424         (print_operand): Update.
7425         (sparc_function_ok_for_sibcall): Update.
7426         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
7427         * config/m32r/m32r.md: Update.
7428         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
7429         (m32r_compute_frame_size): Update.
7430         (m32r_expand_prologue): Update.
7431         (m32r_expand_epilogue): Update.
7432         (m32r_legitimize_pic_address): Update.
7433         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
7434         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
7435         * config/i386/i386.c (ix86_frame_pointer_required): Update.
7436         (gen_push): Update.
7437         (ix86_save_reg): Update.
7438         (ix86_compute_frame_layout): Update.
7439         (ix86_expand_prologue): Update.
7440         (ix86_expand_epilogue): Update.
7441         * config/sh/sh.c (output_stack_adjust): Update.
7442         (calc_live_regs): Update.
7443         (sh5_schedule_saves): Update.
7444         (sh_expand_prologue): Update.
7445         (sh_expand_epilogue): Update.
7446         (sh_setup_incoming_varargs): Update.
7447         (sh_allocate_initial_value): Update.
7448         (sh_get_pr_initial_val): Update.
7449         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
7450         * config/sh/sh.md (label:): Update.
7451         * config/avr/avr.c (out_movhi_mr_r): Update.
7452         * config/crx/crx.h (enum): Update.
7453         * config/xtensa/xtensa.h (along): Update.
7454         * config/stormy16/stormy16.c Update.
7455         (xstormy16_compute_stack_layout): Update.
7456         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
7457         (fr30_expand_prologue): Update.
7458         * config/cris/cris.c (cris_conditional_register_usage): Update.
7459         (cris_reg_saved_in_regsave_area): Update.
7460         (cris_initial_frame_pointer_offset): Update.
7461         (cris_simple_epilogue): Update.
7462         (cris_expand_prologue): Update.
7463         (cris_expand_epilogue): Update.
7464         (cris_expand_pic_call_address): Update.
7465         (cris_asm_output_symbol_ref): Update.
7466         (cris_asm_output_label_ref): Update.
7467         * config/cris/cris.md Update.
7468         * config/iq2000/iq2000.c (compute_frame_size): Update.
7469         (iq2000_expand_epilogue): Update.
7470         * config/mt/mt.h (save_direction): Update.
7471         * config/mn10300/mn10300.c (mn10300_function_value): Update.
7472         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
7473         (ia64_secondary_reload_class): Update.
7474         * config/m68k/m68k.c (m68k_save_reg): Update.
7475         (m68k_expand_prologue): Update.
7476         (m68k_expand_epilogue): Update.
7477         (legitimize_pic_address): Update.
7478         * config/rs6000/rs6000.c (rs6000_got_register): Update.
7479         (first_reg_to_save): Update.
7480         (first_altivec_reg_to_save): Update.
7481         (compute_vrsave_mask): Update.
7482         (compute_save_world_info): Update.
7483         (rs6000_stack_info): Update.
7484         (spe_func_has_64bit_regs_p): Update.
7485         (rs6000_ra_ever_killed): Update.
7486         (rs6000_emit_eh_reg_restore): Update.
7487         (rs6000_emit_allocate_stack): Update.
7488         (rs6000_emit_prologue): Update.
7489         (rs6000_emit_epilogue): Update.
7490         (rs6000_output_function_epilogue): Update.
7491         (output_profile_hook): Update.
7492         (rs6000_elf_declare_function_name): Update.
7493         * config/rs6000/rs6000.h (rs6000_args): Update.
7494         * config/rs6000/rs6000.md: Update.
7495         * config/mcore/mcore.c (mcore_expand_prolog): Update.
7496         * config/arc/arc.c (arc_output_function_epilogue): Update.
7497         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
7498         * config/darwin.c (machopic_function_base_name): Update.
7499         * config/score/score3.c (score3_compute_frame_size): Update.
7500         (rpush): Update.
7501         (rpop): Update.
7502         (score3_epilogue): Update.
7503         * config/score/score7.c (score7_compute_frame_size): Update.
7504         (score7_prologue): Update.
7505         (score7_epilogue): Update.
7506         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
7507         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
7508         * config/arm/arm.c (use_return_insn): Update.
7509         (require_pic_register): Update.
7510         (arm_load_pic_register): Update.
7511         (arm_compute_save_reg0_reg12_mask): Update.
7512         (arm_compute_save_reg_mask): Update.
7513         (thumb1_compute_save_reg_mask): Update.
7514         (output_return_instruction): Update.
7515         (arm_output_function_prologue): Update.
7516         (arm_output_epilogue): Update.
7517         (arm_get_frame_offsets): Update.
7518         (arm_expand_prologue): Update.
7519         (thumb_pushpop): Update.
7520         (thumb_exit): Update.
7521         (thumb1_expand_prologue): Update.
7522         (thumb1_expand_epilogue): Update.
7523         (arm_unwind_emit): Update.
7524         (arm_output_fn_unwind): Update.
7525         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
7526         * config/arm/arm.md: Update.
7527         * config/pa/pa.md: Update.
7528         * config/pa/pa.c (legitimize_pic_address): Update.
7529         (compute_frame_size): Update.
7530         (hppa_expand_prologue): Update.
7531         (hppa_expand_epilogue): Update.
7532         (borx_reg_operand): Update.
7533         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
7534         (HARD_REGNO_RENAME_OK): Update.
7535         * config/mips/mips.c (mips_global_pointer): Update.
7536         (mips_save_reg_p): Update.
7537         (mips_compute_frame_info): Update.
7538         (mips_frame_pointer_required): Update.
7539         (mips_expand_prologue): Update.
7540         (mips_expand_epilogue): Update.
7541         (mips_can_use_return_insn): Update.
7542         (mips_reorg_process_insns): Update.
7543         * config/v850/v850.c (compute_register_save_size): Update.
7544         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
7545         * config/mmix/mmix.c (along): Update.
7546         (mmix_expand_epilogue): Update.
7547         * config/bfin/bfin.c (legitimize_pic_address): Update.
7548         (must_save_p): Update.
7549         (stack_frame_needed_p): Update.
7550         (add_to_reg): Update.
7551         (bfin_expand_prologue): Update.
7552         * stmt.c (expand_asm_operands): Update.
7553         * reload1.c (reload): Update.
7554         (init_elim_table): Update.
7555
7556 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
7557         
7558         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
7559         
7560 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
7561
7562         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
7563         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
7564         (mov<mode>): Removed.
7565         (*movv4sf_internal): Likewise.
7566         (*movv2df_internal): Likewise.
7567
7568 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
7569
7570         * config.gcc (crx-*-elf): Remove deprecation.
7571
7572 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
7573
7574         * config/i386/cygming-crtend.c (register_frame_ctor): Register
7575         __gcc_deregister_frame with atexit.
7576         (deregister_frame_dtor): Remove.
7577
7578 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
7579             Nathan Sidwell  <nathan@codesourcery.com>
7580
7581         * config/rs6000/rs6000.opt (mspe): Remove Var property.
7582         (misel): Likewise.
7583         * config/rs6000/rs6000.h (rs6000_spe): Declare.
7584         (rs6000_isel): Likewise.
7585         * config/rs6000/rs6000.c (rs6000_spe): New variable.
7586         (rs6000_isel): New variable.
7587         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
7588
7589 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
7590
7591         PR c++/35758
7592         * c-common.c (handle_vector_size_attribute): Call
7593         lang_hooks.types.reconstruct_complex_type instead of
7594         reconstruct_complex_type.
7595         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
7596         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
7597         * langhooks.h (struct lang_hooks_for_types): Add
7598         reconstruct_complex_type hook.
7599         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
7600         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
7601
7602 2008-04-24  Richard Guenther  <rguenther@suse.de>
7603
7604         * c-common.h (check_builtin_function_arguments): Declare.
7605         * c-common.c (validate_nargs): New function.
7606         (check_builtin_function_arguments): Likewise.
7607         * c-typeck.c (build_function_call): Call
7608         check_builtin_function_arguments.
7609         * builtins.c (fold_builtin_classify): Remove error reporting code.
7610         (fold_builtin_unordered_cmp): Likewise.
7611         (fold_builtin_1): Likewise.
7612         (fold_builtin_n): Likewise.
7613
7614 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
7615
7616         PR tree-optimization/36008
7617         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
7618         the original op1, rather than delta by step.
7619
7620 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
7621             Sebastian Pop  <sebastian.pop@amd.com>
7622
7623         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
7624         eliminate_local_variables_stmt, eliminate_local_variables,
7625         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
7626         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
7627         of code delimited by two edges in the CFG.
7628         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
7629         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
7630         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
7631         the case of parallelisation of reductions.
7632         (expr_invariant_in_region_p): New.
7633
7634         * tree-flow.h (gather_blocks_in_sese_region): Declared.
7635         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
7636
7637 2008-04-24  Ira Rosen  <irar@il.ibm.com>
7638             Richard Guenther  <rguenther@suse.de>
7639
7640         PR tree-optimization/36034
7641         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
7642         incapable of dealing with loads with gaps.
7643
7644 2008-04-24  Rafael Espindola  <espindola@google.com>
7645
7646         * tree-flow.h (vrp_evaluate_conditional): Change signature.
7647         * tree-ssa-propagate.c (fold_predicate_in): Update call to
7648         vrp_evaluate_conditional.
7649         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
7650         (vrp_evaluate_conditional): Split the cond argument.
7651         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
7652         (simplify_stmt_for_jump_threading): Update call to
7653         vrp_evaluate_conditional.
7654
7655 2008-04-24  Ira Rosen  <irar@il.ibm.com>
7656
7657         PR tree-optimization/35982
7658         * tree-vect-analyze.c (vect_check_interleaving): Check that the
7659         interleaved data-refs are of the same type.
7660
7661 2008-04-24  Danny Smith  <dannysmith@users.net>
7662
7663         * c-format.c (check_format_info_main): Use strncmp rather than a
7664         magic prefix to handle multichar length specs.
7665         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
7666         Don't prefix "I64" and "I32" with '\0'.
7667
7668 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
7669
7670         PR target/36015
7671         * config/i386/i386.c (init_cumulative_args): Don't pass anything
7672         in registers for -m32 only if stdarg_p (fntype).
7673
7674 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
7675
7676         PR rtl-optimization/36006
7677         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
7678         temp to op0 in order to avoid invalid rtx sharing.
7679
7680 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
7681
7682         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
7683         check TREE_INVARIANT.
7684         * tree-gimple.c (is_gimple_address): New.
7685         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
7686         * tree-gimple.h (is_gimple_address): New.
7687         * tree.h (decl_address_invariant_p): New.
7688         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
7689         (build_string): Likewise.
7690         (decl_address_invariant_p): New, from is_gimple_invariant_address.
7691         (tree_invariant_p_1): Likewise.
7692         (save_expr): Use it.
7693         (tree_invariant_p): New.
7694         (skip_simple_arithmetic): Use it.
7695         (stabilize_reference_1): Use it.
7696         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
7697         simplify.
7698         (build1_stat): Drop code to compute TREE_INVARIANT.
7699         (build2_stat): Drop code to compute TREE_INVARIANT.
7700         (build3_stat): Drop code to compute TREE_INVARIANT.
7701         (build4_stat): Drop code to compute TREE_INVARIANT.
7702         (build5_stat): Drop code to compute TREE_INVARIANT.
7703         (build7_stat): Drop code to compute TREE_INVARIANT.
7704         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
7705         * tree.h (struct tree_base): Remove invariant_flag.
7706         (TREE_INVARIANT): Remove.
7707         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
7708         (fold_builtin_expect): Check TREE_CONSTANT.
7709         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
7710         * c-tree.h (c_expr_to_decl): Drop third parameter.
7711         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
7712         (build_c_cast): Don't set TREE_INVARIANT.
7713         (pop_init_level): Don't set TREE_INVARIANT.
7714         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
7715         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
7716         TREE_CONSTANT.
7717         (gimplify_init_constructor): Don't set TREE_INVARIANT.
7718         (gimplify_addr_expr): Adjust comment.
7719         * tree-mudflap.c (mf_build_string):
7720         * print-tree.c (print_node): Don't print TREE_INVARIANT.
7721         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
7722         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
7723         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
7724         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
7725         * langhooks.h (struct lang_hooks): Drop third parameter from
7726         expr_to_decl.
7727
7728 2008-04-23  Richard Guenther  <rguenther@suse.de>
7729
7730         PR tree-optimization/27799
7731         PR tree-optimization/32921
7732         PR tree-optimization/32624
7733         * tree-ssa-structalias.c (merge_smts_into): Only merge the
7734         SMTs aliases and the tag itself into the solution.
7735         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
7736         merge the points-to solution back into the SMT aliases.
7737         (may_alias_p): Use alias_set_subset_of instead of
7738         aliases_conflict_p.  A pointer which points to
7739         memory with alias set zero may access any variable.
7740
7741 2008-04-23  Richard Guenther  <rguenther@suse.de>
7742
7743         * alias.c (alias_set_subset_of): Correctly handle asking
7744         if zero is a subset of an alias set with zero child.
7745         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
7746         (compute_flow_insensitive_aliasing): Correctly walk all
7747         pointers.  Do not unnecessarily union sets.
7748
7749 2008-04-23  Richard Guenther  <rguenther@suse.de>
7750
7751         PR middle-end/36021
7752         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
7753
7754 2008-04-22  Tomas Bily  <tbily@suse.cz>
7755
7756         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
7757         unreachable case.
7758         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
7759         NON_LVALUE_EXPR.
7760         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
7761         * tree-ssa-structalias.c (get_constraint_for): Likewise.
7762         * tree-inline.c (estimate_num_insns_1): Likewise.
7763         * varasm.c (const_hash_1, compare_constant, copy_constant)
7764         (compute_reloc_for_constant, output_addressed_constants): Likewise.
7765         * emit-rtl.c (component_ref_for_mem_expr)
7766         (set_mem_attributes_minus_bitpos): Likewise.
7767         * expr.c (highest_pow2_factor, expand_expr_real_1, )
7768         (is_aligning_offset): Likewise.
7769         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
7770         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
7771         * dojump.c (do_jump): Likewise.
7772         * builtins.c (get_pointer_alignment, get_memory_rtx)
7773         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
7774         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
7775
7776 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
7777
7778         PR rtl-optimization/36017
7779         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
7780         expanding the library call.
7781
7782 2008-04-22  Ian Lance Taylor  <iant@google.com>
7783
7784         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
7785         than size_in_bytes.
7786
7787 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
7788
7789         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
7790         of LR/CTR moves for Power6.
7791
7792 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
7793
7794         PR middle-end/36003
7795         * passes.c (init_optimization_passes): Remove
7796         pass_fast_rtl_byte_dce.
7797         
7798 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
7799
7800         PR target/29096
7801         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
7802         builtin functions to generate faster code.
7803         (_mm_cvtpu16_ps): Ditto.
7804         (_mm_cvtpi32x2_ps): Ditto.
7805
7806 2008-04-22  Nick Clifton  <nickc@redhat.com>
7807
7808         * common.opt (ftree-loop-distribution): Add Optimization
7809         attribute.
7810
7811         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
7812         (frv_expand_builtin_va_start): Likewise.
7813
7814         * config/arm/arm.c (thumb_find_work_register): Fix location of
7815         argument register count.
7816
7817 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
7818
7819         Support scheduling for ColdFire V1 and V3 microarchitecture.
7820         Improve scheduling of multiplication instructions.
7821
7822         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
7823         (mac): New instruction attribute.
7824         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
7825         (m68k_sched_mac): New variable.
7826         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
7827         Handle cfv1 and cfv3.
7828         (max_insn_size): New static variable.
7829         (struct _sched_ib): New type.
7830         (sched_ib): New static variable.
7831         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
7832         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
7833         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
7834         Update.
7835         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
7836         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
7837         new variables.  Update.
7838         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
7839         Add modeling of cfv3 instruction buffer.  Update.
7840         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
7841         * config/m68k/m68k.h (TUNE_CFV3): New macro.
7842         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
7843         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
7844         a particular reservation applies to.
7845         (type2): Reorganize attribute values.  Rename alu to alu_reg,
7846         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
7847         to mul_l and mul_w.
7848         (cf_ib_*): Simplify description of instruction buffer.
7849         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
7850         (cf_mem): Split into cf_mem1 and cf_mem2.
7851         (cf_v2_move_??): Rename to cfv12_alu_??.
7852         (cf_v2_move_l_??): Rename to cfv12_omove_??.
7853         (cf_v2_mul_??): Remove reservations.
7854         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
7855         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
7856         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
7857         appropriate place.
7858         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
7859         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
7860         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
7861         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
7862         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
7863         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
7864         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
7865         expansions of the above reservations for instructions of sizes
7866         1, 2 and 3 words.
7867
7868 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
7869
7870         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
7871
7872 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
7873
7874         * coverage.c: Include tree-pass.h.
7875         (coverage_counter_alloc): Print da_file_name to the dump file.
7876
7877 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
7878
7879         * sbitmap.c (sbitmap_range_empty_p): New function.
7880         * sbitmap.h (sbitmap_range_empty_p): New function.
7881         * bitmap.h: Now includes obstack.h.
7882
7883 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
7884             Kenneth Zadeck  <zadeck@naturalbridge.com>
7885
7886         * dbgcnt.def (ra_byte_scan): Added.
7887         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
7888         when the last hit happens for a counter.  
7889         * timevar.def (TV_DF_BYTE_LR): New variable.
7890         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
7891         * passes.c (pass_fast_rtl_byte_dce): New pass.
7892         * fwprop.c (update_df): Added mode to call df_ref_create.
7893         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
7894         DF_REF_EXTRACT_OFFSET.
7895         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
7896         DF_BYTE_LR_OUT, df_byte_lr): New macro.
7897         (df_mm): New enum.
7898         (df_ref_extract): Added mode field.
7899         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
7900         DF_REF_EXTRACT_OFFSET.
7901         (DF_REF_EXTRACT_MODE): New macro.
7902         (df_byte_lr_bb_info): New structure.
7903         (df_print_byte_regset, df_compute_accessed_bytes, 
7904         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
7905         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
7906         df_byte_lr_simulate_uses,
7907         df_byte_lr_simulate_artificial_refs_at_top,
7908         df_byte_lr_simulate_artificial_refs_at_end,
7909         df_compute_accessed_bytes): New function.
7910         (df_ref_create): Add parameter.
7911         (df_byte_lr_get_bb_info): New inline function.
7912         * df-scan.c (df_ref_record, df_uses_record,
7913         df_ref_create_structure): Added mode parameter.
7914         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
7915         df_defs_record, df_uses_record, df_get_conditional_uses,
7916         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
7917         df_entry_block_defs_collect, df_exit_block_uses_collect):
7918         Added mode parameter to calls to df_ref_record, df_uses_record,
7919         df_ref_create_structure.
7920         (df_ref_equal_p, df_ref_compare): Added test for modes.
7921         (df_ref_create_structure): Added code to set mode.  Renamed
7922         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
7923         DF_REF_EXTRACT_OFFSET.
7924         * df-core.c (df_print_byte_regset): New function.
7925         * df-byte-scan.c: New file.
7926         * df-problems.c (df_rd_transfer_function): Removed unnecessary
7927         calls to BITMAP_FREE.  
7928         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
7929         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
7930         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
7931         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
7932         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
7933         df_byte_lr_local_compute, df_byte_lr_init,
7934         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
7935         df_byte_lr_transfer_function, df_byte_lr_free, 
7936         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
7937         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
7938         df_byte_lr_simulate_uses,
7939         df_byte_lr_simulate_artificial_refs_at_top,
7940         df_byte_lr_simulate_artificial_refs_at_end): New function.
7941         * dce.c (byte_dce_process_block): New function.
7942         (dce_process_block): au is now passed in rather than computed
7943         locally.  Changed loops that look at artificial defs to not look
7944         for conditional or partial ones, because there never are any.  
7945         (fast_dce): Now is able to drive byte_dce_process_block or 
7946         dce_process_block depending on the kind of dce being done.
7947         (rest_of_handle_fast_dce): Add parameter to fast_dce.
7948         (rest_of_handle_fast_byte_dce): New function.
7949         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
7950         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
7951
7952 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
7953
7954         PR fortran/35019
7955         * gcc.h: Added fortran options that take arguments to
7956         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
7957         macros.
7958
7959 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
7960
7961         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
7962         scalarization if on the LHS and not a full access.
7963
7964 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7965
7966         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
7967
7968 2008-04-18  Rafael Espindola  <espindola@google.com>
7969
7970         * tree-vrp.c (find_case_label_index): Fix the binary search.
7971         (find_case_label_range): New.
7972         (vrp_visit_switch_stmt): Use find_case_label_range.
7973         (simplify_switch_using_ranges): Use find_case_label_range.
7974
7975 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
7976
7977         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
7978         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
7979
7980 2008-04-18  Tom Tromey  <tromey@redhat.com>
7981
7982         PR libcpp/15500:
7983         * doc/cpp.texi (Implementation-defined behavior): Mention
7984         -finput-charset.
7985
7986 2008-04-18  Ian Lance Taylor  <iant@google.com>
7987
7988         * fold-const.c (pointer_may_wrap_p): New static function.
7989         (fold_comparison): Add another test for pointer overflow.  Use
7990         pointer_may_wrap_p to disable some false positives.
7991
7992 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
7993           
7994         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
7995         (fname_as_string): Match updated cpp_interpret_string prototype.
7996         (fix_string_type): Support char16_t* and char32_t*.
7997         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
7998         derivative) nodes.  Register as builtin if C++0x.
7999         (c_parse_error): Support CPP_CHAR{16,32}.
8000         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
8001         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
8002         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
8003         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
8004         CTI_CHAR32_ARRAY_TYPE>: New elements.
8005         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
8006         char32_type_node, signed_char32_type_node, char16_array_type_node,
8007         char32_array_type_node): New defines.
8008         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
8009         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
8010         (lex_string): Support CPP_STRING{16,32}, match updated
8011         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
8012         (lex_charconst): Support CPP_CHAR{16,32}.
8013         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
8014         and CPP_STRING{16,32}.
8015
8016 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
8017
8018         PR bootstrap/35457
8019         * aclocal.m4: Regenerate.
8020         * configure: Regenerate.
8021
8022 2008-04-18  Jan Hubicka  <jh@suse.cz>
8023
8024         * except.c (dw2_size_of_call_site_table,
8025         sjlj_size_of_call_site_table): Use vector API for call_site_record.
8026
8027         * cgraphbuild.c (build_cgraph_edges): Update.
8028         * tree-pass.h: Update comment.
8029         * final.c (leaf_function_p): Update.
8030         (leaf_renumber_regs): Update.
8031         (rest_of_clean_state): Update.
8032         * omp-low.c (expand_omp_parallel): Update.
8033         * ipa-reference.c (analyze_function): Update.
8034         * reorg.c (find_end_label): Update.
8035         (optimize_skip): Update.
8036         (fill_simple_delay_slots): Update.
8037         (fill_simple_delay_slots): Update.
8038         (make_return_insns): Update.
8039         (dbr_schedule): Update.
8040         * gimple-low.c (record_vars_into): Update.
8041         * cfgbuild.c (make_edges): Update.
8042         * function.c (assign_stack_local): Update.
8043         (assign_parm_adjust_stack_rtl): Update.
8044         (locate_and_pad_parm): Update.
8045         (allocate_struct_function): Do not initialize stack_alignment_needed
8046         and preferred_stack_boundary here.
8047         (stack_protect_prologue): Update.
8048         (stack_protect_epilogue): Update.
8049         (expand_function_start): Initialize stack_alignment_needed,
8050         preferred_stack_boundary and max_jumptable_ents.
8051         (expand_function_end): Update.
8052         (free_after_compilation): Do not NULLify epilogue_delay_list.
8053         * function.h (struct rtl_data): Add stack_protect_guard,
8054         stack_alignment_needed,
8055         preferred_stack_boundary, epilogue_delay_list.
8056         (struct function): Remove value_histograms, stack_alignment_needed,
8057         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
8058         last_label_uid,
8059         unexpanded_var_list, stack_protect_guard.
8060         (current_function_epilogue_delay_list): Remove.
8061         * ipa-type-escape.c (analyze_function): Update.
8062         * gimplify.c (pop_gimplify_context): Update comment.
8063         * calls.c (expand_call): Update.
8064         (emit_library_call_value_1): Update.
8065         * except.c (set_nothrow_function_flags): Update.
8066         * cfgexpand.c (get_decl_align_unit): Update.
8067         (create_stack_guard): Update.
8068         (estimated_stack_frame_size): Update.
8069         (expand_used_vars): Update.
8070         (tree_expand_cfg): Free histogram earliers, init expansion variables.
8071         * explow.c (allocate_dynamic_stack_space): Update.
8072         * tree-ssa-live.c (remove_unused_locals): Update.
8073         * varasm.c (mark_constant_pool): Update.
8074         * tree-inline.c (remap_decls): Update.
8075         (initialize_cfun): Update.
8076         (declare_return_variable): Update.
8077         (inline_forbidden_p): Update.
8078         (expand_call_inline): Update.
8079         (declare_inline_vars): Update.
8080         (tree_function_versioning): Update.
8081         * tree-flow.h (value_histograms): New.
8082         (VALUE_HISTOGRAMS): New macro.
8083         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
8084         last_label_uid.
8085         * tree-cfg.c (set_bb_for_stmt): Update.
8086         (replace_by_duplicate_decl): Update.
8087         (move_block_to_fn): Update.
8088         (new_label_mapper): Update.
8089         (dump_function_to_file): Update.
8090         * ipa-struct-reorg.c (build_data_structure): Update.
8091         * cfgrtl.c (print_rtl_with_bb): Update.
8092         * reload1.c (reload): Update.
8093         (reload): Update.
8094         * config/i386/i386.c (setup_incoming_varargs_64,
8095         ix86_compute_frame_layout): Update.
8096         * config/arc/arc.c (arc_output_function_epilogue): Update.
8097
8098 2008-04-18  Marius Strobl <marius@FreeBSD.org>
8099
8100         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
8101         for FreeBSD as well.
8102         * gthr-posix95.h: Likewise.
8103
8104 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
8105
8106         PR rtl-optimization/35838
8107         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
8108         out the byte offset of the first subreg.
8109
8110 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
8111
8112         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
8113         to split_ti instead of three separate calls with single member arrays.
8114         (subti3 splitter): Ditto.
8115         (adddi3 splitter): Ditto with split_di.
8116         (subdi3 splitter): Ditto.
8117         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
8118         two separate calls with single member arrays.  Swap match_dup
8119         operands 1 and 2 to better fit into the array.
8120         (negdi2 splitter): Ditto with split_di.
8121         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
8122         two separate calls with single member arrays.  Swap match_dup operands
8123         6 and 7 to better fit into the array.
8124
8125 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
8126
8127         * config/i386/i386.c (sse_builtin_type): New.
8128         (bdesc_sse_args): Likewise.
8129         (bdesc_sse_3arg): Removed.
8130         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
8131         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
8132         IX86_BUILTIN_ROUNDPS.
8133         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
8134         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
8135         IX86_BUILTIN_ROUNDPS.
8136         (ix86_expand_sse_4_operands_builtin): Removed.
8137         (ix86_expand_sse_operands_builtin): New.
8138         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
8139         and CODE_FOR_sse4_1_roundps.
8140         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
8141         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
8142
8143 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
8144
8145         PR target/35907
8146         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
8147         regs before frame pop when needed.  If use_backchain_to_restore_sp
8148         then load backchain into a temp reg to restore vr and vrsave.  Add
8149         code to restore vr after frame pop if possible.
8150
8151 2008-04-17  Richard Guenther  <rguenther@suse.de>
8152
8153         * tree-vn.c (expressions_equal_p): Do not check type
8154         equality or compatibility before calling operand_equal_p.
8155         * fold-const.c (operand_equal_p): Check equivalence of
8156         integer constants before bailing out due to signedness or
8157         precision differences.
8158         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
8159         spurious differences in type qualification.  Ignore types
8160         for COMPONENT_REFs at all.
8161
8162 2008-04-17  Christian Bruel  <christian.bruel@st.com>
8163
8164         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
8165         msw_skip comparison.
8166         
8167 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
8168
8169         PR c/35739
8170         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
8171         reg type.
8172
8173         PR tree-optimization/35899
8174         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
8175         rather than TREE_OPERAND.
8176
8177 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
8178
8179         PR target/35944
8180         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
8181         temporary registers.  Change operand predicate to general_operand.
8182         (remainderxf3): Ditto.
8183
8184 2008-04-16  Richard Guenther  <rguenther@suse.de>
8185
8186         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
8187         * tree-affine.c (aff_combination_expand): Look through some
8188         conversions.
8189
8190 2008-04-15  Doug Kwan  <dougkwan@google.com>
8191
8192         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
8193         for hex printing.
8194         * tree-pretty-print.c (dump_generic_node): Ditto.
8195         * final.c (output_addr_const): Ditto.
8196         * dwarf2out.c (output_cfi): Ditto.
8197         * c-pretty-print.c (pp_c_integer_constant): Ditto.
8198         * print-rtl.c (print_rtx): Ditto.
8199         * print-tree.c (print_node_brief, print_node): Ditto.
8200         * c-common.c (match_case_to_enum_1): Ditto.
8201         * sched-vis.c (print_value): Ditto.
8202         * config/i386/i386.c (print_operand): Cast to long unsigned int
8203         for hex printing.
8204
8205 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
8206         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
8207         MS Windows VirtualProtect function.
8208
8209 2008-04-15  Jan Hubicka  <jh@suse.cz>
8210
8211         * gengtype.c (write_root): Param_is argument is OK.
8212         * expr.c (expand_expr_real_1): Update call of get_exception_*.
8213         * function.h: Include varray.h
8214         (rtl_eh): New stucture based on except.c one.
8215         (call_site_record): New forward declaration and vector type.
8216         * calls.c (emit_call_1): Do not call
8217         note_current_region_may_contain_throw.
8218         * except.c (eh_status): Remove cur_region, try_region since they are
8219         unused.
8220         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
8221         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
8222         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
8223         Remove call_site_data_used, call_site_data_size.
8224         Turn call_site_record into vector in function.h.
8225         (note_current_region_may_contain_throw): Remove.
8226         (get_exception_pointer, get_exception_filter): Do not take struct
8227         function argument; update.
8228         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
8229         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
8230         build_post_landing_pads, dw2_build_landing_pads,
8231         sjlj_assign_call_site_values, sjlj_mark_call_sites,
8232         sjlj_emit_function_enter, sjlj_emit_function_enter, 
8233         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
8234         sjlj_build_landing_pads, finish_eh_generation,
8235         remove_exception_handler_label, remove_eh_handler,
8236         maybe_remove_eh_handler, add_reachable_handler,
8237         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
8238         add_action_record, collect_one_action_chain, add_call_site,
8239         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
8240         sjlj_output_call_site_table, output_function_exception_table,
8241         * except.h (note_current_region_may_contain_throw): Remove
8242         (get_exception_pointer, get_exception_filter): Do not take struct
8243         function argument.
8244         * Makefile.in (GTFILES): Put varargs before struct function.
8245
8246 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
8247
8248         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
8249         punt for STRING_CST.
8250         (get_constraint_for): Deal with STRING_CST here instead.
8251
8252 2008-04-15  Richard Guenther  <rguenther@suse.de>
8253
8254         * tree-ssa-propagate.c (substitute_and_fold): Substitute
8255         statements in a basic-block with a backward walk.  Do not
8256         substitute into dead statements but instead remove those.
8257
8258 2008-04-15  Richard Guenther  <rguenther@suse.de>
8259
8260         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
8261         to zero, thus disable creation of SFTs.
8262
8263 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
8264
8265         * tree-predcom.c (suitable_reference_p): Return false if the
8266         reference can throw.
8267
8268 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
8269
8270         PR c/35751
8271         * c-decl.c (finish_decl): If extern or static var has variable
8272         size, set TREE_TYPE (decl) to error_mark_node.
8273
8274 2008-04-15  Rafael Espindola  <espindola@google.com>
8275
8276         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
8277         variable arg1.
8278
8279 2008-04-15  Richard Guenther  <rguenther@suse.de>
8280
8281         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
8282         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
8283         (visit_reference_op_load): Do walk vuse-vdef chains on
8284         vn_reference_lookup.
8285         (visit_reference_op_store): But do not here.
8286         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
8287         vn_reference_lookup.
8288         (vn_lookup_with_vuses): But do so here.
8289
8290 2008-04-14  Ian Lance Taylor  <iant@google.com>
8291
8292         * fold-const.c (fold_overflow_warning): Remove assertion.
8293
8294 2008-04-15  Ben Elliston  <bje@au.ibm.com>
8295
8296         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
8297         temp1 local variables.
8298
8299 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
8300
8301         PR target/35661
8302         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
8303         ".text.unlikely" section as executable.
8304
8305 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
8306
8307         * config/ia64/ia64.c (rtx_needs_barrier): Handle
8308         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
8309         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
8310         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
8311         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
8312         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
8313         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
8314
8315 2008-04-14  Ian Lance Taylor  <iant@google.com>
8316
8317         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
8318         * fold-const.c (fold_comparison): If appropriate, test
8319         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
8320         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
8321         reassociating a pointer type.
8322         * doc/invoke.texi (Optimize Options): Document that
8323         -fstrict-overflow applies to pointer wraparound.
8324
8325 2008-04-13  Jan Hubicka  <jh@suse.cz>
8326
8327         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
8328
8329 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
8330
8331         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
8332         we are going to "save the world".
8333
8334 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
8335
8336         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
8337         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
8338         operand 0 constraint, not "=".
8339
8340 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
8341
8342         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
8343
8344 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
8345
8346         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
8347         of size of positions_needed * CHAR_BIT.
8348
8349 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
8350
8351         PR middle-end/35897
8352         * dse.c (store_info): Change positions_needed to unsigned
8353         HOST_WIDE_INT.
8354         (lowpart_bitmask): New.
8355         (record_store): Cast to unsigned HOST_WIDE_INT for
8356         positions_needed.  Assert width <= size of positions_needed *
8357         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
8358         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
8359         lowpart_bitmask to set mask.
8360
8361 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
8362
8363         * config/bfin/constraints.md: New file.
8364         * config/bfin/bfin.md: Include it.
8365         (adddi3): Use satisfies_constraint functions instead of the old macros.
8366         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
8367         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
8368         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
8369         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
8370         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
8371         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
8372         EXTRA_CONSTRAINT): Delete.
8373         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
8374         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
8375         of the old macros.
8376         * config/bfin/bfin.c: Include "tm-constrs.h".
8377         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
8378         Use satisfies_constraint functions instead of the old macros.
8379         * doc/md.texi (Blackfin Constraints): Update file name reference.
8380
8381 2008-04-11  Richard Guenther  <rguenther@suse.de>
8382
8383         PR tree-optimization/35869
8384         * tree-vrp.c (execute_vrp): Move switch statement update after
8385         jump threading.  Schedule another cfg cleanup run.
8386
8387 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
8388
8389         PR c/35744
8390         * attribs.c (decl_attributes): Return early on errorneous node.
8391
8392 2008-04-10  Oleg Ryjkov  <olegr@google.com>
8393
8394         * tree.h (struct tree_base): Added a new flag default_def_flag.
8395         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
8396
8397 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
8398
8399         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
8400
8401 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8402
8403         PR target/35768
8404         * pa.md: Define mode iterator P.  Define mode attribute dwc.
8405         (dcacheflush): Update pattern to use iterator P and attribute dwc.
8406         (icacheflush): Likewise.
8407         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
8408         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
8409
8410 2008-04-11  Ben Elliston  <bje@au.ibm.com>
8411
8412         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
8413
8414 2008-04-10  Rafael Espindola  <espindola@google.com>
8415
8416         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
8417         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
8418         (extract_range_from_expr): The same.
8419
8420 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
8421
8422         * config/mips/mips.md (GPR2): New mode iterator.
8423         (seq): Add comment.
8424         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
8425         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
8426         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
8427         Rewrite these to take two modes, the mode of comparison and the
8428         mode of the destination.
8429         * config/mips/mips.c (mips_expand_scc): Instead of having
8430         paradoxical subreg as destination, expand "narrowing" scc if mode
8431         of comparison is SI and target is requested in DI mode.
8432         (mips_emit_int_order_test): Update comment.  Make mode of
8433         comparison match CMP0 rather than TARGET.  When creating inverse
8434         target use mode of TARGET.
8435
8436 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
8437
8438         * gcov-dump.c (tag_summary): Only print summaries for the first
8439         GCOV_COUNTERS_SUMMABLE counters.
8440
8441 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
8442
8443         * config/i386/i386.md (absneg): New code iterator.
8444         (absnegprefix): New code attribute.
8445         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
8446         patterns using absneg code iterator.
8447         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
8448         using absneg code iterator.
8449         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
8450         *neg<mode>2 patterns using absneg code iterator.
8451         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
8452         *negextendsfdf2 patterns using absneg code iterator.
8453         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
8454         *negextendsfxf2 patterns using absneg code iterator.
8455         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
8456         *negextendsfdf2 patterns using absneg code iterator.
8457         * config/i386/sse.md (<code><mode>2): Macroize expander from
8458         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
8459
8460 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
8461
8462         * config/s390/s390.h: Remove the remains of the recent search
8463         & replace action of current_function_outgoing_args_size.
8464
8465 2008-04-10  Ira Rosen  <irar@il.ibm.com>
8466
8467         PR tree-optimization/35821
8468         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
8469         NEW_STMT_LIST is not NULL.
8470
8471 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
8472
8473         PR libstdc++/35597
8474         * toplev.c (process_options): Remove -ffunction-sections debugging
8475         warning.
8476
8477 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
8478
8479         PR middle-end/PR28690
8480         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
8481         than gen_rtx_fmt_ee to perform more canonicalizations.
8482
8483 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8484
8485         PR driver/35665
8486         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
8487
8488 2008-04-09  Richard Guenther  <rguenther@suse.de>
8489
8490         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
8491         (dump_function_to_file): Dump function arguments with types.
8492
8493 2008-04-08  Richard Guenther  <rguenther@suse.de>
8494
8495         * fold-const.c (fold_widened_comparison): Do not allow
8496         sign-changes that change the result.
8497
8498 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
8499
8500         PR target/35839
8501         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
8502         kinds of indirect references.
8503
8504 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
8505
8506         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
8507         GNU Fortran language string.
8508
8509 2008-04-08  Rafael Espindola  <espindola@google.com>
8510
8511         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
8512         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
8513         * tree.h (tree_call_nonnegative_warnv_p): New.
8514
8515 2008-04-08  Jan Hubicka  <jh@suse.cz>
8516
8517         * function.c (free_after_compilation): Clear out regno_reg_rtx
8518         pointer.
8519
8520 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
8521
8522         Revert
8523         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
8524
8525         PR middle-end/PR28690
8526         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
8527         same precedence as REG_POINTER and MEM_POINTER operands.
8528
8529 2008-04-08  Richard Guenther  <rguenther@suse.de>
8530
8531         PR middle-end/35834
8532         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
8533         for adding index to base.
8534
8535 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
8536
8537         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
8538         (MINGW_ENABLE_EXECUTE_STACK): New.
8539         (IN_LIBGCC2): For libgcc include windows.h file for
8540         function declarations.
8541
8542 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
8543
8544         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
8545         and tem2 if tem1 is not a REG or MULT.
8546
8547 2008-04-08  Jan Hubicka  <jh@suse.cz>
8548
8549         * function.h (incomming_args): Break out of struct function.
8550         (function_subsections): Break out of struct function.
8551         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
8552         return_rtx and hard_reg_initial_vals from struct function.
8553         Kill inl_max_label_num.
8554         (current_function_pops_args, current_function_args_info,
8555         current_function_args_size, current_function_args_size,
8556         current_function_pretend_args_size,
8557         current_function_outgoing_args_size,
8558         current_function_internal_arg_pointer, current_function_return_rtx):
8559         Kill compatibility accestor macros.
8560         * builtins.c (expand_builtin_apply_args_1): Update.
8561         (expand_builtin_next_arg): Update.
8562         * df-scan.c (df_get_call_refs): Update.
8563         * dbxout.c (dbxout_function_end): Update.
8564         * dwarf2out.c (dwarf2out_switch_text_section): Update.
8565         (output_line_info): Update.
8566         (secname_for_decl): Update.
8567         (dwarf2out_var_location): Update.
8568         * function.c (free_after_compilation): Update.
8569         (assign_parm_find_stack_rtl): Update.
8570         (assign_parms): Update.
8571         (expand_dummy_function_end): Update.
8572         (expand_function_end): Update.
8573         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
8574         (expand_call): Update.
8575         (emit_library_call_value_1): Update.
8576         (store_one_arg): Update.
8577         * varasm.c (initialize_cold_section_name): Update.
8578         (unlikely_text_section): Update.
8579         (unlikely_text_section_p): Update.
8580         (assemble_start_function): Update.
8581         (assemble_end_function): Update.
8582         (default_section_type_flags): Update.
8583         (switch_to_section): Update.
8584         * integrate.c (set_decl_abstract_flags): Update.
8585         (get_hard_reg_initial_val): Update.
8586         (has_hard_reg_initial_val): Update.
8587         (allocate_initial_values): Update.
8588         * resource.c (init_resource_info): Update.
8589         * config/alpha/alpha.c (NUM_ARGS): Update.
8590         (direct_return): Update.
8591         (alpha_va_start): Update.
8592         (alpha_sa_size): Update.
8593         (alpha_initial_elimination_offset): Update.
8594         (alpha_expand_prologue): Update.
8595         (alpha_start_function): Update.
8596         (alpha_expand_epilogue): Update.
8597         (unicosmk_initial_elimination_offset):
8598         * config/alpha/alpha.md (call expander): Update.
8599         * config/s390/s390.c (s390_register_info): Update.
8600         (s390_register_info): Update.
8601         (s390_frame_info): Update.
8602         (s390_initial_elimination_offset): Update.
8603         (s390_build_builtin_va_list): Update.
8604         (s390_va_start): Update.
8605         * config/spu/spu.c (direct_return): Update.
8606         (spu_expand_prologue): Update.
8607         (spu_initial_elimination_offset): Update.
8608         (spu_build_builtin_va_list): Update.
8609         (spu_va_start): Update.
8610         * config/sparc/sparc.c (sparc_init_modes): Update.
8611         (sparc_compute_frame_size): Update.
8612         (function_value): Update.
8613         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
8614         * config/i386/i386.md (return expander): Update.
8615         * config/i386/i386.c (ix86_va_start): Update.
8616         (ix86_can_use_return_insn_p): Update.
8617         (ix86_compute_frame_layout): Update.
8618         (ix86_expand_epilogue): Update.
8619         * config/sh/sh.c (output_stack_adjust): Update.
8620         (calc_live_regs): Update.
8621         (sh_expand_prologue): Update.
8622         (sh_builtin_saveregs): Update.
8623         (sh_va_start): Update.
8624         (initial_elimination_offset): Update.
8625         (sh_allocate_initial_value): Update.
8626         (sh_function_ok_for_sibcall): Update.
8627         (sh_get_pr_initial_val): Update.
8628         * config/sh/sh.md (return expander): Update.
8629         * config/avr/avr.c (frame_pointer_required_p): UPdate.
8630         * config/crx/crx.c (crx_compute_frame): UPdate.
8631         (crx_initial_elimination_offset): UPdate.
8632         * config/xtensa/xtensa.c (compute_frame_size): Update
8633         (xtensa_builtin_saveregs): Update.
8634         (xtensa_va_start): Update.
8635         (order_regs_for_local_alloc): Update.
8636         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
8637         (xstormy16_expand_builtin_va_start): Update.
8638         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
8639         * config/m68hc11/m68hc11.md (return expanders): Update.
8640         * config/m68hc11/m68hc11.c (expand_prologue): Update.
8641         (expand_epilogue): Update.
8642         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
8643         (cris_simple_epilogue): Update.
8644         (cris_expand_prologue): Update.
8645         (cris_expand_epilogue): Update.
8646         * config/iq2000/iq2000.c (iq2000_va_start): Update.
8647         (compute_frame_size): Update.
8648         * config/mt/mt.c (mt_compute_frame_size): Update.
8649         * config/mn10300/mn10300.c (expand_prologue): Update.
8650         (expand_epilogue): Update.
8651         (initial_offset): Update.
8652         (mn10300_builtin_saveregs):
8653         * config/mn10300/mn10300.md (return expander): Update.
8654         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
8655         (ia64_initial_elimination_offset): Update.
8656         (ia64_initial_elimination_offset): Update.
8657         (ia64_expand_prologue): Update.
8658         * config/m68k/m68k.md (return expander): Update.
8659         * config/rs6000/rs6000.c (rs6000_va_start): Update.
8660         (rs6000_stack_info): Update.
8661         * config/mcore/mcore.c (layout_mcore_frame): Update.
8662         (mcore_expand_prolog): Update.
8663         * config/arc/arc.c (arc_compute_frame_size): Update.
8664         * config/score/score3.c (score3_compute_frame_size): Update.
8665         * config/score/score7.c (score7_compute_frame_size): Update.
8666         * config/arm/arm.c (use_return_insn): Update.
8667         (thumb_find_work_register): Update.
8668         (arm_compute_save_reg_mask): Update.
8669         (arm_output_function_prologue): Update.
8670         (arm_output_epilogue): Update.
8671         (arm_size_return_regs): Update.
8672         (arm_get_frame_offsets): Update.
8673         (arm_expand_prologue): Update.
8674         (thumb_exit): Update.
8675         (thumb_unexpanded_epilogue): Update.
8676         (thumb1_output_function_prologue): Update.
8677         * config/pa/pa.md (return expander): Update.
8678         * config/pa/pa.c (compute_frame_size): Update.
8679         (hppa_builtin_saveregs): Update.
8680         * config/mips/mips.c (mips_va_start): Update.
8681         (mips16_build_function_stub): Update.
8682         (mips_compute_frame_info): Update.
8683         (mips_restore_gp): Update.
8684         (mips_output_function_prologue): Update.
8685         (mips_expand_prologue): Update.
8686         * config/v850/v850.c (compute_frame_size): Update.
8687         (expand_prologue): * config/mmix/mmix.c (along): update.
8688         (mmix_initial_elimination_offset): update.
8689         (mmix_reorg): update.
8690         (mmix_use_simple_return): update.
8691         (mmix_expand_prologue): update.
8692         (mmix_expand_epilogue): Update.
8693         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
8694         (emit_link_insn): Update.
8695
8696 2008-04-08  Anatoly Sokolov <aesok@post.ru>
8697
8698         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
8699         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
8700         instructions.
8701         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
8702         atmega103 device.
8703
8704 2008-04-07  Jan Hubicka  <jh@suse.cz>
8705
8706         * function.h (rtl): Rename to x_rtl.
8707         (crtl): New define.
8708         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
8709         frame_offset, stack_check_probe_note, arg_pointer_save_area,
8710         used_temp_slots avail_temp_slots, temp_slot_level,
8711         nonlocal_goto_handler_labels): Update accesstors.
8712         (rtl): New global variable.
8713         (struct function): Move some fileds to rtl_data.
8714         (get_arg_pointer_save_area): Update prototype.
8715         * builtins.c (expand_builtin_setjmp_receiver): Update call of
8716         get_arg_pointer_save_area.
8717         * expr.c (init_expr): Update
8718         * function.c (get_frame_size): Update
8719         (assign_stack_local): Update
8720         (expand_function_end): Update.
8721         (get_art_pointer_save_area): Update
8722         * function.h 
8723         * emit-rtl.c (rtl): Declare.
8724         (regno_reg_rtx): Declare.
8725         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
8726         Update.
8727         (gen_reg_rtx): Update.
8728         * varasm.c (n_deferred_constatns): Update accestor.
8729         (init_varasm_status): Do not allocate varasm_status.
8730         (force_const_mem, get_pool_size, output_constant_pool): Update.
8731         * stmt.c (force_label_rtx): Do not use x_ prefixes.
8732         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
8733         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
8734         * sparc/sparc.h (INIT_EXPANDERS): Update.
8735         * ia64/ia64.h (INIT_EXPANDERS): Update.
8736
8737 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
8738
8739         * reload.c (push_secondary_reload): Add missing break to for loop.
8740
8741 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
8742
8743         PR middle-end/PR28690
8744         * rtlanal.c: Update copyright years.
8745         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
8746         as REG_POINTER and MEM_POINTER operands.
8747         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
8748         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
8749         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
8750         * gcse.c: Update copyright years.
8751         (pre_delete): Call gen_reg_rtx_and_attrs.
8752         (hoist_code): Likewise.
8753         (build_store_vectors): Likewise.
8754         (delete_store): Likewise.
8755         * loop-invariant.c (move_invariant_reg): Likewise.
8756         Update copyright years.
8757
8758 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
8759
8760         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
8761         control string instead of quoted.
8762
8763 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
8764
8765         * doc/rtl.texi: Rewrite of subreg section.
8766
8767 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
8768
8769         PR/35842
8770         * config/i386/i386.c (legitimize_pic_address): Add treating
8771         of dllimport SYM_REF's.
8772         (legitimize_dllimport_symbol): Add prototype.
8773
8774 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
8775
8776         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
8777         reference in constructor with non self-referential type.
8778
8779 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
8780
8781         Removal of Return with Depressed Stack Pointer support
8782         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
8783         (ECF_SP_DEPRESSED): Likewise.
8784         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
8785         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
8786         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
8787         (expand_call): Do not test ECF_SP_DEPRESSED.
8788         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
8789         * function.c (keep_stack_depressed): Delete.
8790         (handle_epilogue_set): Likewise.
8791         (update_epilogue_consts): Likewise.
8792         (emit_equiv_load): Likewise.
8793         (thread_prologue_and_epilogue_insns): Remove support for Return with
8794         Depressed Stack Pointer.
8795         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
8796
8797 2008-04-06  Richard Guenther  <rguenther@suse.de>
8798
8799         PR tree-optimization/35400
8800         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
8801         information from SSA_NAMEs.
8802
8803 2008-04-06  Anatoly Sokolov <aesok@post.ru>
8804
8805         * config/avr/avr.h (avr_mega_p): Remove declaration.
8806         (AVR_MEGA): Remove macro.
8807         * config/avr/avr.c (avr_mega_p): Remove variable.
8808         (avr_override_options): Remove inicializion of avr_mega_p.
8809         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
8810         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
8811         (avr_jump_mode): (Ditto.).
8812         (avr_output_progmem_section_asm_op): (Ditto.).
8813         (avr_asm_init_sections): (Ditto.).
8814         (avr_asm_init_sections): (Ditto.).
8815         (avr_rtx_costs): (Ditto.).
8816         * config/avr/avr.md: (Ditto.).
8817         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
8818         '__AVR_MEGA__'.
8819
8820 2008-04-06  Richard Guenther  <rguenther@suse.de>
8821
8822         PR tree-optimization/35842
8823         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
8824         is_gimple_invariant_address.
8825
8826 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8827
8828         * gcc.c (default_compilers): Sync Fortran extensions list with
8829         that in fortran/lang-specs.h.
8830         * doc/invoke.texi: Likewise.
8831         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
8832         * dwarf2out.c (gen_compile_unit_die): Likewise.
8833
8834 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
8835
8836         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
8837
8838 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
8839
8840         PR target/12329
8841         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
8842         attribute is used for nested functions.
8843
8844 2008-04-05  Jan Hubicka  <jh@suse.cz>
8845
8846         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
8847
8848         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
8849         letter argument.
8850         (dump_files): Update.
8851         (enable_rtl_dump_file): Do not accept letter argument.
8852         * tree-pass.h (dump_file_info): Remove letter argument.
8853         * toplev.c (decode_d_option): Update -da handling.
8854         * toplev.h (enable_rtl_dump_file): Update prototype.
8855         * passes.c (register_one_dump_file): Do not accept IPA argument; work
8856         it out based on pass type.
8857         (register_dump_files_1): Likewise.
8858         (init_optimization_passes): Update register_one_dump_file calls.
8859         (execute_one_pass): Sanity check that IPA passes are called at IPA
8860         level and RTL passes at RTL level.
8861         (execute_pass_list): IPA pass can not be after or subpass of
8862         GIMPLE/RTL pass.
8863         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
8864         disallov RTL subpasses of IPA subpasses.
8865
8866 2008-04-05  Ben Elliston  <bje@au.ibm.com>
8867
8868         * tree-cfg.c (need_fake_edge_p): Return false for calls to
8869         builtins that return exactly once and do not throw. Cache call to
8870         call_expr_flags.
8871
8872 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
8873
8874         PR rtl-optimization/34916
8875         PR middle-end/35519
8876         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
8877         between instruction pairs.
8878
8879 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
8880
8881         * doc/invoke.texi: Document -mbitops for SH.
8882         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
8883         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
8884         * config/sh/sh.c (print_operand): Add %t operand code.
8885         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
8886         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
8887         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
8888         (extendqihi2): Likewise.
8889         (movqi_i): Likewise.
8890         (insv): Use bset, bclr and bst instructions for SH2A if possible.
8891         (extv): Use bld instruction for SH2A if possible.
8892         (extzv): Likewise.
8893         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
8894         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
8895         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
8896         (bset.b, bclr.b): Define peepholes.
8897         * config/sh/sh.opt (mbitops): New option.
8898
8899 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
8900
8901         PR target/35620
8902         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
8903         and view convert expression.
8904
8905 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
8906
8907         PR target/35364
8908         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
8909
8910 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
8911
8912         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
8913
8914         * config/i386/cpuid.h (bit_AES): New.
8915         (bit_PCLMUL): Likewise.
8916
8917         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
8918         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
8919         SSE2 if AES or PCLMUL is enabled.
8920         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
8921         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
8922         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
8923         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
8924         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
8925         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
8926         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
8927         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
8928         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
8929         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
8930         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
8931         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
8932         __builtin_ia32_aeskeygenassist128 and
8933         __builtin_ia32_pclmulqdq128.
8934         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
8935         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
8936         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
8937
8938         * config/i386/i386.h (TARGET_AES): New.
8939         (TARGET_PCLMUL): Likewise.
8940         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
8941
8942         * config/i386/i386.md (UNSPEC_AESENC): New.
8943         (UNSPEC_AESENCLAST): Likewise.
8944         (UNSPEC_AESDEC): Likewise.
8945         (UNSPEC_AESDECLAST): Likewise.
8946         (UNSPEC_AESIMC): Likewise.
8947         (UNSPEC_AESKEYGENASSIST): Likewise.
8948         (UNSPEC_PCLMUL): Likewise.
8949
8950         * config/i386/i386.opt (maes): New.
8951         (mpclmul): Likewise.
8952
8953         * config/i386/sse.md (aesenc): New pattern.
8954         (aesenclast): Likewise.
8955         (aesdec): Likewise.
8956         (aesdeclast): Likewise.
8957         (aesimc): Likewise.
8958         (aeskeygenassist): Likewise.
8959         (pclmulqdq): Likewise.
8960
8961         * config/i386/wmmintrin.h: New.
8962
8963         * doc/extend.texi: Document AES and PCLMUL built-in function.
8964
8965         * doc/invoke.texi: Document -maes and -mpclmul.
8966
8967 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
8968
8969         * function.c (free_after_parsing): Replace with
8970         cxx_push_function_context from C++ front-end.
8971         (allocate_struct_function): Don't call langhook.
8972         * langhooks.h (struct lang_hooks_for_functions): Delete.
8973         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
8974         member "function".
8975         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
8976         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
8977         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
8978         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
8979         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
8980         remove LANG_HOOKS_FUNCTION_INITIALIZER.
8981         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
8982
8983         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
8984         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
8985         
8986 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
8987
8988         PR c/35440
8989         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
8990         for all types.
8991
8992 2008-04-04  Richard Guenther  <rguenther@suse.de>
8993
8994         PR middle-end/35823
8995         * fold-const.c (optimize_minmax_comparison): Use the correct
8996         type for the constant in the simplified comparison.
8997
8998 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
8999
9000         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
9001         Pass L2 size as "--param l2-cache-size" to the compiler.
9002         (decode_l2_cache): New function to decode L2 cache parameters using
9003         0x8000006 extended cpuid function.
9004         (detect_caches_amd): Determine parameters of L2 cache using
9005         decode_l2_caches function.
9006         (decode_caches_intel): Decode L2 cache parameters.
9007         (detect_caches_intel): Determine L2 cache parameters using
9008         decode_caches_intel and decode_l2_caches functions.
9009
9010 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
9011
9012         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
9013         secondary input reload for subword loads from the constant pool.
9014
9015 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
9016
9017         PR target/35713
9018         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
9019           constants of the appropriate size for runtime calculations.
9020
9021         PR c/35712
9022         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
9023           decimal-float literal constant zero.
9024
9025 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
9026
9027         PR c/35738
9028         * c-parser.c (c_parser_omp_atomic): Call
9029         default_function_array_conversion on the RHS.
9030
9031         PR middle-end/35818
9032         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
9033         call is_variable_sized if decl has incomplete type.
9034
9035 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
9036
9037         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
9038
9039 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
9040
9041         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
9042         iterators.
9043         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
9044         (sgt<u>): Merge sgt and sgtu into new expander.
9045         (sgt, sgtu): Remove expanders.
9046         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
9047         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
9048         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
9049         *sgtu_<mode>_mips16 into new pattern.
9050         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
9051         (sge<u>): Merge sge and sgeu into new expander.
9052         (sge, sgeu): Remove expanders.
9053         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
9054         new pattern.
9055         (*sge_<mode>, second *sge_<mode>): Remove patterns.
9056         (slt<u>): Merge slt and sltu into new expander.
9057         (slt, sltu): Remove expanders.
9058         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
9059         (*slt_<mode>, *sltu_<mode>): Remove patterns.
9060         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
9061         *sltu_<mode>_mips16 into new pattern.
9062         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
9063         (sle<u>): Merge sle and sleu into new expander.
9064         (sle, sleu): Remove expanders.
9065         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
9066         (*sle_<mode>, *sleu_<mode>): Remove patterns.
9067         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
9068         *sleu_<mode>_mips16 into new pattern.
9069         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
9070
9071 2008-04-03  Jan Hubicka  <jh@suse.cz>
9072
9073         PR tree-optimization/35795
9074         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
9075         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
9076         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
9077         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
9078         * score/score3.c (score3_output_mi_thunk): Likewise.
9079         * score/score7.c (score7_output_mi_thunk): Likewise.
9080         * mips/mips.c (mips_output_mi_thunk): Likewise.
9081
9082 2008-04-03  Richard Guenther  <rguenther@suse.de>
9083
9084         * tree-vrp.c (extract_range_from_unary_expr): Handle all
9085         conversions.  Simplify code.
9086
9087 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
9088
9089         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
9090
9091 2008-04-03  Tom Tromey  <tromey@redhat.com>
9092             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9093
9094         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
9095         * config/bfin/t-bfin-linux (generated_files): Add
9096         linux-sysroot-suffix.h.
9097         * doc/install.texi (Prerequisites): Require make 3.80.
9098         * doc/sourcebuild.texi (Front End Directory): Document new
9099         variable.
9100         * Makefile.in (generated_files): New variable.
9101         (ALL_HOST_OBJS): New variable.
9102         ($(ALL_HOST_OBJS)): New target.
9103
9104 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
9105
9106         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
9107         (remap_block): Call id->transform_lang_insert_block instead
9108         of langhook.
9109         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
9110         Set id.transform_lang_insert_block to NULL.
9111         (clone_body): Move to cp/optimize.c
9112         * tree-inline.h (struct copy_body_data): Change
9113         transform_lang_insert_block to function pointer.
9114         (copy_generic_body, copy_decl_no_change): Export.
9115         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
9116         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
9117         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
9118
9119         * c-tree.h (insert_block): Kill.
9120         * c-decl.c (insert_block): Kill.
9121
9122 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
9123
9124         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
9125         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
9126         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
9127         argument.
9128         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
9129         argument, call {push,pop}_function_context from here.
9130         * c-parser.c: Use c_{push,pop}_function_context.
9131
9132         * function.c (push_function_context_to): Move meat ...
9133         (push_function_context): ... here.  Simplify.
9134         * function.c (pop_function_context_from): Move meat ...
9135         (pop_function_context): ... here.  Simplify.
9136         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
9137         leave_nested).
9138         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
9139         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
9140         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
9141         * tree.h (push_function_context_to, pop_function_context_from): Remove.
9142
9143 2008-04-03  Ben Elliston  <bje@au.ibm.com>
9144
9145         * expmed.c (extract_force_align_mem_bit_field): Remove.
9146
9147 2008-04-03  Richard Guenther  <rguenther@suse.de>
9148
9149         PR middle-end/35800
9150         * expr.h (try_casesi): Adjust prototype.
9151         * expr.c (try_casesi): Take fallback label as extra parameter.
9152         Use that for gen_casesi if default_label is NULL.
9153         * stmt.c (expand_case): Pass fallback label to try_casesi,
9154         make sure to fill gaps with a fallback label if default_label
9155         is not present.
9156
9157 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
9158
9159         PR target/35801
9160         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
9161
9162 2008-04-03  Ben Elliston  <bje@au.ibm.com>
9163
9164         * expmed.c (extract_split_bit_field): Remove if (0) code.
9165         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
9166         (do_ds_constraint): Likewise.
9167
9168 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
9169
9170         * doc/cppopts.texi (-dU): Document.
9171         * c-common.h (flag_dump_macros): Update comment.
9172         * c-opts.c (handle_OPT_d): Handle -dU.
9173         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
9174         dump_queued_macros, cb_used_define, cb_used_undef): New.
9175         (init_pp_output): Handle -dU.
9176         (cb_line_change): Call dump_queued_macros.
9177         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
9178
9179 2008-04-02  Anatoly Sokolov <aesok@post.ru>
9180
9181         * config/avr/predicates.md (io_address_operand): New predicate. 
9182         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
9183         * config/avr/avr.c (avr_io_address_p): Remove function.
9184         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
9185         'avr_io_address_p' function.
9186         (out_movhi_r_mr): (Ditto.).
9187         (out_movqi_mr_r): (Ditto.).
9188         (out_movhi_mr_r): (Ditto.).
9189         (avr_address_cost): (Ditto.).
9190
9191 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
9192
9193         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
9194         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
9195         in 32bit mode when XMM registers are available to avoid store
9196         forwarding stalls.
9197         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
9198         corresponding post-reload splitters.
9199
9200 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
9201
9202         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
9203         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
9204         __builtin_ia32_roundss.
9205         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
9206         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
9207         __builtin_ia32_roundss.
9208         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
9209         IX86_BUILTIN_SHUFPD here.
9210
9211 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
9212
9213         * config/i386/i386.md (plogic): New.
9214         (plogicprefix): Likewise.
9215
9216         * config/i386/mmx.md (mmx_<code><mode>3): New.
9217         (mmx_and<mode>3): Removed.
9218         (mmx_ior<mode>3): Likewise.
9219         (mmx_xor<mode>3): Likewise.
9220
9221         * config/i386/sse.md (<code><mode>3): New.
9222         (*<code><mode>3): Likewise.
9223         (*<code><mode>3): Likewise.
9224         (<code><mode>3): Likewise.
9225         (*sse_<code><mode>3): Likewise.
9226         (*sse2_<code><mode>3): Likewise.
9227         (<code>tf3): Likewise.
9228         (*<code>tf3): Likewise.
9229         (and<mode>3): Likewise.
9230         (*and<mode>3): Likewise.
9231         (ior<mode>3): Removed.
9232         (*ior<mode>3): Likewise.
9233         (xor<mode>3): Likewise.
9234         (*xor<mode>3): Likewise.
9235         (*and<mode>3): Likewise.
9236         (*ior<mode>3): Likewise.
9237         (*xor<mode>3): Likewise.
9238         (and<mode>3): Likewise.
9239         (*sse_and<mode>3): Likewise.
9240         (*sse2_and<mode>3): Likewise.
9241         (andtf3): Likewise.
9242         (*andtf3): Likewise.
9243         (ior<mode>3): Likewise.
9244         (*sse_ior<mode>3): Likewise.
9245         (*sse2_ior<mode>3): Likewise.
9246         (iortf3): Likewise.
9247         (*iortf3): Likewise.
9248         (xor<mode>3): Likewise.
9249         (*sse_xor<mode>3): Likewise.
9250         (*sse2_xor<mode>3): Likewise.
9251         (xortf3): Likewise.
9252         (*xortf3): Likewise.
9253
9254 2008-04-02  Richard Guenther  <rguenther@suse.de>
9255
9256         PR tree-optimization/14495
9257         PR tree-optimization/34793
9258         * tree-vrp.c (struct switch_update): New structure.
9259         (to_remove_edges, to_update_switch_stmts): New VECs.
9260         (simplify_switch_using_ranges): New function.  Remove not taken
9261         case labels and edges.
9262         (simplify_stmt_using_ranges): Call it.
9263         (identify_jump_threads): Mark edges we have queued for removal
9264         so we don't thread them.
9265         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
9266         case label vector.
9267         * tree-cfg.c (group_case_labels): Deal with missing default label.
9268         (tree_verify_flow_info): Allow missing default label.
9269         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
9270         (emit_case_nodes): Likewise.
9271         (expand_case): Do not rely on the default label to be present.
9272         * expr.c (try_casesi): Deal with NULL default_label.
9273         (do_tablejump): Likewise.
9274
9275 2008-04-02  Richard Guenther  <rguenther@suse.de>
9276
9277         PR tree-optimization/14495
9278         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
9279         SWITCH_EXPR here ...
9280         (vrp_visit_switch_stmt): ... but here (new function).
9281         (find_case_label_index): New helper function.
9282         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
9283
9284 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
9285
9286         * fwprop.c: Fix ISO-C99ism.
9287
9288 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
9289
9290         PR bootstrap/35752
9291         * Makefile.in (objdir): Set it here.
9292         * configure.ac: Not here.  Find dynamic linker characteristics.
9293         * exec-tool.in: Use them.
9294         * aclocal.m4: Regenerate.
9295         * configure: Regenerate.
9296
9297 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
9298
9299         * expr.c (expand_var): Delete it.
9300         * expr.h (expand_var): Delete prototype.
9301         * function.c (expand_function_start): Use expand_decl instead.
9302         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
9303         langhook.
9304
9305 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
9306
9307         PR rtl-optimization/35542
9308         * fwprop.c (forward_propagate_and_simplify): Replace
9309         loc_reg_mentioned_in_p with reg_mentioned_p.
9310
9311 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
9312
9313         PR rtl-optimization/35281
9314         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
9315         (propagate_rtx_1): Handle PR_HANDLE_MEM.
9316         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
9317         (varying_mem_p): Move above propagate_rtx.
9318         (all_uses_available_at): Do not check MEMs.
9319
9320 2008-04-02  Rafael Espindola  <espindola@google.com>
9321
9322         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
9323         (register_edge_assert_for_2): Split the cond argument.
9324         (register_edge_assert_for_1): Adjust for the change in
9325         register_edge_assert_for_2.
9326         (register_edge_assert_for): Split the cond argument.
9327         (find_switch_asserts): Adjust for the change in
9328         register_edge_assert_for.
9329
9330 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
9331
9332         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
9333         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
9334         offsets for 64-bit mingw.
9335         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
9336         abi for x86_64-pc-mingw.
9337
9338 2008-04-02  Richard Guenther  <rguenther@suse.de>
9339
9340         * tree-vrp.c (extract_range_from_assert): Make sure to not
9341         produce range min/max with TREE_OVERFOW set.
9342         If merging a anti-range and a range keep the anti-range if
9343         the range covers all values of the type.
9344         (register_edge_assert_for_2): Only allow sign-changing
9345         conversions in detecting canonical range checks.  Also
9346         register an assert for the unsigned name if useful.
9347
9348         PR tree-optimization/35787
9349         * tree-vrp.c (vrp_val_max): New function.
9350         (vrp_val_min): Likewise.
9351         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
9352         (vrp_val_is_min): Likewise.
9353         (supports_overflow_infinity): Use vrp_val_{min,max}.
9354         (negative_overflow_infinity): Likewise.
9355         (positive_overflow_infinity): Likewise.
9356         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
9357         (is_positive_overflow_infinity): Likewise.
9358         (is_overflow_infinity): Likewise.
9359         (avoid_overflow_infinity): Use vrp_val_{min,max} and
9360         vrp_val_is_{min,max}.
9361         (set_and_canonicalize_value_range): Canonicalize anti-ranges
9362         to ranges if possible.  Avoid empty ranges.
9363
9364 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9365
9366         PR middle-end/35705
9367         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
9368         the expression is a function address.
9369
9370 2008-04-01  George Helffrich  <george@gcc.gnu.org>
9371
9372         PR fortran/35154, fortran/23057
9373         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
9374         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
9375         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
9376         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
9377         in common.
9378         (dbxout_syms): Check for COMMON-based symbol and wrap in
9379         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
9380         in bracket for efficiency.
9381
9382         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
9383         using DW_TAG_common_block + member offset.
9384         (add_pubname_string): New function.
9385         (dw_expand_expr): New function to find block name and offset for
9386         COMMON var.
9387         (common_check): New function to check whether symbol in Fortran COMMON.
9388         (gen_variable_die): If COMMON, use DW_TAG_common_block.
9389
9390 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
9391
9392         PR c/35436
9393         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
9394
9395 2008-04-02  Ben Elliston  <bje@au.ibm.com>
9396
9397         * config/v850/v850.md (casesi): Remove if (0) code.
9398         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9399         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
9400
9401 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
9402
9403         * config/i386/i386.md (rex64suffix): New mode attribute.
9404         (floathi<mode>2): Disable expander for SSE math.
9405         (*floathi<mode>2_1): New insn insn_and_split pattern.
9406         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
9407         corresponding post-reload splitters.
9408         (*floathi<mode>2_i387): New macroized insn pattern.
9409         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
9410         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
9411         insn_and_split pattern.
9412         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
9413         New macroized instruction patterns and corresponding post-reload
9414         splitters.
9415         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
9416         and corresponding post-reload splitters.
9417         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
9418         New macroized instruction patterns.
9419         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
9420         macroized instruction patterns and corresponding post-reload splitters.
9421         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
9422         corresponding post-reload splitters.
9423         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
9424         New macroized instruction patterns.
9425         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
9426         corresponding post-reload splitters.
9427         (*floatsi<mode>2_i387): New macroized instruction patterns.
9428
9429 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
9430
9431         * config/i386/i386.md (smaxmin): New.
9432         (umaxmin): Likewise.
9433         (maxminiprefix): Likewise.
9434         (maxminfprefix): Likewise.
9435         (<code><mode>3): Likewise.
9436         (smin<mode>3): Removed.
9437         (smax<mode>3): Likewise.
9438
9439         * config/i386/mmx.md (mmx_<code>v2sf3): New.
9440         (mmx_<code>v4hi3): Likewise.
9441         (mmx_<code>v8qi3): Likewise.
9442         (mmx_smaxv2sf3): Removed.
9443         (mmx_sminv2sf3): Likewise.
9444         (mmx_umaxv8qi3): Likewise.
9445         (mmx_smaxv4hi3): Likewise.
9446         (mmx_uminv8qi3): Likewise.
9447         (mmx_sminv4hi3): Likewise.
9448
9449         * config/i386/sse.md (<addsub><mode>3): New.
9450         (*<addsub><mode>3): Likewise.
9451         (<sse>_vm<addsub><mode>3): Likewise.
9452         (<maxmin><mode>3): Likewise.
9453         (*<maxmin><mode>3_finite): Likewise.
9454         (*<maxmin><mode>3): Likewise.
9455         (<sse>_vm<maxmin><mode>3): Likewise.
9456         (sse3_h<addsub>v4sf3): Likewise.
9457         (sse3_h<addsub>v2df3): Likewise.
9458         (<maxmin>v16qi3): Likewise.
9459         (*<maxmin>v16qi3): Likewise.
9460         (<maxmin>v8hi3): Likewise.
9461         (*<maxmin>v8hi3): Likewise.
9462         (*sse4_1_<maxmin><mode>3): Likewise.
9463         (*sse4_1_<maxmin><mode>3): Likewise.
9464         (add<mode>3): Removed.
9465         (*add<mode>3): Likewise.
9466         (<sse>_vmadd<mode>3): Likewise.
9467         (sub<mode>3): Likewise.
9468         (*sub<mode>3): Likewise.
9469         (<sse>_vmsub<mode>3): Likewise.
9470         (smin<mode>3): Likewise.
9471         (*smin<mode>3_finite): Likewise.
9472         (*smin<mode>3): Likewise.
9473         (<sse>_vmsmin<mode>3): Likewise.
9474         (smax<mode>3): Likewise.
9475         (*smax<mode>3_finite): Likewise.
9476         (*smax<mode>3): Likewise.
9477         (<sse>_vmsmax<mode>3): Likewise.
9478         (sse3_haddv4sf3): Likewise.
9479         (sse3_haddv2df3): Likewise.
9480         (sse3_hsubv4sf3): Likewise.
9481         (sse3_hsubv2df3): Likewise.
9482         (umaxv16qi3): Likewise.
9483         (*umaxv16qi3): Likewise.
9484         (smaxv8hi3): Likewise.
9485         (*smaxv8hi3): Likewise.
9486         (*sse4_1_smax<mode>3): Likewise.
9487         (*sse4_1_umax<mode>3): Likewise.
9488         (uminv16qi3): Likewise.
9489         (*uminv16qi3): Likewise.
9490         (sminv8hi3): Likewise.
9491         (*sminv8hi3): Likewise.
9492         (*sse4_1_smin<mode>3): Likewise.
9493         (*sse4_1_umin<mode>3): Likewise.
9494
9495 2008-04-01  Rafael Espindola  <espindola@google.com>
9496
9497         * tree-cfg.c (verify_expr): remove in_phi.
9498         (verify_stmt): Don't call walk_tree with verify_expr. Use
9499         is_gimple_min_invariant instead of is_gimple_val.
9500
9501 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
9502
9503         * doc/include/gpl_v3.texi: Update for manpage generation.
9504         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
9505         gpl.texi.
9506         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
9507         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
9508         gpl_v3.texi instead of gpl.texi.
9509         (gpl.pod): New.
9510
9511 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
9512
9513         PR pch/13675
9514         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
9515
9516 2008-04-01  Rafael Espindola  <espindola@google.com>
9517
9518         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
9519         (extract_code_and_val_from_cond): Use
9520         extract_code_and_val_from_cond_with_ops.
9521
9522 2008-04-01  Jan Hubicka  <jh@suse.cz>
9523
9524         * function.c (free_after_compilation): Free epilogue_delay_list.
9525         (prepare_function_start): Assert that previous compilation was freed.
9526
9527 2008-04-01  Jan Hubicka  <jh@suse.cz>
9528             Jim Wilson  <wilson@tuliptree.org>
9529             Andreas Tobler <andreast@gcc.gnu.org>
9530
9531         PR middle-end/35781
9532         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
9533         rtl.emit instead cfun->emit.
9534         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
9535         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
9536
9537 2008-04-01  Ben Elliston  <bje@au.ibm.com>
9538
9539         * doc/c-tree.texi (Function Basics): Fix grammatical error.
9540
9541 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
9542
9543         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
9544         New options
9545         (fprofile-use): Add var flag_profile_use
9546         * coverage.c (coverage_begin_output): Do not open a gcno file for
9547         output only if -ftest-coverage is set.
9548         Do not add getpwd() to gcda file path.
9549         (build_gcov_info): Check the new flag
9550         flag_profile_datafile_relative_path.
9551         (coverage_init): Use profile_data_prefix.
9552         Read profile counter only if flag_profile_use is set.
9553         * opts.c (common_handle_option): New option fprofile-use=,
9554         fprofile-dir=, fprofile-generate=.
9555         * toplev.c (profile_data_prefix): New variable definition.
9556         * toplev.h (profile_data_prefix): New declaration.
9557         * doc/invoke.tex (Option Summary, Optimization Options):
9558         Add new options.
9559
9560 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
9561
9562         * varasm.c (output_constant_pool_1): In LABEL_REF check,
9563         use tmp consistently.
9564
9565         PR target/35695
9566         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
9567         * config/ia64/ia64.c (rtx_needs_barrier): Handle
9568         UNSPEC_FR_RECIP_APPROX_RES.
9569         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
9570
9571 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
9572
9573         PR c/35750
9574         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
9575
9576 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9577
9578         PR middle-end/30186
9579         * fold-const.c (fold_indirect_ref_1): Support accessing non first
9580         element of the vector via a pointer.
9581
9582 2008-03-31  Ian Lance Taylor  <iant@google.com>
9583
9584         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
9585
9586 2008-03-31  Jan Hubicka  <jh@suse.cz>
9587
9588         * builtins.c (expand_builtin_setjmp_receiver): Update call of
9589         get_arg_pointer_save_area.
9590         * expr.c (init_expr): Just clear out rtl.expr.
9591         * function.c (free_after_compilation): Clear out whole RTL structure.
9592         (get_func_frame_size): Merge into ...
9593         (get_frame_size): ... this one.
9594         (assign_stack_local_1): Merge into ...
9595         (assign_stack_local): ... this one.
9596         (expand_function_end): Update call of get_arg_pointer_save_area.
9597         (get_art_pointer_save_area): Remove cfun argument.
9598         * function.h (emit_status): regno_pointer_align does not need length
9599         attribute. Move x_regno_reg_rtx to ...
9600         (regno_reg_rtx): ... new global array.
9601         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
9602         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
9603         apply_args_value, forced_labels, stack_pointer_delta):
9604         Update accestors.
9605         (struct varasm_status): Move here from varasm.c
9606         (struct rtl_data): New. Move here some fields from struct function.
9607         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
9608         frame_offset, stack_check_probe_note, arg_pointer_save_area,
9609         used_temp_slots avail_temp_slots, temp_slot_level,
9610         nonlocal_goto_handler_labels): Update accesstors.
9611         (rtl): New global variable.
9612         (struct function): Move some fileds to rtl_data.
9613         (get_arg_pointer_save_area): Update prototype.
9614         * emit-rtl.c (rtl): Declare.
9615         (regno_reg_rtx): Declare.
9616         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
9617         Update.
9618         (gen_reg_rtx): Update.
9619         (init_virtual_regs): Do not tate emit_status argument.
9620         (init_emit): Do not allocate emit.
9621         * varasm.c (varasm_statuc): Move to function.h.
9622         (n_deferred_constatns): Update accestor.
9623         (init_varasm_status): Do not allocate varasm_status.
9624         (force_const_mem, get_pool_size, output_constant_pool): Update.
9625         * stmt.c (force_label_rtx): Do not use x_ prefixes.
9626         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
9627
9628 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
9629
9630         PR rtl-optimization/35729
9631         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
9632         references.
9633
9634 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
9635
9636         PR target/32000
9637         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
9638         load/store if memory is unaligned.
9639         (*movti_rex64): Likewise.
9640
9641         * config/i386/predicates.md (misaligned_operand): New.
9642
9643 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
9644
9645         PR tree-opt/35431
9646         * tree-ssa-phiopt.c (conditional_replacement): Return early for
9647         complex types.
9648
9649 2008-03-31  Jan Beulich  <jbeulich@novell.com>
9650
9651         * config/ia64/constraints.md: Add 'j' constraint.
9652         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
9653         (movdi_internal): Likewise.
9654
9655 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
9656
9657         PR c/35748
9658         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
9659
9660 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
9661
9662         PR target/35757
9663         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
9664         proper error message for the third argument on blendpd and
9665         blendps.
9666
9667         * config/i386/sse.md (blendbits): New.
9668         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
9669
9670 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
9671
9672         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
9673
9674 2008-03-30  Richard Guenther  <rguenther@suse.de>
9675
9676         PR middle-end/31023
9677         * fold-const.c (fold_sign_changed_comparison): Do leave
9678         conversions to base-types alone.
9679
9680 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9681
9682         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
9683         the link register if one altivec register is be saved.
9684
9685 2008-03-30  Ben Elliston  <bje@au.ibm.com>
9686
9687         * final.c (final_scan_insn): Remove if (0) code.
9688
9689 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
9690
9691         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
9692
9693 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
9694
9695         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
9696         of V4SFmode to ix86_binary_operator_ok.
9697
9698 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
9699
9700         * config/i386/i386.c (override_options): Initialize
9701         ix86_veclib_handler to ix86_veclibabi_svml when
9702         -mveclibabi=svml is used.
9703         (ix86_veclibabi_svml): New function for SVML ABI style
9704         vectorization support.
9705         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
9706
9707 2008-03-28  Rafael Espindola  <espindola@google.com>
9708
9709         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
9710         (tree_binary_nonnegative_warnv_p): Make it public.
9711         (tree_single_nonnegative_warnv_p): Make it public.
9712         (tree_invalid_nonnegative_warnv_p): Make it public.
9713         (tree_unary_nonzero_warnv_p): Make it public.
9714         (tree_binary_nonzero_warnv_p): Make it public
9715         (tree_single_nonzero_warnv_p): Make it public.
9716         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
9717         (extract_range_from_binary_expr): Split the expr argument.
9718         (extract_range_from_unary_expr): Split the expr argument.
9719         (extract_range_from_comparison): Split the expr argument.
9720         (extract_range_from_expr): Use the new aux functions.
9721         (vrp_evaluate_conditional_warnv): Use
9722         vrp_evaluate_conditional_warnv_with_ops.
9723         * tree.h (tree_unary_nonzero_warnv_p): Declare.
9724         (tree_binary_nonzero_warnv_p): Declare.
9725         (tree_single_nonzero_warnv_p): Declare.
9726         (tree_expr_nonzero_warnv_p): Declare.
9727         (tree_unary_nonnegative_warnv_p): Declare.
9728         (tree_binary_nonnegative_warnv_p): Declare.
9729         (tree_single_nonnegative_warnv_p): Declare.
9730         (tree_invalid_nonnegative_warnv_p): Declare.
9731
9732 2008-03-28  Richard Guenther  <rguenther@suse.de>
9733
9734         PR tree-optimization/30317
9735         PR tree-optimization/30911
9736         PR tree-optimization/34793
9737         * tree-vrp.c (set_and_canonicalize_value_range): New function.
9738         (struct assert_locus_d): New member EXPR.
9739         (register_new_assert_for): Add EXPR parameter to support
9740         ASSERT_EXPR <name, expr OP limit>.
9741         (register_edge_assert_for_1): Adjust callers.
9742         (find_assert_locations): Likewise.
9743         (process_assert_insertions_for): Build condition from expression.
9744         (extract_range_from_assert): Handle ASSERT_EXPRs
9745         of the form ASSERT_EXPR <name, expr OP limit>.
9746         (register_edge_assert_for_2): New helper registering
9747         asserts for comparisons.  Recognize range tests of the form
9748         (unsigned)i - CST1 OP CST2.
9749         (register_edge_assert_for_1): Use it.
9750         (register_edge_assert_for): Likewise.
9751         (needs_overflow_infinity): Integer sub-types
9752         do not need overflow infinities.
9753         (vrp_val_is_max): The extreme values of integer sub-types
9754         are those of the base type.
9755         (vrp_val_is_min): Likewise.
9756         * tree.def (ASSERT_EXPR): Document extra allowed conditional
9757         expressions.
9758
9759 2008-03-28  Nick Clifton  <nickc@redhat.com>
9760
9761         PR target/31110
9762         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
9763         Return GENERAL_REGS for stack adjustment reloads.
9764
9765 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9766
9767         PR target/31334
9768         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
9769         const_vector when all the vectors are constant.
9770
9771 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
9772
9773         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
9774         comparisons.
9775         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
9776         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
9777         (scc_sf): New.
9778         (s<code>_sf): Use new scc_sf attribute for opcode names.
9779
9780 2008-03-27  Tom Tromey  <tromey@redhat.com>
9781
9782         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
9783         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
9784         config/spu/t-spu-elf, config/i386/t-interix,
9785         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
9786         config/i386/x-darwin, config/i386/x-mingw32,
9787         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
9788         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
9789         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
9790         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
9791         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
9792         config/rs6000/x-darwin, config/rs6000/t-rs6000,
9793         config/score/t-score-elf, config/arm/t-strongarm-pe,
9794         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
9795         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
9796         Revert automatic dependency patch.
9797
9798 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9799
9800         PR target/35657
9801         * config/i386/i386.c (ix86_function_arg_boundary): Align
9802         decimal floating point to its natural boundary.
9803
9804 2008-03-27  Richard Guenther  <rguenther@suse.de>
9805
9806         PR middle-end/35716
9807         * fold-const.c (fold_comparison): Restrict distinct decl
9808         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
9809         solely rely on operand_equal_p.
9810
9811 2008-03-27  Richard Guenther  <rguenther@suse.de>
9812
9813         PR c/32511
9814         * c-common.c (handle_weak_attribute): Reject combination of
9815         weak and inline.
9816
9817 2008-03-27  Richard Guenther  <rguenther@suse.de>
9818
9819         PR tree-optimization/32810
9820         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
9821         conversions from DECL_INITIAL.
9822         (fold_const_aggregate_ref): Likewise from constructor elements.
9823
9824 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
9825
9826         * tree-affine.h (aff_combination_expand): Declare.
9827         (get_inner_reference_aff): Likewise.
9828         * tree-affine.c (aff_combination_expand): Split out from
9829         tree_to_aff_combination_expand.
9830         (get_inner_reference_aff): New function.
9831         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
9832         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
9833         (struct lim_aux_data): sm_done field removed.
9834         (mem_ref_loc_p, mem_ref_locs_p): New types.
9835         (struct mem_ref): Added id, stored, accesses_in_loop,
9836         indep_loop, dep_loop, indep_ref, dep_ref fields.
9837         Removed is_stored, locs and next fields.
9838         (memory_accesses): New variable.
9839         (movement_possibility): Do not allow moving statements
9840         that store to memory.
9841         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
9842         New functions.
9843         (determine_max_movement): For statements with memory references,
9844         find the outermost loop in that the reference is independent.
9845         (move_computations_stmt): Mark the virtual operands for renaming.
9846         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
9847         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
9848         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
9849         add_vop_ref_mapping, create_vop_ref_mapping_loop,
9850         create_vop_ref_mapping, analyze_memory_references,
9851         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
9852         get_all_locs_in_loop, ref_always_accessed_p,
9853         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
9854         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
9855         store_motion_loop, store_motion): New functions.
9856         (struct vop_to_refs_elt): New type.
9857         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
9858         memref_hash, memref_eq, hoist_memory_references): Rewritten.
9859         (schedule_sm): Replaced by...
9860         (execute_sm): ... this.
9861         (determine_lsm_ref, hoist_memory_references,
9862         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
9863         find_more_ref_vops, free_mem_ref, free_mem_refs,
9864         determine_lsm_loop, determine_lsm): Removed.
9865         (tree_ssa_lim_finalize): Free data structures used by store motion.
9866         (tree_ssa_lim): Call analyze_memory_references.  Use
9867         store_motion instead of determine_lsm.
9868
9869 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
9870
9871         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
9872         rename tmake_file to m68hc11/t-m68hc11.
9873         (mcore): Set inhibit_libc to true.
9874         * config.host (alpha*-dec-*vms*): Set extra_programs.
9875         (interix3*): Don't use host_xmake_file.
9876         * configure.ac: Let config.gcc override inhibit_libc.
9877         * configure: Regenerate.
9878
9879         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
9880         * config/t-openbsd-thread: Remove commented out lines.
9881         
9882         * config/x-interix: Remove.
9883
9884         * config/m68hc11/t-m68hc11-gas: Rename to...
9885         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
9886
9887         * config/mcore/t-mcore: Remove T_CFLAGS.
9888         * config/mcore/t-mcore-pe: Likewise.
9889
9890 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
9891
9892         * configure.ac: Replace custom __GNU_SOURCE test with
9893         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
9894         * aclocal.m4: Regenerate.
9895         * configure: Regenerate.
9896         * config.in: Regenerate.
9897
9898 2008-03-27  Richard Guenther  <rguenther@suse.de>
9899
9900         * fold-const.c (target.h): Include.
9901         (fold_comparison): Fold comparison of addresses of decls
9902         that bind locally or of constants.  Consolidate address folding code.
9903         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
9904         results from fold_binary_to_constant.
9905         (compare_values_warnv): Likewise.
9906
9907 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
9908
9909         PR middle-end/35429
9910         * fold-const.c (fold_truthop): Check for integeral types when folding
9911         a == 0 && b == 0 and a != 0 || b != 0 .
9912
9913 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
9914
9915         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
9916
9917 2008-03-26  Andreas Schwab  <schwab@suse.de>
9918
9919         * doc/invoke.texi: Fix use of @item vs. @itemx.
9920
9921 2008-03-26  Tom Tromey  <tromey@redhat.com>
9922
9923         * Makefile.in (build/gensupport.o, build/print-rtl.o,
9924         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
9925         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
9926         build/gencodes.o, build/genconditions.o, build/genconfig.o,
9927         build/genconstants.o, build/genemit.o, build/genextract.o,
9928         build/genflags.o, build/genmddeps.o, build/genopinit.o,
9929         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
9930         options.h.
9931
9932 2008-03-26  Richard Guenther  <rguenther@suse.de>
9933
9934         Revert
9935         2008-03-26  Richard Guenther  <rguenther@suse.de>
9936
9937         * fold-const.c (target.h): Include.
9938         (fold_comparison): Fold comparison of addresses of two decls
9939         that bind locally.  Consolidate address folding code.
9940
9941 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9942
9943         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
9944         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
9945         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
9946         dconstsqrt2, dconstthird, dconste and/or dconst10.
9947         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
9948         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
9949         dconstsqrt2, dconste): Delete.
9950         (init_emit_once): Likewise.  Simplify initializing dconstm1.
9951         Constify variable.
9952         * real.c (get_real_const): New.
9953         * real.h (dconst3, dconst10, dconstm2, dconstthird,
9954         dconstsqrt2, dconste): Delete.
9955         (real_value_const, get_real_const): New.
9956
9957 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
9958
9959         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
9960
9961         * config/i386/i386.c (ix86_function_arg_boundary): Check
9962         BIGGEST_ALIGNMENT instead of 128.
9963         (setup_incoming_varargs_64): Likewise.
9964
9965 2008-03-26  Tom Tromey  <tromey@redhat.com>
9966
9967         * Makefile.in (DEPFILES): Add missing '/'.
9968
9969 2008-03-26  Richard Guenther  <rguenther@suse.de>
9970
9971         * fold-const.c (target.h): Include.
9972         (fold_comparison): Fold comparison of addresses of two decls
9973         that bind locally.  Consolidate address folding code.
9974
9975 2008-03-26  Nick Clifton  <nickc@redhat.com>
9976
9977         PR target/31232
9978         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
9979         not allow INT+INT as a legitimate addressing mode.
9980
9981 2008-03-26  Richard Guenther  <rguenther@suse.de>
9982
9983         * tree-flow.h (widen_bitfield): Remove declaration.
9984         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
9985         (widen_bitfield): Remove function.
9986         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
9987         code.
9988
9989 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9990
9991         PR target/31558
9992         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
9993         error_mark_node's.
9994
9995 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
9996
9997         PR rtl-optimization/35232
9998         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
9999         (forget_old_reloads_1, forget_marked_reloads): Don't clear
10000         reg_reloaded_call_part_clobbered here.
10001         (reload_regs_reach_end_p): New function.
10002         (reload_reg_rtx_for_input): New variable.
10003         (reload_reg_rtx_for_output): Likewise.
10004         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
10005         when reassigning a pseudo register.  Load reloadreg from 
10006         reload_reg_rtx_for_input, moving the mode and register
10007         calculation to...
10008         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
10009         instead of the original when deciding whether an input reload
10010         would be a no-op or whether an output reload can be deleted.
10011         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
10012         when setting up new_spill_reg_store.  Load it from
10013         reload_reg_rtx_for_output, moving the mode and register
10014         calculation to...
10015         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
10016         instead of the original when deciding whether an output reload
10017         would be a no-op.  Do the same when modifying insn notes.
10018         Use rtx_equal_p instead of == to compare the registers.
10019         (inherit_piecemeal_p): Take a mode and two register numbers
10020         as argument.
10021         (emit_reload_insns): Clear new_spill_reg_store for every hard
10022         register in the reload register.  Remove spill registers
10023         from reg_reloaded_valid before considering whether to record
10024         inheritance information for them.  Use reload_reg_rtx_for_output
10025         instead of reg_rtx when recording output reloads.  Use
10026         reload_reg_rtx_for_input instead of reg_rtx when recording
10027         input reloads.  Set or clear reg_reloaded_call_part_clobbered
10028         at the same time as setting reg_reloaded_valid.
10029         (delete_output_reload): Add a new_reload_reg parameter and use it
10030         instead of rld[j].reg_rtx.
10031         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
10032         calls accordingly.
10033
10034 2008-03-25  Tom Tromey  <tromey@redhat.com>
10035
10036         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
10037         (build/genattr.o): Likewise.
10038         (build/genattrtab.o): Likewise.
10039         (build/gencodes.o): Likewise.
10040         (build/genconfig.o): Likewise.
10041         (build/genconstants.o): Likewise.
10042         (build/genemit.o): Likewise.
10043         (build/genextract.o): Likewise.
10044         (build/genflags.o): Likewise.
10045
10046 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
10047         
10048         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
10049         instead of size_int for integer types.
10050         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
10051         to match type of MINUS_EXPR.
10052         
10053 2008-03-25  Tom Tromey  <tromey@redhat.com>
10054
10055         * configure: Rebuilt.
10056         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
10057         Makefile.
10058
10059 2008-03-25  Tom Tromey  <tromey@redhat.com>
10060
10061         * config/x-solaris (host-solaris.o): Update.
10062         * config/x-linux (host-linux.o): Update.
10063         * config/x-hpux (host-hpux.o): Update.
10064         * config/x-darwin (host-darwin.o): Update.
10065         * config/v850/t-v850e (v850-c.o): Update.
10066         * config/v850/t-v850 (v850-c.o): Update.
10067         * config/t-vxworks (vxworks.o): Update.
10068         * config/t-sol2 (sol2-c.o, sol2.o): Update.
10069         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
10070         * config/spu/t-spu-elf (spu-c.o): Update.
10071         (spu.o): Remove.
10072         * config/sh/t-symbian (sh-c.o): Update.
10073         (symbian.o): Update.
10074         * config/sh/t-sh (sh-c.o): Update.
10075         * config/score/t-score-elf (score7.o, score3.o): Update.
10076         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
10077         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
10078         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
10079         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
10080         (rs6000.o): Remove.
10081         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
10082         * config/m32c/t-m32c (m32c-pragma.o): Update.
10083         * config/ia64/t-ia64 (ia64-c.o): Update.
10084         * config/i386/x-mingw32 (host-mingw32.o): Update.
10085         * config/i386/x-i386 (driver-i386.o): Update.
10086         * config/i386/x-darwin (host-i386-darwin.o): Update.
10087         * config/i386/x-cygwin (host-cygwin.o): Update.
10088         * config/i386/t-nwld (nwld.o): Update.
10089         * config/i386/t-netware (netware.o): Update.
10090         * config/i386/t-interix (winnt.o): Update.
10091         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
10092         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
10093         msformat-c.o): Update.
10094         * config/bfin/t-bfin-linux (generated_files): Add
10095         linux-sysroot-suffix.h.
10096         * config/arm/t-wince-pe (pe.o): Update.
10097         * config/arm/t-strongarm-pe (pe.o): Update.
10098         * config/arm/t-pe (pe.o): Update.
10099         * config/arm/t-arm (arm-c.o): Update.
10100         * doc/install.texi (Prerequisites): Require make 3.80.
10101         * Makefile.in: Remove .o targets.
10102         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
10103         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
10104         (simple_generated_h, simple_generated_c): Move earlier.
10105         (generated_files): New variable.
10106         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
10107         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
10108         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
10109         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
10110         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
10111         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
10112         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
10113         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
10114         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
10115         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
10116         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
10117         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
10118         (.c.o): Remove.
10119         (COMPILE.base, COMPILE): New variables.
10120         (%.o): New pattern rule.
10121         (ALL_HOST_OBJS): New variable.
10122         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
10123         (dummy-checksum.o, cc1-checksum.o): Remove.
10124         (DRIVER_SHLIB): New variable.
10125         (DRIVER_DEFINES): Use it.
10126         (gencondmd.c): Move out of build/.
10127         (s-conditions): Update.
10128         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
10129         (ALL_BUILD_OBJS): Likewise.
10130         (build/%.o): Use BUILDCOMPILE.
10131         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
10132         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
10133         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
10134         build/gencheck.o, build/gencodes.o, build/genconditions.o,
10135         build/genconfig.o, build/genconstants.o, build/genemit.o,
10136         build/genextract.o, build/genflags.o, build/genmddeps.o,
10137         build/genopinit.o, build/genoutput.o, build/genpeep.o,
10138         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
10139         build/gen-protos.o, build/scan.o, build/fix-header.o,
10140         build/scan-decls.o): Simplify.
10141         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
10142         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
10143         prefix.o, toplev.o): Reduce to variable setting.
10144         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
10145         ($(out_object_file), gcc-options.o): New targets.
10146         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
10147         * configure: Rebuilt.
10148         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
10149         * doc/sourcebuild.texi (Front End Directory): Document new variable.
10150
10151 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
10152
10153         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
10154         complain when we hit an error, return ERROR_MARK_NODE.
10155
10156 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
10157
10158         * config/sh/constraints.md (Pso, Psz): New constraints.
10159         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
10160         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
10161
10162 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
10163
10164         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
10165         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
10166
10167 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
10168
10169         * config/sh/sh.md (prefetch): Add condition for SH2A target.
10170         (prefetch_sh2a): New.   
10171
10172 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
10173             Naveen.H.S  <naveen.hs@kpitcummins.com>
10174
10175         * config/sh/constraints.md (I28): New constraint.
10176         * config/sh/sh.c (broken_move): Add support for movi20s.
10177         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
10178
10179 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
10180             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
10181             Naveen.H.S  <naveen.hs@kpitcummins.com>
10182
10183         * config/sh/sh.c (SH_ATTRIBUTES): Define.
10184         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
10185         (print_operand): Handle resbank in %@ operand code.
10186         (sh_encode_section_info): New.
10187         (push_regs): Add conditions for resbank.
10188         (sh_expand_epilogue): Likewise.
10189         (sh_insert_attributes): Likewise.
10190         (sh_attribute_table): Likewise.
10191         (sh_handle_resbank_handler_attribute): New.
10192         (sh2a_handle_function_vector_handler_attribute): New.
10193         (sh2a_is_function_vector_call): New.
10194         (sh2a_get_function_vector_number): New.
10195         (sh2a_function_vector_p): New.
10196         (sh_cfun_resbank_handler_p): New.
10197         * config/sh/sh.md (calli): Emit jsr/n if possible.
10198         (calli_tbr_rel): New.
10199         (calli_pcrel): Emit jsr/n if possible.
10200         (return_i): Emit rts/n if possible.
10201         (call_valuei_tbr_rel): New.
10202         (call_valuei_pcrel): Add condition for SH2A target.
10203         (call_value): Likewise.
10204         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
10205         (sh2a_get_function_vector_number): Likewise.
10206         (sh2a_is_function_vector_call): Likewise.
10207         * doc/extend.texi: Document TBR relative addressing of SH2A.
10208         (resbank): Add description for SH2A.
10209
10210 2008-03-24  Richard Guenther  <rguenther@suse.de>
10211
10212         PR c/22371
10213         * gimplify.c (gimplify_modify_expr): For frontend type-correct
10214         pointer assignments change conversions according to middle-end rules.
10215         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
10216         * configure.ac: Include type checking in yes.
10217         * configure: Regenerate.
10218
10219 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10220
10221         * diagnostic.c (diagnostic_count_diagnostic): Delete.
10222         (diagnostic_report_diagnostic): Update. Handle ICEs here.
10223         
10224 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
10225
10226         * gthr-vxworks.h (UNUSED): Define.
10227
10228 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
10229
10230         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
10231
10232 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
10233
10234         * doc/extend.texi (Function Attributes): Add missing comma in the
10235         example of the "alloc_size" attribute.
10236         
10237 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
10238
10239         Revert:
10240         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
10241
10242         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10243         32bit host.
10244
10245         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
10246
10247         PR target/35496
10248         * stor-layout.c (update_alignment_for_field): Set minimum alignment
10249         of the underlying type of a MS bitfield layout to the natural
10250         alignment of the type.
10251
10252         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
10253
10254         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
10255         to their natural alignment to avoid store forwarding stalls.
10256
10257 2008-03-22  Richard Guenther  <rguenther@suse.de>
10258
10259         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
10260         For PHI nodes verify the address is invariant.
10261         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
10262         (get_symbol_constant_value): Use is_gimple_min_invariant.
10263         (maybe_fold_stmt_indirect): Likewise.
10264
10265 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
10266
10267         PR rtl-optimization/33927
10268         * Makefile.in (dse.o): Depend on $(TM_P_H).
10269         * expr.h (extract_low_bits): Declare.
10270         * expmed.c (extract_low_bits): New function.
10271         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
10272         * dse.c: Include tm_p.h.
10273         (find_shift_sequence): Remove the read_reg argument and return the
10274         read value.  Emit the instructions instead of returning them.
10275         Iterate on new_mode rather than calculating it each time.
10276         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
10277         source to NEW_MODE and extract_low_bits to convert the shifted
10278         value to READ_MODE.
10279         (replace_read): Allow the load and store to have different mode
10280         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
10281         or extraction instructions before trying the replacement.  Update
10282         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
10283
10284 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
10285
10286         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
10287         to their natural alignment to avoid store forwarding stalls.
10288
10289 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10290
10291         PR target/27946
10292         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
10293         encouraging but not allowing gprs for input;
10294         change the input constraint to !f#r.
10295         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
10296         gprs for output;
10297         change the output constraint to !f#r.
10298
10299 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
10300
10301         PR target/13958
10302         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
10303         corresponding post-reload splitters.
10304         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
10305         when x87 FP math is selected.
10306         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
10307         New function prototype.
10308         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
10309         unreachable function to ease macroization of insn patterns.
10310
10311 2008-03-21  Martin Jambor  <mjambor@suse.cz>
10312
10313         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
10314         reference dumps if ddr is NULL or dependence is unknown.
10315
10316 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10317
10318         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
10319         unsigned extension into account.
10320         (ATOMIC_COMPARE_AND_SWAP): Likewise.
10321         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
10322         Do computations on a scratch register.
10323
10324 2008-03-21  Richard Guenther  <rguenther@suse.de>
10325
10326         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
10327         Use is_gimple_min_invariant instead of TREE_INVARIANT.
10328         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
10329         * tree-ssa-dom.c (record_equality): Likewise.
10330         * tree-inline.c (copy_body_r): Likewise.
10331         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
10332         TREE_INVARIANT.
10333
10334 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10335
10336         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
10337         as 'delete_unused' argument.
10338
10339 2008-03-20  Richard Guenther  <rguenther@suse.de>
10340
10341         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
10342         special casing of constant qualifiers.
10343         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
10344         care about them in general.
10345         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
10346         regardless of their type.
10347         (fold_stmt_r): Forcefully fold *& if we end up with that.
10348
10349 2008-03-20  Paul Brook  <paul@codesourcery.com>
10350
10351         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
10352         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
10353         linker flags.
10354         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
10355         definition.
10356         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
10357         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
10358
10359 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
10360
10361         * common.opt (Wmudflap): New option.
10362         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
10363         (mx_register_decls): Likewise.
10364         (mudflap_finish_file): Likewise.
10365         * doc/invoke.texi: Document -Wno-mudflap.
10366
10367 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
10368
10369         * c-format.c (replace_format_name_to_system_name): New.
10370         (cmp_attribs): New.
10371         (convert_format_name_to_system_name): New.
10372         (decode_format_attr): Add use of convert_format_name_to_system_name.
10373         (format_types_orig): Add gnu_ prefix to names.
10374         (check_format_info_main): Special treating of \0 escaped names for
10375         supporting multi-character format specifiers as I32, I64.
10376         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
10377         (gnu_target_overrides_format_attributes): New.
10378         * c-format.h: Add structure target_ovr_attr to hold
10379         system specific formatter names.
10380         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
10381         msformat-c.o file to c_target_objs and cxx_target_objs.
10382         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
10383         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
10384         (TARGET_N_FORMAT_TYPES): New.
10385         * config/i386/msformat-c.c: New.
10386         * config/i386/t-cygming: Add build rule for msformat-c.o.
10387         * doc/extend.texi: Add new format names gnu_* and ms_* and
10388         further details.
10389         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
10390
10391 2008-03-20  Ira Rosen  <irar@il.ibm.com>
10392
10393         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
10394         optimizations turned on under -O3.
10395         (ftree-vectorize): Add that the flag is turned on with -O3.
10396
10397 2008-03-20  Ben Elliston  <bje@au.ibm.com>
10398
10399         * regmove.c (try_auto_increment): Fix spelling error in comment.
10400         * final.c (final_scan_insn): Likewise.
10401
10402 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
10403
10404         PR target/14552
10405         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
10406         allocator preferences for "y" and "r" class registers.
10407         ("*mov<mode>_internal"): Ditto.
10408         ("*movv2sf_internal_rex64"): Ditto.
10409         ("*movv2sf_internal"): Ditto.
10410
10411 2008-03-19  Michael Matz  <matz@suse.de>
10412
10413         PR middle-end/35616
10414         * calls.c (expand_call): Check overlap of arguments with call
10415         address for sibcalls.
10416
10417 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
10418
10419         PR target/35496
10420         * stor-layout.c (update_alignment_for_field): Set minimum alignment
10421         of the underlying type of a MS bitfield layout to the natural
10422         alignment of the type.
10423
10424 2008-03-19  Jan Hubicka  <jh@suse.cz>
10425
10426         PR other/35094
10427         * toplev.c (decode_d_option): Handle all CPP flags.
10428         * tree-vrp.c: Update tree_pass descriptors.
10429         * regrename.c: Update tree_pass descriptors.
10430         * fwprop.c: Update tree_pass descriptors.
10431         * doc/invoke.texi: Remove documentation of dropped -d? flags.
10432         * tree-into-ssa.c: Update tree_pass descriptors.
10433         * tree-dump.c: Update tree_pass descriptors.
10434         * tree-complex.c: Update tree_pass descriptors.
10435         * tree-dump.h: Update tree_pass descriptors.
10436         * see.c: Update tree_pass descriptors.
10437         * cgraphbuild.c: Update tree_pass descriptors.
10438         * tracer.c: Update tree_pass descriptors.
10439         * tree-loop-distribution.c: Update tree_pass descriptors.
10440         * cgraph.c: Update tree_pass descriptors.
10441         * postreload-gcse.c: Update tree_pass descriptors.
10442         * postreload.c: Update tree_pass descriptors.
10443         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
10444         * tree-tailcall.c: Update tree_pass descriptors.
10445         * tree-pass.h (tree_opt_pass): Rename to ...
10446         (opt_pass) ... this one; add "type" field and remove letter field.
10447         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
10448         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
10449         all_lowering_passes): Update declaration.
10450         * ipa-cp.c: Update tree_pass descriptors.
10451         * final.c: Update tree_pass descriptors.
10452         * omp-low.c: Update tree_pass descriptors.
10453         * tree-ssa-dse.c: Update tree_pass descriptors.
10454         * ipa-reference.c: Update tree_pass descriptors.
10455         * tree-ssa-uncprop.c: Update tree_pass descriptors.
10456         * auto-inc-dec.c: Update tree_pass descriptors.
10457         * reorg.c: Update tree_pass descriptors.
10458         * cgraphunit.c: Update tree_pass descriptors.
10459         * tree-ssa-copyrename.c: Update tree_pass descriptors.
10460         * tree-ssa-ccp.c: Update tree_pass descriptors.
10461         * df-core.c: Update tree_pass descriptors.
10462         * mode-switching.c: Update tree_pass descriptors.
10463         * tree-nomudflap.c: Update tree_pass descriptors.
10464         * modulo-sched.c: Update tree_pass descriptors.
10465         * ipa-pure-const.c: Update tree_pass descriptors.
10466         * cse.c: Update tree_pass descriptors.
10467         * web.c: Update tree_pass descriptors.
10468         * tree-stdarg.c: Update tree_pass descriptors.
10469         * tree-ssa-math-opts.c: Update tree_pass descriptors.
10470         * tree-ssa-dom.c: Update tree_pass descriptors.
10471         * tree-nrv.c: Update tree_pass descriptors.
10472         * tree-ssa-alias.c: Update tree_pass descriptors.
10473         * loop-init.c: Update tree_pass descriptors.
10474         * gimple-low.c: Update tree_pass descriptors.
10475         * ipa-inline.c: Update tree_pass descriptors.
10476         * tree-ssa-sink.c: Update tree_pass descriptors.
10477         * global.c: Update tree_pass descriptors.
10478         * ifcvt.c: Update tree_pass descriptors.
10479         * jump.c: Update tree_pass descriptors.
10480         * predict.c: Update tree_pass descriptors.
10481         * tree-ssa-loop.c: Update tree_pass descriptors.
10482         * recog.c: Update tree_pass descriptors.
10483         * dse.c: Update tree_pass descriptors.
10484         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
10485         * tree-eh.c: Update tree_pass descriptors.
10486         * regmove.c: Update tree_pass descriptors.
10487         * local-alloc.c
10488         * function.c: Update tree_pass descriptors.
10489         * tree-vectorizer.c: Update tree_pass descriptors.
10490         * gcse.c: Update tree_pass descriptors.
10491         * ipa-type-escape.c: Update tree_pass descriptors.
10492         * tree-if-conv.c: Update tree_pass descriptors.
10493         * init-regs.c: Update tree_pass descriptors.
10494         * ipa.c: Update tree_pass descriptors.
10495         * tree-ssa-phiopt.c: Update tree_pass descriptors.
10496         * rtl-factoring.c: Update tree_pass descriptors.
10497         * lower-subreg.c: Update tree_pass descriptors.
10498         * bt-load.c: Update tree_pass descriptors.
10499         * tree-dfa.c: Update tree_pass descriptors.
10500         * except.c: Update tree_pass descriptors.
10501         * emit-rtl.c: Update tree_pass descriptors.
10502         * cfgexpand.c: Update tree_pass descriptors.
10503         * tree-cfgcleanup.c: Update tree_pass descriptors.
10504         * cfgcleanup.c: Update tree_pass descriptors.
10505         * tree-ssa-pre.c: Update tree_pass descriptors.
10506         * tree-sra.c: Update tree_pass descriptors.
10507         * tree-mudflap.c: Update tree_pass descriptors.
10508         * tree-ssa-copy.c: Update tree_pass descriptors.
10509         * cfglayout.c: Update tree_pass descriptors.
10510         * tree-ssa-forwprop.c: Update tree_pass descriptors.
10511         * tree-ssa-dce.c: Update tree_pass descriptors.
10512         * tree-ssa.c: Update tree_pass descriptors.
10513         * regclass.c: Update tree_pass descriptors.
10514         * integrate.c: Update tree_pass descriptors.
10515         * tree-optimize.c: Update tree_pass descriptors.
10516         * tree-ssa-phiprop.c: Update tree_pass descriptors.
10517         * tree-object-size.c: Update tree_pass descriptors.
10518         * combine.c: Update tree_pass descriptors.
10519         * tree-outof-ssa.c: Update tree_pass descriptors.
10520         * bb-reorder.c: Update tree_pass descriptors.
10521         * stack-ptr-mod.c: Update tree_pass descriptors.
10522         * var-tracking.c: Update tree_pass descriptors.
10523         * tree-profile.c: Update tree_pass descriptors.
10524         * tree-vect-generic.c: Update tree_pass descriptors.
10525         * reg-stack.c: Update tree_pass descriptors.
10526         * sched-rgn.c: Update tree_pass descriptors.
10527         * tree-ssa-structalias.c: Update tree_pass descriptors.
10528         * tree-cfg.c: Update tree_pass descriptors.
10529         * passes.c (current_pass): Update declaration.
10530         (finish_optimization_passes): Update.
10531         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
10532         (register_one_dump_file, register_dump_files_1, next_pass_1):
10533         Update arguments.
10534         (init_optimization_passes): Update handling of new types.
10535         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
10536         * ipa-struct-reorg.c: Update tree_pass descriptors.
10537         * tree-ssa-reassoc.c: Update tree_pass descriptors.
10538         * combine-stack-adj.c: Update tree_pass descriptors.
10539         * cfgrtl.c: Update tree_pass descriptors.
10540         * dce.c: Update tree_pass descriptors.
10541         * tree-ssanames.c: Update tree_pass descriptors.
10542
10543 2008-03-19  Richard Guenther  <rguenther@suse.de>
10544
10545         PR middle-end/35609
10546         * tree-ssa.c (walk_data): New structure.
10547         (warn_uninitialized_var): If not always_executed warn with "maybe"
10548         instead of "is".
10549         (execute_early_warn_uninitialized): Compute post-dominators.
10550         Initialize always_executed before processing each basic block.
10551
10552 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
10553
10554         PR target/35504
10555         * config/i386/i386.c (x86_this_parameter): Calculate correct location
10556         of "this" pointer when "regparm = N" or "fastcall" is in effect.
10557
10558 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10559
10560         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
10561
10562 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
10563
10564         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
10565         is true.
10566         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
10567         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
10568         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
10569         target after ignore has been set, and move there also the commputation
10570         of subtarget and original_target.
10571         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
10572         (LANG_HOOKS_INITIALIZER): Remove it.
10573         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
10574
10575 2008-03-18  Richard Guenther  <rguenther@suse.de>
10576
10577         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
10578         found an expression with constants, note that in the VN for the lhs.
10579         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
10580         fold them to constants if possible.  Run cleanup_cfg if done so.
10581         (execute_pre): Return todo.
10582         (do_pre): Likewise.
10583         (execute_fre): Likewise.
10584         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
10585         of constants.
10586         (get_prop_source_stmt): Look through pointer conversions.
10587
10588 2008-03-18  Jan Hubicka  <jh@suse.cz>
10589
10590         * tree-pretty-print.c: Include predict.h.
10591         (dump_generic_node): Dump predictor.
10592         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
10593         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
10594         * gimple-low.c (lower_stmt): Likewise.
10595         * expr.c (expand_expr_real): Likewise.
10596         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
10597         them.
10598         (build_predict_expr, build_predict_expr): New.
10599         * predict.h (predictor_name, build_predict_expr): Update.
10600         * c-typeck.c (c_finish_bc_stmt): Add prediction.
10601         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
10602         * predict.def (PRED_CONTINUE): Update hitrate.
10603         * tree.def (PREDICT_EXPR): Define.
10604         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
10605         do not handle BIND_EXPR.
10606         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
10607         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
10608         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
10609         operands.
10610
10611 2008-03-18  Michael Matz  <matz@suse.de>
10612
10613         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
10614
10615 2008-03-18  Richard Guenther  <rguenther@suse.de>
10616
10617         * tree-gimple.h (is_gimple_invariant_address): Declare.
10618         (is_gimple_constant): Likewise.
10619         * tree-gimple.c (is_gimple_constant): New function.
10620         (is_gimple_invariant_address): Likewise.
10621         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
10622         and is_gimple_invariant_address.
10623         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
10624         previous change.
10625         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
10626         an addressable base.
10627
10628 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
10629
10630         PR middle-end/35611
10631         * gimplify.c (gimplify_expr): Gimplify second operand of
10632         OMP_ATOMIC_LOAD.
10633
10634 2008-03-17  Richard Guenther  <rguenther@suse.de>
10635
10636         PR tree-optimization/19637
10637         * fold-const.c (fold_unary): Remove restrictions of removing
10638         intermediate pointer-conversions (P2)(P1)P0.
10639         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
10640         conversion to void pointer.
10641         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
10642
10643 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
10644
10645         PR debug/31510
10646         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
10647         emulated thread local variables.
10648
10649 2008-03-16  Richard Guenther  <rguenther@suse.de>
10650
10651         PR middle-end/35607
10652         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
10653         expand TREE_INVARIANT operations that are not gimple invariant.
10654
10655 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
10656
10657         * doc/extend.texi (Alignment): Say that the ABI controls
10658         the __alignof__ for non-strict-alignment targets rather
10659         than being a recommendation.
10660
10661 2008-03-15  Paul Brook  <paul@codesourcery.com>
10662
10663         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
10664         annotations.
10665         (arm_output_fn_unwind): Mark functions that can not be unwound.
10666
10667 2008-03-15  Paul Brook  <paul@codesourcery.com>
10668
10669         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
10670         extension instructions.
10671
10672 2008-03-15  Richard Guenther  <rguenther@suse.de>
10673
10674         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
10675         and fold constant aggregate refs.
10676         (fold_const_aggregate_ref): Handle string constants
10677         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
10678         (evaluate_stmt): Simplify now that ccp_fold folds constant
10679         aggregate refs.
10680
10681 2008-03-15  Paul Brook  <paul@codesourcery.com>
10682
10683         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
10684         (extzv): Use gen_extzv_t2.
10685         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
10686
10687 2008-03-15  Richard Guenther  <rguenther@suse.de>
10688
10689         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
10690         (fold_const_aggregate_ref): Likewise.
10691         (get_value): Return NULL if we don't have any values.
10692         (ccp_finalize): Set const_val to NULL after freeing it.
10693         * tree-flow.h (get_symbol_constant_value): Declare.
10694         (fold_const_aggregate_ref): Likewise.
10695         * tree-ssa-sccvn.c (try_to_simplify): Use them.
10696
10697 2008-03-15  Richard Guenther  <rguenther@suse.de>
10698
10699         PR middle-end/35593
10700         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
10701         to not produce negative array indices if not allowed.  Add
10702         parameter to indicate that.
10703         (maybe_fold_offset_to_component_ref): Allow negative array
10704         indices only for the first member of a structure.
10705         (maybe_fold_offset_to_reference): Allow negative array indices.
10706         (maybe_fold_stmt_addition): Likewise.
10707
10708 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
10709             Anatoly Sokolov <aesok@post.ru>
10710
10711         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
10712         (avr_arch): Add ARCH_AVR6.
10713         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
10714         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
10715         instead of fixed value 2.
10716         (print_operand_address): Use gs() asm specifier instead of pm().
10717         (avr_assemble_integer): (Ditto.).
10718         (avr_output_addr_vec_elt): (Ditto.).
10719         (print_operand): Handle "!" code.
10720         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
10721         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
10722         (AVR_HAVE_EIJMP_EICALL): Define.
10723         (AVR_3_BYTE_PC): Redefine.
10724         (AVR_2_BYTE_PC): (Ditto.).
10725         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
10726         (LINK_SPEC): Add atmega2560 and atmega2561.
10727         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
10728         (crtm2561.o).
10729         * config/avr/avr.md (call_insn): Use eicall instead of icall 
10730         for 3 byte PC devices.
10731         (call_value_insn): (Ditto.).
10732         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
10733         (indirect_jump): Use only for for 2 byte PC devices.
10734         (*tablejump): (Ditto.).
10735         (*indirect_jump_avr6): Add insn.
10736         (*tablejump_rjmp): Don't use for 3 byte PC devices.
10737         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
10738         instead of ijmp for 3 byte PC devices.
10739         (__tablejump2__): (Ditto.).
10740         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
10741         (MULITLIB_DIRNAMES): (Ditto.). 
10742         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
10743
10744 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
10745
10746         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
10747         "sse2_umulsidi3".  Use V1DI mode for operand 0.
10748         ("mmx_psadbw"): Use V1DI mode for operand 0.
10749         * config/i386/i386-modes.def (V1SI): New vector mode.
10750         * config/i386/i386.c (struct builtin_description)
10751         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
10752         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
10753         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
10754         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
10755         v1di_ftype_v8qi_v8qi type.
10756         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
10757
10758         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
10759         __builtin_ia32_pmuludq]: Fix the mode of return value.
10760
10761 2008-03-15  Richard Guenther  <rguenther@suse.de>
10762
10763         PR middle-end/35595
10764         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
10765         being a PHI_NODE.
10766
10767 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
10768         
10769         * doc/invoke.texi (Option Summary, Xtensa Options): Document
10770         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
10771         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
10772         unless TARGET_SERIALIZE_VOLATILE is enabled.
10773         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
10774         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
10775         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
10776
10777 2008-03-14  Richard Guenther  <rguenther@suse.de>
10778
10779         PR tree-optimization/34172
10780         * tree-flow.h (refs_may_alias_p): Declare.
10781         (get_single_def_stmt): Likewise.
10782         (get_single_def_stmt_from_phi): Likewise.
10783         (get_single_def_stmt_with_phi): Likewise.
10784         * tree-dfa.c (refs_may_alias_p): New function.
10785         (get_single_def_stmt): Likewise.
10786         (get_single_def_stmt_from_phi): Likewise.
10787         (get_single_def_stmt_with_phi): Likewise.
10788         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
10789         (vn_reference_lookup_1): New helper function.
10790         (vn_reference_lookup): Walk the virtual use-def chain to
10791         continue searching for a match if the def does not alias the
10792         reference we are looking for.
10793
10794 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
10795
10796         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
10797         archive and Perzl.  Update The Written Word listing.
10798
10799 2008-03-14  Richard Guenther  <rguenther@suse.de>
10800
10801         PR tree-optimization/34043
10802         PR tree-optimization/33989
10803         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
10804         when doing FRE.
10805         (bitmap_find_leader): Use extra argument to verify dominance
10806         relationship inside a basic-block.
10807         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
10808         (find_leader_in_sets): Adjust.
10809         (create_component_ref_by_pieces): Take extra argument for
10810         dominance check, handle lookup failures.
10811         (find_or_generate_expression): Likewise.
10812         (create_expression_by_pieces): Likewise.
10813         (insert_into_preds_of_block): Adjust.
10814         (create_value_expr_from): If asked for, verify all operands
10815         are in the blocks AVAIL_OUT set.
10816         (make_values_for_stmt): Check for SSA_NAMEs that are life
10817         over an abnormal edge.
10818         (compute_avail): Remove such check.
10819         (do_SCCVN_insertion): New function.
10820         (eliminate): If we do not find a leader suitable for replacement
10821         insert a replacement expression from SCCVN if available.
10822         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
10823         (struct vn_ssa_aux): Add needs_insertion flag.
10824         * tree-ssa-sccvn.c (may_insert): New global flag.
10825         (copy_reference_ops_from_ref): Value-number union member access
10826         based on its size, not type and member if insertion is allowed.
10827         (visit_reference_op_load): For a weak match from union type
10828         punning lookup a view-converted value and insert a SSA_NAME
10829         for that value if that is not found.
10830         (visit_use): Make dumps shorter.  Do not disallow value numbering
10831         SSA_NAMEs that are life over an abnormal edge to constants.
10832         (free_scc_vn): Release inserted SSA_NAMEs.
10833         (run_scc_vn): New flag to specify whether insertion is allowed.
10834         Process SSA_NAMEs in forward order.
10835         * tree-ssa-loop-im.c (for_each_index): Handle invariant
10836         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
10837         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
10838         pointer type to/from integral types that do not change the
10839         precision to regular conversions.
10840
10841 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
10842
10843         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
10844         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
10845         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
10846         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
10847         input arguments and the mode of return value.  Built-in functions
10848         that operate on whole 64-bit MMX register now use V1DI mode.
10849
10850 2008-03-13  Alon Dayan  <alond@il.ibm.com>
10851             Olga Golovanevsky  <olga@il.ibm.com>
10852
10853         PR tree-optimization/35041
10854         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
10855         to locate the right position in a statement.
10856
10857 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
10858
10859         PR target/34000
10860         PR target/35553
10861         * config/i386/xmmintrin.h:  Change all static inline functions to
10862         extern inline and add __gnu_inline__ attribute.
10863         * config/i386/bmintrin.h: Ditto.
10864         * config/i386/smmintrin.h: Ditto.
10865         * config/i386/tmmintrin.h: Ditto.
10866         * config/i386/mmintrin-common.h: Ditto.
10867         * config/i386/ammintrin.h: Ditto.
10868         * config/i386/emmintrin.h: Ditto.
10869         * config/i386/pmmintrin.h: Ditto.
10870         * config/i386/mmintrin.h: Ditto.
10871         * config/i386/mm3dnow.h: Ditto.
10872
10873 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
10874
10875         PR middle-end/35185
10876         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
10877         (lower_omp_2): New function.
10878         (lower_omp_1, lower_omp): Rewritten.
10879
10880 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
10881
10882         PR 35054
10883         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
10884         with the phrase "Microsoft Windows compilers".
10885         (Push/Pop Macro Pragmas): New subsection. Document
10886         #pragma push_macro and pragma pop_macro.
10887
10888 2008-03-12  Paul Brook  <paul@codesourcery.com>
10889
10890         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
10891
10892 2008-03-12  Paul Brook  <paul@codesourcery.com>
10893
10894         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
10895         (thumb2_alusi3_short): Exclude PLUS and MINUS.
10896         (thumb2_addsi_shortim): Rename ...
10897         (thumb2_addsi_short): ... to this.  Allow register operands.
10898         (thumb2_subsi_short): New pattern.
10899         (thumb2_one_cmplsi2_short,
10900         thumb2_negsi2_short): New patterns and peepholes.
10901
10902 2008-03-12  Paul Brook  <paul@codesourcery.com>
10903
10904         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
10905
10906 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
10907
10908         * config/i386/i386.md (int_cond): New code iterator.
10909         (fp_cond): Ditto.
10910         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
10911         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
10912         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
10913         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
10914         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
10915         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
10916         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
10917         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
10918
10919 2008-03-12  Paul Brook  <paul@codesourcery.com>
10920
10921         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
10922         instead of {arm,thumb}_compute_save_reg_mask.
10923         (output_return_instruction): Ditto.
10924         (thumb_unexpanded_epilogue): Ditto.
10925         (thumb1_expand_prologue): Ditto.
10926         (thumb1_output_function_prologue): Ditto.
10927         (arm_set_return_address): Ditto.
10928         (thumb_set_return_address): Ditto.
10929         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
10930         regs to achieve stack alignment.
10931         (thumb1_compute_save_reg_mask): Fix compiler warning.
10932         (arm_output_epilogue): Use offsets->saved_regs_mask.
10933         Adjust stack pointer by poping call clobered registers.
10934         (arm_expand_prologue): Use offsets->saved_regs_mask.
10935         Adjust stack pointer by pushing extra registers.
10936         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
10937
10938 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
10939
10940         PR tree-opt/35422
10941         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
10942         conversion to the operands of a multiplication.
10943
10944 2008-03-12  Richard Guenther  <rguenther@suse.de>
10945
10946         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
10947         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
10948         * timevar.def (TV_TREE_PHIPROP): Add.
10949         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
10950         pass description.  Use TV_TREE_PHIPROP.
10951         * tree-ssa-forwprop.c: Remove phiprop code.
10952
10953 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
10954
10955         PR middle-end/35549
10956         * omp-low.c (maybe_lookup_decl): Constify first argument.
10957         (use_pointer_for_field): Change last argument from bool to
10958         omp_context *.  Disallow shared copy-in/out in nested
10959         parallel if decl is shared in outer parallel too.
10960         (build_outer_var_ref, scan_sharing_clauses,
10961         lower_rec_input_clauses, lower_copyprivate_clauses,
10962         lower_send_clauses, lower_send_shared_vars): Adjust callers.
10963
10964 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
10965             Ira Rosen  <irar@il.ibm.com>
10966
10967         * tree-vectorizer.c (free_stmt_vec_info): New function.
10968         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
10969         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
10970         * tree-vectorizer.h (free_stmt_vec_info): Declare.
10971         * tree-vect-transform.c (vectorizable_conversion): Free
10972         vec_oprnds0 if it was allocated.
10973         (vect_permute_store_chain): Remove unused VECs.
10974         (vectorizable_store): Free VECs that are allocated in the..
10975         function.
10976         (vect_transform_strided_load, vectorizable_load): Likewise.
10977         (vect_remove_stores): Simplify the code.
10978         (vect_transform_loop): Move code to vect_remove_stores().
10979         Call vect_remove_stores() and free_stmt_vec_info().
10980
10981 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10982
10983         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
10984         TARGET_HPUX.  Revise comment.
10985         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
10986         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
10987         Use sr4 variant of `be' instruction when not generating PIC code.
10988         (attr_length_call): Adjust for above change.
10989
10990 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10991
10992         * ipa-reference.c (static_execute): Remove module_statics_const and
10993         associated setting code.
10994
10995 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
10996
10997         PR target/35540
10998         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
10999         predicate for operand 1.
11000         (paritysi2_cmp): Use register_operand predicate for operand 2.
11001         Use earlyclobber modifier for operand 1.  Remove support for
11002         memory operands.
11003         (paritydi2_cmp): Use register_operand predicate for operand 3.
11004         Use earlyclobber modifier for operand 1.  Remove support for
11005         memory operands.
11006
11007 2008-03-11  Paul Brook  <paul@codesourcery.com>
11008             Vladimir Prus  <vladimir@codesourcery.com>
11009
11010         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
11011         (arm_compute_save_reg0_reg12_mask): Always
11012         check if register 11 must be saved.  Always safe hard frame pointer
11013         when frame_pointer_needeed.
11014         (arm_compute_save_reg_mask): Save IP and PC
11015         only with apcs frames.
11016         (arm_output_epilogue): Adjust Thumb2 codepath to
11017         be also invoked and work for ARM non-apcs frames.
11018         (arm_expand_prologue): Don't bother saving IP
11019         for non-apcs frame, since it's not clobbered by
11020         prologue code.  Implement non-apcs frame
11021         layout.
11022
11023 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
11024
11025         PR rtl-optimization/35281
11026         * expr.c (convert_move): Use a new pseudo for the intermediate
11027         from_mode->word_mode result.
11028
11029 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
11030
11031         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
11032         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
11033         * toplev.c (compile_file): Don't call it.
11034
11035 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
11036
11037         PR middle-end/35526
11038         * expr.c (store_expr): Call emit_block_move if the mode
11039         of "temp" RTX is BLKmode.
11040
11041 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11042             Richard Guenther  <rguenther@suse.de>
11043
11044         PR tree-optimization/31358
11045         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
11046         the step with a NULL_TREE.
11047         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
11048         to sizetype if type is a pointer type.
11049         (add_candidate_1): Don't convert the base and step to
11050         the generic type if the orginal type is a pointer type.
11051         (add_iv_value_candidates): Use sizetype for the step
11052         if type is a pointer type.
11053         (cand_value_at): Likewise.
11054         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
11055         for pointer types.
11056         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
11057         Don't convert the tem affine to the type.
11058         (add_elt_to_tree): Use sizetype for the step if a pointer.
11059         Use POINTER_PLUS_EXPR for pointers.
11060         (aff_combination_to_tree): Use sizetype for the step if a
11061         pointer.
11062
11063 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
11064
11065         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
11066         Remove commutativity hint.
11067
11068 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
11069
11070         PR c/35438
11071         PR c/35439
11072         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
11073         errorneous type.  Check that v is a VAR_DECL.
11074
11075         PR middle-end/35099
11076         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
11077
11078 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
11079
11080         PR tree-optimization/35494
11081         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
11082         may be overriden at link and run time.
11083
11084 2008-03-10  Richard Guenther  <rguenther@suse.de>
11085
11086         PR tree-optimization/34677
11087         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
11088         (poolify_tree): Likewise.
11089         (modify_expr_template): Likewise.
11090         (poolify_modify_stmt): Likewise.
11091         (insert_fake_stores): Handle all component-ref style stores
11092         in addition to INDIRECT_REF.  Also handle complex types.
11093         Do not poolify the inserted load.
11094         (realify_fake_stores): Do not rebuild the tree but only
11095         make it a SSA_NAME copy.
11096         (init_pre): Remove initialzation of modify_expr_template.
11097         Do not allocate modify_expr_node_pool.
11098         (fini_pre): Do not free modify_expr_node_pool.
11099
11100 2008-03-10  Paul Brook  <paul@codesourcery.com>
11101
11102         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
11103         to avoid conflicts.
11104
11105 2008-03-10  Paul Brook  <paul@codesourcery.com>
11106             Mark Shinwell  <shinwell@codesourcery.com>
11107
11108         * config/arm/cortex-r4.md: New.
11109         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
11110         insn attributes.
11111         * config/arm/arm.md: Include cortex-r4.md.
11112         (insn): Add smmls, sdiv and udiv values.
11113         (generic_sched): Don't use generic scheduling for Cortex-R4.
11114         (arm_issue_rate): New function.
11115         (TARGET_SCHED_ISSUE_RATE): Define.
11116
11117 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
11118
11119         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
11120
11121 2008-03-10  Richard Guenther  <rguenther@suse.de>
11122
11123         * tree-ssa-pre.c (get_sccvn_value): Simplify.
11124         (compute_avail): Do not add stmt uses to AVAIL_OUT.
11125
11126 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
11127
11128         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
11129         Set default to true.
11130
11131 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11132
11133         * c.opt (Wsynth): Deprecate.
11134         * doc/invoke.texi (Option Summary, Warning Options): Document
11135         -Wno-format-contains-nul.
11136
11137 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
11138
11139         PR target/35496
11140         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
11141         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
11142
11143 2008-03-09  Ira Rosen  <irar@il.ibm.com>
11144
11145         * config/rs6000/rs6000.c (builtin_description): Rename vector
11146         left shift operations.
11147         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
11148         (altivec_vsl<VI_char>): Rename to ...
11149         (ashl<mode>3): ... new name.
11150         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
11151         gen_ashlv4si3.
11152         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
11153
11154 2008-03-08  Richard Guenther  <rguenther@suse.de>
11155
11156         * coverage.h (tree_coverage_counter_addr): Declare.
11157         * coverage.c (tree_coverage_counter_addr): New function.
11158         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
11159         before using again.
11160         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
11161         (tree_gen_one_value_profiler): Likewise.
11162         (tree_gen_ic_profiler): Likewise.
11163         (tree_gen_average_profiler): Likewise.
11164         (tree_gen_ior_profiler): Likewise.
11165
11166 2008-03-08  Richard Guenther  <rguenther@suse.de>
11167
11168         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
11169         (vn_binary_op_insert): Likewise.
11170         (vn_unary_op_lookup): Likewise.
11171         (vn_unary_op_insert): Likewise.
11172         (vn_nary_op_lookup): Declare.
11173         (vn_nary_op_insert): Likewise.
11174         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
11175         and binary hashes, use a single obstack for unary_op_pool
11176         and binary_op_pool.
11177         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
11178         a single struct vn_nary_op_s.  Store tree code length and
11179         a variable number of operands.
11180         (struct vn_reference_op_struct): Remove unused op2.
11181         (vn_reference_op_eq): Do not compare op2.
11182         (vn_reference_op_compute_hash): Do not compute hash of op2.
11183         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
11184         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
11185         with vn_nary_op_compute_hash.
11186         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
11187         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
11188         vn_nary_op_lookup.
11189         (vn_unary_op_insert, vn_binary_op_insert): Replace with
11190         vn_nary_op_insert.
11191         (visit_unary_op): Call nary functions.
11192         (visit_binary_op): Likewise.
11193         (process_scc): Adjust for struct vn_tables_s changes.
11194         (allocate_vn_table): Likewise.
11195         (free_vn_table): Likewise.
11196         * tree-vn.c (vn_add): Call nary functions.
11197         (vn_lookup): Likewise.
11198
11199 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
11200
11201         PR target/35498
11202         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
11203         wdst back after sync_compare_and_swapqhi_internal.
11204
11205 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
11206
11207         PR target/22152
11208         * config/i386/i386-modes.def (V1DI): New vector mode.
11209         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
11210         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
11211         (MMXMODE248): Ditto.
11212         (MMXMODE): Add V1DI mode.
11213         (mmxvecsize): Change DI mode to V1DI mode.
11214         ("mov<mode>): Use MMXMODEI8 mode iterator.
11215         ("*mov<mode>_internal_rex64"): Ditto.
11216         ("*mov<mode>_internal"): Ditto.
11217         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
11218         ("mmx_sub<mode>3"): Ditto.
11219         ("mmx_adddi3"): Remove insn pattern.
11220         ("mmx_subdi3"): Ditto.
11221         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
11222         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
11223         ("mmx_ashl<mode>3"): Ditto.
11224         ("mmx_lshrdi3"): Remove insn pattern.
11225         ("mmx_ashldi3"): Ditto.
11226         * config/i386/i386.c (classify_argument): Handle V1DImode.
11227         (function_arg_advance_32): Ditto.
11228         (function_arg_32): Ditto.
11229         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
11230         mmx_addv1di3 insn pattern.
11231         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
11232         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
11233         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
11234         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
11235         Remove definitions of built-in functions.
11236         (V1DI_type_node): New node.
11237         (v1di_ftype_v1di_int): Ditto.
11238         (v1di_ftype_v1di_v1di): Ditto.
11239         (v2si_ftype_v2si_si): Ditto.
11240         (v4hi_ftype_v4hi_di): Remove node.
11241         (v2si_ftype_v2si_di): Ditto.
11242         (ix86_init_mmx_sse_builtins): Handle V1DImode.
11243         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
11244         Redefine builtins using def_builtin_const with *_ftype_*_int node.
11245         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
11246         Add new builtins using def_builtin_const.
11247         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
11248         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
11249         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
11250         * config/i386/mmintrin.h (__v1di): New typedef.
11251         (_mm_add_si64): Cast arguments to __v1di type.
11252         (_mm_sub_si64): Ditto.
11253         (_mm_sll_pi16): Cast __count to __v4hi type.
11254         (_mm_sll_pi32): Cast __count to __v2si type.
11255         (_mm_sll_si64): Cast arguments to __v1di type.
11256         (_mm_srl_pi16): Cast __count to __v4hi type.
11257         (_mm_srl_pi32): Cast __count to __v2si type.
11258         (_mm_srl_si64): Cast arguments to __v1di type.
11259         (_mm_sra_pi16): Cast __count to __v4hi type.
11260         (_mm_sra_pi32): Cast __count to __v2si type.
11261         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
11262         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
11263         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
11264         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
11265         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
11266         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
11267         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
11268         (_mm_srai_pi32): Use __builtin_ia32_psradi.
11269         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
11270         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
11271         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
11272         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
11273
11274 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
11275
11276         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
11277
11278 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
11279
11280         PR target/35373
11281         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
11282         reg+const addressing for Altivec modes.  Don't generate reg+reg
11283         addressing for TFmode or TDmode quantities.
11284
11285 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
11286
11287         * c-common.c (vector_types_convertible_p): Call langhook
11288         instead of comptypes.
11289
11290 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11291
11292         PR tree-opt/35402
11293         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
11294         integral and scalar float variables which have a
11295         NULL DECL_INITIAL.
11296
11297 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
11298
11299         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
11300         dwarf_register_span hook when emitting unwind information for
11301         register-to-memory saves.
11302         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
11303         (rs6000_frame_related): Remove call to spe_synthesize_frame.
11304
11305 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
11306
11307         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
11308         for the same VAR_DECL.
11309
11310 2008-03-06  Tom Tromey  <tromey@redhat.com>
11311
11312         * treelang: Delete.
11313         * doc/standards.texi (Standards): Don't mention treelang.
11314         * doc/invoke.texi (Overall Options): Don't mention treelang.
11315         * doc/install.texi (Prerequisites): Don't mention bison or
11316         treelang.
11317         (Configuration): Don't mention treelang.
11318         (Building): Likewise.
11319         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
11320
11321 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
11322
11323         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
11324         word-extractions out of a multi-word object.
11325
11326 2008-03-06  Richard Guenther  <rguenther@suse.de>
11327
11328         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
11329         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
11330         result type and precision.
11331         * expr.c (get_inner_reference): Set unsignedp based on the result
11332         type of BIT_FIELD_REF.
11333         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
11334         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
11335         (try_instantiate_multiple_fields): Likewise.  Use the correct type
11336         for BIT_FIELD_REF.
11337         (sra_build_assignment): Likewise.
11338         (sra_build_elt_assignment): Likewise.
11339         (sra_explode_bitfield_assignment): Likewise.
11340         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
11341         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
11342         set BIT_FIELD_REF_UNSIGNED.
11343         (vectorizable_load): Likewise.
11344
11345 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
11346
11347         * cse.c (cse_extended_basic_block): Invalidate artificial defs
11348         at bb start.
11349
11350 2008-03-06  Richard Guenther  <rguenther@suse.de>
11351
11352         * alias.c (struct alias_set_entry): Move has_zero_child field
11353         to pack with alias_set.
11354
11355 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
11356
11357         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11358         32bit host.
11359
11360 2008-03-05  Ian Lance Taylor  <iant@google.com>
11361
11362         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
11363
11364 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
11365
11366         * fwprop.c (update_df): Support width and offset parameters of
11367         df_ref_create.
11368         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
11369         global_conflicts): Change DF_REF_EXTRACT to either
11370         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
11371         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
11372         * df-scan.c (df_ref_record, df_defs_record,
11373         df_ref_create_structure, df_def_record_1, df_uses_record,
11374         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
11375         df_bb_refs_collect, df_entry_block_defs_collect,
11376         df_exit_block_uses_collect): Support new width and offset fields.
11377         (ref_extract_pool): New storage pool.
11378         (df_free_ref): New function.
11379         (df_reg_chain_unlink, df_free_collection_rec,
11380         df_sort_and_compress_refs): Call df_free_ref.
11381         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
11382         of df_ref_extract.
11383         (df_ref_create_structure): Allocate df_ref_extract if offset and
11384         width fields are used.
11385         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
11386         (df_uses_record): Get offset and width from ZERO_EXTRACT 
11387         and SIGN_EXTRACT.
11388         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
11389         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
11390         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
11391         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
11392         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
11393         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
11394         (df_ref_extract): New structure.
11395         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
11396         (df_ref_create): Add width and offset parameters.
11397         
11398 2008-03-05  Richard Guenther  <rguenther@suse.de>
11399
11400         * tree-ssa-structalias.c (get_constraint_for_component_ref):
11401         Use ranges_overlap_p.
11402         (offset_overlaps_with_access): Rename
11403         to ranges_overlap_p and move ...
11404         * tree-flow-inline.h (ranges_overlap_p): ... here.
11405
11406         * tree.h (get_inner_reference, handled_component_p): Update
11407         comments.
11408
11409         * tree.h (record_component_aliases, get_alias_set,
11410         alias_sets_conflict_p, alias_sets_must_conflict_p,
11411         objects_must_conflict_p): Move declarations ...
11412         * alias.h (record_component_aliases, get_alias_set,
11413         alias_sets_conflict_p, alias_sets_must_conflict_p,
11414         objects_must_conflict_p): ... here.
11415         Include coretypes.h.
11416         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
11417
11418 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
11419
11420         * cfg.c: Include tree-flow.h.
11421         (remove_edge_raw): Call redirect_edge_var_map_clear.
11422         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
11423         * tree-flow-inline.h (redirect_edge_var_map_def): New.
11424         (redirect_edge_var_map_result): New.
11425         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
11426         PENDING_STMT use with redirect_edge_var_map_*.
11427         * tree-ssa.c (edge_var_maps): New definition.
11428         (redirect_edge_var_map_add): New.
11429         (redirect_edge_var_map_clear): New.
11430         (redirect_edge_var_map_dup): New.
11431         (redirect_edge_var_map_vector): New.
11432         (redirect_edge_var_map_destroy): New.
11433         (ssa_redirect_edge): Replace PENDING_STMT use with
11434         redirect_edge_var_map_*.
11435         (flush_pending_stmts): Same.
11436         (delete_tree_ssa): Destroy edge var map.
11437         * tree-flow.h (struct _edge_var_map): New.
11438         Define edge_var_map vector type.
11439         Declare redirect_edge_var_map_* prototypes.
11440         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
11441         * tree-cfg.c (reinstall_phi_args): Replace
11442         PENDING_STMT use with redirect_edge_var_map_*.
11443
11444 2008-03-05  Richard Guenther  <rguenther@suse.de>
11445
11446         PR tree-optimization/35472
11447         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
11448         whose single use_stmt has a overlapping set of loaded and
11449         stored symbols as that use_stmt might be a noop assignment then.
11450
11451 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
11452
11453         * gthr-rtems.h: Implement __gthread_mutex_destroy.
11454
11455 2008-03-05  Richard Guenther  <rguenther@suse.de>
11456
11457         PR c++/35336
11458         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
11459         should be constants.
11460         * tree-cfg.c (verify_expr): Verify it.
11461         * fold-const.c (fold_truthop): Remove code generating
11462         BIT_FIELD_REFs of structure bases.
11463         (fold_binary): Likewise.
11464         (fold_ternary): Position and size of BIT_FIELD_REFs are
11465         always host integers.
11466         (make_bit_field_ref): Remove.
11467         (optimize_bit_field_compare): Remove.
11468         (all_ones_mask_p): Remove.
11469
11470 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
11471
11472         PR gcc/33009
11473         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
11474         (split_block_and_df_analyze): New. Split basic block and rebuild
11475         dataflow.
11476         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
11477         SPLIT_BLOCK.
11478         (split_pattern_seq): Likewise.
11479         (erase_matching_seqs): Likewise.
11480         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
11481
11482 2008-03-04  Geoff Keating  <geoffk@apple.com>
11483
11484         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
11485         declaration and code.
11486         (tree_invalid_nonnegative_warnv_p): Likewise.
11487
11488 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
11489
11490         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
11491         examples.  Truncate option-names then causing overfull hbox.
11492
11493 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11494
11495         PR target/35222
11496         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
11497         on hpux10.
11498         * configure: Rebuilt.
11499
11500 2008-03-04  Rafael Espindola  <espindola@google.com>
11501
11502         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
11503         (tree_unary_nonnegative_warnv_p): New.
11504         (tree_binary_nonnegative_warnv_p): New.
11505         (tree_single_nonnegative_warnv_p): New.
11506         (tree_invalid_nonnegative_warnv_p): New.
11507         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
11508
11509 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11510
11511         PR 28322
11512         * opts.c (handle_option): Postpone 'unknown option' errors only for
11513         warning options.
11514
11515 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
11516
11517         PR target/35453
11518         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
11519         (_SIDD_XXX): This.
11520
11521 2008-03-04  Rafael Espindola  <espindola@google.com>
11522
11523         * fold-const.c (tree_unary_nonzero_warnv_p): New.
11524         (tree_binary_nonzero_warnv_p): New.
11525         (tree_single_nonzero_warnv_p): New.
11526         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
11527
11528 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
11529
11530         PR middle-end/35456
11531         * fold-const.c (fold_cond_expr_with_comparison): Prevent
11532         transformations for modes that have signed zeros.
11533         * ifcvt.c (noce_try_abs): Ditto.
11534
11535 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
11536
11537         * config/i386/i386.c (override_options): Force
11538         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
11539
11540 2008-03-04  Jan Hubicka  <jh@suse.cz>
11541
11542         PR c++/35262
11543         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
11544         in last commit.
11545
11546 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
11547
11548         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
11549         label to probe the stack.
11550
11551 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
11552
11553         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
11554         (__gthr_win32_mutex_destroy): Declare.
11555         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
11556         __gthr_win32_mutex_destroy.
11557         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
11558
11559 2008-03-03  Jan Hubicka  <jh@suse.cz>
11560
11561         PR c++/35262
11562         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
11563         aggressive on inlining cold calls.
11564
11565 2008-03-03  Richard Guenther  <rguenther@suse.de>
11566
11567         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
11568         struct copies into the expression table.
11569         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
11570         (try_to_simplify): Likewise.
11571         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
11572         integral and pointer arguments which do not change the
11573         precision to NOP_EXPRs.
11574         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
11575         VIEW_CONVERT_EXPR case.
11576
11577 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
11578
11579         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
11580         defined in a loop at depth 0 is invariant.
11581         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
11582         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
11583         be called at loop depth 0.
11584
11585 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
11586
11587         PR driver/35420
11588         * gcc.c (process_command): Update copyright notice dates.
11589         * gcov.c (print_version): Likewise.
11590         * gcov-dump.c (print_version): Likewise.
11591         * mips-tfile.c (main): Likewise.
11592         * mips-tdump.c (main): Likewise.
11593
11594 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11595
11596         PR 24924
11597         * c-common.c (flag_permissive): Delete.
11598         (constant_expression_warnings): Check flags first.
11599         (constant_expression_error): New.
11600         * c-common.h (flag_permissive): Delete.
11601         (constant_expression_error): Declare.
11602         * flags.h (flag_permissive): Declare. Update description.
11603         * diagnostic.c (pedwarn): Update.
11604         (permerror): New.
11605         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
11606         (permissive_error_kind): New.
11607         * toplev.c (flag_permissive): Define. Update description.
11608         * toplev.h (permissive_error_kind): Declare.
11609         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
11610         (pedwarn_c90): Use pedantic_warning_kind.
11611         * c-opts.c (c_common_post_options): flag_permissive does not affect
11612         flag_pedantic_errors.
11613
11614 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
11615
11616         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
11617         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
11618         __absvsi2, __absvDI2): Use unsigned arithmetic.
11619
11620 2008-03-02  Andi Kleen  <ak@suse.de>
11621             Richard Guenther  <rguenther@suse.de>
11622
11623         * struct-equiv.c: Remove file.
11624         * cfg_cleanup.c (condjump_equiv_p): Remove.
11625         * Makefile.in (OBJS-common): Remove struct-equiv.o.
11626         (struct-equiv.o): Remove rule.
11627         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
11628         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
11629         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
11630
11631 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
11632
11633         * ifcvt.c (noce_process_if_block): Try to handle only the then
11634         block if the else block exists but isn't suitable.
11635
11636 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
11637
11638         PR gcc/35063
11639         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
11640         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
11641         regression from previous patch.
11642
11643 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
11644
11645         PR gcc/35063
11646         * gthr.h: Add __gthread_mutex_destroy as a function that must be
11647         implemented.
11648         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
11649         * gthr-single.h (__gthread_mutex_destroy): Likewise.
11650         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
11651         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
11652         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
11653         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
11654         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
11655         (__gthread_mutex_destroy_function): Rename to
11656         __gthread_mutex_destroy.
11657         * gthr-dce.h (__gthread_mutex_destroy): Call
11658         pthread_mutex_destroy.
11659         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
11660         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
11661         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
11662
11663 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
11664
11665         * df-scan.c (df_ref_chain_change_bb): Simplify.
11666         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
11667         set_block_for_insn if there's any change.
11668         * df.h ((df_insn_change_bb): Fix prototype.
11669         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
11670         df_insn_change_bb, don't call set_block_for_insn.
11671         * emit-rtl.c (reorder_insns): Likewise.
11672         * haifa-sched.c (move_insn): Likewise.
11673
11674 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
11675
11676         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
11677
11678 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
11679
11680         * tree-flow-inline.h (next_readonly_imm_use): Return
11681         NULL_USE_OPERAND_P after the end.
11682
11683 2008-03-01  Richard Guenther  <rguenther@suse.de>
11684
11685         PR tree-optimization/35411
11686         * tree-sra.c (sra_build_assignment): Split conversion to
11687         final type to a separate statement if we are not assigning
11688         to a register.
11689
11690 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
11691
11692         * fold-const.c (fold_convertible_p): Correct the logic to follow
11693         that in fold_convert().
11694
11695 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
11696
11697         PR c++/35315
11698         * tree-inline.c (build_duplicate_type): When we make a
11699         duplicate type, make it unique in the canonical types system.
11700
11701 2008-02-29  Tom Tromey  <tromey@redhat.com>
11702
11703         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
11704         input_file_stack_history, input_file_stack_restored): Remove.
11705         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
11706         * input.h (struct file_stack): Remove.
11707         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
11708         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
11709         Likewise.
11710         * diagnostic.h (struct diagnostic_context) <last_module>: Change
11711         type.
11712         (diagnostic_last_module_changed): Add 'map' argument.
11713         (diagnostic_set_last_function): Likewise.
11714         * diagnostic.c (undiagnostic_report_current_module): Iterate using
11715         line map, not input_file_stack.
11716         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
11717
11718 2008-02-29  Paul Brook  <paul@codesourcery.com>
11719
11720         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
11721
11722 2008-02-29  Paul Brook  <paul@codesourcery.com>
11723
11724         * config/arm/ieee754-df.S (muldf3): Use RET macros.
11725
11726 2008-02-29  Richard Guenther  <rguenther@suse.de>
11727
11728         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
11729         vn_lookup_or_add.
11730         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
11731         value for comparing for a store match.
11732         (simplify_unary_expression): Do nothing for SSA_NAMEs.
11733         (try_to_simplify): Do not do a full-blown reference lookup.
11734
11735 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
11736
11737         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
11738         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
11739
11740         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
11741
11742 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
11743
11744         * tree-loop-linear.c (try_interchange_loops): Compare memory access
11745         strides against cache sizes.
11746
11747 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
11748
11749         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
11750         constant to fpul.
11751
11752 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
11753
11754         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
11755         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
11756         is smaller than the original promoted value.
11757         (simplify_subreg): If OP is a SUBREG, try to preserve its
11758         SUBREG_PROMOTED_VAR_P information.
11759
11760 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
11761
11762         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
11763         (VN_INFO_GET): Allocate new objects on the obstack.
11764         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
11765         for rpo_numbers_temp, for consistency.
11766         (free_scc_vn): Free the obstack.
11767
11768 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
11769
11770         * doc/invoke.texi: Document -ftree-loop-distribution.
11771         * tree-loop-distribution.c: New.
11772         * tree-pass.h (pass_loop_distribution): New.
11773         * graphds.h (struct graph): Add htab_t indices.
11774         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
11775         * tree-vectorizer.c (rename_variables_in_loop): Extern.
11776         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
11777         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
11778         * tree-data-ref.c (debug_data_dependence_relations): New.
11779         (dump_data_dependence_relation): Also print data references.
11780         (free_data_ref): Extern.
11781         (same_access_functions): Moved...
11782         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
11783         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
11784         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
11785         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
11786         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
11787         (stmts_from_loop): Skip LABEL_EXPR.
11788         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
11789         New.
11790         (build_rdg): Initialize rdg->indices htab.
11791         (free_rdg, stores_from_loop, ref_base_address,
11792         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
11793         have_similar_memory_accesses_1, ref_base_address_1,
11794         remove_similar_memory_refs): New.
11795         * tree-data-ref.h: Depend on tree-chrec.h.
11796         (debug_data_dependence_relations, free_data_ref): Declared.
11797         (same_access_functions): ... here.
11798         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
11799         New.
11800         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
11801         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
11802         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
11803         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
11804         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
11805         rdg_vertex_for_stmt): Declared.
11806         (struct rdg_edge): Add level.
11807         (RDGE_LEVEL): New.
11808         (free_rdg, stores_from_loop, remove_similar_memory_refs,
11809         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
11810         Declared.
11811         (rdg_has_similar_memory_accesses): New.
11812         * tree-vect-analyze.c: Remove unused static decls.
11813         * lambda.h (dependence_level): New.
11814         * common.opt (ftree-loop-distribution): New.
11815         * tree-flow.h (mark_virtual_ops_in_bb, 
11816         slpeel_tree_duplicate_loop_to_edge_cfg,
11817         rename_variables_in_loop): Declared.
11818         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
11819         (OBJS-common): Add tree-loop-distribution.o.
11820         (tree-loop-distribution.o): New rule.
11821         * tree-cfg.c (mark_virtual_ops_in_bb): New.
11822         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
11823         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
11824
11825 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
11826
11827         PR target/33963
11828         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
11829         other than structures and unions.
11830
11831 2008-02-28  Richard Guenther  <rguenther@suse.de>
11832
11833         Revert:
11834         2008-02-26  Richard Guenther  <rguenther@suse.de>
11835
11836         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11837         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11838         (lookup_decl_from_uid): Declare.
11839         (remove_decl_from_map): Likewise.
11840         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11841         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11842         (decl_for_uid_map): New global hashtable mapping DECL_UID
11843         to the decl tree.
11844         (init_ttree): Allocate it.
11845         (insert_decl_to_uid_decl_map): New helper function.
11846         (make_node_stat): Insert new decls into the map.
11847         (copy_node_stat): Likewise.
11848         (lookup_decl_from_uid): New function.
11849         (remove_decl_from_map): Likewise.
11850         (print_decl_for_uid_map_statistics): New helper.
11851         (dump_tree_statistics): Call it.
11852
11853         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11854         (referenced_var_iterator): Adjust.
11855         (FOR_EACH_REFERENCED_VAR): Adjust.
11856         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11857         (num_referenced_vars): Adjust.
11858         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11859         (first_referenced_var): Remove.
11860         (end_referenced_vars_p): Likewise.
11861         (next_referenced_var): Likewise.
11862         (referenced_var_iterator_set): New helper function.
11863         * tree-dfa.c (referenced_var_lookup): Adjust.
11864         (referenced_var_check_and_insert): Likewise.
11865         (remove_referenced_var): Likewise.
11866         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11867         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11868         (verify_call_clobbering): Likewise.
11869         (verify_memory_partitions): Likewise.
11870         (init_tree_ssa): Allocate bitmap instead of hashtable for
11871         referenced_vars.
11872         (delete_tree_ssa): Adjust.
11873         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11874         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11875         (compute_tag_properties): Likewise.
11876         (set_initial_properties): Likewise.
11877         (find_partition_for): Likewise.
11878         (update_reference_counts): Likewise.
11879         (dump_may_aliases_for): Likewise.
11880         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11881         (add_call_clobber_ops): Likewise.
11882         (add_call_read_ops): Likewise.
11883         (get_asm_expr_operands): Likewise.
11884         * tree-into-ssa.c (dump_decl_set): Likewise.
11885         (update_ssa): Likewise.
11886         * tree-sra.c (scan_function): Likewise.
11887         (decide_instantiations): Likewise.
11888         (scalarize_parms): Likewise.
11889         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11890         (dsa_named_for): Likewise.
11891         * tree-ssa-structalias.c (update_alias_info): Likewise.
11892         (merge_smts_into): Likewise.
11893
11894 2008-02-27  David Daney  <ddaney@avtrex.com>
11895
11896         PR target/34409
11897         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
11898         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
11899         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
11900         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
11901         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
11902
11903 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
11904
11905         PR target/25477
11906         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
11907         (BUILT_IN_NEXTTOWARD): Remove.
11908         (BUILT_IN_NEXTTOWARDF): Ditto.
11909         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
11910         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
11911
11912 2008-02-27  Tom Tromey  <tromey@redhat.com>
11913
11914         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
11915         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
11916
11917 2008-02-27  Jan Beulich  <jbeulich@novell.com>
11918
11919         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
11920         update the respective field on newdecl.
11921
11922 2008-02-27  Revital Eres  <eres@il.ibm.com>
11923
11924         PR rtl-optimization/34999
11925         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
11926         crossing edges that ends with a call insn.
11927         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
11928         call insn and clear the EDGE_CROSSING flag of the crossing edge
11929         when fixing fallthru edges.
11930
11931 2008-02-27  Richard Guenther  <rguenther@suse.de>
11932
11933         PR middle-end/35390
11934         * fold-const.c (fold_unary): Return the correct argument,
11935         converted to the result type.
11936
11937 2008-02-27  Richard Guenther  <rguenther@suse.de>
11938
11939         PR middle-end/34971
11940         * expr.c (expand_expr_real_1): Assert on rotates that operate
11941         on partial modes.
11942         * fold-const.c (fold_binary): Use the types precision, not the
11943         bitsize of the mode if folding rotate expressions.  Build rotates
11944         only for full modes.
11945
11946 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
11947
11948         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
11949         and CPP_PRAGMA_EOL.
11950         * c-pragma.c (pragma_ns_name): New typedef.
11951         (registered_pp_pragmas): New variable.
11952         (c_pp_lookup_pragma): New function.
11953         (c_register_pragma_1): If flag_preprocess_only, do nothing
11954         for non-expanded pragmas, for expanded ones push pragma's
11955         namespace and name into registered_pp_pragmas vector.
11956         (c_invoke_pragma_handler): Register OpenMP pragmas even when
11957         flag_preprocess_only, don't register GCC pch_preprocess
11958         pragma if flag_preprocess_only.
11959         * c-opts.c (c_common_init): Call init_pragma even if
11960         flag_preprocess_only.
11961         * c-pragma.c (c_pp_lookup_pragma): New prototype.
11962         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
11963         cpp_register_pragma if flag_preprocess_only.
11964
11965 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11966
11967         PR c/28800
11968         * c-parser.c (c_parser_translation_unit): Warn for empty
11969         translation unit, not empty source file.
11970
11971 2008-02-26  Paul Brook  <paul@codesourcery.com>
11972
11973         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
11974         operand for Thumb-2.
11975         * config/arm/arm.h (reg_class): Add CORE_REGS.
11976         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
11977         (BASE_REG_CLASS): Use CORE_REGS.
11978         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
11979         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
11980         (REGNO_OK_FOR_INDEX_P): Exclude SP.
11981         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
11982         ARM_REGNO_OK_FOR_INDEX_P.
11983         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
11984         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
11985         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
11986         (ldm/stm peepholes): Ditto.
11987         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
11988         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
11989         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
11990         * config/arm/constraints.md: Enable "k" constraint on ARM.
11991
11992 2008-02-27  Ben Elliston  <bje@au.ibm.com>
11993
11994         * config/rs6000/rs6000.c: Annotate cache line size field in all
11995         instances of struct processor_costs.
11996
11997 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
11998
11999         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
12000         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
12001         jump_bypass): New counters.
12002         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
12003         * dce.c (gate_ud_dce): Same.
12004         (gate_fast_dce): Same.
12005         * dse.c (gate_dse1): New function.
12006         (gate_dse2): New function.
12007         (gate_dse): Merge results of new gate functions.
12008         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
12009         (gate_handle_jump_bypass): Add dbg_cnt.
12010         (gate_handle_gcse): Add dbg_cnt.
12011         * ifcvt.c (gate_handle_if_conversion): Same.
12012         (gate_handle_if_after_combine): Same.
12013         (gate_handle_if_after_reload): Same.
12014         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
12015
12016 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
12017
12018         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
12019         line sizes.
12020         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
12021
12022 2008-02-26  Jason Merrill  <jason@redhat.com>
12023
12024         PR c++/35315
12025         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
12026         alone if it's the naming decl for the type's main variant.
12027
12028 2008-02-26  Tom Tromey  <tromey@redhat.com>
12029
12030         * system.h (USE_MAPPED_LOCATION): Poison.
12031         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
12032         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
12033         (make_goto_expr_edges): Likewise.
12034         (remove_bb): Likewise.
12035         (execute_warn_function_return): Likewise.
12036         * basic-block.h (struct edge_def) <goto_locus>: Change type to
12037         location_t.
12038         * c-common.c (fname_decl): Remove old location code.
12039         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
12040         location code.
12041         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
12042         variant.
12043         (ASM_INPUT_SOURCE_LOCATION): Likewise.
12044         (gen_rtx_ASM_INPUT): Likewise.
12045         (gen_rtx_ASM_INPUT_loc): Likewise.
12046         (get_rtx_asm_OPERANDS): Remove.
12047         * cfglayout.c (insn_locators_alloc): Remove old location code.
12048         (set_curr_insn_source_location): Likewise.
12049         (curr_insn_locator): Likewise.
12050         * print-tree.c (print_node): Remove old location code.
12051         * tree-mudflap.c (mf_varname_tree): Remove old location code.
12052         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
12053         * cfgexpand.c (expand_gimple_cond_expr): Don't use
12054         location_from_locus.
12055         (construct_exit_block): Remove old location code.
12056         * emit-rtl.c (force_next_line_note): Remove old location code.
12057         * profile.c (branch_prob): Remove old location code.
12058         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
12059         LOC_LINE): Remove old-location variants.
12060         * langhooks.c (lhd_print_error_function): Remove old location
12061         code.
12062         * configure, config.in: Rebuilt.
12063         * configure.ac (--enable-mapped-location): Remove.
12064         * c-decl.c (c_init_decl_processing): Remove old location code.
12065         (finish_function): Likewise.
12066         * recog.c (decode_asm_operands): Remove old location code.
12067         * c-pch.c (c_common_read_pch): Remove old location code.
12068         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
12069         variants.
12070         * gimple-low.c (lower_function_body): Remove old location code.
12071         * toplev.c (unknown_location): Remove.
12072         (push_srcloc): Remove old-location variant.
12073         (process_options): Remove old location code.
12074         (lang_dependent_init): Likewise.
12075         * input.h (UNKNOWN_LOCATION): Move definition.
12076         (location_t): Undeprecate.
12077         (source_locus): Remove.
12078         (location_from_locus): Remove.
12079         (struct location_s): Remove.
12080         Remove all old-location code.
12081         (input_line, input_filename): Remove.
12082         * final.c (final_scan_insn): Remove old location code.
12083         * diagnostic.c (diagnostic_build_prefix): Remove
12084         USE_MAPPED_LOCATION test.
12085         * tree.h (gimple_stmt) <locus>: Now a location_t.
12086         (tree_exp) <locus>: Likewise.
12087         (DECL_IS_BUILTIN): Remove old-location variant.
12088         (annotate_with_file_line, annotate_with_locus): Likewise.
12089         (expr_locus, set_expr_locus): Update.
12090         * tree.c (build1_stat): Remove old location code.
12091         (last_annotated_node): Remove.
12092         (annotate_with_file_line): Remove old-location variant.
12093         (annotate_with_locus): Likewise.
12094         (expr_location): Remove old location code.
12095         (set_expr_location): Likewise.
12096         (expr_has_location): Likewise.
12097         (expr_locus): Likewise.
12098         (set_expr_locus): Likewise.
12099         (expr_filename): Don't use location_from_locus.
12100         (expr_lineno): Likewise.
12101         * rtl-error.c (location_for_asm): Remove old location code.
12102         * c-lex.c (cb_line_change): Remove old location code.
12103         (fe_file_change): Likewise.
12104         (cb_def_pragma): Likewise.
12105         (c_lex_with_flags): Likewise.
12106         * gengtype.c (do_typedef): Don't special-case location types.
12107         (define_location_structures): Remove.
12108         (main): Don't call define_location_structures.
12109         * tree-pretty-print.c (dump_implicit_edges): Remove old location
12110         code.
12111
12112 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12113
12114         PR 26264
12115         * builtins.def (BUILT_IN_STDARG_START): Remove.
12116         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
12117         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
12118         * tree-inline.c (inline_forbidden_p_1): Likewise.
12119         
12120 2008-02-26  Richard Guenther  <rguenther@suse.de>
12121
12122         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
12123         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
12124         (lookup_decl_from_uid): Declare.
12125         (remove_decl_from_map): Likewise.
12126         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
12127         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
12128         (decl_for_uid_map): New global hashtable mapping DECL_UID
12129         to the decl tree.
12130         (init_ttree): Allocate it.
12131         (insert_decl_to_uid_decl_map): New helper function.
12132         (make_node_stat): Insert new decls into the map.
12133         (copy_node_stat): Likewise.
12134         (lookup_decl_from_uid): New function.
12135         (remove_decl_from_map): Likewise.
12136         (print_decl_for_uid_map_statistics): New helper.
12137         (dump_tree_statistics): Call it.
12138
12139         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
12140         (referenced_var_iterator): Adjust.
12141         (FOR_EACH_REFERENCED_VAR): Adjust.
12142         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
12143         (num_referenced_vars): Adjust.
12144         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
12145         (first_referenced_var): Remove.
12146         (end_referenced_vars_p): Likewise.
12147         (next_referenced_var): Likewise.
12148         (referenced_var_iterator_set): New helper function.
12149         * tree-dfa.c (referenced_var_lookup): Adjust.
12150         (referenced_var_check_and_insert): Likewise.
12151         (remove_referenced_var): Likewise.
12152         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
12153         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
12154         (verify_call_clobbering): Likewise.
12155         (verify_memory_partitions): Likewise.
12156         (init_tree_ssa): Allocate bitmap instead of hashtable for
12157         referenced_vars.
12158         (delete_tree_ssa): Adjust.
12159         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
12160         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
12161         (compute_tag_properties): Likewise.
12162         (set_initial_properties): Likewise.
12163         (find_partition_for): Likewise.
12164         (update_reference_counts): Likewise.
12165         (dump_may_aliases_for): Likewise.
12166         * tree-ssa-operands.c (add_virtual_operand): Likewise.
12167         (add_call_clobber_ops): Likewise.
12168         (add_call_read_ops): Likewise.
12169         (get_asm_expr_operands): Likewise.
12170         * tree-into-ssa.c (dump_decl_set): Likewise.
12171         (update_ssa): Likewise.
12172         * tree-sra.c (scan_function): Likewise.
12173         (decide_instantiations): Likewise.
12174         (scalarize_parms): Likewise.
12175         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
12176         (dsa_named_for): Likewise.
12177         * tree-ssa-structalias.c (update_alias_info): Likewise.
12178         (merge_smts_into): Likewise.
12179
12180 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12181
12182         PR 34351
12183         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
12184         * c-opts.c (c_common_handle_option): Wall enables
12185         Wvolatile-register-var.
12186         * common.opt: Move Wvolatile-register-var to...
12187         * c.opt: ...here.
12188         
12189 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12190
12191         * common.opt (Wlarger-than=): New.
12192         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
12193         -Wlarger-than=.
12194         * opts.c (common_handle_option): Handle -Wlarger-than=.
12195         * optc-gen.awk: Likewise.
12196         * opth-gen.awk: Likewise.
12197         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
12198         * tree-optimize.c (tree_rest_of_compilation): Likewise.
12199         
12200 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12201
12202         * c-common.c (match_case_to_enum_1): Add appropriate
12203         OPT_W* parameter to warning.
12204         (c_do_switch_warnings): Likewise.
12205         * c-typeck.c (warning_init): Add one more parameter following
12206         'warning' function.
12207         (push_init_level): Update call to warning_init.
12208         (pop_init_level): Likewise.
12209         (add_pending_init): Likewise.
12210         (output_init_element: Likewise.
12211
12212 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12213
12214         PR 28322
12215         * toplev.c (toplev_main): If there are warnings or error, print
12216         errors for ignored options.
12217         * opts.c (ignored_options): New static variable.
12218         (postpone_unknown_option_error): New.
12219         (print_ignored_options): New.
12220         (handle_option): Postpone errors for unknown -Wno-* options.
12221         * opts.h (print_ignored_options): Declare.
12222         
12223 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
12224
12225         * config/mips/mips.md (loadgp_blockage, blockage): Change type
12226         to "ghost".
12227
12228 2008-02-25  Richard Guenther  <rguenther@suse.de>
12229
12230         Revert:
12231         2008-02-25  Richard Guenther  <rguenther@suse.de>
12232
12233         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
12234         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
12235         (lookup_decl_from_uid): Declare.
12236         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
12237         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
12238         (decl_for_uid_map): New global hashtable mapping DECL_UID
12239         to the decl tree.
12240         (init_ttree): Allocate it.
12241         (insert_decl_to_uid_decl_map): New helper function.
12242         (make_node_stat): Insert new decls into the map.
12243         (copy_node_stat): Likewise.
12244         (lookup_decl_from_uid): New function.
12245         (print_decl_for_uid_map_statistics): New helper.
12246         (dump_tree_statistics): Call it.
12247
12248         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
12249         (referenced_var_iterator): Adjust.
12250         (FOR_EACH_REFERENCED_VAR): Adjust.
12251         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
12252         (num_referenced_vars): Adjust.
12253         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
12254         (first_referenced_var): Remove.
12255         (end_referenced_vars_p): Likewise.
12256         (next_referenced_var): Likewise.
12257         (referenced_var_iterator_set): New helper function.
12258         * tree-dfa.c (referenced_var_lookup): Adjust.
12259         (referenced_var_check_and_insert): Likewise.
12260         (remove_referenced_var): Likewise.
12261         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
12262         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
12263         (verify_call_clobbering): Likewise.
12264         (verify_memory_partitions): Likewise.
12265         (init_tree_ssa): Allocate bitmap instead of hashtable for
12266         referenced_vars.
12267         (delete_tree_ssa): Adjust.
12268         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
12269         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
12270         (compute_tag_properties): Likewise.
12271         (set_initial_properties): Likewise.
12272         (find_partition_for): Likewise.
12273         (update_reference_counts): Likewise.
12274         (dump_may_aliases_for): Likewise.
12275         * tree-ssa-operands.c (add_virtual_operand): Likewise.
12276         (add_call_clobber_ops): Likewise.
12277         (add_call_read_ops): Likewise.
12278         (get_asm_expr_operands): Likewise.
12279         * tree-into-ssa.c (dump_decl_set): Likewise.
12280         (update_ssa): Likewise.
12281         * tree-sra.c (scan_function): Likewise.
12282         (decide_instantiations): Likewise.
12283         (scalarize_parms): Likewise.
12284         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
12285         (dsa_named_for): Likewise.
12286         * tree-ssa-structalias.c (update_alias_info): Likewise.
12287         (merge_smts_into): Likewise.
12288
12289 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
12290
12291         PR fortran/29549
12292         * doc/invoke.texi (-fcx-limited-range): Document new option.
12293         * toplev.c (process_options): Handle -fcx-fortran-rules.
12294         * common.opt: Add documentation for -fcx-fortran-rules.
12295
12296 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
12297
12298         PR c/35162
12299         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
12300         actual behaviour and C99.
12301         
12302 2008-02-26  Ben Elliston  <bje@au.ibm.com>
12303
12304         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
12305         (ASM_CPU_POWER6_SPEC): Likewise.
12306         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
12307         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
12308         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
12309
12310 2008-02-25  Richard Guenther  <rguenther@suse.de>
12311
12312         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
12313         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
12314         (lookup_decl_from_uid): Declare.
12315         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
12316         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
12317         (decl_for_uid_map): New global hashtable mapping DECL_UID
12318         to the decl tree.
12319         (init_ttree): Allocate it.
12320         (insert_decl_to_uid_decl_map): New helper function.
12321         (make_node_stat): Insert new decls into the map.
12322         (copy_node_stat): Likewise.
12323         (lookup_decl_from_uid): New function.
12324         (print_decl_for_uid_map_statistics): New helper.
12325         (dump_tree_statistics): Call it.
12326
12327         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
12328         (referenced_var_iterator): Adjust.
12329         (FOR_EACH_REFERENCED_VAR): Adjust.
12330         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
12331         (num_referenced_vars): Adjust.
12332         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
12333         (first_referenced_var): Remove.
12334         (end_referenced_vars_p): Likewise.
12335         (next_referenced_var): Likewise.
12336         (referenced_var_iterator_set): New helper function.
12337         * tree-dfa.c (referenced_var_lookup): Adjust.
12338         (referenced_var_check_and_insert): Likewise.
12339         (remove_referenced_var): Likewise.
12340         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
12341         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
12342         (verify_call_clobbering): Likewise.
12343         (verify_memory_partitions): Likewise.
12344         (init_tree_ssa): Allocate bitmap instead of hashtable for
12345         referenced_vars.
12346         (delete_tree_ssa): Adjust.
12347         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
12348         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
12349         (compute_tag_properties): Likewise.
12350         (set_initial_properties): Likewise.
12351         (find_partition_for): Likewise.
12352         (update_reference_counts): Likewise.
12353         (dump_may_aliases_for): Likewise.
12354         * tree-ssa-operands.c (add_virtual_operand): Likewise.
12355         (add_call_clobber_ops): Likewise.
12356         (add_call_read_ops): Likewise.
12357         (get_asm_expr_operands): Likewise.
12358         * tree-into-ssa.c (dump_decl_set): Likewise.
12359         (update_ssa): Likewise.
12360         * tree-sra.c (scan_function): Likewise.
12361         (decide_instantiations): Likewise.
12362         (scalarize_parms): Likewise.
12363         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
12364         (dsa_named_for): Likewise.
12365         * tree-ssa-structalias.c (update_alias_info): Likewise.
12366         (merge_smts_into): Likewise.
12367
12368 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
12369
12370         PR target/35258
12371         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
12372         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
12373         * alias.h (nonoverlapping_memrefs_p): Likewise.
12374
12375 2008-02-25  Jan Beulich  <jbeulich@novell.com>
12376
12377         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
12378         * config/i386/netware-libgcc.exp: Add __bswap?i2,
12379         __emultls_get_address, __emultls_register_common,
12380         __floatundi?f, and _Unwind_GetIPInfo.
12381         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
12382         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
12383         (gen_regparm_prefix): Likewise.
12384         (i386_nlm_encode_section_info): Sync with
12385         config/i386/winnt.c:i386_pe_encode_section_info().
12386         (i386_nlm_maybe_mangle_decl_assembler_name): New.
12387         i386_nlm_mangle_decl_assembler_name): New.
12388         (netware_override_options): New.
12389         * config/i386/netware.h (netware_override_options): Declare.
12390         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
12391         (i386_nlm_mangle_decl_assembler_name): Declare.
12392         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
12393
12394 2008-02-25  Ben Elliston  <bje@au.ibm.com>
12395
12396         PR other/32948
12397         * c-decl.c (grokdeclarator): Remove unused local variables
12398         `typedef_type' and `type_as_written'.
12399         * bb-reorder.c
12400         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
12401         unused local variable `has_hot_blocks'.
12402         (fix_crossing_conditional_branches): Remove unused local variable
12403         `prev_bb'.
12404         
12405 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
12406
12407         PR middle-end/19984
12408         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
12409         using DEF_C99_BUILTIN.
12410         (BUILT_IN_NANF): Ditto.
12411         (BUILT_IN_NANL): Ditto.
12412
12413 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
12414             Revital Eres  <eres@il.ibm.com>
12415
12416         * modulo-sched.c (calculate_must_precede_follow): Address TODO
12417         regarding the order of two dependent insns in the same row.
12418
12419 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
12420
12421         * stor-layout.c (layout_decl): Do not bump the alignment of a
12422         bit-field to more than byte alignment if it is packed.
12423
12424 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
12425
12426         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
12427         e300c2 and e300c3.
12428
12429 2008-02-24  Diego Novillo  <dnovillo@google.com>
12430
12431         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
12432
12433         PR 33738
12434         * tree-vrp.c (vrp_evaluate_conditional): With
12435         -Wtype-limits, emit a warning when comparing against a
12436         constant outside the natural range of OP0's type.
12437         * c.opt (Wtype-limits): Move ...
12438         * common.opt (Wtype-limits): ... here.
12439
12440 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
12441
12442         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
12443         * config/rs6000/e300c2c3.md: New file.
12444         * config/rs6000/rs6000.c (processor_costs): Add new costs for
12445         e300c2 and e300c3.
12446         (rs6000_override_options): Add e300c2 and e300c3 cases to
12447         processor_target_table. Do not allow usage of Altivec or Spe
12448         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
12449         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
12450         * config/rs6000/rs6000.h (processor_type): Add
12451         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
12452         (ASM_CPU_SPEC): Add e300c2 and e300c3.
12453         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
12454         and ppce300c3. Include e300c2c3.md.
12455
12456 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
12457
12458         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
12459         instead of TARGET_STRICT_ALIGN.
12460
12461 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
12462
12463         * explow.c (memory_address): Assert that the generated address is
12464         valid.
12465
12466 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
12467
12468         PR target/25477
12469         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
12470         * config/darwin-ppc-ldouble-patch.def: New file.
12471         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
12472         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
12473         SUBTARGET_INIT_BUILTINS if defined.
12474         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
12475         New functions.
12476
12477 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12478
12479         PR rtl-opt/33512
12480         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
12481         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
12482
12483 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12484
12485         PR pch/35027
12486         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
12487         file" warning condtional on -Winvalid-PCH.
12488
12489 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
12490
12491         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
12492
12493 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
12494
12495         PR target/22076
12496         PR target/34256 
12497         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
12498         prevent reload from using MMX registers.
12499         (*mov<mode>_internal): Ditto.
12500         (*movv2sf_internal_rex64): Ditto.
12501         (*movv2sf_internal): Ditto.
12502
12503 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12504
12505         PR documentation/31569
12506         * doc/install.texi2html: Use makeinfo --no-number-sections.
12507
12508 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
12509
12510         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
12511         ensure that we can address an entire entity > 8 bytes.  Don't
12512         generate reg+reg addressing for such data.
12513
12514 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
12515
12516         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
12517         strings when optimizing for size, unless the target cares about
12518         alignment.
12519
12520 2008-02-22  Tom Tromey  <tromey@redhat.com>
12521
12522         * regclass.c (current_pass): Remove declaration.
12523
12524 2008-02-22  Anatoly Sokolov <aesok@post.ru>
12525
12526         * config/avr/libgcc.S (__RAMPZ__): Define.
12527         (__do_copy_data): Add for devices with 128KB code memory.
12528
12529 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
12530
12531         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
12532         Use spe_abi.
12533         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
12534
12535 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
12536
12537         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
12538         GENNONACR_REGS.
12539
12540 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12541
12542         PR c/19999
12543         * c-typeck.c (build_binary_op): Warn about floating point
12544         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
12545
12546 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
12547
12548         PR target/34526
12549         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
12550         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
12551         add vrsave.
12552         (rs6000_override_options): Set altivec_abi as default, not override,
12553         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
12554         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
12555         is used; use new member spe_abi.
12556         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
12557         spe_abi and altivec_abi.
12558
12559 2008-02-22  Tomas Bily  <tbily@suse.cz>
12560
12561         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
12562
12563 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12564
12565         PR bootstrap/35273
12566         * config.build (build_file_translate): Set to `CMD //c' only if
12567         it works.
12568         * Makefile.in (build_file_translate): Improve comment.
12569
12570 2008-02-21  Jan Hubicka  <jh@suse.cz>
12571
12572         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
12573         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
12574         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
12575
12576 2008-02-21  Michael Matz  <matz@suse.de>
12577
12578         PR target/35264
12579         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
12580
12581 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
12582
12583         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
12584         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
12585         as insn constraint.
12586         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
12587         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
12588         SSE_VEC_FLOAT_MODE_P as insn constraint.
12589         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
12590         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
12591         sse4a_movntdf using MODEF mode iterator.
12592         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
12593         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
12594         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
12595         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
12596         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
12597         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
12598         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
12599
12600 2008-02-21  Richard Guenther  <rguenther@suse.de>
12601
12602         * tree.def (PAREN_EXPR): New tree code.
12603         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
12604         and PAREN_EXPR.
12605         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
12606         * expr.c (expand_expr_real_1): Likewise.
12607         * tree-inline.c (estimate_num_insns_1): Likewise.
12608         * tree-complex.c (expand_complex_move): Likewise.
12609         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
12610         as plain x.
12611
12612 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12613
12614         PR target/35225
12615         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
12616
12617 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12618
12619         PR target/35190
12620         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
12621
12622         * config/sh/sh.c (find_barrier): Don't go past
12623         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
12624
12625 2008-02-20  DJ Delorie  <dj@redhat.com>
12626
12627         * config/h8300/h8300.md (insv): Force source operand to be a register.
12628
12629         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
12630         as a jump, not as a plain insn.
12631         
12632 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
12633
12634         * doc/invoke.texi (Warning Options): Add new option
12635         -Wframe-larger-than=.
12636         (-Wframe-larger-than): Document.
12637
12638         * flags.h (warn_frame_larger_than, frame_larger_than_size):
12639         Add declarations for new option variables.
12640
12641         * final.c (final_start_function): Check the frame size
12642         before emission and issue a Wframe-larger-than warning.
12643
12644         * opts.c (warn_frame_larger_than, frame_larger_than_size):
12645         Add definitions for new option variables.
12646         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
12647
12648         * common.opt (Wframe-larger-than=): New option.
12649
12650 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
12651
12652         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
12653         (<sse>_div<mode>3): Ditto.
12654         (<sse>_vmdiv<mode>3): Ditto.
12655         (<sse>_vmsqrt<mode>2): Ditto.
12656         (*smax<mode>3): Ditto.
12657         (sse5_frcz<mode>2): Ditto.
12658         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
12659         as insn constraint.
12660
12661 2008-02-20  Richard Guenther  <rguenther@suse.de>
12662
12663         PR middle-end/35265
12664         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
12665         be happy with INTEGRAL_TYPE_P.
12666
12667 2008-02-20  Richard Guenther  <rguenther@suse.de>
12668
12669         * fold-const.c (split_tree): Associate floatig-point expressions
12670         if flag_associative_math is set.
12671
12672 2008-02-20  Richard Guenther  <rguenther@suse.de>
12673
12674         * tree.h (fold_real_zero_addition_p): Declare.
12675         * fold-const.c (fold_real_zero_addition_p): Export.
12676         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
12677         floating-point operations with zero and one.
12678
12679 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
12680
12681         * doc/install.texi: Correct references to CFLAGS, replacing them
12682         with BOOT_CFLAGS.  Document flags used during bootstrap for
12683         target libraries.
12684                                 
12685 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
12686
12687         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
12688         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
12689         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
12690         insn constraint.
12691         (smin<mode>3): Ditto from similar patterns.
12692         (smax<mode>3): Ditto.
12693         (*ieee_smin<mode>3): Ditto.
12694         (*ieee_smax<mode>3): Ditto.
12695         * config/i386/sse.md (sse): New mode attribute.
12696         (mov<mode>): Macroize expander from movv4sf and movv2df using
12697         SSEMODEF2P mode iterator.
12698         (<sse>_movnt<mode>): Ditto from similar patterns. Use
12699         SSE_VEC_FLOAT_MODE_P as insn constraint.
12700         (storent<mode>): Ditto.
12701         (storent<mode>): Macroize expander from storentsf and storentdf using
12702         MODEF mode iterator.
12703         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
12704         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
12705         (abs<mode>2): Ditto from similar patterns.
12706         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
12707         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
12708         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
12709         (<sse>_vmsqrt<mode>2): Ditto.
12710         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
12711         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
12712         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
12713         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
12714         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
12715         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
12716         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
12717         insn constraint.
12718         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
12719         iterator and SSE_FLOAT_MODE_P as insn constraint.
12720         (<sse>_ucomi): Ditto from similar patterns.
12721         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
12722         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
12723         SSE_VEC_FLOAT_MODE_P as insn constraint.
12724         (vcond<mode>): Ditto from similar patterns.
12725         (and<mode>3, *and<mode>3): Ditto.
12726         (<sse>_nand<mode>3): Ditto.
12727         (ior<mode>3, *ior<mode>3): Ditto.
12728         (xor<mode>3, *xor<mode>3): Ditto.
12729         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
12730         iterator and SSE_FLOAT_MODE_P as insn constraint.
12731         (*nand<mode>3): Ditto from similar patterns.
12732         (*ior<mode>3): Ditto.
12733         (*xor<mode>3): Ditto.
12734
12735 2008-02-20  Ira Rosen  <irar@il.ibm.com>
12736
12737         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
12738         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
12739         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
12740
12741 2008-02-19  Jan Hubicka  <jh@suse.cz>
12742
12743         * predict.c (tree_bb_level_predictions): Remove variable next
12744         mistakely introduced by previous commit.
12745
12746 2008-02-19  Jan Hubicka  <jh@suse.cz>
12747
12748         * predict.c (predict_paths_leading_to): Rewrite.
12749         (predict_paths_for_bb): New.
12750         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
12751
12752 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12753
12754         PR bootstrap/35218
12755         * Makefile.in (build_file_translate): New.
12756         (gcc-vers.texi): Use it for translating $(abs_srcdir).
12757         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
12758         * configure.ac (build_file_translate): Substitute it.
12759         * configure: Regenerate.
12760
12761 2008-02-19  Jan Hubicka  <jh@suse.cz>
12762
12763         PR rtl-optimization/34408
12764         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
12765         invalid sharing.
12766
12767 2008-02-19  Jan Hubicka  <jh@suse.cz>
12768
12769         PR middle-end/28779
12770         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
12771         call_expr.
12772
12773 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
12774
12775         PR Ada/35186
12776         * config/i386/i386-modes.def: Revert the last DI alignment
12777         change until Ada people can look into it.
12778
12779 2008-02-19  Nick Clifton  <nickc@redhat.com>
12780
12781         * opts.c (print_specific_help): Fix typo in --help text.
12782
12783 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
12784
12785         PR target/35239
12786         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
12787         32-bit inline asm without asm alternatives for host GCC < 3.0.
12788
12789 2008-02-19  Richard Guenther  <rguenther@suse.de>
12790
12791         PR tree-optimization/34989
12792         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
12793         Allow propagation to INDIRECT_REF if we can simplify only.
12794
12795 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12796
12797         * c-common.c (warn_for_collisions_1): Use appropriate option when
12798         warning.
12799
12800 2008-02-19  Nick Clifton  <nickc@redhat.com>
12801
12802         PR other/31349
12803         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
12804         (handle_options): Fix indentation.
12805         (print_filtered_help): If no language-specific options were
12806         displayed tell the user how to list all the options supported by
12807         the language's front-end.
12808         (print_specific_help): Fix indentation and remove duplicate line.
12809         (common_handle_option): Handle the -v option.
12810         For --help enable the display of undocumented options if the -v
12811         switch has been included on the command line.
12812         For --help= check for overlaps in the arguments between the option
12813         classes and the language names and issue a warning when they
12814         cannot be disambiguated.
12815         * c.opt (v): Pass on to the common option handler.
12816
12817 2008-02-19  Revital Eres  <eres@il.ibm.com> 
12818
12819         * modulo-sched.c (sms_schedule): Change dump message when
12820         create_ddg function fails.
12821         (try_scheduling_node_in_cycle): Rename row to cycle.
12822         (print_partial_schedule): Rename CYCLE to ROW.
12823
12824 2008-02-19  Christian Bruel  <christian.bruel@st.com>
12825             Zdenek Dvorak  <ook@ucw.cz>
12826
12827         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
12828
12829 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
12830
12831         PR target/33555
12832         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
12833         (*x86_movdicc_0_m1_se): Ditto.
12834
12835 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
12836
12837         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
12838         (CMPtype): Define as __gcc_CMPtype.
12839         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
12840         (CMPtype): Define as __gcc_CMPtype.
12841
12842 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
12843
12844         Support valgrind 3.3 for --enable-checking=valgrind.
12845         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
12846         here.
12847         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
12848         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
12849         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
12850         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
12851         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
12852         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
12853         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
12854         respectively.
12855         * ggc-zone.c: Similar.
12856         * ggc-page.c: Similar.
12857
12858 2008-02-19  Paul Brook  <paul@codesourcery.com>
12859
12860         PR target/35071
12861         * config/arm/ieee754-df.S: Fix do_it typo.
12862         * config/arm/ieee754-sf.S: Fix do_it typo.
12863
12864 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
12865
12866         PR target/35189
12867         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
12868         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
12869         (OPTION_MASK_ISA_SSE_SET): Likewise.
12870         (OPTION_MASK_ISA_SSE2_SET): Likewise.
12871         (OPTION_MASK_ISA_SSE3_SET): Likewise.
12872         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
12873         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
12874         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
12875         (OPTION_MASK_ISA_SSE4_SET): Likewise.
12876         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
12877         (OPTION_MASK_ISA_SSE5_SET): Likewise.
12878         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
12879         (OPTION_MASK_ISA_MMX_UNSET): Updated.
12880         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
12881         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
12882         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
12883         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
12884         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
12885         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
12886         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
12887         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
12888         (OPTION_MASK_ISA_SSE4): Removed.
12889         (ix86_handle_option): Turn on bits in ix86_isa_flags and
12890         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
12891         (override_options): Don't turn on implied SSE/MMX bits in
12892         ix86_isa_flags.
12893
12894 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
12895
12896         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
12897         32bit host.
12898
12899 2008-02-18  Joey Ye  <joey.ye@intel.com>
12900
12901         PR middle-end/34921
12902         * tree-nested.c (insert_field_into_struct): Set type alignment
12903         to field alignment if the former is less than the latter.
12904
12905 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
12906
12907         * BASE-VER: Set to 4.4.0.
12908
12909 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12910
12911         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
12912         * doc/cfg.texi: Likewise.
12913         * doc/extend.texi: Likewise.
12914         * doc/gty.texi: Likewise.
12915         * doc/invoke.texi: Likewise.
12916         * doc/loop.texi: Likewise.
12917         * doc/md.texi: Likewise.
12918         * doc/passes.texi: Likewise.
12919         * doc/rtl.texi: Likewise.
12920         * doc/sourcebuild.texi: Likewise.
12921         * doc/tm.texi: Likewise.
12922         * doc/tree-ssa.texi: Likewise.
12923
12924 2008-02-17  Richard Guenther  <rguenther@suse.de>
12925
12926         PR middle-end/35227
12927         * tree-complex.c (init_parameter_lattice_values): Handle parameters
12928         without default definition.
12929
12930 2008-02-17  Richard Guenther  <rguenther@suse.de>
12931
12932         PR tree-optimization/35231
12933         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
12934         if A | B != 1.
12935
12936 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
12937
12938         Revert:
12939         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
12940         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
12941         libgcc_cmp_return mode.
12942
12943 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12944
12945         PR c/28368
12946         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
12947
12948 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
12949
12950         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
12951         multilibs.
12952
12953 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12954
12955         * doc/c-tree.texi: Use `@.' where appropriate.
12956         * doc/extend.texi: Likewise.
12957         * doc/install.texi: Likewise.
12958         * doc/invoke.texi: Likewise.
12959         * doc/loop.texi: Likewise.
12960         * doc/makefile.texi: Likewise.
12961         * doc/md.texi: Likewise.
12962         * doc/passes.texi: Likewise.
12963         * doc/standards.texi: Likewise.
12964         * doc/tm.texi: Likewise.
12965
12966 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
12967
12968         PR middle-end/35196
12969         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
12970         in entry_bb.
12971         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
12972         rather than in entry_bb.
12973
12974 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
12975
12976         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
12977         libgcc_cmp_return mode.
12978
12979 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
12980
12981         PR middle-end/35130
12982         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
12983         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
12984
12985 2008-02-15  Richard Guenther  <rguenther@suse.de>
12986             Zdenek Dvorak  <ook@ucw.cz>
12987
12988         PR tree-optimization/35164
12989         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
12990         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
12991         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
12992         Only propagate addresses which do not have abnormal SSA_NAMEs
12993         in their operands.
12994
12995 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
12996
12997         PR target/35088
12998         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
12999
13000 2008-02-15  Jan Hubicka  <jh@suse.cz>
13001
13002         PR middle-end/35149
13003         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
13004
13005 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
13006
13007         PR middle-end/34621
13008         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
13009         when calculating alignment_pad.
13010
13011 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
13012
13013         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
13014         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
13015         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
13016         and STACK_BOUNDARY define.
13017
13018 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
13019
13020         PR preprocessor/35061
13021         * c-pragma.c (handle_pragma_pop_macro): Check that
13022         pushed_macro_table has been allocated.
13023
13024 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
13025
13026         PR middle-end/35136
13027         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
13028         (force_gimple_operand): Likewise.
13029         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
13030         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
13031         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
13032         (find_interesting_uses_address): Check addressability and alignment
13033         of the base expression only after substituting bases of IVs into it.
13034
13035 2008-02-14  Michael Matz  <matz@suse.de>
13036
13037         PR target/34930
13038         * function.c (instantiate_virtual_regs_in_insn): Reload address
13039         before falling back to reloading the whole operand.
13040
13041 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
13042
13043         * config/s390/s390.c (s390_mainpool_start): Emit the pool
13044         before the first section switch note.
13045
13046 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13047
13048         * doc/bugreport.texi: Update copyright years.
13049         * doc/c-tree.texi: Likewise.
13050         * doc/cfg.texi: Likewise.
13051         * doc/cpp.texi: Likewise.
13052         * doc/cppinternals.texi: Likewise.
13053         * doc/fragments.texi: Likewise.
13054         * doc/frontends.texi: Likewise.
13055         * doc/gcc.texi: Likewise.
13056         * doc/gty.texi: Likewise.
13057         * doc/hostconfig.texi: Likewise.
13058         * doc/implement-c.texi: Likewise.
13059         * doc/libgcc.texi: Likewise.
13060         * doc/loop.texi: Likewise.
13061         * doc/makefile.texi: Likewise.
13062         * doc/options.texi: Likewise.
13063         * doc/passes.texi: Likewise.
13064         * doc/rtl.texi: Likewise.
13065         * doc/sourcebuild.texi: Likewise.
13066         * doc/standards.texi: Likewise.
13067         * doc/tree-ssa.texi: Likewise.
13068         * doc/trouble.texi: Likewise.
13069
13070         * doc/extend.texi: Use @: or add comma where appropriate.
13071         * doc/invoke.texi: Likewise.
13072         * doc/tm.texi: Likewise.
13073
13074 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
13075
13076         PR target/34393
13077         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
13078         to a reg.
13079
13080 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
13081
13082         * doc/md.texi (clz, ctz): Add reference.
13083         * doc/rtl.texi (clz, ctz): Likewise.
13084
13085 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13086
13087         PR other/35148
13088         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
13089         srcdir.
13090
13091 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
13092
13093         * config/s390/s390.c (struct constant_pool): New field
13094         emit_pool_after added.
13095         (s390_mainpool_start): Set the emit_pool_after flag according
13096         to the section switch notes.
13097         (s390_mainpool_finish): Consider emit_pool_after when emitting
13098         the literal pool at the end of the function.
13099         (s390_chunkify_start): Force literal pool splits at section
13100         switch notes.
13101
13102 2008-02-13  Michael Matz  <matz@suse.de>
13103
13104         PR debug/35065
13105         * var-tracking.c (clobber_variable_part): Correctly traverse the
13106         list.
13107
13108 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13109
13110         PR 29673
13111         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
13112         Add -fdump-ipa-inline.
13113         * tree-dump.c (dump_files): Remove tree-inlined dump.
13114         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
13115         
13116 2008-02-12  Richard Guenther  <rguenther@suse.de>
13117
13118         PR tree-optimization/35171
13119         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
13120         default defs.
13121
13122 2008-02-12  Richard Guenther  <rguenther@suse.de>
13123
13124         PR middle-end/35163
13125         * fold-const.c (fold_widened_comparison): Use get_unwidened in
13126         value-preserving mode.  Disallow final truncation.
13127
13128 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
13129
13130         PR middle-end/35136
13131         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
13132         code from here to...
13133         (force_gimple_operand): ...here.
13134
13135 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
13136
13137         PR c++/35144
13138         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
13139         non-compatible pointers.
13140         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
13141         different FIELD_DECLs, try harder by comparing field offsets, sizes
13142         and types.
13143
13144         PR inline-asm/35160
13145         * function.c (match_asm_constraints_1): Don't replace the same input
13146         multiple times.
13147
13148 2008-02-12  Anatoly Sokolov <aesok@post.ru>
13149
13150         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
13151         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
13152         (expand_epilogue): Restore RAMPZ register.
13153         * config/avr/avr.md (RAMPZ_ADDR): New constant.
13154
13155 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
13156
13157         * config/i386/cygwin.asm: (__alloca): Correct calling
13158         convention and alignment.
13159         (__chkstk): Force 8 byte stack alignment.
13160
13161 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
13162             Richard Guenther  <rguenther@suse.de>
13163
13164         PR tree-optimization/33992
13165         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
13166         the zero we compare against.
13167
13168 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13169
13170         PR libfortran/35063
13171         * gthr-win32.h (__gthread_mutex_destroy_function): New function
13172         to CloseHandle after unlocking to prevent accumulation of handle
13173         count.
13174
13175 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13176
13177         PR middle_end/34150
13178         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
13179         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
13180         and update LABEL_NUSES during and after reload.
13181
13182 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
13183
13184         PR middle-end/34627
13185         * combine.c (simplify_if_then_else): Make sure the comparison is
13186         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
13187
13188 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
13189
13190         PR bootstrap/35051
13191         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
13192         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
13193         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
13194         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
13195         * tree.h (get_type_static_bounds): Likewise.
13196
13197 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13198
13199         * doc/invoke.texi (Option Summary, C++ Dialect Options)
13200         (Objective-C and Objective-C++ Dialect Options, Warning Options):
13201         Make -Wfoo language annotations match what the compiler outputs.
13202
13203 2008-02-08  Sa Liu  <saliu@de.ibm.com>
13204
13205         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
13206         intrinsics spu_convts, spu_convtu, spu_convtf.
13207
13208 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
13209
13210         * doc/extend.texi (Function Attributes) <noinline>: Mention
13211         asm ("") as method to keep calls.
13212
13213 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13214
13215         PR other/32754
13216         * doc/options.texi (Options): Replace references to opts.sh with
13217         optc-gen.awk.
13218         * opts-common.c: Likewise.
13219         * optc-gen.awk: Likewise.
13220         
13221 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
13222
13223         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
13224
13225 2008-02-07  Richard Henderson  <rth@redhat.com>
13226
13227         PR rtl-opt/33410
13228         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
13229         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
13230         funny mode.
13231
13232 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
13233
13234         PR tree-optimization/35085
13235         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
13236         for operand entry oe2 in addition to operand entry oe3 in order to
13237         expose more opportunities for vectorizer sum reduction.
13238
13239 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13240
13241         PR other/35107
13242         * Makefile.in (LIBS): Remove $(GMPLIBS).
13243         (cc1-dummy, cc1): Add $(GMPLIBS).
13244
13245 2008-02-06  Jan Hubicka  <jh@suse.cz>
13246
13247         PR target/23322
13248         * i386.md (moddf_integer): Do not produce partial memory stalls for
13249         targets where it hurts.
13250
13251 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
13252
13253         PR target/35083
13254         * optabs.c (expand_float): Do not check for decimal modes when
13255         expanding unsigned integer through signed conversion.
13256
13257 2008-02-06  Nick Clifton  <nickc@redhat.com>
13258
13259         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
13260         inside the clobber with a match_operand and duplicated operand
13261         number in the constraint.
13262         (ineqbranchsi): Delete redundant comment.
13263
13264 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
13265
13266         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
13267         builtin_define ("__USE_INIT_FINI__").
13268         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
13269         -msx multilibs.
13270         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
13271
13272 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13273
13274         PR documentation/30330
13275         * doc/invoke.texi (C++ Dialect Options)
13276         (Objective-C and Objective-C++ Dialect Options, Warning Options):
13277         For each warning option -Wfoo that allows -Wno-foo, ensure both
13278         -Wfoo and -Wno-foo are listed in the option index.  Fix index
13279         entry of -Wswitch-default, index -Wnormalized= including the
13280         `=', and -Wlarger-than-@var{len} including @var{len}.
13281
13282 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
13283
13284         * config/i386/i386.md (floatunssisf2): Use
13285         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
13286         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
13287         Macroize expander using MODEF mode iterator.
13288
13289 2008-02-05  Diego Novillo  <dnovillo@google.com>
13290
13291         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
13292
13293         PR 33738
13294         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
13295
13296 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13297
13298         PR other/35070
13299         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
13300
13301 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
13302
13303         PR target/35084
13304         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
13305         to indicate if a message should be generated.
13306         (init_cumulative_args): Updated.
13307         (function_value_32): Likewise.
13308
13309 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
13310
13311         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
13312
13313 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
13314
13315         PR target/35083
13316         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
13317         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
13318
13319 2008-02-04  Diego Novillo  <dnovillo@google.com>
13320
13321         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
13322
13323         PR 33738
13324         * tree-vrp.c (vrp_evaluate_conditional): With
13325         -Wtype-limits, emit a warning when comparing against a
13326         constant outside the natural range of OP0's type.
13327
13328 2008-02-04  Richard Guenther  <rguenther@suse.de>
13329
13330         PR middle-end/33631
13331         * expr.c (count_type_elements): Give for unions instead of
13332         guessing.
13333
13334 2008-02-04  Richard Guenther  <rguenther@suse.de>
13335
13336         PR middle-end/35043
13337         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
13338         to TYPE_DOMAINs base type instead of using bitsizetype here.
13339
13340 2008-02-03  Jason Merrill  <jason@redhat.com>
13341
13342         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
13343
13344 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13345
13346         PR other/29972
13347         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
13348         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
13349         (RS/6000 and PowerPC Options): Fix typos and markup.
13350         * doc/passes.texi (Tree-SSA passes): Likewise.
13351
13352 2008-02-02  Michael Matz  <matz@suse.de>
13353
13354         PR target/35045
13355         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
13356         from record_last_reg_set_info.
13357         (record_last_reg_set_info): Take an RTX argument, iterate over all
13358         constituent hardregs.
13359         (record_last_set_info, record_opr_changes): Change calls to
13360         new signature or to record_last_reg_set_info_regno.
13361
13362 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
13363
13364         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
13365
13366 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
13367
13368         PR rtl-optimization/34773
13369         * reg-notes.def (EQUAL): Mention significance of combination of
13370         REG_EQUAL and REG_RETVAL.
13371         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
13372         insn that has a REG_RETVAL.
13373
13374 2008-02-01  Roger Sayle  <roger@eyesopen.com>
13375
13376         PR bootstrap/33781
13377         * configure.ac (--enable-fixed-point): Disable unless explicitly
13378         requested on IRIX.
13379         * configure: Regenerate.
13380
13381 2008-02-01  Richard Guenther  <rguenther@suse.de>
13382
13383         PR other/35042
13384         * invoke.texi (-finline-limit): Remove no longer true parts
13385         of the documentation.  Note that there is no default value.
13386
13387 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
13388             Mark Mitchell  <mark@codesourcery.com>
13389             Ben Elliston  <bje@au.ibm.com>
13390
13391         PR c/29326
13392         * doc/extend.texi (Other Builtins): Document.
13393
13394 2008-01-31  Tom Browder <tom.browder@gmail.com>
13395
13396         * doc/c-tree.texi (Types): Fix grammar.
13397         (Expression trees): Ditto.
13398         * doc/passes.texi (Tree-SSA passes): Ditto.
13399         
13400         * doc/configterms.texi (Configure Terms): Fix typo.
13401         * doc/cpp.texi (Common Predefined Macros): Ditto.
13402         * doc/md.texi (Machine Constraints): Ditto.
13403         
13404         * doc/makefile.texi (Makefile): Add comma.
13405
13406 2008-01-31  Tom Browder  <tom.browder@gmail.com>
13407             Gerald Pfeifer  <gerald@pfeifer.com>
13408         
13409         * doc/sourcebuild.texi (Front End): Remove references to CVS
13410         and CVSROOT/modules.
13411         (Texinfo Manuals): Replace reference to CVS by one to SVN.
13412         (Back End): Remove reference to CVS.
13413
13414 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
13415
13416         PR target/34900
13417         * config/mips/mips.c (gen_load_const_gp): New function, taking a
13418         comment from...
13419         (mips16_gp_pseudo_reg): ...here.
13420         * config/mips/mips.md (load_const_gp): Replace with...
13421         (load_const_gp_<mode>): ...this :P-based insn.
13422
13423 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13424
13425         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
13426         options. Minor fixes.
13427         (-std): Move reference to standards closer to where language
13428         standards are first mentioned.
13429         
13430 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
13431
13432         PR rtl-optimization/34995
13433         * reload.c (alternative_allows_const_pool_ref): Take an rtx
13434         parameter and return a bool.  If the rtx parameter is nonnull,
13435         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
13436         (find_reloads): Update call accordingly.  Pass the new operand
13437         if it needed no address reloads, otherwise pass null.
13438
13439 2008-01-30  Richard Henderson  <rth@redhat.com>
13440
13441         PR c/34993
13442         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
13443         for unbounded arrays.
13444
13445 2008-01-30  Silvius Rus  <rus@google.com>
13446
13447         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
13448
13449 2008-01-30  Jan Hubicka  <jh@suse.cz>
13450
13451         PR target/34982
13452         * i386.c (init_cumulative_args): Use real function declaration when
13453         calling locally.
13454
13455 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
13456
13457         PR rtl-optimization/34998
13458         * global.c (build_insn_chain): Treat non-subreg_lowpart
13459         SUBREGs of pseudos as clobbering all the words covered by the
13460         SUBREG, not just all the bytes.
13461         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
13462         original df_ref rather than an extract parameter.
13463         (global_conflicts): Update call accordingly.
13464
13465 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
13466
13467         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
13468         the overflow check to make it easier to read.
13469         (__fixtfdi): Change the type of the ll member in union
13470         long_double to UDItype_x.
13471
13472 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
13473
13474         PR middle-end/34969
13475         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
13476         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
13477         * tree-inline.c (fold_marked_statements): Call
13478         cgraph_update_edges_for_call_stmt if folding a call statement.
13479         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
13480         debug_generic_stmt calls, reset it back afterwards.
13481
13482         PR c/35017
13483         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
13484         static decls.
13485         * c-typeck.c (build_external_ref): Don't pedwarn about
13486         static vars in current function's scope.
13487
13488 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
13489
13490         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
13491
13492 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
13493
13494         PR c/35002
13495         * ipa-struct-reorg.c: Fix spelling.
13496         * params.def: Ditto.
13497
13498 2008-01-29  Richard Guenther  <rguenther@suse.de>
13499
13500         PR middle-end/35006
13501         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
13502         field.
13503         * tree-inline.c (remap_type): Increment remapping_type_depth
13504         around remapping types.
13505         (copy_body_r): Only add referenced variables if they are referenced
13506         from code, not types.
13507
13508 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
13509
13510         PR c++/34055
13511         PR c++/34103
13512         PR c++/34219
13513         PR c++/34606
13514         PR c++/34753
13515         PR c++/34754
13516         PR c++/34755
13517         PR c++/34919
13518         PR c++/34961
13519         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
13520         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
13521
13522 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
13523
13524         PR target/34412
13525         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
13526         pointer for tiny stack.
13527
13528 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
13529
13530         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
13531
13532 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
13533
13534         * config/vx-common.h: Fix typo in comment.
13535
13536 2008-01-28  Ian Lance Taylor  <iant@google.com>
13537
13538         PR c++/34862
13539         PR c++/33407
13540         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
13541         coalesce pointers if they have different DECL_NO_TBAA_P values.
13542         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
13543         between variables with different DECL_NO_TBAA_P values.
13544
13545 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
13546
13547         PR 31535
13548         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
13549         are not legitimate small data references on SPE targets.
13550
13551 2008-01-28  David Daney  <ddaney@avtrex.com>
13552
13553         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
13554
13555 2008-01-28  David Daney  <ddaney@avtrex.com>
13556
13557         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
13558
13559 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
13560
13561         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
13562         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
13563         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
13564         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
13565         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
13566         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
13567         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
13568         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
13569
13570 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
13571
13572         * basic-block.h (condjump_equiv_p): Fix comment.
13573
13574 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
13575
13576         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
13577         print_generic_stmt_indented): Fix comment.
13578
13579 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
13580
13581         * configure.ac (__stack_chk_fail): Add detecion for availability
13582         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
13583         * configure: Regenerate.
13584
13585 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
13586
13587         PR middle-end/34688
13588         * final.c (output_addr_const): Handle TRUNCATE.
13589
13590 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
13591
13592         PR target/34711
13593         * tree-ssa-loop-ivopts.c (comp_cost): New type.
13594         (zero_cost, infinite_cost): New constants.
13595         (struct cost_pair): Change type of cost to comp_cost.
13596         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
13597         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
13598         New functions.
13599         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
13600         split_address_cost, ptr_difference_cost, difference_cost,
13601         get_computation_cost_at, get_computation_cost,
13602         determine_use_iv_cost_generic, determine_use_iv_cost_address,
13603         determine_use_iv_cost_condition, determine_use_iv_costs,
13604         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
13605         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
13606         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
13607         Change type of cost to comp_cost.
13608         (determine_iv_cost): Increase cost of non-original ivs, instead
13609         of decreasing the cost of original ones.
13610         (get_address_cost): Indicate the complexity of the addressing mode 
13611         in comp_cost.
13612         (try_add_cand_for): Prefer using ivs not specific to some object.
13613         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
13614
13615 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
13616             Janis Johnson  <janis187@us.ibm.com>
13617
13618         PR target/34814
13619         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
13620         (TARGET_INSTANTIATE_DECLS): Likewise.
13621         * target.h (expand_to_rtl_hook): New target hook.
13622         (instantiate_decls): Likewise.
13623         * function.c (instantiate_decl): Make non-static.  Rename to...
13624         (instantiate_decl_rtl): ... this.
13625         (instantiate_expr): Use instantiate_decl_rtl.
13626         (instantiate_decls_1): Likewise.
13627         (instantiate_decls): Likewise.
13628         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
13629         * function.h (instantiate_decl_rtl): Add prototype.
13630         * cfgexpand.c (target.h): New include.
13631         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
13632         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
13633         (TARGET_INSTANTIATE_DECLS): Likewise.
13634         (TARGET_INITIALIZER): New target hooks added.
13635         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
13636         New prototype.
13637         * config/rs6000/rs6000.c (tree-flow.h): New include.
13638         (machine_function): Add sdmode_stack_slot field.
13639         (rs6000_alloc_sdmode_stack_slot): New function.
13640         (rs6000_instantiate_decls): Likewise.
13641         (rs6000_secondary_memory_needed_rtx): Likewise.
13642         (rs6000_check_sdmode): Likewise.
13643         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
13644         (TARGET_INSTANTIATE_DECLS): Likewise.
13645         (rs6000_hard_regno_mode_ok): Allow SDmode.
13646         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
13647         (rs6000_emit_move): Handle SDmode.
13648         (function_arg_advance): Likewise.
13649         (function_arg): Likewise.
13650         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
13651         SDmode var args for 32-bit compiles.
13652         (rs6000_secondary_reload_class): Handle SDmode.
13653         (rs6000_output_function_epilogue): Likewise.
13654         (rs6000_function_value): Simplify if statement.
13655         (rs6000_libcall_value): Likewise.
13656         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
13657         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
13658         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
13659         (movsd_hardfloat): New define_insn.
13660         (movsd_softfloat): Likewise.
13661         (movsd_store): Likewise.
13662         (movsd_load): Likewise.
13663         (extendsddd2): Likewise.
13664         (extendsdtd2): Likewise.
13665         (truncddsd2): Likewise.
13666         (movdd_hardfloat64): Fixup comment.
13667         (UNSPEC_MOVSD_LOAD): New constant.
13668         (UNSPEC_MOVSD_STORE): Likewise.
13669
13670 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
13671
13672         PR c++/34965
13673         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
13674         TRUTH_XOR_EXPR.
13675         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
13676         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
13677         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
13678         and TRUTH_XOR_EXPR.
13679
13680 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
13681
13682         PR target/34794
13683         * config.gcc: Separate AIX 5.3 from AIX 6.1.
13684         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
13685         __LONGDOUBLE128 too.
13686         * config/rs6000/aix61.h: New file.
13687
13688 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
13689
13690         PR rtl-optimization/34959
13691         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
13692         popcount and parity rtxes the same mode as their operand.
13693         Truncate or extend the result to the return value's mode
13694         if necessary.
13695
13696 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
13697
13698         PR target/34981
13699         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
13700         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
13701         to GOT_VERSION_REGNUM.
13702         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
13703         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
13704         * config/mips/mips.c (mips_emit_call_insn): New function.
13705         (mips_call_tls_get_addr): Call mips_expand_call directly.
13706         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
13707         emit_call_insn.
13708         (mips16_build_call_stub): Likewise.  Return the call insn or null.
13709         (mips_expand_call): Update the call to mips16_build_call_stub
13710         accordingly and a remove redundant condition.  Assert that MIPS16
13711         stubs do not use lazy binding.  Use mips_emit_call_insn and return
13712         the call insn.
13713         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
13714         TARGET_USE_GOT.
13715         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
13716         (mips_avoid_hazard): Remove hazard_set handling.
13717         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
13718         (UNSPEC_RESTORE_GP): ...this.
13719         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
13720         (FAKE_CALL_REGNO): Rename to...
13721         (GOT_VERSION_REGNUM): ...this.
13722         (type): Add "ghost" value.  Add an associated insn reservation.
13723         (hazard_set): Remove.
13724         (exception_receiver): Rename to...
13725         (restore_gp): ...this and update the unspec identifier accordingly.
13726         (exception_receiver, nonlocal_got_receiver): New expanders.
13727         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
13728         FAKE_CALL_REGNO.  Remove hazard_set attribute.
13729         (set_got_version, update_got_version): New patterns.
13730
13731 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
13732
13733         PR target/34970
13734         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
13735
13736 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
13737
13738         PR other/31955
13739         * doc/install.texi2html: Generate gcc-vers.texi.
13740
13741 2008-01-25  DJ Delorie  <dj@redhat.com>
13742
13743         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
13744
13745 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
13746
13747         * config/c4x: Remove directory.
13748         * config.gcc (crx-*, mt-*): Mark obsolete.
13749         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
13750         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
13751         sh-*-rtemscoff*): Remove cases.
13752         * defaults.h (C4X_FLOAT_FORMAT): Remove.
13753         * real.c (encode_c4x_single, decode_c4x_single,
13754         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
13755         c4x_extended_format): Remove.
13756         * real.h (c4x_single_format, c4x_extended_format): Remove.
13757         * doc/extend.texi (interrupt, naked): Remove mention of attributes
13758         on C4x.
13759         (Pragmas): Remove comment about c4x pragmas.
13760         * doc/install.texi (c4x): Remove target-specific instructions.
13761         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
13762         * doc/md.texi (Machine Constraints): Remove C4x documentation.
13763         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
13764         refer to C4x source files as examples.
13765         (C4X_FLOAT_FORMAT): Remove documentation.
13766
13767 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
13768
13769         * config/bfin/bfin.c (override_options): Reorder tests so that
13770         flag_pic gets enabled for -msep-data.
13771
13772 2008-01-25  Richard Guenther  <rguenther@suse.de>
13773
13774         PR middle-end/32244
13775         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
13776         to its bitfield precision if required.
13777
13778 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
13779
13780         PR middle-end/33880
13781         * tree-nested.c (walk_omp_for): New function.
13782         (convert_nonlocal_reference, convert_local_reference): Call
13783         walk_omp_for on OMP_FOR.
13784         (convert_call_expr): Call walk_body on OMP_FOR's
13785         OMP_FOR_PRE_INIT_BODY.
13786
13787 2008-01-25  Richard Guenther  <rguenther@suse.de>
13788
13789         PR tree-optimization/34966
13790         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
13791         default defs and PHI_NODEs we have to insert after the
13792         defining statement.
13793
13794 2008-01-24  Nick Clifton  <nickc@redhat.com>
13795
13796         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
13797         Provide a default definition.
13798         (LIBGCC2_UNITS_PER_WORD): Likewise.
13799
13800         * config/stormy16/stormy16.c: Include df.h for the prototype
13801         for df_regs_ever_live_p.
13802         (xstormy16_expand_builtin_va_start): Convert the stack offset
13803         into a component_ref and then use POINTER_PLUS_EXPR to add it
13804         to the incoming_virtual_args_rtx.
13805         (xstormy16_gimplify_va_arg_expr): Rename to
13806         xstormy16_gimplify_va_arg_expr.
13807         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
13808         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
13809         xstormy16_gimplify_va_arg_expr.
13810         Fix up some formatting issues.
13811
13812         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
13813         Move to predicates.md.
13814         (xs_hi_general_operand): Likewise.
13815         (xs_hi_nonmemory_operand): Likewise.
13816         * config/stormy16/predicates.md:
13817         (xstormy16_carry_plus_operand): New predicate.
13818         (xs_hi_general_operand): New predicate.
13819         (xs_hi_nonmemory_operand): New predicate.
13820         * config/stormy16/stormy16-protos.h:
13821         (xstormy16_carry_plus_operand): Delete prototype.
13822         (xs_hi_general_operand): Likewise.
13823         (xs_hi_nonmemory_operand): Likewise.
13824
13825         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
13826         modifiers as they are no longer needed and they can trigger
13827         reload spill failures.
13828
13829         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
13830         with a match_operand in order to help reload.
13831
13832         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
13833         constraint with 'e' for the 8th alternative as this version of
13834         the mov.w instruction only accepts the lower 8 registers.
13835
13836 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
13837
13838         PR target/34856
13839         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
13840         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
13841         vector elements.
13842
13843 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
13844
13845         PR middle-end/33333
13846         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
13847
13848 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
13849
13850         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
13851         New functions.
13852         (remove_structure): Update allocations list before removing structure.
13853         
13854 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
13855
13856         * ipa-struct-reorg.c (is_safe_cond_expr, 
13857         create_new_stmts_for_cond_expr): Use integer_zerop function,
13858         that recognize not only zero-pointer, but zero-integer too.
13859
13860 2008-01-25  Ben Elliston  <bje@au.ibm.com>
13861
13862         PR other/22232
13863         * fixproto: Escape "." in sed expression that strips leading "./".
13864
13865 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
13866
13867         PR driver/34904
13868         * gcc.c (SWITCH_OK): Removed.
13869         (SWITCH_LIVE): Changed to bit.
13870         (SWITCH_FALSE): Likewise.
13871         (SWITCH_IGNORE): Likewise.
13872         (switchstr): Change live_cond to unsigned int.
13873         (process_command): Replace SWITCH_OK with 0.
13874         (do_self_spec): Likewise.
13875         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
13876         (give_switch): Likewise.
13877         (used_arg): Likewise.
13878         (do_spec_1): Set the SWITCH_IGNORE bit.
13879         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
13880         bits.  Set the SWITCH_LIVE bit.
13881
13882 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
13883
13884         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
13885
13886 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
13887
13888         PR tree-optimization/34472
13889         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
13890         parameter to a "bool *" and set *DATA to false if there is
13891         an unsafe access.  Do not delete the structure here.
13892         (check_cond_exprs): Delete it here instead.
13893         (check_cond_exprs, exclude_cold_structs): Do not increase
13894         I when removing a structure.
13895
13896 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
13897
13898         PR target/34856
13899         * config/i386/i386.c (ix86_expand_vector_init): Consider only
13900         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
13901
13902 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
13903
13904         PR middle-end/34934
13905         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
13906         a fixed vector for stack.
13907
13908 2008-01-24  Ben Elliston  <bje@au.ibm.com>
13909
13910         PR c++/25701
13911         * doc/gcc.texi (Software development): Add a direntry for g++.
13912         
13913 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
13914
13915         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
13916         stale and straggling -fforce-addr comments above.
13917
13918         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
13919         define.
13920         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
13921         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
13922
13923 2008-01-23  Michael Matz  <matz@suse.de>
13924
13925         PR debug/34895
13926         * dwarf2out.c (force_type_die): Use modified_type_die instead of
13927         gen_type_die.
13928
13929 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
13930
13931         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
13932         malloc result type.
13933
13934 2008-01-23 Anatoly Sokolov <aesok@post.ru>
13935
13936         * config/avr/avr.c (avr_current_arch): New variable.
13937         (avr_arch_types): Add 'avr31' and 'avr51' entries.
13938         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
13939         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
13940         (avr_override_options): Init 'avr_current_arch'. 
13941         (base_arch_s): Move from here...
13942         * config/avr/avr.h (base_arch_s): ... here. Add new members 
13943         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
13944         'mega' to 'have_jmp_call'.
13945         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
13946         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
13947         macros.
13948         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
13949         architectures.
13950         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
13951         MULTILIB_MATCHES): (Ditto.).
13952
13953 2008-01-23  Richard Guenther  <rguenther@suse.de>
13954
13955         PR middle-end/31529
13956         * cgraphunit.c (cgraph_reset_node): Always mark the node
13957         not reachable if it is not queued already.
13958
13959 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
13960
13961         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
13962         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
13963         (cputype_selected): New static variable.
13964         (bfin_handle_option): Set it if -mcpu is used.
13965         (override_option): Select default set of workarounds if no cpu type
13966         selected on the command line.
13967         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
13968
13969         From  Michael Frysinger  <michael.frysinger@analog.com>
13970         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
13971         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
13972
13973         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
13974         for bf547, bf523, bf524, and bf526.
13975         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
13976         bf526.
13977         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
13978         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
13979         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
13980         __ADSPBF547__ and __ADSPBF54x__ for bf547.
13981         * doc/invoke.texi (Blackfin Options): Document that
13982         -mcpu now accept bf547, bf523, bf524, and bf526.
13983
13984 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
13985
13986         PR rtl-optimization/34628
13987         * combine.c (try_combine): Stop and undo after the first combination
13988         if an autoincrement side-effect on the first insn has effectively
13989         been lost.
13990
13991 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
13992
13993         PR target/34529
13994         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
13995         Offset addresses are not valid for Altivec or paired float modes.
13996
13997 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
13998
13999         PR c++/34607
14000         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
14001         if DECL_INITIAL (decl) is error_mark_node.
14002
14003         PR c++/34914
14004         * c-common.c (handle_vector_size_attribute): Only allow
14005         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
14006         the same way as pointer, array etc. types.
14007         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
14008
14009         PR c++/34917
14010         * tree.c (build_type_attribute_qual_variant): Call
14011         build_qualified_type if attributes are equal, but quals are not.
14012
14013 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14014
14015         PR 32102
14016         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
14017         * flags.h (warn_strict_aliasing): Remove.
14018         (warn_strict_overflow): Remove.
14019         * opts.c (warn_strict_aliasing): Remove.
14020         (warn_strict_overflow): Remove.
14021         * c-opts.c (c_common_handle_option): -Wall only sets
14022         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
14023         (c_common_post_options): Give default values to -Wstrict-aliasing
14024         and -Wstrict-overflow if they are uninitialized.
14025         * common.opt (Wstrict-aliasing): Specify Var and Init.
14026         (Wstrict-overflow): Likewise.
14027
14028 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
14029
14030         PR rtl-optimization/26854
14031         PR rtl-optimization/34400
14032         PR rtl-optimization/34884
14033         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
14034         DF_RD->gen.
14035         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
14036         (df_rd_bb_info.expanded_lr_out): Deleted
14037         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
14038         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
14039         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
14040         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
14041         Removed code to allocate, initialize or free expanded_lr_out.
14042         (df_rd_bb_local_compute_process_def): Restructured to make more
14043         understandable.
14044         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
14045         sets if the sets are being trimmed.
14046
14047 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
14048
14049         PR bootstrap/32287
14050         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
14051         (as_vers): Likewise.
14052         * configure: Regenerated.
14053
14054 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14055
14056         PR middle-end/33092
14057         * tree-pass.h (pass_build_alias): New pass.
14058         * tree-ssa-alias.c (gate_build_alias): New.
14059         (pass_build_alias): New.
14060         * passes.c (init_optimization_passes): Add pass_build_alias after
14061         pass_create_structure_vars.
14062
14063 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
14064
14065         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
14066         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
14067         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
14068         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
14069         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
14070         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
14071         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
14072         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
14073         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
14074         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
14075         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
14076         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
14077         * config/s390/s390.md (FP_ALL): New mode iterator.
14078         (_d): New mode attribute.
14079         ("*signbit<mode>2>"): Changed mode of first operand.
14080         ("isinf<mode>2"): Changed mode of first operand.
14081         ("*TDC_insn"): Adaptation for DFP modes.
14082
14083 2008-01-22  Ben Elliston  <bje@au.ibm.com>
14084
14085         * tree.c (check_qualified_type): Improve function description.
14086
14087 2008-01-21  Jason Merrill  <jason@redhat.com>
14088
14089         PR c++/34196
14090         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
14091         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
14092         if it is set.
14093
14094 2008-01-21  DJ Delorie  <dj@redhat.com>
14095
14096         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
14097         return zero.
14098
14099 2008-01-21  Richard Guenther  <rguenther@suse.de>
14100
14101         PR middle-end/34856
14102         * tree-cfg.c (verify_expr): Allow all invariant expressions
14103         instead of just constant class ones as reference argument.
14104         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
14105         like any other constant.
14106         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
14107
14108 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
14109
14110         * regmove.c (fixup_match_1): Update call crossed frequencies.
14111
14112 2008-01-21  Richard Guenther  <rguenther@suse.de>
14113
14114         PR c/34885
14115         * tree-inline.c (setup_one_parameter): Deal with mismatched
14116         types using a VIEW_CONVERT_EXPR.
14117
14118 2008-01-21  Alon Dayan  <alond@il.ibm.com>
14119             Olga Golovanevsky  <olga@il.ibm.com>
14120         
14121         PR tree-optimization/34701
14122         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
14123         when the structure size is not a power of 2.
14124
14125 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
14126
14127         * doc/install.texi: Add doc for --enable-checking=df.
14128         
14129 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14130
14131         PR rtl-optimization/34808
14132         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
14133
14134 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
14135
14136         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
14137         input.
14138
14139 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
14140
14141         PR rtl-optimization/26854
14142         PR rtl-optimization/34400
14143         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
14144         DF_RD->gen.
14145         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
14146         (df_rd_bb_info.expanded_lr_out): New.
14147         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
14148         * loop_iv.c (iv_analysis_loop_init): Ditto.
14149         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
14150         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
14151         Added code to allocate, initialize or free expanded_lr_out.
14152         (df_rd_bb_local_compute_process_def): Restructured to make
14153         more understandable.
14154         (df_rd_confluence_n): Add code to do nothing with fake edges and
14155         code to no apply invalidate_by_call sets if the sets are being trimmed.
14156         (df_lr_local_finalize): Renamed to df_lr_finalize.
14157         (df_live_local_finalize): Renamed to df_live_finalize.
14158
14159 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
14160
14161         PR target/34831
14162         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
14163         deciding whether to use reciprocal instructions.
14164
14165 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
14166
14167         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
14168         dwarf2out_note_section_used if cold_text_section is NULL.
14169
14170 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
14171
14172         PR gcov-profile/34610
14173         * tree-cfg.c (make_edges): Mark both outgoing edges from
14174         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
14175         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
14176         from OMP_FOR and OMP_CONTINUE outgoing edges.
14177
14178         * tree-profile.c (tree_profiling): Return early if
14179         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
14180         at the end.
14181         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
14182         from cfun to child_cfun.
14183         * function.h (struct function): Add after_tree_profile bit.
14184
14185 2008-01-19 Anatoly Sokolov <aesok@post.ru>
14186
14187         * config/avr/avr.S (_exit): Disable interrupt.
14188
14189 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
14190             Steven Bosscher  <stevenb.gcc@gmail.com>
14191
14192         PR rtl-optimization/26854
14193         PR rtl-optimization/34400
14194         * df-problems.c (df_live_scratch): New scratch bitmap.
14195         (df_live_alloc): Allocate df_live_scratch when doing df_live.
14196         (df_live_reset): Clear the proper bitmaps.
14197         (df_live_bb_local_compute): Only process the artificial defs once
14198         since the order is not important.
14199         (df_live_init): Init the df_live sets only with the variables
14200         found live by df_lr.
14201         (df_live_transfer_function): Use the df_lr sets to prune the
14202         df_live sets as they are being computed.  
14203         (df_live_free): Free df_live_scratch.
14204
14205 2008-01-18  Ian Lance Taylor  <iant@google.com>
14206
14207         * common.opt: Add fmerge-debug-strings.
14208         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
14209         flag_merge_debug_strings rather than flag_merge_constants.
14210         * doc/invoke.texi (Option Summary): Mention
14211         -fmerge-debug-strings.
14212         (Debugging Options): Document -fmerge-debug-strings.
14213
14214 2008-01-18  Ian Lance Taylor  <iant@google.com>
14215
14216         PR c++/33407
14217         * tree.h (DECL_IS_OPERATOR_NEW): Define.
14218         (struct tree_function_decl): Add new field operator_new_flag.
14219         * tree-inline.c (expand_call_inline): When inlining a call to
14220         operator new, force the return value to go into a variable, and
14221         set DECL_NO_TBAA_P on that variable.
14222         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
14223
14224 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
14225
14226         PR debug/34484
14227         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
14228         DWARF2_DEBUGGING_INFO.
14229         (dwarf2out_note_section_used): Ditto.  Add prototype.
14230         (have_multiple_function_sections, text_section_used,
14231         cold_text_section_used, *cold_text_sections): Move declarations
14232         before their uses.
14233
14234 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
14235
14236         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
14237         field and add signal_ra.
14238         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
14239         assignments to frame state pc.  Move end of stack check after
14240         MD_FALLBACK_FRAME_STATE_FOR.
14241         (uw_update_context_1): Use frame state signal_regs if set, instead
14242         of checking signal_frame flag.
14243         (uw_update_context): Use frame state signal_ra if set.
14244         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
14245         * config/xtensa/linux-unwind.h: New file.
14246
14247 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
14248
14249         * modulo-sched.c (get_sched_window): Fix comment typo.
14250
14251 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
14252
14253         PR tree-optimization/34648
14254         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
14255
14256 2008-01-17  Anatoly Sokolov <aesok@post.ru>
14257
14258         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
14259         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
14260
14261 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
14262
14263         PR rtl-optimization/34400
14264         * df-core.c (df_worklist_dataflow_overeager,
14265         df_worklist_dataflow_doublequeue): New functions.
14266         (df_worklist_dataflow): Two different worklist solvers.
14267         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
14268         New param.
14269
14270 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
14271
14272         PR testsuite/34821
14273         * doc/invoke.texi: Document the dependence on pthread for fopenmp
14274         and ftree-parallelize-loops.
14275
14276 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
14277
14278         PR rtl-optimization/34826
14279         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
14280
14281 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
14282
14283         * global.c (find_reg): Mark the eh regs as used if necessary.
14284         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
14285         * ra.h (struct allocno): no_eh_reg field added.  Changed
14286         no_stack_reg type to bitfield.
14287
14288 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
14289
14290         * tree.c (substitute_in_expr): Add missing 'break'.
14291
14292 2008-01-17  Richard Guenther  <rguenther@suse.de>
14293
14294         PR tree-optimization/34825
14295         * tree-ssa-math-opts.c (is_division_by): Do not recognize
14296         x / x as division to handle.
14297
14298 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14299
14300         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
14301         "-pthread" is specified.
14302         * pa-hpux11.h (LIB_SPEC): Likewise.
14303
14304 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
14305             Peter Bergner  <bergner@vnet.ibm.com>
14306
14307         PR rtl-optimization/33796
14308         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
14309
14310 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14311
14312         PR libgfortran/34699
14313         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
14314         static links.
14315         * pa-hpux10.h (LINK_SPEC): Likewise.
14316         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
14317
14318 2008-01-16  Richard Guenther  <rguenther@suse.de>
14319
14320         PR middle-end/32628
14321         * fold-const.c (fold_convert_const_int_from_int): Do not
14322         set overflow if that occured only because of a sign extension
14323         change when converting from/to a sizetype with the same
14324         precision and signedness.
14325
14326 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
14327
14328         PR debug/34249
14329         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
14330         location address to the correct place.  Update copyright year.
14331
14332 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
14333
14334         * lambda-code.c (lambda_transform_legal_p): Handle the case of
14335         no dependences in the dependence_relations vector.
14336
14337 2008-01-16  Jan Hubicka  <jh@suse.cz>
14338
14339         PR rtl-optimization/31396
14340         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
14341         * cfg.c (dump_reg_info): Print it.
14342         * regs.h (struct reg_info_t): add freq_calls_crossed.
14343         (REG_FREQ_CALLS_CROSSED): New macro.
14344         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
14345         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
14346         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
14347         regmove_optimize): Update call crossed frequencies.
14348         * local-alloc.c (struct qty): Add freq_calls_crossed.
14349         (alloc_qty): Copute freq_calls_crossed.
14350         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
14351         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
14352         * ra.h (struct allocno): Add freq_calls_crossed.
14353
14354 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
14355
14356         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
14357         libgomp when compiling with ftree-parallelize-loops.
14358         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
14359
14360 2008-01-16  Richard Guenther  <rguenther@suse.de>
14361
14362         PR tree-optimization/34769
14363         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
14364         * tree.c (int_cst_value): Instead make this function more
14365         permissive in what it accepts as valid input.  Document this
14366         function always sign-extends the value.
14367
14368 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
14369             Richard Guenther  <rguenther@suse.de>
14370
14371         PR c/34668
14372         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
14373         (gimple_fold_indirect_ref_rhs): ... this.
14374         (gimple_fold_indirect_ref): New function with foldings
14375         that preserve lvalueness.
14376         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
14377         * tree-flow.h (gimple_fold_indirect_ref): Declare.
14378         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
14379         to fold an INDIRECT_REF, fall back to the old use of
14380         fold_indirect_ref_1.
14381
14382 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
14383
14384         * tree-data-ref.c (subscript_dependence_tester_1): Call 
14385         free_conflict_function.
14386         (compute_self_dependence): Same.
14387
14388 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
14389
14390         PR debug/34249
14391         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
14392         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
14393         function global.
14394         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
14395         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
14396         for DWARF2_UNWIND_INFO targets.
14397
14398 2008-01-16  Richard Guenther  <rguenther@suse.de>
14399
14400         PR c/34768
14401         * c-typeck.c (common_pointer_type): Do not merge inconsistent
14402         type qualifiers for function types.
14403
14404 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
14405
14406         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
14407         loop_iterator li from previous commit.
14408
14409 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
14410
14411         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
14412
14413 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
14414
14415         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
14416         (parallelize_loops): Don't parallelize irreducible components.
14417
14418 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14419
14420         PR c++/24924
14421         * c-opts (c_common_post_options): Do not enable CPP
14422         flag_pedantic_errors by default.
14423         
14424 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
14425
14426         PR rtl-optimization/31944
14427         * cse.c (remove_pseudo_from_table): New function.
14428         (merge_equiv_classes): Use above function to remove pseudo-registers.
14429         (invalidate): Likewise.
14430
14431 2008-01-13  Richard Guenther  <rguenther@suse.de>
14432
14433         PR middle-end/34601
14434         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
14435         instead of TYPE_MODE to deal with calls from expand_one_error_var.
14436
14437 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
14438
14439         * gcse.c (cprop_jump): Call validate_unshare_change instead of
14440         validate_change to unshare the source of the PC set.
14441
14442 2008-01-12  Jan Hubicka  <jh@suse.cz>
14443
14444         PR middle-end/32135
14445         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
14446         references above array bounds.  This might trigger bounds checks for
14447         pointers to arrays.
14448
14449 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
14450
14451         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
14452         new_replaceable_dependencies.
14453
14454 2008-01-12  Doug Kwan  <dougkwan@google.com>
14455
14456         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
14457         instead of OPT_Wreturn_type in warning due to ignored return type
14458         qualifiers.
14459         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
14460         options included in -Wextra.
14461         * c.opt: New option -Wignored_qualifiers.
14462         * doc/invoke.texi (Warning Options, -Wextra): Add new option
14463         -Wignore_qualifiers.
14464         (-Wignored-qualifiers): Document.
14465         (-Wreturn-type): Remove description of functionality now handled
14466         by -Wignored-qualifiers.
14467
14468 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
14469
14470         PR ada/33788
14471         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
14472         NOP_EXPR if it is between integral types with the same precision.
14473
14474 2008-01-12  Jan Hubicka  <jh@suse.cz>
14475
14476         PR other/28023
14477         * invoke.texi (max-inline-recursive-depth): Fix default value.
14478
14479 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
14480
14481         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
14482         correct type.
14483
14484 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
14485         
14486         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
14487         
14488 2008-01-11  James E. Wilson  <wilson@specifix.com>
14489
14490         PR target/26015
14491         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
14492
14493 2008-01-11  Anatoly Sokolov <aesok@post.ru>
14494
14495         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
14496         save/restore frame pointer register and don't use 'call-prologues' 
14497         optimization in function with "OS_task" attribute.
14498
14499 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
14500
14501         PR middle-end/31309
14502         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
14503         when copying to memory.
14504
14505 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
14506
14507         PR rtl-optimization/30905
14508         * cfgcleanup.c: Include dce.h
14509         (crossjumps_occured): New global variable.
14510         (try_crossjump_bb): Exit loop after finding a fallthru edge.
14511         If something changed, set crossjumps_occured to true.
14512         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
14513         Don't add/remove fake edges to exit here...
14514         (cleanup_cfg): ...but do it here, when crossjumping.
14515         Run a fast DCE when successful crossjumps occured in the latest
14516         iteration of try_optimize_cfg.
14517
14518 2008-01-11  Richard Guenther  <rguenther@suse.de>
14519
14520         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
14521         (struct vn_unary_op_s): Likewise.
14522         (vn_reference_insert): Free old reference on hash collision.
14523
14524 2008-01-10  Raksit Ashok  <raksit@google.com>
14525
14526         PR rtl-optimization/27971
14527         * combine.c (find_split_point): Split PLUS expressions which are
14528         inside a MEM rtx, and whose first operand is complex.
14529
14530 2008-01-10  DJ Delorie  <dj@redhat.com>
14531
14532         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
14533         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
14534         (m32c_hard_regno_ok): Call the underlying function.
14535
14536 2008-01-10  Richard Guenther  <rguenther@suse.de>
14537
14538         PR middle-end/34683
14539         * tree-cfg.c (tree_merge_blocks): Do not go through the
14540         full-blown folding and stmt updating path if we just deal
14541         with virtual operands.
14542         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
14543         test for abnormal SSA_NAMEs.
14544
14545 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
14546
14547         PR middle-end/34641
14548         * reload.c (push_reload): Add assertions.  All constants from
14549         reg_equiv_constant should have been used for replacing the respective
14550         pseudo earlier.
14551         (find_reloads_address): Invoke find_reloads_address_part for
14552         constant taken from the reg_equiv_constant array.
14553
14554 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
14555
14556         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
14557         field (valnum) the first in the struct.  Replace bools with
14558         unit bit fields.
14559
14560 2008-01-10  Richard Guenther  <rguenther@suse.de>
14561
14562         PR tree-optimization/34651
14563         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
14564         types and ordering for masking and converting.
14565
14566 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
14567
14568         PR tree-optimization/34017
14569         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
14570         also for PHI_NODE expressions.
14571
14572 2008-01-09  Jan Hubicka  <jh@suse.cz>
14573
14574         PR tree-optimization/34708
14575         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
14576         based on number of case labels.
14577         (init_inline_once): Remove switch_cost.
14578         * tree-inline.h (eni_weights_d): Remove switch_cost.
14579
14580 2008-01-09  Richard Guenther  <rguenther@suse.de>
14581         Andrew Pinski  <andrew_pinski@playstation.sony.com>
14582
14583         PR middle-end/30132
14584         * gimplify.c (gimplify_cond_expr): Do not create an addressable
14585         temporary if an rvalue is ok or an lvalue is not required.
14586
14587 2008-01-09  Richard Guenther  <rguenther@suse.de>
14588
14589         PR middle-end/34458
14590         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
14591         adjust return type.
14592
14593 2008-01-09  Richard Guenther  <rguenther@suse.de>
14594
14595         PR middle-end/34679
14596         * tree.c (host_integerp): Check for sizetype only if the
14597         type is an integer type.
14598
14599 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
14600
14601         PR debug/26364
14602         * opts.c (decode_options): Disable inlining of functions called
14603         once if not in unit-at-a-time mode.
14604
14605 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
14606
14607         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
14608
14609 2008-01-08  Richard Guenther  <rguenther@suse.de>
14610
14611         PR middle-end/31863
14612         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
14613         out early if the result will be unused.
14614
14615 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
14616
14617         PR target/34709
14618         Revert:
14619
14620         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
14621         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
14622         for TARGET_RECIP.       
14623         
14624 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
14625         
14626         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
14627         for vectorization tuned.
14628         
14629 2008-01-08  Richard Guenther  <rguenther@suse.de>
14630
14631         PR tree-optimization/34683
14632         * tree-ssa-operands.c (operand_build_cmp): Export.
14633         * tree-ssa-operands.h (operand_build_cmp): Declare.
14634         * tree-vn.c (vuses_compare): Remove.
14635         (sort_vuses): Use operand_build_cmp.
14636         (sort_vuses_heap): Likewise.
14637         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
14638         to re-use old VEC if available.  Do not sort already sorted VUSEs.
14639         (vdefs_to_vec): Do not sort already sorted VDEFs.
14640
14641 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
14642
14643         PR middle-end/34694
14644         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
14645
14646 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
14647
14648         PR target/34702
14649         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
14650         limitations of reciprocal sequences on x86 targets.
14651
14652 2008-01-08  Richard Guenther  <rguenther@suse.de>
14653
14654         PR tree-optimization/34683
14655         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
14656
14657 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
14658
14659         PR target/34622
14660         * config/darwin.c (darwin_mergeable_string_section): Don't use
14661         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
14662
14663 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
14664
14665         PR target/34682
14666         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
14667         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
14668         predicates of op0 and op1 to register_operand.
14669         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
14670         expander using X87MODEF mode iterator.  Change predicates of
14671         op0 and op1 to register_operand.
14672         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
14673         corresponding patterns and macroize using MODEF macro.  Change
14674         predicates of op0 and op1 to register_operand and remove
14675         "m" constraint. Disparage "r" alternative with "!".
14676         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
14677         macroize using X87MODEF macro.  Change predicates of op0 and op1
14678         to register_operand and remove "m" constraint.  Disparage "r"
14679         alternative with "!".
14680         (absneg splitter with memory operands): Remove.
14681         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
14682         patterns and macroize using X87MODEF mode iterator.
14683         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
14684         Change predicate of op1 to register_operand.
14685         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
14686         for memory operands.
14687
14688 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
14689
14690         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
14691
14692 2008-01-07  Richard Guenther  <rguenther@suse.de>
14693
14694         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
14695         fields.
14696
14697 2008-01-07  Richard Guenther  <rguenther@suse.de>
14698
14699         PR tree-optimization/34683
14700         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
14701         VOPs of the needed size to save memory.  Use VEC_quick_push
14702         to save compile-time.
14703         (vdefs_to_vec): Likewise.
14704
14705 2008-01-07  Sa Liu  <saliu@de.ibm.com>
14706
14707         * config/spu/spu.md (divdf3): Genetate inline code for double
14708         division.  The implementation doesn't handle INF or NAN, therefore it
14709         only applies when -ffinite-math-only is given.
14710
14711 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
14712
14713         PR libstdc++/34680
14714         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
14715         * doc/cpp.texi ([Common Predefined Macros]): Document.
14716
14717 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
14718
14719         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
14720         order to use commutative addition instead of subtraction.
14721
14722 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14723             Mircea Namolaru  <namolaru@il.ibm.com>
14724             Vladimir Yanovsky  <yanov@il.ibm.com>
14725             Revital Eres  <eres@il.ibm.com>
14726
14727         PR tree-optimization/34263
14728         * tree-outof-ssa.c (process_single_block_loop_latch,
14729         contains_tree_r): New functions.
14730         (analyze_edges_for_bb): Call process_single_block_loop_latch
14731         function to empty single-basic-block latch block if possible.
14732
14733 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
14734
14735         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
14736         for TARGET_RECIP.
14737         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
14738
14739 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
14740
14741         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
14742
14743 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
14744
14745         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
14746
14747 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
14748
14749         PR tree-optimization/34618
14750         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
14751         flag from T.
14752
14753 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
14754
14755         PR target/34673
14756         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
14757         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
14758         Update copyright year.
14759
14760         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
14761         Update copyright year.
14762         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
14763         using NR fixup.
14764
14765 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
14766
14767         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
14768         edge does not point to current bb before changing need_assert.
14769
14770 2008-01-04  Richard Guenther  <rguenther@suse.de>
14771
14772         PR middle-end/34029
14773         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
14774         for verifying purposes if they are is_gimple_min_invariant.
14775
14776 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
14777
14778         PR tree-optimization/34448
14779         PR tree-optimization/34465
14780         * gimplify.c (gimplify_init_constructor): Add new parameter
14781         notify_temp_creation.  Use it.
14782         (gimplify_modify_expr_rhs): Take volatiles into account when
14783         optimizing constructors.
14784         Do not optimize constructors if gimplify_init_constructor will dump to
14785         memory.
14786         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
14787         * gcc.c-torture/compile/pr34448.c: New.
14788
14789 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
14790
14791         PR gcov-profile/34609
14792         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
14793         return_slot if result is TREE_ADDRESSABLE.
14794
14795 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
14796
14797         * config/mips/mips.md (sqrt_condition): Tweak comment.
14798         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
14799
14800 2008-01-03  Tom Tromey  <tromey@redhat.com>
14801
14802         PR c/34457
14803         * c-common.c (c_type_hash): Handle VLAs.
14804
14805 2008-01-03  Jan Hubicka  <jh@suse.cz>
14806
14807         PR tree-optimization/31081
14808         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
14809         0 when inlining and not inlining to first basic block.
14810         (remap_decl): When var is initialized to 0, don't set default_def.
14811         (expand_call_inline): Set entry_bb.
14812         * tree-inline.h (copy_body_data): Add entry_bb.
14813
14814 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
14815
14816         PR c++/34619
14817         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
14818         before returning.
14819
14820         PR tree-optimization/29484
14821         * tree-inline.c (inline_forbidden_p_2): New function.
14822         (inline_forbidden_p): Disallow inlining if some static var
14823         has an address of a local LABEL_DECL in its initializer.
14824         * doc/extend.texi (Labels as Values): Document &&foo behaviour
14825         vs. inlining.
14826
14827 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
14828
14829         PR tree-optimization/34635
14830         * tree-data-ref.c (add_other_self_distances): Make sure that the
14831         evolution step is constant.
14832
14833 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
14834
14835         PR middle-end/34608
14836         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
14837
14838 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
14839
14840         * tree-sra.c (scalarize_init): Insert the generate_element_init
14841         statements after the generate_element_zero statements.
14842
14843 2008-01-02  Richard Guenther  <rguenther@suse.de>
14844
14845         PR middle-end/34093
14846         PR middle-end/31976
14847         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
14848         for very large number of operands instead of ICEing.
14849
14850 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
14851
14852         PR target/34013
14853         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
14854         while stack probing.
14855
14856 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
14857
14858         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
14859         in C++0x mode.
14860
14861 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
14862
14863         PR libmudflap/26442
14864         * tree-mudflap.c (mx_register_decls): Guard warning by
14865         !DECL_ARTIFICIAL check.
14866
14867 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
14868
14869         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
14870         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
14871         sse5_perm<mode>): Fix constraints.