OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2
3         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
4         warnings.
5         * recog.c (check_asm_operands, validate_change_1): Likewise.
6         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
7         subst_asm_stack_regs): Likewise.
8         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
9         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
10         * regmove.c (reg_is_remote_constant_p): Likewise.
11         * regrename.c (regrename_optimize, scan_rtx_reg,
12         kill_clobbered_value, kill_set_value, kill_autoinc_value):
13         Likewise.
14         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
15         regstat_compute_calls_crossed): Likewise.
16         * reload1.c (init_reload, new_insn_chain,
17         has_nonexceptional_receiver, reload, copy_reloads,
18         calculate_needs_all_insns, init_elim_table): Likewise.
19         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
20         * rtl.c (shallow_copy_rtx_stat): Likewise.
21         * rtlanal.c (parms_set): Likewise.
22         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
23         sbitmap_resize, sbitmap_vector_alloc): Likewise.
24         * sched-ebb.c (earliest_block_with_similiar_load,
25         add_deps_for_risky_insns): Likewise.
26         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
27         schedule_region): Likewise.
28         * see.c (eq_descriptor_pre_extension,
29         hash_descriptor_pre_extension, hash_del_pre_extension,
30         eq_descriptor_properties, hash_descriptor_properties,
31         hash_del_properties, see_seek_pre_extension_expr,
32         see_initialize_data_structures, see_print_register_properties,
33         see_print_pre_extension_expr, see_delete_merged_def_extension,
34         see_delete_unmerged_def_extension, see_emit_use_extension,
35         see_pre_delete_extension, see_map_extension, see_commit_changes,
36         see_analyze_merged_def_local_prop,
37         see_analyze_merged_def_local_prop,
38         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
39         see_set_prop_merged_def, see_set_prop_unmerged_def,
40         see_set_prop_unmerged_use, see_print_one_extension,
41         see_merge_one_use_extension, see_merge_one_def_extension,
42         see_store_reference_and_extension, see_update_uses_relevancy,
43         see_update_defs_relevancy): Likewise.
44         * statistics.c (hash_statistics_hash, hash_statistics_eq,
45         hash_statistics_free, curr_statistics_hash): Likewise.
46         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
47         expand_asm_operands, expand_return, case_bit_test_cmp,
48         expand_case): Likewise.
49         * stor-layout.c (start_record_layout): Likewise.
50         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
51         gt_pch_save_stringpool): Likewise.
52         * tree-data-ref.c (hash_stmt_vertex_info,
53         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
54         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
55
56 2008-06-25 Uros Bizjak  <ubizjak@gmail.com>
57
58         PR target/36627
59         * config/i386/i386.md : Change constraints of HImode and QImode
60         immediate operands from "i" to "n".  Change SImode "ni" constraint to
61         "i" and SImode "rmi" constraint to "g".  Remove all constraints
62         from const0_operand and const1_operand predicated operands.
63         (i): Change QImode and HImode attribute from "i" to "n".
64         (*subqi_2): Change HImode operands to QImode.
65         (*subqi_3): Ditto.
66
67 2008-06-25  Olivier Hainque  <hainque@adacore.com>
68
69         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
70         sed substitutions.
71
72 2008-06-25  Richard Guenther  <rguenther@suse.de>
73
74         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
75         not overflow the result type.
76
77 2008-06-25  Richard Guenther  <rguenther@suse.de>
78
79         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
80         (vn_lookup): Likewise.
81
82 2008-06-25  Richard Guenther  <rguenther@suse.de>
83
84         PR tree-optimization/35518
85         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
86         * tree-sra.c (instantiate_element): Use fold_build3 to build
87         BIT_FIELD_REFs.
88         (try_instantiate_multiple_fields): Likewise.
89
90 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
91
92         * config/rs6000/rs6000.md: Change all string instruction's clobber to
93         be early clobbers.
94
95 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
96
97         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
98         use_backchain_to_restore_sp to true
99         if the offset of the link register save area would go over the 32k - 1
100         offset limit of the load
101         instructions.
102
103 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
104
105         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
106         anchor for the type-punning blurb.  Cross-reference "Structures
107         unions enumerations and bit-fields implementation".  Provide a
108         cast-through-pointer example.  Make final sentence self-contained.
109         * doc/implement-c.texi (Structures unions enumerations and
110         bit-fields implementation): Cross-reference the type-punning blurb
111         in the -fstrict-aliasing documentation.
112
113 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
114
115         PR middle-end/36594
116         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
117         the memory instead of the memory itself for the save area.
118
119 2008-06-24  Olivier Hainque  <hainque@adacore.com>
120             Nicolas Roche  <roche@adacore.com>
121
122         * gengtype.c (srcdir_len): size_t instead of int.
123         (get_file_realbasename): New function.  For F a filename, the real
124         basename of F, with all the path components stripped.
125         (get_file_srcdir_relative_path): New function.  For F a filename, the
126         relative path to F from $(srcdir).
127         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
128         get_file_realbasename.  Adjust the head comment.
129         (get_prefix_langdir_index): New function. For F a filename, return the
130         lang_dir_names[] relative index of the language directory that is
131         a prefix in F.
132         (get_file_langdir): For F a filename, return the name of the language
133         directory where F is located.
134         (get_file_gtfilename): New function. The gt- output file name for an
135         input filename F.
136         (get_output_file_with_visibility): Replace in-line computations with
137         uses of get_file_gtfilename and get_prefix_langdir_index.
138         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
139
140 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
141
142         PR tree-optimization/36504
143         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
144         references without base address.
145
146 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
147
148         PR middle-end/36584
149         * calls.c (expand_call): Increase alignment for recursive functions.
150
151 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
152
153         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
154         (TARGET_FUNCTION_VALUE): New define.
155         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
156         * config/avr/avr.h (FUNCTION_VALUE): Remove.
157
158 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
159
160         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
161         (fmod<mode>3): Ditto.
162         (remainderxf3): Ditto.
163         (remainder<mode>3): Ditto.
164
165 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
166
167         PR target/36533
168         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
169         REG is a hard register.
170
171         PR tree-optimization/36508
172         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
173         499, don't check it at all in release compilers.
174
175 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
176
177         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
178         together with SSE_TARGET_MATH to disable insn pattern.
179         (*fop_<MODEF:mode>_2_i387): Ditto.
180         (*fop_<MODEF:mode>_3_i387): Ditto.
181
182 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
183
184         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
185         
186 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
187
188         PR middle-end/34906
189         * gimplify.c (gimplify_asm_expr): Check the return code of
190         parse_output_constraint call, set function return and is_inout
191         value if it failed.
192
193 2008-06-22  Ian Lance Taylor  <iant@google.com>
194
195         * c-lex.c (narrowest_unsigned_type): Change itk to int.
196         (narrowest_signed_type): Likewise.
197         * c-typeck.c (c_common_type): Change local variable mclass to enum
198         mode_class, twice.
199         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
200         tcc_comparison, not the tree code itself.
201         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
202         (c_expand_expr): Cast modifier to enum expand_modifier.
203         * c-common.h (C_RID_CODE): Add casts.
204         (C_SET_RID_CODE): Define.
205         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
206         (c_lex_one_token): Add cast to avoid warning.
207         (c_parser_objc_type_name): Rename local typename to type_name.
208         (check_no_duplicate_clause): Change code parameter to enum
209         omp_clause_code.
210         (c_parser_omp_var_list_parens): Change kind parameter to enum
211         omp_clause_code.
212         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
213         c_parser_omp_list_var_parens.
214         (c_parser_omp_threadprivate): Likewise.
215         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
216         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
217         * c-format.c (NO_FMT): Define.
218         (printf_length_specs): Use NO_FMT.
219         (asm_fprintf_length_specs): Likewise.
220         (gcc_diag_length_specs): Likewise.
221         (scanf_length_specs): Likewise.
222         (strfmon_length_specs): Likewise.
223         (gcc_gfc_length_specs): Likewise.
224         (printf_flag_specs): Change 0 to STD_C89.
225         (asm_fprintf_flag_specs): Likewise.
226         (gcc_diag_flag_specs): Likewise.
227         (gcc_cxxdiag_flag_specs): Likewise.
228         (scanf_flag_specs): Likewise.
229         (strftime_flag_specs): Likewise.
230         (strfmon_flag_specs): Likewise.
231         (print_char_table): Likewise.
232         (asm_fprintf_char_table): Likewise.
233         (gcc_diag_char_table): Likewise.
234         (gcc_tdiag_char_table): Likewise.
235         (gcc_cdiag_char_table): Likewise.
236         (gcc_cxxdiag_char_table): Likewise.
237         (gcc_gfc_char_table): Likewise.
238         (scan_char_table): Likewise.
239         (time_char_table): Likewis.
240         (monetary_char_table): Likewise.
241         * c-format.h (BADLEN): Likewise.
242
243 2008-06-21  Ian Lance Taylor  <iant@google.com>
244
245         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
246         Define END_OF_BASE_TREE_CODES around inclusion.
247         * tree.c (tree_code_type): New global array.
248         (tree_code_length, tree_code_name): Likewise.
249         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
250         $(lang_tree_files).
251         (all-tree.def, s-alltree): New targets.
252         (gencheck.h, s-gencheck): Remove.
253         (tree.o): Depend upon all-tree.def.
254         (build/gencheck.o): Remove gencheck.h dependency.
255         (mostlyclean): Don't remove gencheck.h.
256         * c-common.h (enum c_tree_code): Remove.
257         * c-lang.c (tree_code_type): Remove.
258         (tree_code_length, tree_code_name): Remove.
259         * gencheck.c (tree_codes): Include all-tree.def, rather than
260         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
261         after it is used.
262         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
263         than tree.def.
264         * cp/cp-tree.h (enum cplus_tree_code): Remove.
265         (operator_name_info): Size to MAX_TREE_CODES.
266         (assignment_operator_name_info): Likewise.
267         * cp/cp-lang.c (tree_code_type): Remove.
268         (tree_code_length, tree_code_name): Remove.
269         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
270         (assignment_operator_name_info): Likewise.
271         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
272         MAX_TREE_CODES.
273         * cp/mangle.c (write_expression): Likewise.
274         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
275         * fortran/f95-lang.c (tree_code_type): Remove.
276         (tree_code_length, tree_code_name): Remove.
277         * java/java-tree.h (enum java_tree_code): Remove.
278         * java/lang.c (tree_code_type): Remove.
279         (tree_code_length, tree_code_name): Remove.
280         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
281         * objc/objc-act.h (enum objc_tree_code): Remove.
282         * objc/objc-lang.c (tree_code_type): Remove.
283         (tree_code_length, tree_code_name): Remove.
284         * objcp/objcp-lang.c (tree_code_type): Remove.
285         (tree_code_length, tree_code_name): Remove.
286         * ada/ada-tree.h (enum gnat_tree_code): Remove.
287         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
288         * ada/misc.c (tree_code_type): Remove.
289         (tree_code_length, tree_code_name): Remove.
290
291 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
292
293         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
294         the grand_bitmap_obstack.
295
296 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
297
298         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
299         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
300         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
301         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
302         move_stmt_r, new_label_mapper): Likewise.
303         * tree-complex.c (cvc_lookup): Likewise.
304         * tree-dfa.c (create_function_ann): Likewise.
305         * tree-dump.c (dump_register): Likewise.
306         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
307         find_phi_replacement_condition): Likewise.
308         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
309         tree_function_versioning): Likewise.
310         * tree-into-ssa.c (cmp_dfsnum): Likewise.
311         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
312         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
313         get_nonlocal_debug_decl, convert_nonlocal_reference,
314         convert_nonlocal_omp_clauses, get_local_debug_decl,
315         convert_local_reference, convert_local_omp_clauses,
316         convert_nl_goto_reference, convert_nl_goto_receiver,
317         convert_tramp_reference, convert_call_expr): Likewise.
318         * tree-outof-ssa.c (contains_tree_r): Likewise.
319         * tree-parloops.c (reduction_phi, initialize_reductions,
320         eliminate_local_variables_1, add_field_for_reduction,
321         add_field_for_name, create_phi_for_local_result,
322         create_call_for_reduction_1, create_loads_for_reductions,
323         create_stores_for_reduction, create_loads_and_stores_for_name):
324         Likewise.
325         * tree-phinodes.c (allocate_phi_node): Likewise.
326         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
327         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
328         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
329         * tree-ssa-coalesce.c (compare_pairs): Likewise.
330         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
331         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
332         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
333         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
334         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
335         vn_nary_op_insert): Likewise.
336         * tree-ssa.c (redirect_edge_var_map_add,
337         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
338         * tree-vectorizer.c (vectorize_loops): Likewise.
339         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
340         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
341         tree_cons_stat, build1_stat, build_variant_type_copy,
342         decl_init_priority_lookup, decl_fini_priority_lookup,
343         decl_priority_info, decl_restrict_base_lookup,
344         decl_restrict_base_insert, decl_debug_expr_lookup,
345         decl_debug_expr_insert, decl_value_expr_lookup,
346         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
347         type_hash_add, get_file_function_name, tree_check_failed,
348         tree_not_check_failed, tree_range_check_failed,
349         omp_clause_range_check_failed, build_omp_clause,
350         build_vl_exp_stat): Likewise.
351         * value-prof.c (gimple_histogram_value,
352         gimple_duplicate_stmt_histograms): Likewise.
353         * var-tracking.c (attrs_list_insert, attrs_list_copy,
354         unshare_variable, variable_union_info_cmp_pos, variable_union,
355         dataflow_set_different_1, dataflow_set_different_2,
356         vt_find_locations, variable_was_changed, set_variable_part,
357         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
358         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
359         section_entry_hash, object_block_entry_eq,
360         object_block_entry_hash, create_block_symbol,
361         initialize_cold_section_name, default_function_rodata_section,
362         strip_reg_name, set_user_assembler_name, const_desc_eq,
363         build_constant_desc, output_constant_def, lookup_constant_def,
364         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
365         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
366         default_internal_label): Likewise.
367         * varray.c (varray_init, varray_grow): Likewise.
368         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
369
370 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
371
372         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
373         operators for "test" insn.  Macroize insn using SWI mode macro.
374         (*jcc_fused_2): Ditto.
375         (*jcc_fused_3): Macroize insn using SWI mode macro.
376         (*jcc_fused_4): Ditto.
377
378 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
379
380         * tree-ssa-pre.c: Fix typo in comment.
381         (init_antic, fini_antic): Add explicit funtions for
382         initializing and deinitializing ANTIC and AVAIL sets.
383         (create_expression_by_pieces): Fix typo in comment.
384         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
385         (execute_pre): Eventually dump details about ANTIC_IN.
386
387 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
388
389         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
390         * gcc.c (translate_options, init_spec, store_arg, read_specs,
391         add_to_obstack, file_at_path, find_a_file, execute,
392         add_preprocessor_option, add_assembler_option, add_linker_option,
393         process_command, insert_wrapper, do_option_spec, do_self_spec,
394         spec_path, do_spec_1, is_directory, main, used_arg,
395         getenv_spec_function): Likewise.
396         * tlink.c (symbol_hash_lookup, file_hash_lookup,
397         demangled_hash_lookup, symbol_push, file_push, frob_extension):
398         Likewise.
399
400 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
401
402         * doc/rtl.texi: Updated subreg section.
403
404 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
405
406         PR c++/36523
407         * cgraphunit.c (cgraph_process_new_functions): Don't clear
408         node->needed and node->reachable.
409         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
410         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
411         (expand_task_call): Don't call expand_task_copyfn.
412         (expand_task_copyfn): Renamed to...
413         (finalize_task_copyfn): ... this.
414
415 2008-06-19  Jan Hubicka  <jh@suse.cz>
416
417         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
418         clobbering framepointer.
419
420 2008-06-19  Jan Hubicka  <jh@suse.cz>
421
422         * tree-optimize.c (execute_early_local_optimizations): Set
423         cgraph_state only at first invocation.
424
425 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
426
427         * system.h (-Wc++-compat): Activate as a warning, no an error.
428
429 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
430
431         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
432         instead of "#" in insn asm template.
433         (*jcc_fused_2): Ditto.
434
435 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
436
437         * config/i386/i386.h (ix86_tune_indices)
438         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
439         (TARGET_FUSE_CMP_AND_BRANCH): New define.
440         * config/i386/i386.md (*jcc_fused_1): New insn pattern
441         (*jcc_fused_2): Ditto.
442         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
443         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
444         (print operand): Handle 'E' and 'e' code.
445
446 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
447
448         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
449         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
450         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
451
452 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
453
454         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
455         node->decl.
456         (cgraph_expand_function): Use local copy of decl.
457         (cgraph_expand_all_functions): Remove redundant initialization of
458         order_pos.
459         (cgraph_optimize): Reword internal_error message.
460
461 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
462
463         * arm-protos.h (arm_return_in_memory): Remove public
464         arm_return_in_memory() prototype.
465         * arm.c (arm_return_in_memory): Add static prototype, add target
466         hook macro, change definition and comments.
467         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
468
469 2008-06-19  Ben Elliston  <bje@au.ibm.com>
470
471         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
472         real.c: Remove references to IEEE 754R.
473         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
474         * doc/libgcc.texi (Decimal float library routines): Likewise.
475
476 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
477
478         * targhooks.h (struct gcc_target): New member unwind_word_mode.
479         (default_unwind_word_mode): Add prototype.
480         * targhooks.c (default_unwind_word_mode): New function.
481         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
482         instead of word_mode.
483         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
484         (TARGET_INITIALIZER): Use it.
485
486         * c-common.c (handle_mode_attribute): Support "unwind_word"
487         mode attribute.
488         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
489
490         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
491         word_mode to access SjLj_Function_Context member "data".
492         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
493         conversion from targetm.eh_return_filter_mode () to
494         targetm.unwind_word_mode () if they differ.
495
496         * builtin-types.def (BT_UNWINDWORD): New primitive type.
497         (BT_FN_UNWINDWORD_PTR): New function type.
498         (BT_FN_WORD_PTR): Remove.
499         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
500         * except.c (expand_builtin_extend_pointer): Convert pointer to
501         targetm.unwind_word_mode () instead of word_mode.
502
503         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
504         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
505         (spu_unwind_word_mode): New function.
506         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
507         (TARGET_UNWIND_WORD_MODE): Define.
508         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
509
510 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
511
512         * config/spu/spu.c (reg_align): Remove.
513         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
514         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
515         (spu_split_store): Likewise.
516
517 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
518
519         * gcc/tree-vn.c: Fix typo in comment.
520
521 2008-06-18  Jan Hubicka  <jh@suse.cz>
522
523         * cgraphunit.c (cgraph_optimize): Output debug info when doing
524         toplevel reorder too.
525
526 2008-06-18  Jan Hubicka  <jh@suse.cz>
527
528         * c-opts.c (c_common_post_options): PCH is not compatible with
529         no-unit-at-a-time.
530         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
531         -fno-toplevel-reorder by default now.
532
533 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
534
535         PR documentation/30739
536         * doc/install.texi (Prerequisites): Document dependency on awk.
537
538 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
539             Ian Lance Taylor  <iant@google.com>
540
541         PR rtl-optimization/35604
542         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
543         only want to change jump destinations, not eventual label comparisons.
544
545 2008-06-16  Jan Hubicka  <jh@suse.cz>
546
547         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
548         syntax errors.
549         (cgraph_analyze_function): Likewise.
550
551 2008-06-16  Jan Hubicka  <jh@suse.cz>
552
553         * cgraph.h (cgraph_mark_if_needed): New function.
554         * cgraphunit.c (cgraph_mark_if_needed): New function.
555         * c-decl.c (duplicate_decl): Use it.
556
557 2008-06-16  Jan Hubicka  <jh@suse.cz>
558
559         * cgraph.c (cgraph_add_new_function): When in expansion state, do
560         lowering.
561
562 2008-06-16  Jan Hubicka  <jh@suse.cz>
563
564         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
565
566 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
567             Kazu Hirata  <kazu@codesourcery.com>
568             Maxim Kuvyrkov  <maxim@codesourcery.com
569
570         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
571         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
572         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
573         EXTRA_SPEC_FUNCTIONS.
574         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
575         (DRIVER_SELF_SPECS): Adjust.
576         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
577         * config/mips/st.h, config/mips/t-st: New.
578         * config/mips/driver-native.c, config/mips/x-native: New.
579         * doc/invoke.texi (MIPS): Document 'native' value for -march and
580         -mtune options.
581
582 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
583
584         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
585         from it.
586         (ISA_HAS_FP_CONDMOVE): New macro.
587         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
588         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
589         (ISA_HAS_NMADD3_NMSUB3): New macro.
590         * config/mips/mips.c (mips_rtx_costs): Update.
591         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
592         compiling for ST Loongson 2E/2F.
593         (madd<mode>): Rename to madd4<mode>.  Update.
594         (madd3<mode>): New pattern.
595         (msub<mode>): Rename to msub4<mode>.  Update.
596         (msub3<mode>): New pattern.
597         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
598         (nmadd3<mode>): New pattern.
599         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
600         (nmadd3<mode>_fastmath): New pattern.
601         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
602         (nmsub3<mode>): New pattern.
603         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
604         (nmsub3<mode>_fastmath): New pattern.
605         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
606
607 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
608
609         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
610         (DF_REF_INSN_INFO): New.
611         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
612         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
613         with a NULL DF_REF_INSN_INFO.
614         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
615         DF_INSN_SET.
616         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
617         DF_INSN_INFO_EQ_USES): New.
618         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
619         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
620         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
621         * df-core.c: Update comment for above changes.
622         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
623         DF_INSN_UID_* macros.
624         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
625         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
626         insn rtx.  Update all callers.
627         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
628         df_ref_create_structure, df_insn_refs_collect): Likewise.
629         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
630         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
631         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
632         macros to access the insn refs.
633         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
634         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
635         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
636         for accessing the refs.
637         (try_fwprop_subst): Likewise.
638         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
639         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
640         for accessing the refs.
641         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
642         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
643         to look at the insn refs.
644         (record_uses): Likewise.
645         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
646         function anymore.
647         (mark_artificial_uses): Don't mark_insn for artificial refs.
648         (mark_reg_rependencies): Likewise.
649
650         * doc/rtl.texi: Remove documentation of ADDRESSOF.
651
652 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
653
654         * configure: Regenerate.
655
656 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
657
658         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
659         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
660         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
661
662 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
663
664         * config/avr/avr.c (avr_mcu_t): Add attiny167.
665         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
666         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
667
668 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
669
670         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
671         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
672         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
673
674 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
675
676         * tree-ssa-sccvn.c: Fix format of comments.
677
678 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
679
680         * cgraph.c: Remove unneeded forward declarations of eq_node()
681         and hash_node().
682
683 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
684
685         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
686         REG_RETVAL notes.
687         (see_update_relevancy): Likewise.
688         * fwprop.c (try_fwprop_subst): Likewise.
689         * rtlanal.c (noop_move_p): Likewise.
690         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
691         notes to non-existing libcall blocks.
692         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
693         Remove orig_set.
694         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
695         (dead_libcall_p): Remove.
696         (delete_trivially_dead_insns): Don't use it.
697         * web.c (union_defs): Remove comment about keeping nops.
698         * gcse.c (hash_scan_insn): Don't take libcall pointers.
699         (compute_hash_table_work): Don't track libcall notes.
700         (do_local_cprop): Don't take libcall pointers.  Don't update
701         libcall notes.
702         (adjust_libcall_notes): Deleted.
703         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
704         ever have existed in the first place).
705         (replace_store_insn): Don't try to remove libcall notes.
706         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
707         (resolve_reg_notes): Don't call them.
708         (resolve_simple_move): Likewise.
709         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
710         Don't remove REG_RETVAL notes.
711         * emit-rtl.c (try_split): Don't update libcall notes.
712         (emit_copy_of_insn_after): Dito.
713         * cselib.c (cselib_current_insn_in_libcall): Remove.
714         (cselib_process_insn): Don't set/clear it.
715         (new_elt_loc_list): Don't record it.
716         (cselib_init): Don't initialize it.
717         * cselib.c (struct elt_loc_list): Remove in_libcall field.
718         * loop-invariant.c (find_invariant_insn): Don't look for libcall
719         notes.
720         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
721         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
722         (init_deps): Don't initialize it.
723         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
724         * combine.c (delete_noop_moves): Don't update libcall notes.
725         (can_combine_p): Remove now pointless #if 0 block.
726         (try_combine): Remove another obsolete #if 0 block.
727         (distribute_notes): Don't distribute libcall notes.
728         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
729         * dce.c (libcall_dead_p): Remove.
730         (delete_unmarked_insns): Don't handle libcall blocks.
731         (preserve_libcall_for_dce): Remove.
732         (prescan_insns_for_dce): Don't special-case libcall block insns.
733         * reload1 (reload): Don't handle libcall notes. 
734         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
735         documentation.
736
737 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
738
739         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
740         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
741         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
742
743 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
744
745         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
746         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
747         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
748
749 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
750
751         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
752
753 2008-06-16  Ira Rosen  <irar@il.ibm.com>
754
755         PR tree-optimization/36493
756         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
757         the arguments list. Use VECTYPE to create vector pointer.
758         (vectorizable_store): Fail if accesses through a pointer to vectype
759         do not alias the original memory reference operands.
760         Call vect_create_data_ref_ptr without the removed argument.
761         (vectorizable_load): Likewise.
762         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
763         removed argument.
764
765 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
766
767         PR target/36336
768         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
769         reg_equiv_constant.
770
771 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
772
773         * config/mips/loongson2ef.md: New file.
774         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
775         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
776         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
777         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
778         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
779         and loongson_2f.
780         (loongson2ef.md): New include.
781         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
782         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
783         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
784         (loongson_gt_<mode>, loongson_extract_halfword)
785         (loongson_insert_halfword_0, loongson_insert_halfword_2)
786         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
787         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
788         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
789         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
790         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
791         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
792         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
793         (vec_interleave_low<mode>): Define type attribute.
794         * config/mips/mips.c (mips_ls2): New static variable.
795         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
796         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
797         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
798         Implement target scheduling hooks.
799         (mips_multipass_dfa_lookahead): Update to handle tuning for
800         Loongson 2E/2F.
801         (mips_sched_init): Initialize data for Loongson scheduling.
802         (mips_ls2_variable_issue): New static function.
803         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
804         Add sanity check.
805         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
806         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
807         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
808         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
809         Handle ST Loongson 2E/2F cores.
810         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
811
812 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
813
814         * omp-low.c (extract_omp_for_data): Fix comment typo.
815         * c.opt: Fix typo.
816
817 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
818
819         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
820         FIXME note about gcc/config.guess.
821         * doc/options.texi (Option file format): Remove non-ASCII bytes.
822         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
823         * doc/cppopts.texi: Likewise.
824         * doc/extend.texi: Likewise.
825         * doc/gcc.texi: Likewise.
826         * doc/gccint.texi: Likewise.
827         * doc/gcov.texi: Likewise.
828         * doc/gty.texi: Likewise.
829         * doc/hostconfig.texi: Likewise.
830         * doc/install.texi: Likewise.
831         * doc/invoke.texi: Likewise.
832         * doc/loop.texi: Likewise.
833         * doc/makefile.texi: Likewise.
834         * doc/md.texi: Likewise.
835         * doc/passes.texi: Likewise.
836         * doc/tm.texi: Likewise.
837         * doc/tree-ssa.texi: Likewise.
838         * doc/trouble.texi: Likewise.
839
840 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
841             Nathan Sidwell  <nathan@codesourcery.com>
842             Maxim Kuvyrkov  <maxim@codesourcery.com>
843             Richard Sandiford  <rdsandiford@googlemail.com>
844         
845         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
846         * config/mips/mips-protos.h (mips_expand_vector_init): New.
847         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
848         builtins.
849         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
850         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
851         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
852         V8QImode cases.
853         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
854         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
855         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
856         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
857         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
858         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
859         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
860         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
861         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
862         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
863         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
864         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
865         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
866         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
867         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
868         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
869         (mips_builtins): Add Loongson builtins.
870         (mips_loongson_2ef_bdesc): New.
871         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
872         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
873         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
874         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
875         New.
876         (mips_expand_vector_init): New.
877         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
878         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
879         if appropriate.
880         * config/mips/mips.md: Add unspec numbers for Loongson
881         builtins.  Include loongson.md.
882         (MOVE64): Include Loongson vector modes.
883         (SPLITF): Include Loongson vector modes.
884         (HALFMODE): Handle Loongson vector modes.
885         * config/mips/loongson.md: New.
886         * config/mips/loongson.h: New.
887         * config.gcc: Add loongson.h header for mips*-*-* targets.
888         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
889
890 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
891
892         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
893         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
894         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
895         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
896         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
897         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
898         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
899         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
900         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
901         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
902         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
903         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
904         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
905         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
906         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
907         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
908         Remove use_fixproto=yes.
909         (ia64*-*-hpux*): Remove comment about using fixproto.
910         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
911
912 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
913
914         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
915         library rebuilds.
916         * configure: Regenerate.
917
918 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
919
920         PR middle-end/36520
921         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
922         before evaluating it.
923
924 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
925
926         PR c/36507
927         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
928         nested inline functions.
929         (start_decl, start_function): Don't invert DECL_EXTERNAL
930         for nested inline functions.
931
932 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
933
934         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
935         splits that must be made for correctness.
936
937 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
938
939         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
940         (AVAIL_NON_MIPS16): Likewise.
941         (mips_builtin_description): Replace target_flags with a predicate.
942         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
943         (dspr2_32): New availability predicates.
944         (MIPS_BUILTIN): New macro.
945         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
946         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
947         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
948         Replace the TARGET_FLAGS parameters with AVAIL parameters.
949         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
950         (mips_dsp_32only_bdesc): Merge into...
951         (mips_builtins): ...this new array.
952         (mips_bdesc_map, mips_bdesc_arrays): Delete.
953         (mips_init_builtins): Update after above changes.
954         (mips_expand_builtin_1): Merge into...
955         (mips_expand_builtin): ...here and update after above changes.
956
957 2008-06-12  Paul Brook  <paul@codesourcery.com>
958
959         * longlong.h (__arm__): Define count_leading_zeros.
960         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
961         (clzsi2, clzdi2): New functions.
962         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
963         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
964         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
965         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
966         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
967         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
968         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
969         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
970         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
971         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
972
973 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
974
975         * config/m68k/m68k.c (m68k_tune_flags): New.
976         (override_options): Compute m68k_tune_flags.
977         (MULL_COST, MULW_COST): Update for various variants of CFV2.
978         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
979
980 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
981
982         PR middle-end/36506
983         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
984
985 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
986
987         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
988         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
989
990 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
991
992         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
993         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
994
995 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
996
997         PR middle-end/36506
998         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
999         reductions.
1000
1001 2008-06-12  Richard Guenther  <rguenther@suse.de>
1002
1003         PR tree-optimization/36345
1004         * tree-flow.h (struct ptr_info_def): Align escape_mask,
1005         add memory_tag_needed flag.
1006         (may_alias_p): Declare.
1007         * tree-ssa-alias.c (may_alias_p): Export.
1008         (set_initial_properties): Use memory_tag_needed flag.
1009         (update_reference_counts): Likewise.
1010         (reset_alias_info): Reset memory_tag_needed flag.
1011         (create_name_tags): Check memory_tag_needed flag.
1012         (dump_points_to_info_for): Dump it.
1013         * tree-ssa-structalias.c (struct variable_info): Remove
1014         directly_dereferenced flag.
1015         (new_var_info): Do not initialize it.
1016         (process_constraint_1): Do not set it.
1017         (update_alias_info): Set is_dereferenced flag.
1018         (set_uids_in_ptset): Use may_alias_p.
1019         (set_used_smts): Check memory_tag_needed flag.
1020         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
1021         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
1022         memory_tag_needed flag.
1023         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
1024         from broken design.
1025
1026 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
1027
1028         * config/i386/i386.c (ix86_compute_frame_layout): Disable
1029         red zone for w64 abi.
1030         (ix86_expand_prologue): Likewise.
1031         (ix86_force_to_memory): Likewise.
1032         (ix86_free_from_memory): Likewise.
1033
1034 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
1035
1036         PR target/36425
1037         * config/rs6000/rs6000.c (rs6000_override_options): Set
1038         rs6000_isel conditionally to the absence of comand line override.
1039         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
1040         Remove duplicate rs6000_isel setting.
1041         * config/rs6000/eabispe.h: Ditto.
1042
1043 2008-06-11  Richard Guenther  <rguenther@suse.de>
1044
1045         * alias.c (get_alias_set): Use the element alias-set for arrays.
1046         (record_component_aliases): For arrays and vectors do nothing.
1047         * c-common.c (strict_aliasing_warning): Handle the cases
1048         of alias set zero explicitly.
1049         * Makefile.in (dfp.o-warn): Add -Wno-error.
1050
1051 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1052
1053         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
1054         tune_32 tune_64.
1055         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
1056         tune_32 tune_64 to supported_defaults.  Allow values not
1057         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
1058         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
1059         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
1060         with_cpu_64 to generic for 64-bit-supporting configurations, not
1061         with_cpu.  Remove FIXMEs.
1062         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
1063         --with-arch-64, --with-tune-32, --with-tune-64): Document.
1064         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
1065         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
1066         arch_32 and arch_64.
1067
1068 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1069             Olivier Hainque  <hainque@adacore.com>
1070
1071         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
1072         Use DECL_SIZE_UNIT to retrieve the size of the field.
1073
1074 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1075
1076         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
1077         with function calls after declarations.  Lay out
1078         neon_float_type_node before further use.
1079
1080 2008-06-11  Richard Guenther  <rguenther@suse.de>
1081
1082         * tree-flow.h (may_point_to_global_var): Declare.
1083         * tree-ssa-alias.c (may_point_to_global_var): New function.
1084         * tree-ssa-sink.c (is_hidden_global_store): Use it.
1085
1086 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
1087
1088         * configure.ac: Teach that fido supports .debug_line.
1089         * configure: Regenerate.
1090
1091 2008-06-10  Tom Tromey  <tromey@redhat.com>
1092
1093         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
1094         debug hook.
1095
1096 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1097
1098         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
1099         (encode_decimal64, decode_decimal64, encode_decimal128,
1100         decode_decimal128): Reverse order of 32-bit parts of value if host
1101         and target endianness differ.
1102
1103 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
1104
1105         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
1106         Avoid division by 0.
1107         (tree_mod_pow2_value_transform): Likewise.
1108         (tree_ic_transform): Likewise.
1109         (tree_stringops_transform): Likewise.
1110         (tree_mod_subtract_transform): Likewise.
1111         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
1112         (copy_edges_for_bb): Likewise.
1113         (initialize_cfun): Likewise.
1114
1115 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1116
1117         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
1118         nonmemory_operand. Add "N" operand constraint.
1119         (*btsi): Ditto.
1120         (*jcc_btdi_mask_rex64): New instruction and split pattern.
1121         (*jcc_btsi_mask): Ditto.
1122         (*jcc_btsi_mask_1): Ditto.
1123
1124 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1125
1126         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
1127         TYPE_CANONICAL for copied element type.
1128
1129 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1130
1131         PR target/36473
1132         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
1133         Add m_CORE2 and m_GENERIC.
1134         * config/i386/predicates.md (bt_comparison_operator): New predicate.
1135         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
1136         (*btsi): Ditto.
1137         (*jcc_btdi_rex64): New instruction and split pattern.
1138         (*jcc_btsi): Ditto.
1139         (*jcc_btsi_1): Ditto.
1140         (*btsq): Fix Intel asm dialect operand order.
1141         (*btrq): Ditto.
1142         (*btcq): Ditto.
1143
1144 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
1145
1146         PR middle-end/36447
1147         * simplify-rtx.c (simplify_subreg): Add check for shift count 
1148         greater than size.
1149
1150 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
1151
1152         * doc/md.texi: Synchronize with later constraints.md change.
1153         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
1154         with a C implementation.
1155         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
1156         MFLO handling.
1157         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
1158         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
1159         when moving to and from MD_REGNUM.
1160         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
1161         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
1162         Handle byte and halfword moves.
1163         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
1164         separately.
1165         * config/mips/constraints.md (h): Turn into NO_REGS.
1166         (l, x): Update documentation.
1167         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
1168         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
1169         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
1170         (HILO): New mode iterator.
1171         (MOVE128): Add TI.
1172         (any_div): New code iterator.
1173         (u): Extend code attribute to div and udiv.
1174         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
1175         d_operand in the splitters.  Remove redundant CONST_INT checks.
1176         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
1177         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
1178         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
1179         accordingly, using normal moves instead of unspecs to move LO into
1180         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
1181         (<u>mulsidi3): Handle expansion in C code.
1182         (<u>mulsidi3_32bit_internal): Rename to...
1183         (<u>mulsidi3_32bit): ...this.
1184         (<u>mulsidi3_32bit_r4000): Fix insn separator.
1185         (*<u>mulsidi3_64bit): Rename to...
1186         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
1187         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
1188         to set LO and HI to the multiplication result.  Use a normal move
1189         for MFLO and an unspec for MFHI.
1190         (*<u>mulsidi3_64bit_parts): Replace with...
1191         (<u>mulsidi3_64bit_hilo): ...this new instruction.
1192         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
1193         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
1194         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
1195         instead of HI.  Split the instruction into a separate multiplication
1196         and MFHI if !TARGET_FIX_R4000.
1197         (<su>muldi3_highpart): Likewise.
1198         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
1199         and the "=h" clobber.
1200         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
1201         (<u>mulditi3): New expander.
1202         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
1203         (madsi): Remove "=h" clobber.
1204         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
1205         Force the modulus result to be a GPR and split the instruction into
1206         a division followed by an MFHI after reload.
1207         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
1208         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
1209         the MIPS16 HIGH define_split.
1210         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
1211         of acc<->gpr moves to "multi".
1212         (*movdi_64bit): Replace the single "x" alternative with
1213         alternatives for moving into and out of "a".
1214         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
1215         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
1216         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
1217         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
1218         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
1219         (movti): New expander.
1220         (*movti, *movti_mips16): New insns.
1221         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
1222         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
1223         (mthi<GPR:mode>_<HILO:mode>): Likewise.
1224         * config/mips/predicates.md (fpr_operand): Delete.
1225         (d_operand): New predicate.
1226
1227 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
1228
1229         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
1230         failure on some Bourne shells.
1231         (x86_64-*-*): Ditto.
1232
1233 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
1234
1235         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
1236
1237 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1238
1239         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
1240         (sparc-sun-solaris2*): Likewise.
1241
1242 2008-06-09  Arnaud Charlet  <charlet@adacore.com
1243
1244         * doc/install.texi: Update requirements to build the Ada compiler.
1245
1246 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
1247
1248         * df-scan.c (struct df_scan_problem_data): Remove the
1249         mw_link_pool alloc pool.
1250         (df_scan_free_internal): Don't free it.
1251         (df_scan_alloc): Don't allocate it.
1252         * df.h (struct df_link): Update comment.
1253
1254 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1255
1256         * except.h: Correct checks for when SJLJ exceptions must be used.
1257
1258 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1259
1260         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
1261         default.
1262         
1263 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
1264
1265         PR tree-optimization/36218
1266         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
1267         configure for the build system.
1268         (BUILD_LDFLAGS): Define.
1269         * configure: Regenerate.
1270         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
1271
1272 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
1273
1274         PR target/36424
1275         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
1276         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
1277         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
1278
1279 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
1280
1281         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
1282
1283 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
1284
1285         * config.gcc (Obsolete configurations): Remove list of
1286         configurations.
1287         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
1288         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
1289         targets matched by those patterns.
1290         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
1291         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
1292         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
1293         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
1294         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
1295         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1296         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
1297         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
1298         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
1299         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
1300         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
1301         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
1302         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
1303         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
1304         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
1305         Make code for Solaris 7 and greater unconditional for Solaris.
1306         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
1307         Remove --with-* handling.
1308         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
1309         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
1310         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
1311         LINK_OS_WINDISS_SPEC): Remove.
1312         * config/rs6000/sysv4.opt (mwindiss): Remove.
1313         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
1314         * configure: Regenerate.
1315         * doc/cpp.texi: Don't mention BeOS.
1316         * doc/extend.texi (interrupt): Don't mention MS1.
1317         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
1318         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
1319         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
1320         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
1321         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
1322         Remove.
1323         * doc/invoke.texi (MT Options): Remove.
1324         (-mwindiss): Remove.
1325         (CRIS Options): Remove cris-axis-aout references.
1326         (HPPA Options): Don't mention hppa1.1-*-pro.
1327         * doc/md.texi: (MorphoTech family): Remove.
1328         * libgcc2.c: Don't handle UWIN.
1329         * config/alpha/t-unicosmk: Remove.
1330         * config/alpha/unicosmk.h: Remove.
1331         * config/arm/kaos-arm.h: Remove.
1332         * config/arm/kaos-strongarm.h: Remove.
1333         * config/arm/strongarm-coff.h: Remove.
1334         * config/arm/strongarm-elf.h: Remove.
1335         * config/arm/strongarm-pe.h: Remove.
1336         * config/arm/t-strongarm-pe: Remove.
1337         * config/arm/t-xscale-coff: Remove.
1338         * config/arm/t-xscale-elf: Remove.
1339         * config/arm/xscale-coff.h: Remove.
1340         * config/arm/xscale-elf.h: Remove.
1341         * config/chorus.h: Remove.
1342         * config/cris/aout.h: Remove.
1343         * config/cris/aout.opt: Remove.
1344         * config/cris/t-aout: Remove.
1345         * config/i386/beos-elf.h: Remove.
1346         * config/i386/kaos-i386.h: Remove.
1347         * config/i386/ptx4-i.h: Remove.
1348         * config/i386/sco5.h: Remove.
1349         * config/i386/sco5.opt: Remove.
1350         * config/i386/sysv4-cpp.h: Remove.
1351         * config/i386/sysv5.h: Remove.
1352         * config/i386/t-beos: Remove.
1353         * config/i386/t-sco5: Remove.
1354         * config/i386/t-uwin: Remove.
1355         * config/i386/uwin.asm: Remove.
1356         * config/i386/uwin.h: Remove.
1357         * config/kaos.h: Remove.
1358         * config/mips/windiss.h: Remove.
1359         * config/mt: Remove directory.
1360         * config/pa/pa-osf.h: Remove.
1361         * config/pa/pa-pro-end.h: Remove.
1362         * config/pa/t-pro: Remove.
1363         * config/ptx4.h: Remove.
1364         * config/rs6000/beos.h: Remove.
1365         * config/rs6000/kaos-ppc.h: Remove.
1366         * config/rs6000/t-beos: Remove.
1367         * config/rs6000/windiss.h: Remove.
1368         * config/sh/kaos-sh.h: Remove.
1369         * config/sol2-6.h: Remove.
1370         * config/sparc/sol26-sld.h: Remove.
1371         * config/sparc/sysv4-only.h: Remove.
1372         * config/vax/bsd.h: Remove.
1373         * config/vax/t-memfuncs: Remove.
1374         * config/vax/ultrix.h: Remove.
1375         * config/vax/vaxv.h: Remove.
1376         * config/windiss.h: Remove.
1377
1378 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1379
1380         PR rtl-optimization/36438
1381         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
1382         for vector shifts with constant scalar shift operands.
1383
1384 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
1385
1386         * doc/invoke.texi: Document -march=xlr.
1387         * config/mips/xlr.md: New file.
1388         * config/mips/mips.md: Include it.
1389         (cpu): Add "xlr".
1390         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
1391         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
1392         (mips_rtx_cost_data): Likewise.
1393
1394 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
1395
1396         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
1397         PRE_INC and PRE_DEC cases.
1398
1399 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1400
1401         PR rtl-optimization/36419
1402         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
1403         the emitting jump insn.
1404
1405         PR target/36362
1406         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
1407         is not bool, boolify the whole *expr_p and convert to the desired type.
1408
1409 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1410
1411         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
1412         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
1413         Add omp_private_outer_ref hook, add another argument to
1414         omp_clause_default_ctor hook.
1415         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1416         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1417         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
1418         hook_tree_tree_tree_tree_null.
1419         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
1420         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
1421         * hooks.c (hook_tree_tree_tree_tree_null): New function.
1422         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
1423         * tree.def (OMP_TASK): New tree code.
1424         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
1425         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
1426         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
1427         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
1428         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
1429         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
1430         OMP_CLAUSE_COLLAPSE_EXPR): Define.
1431         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1432         (OMP_DIRECTIVE_P): Add OMP_TASK.
1433         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1434         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1435         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1436         and OMP_CLAUSE_UNTIED entries.
1437         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
1438         num_ops to 2.
1439         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1440         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1441         * tree-pretty-print.c (dump_omp_clause): Handle
1442         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1443         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1444         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1445         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
1446         warning about unsigned iterators.  Change decl/init/cond/incr
1447         arguments to TREE_VECs, check arguments for all collapsed loops.
1448         (c_finish_omp_taskwait): New function.
1449         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1450         ws_clauses.
1451         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
1452         default_function_array_conversion on init.  Add par_clauses argument.
1453         If decl is present in parallel's lastprivate clause, change it to
1454         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1455         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
1456         collapse count in clauses.
1457         (c_parser_omp_for, c_parser_omp_parallel): Adjust
1458         c_parser_omp_for_loop callers.
1459         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1460         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1461         (c_parser_omp_clause_name): Handle collapse and untied clauses.
1462         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1463         functions.
1464         (c_parser_omp_clause_schedule): Handle schedule(auto).
1465         Include correct location in the error message.
1466         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1467         and PRAGMA_OMP_CLAUSE_UNTIED.
1468         (OMP_TASK_CLAUSE_MASK): Define.
1469         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1470         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1471         * tree-nested.c (convert_nonlocal_omp_clauses,
1472         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1473         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1474         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1475         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1476         OMP_CLAUSE_DECL.
1477         (conver_nonlocal_reference, convert_local_reference,
1478         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
1479         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1480         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1481         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1482         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1483         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
1484         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
1485         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
1486         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1487         OMP_CLAUSE_UNTIED.
1488         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
1489         * c-common.h (c_finish_omp_taskwait): New prototype.
1490         * gimple-low.c (lower_stmt): Handle OMP_TASK.
1491         * tree-parloops.c (create_parallel_loop): Create 1 entry
1492         vectors for OMP_FOR_{INIT,COND,INCR}.
1493         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1494         (make_edges): Handle OMP_TASK.
1495         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
1496         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1497         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
1498         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
1499         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1500         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1501         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1502         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1503         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
1504         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
1505         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
1506         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
1507         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
1508         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
1509         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
1510         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
1511         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
1512         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
1513         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
1514         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
1515         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
1516         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
1517         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
1518         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
1519         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
1520         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
1521         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
1522         original iterator is present in lastprivate clause or if
1523         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
1524         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1525         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
1526         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
1527         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
1528         if it is set, lookup var in outer contexts too.  Handle
1529         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
1530         to be implicitly determined firstprivate for task regions.
1531         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
1532         if it is set, lookup var in outer contexts too.  Set
1533         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
1534         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
1535         OMP_CLAUSE_UNTIED.  Take region_type as last argument
1536         instead of in_parallel and in_combined_parallel.
1537         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1538         Adjust callers.
1539         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
1540         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
1541         (new_omp_context): Set default_kind to
1542         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
1543         (omp_region_type): New enum.
1544         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
1545         fields, add region_type.
1546         (new_omp_context): Take region_type as argument instead of is_parallel
1547         and is_combined_parallel.
1548         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
1549         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
1550         ctx->is_combined_parallel checks.
1551         (gimplify_omp_task): New function.
1552         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1553         OMP_CLAUSE_UNTIED.
1554         * omp-low.c (extract_omp_for_data): Use schedule(static)
1555         for schedule(auto).  Handle pointer and unsigned iterators.
1556         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
1557         Add loops argument.  Extract data for collapsed OMP_FOR loops.
1558         (expand_parallel_call): Assert sched_kind isn't auto,
1559         map runtime schedule to index 3.
1560         (struct omp_for_data_loop): New type.
1561         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
1562         Add loop, loops, collapse and iter_type fields.
1563         (workshare_safe_to_combine_p): Disallow combined for if
1564         iter_type is unsigned long long.  Don't combine collapse > 1 loops
1565         unless all bounds and steps are constant.  Adjust extract_omp_for_data
1566         caller.
1567         (expand_omp_for_generic): Handle pointer, unsigned and long long
1568         iterators.  Handle collapsed OMP_FOR loops.  Adjust
1569         for struct omp_for_data changes.  If libgomp function doesn't return
1570         boolean_type_node, add comparison of the return value with 0.
1571         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
1572         pointer, unsigned and long long iterators.  Adjust for struct
1573         omp_for_data changes.
1574         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
1575         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
1576         unsigned long long.  Allocate loops array, pass it to
1577         extract_omp_for_data.  For collapse > 1 loops use always
1578         expand_omp_for_generic.
1579         (omp_context): Add sfield_map and srecord_type fields.
1580         (is_task_ctx, lookup_sfield): New functions.
1581         (use_pointer_for_field): Use is_task_ctx helper.  Change first
1582         argument's type from const_tree to tree.  Clarify comment.
1583         In OMP_TASK disallow copy-in/out sharing.
1584         (build_sender_ref): Call lookup_sfield instead of lookup_field.
1585         (install_var_field): Add mask argument.  Populate both record_type
1586         and srecord_type if needed.
1587         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
1588         in srecord_type.
1589         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
1590         and DECL_FIELD_OFFSET.
1591         (scan_sharing_clauses): Adjust install_var_field callers.  For
1592         firstprivate clauses on explicit tasks allocate the var by value in
1593         record_type unconditionally, rather than by reference.
1594         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
1595         Use is_taskreg_ctx instead of is_parallel_ctx.
1596         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1597         (create_omp_child_function_name): Add task_copy argument, use
1598         *_omp_cpyfn* names if it is true.
1599         (create_omp_child_function): Add task_copy argument, if true create
1600         *_omp_cpyfn* helper function.
1601         (scan_omp_parallel): Adjust create_omp_child_function callers.
1602         Rename parallel_nesting_level to taskreg_nesting_level.
1603         (scan_omp_task): New function.
1604         (lower_rec_input_clauses): Don't run constructors for firstprivate
1605         explicit task vars which are initialized by *_omp_cpyfn*.  
1606         Pass outer var ref to omp_clause_default_ctor hook if
1607         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
1608         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
1609         OMP_CLAUSE_REDUCTION_INIT.
1610         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
1611         avoid duplicate setting of fields.  Handle
1612         OMP_CLAUSE_PRIVATE_OUTER_REF.
1613         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
1614         copy-out if TREE_READONLY, only copy-in.
1615         (expand_task_copyfn): New function.
1616         (expand_task_call): New function.
1617         (struct omp_taskcopy_context): New type.
1618         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
1619         New functions.
1620         (lower_omp_parallel): Rename to...
1621         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1622         Call create_task_copyfn if srecord_type is needed.  Adjust
1623         sender_decl type.
1624         (task_shared_vars): New variable.
1625         (check_omp_nesting_restrictions): Warn if work-sharing,
1626         barrier, master or ordered region is closely nested inside OMP_TASK.
1627         Add warnings for barrier if closely nested inside of work-sharing,
1628         ordered, or master region.
1629         (scan_omp_1): Call check_omp_nesting_restrictions even for
1630         GOMP_barrier calls.  Rename parallel_nesting_level to
1631         taskreg_nesting_level.  Handle OMP_TASK.
1632         (lower_lastprivate_clauses): Even if some lastprivate is found on a
1633         work-sharing construct, continue looking for them on parent parallel
1634         construct.
1635         (lower_omp_for_lastprivate): Add lastprivate clauses
1636         to the beginning of dlist rather than end.  Adjust for struct
1637         omp_for_data changes.
1638         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
1639         not after it.  Handle collapsed OMP_FOR loops, adjust for
1640         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
1641         (get_ws_args_for): Adjust extract_omp_for_data caller.
1642         (scan_omp_for): Handle collapsed OMP_FOR
1643         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1644         (lower_omp_single_simple): If libgomp function doesn't return
1645         boolean_type_node, add comparison of the return value with 0.
1646         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
1647         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
1648         (parallel_nesting_level): Rename to...
1649         (taskreg_nesting_level): ... this.
1650         (is_taskreg_ctx): New function.
1651         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
1652         of is_parallel_ctx.
1653         (execute_lower_omp): Rename parallel_nesting_level to
1654         taskreg_nesting_level.
1655         (expand_omp_parallel): Rename to...
1656         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1657         Call omp_task_call for OMP_TASK regions.
1658         (expand_omp): Adjust caller, handle OMP_TASK.
1659         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
1660
1661         * bitmap.c (bitmap_default_obstack_depth): New variable.
1662         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
1663         if argument is NULL and bitmap_default_obstack is already initialized.
1664         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
1665         at the end.
1666         * matrix-reorg.c (matrix_reorg): Likewise.
1667
1668 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
1669
1670         * config/i386/i386.md (*indirect_jump): Macroize using P
1671         mode iterator.  Remove !TARGET_64BIT from insn constraints.
1672         (*tablejump_1): Ditto.
1673         (*indirect_jump_rex64): Remove insn pattern.
1674         (*tablejump_1_rex64): Ditto.
1675         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
1676         and eh_return_si insn patterns.
1677
1678 2008-06-06  Richard Guenther  <rguenther@suse.de>
1679
1680         * tree-ssa-structalias.c (merge_smts_into): Remove.
1681         (find_what_p_points_to): Do not bother to compute the
1682         points-to set for pt_anything pointers.
1683         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1684         for pt_anything pointers is ok.
1685
1686 2008-06-06  Jan Hubicka  <jh@suse.cz>
1687
1688         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1689
1690 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1691
1692         * cgraph.c: Fix typos in comments.
1693         (cgraph_availability_names): Fix string typo.
1694         * fold-const.c: Fix typos in comments.
1695         (fold_binary): Fix typo in warning.
1696         * genautomata.c: Fix typos in comments.
1697         (check_presence_pattern_sets): Fix typo in local variable.
1698         (output_description): Fix typo in output.
1699         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1700         * hwint.h: Likewise.
1701         * matrix-reorg.c (check_allocation_function): Likewise.
1702         * omega.c (smooth_weird_equations): Likewise.
1703         * auto-inc-dec.c: Fix typos in comments.
1704         * bb-reorder.c: Likewise.
1705         * builtins.c: Likewise.
1706         * c-common.c: Likewise.
1707         * c-cppbuiltin.c: Likewise.
1708         * c-parser.c: Likewise.
1709         * c-pretty-print.c: Likewise.
1710         * cfgcleanup.c: Likewise.
1711         * cfgexpand.c: Likewise.
1712         * cfghooks.c: Likewise.
1713         * cfglayout.c: Likewise.
1714         * cfgloopmanip.c: Likewise.
1715         * cgraphunit.c: Likewise.
1716         * coverage.c: Likewise.
1717         * dbxout.c: Likewise.
1718         * df-byte-scan.c: Likewise.
1719         * df-core.c: Likewise.
1720         * df-problems.c: Likewise.
1721         * df-scan.c: Likewise.
1722         * dfp.c: Likewise.
1723         * dominance.c: Likewise.
1724         * domwalk.c: Likewise.
1725         * dse.c: Likewise.
1726         * dwarf2out.c: Likewise.
1727         * emit-rtl.c: Likewise.
1728         * et-forest.c: Likewise.
1729         * function.c: Likewise.
1730         * function.h: Likewise.
1731         * gcc.c: Likewise.
1732         * gcov-io.c: Likewise.
1733         * gcov.c: Likewise.
1734         * gcse.c: Likewise.
1735         * genattrtab.c: Likewise.
1736         * ggc-page.c: Likewise.
1737         * gimplify.c: Likewise.
1738         * gthr-lynx.h: Likewise.
1739         * haifa-sched.c: Likewise.
1740         * ipa-cp.c: Likewise.
1741         * ipa-inline.c: Likewise.
1742         * ipa-prop.h: Likewise.
1743         * ipa-pure-const.c: Likewise.
1744         * ipa-struct-reorg.c: Likewise.
1745         * ipa-struct-reorg.h: Likewise.
1746         * ipa-type-escape.c: Likewise.
1747         * ipa.c: Likewise.
1748         * loop-doloop.c: Likewise.
1749         * mips-tfile.c: Likewise.
1750         * mkmap-flat.awk: Likewise.
1751         * mkmap-symver.awk: Likewise.
1752         * modulo-sched.c: Likewise.
1753         * omp-low.c: Likewise.
1754         * optabs.c: Likewise.
1755         * optabs.h: Likewise.
1756         * opts.c: Likewise.
1757         * passes.c: Likewise.
1758         * postreload-gcse.c: Likewise.
1759         * postreload.c: Likewise.
1760         * predict.c: Likewise.
1761         * pretty-print.h: Likewise.
1762         * profile.c: Likewise.
1763         * protoize.c: Likewise.
1764         * ra-conflict.c: Likewise.
1765         * real.c: Likewise.
1766         * recog.c: Likewise.
1767         * regclass.c: Likewise.
1768         * regs.h: Likewise.
1769         * reload.c: Likewise.
1770         * rtl-error.c: Likewise.
1771         * rtlanal.c: Likewise.
1772         * scan.h: Likewise.
1773         * sched-rgn.c: Likewise.
1774         * see.c: Likewise.
1775         * stmt.c: Likewise.
1776         * target.h: Likewise.
1777         * tree-dfa.c: Likewise.
1778         * tree-eh.c: Likewise.
1779         * tree-flow-inline.h: Likewise.
1780         * tree-inline.c: Likewise.
1781         * tree-into-ssa.c: Likewise.
1782         * tree-loop-distribution.c: Likewise.
1783         * tree-nested.c: Likewise.
1784         * tree-parloops.c: Likewise.
1785         * tree-pass.h: Likewise.
1786         * tree-pretty-print.c: Likewise.
1787         * tree-profile.c: Likewise.
1788         * tree-scalar-evolution.c: Likewise.
1789         * tree-sra.c: Likewise.
1790         * tree-ssa-alias-warnings.c: Likewise.
1791         * tree-ssa-ccp.c: Likewise.
1792         * tree-ssa-coalesce.c: Likewise.
1793         * tree-ssa-dom.c: Likewise.
1794         * tree-ssa-dse.c: Likewise.
1795         * tree-ssa-forwprop.c: Likewise.
1796         * tree-ssa-live.c: Likewise.
1797         * tree-ssa-live.h: Likewise.
1798         * tree-ssa-loop-im.c: Likewise.
1799         * tree-ssa-loop-ivopts.c: Likewise.
1800         * tree-ssa-loop-niter.c: Likewise.
1801         * tree-ssa-loop-prefetch.c: Likewise.
1802         * tree-ssa-phiopt.c: Likewise.
1803         * tree-ssa-phiprop.c: Likewise.
1804         * tree-ssa-sccvn.c: Likewise.
1805         * tree-ssa-ter.c: Likewise.
1806         * tree-ssa-threadupdate.c: Likewise.
1807         * tree-ssa.c: Likewise.
1808         * tree-vect-analyze.c: Likewise.
1809         * tree-vect-transform.c: Likewise.
1810         * tree-vectorizer.c: Likewise.
1811         * tree-vn.c: Likewise.
1812         * tree-vrp.c: Likewise.
1813         * tree.c: Likewise.
1814         * tree.def: Likewise.
1815         * tree.h: Likewise.
1816         * unwind-dw2-fde.c: Likewise.
1817         * unwind.inc: Likewise.
1818         * value-prof.c: Likewise.
1819         * vmsdbgout.c: Likewise.
1820
1821 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
1822
1823         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
1824         always place FP constants in the TOC for TARGET_POWERPC64.
1825         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
1826
1827 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
1828
1829         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
1830         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
1831         enable for TARGET_E500_DOUBLE.
1832         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
1833         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
1834         floating-point modes like integer modes for E500 double.
1835         (rs6000_legitimate_offset_address_p): Likewise.
1836         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
1837         addressing for DDmode for E500 double.
1838         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
1839         modes as using 64-bits of registers for E500 double.
1840         (spe_build_register_parallel): Do not handle DDmode or TDmode.
1841         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
1842         specially for E500 double.
1843         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
1844         TDmode for E500 double.
1845         (rs6000_gimplify_va_arg): Only handle SDmode in registers
1846         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
1847         (rs6000_split_multireg_move): Do not handle TDmode specially for
1848         E500 double.
1849         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
1850         using 64-bit registers for E500 double.
1851         (emit_frame_save): Do not handle DDmode specially for E500 double.
1852         (gen_frame_mem_offset): Likewise.
1853         (rs6000_function_value): Do not call spe_build_register_parallel
1854         for DDmode or TDmode.
1855         (rs6000_libcall_value): Likewise.
1856         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1857         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
1858         for E500 double.
1859
1860 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
1861
1862         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
1863         in comments.
1864
1865 2008-06-04  Junjie Gu <jgu@tensilica.com>
1866
1867         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
1868         comparison for frame pointers.
1869
1870 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1871
1872         PR target/27386
1873         * config/avr/avr.h (PUSH_ROUNDING): Remove.
1874
1875 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1876
1877         PR target/30243
1878         * builtins.c (expand_builtin_signbit): Don't take lowpart when
1879         register is already smaller or equal to required mode. 
1880
1881 2008-06-04  Xinliang David Li  <davidxl@google.com>
1882
1883         * tree-call-cdce.c: New file. 
1884         (cond_dead_built_in_calls): New static variable.
1885         (input_domain): New struct.
1886         (check_pow): New function.
1887         (check_builtin_call): Ditto.
1888         (check_target_format): Ditto.
1889         (is_call_dce_candidate): Ditto.
1890         (gen_one_condition): Ditto.
1891         (gen_conditions_for_domain): Ditto.
1892         (get_domain): Ditto.
1893         (gen_conditions_for_pow_cst_base): Ditto.
1894         (gen_conditions_for_pow_int_base): Ditto.
1895         (gen_conditions_for_pow): Ditto.
1896         (get_no_error_domain): Ditto.
1897         (gen_shrink_wrap_conditions): Ditto.
1898         (shrink_wrap_one_built_in_call): Ditto.
1899         (shink_wrap_conditional_dead_built_in_calls): Ditto.
1900         (tree_call_cdce): Ditto.
1901         (gate_call_cdce): Ditto.
1902         (pass_call_cdce): New gimple pass.
1903         * passes.c: (init_optimization_passes): New pass.
1904         * tree-pass.h: New pass declaration.
1905         * opts.c (decode_options): New flag setting.
1906         * common.opt: Add -ftree-builtin-call-dce flag.
1907         * Makefile.in: Add new source file.
1908         * tempvar.def: New tv_id.
1909         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
1910
1911 2008-06-04  Richard Guenther  <rguenther@suse.de>
1912
1913         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
1914         (is_call_clobbered): Always check var_ann->call_clobbered.
1915         (mark_call_clobbered): Always set var_ann->call_clobbered.
1916         (clear_call_clobbered): Always clear var_ann->call_clobbered.
1917         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
1918         (reset_alias_info): Clear call clobbering info on MTAGs and
1919         globals as well.
1920         (set_pt_anything): Set pt_global_mem.
1921         (create_tag_raw): Adjust comment.
1922         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
1923
1924 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
1925             Maxim Kuvyrkov  <maxim@codesourcery.com>
1926
1927         * config/m68k/m68k.opt (mxgot): New option.
1928         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
1929         (m68k_output_addr_const_extra): New.
1930         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
1931         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
1932         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
1933         * doc/invoke.texi (M680x0 Options): Document -mxgot.
1934
1935 2008-06-04  Richard Guenther  <rguenther@suse.de>
1936
1937         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
1938         negative or non-representable offsets.
1939
1940 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1941
1942         * config/i386/i386.c (ix86_gen_leave): New.
1943         (ix86_gen_pop1): Likewise.
1944         (ix86_gen_add3): Likewise.
1945         (ix86_gen_sub3): Likewise.
1946         (ix86_gen_sub3_carry): Likewise.
1947         (ix86_gen_one_cmpl2): Likewise.
1948         (ix86_gen_monitor): Likewise.
1949         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
1950         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1951         ix86_gen_one_cmpl2 and ix86_gen_monitor.
1952         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
1953         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
1954         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
1955         (ix86_expand_epilogue): Updated.
1956         (print_operand): Handle integer register operand for 'z'.
1957         (ix86_expand_strlensi_unroll_1): Likewise.
1958         (ix86_expand_strlen): Likewise.
1959         (ix86_expand_builtin): Likewise.
1960         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
1961         mov{q}/mov{l} and add{q}/add{l}.
1962
1963 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1964
1965         * config/i386/i386.md (P): New mode iterator.
1966         (SFmode push_operand splitter): Macroize DImode and SImode pushes
1967         using P mode iterator.
1968         (DFmode push_operand splitter): Ditto.
1969         (XFmode push_operand splitter): Ditto.
1970         (DFmode float_extend SFmode push_operand splitter): Ditto.
1971         (XFmode float_extend SFmode push_operand splitter): Do not generate
1972         SImode pushes for 64bit target.  Macroize Dimode and SImode
1973         pushes using P mode iterator.
1974         (XFmode float_extend DFmode push_operand splitter): Ditto.
1975
1976 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1977
1978         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
1979         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
1980         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
1981         return type to int.
1982         (ix86_call_abi_override): Remove check for call_used_regs.
1983
1984 2008-06-03  Richard Guenther  <rguenther@suse.de>
1985
1986         * tree-ssa-structalias.c (find_func_aliases): Add constraints
1987         for the lhs of calls if the return type contains pointers.
1988
1989 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1990
1991         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
1992         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
1993         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
1994         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
1995         of cfun and DEFAULT_ABI to deceide abi mode.
1996         (DEFAULT_ABI): New.
1997         (REG_PARM_STACK_SPACE): Removed.
1998         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
1999         (STACK_BOUNDARY): Use default target to deceide stack boundary.
2000         * config/i386/i386-protos.h (ix86_cfun_abi): New.
2001         (ix86_function_abi): Likewise.
2002         (ix86_function_type_abi): Likewise.
2003         (ix86_call_abi_override): Likewise.
2004         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
2005         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
2006         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
2007         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
2008         specific defines.
2009         (X86_64_REGPARM_MAX): New.
2010         (X86_64_SSE_REGPARM_MAX): New.
2011         (X64_REGPARM_MAX): New.
2012         (X64_SSE_REGPARM_MAX): New.
2013         (X86_32_REGPARM_MAX): New.
2014         (X86_32_SSE_REGPARM_MAX): New.
2015         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
2016         (ix86_function_regparm): Handle user calling abi.
2017         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
2018         by DEFAULT_ABI versus SYSV_ABI check.
2019         (ix86_reg_parm_stack_space): New.
2020         (ix86_function_type_abi): New.
2021         (ix86_call_abi_override): New.
2022         (ix86_function_abi): New.
2023         (ix86_cfun_abi): New.
2024         (init_cumulative_args): Call abi specific initialization.
2025         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
2026         (function_arg_64): Extend SSE_REGPARM_MAX check.
2027         (function_arg (): Remove TARGET_64BIT_MS_ABI.
2028         (ix86_pass_by_reference): Likewise.
2029         (ix86_function_value_regno_p): Likewise.
2030         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
2031         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
2032         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
2033         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
2034         (setup_incoming_varargs_64): Adjust regparm for call abi.
2035         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
2036         (ix86_va_start): Likewise.
2037         (ix86_gimplify_va_arg): Likewise.
2038         (ix86_expand_prologue): Likewise.
2039         (output_pic_addr_const): Likewise.
2040         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
2041         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
2042         (x86_output_mi_thunk): Likewise.
2043         (x86_function_profiler): Likewise.
2044         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
2045         (SYSV_ABI, MS_ABI): New constants.
2046         (DEFAULT_ABI): New.
2047         (init_regs): Add prototype of function in regclass.c file.
2048         (OVERRIDE_ABI_FORMAT): New.
2049         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
2050         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
2051         (OUTGOING_REG_PARM_STACK_SPACE): New.
2052         (ix86_reg_parm_stack_space): New prototype.
2053         (CUMULATIVE_ARGS): Add call_abi member.
2054         (machine_function): Add call_abi member.
2055         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
2056         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
2057
2058 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
2059
2060         PR target/34879
2061         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
2062         (avr_builtin_setjmp_frame_value): New function.
2063         * config/avr/avr.md (nonlocal_goto_receiver): Define.
2064         (nonlocal_goto): Define.
2065
2066 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
2067
2068         * config/mips/mips.c (mips_emit_loadgp): Return early if
2069         there is nothing do to, otherwise emit a blockage if
2070         !TARGET_EXPLICIT_RELOCS || crtl->profile.
2071         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
2072
2073 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2074
2075         * configure.ac: Drop unneeded backslash ending up in config.in.
2076         * acinclude.m4: Likewise.
2077         * config.in: Regenerate.
2078
2079 2008-05-26  Jan Hubicka  <jh@suse.cz>
2080
2081         * predict.c (maybe_hot_frequency_p): Break out of...
2082         (maybe_hot_bb_p): ... here.
2083         (maybe_hot_edge_p): New.
2084         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
2085         * basic-block.h (maybe_hot_edge_p): Declare.
2086
2087 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2088
2089         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
2090         (*cmpfp_<mode>_cc): Ditto.
2091         (*fp_jcc_8<mode>_387): Ditto.
2092         (*fop_<MODEF:mode>_2_i387): Ditto.
2093         (*fop_<MODEF:mode>_3_i387): Ditto.
2094         (*fop_xf_2_i387): Ditto.
2095         (*fop_xf_3_i387): Ditto.
2096
2097 2008-06-02  Tomas Bily  <tbily@suse.cz>
2098
2099         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
2100
2101 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2102
2103         * config/mips/mips.c (mips_valid_offset_p): New function.
2104         (mips_valid_lo_sum_p): Likewise.
2105         (mips_classify_address): Use them.
2106         (mips_force_address): New function.
2107         (mips_legitimize_address): Use it.
2108         * config/mips/mips.md (MOVE128): New mode iterator.
2109         (movtf): Require TARGET_64BIT.  Remove empty strings.
2110         (*movtf_internal): Rename to...
2111         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
2112         of "R" and use {,fp}{load,store} attributes instead of "multi".
2113         Use a separate define_split.
2114         (*movtf_mips16): New pattern.
2115
2116 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2117
2118         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
2119         * config/mips/mips.c (mips_expand_before_return): New function.
2120         (mips_expand_epilogue): Call it.
2121         * config/mips/mips.md (return): Turn into a define_expand.
2122         (*return): New insn.
2123
2124 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2125
2126         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
2127         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
2128         functions.  Do not emit uses and clobbers of CONCATs; individually
2129         use and clobber their operands.
2130         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
2131         gen_clobber, emit_use and gen_use.
2132         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
2133         (expand_builtin_return): Likewise.
2134         * cfgbuild.c (count_basic_blocks): Likewise.
2135         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2136         * explow.c (emit_stack_restore): Likewise.
2137         * expmed.c (extract_bit_field_1): Likewise.
2138         * expr.c (convert_move, emit_move_complex_parts): Likewise.
2139         (emit_move_multi_word, store_constructor): Likewise.
2140         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
2141         (thread_prologue_and_epilogue_insns): Likewise.
2142         * lower-subreg.c (resolve_simple_move): Likewise.
2143         * optabs.c (widen_operand, expand_binop): Likewise.
2144         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
2145         * reload.c (find_reloads): Likewise.
2146         * reload1.c (eliminate_regs_in_insn): Likewise.
2147         * stmt.c (expand_nl_goto_receiver): Likewise.
2148         * config/alpha/alpha.md (builtin_longjmp): Likewise.
2149         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2150         * config/arm/arm.c (arm_load_pic_register): Likewise.
2151         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
2152         * config/arm/arm.md (untyped_return): Likewise.
2153         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
2154         * config/avr/avr.c (expand_prologue): Likewise.
2155         * config/bfin/bfin.c (do_unlink): Likewise.
2156         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
2157         * config/cris/cris.c (cris_expand_prologue): Likewise.
2158         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2159         (machopic_legitimize_pic_address): Likewise.
2160         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
2161         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
2162         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
2163         (ix86_expand_convert_uns_didf_sse): Likewise.
2164         (ix86_expand_vector_init_general): Likewise.
2165         * config/ia64/ia64.md (eh_epilogue): Likewise.
2166         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
2167         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
2168         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
2169         (config/iq2000/iq2000.c): Likewise.
2170         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2171         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2172         (builtin_longjmp): Likewise.
2173         * config/mn10300/mn10300.md (call, call_value): Likewise.
2174         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
2175         * config/pdp11/pdp11.md (abshi2): Likewise.
2176         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2177         * config/s390/s390.c (s390_emit_prologue): Likewise.
2178         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
2179         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
2180         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
2181         * config/sh/sh.c (prepare_move_operands): Likewise.
2182         (output_stack_adjust, sh_expand_epilogue): Likewise.
2183         (sh_set_return_address, sh_expand_t_scc): Likewise.
2184         * config/sparc/sparc.c (load_pic_register): Likewise.
2185         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
2186         * config/spu/spu.c (spu_expand_epilogue): Likewise.
2187         * config/v850/v850.c (expand_epilogue): Likewise.
2188
2189 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
2190
2191         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
2192         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
2193         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
2194         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
2195         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
2196         stack pointer register.
2197         (output_movhi): Remove code for interrupt specific writing to the 
2198         stack pointer register.
2199
2200 2008-05-31  Richard Guenther  <rguenther@suse.de>
2201
2202         PR tree-optimization/34244
2203         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
2204         (tree_expr_nonzero_warnv_p): Likewise.
2205         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
2206         ssa_name_nonnegative_p.
2207         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
2208         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
2209         not tree_expr_nonzero_warnv_p.
2210
2211         PR tree-optimization/36262
2212         Revert
2213         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
2214
2215         PR tree-optimization/34244
2216         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
2217         (record_numbers_of_iterations): New function.
2218         (execute_vrp): Cache the numbers of iterations of loops.
2219         * tree-scalar-evolution.c (scev_reset_except_niters):
2220         New function.
2221         (scev_reset): Use scev_reset_except_niters.
2222         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
2223
2224 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2225
2226         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2227         __WORKAROUND_RETS when appropriate.
2228
2229 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2230
2231         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
2232         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
2233         mode iterator.
2234         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
2235         *fop_df_comm_sse insn patterns using MODEF mode iterator.
2236         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
2237         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
2238         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
2239         *fop_df_1_mixed insn patterns using MODEF mode iterator.
2240         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
2241         *fop_df_1_sse insn patterns using MODEF mode iterator.
2242         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
2243         *fop_df_1_i387 insn patterns using MODEF mode iterator.
2244         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
2245         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
2246         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
2247         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
2248         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
2249         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
2250         (*fop_xf_4_i387): Use <MODE> for mode attribute.
2251         (*fop_xf_5_i387): Ditto.
2252         (*fop_xf_6_i387): Ditto.
2253
2254 2008-05-30  Richard Guenther  <rguenther@suse.de>
2255
2256         * builtins.c (build_string_literal): Avoid generating
2257         a non-gimple_val result.
2258
2259 2008-05-30  DJ Delorie  <dj@redhat.com>
2260
2261         * exec-tool.in: Use an environment variable (private) instead of a
2262         file (shared) as a semaphore, so as to not break parallel builds.
2263
2264 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2265
2266         * optabs.c (maybe_encapsulate_block): Remove.
2267         (emit_libcall_block): Adjust accordingly.
2268         * optabs.h (maybe_encapsulate_block): Remove prototype.
2269
2270         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
2271         Don't use maybe_encapsulate_block.
2272
2273 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2274
2275         * config/rs6000/rs6000.c (rs6000_legitimize_address,
2276         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
2277         rtx is a SYMBOL_REF before calling get_pool_constant.
2278
2279 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2280
2281         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
2282
2283 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
2284
2285         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
2286         rather than OS names to choose INO_T_EQ definition.
2287         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
2288         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
2289
2290 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
2291
2292         PR target/36348
2293         * config/darwin-f.c: New.
2294         * config/t-darwin: Added rule to build darwin-f.o.
2295         * config.gcc: Defined new variable, fortran_target_objs.
2296         (*-*-darwin*): Set fortran_target_objs.
2297         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
2298         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
2299         * configure: Regenerated.
2300
2301 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2302
2303         PR target/35771
2304         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
2305         canonical type if needed.
2306
2307 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2308
2309         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
2310
2311 2008-05-29  Richard Guenther  <rguenther@suse.de>
2312
2313         PR tree-optimization/36343
2314         PR tree-optimization/36346
2315         PR tree-optimization/36347
2316         * tree-flow.h (clobber_what_p_points_to): Declare.
2317         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
2318         pointed-to variable is dereferenced is irrelevant to whether
2319         the pointer can access the pointed-to variable.
2320         (clobber_what_p_points_to): New function.
2321         * tree-ssa-alias.c (set_initial_properties): Use it.
2322         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
2323         call clobber check for NMTs.
2324
2325 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2326         
2327         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
2328         for printing gcov_type.
2329
2330 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2331
2332         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
2333         and the eh region information.
2334         * value-prof.c (gimple_move_stmt_histograms): New function.
2335         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
2336
2337 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
2338
2339         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
2340
2341 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
2342
2343         * value-prof.c (tree_ic_transform): Print counts.
2344         * tree-profile.c (tree_gen_ic_func_profiler):
2345         Clear __gcov_indreict_call_callee variable to avoid misattribution
2346         of the profile.
2347
2348 2008-05-28  Rafael Espindola  <espindola@google.com>
2349
2350         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
2351         invalid sharing.
2352
2353 2008-05-28  Richard Guenther  <rguenther@suse.de>
2354
2355         PR tree-optimization/36339
2356         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
2357         and clobbering code out of the loop.
2358
2359 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2360
2361         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
2362         letters defined.
2363
2364         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
2365         s390_contiguous_bitmask_p, s390_symref_operand_p,
2366         s390_check_symref_alignment, s390_reload_larl_operand,
2367         s390_reload_symref_address): New functions.
2368         (s390_branch_condition_mnemonic): Support compare and branch
2369         instructions.
2370         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
2371         and 'W' constraints.
2372         (s390_secondary_reload): Add secondary reloads for unaligned
2373         symbol refs or symbol refs to floating point or QI/TI mode
2374         integer values.
2375         (legitimate_address_p): Accept symbol references as addresses.
2376         (s390_expand_insv): Use rotate and insert selected bits
2377         instruction for insv when building for z10.
2378         (print_operand_address): Handle symbol ref addresses.
2379         (print_operand): Output modifier 'c' added for signed byte values.
2380         (s390_encode_section_info): Mark symbol refs with
2381         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
2382
2383         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
2384         (length attribute): RRF, RRR have 4 byte length.
2385         (FPALL, INTALL): New mode iterators added.
2386         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
2387         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
2388         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
2389         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
2390         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
2391         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
2392         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
2393         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
2394         instructions.
2395         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
2396         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
2397         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
2398         reload<INTALL:mode><P:mode>_toreg_z10,
2399         reload<FPALL:mode><P:mode>_tomem_z10,
2400         reload<FPALL:mode><P:mode>_toreg_z10,
2401         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
2402         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
2403         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
2404         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
2405         definition.
2406         (movmem, clrmem, cmpmem): New splitters added.
2407
2408         * config/s390/predicates.md (larl_operand): Use
2409         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
2410         SYMBOL_REF_ALIGN1_P.
2411         (s390_signed_integer_comparison,
2412         s390_unsigned_integer_comparison): New predicates.
2413
2414         * config/s390/s390-protos.h (s390_check_symref_alignment,
2415         s390_contiguous_bitmask_p, s390_reload_larl_operand,
2416         s390_reload_symref_address,
2417         s390_compare_and_branch_condition_mask): Prototypes added.
2418
2419         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
2420         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
2421         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
2422
2423 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2424
2425         * config/s390/s390.c (z10_cost): New cost function for z10.
2426         (s390_handle_arch_option, override_options): Support -march=z10 switch.
2427         (s390_issue_rate): Adjust issue rate for z10.
2428         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
2429         (processor_flags): Add PF_Z10.
2430         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
2431         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
2432         * gcc/config.gcc: Add z10.
2433
2434 2008-05-28  Richard Guenther  <rguenther@suse.de>
2435
2436         PR tree-optimization/36291
2437         * tree-flow. h (struct gimple_df): Remove var_anns member.
2438         * tree-flow-inline.h (gimple_var_anns): Remove.
2439         (var_ann): Simplify.
2440         * tree-dfa.c (create_var_ann): Simplify.
2441         (remove_referenced_var): Clear alias info from var_anns of globals.
2442         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2443         (delete_tree_ssa): Clear alias info from var_anns of globals.
2444         Do not free var_anns.
2445         (var_ann_eq): Remove.
2446         (var_ann_hash): Likewise.
2447
2448 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
2449
2450         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2451         and loongson2f entries.
2452         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2453         * config/mips/mips.h (processor_type): Add Loongson-2E
2454         and Loongson-2F entries.
2455         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2456         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2457         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2458         * doc/invoke.texi (MIPS Options): Document loongson2e
2459         and loongson2f processor names.
2460
2461 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2462
2463         PR target/35767
2464         PR target/35771
2465         * config/i386/i386.c (ix86_function_arg_boundary): Use
2466         alignment of canonical type.
2467         (ix86_expand_vector_move): Check unaligned memory access for
2468         all SSE modes.
2469
2470 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2471
2472         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2473         Moved to the front of file.
2474
2475 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
2476             H.J. Lu  <hongjiu.lu@intel.com>
2477
2478         * dwarf2out.c (current_fde): New.
2479         (add_cfi): Use it.
2480         (lookup_cfa:): Likewise.
2481         (dwarf2out_end_epilogue): Likewise.
2482         (dwarf2out_note_section_used): Likewise.
2483
2484 2008-05-27  Michael Matz  <matz@suse.de>
2485
2486         PR c++/27975
2487         * c.opt (Wenum-compare): New warning option.
2488         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
2489
2490 2008-05-27  Michael Matz  <matz@suse.de>
2491
2492         PR middle-end/36326
2493         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
2494         non-BLKmode types.
2495         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
2496         into memory as tail calls.
2497
2498 2008-05-27  Richard Guenther  <rguenther@suse.de>
2499
2500         PR tree-optimization/36339
2501         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
2502         pointers cause all addressable variables to be call clobbered.
2503
2504 2008-05-27  Richard Guenther  <rguenther@suse.de>
2505
2506         PR tree-optimization/36245
2507         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
2508
2509 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2510
2511         * config/s390/s390.md: Replace all occurences of the 'm'
2512         constraint with 'RT'.
2513
2514 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2515
2516         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
2517         definitions added.
2518         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
2519         "*movdi_64".
2520         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
2521         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
2522         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
2523
2524 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2525
2526         * reload.c: (find_reloads): Skip alternatives according to the
2527         "enabled" attribute. Constify the constraint variable.
2528         * recog.c (get_attr_enabled): Add default implementation.
2529         (extract_insn): Set the alternative_enabled_p array
2530         in the recog_data struct.
2531         (preprocess_constraints, constrain_operands): Skip
2532         alternatives according to the "enabled" attribute
2533         * recog.h (struct recog_data): New field alternative_enabled_p.
2534         (skip_alternative): New inline function.
2535         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
2536         (record_reg_classes): Skip alternative according to the
2537         "enabled" attribute.
2538
2539         * doc/md.texi: Add documention for the "enabled" attribute.
2540
2541 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2542
2543         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
2544         * postreload.c (reload_cse_simplify_operands): Replace 'm'
2545         constraint with TARGET_MEM_CONSTRAINT.
2546         * recog.c (asm_operand_ok, preprocess_constraints,
2547         constrain_operands): Likewise.
2548         * regclass.c (record_reg_classes): Likewise.
2549         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
2550         * reload1.c (maybe_fix_stack_asms): Likewise.
2551         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
2552         * recog.h: Adjust comment.
2553         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
2554         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
2555         * doc/md.texi: Add a note to description of 'm' constraint.
2556         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
2557
2558 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2559
2560         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
2561         that the bitfield is of integral type before testing its precision.
2562
2563 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2564             Sa Liu  <saliu@de.ibm.com> 
2565
2566         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
2567         __modti3, __udivti3, __umodti3 and __udivmodti4.
2568         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
2569         that implement TImode mul and div functions.
2570         * config/spu/multi3.c: New. Implement __multi3.
2571         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
2572         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
2573         functions on SPU.
2574
2575 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
2576
2577         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
2578         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
2579         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
2580         tls_sysv_suffix): New mode and mode attribute iterators.
2581         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
2582         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
2583         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
2584         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
2585         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
2586         iterators.
2587
2588 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2589
2590         PR tree-optimization/36329
2591         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
2592         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
2593         * cgraphbuild.c (initialize_inline_failed): Use the latter
2594         macro in lieu of the former.
2595         * ipa-inline.c (cgraph_mark_inline): Likewise.
2596         (cgraph_decide_inlining_of_small_function): Likewise.
2597         (cgraph_decide_inlining): Likewise.
2598         (cgraph_decide_inlining_incrementally): Likewise.
2599
2600 2008-05-26  Tristan Gingold  <gingold@adacore.com>
2601             Anatoly Sokolov  <aesok@post.ru>
2602
2603         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
2604         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
2605         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
2606         optimization for 'avr6' architecture.
2607
2608 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
2609
2610         PR target/34932
2611         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
2612
2613 2008-05-26  Richard Guenther  <rguenther@suse.de>
2614
2615         * tree-ssa-sccvn.c (expr_has_constants): Declare.
2616         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
2617
2618 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
2619
2620         PR middle-end/36253
2621         * caller-save.c (insert_restore): Verify alignment of spill space.
2622         (insert_save): Likewise.
2623         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
2624         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
2625         (STACK_SLOT_ALIGNMENT): Likewise.
2626         * function.c (LOCAL_ALIGNMENT): Removed.
2627         (get_stack_local_alignment): New.
2628         (assign_stack_local): Use it.  Set alignment on stack slot.
2629         (assign_stack_temp_for_type): Use get_stack_local_alignment.
2630         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
2631         (STACK_SLOT_ALIGNMENT): New.
2632         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
2633         stack slot in XFmode.
2634
2635         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
2636
2637 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
2638
2639         PR/36321
2640         * config/i386/i386.md (allocate_stack_worker_64): Make sure
2641         argument operand in rax isn't removed.
2642
2643 2008-05-26  Richard Guenther  <rguenther@suse.de>
2644
2645         PR middle-end/36300
2646         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
2647         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
2648
2649 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2650
2651         PR bootstrap/36331
2652         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
2653
2654 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
2655
2656         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
2657         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
2658
2659 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2660
2661         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
2662         build a trampoline if we don't want one.
2663         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
2664         return zero for nested functions if we don't want a trampoline.
2665
2666 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2667
2668         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
2669
2670 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2671
2672         PR fortran/18428
2673         * c.opt: Removed undocumented option '-lang-fortran'.
2674         * c-common.h: Removed global variable 'lang_fortran'.
2675         * c-opts.c (c_common_handle_option): Removed code to handle
2676         option '-lang-fortran'. Updated includes.
2677         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
2678         definition of '__GFORTRAN__'.
2679         (define__GNUC__): Reimplemented to use BASEVER and
2680         cpp_define_formatted.
2681         (builtin_define_with_value_n): Removed.
2682         * c-incpath.h: Renamed to ...
2683         * incpath.h: ... this.
2684         * c-incpath.c: Renamed to ...
2685         * incpath.c: ... this. Updated includes.
2686         * fix-header.c: Updated includes.
2687         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2688         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2689         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2690
2691 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2692
2693         * tree.h: Update the table of flags used on tree nodes.
2694         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2695         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2696         (FORCED_LABEL): Add access check.
2697         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2698         (ASM_INPUT_P): Likewise.
2699         (ASM_VOLATILE_P): Likewise.
2700         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2701         (OMP_SECTION_LAST): Access private_flag directly.
2702         (OMP_RETURN_NOWAIT): Likewise.
2703         (OMP_PARALLEL_COMBINED): Likewise.
2704         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2705         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2706         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2707         deprecated_flag directly.
2708
2709 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
2710
2711         * final.c (frame_pointer_needed): Removed.
2712         * flags.h (frame_pointer_needed): Likewise.
2713
2714         * function.h (rtl_data): Add frame_pointer_needed.
2715         (frame_pointer_needed): New.
2716
2717 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
2718
2719         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2720
2721 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
2722
2723         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2724         SRC is a REG.
2725
2726 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
2727
2728         * c-common.c (strip_array_types): Move function to..
2729         * tree.c: ..here.
2730         (get_inner_array_type): Delete.
2731         * c-common.h (strip_array_types): Move declaration to..
2732         * tree.h: ..here.
2733         (get_inner_array_type): Delete.
2734         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2735         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2736         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2737         * config/pa/pa.c (emit_move_sequence): Likewise.
2738
2739 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2740
2741         * config/i386/i386.md (*sse_prologue_save_insn): Set length
2742         attribute to 34.
2743
2744 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
2745
2746         * function.c: Include target hook for nonlocal_goto frame value.
2747
2748 2008-05-24  Richard Guenther  <rguenther@suse.de>
2749
2750         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2751         variable can be only accessed through a pointer or a union.
2752
2753 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2754
2755         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
2756         * doc/extend.texi: Likewise.
2757
2758 2008-05-23  DJ Delorie  <dj@redhat.com>
2759
2760         * config/m32c/jump.md (untyped_call): Add.
2761
2762         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
2763         for A24 to PSImode.
2764         (m32c_address_cost): Detail costs for indirect offsets.
2765
2766 2008-05-23  Rafael Espindola  <espindola@google.com>
2767
2768         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
2769         if a node is a SUBREG.
2770         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
2771         is a SUBREG.
2772
2773 2008-05-23  Paul Brook  <paul@codesourcery.com>
2774             Carlos O'Donell  <carlos@codesourcery.com>
2775
2776         * doc/extend.texi: Clarify use of __attribute__((naked)).
2777         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2778         * target.h (gcc_target): Add allocate_stack_slots_for_args.
2779         * function.c (use_register_for_decl): Use
2780         targetm.calls.allocate_stack_slots_for_args.
2781         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2782         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
2783         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2784
2785 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2786
2787         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
2788
2789 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
2790
2791         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
2792         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
2793         is only rounded once.
2794
2795 2008-05-23  Richard Guenther  <rguenther@suse.de>
2796
2797         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
2798
2799 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
2800             Jakub Jelinek  <jakub@redhat.com>
2801
2802         PR target/36079
2803         * configure.ac: Handle --enable-cld.
2804         * configure: Regenerated.
2805         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
2806         * config/i386/i386.h (struct machine_function): Add needs_cld field.
2807         (ix86_current_function_needs_cld): New define.
2808         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
2809         (cld): New isns pattern.
2810         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
2811         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
2812         * config/i386/i386.opt (mcld): New option.
2813         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
2814         TARGET_CLD and ix86_current_function_needs_cld.
2815         (override_options): Use -mcld by default for 32-bit code if
2816         USE_IX86_CLD.
2817
2818         * doc/install.texi (Options specification): Document --enable-cld.
2819         * doc/invoke.texi (Machine Dependent Options)
2820         [i386 and x86-64 Options]: Add -mcld option.
2821         (Intel 386 and AMD x86-64 Options): Document -mcld option.
2822
2823 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
2824         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
2825         (return_in_memory_64): Likewise.
2826         (return_in_memory_ms_64): Likewise.
2827
2828 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2829
2830         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
2831         * builtins.c (fold_builtin_fpclassify): New.
2832         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
2833         * builtins.def (BUILT_IN_FPCLASSIFY): New.
2834         * c-common.c (handle_type_generic_attribute): Adjust to accept
2835         fixed arguments before an elipsis.
2836         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
2837         * doc/extend.texi: Document __builtin_fpclassify.
2838
2839 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
2840
2841         * omp-low.c (gate_expand_omp_ssa): Remove.
2842         (pass_expand_omp_ssa): Remove.
2843         (gate_expand_omp): Do not check for flag_openmp_ssa.
2844         * common.opt (-fopenmp-ssa): Remove.
2845         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
2846
2847 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2848
2849         * config/sh/sh.opt (mfixed-range): New option.
2850         * config/sh/sh-protos.h (sh_fix_range): Declare.
2851         * config/sh/sh.c (sh_fix_range): New function.
2852         * config/sh/sh.h (sh_fixed_range_str): Declare.
2853         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
2854         is not empty.
2855         * doc/invoke.texi (SH Options): Document -mfixed-range.
2856
2857 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
2858
2859         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
2860         it before the redeclaration.
2861
2862 2008-05-22  Anatoly Sokolov <aesok@post.ru>
2863
2864         * config/avr/avr.c (get_sequence_length): Add new function.
2865         (expand_prologue, expand_epilogue): Remove duplicate code.
2866
2867 2008-05-22  Rafael Espindola  <espindola@google.com>
2868
2869         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
2870         sharing.
2871
2872 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
2873
2874         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
2875         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
2876
2877         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
2878         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
2879         (vect_update_misalignment_for_peel): Likewise.
2880         (vector_alignment_reachable_p): Likewise.
2881         * tree-vect-transform.c (vectorizable_load): Likewise.
2882         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2883         (get_vectype_for_scalar_type): Pass mode of scalar_type
2884         to UNITS_PER_SIMD_WORD.
2885
2886         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
2887         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2888         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2889         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2890         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2891
2892 2008-05-22  Ira Rosen  <irar@il.ibm.com>
2893
2894         PR tree-optimization/36293
2895         * tree-vect-transform.c (vect_transform_strided_load): Don't check
2896         if the first load must be skipped because of a gap.
2897
2898 2008-05-22  Richard Guenther  <rguenther@suse.de>
2899
2900         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
2901         more cases of offset disambiguation that is possible if
2902         strict-aliasing rules apply.
2903         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
2904         for basic offset and type-based disambiguation.
2905
2906 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2907
2908         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
2909         ix86_expand_vector_set on V16QImode for SSE4.1.
2910
2911 2008-05-21  Tom Tromey  <tromey@redhat.com>
2912
2913         * c.opt (Wimport): Mark as undocumented.
2914         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
2915         -Wno-import.
2916         (Warning Options): Likewise.
2917         * doc/cppopts.texi: Don't mention -Wimport.
2918
2919 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
2920
2921         PR tree-optimization/36287
2922         PR tree-optimization/36286
2923         * lambda-code.c (build_access_matrix): Do not use the loop->num
2924         for computing the number of induction variables: use the loop depth
2925         instead.
2926
2927 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
2928
2929         PR/36280
2930         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
2931         option -f(no-)leading-underscore.
2932
2933 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2934
2935         * config/i386/i386.c (ix86_expand_vector_init_general): Use
2936         GET_MODE_NUNITS (mode).
2937
2938 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
2939
2940         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
2941         (-mmulhw): Add 464 to description.
2942         (-mdlmzb): Likewise.
2943         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
2944         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
2945         464fp entries.
2946         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
2947         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
2948         * config/rs6000/rs6000.md: Update comments for 464.
2949
2950 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
2951
2952         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2953
2954 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2955
2956         * config/i386/sse.md (vec_extractv4sf): Removed.
2957         (vec_extractv2df): Likewise.
2958         (vec_extractv2di): Likewise.
2959         (vec_extractv4si): Likewise.
2960         (vec_extractv8hi): Likewise.
2961         (vec_extractv16qi): Likewise.
2962         (vec_extract<mode>): New.
2963
2964 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2965
2966         * config/i386/sse.md (vec_setv4sf): Removed.
2967         (vec_setv2df): Likewise.
2968         (vec_setv2di): Likewise.
2969         (vec_setv4si): Likewise.
2970         (vec_setv8hi): Likewise.
2971         (vec_setv16qi): Likewise.
2972         (vec_set<mode>): New.
2973
2974 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2975
2976         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
2977         goto for vec_concat and vec_interleave.
2978
2979 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2980
2981         * config/i386/sse.md (vec_initv4sf): Removed.
2982         (vec_initv2df): Likewise.
2983         (vec_initv2di): Likewise.
2984         (vec_initv4si): Likewise.
2985         (vec_initv8hi): Likewise.
2986         (vec_initv16qi): Likewise.
2987         (vec_init<mode>): New.
2988
2989 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
2990
2991         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
2992
2993 2008-05-21  Tom Tromey  <tromey@redhat.com>
2994
2995         * ggc-zone.c (lookup_page_table_if_allocated): New function.
2996         (zone_find_object_offset): Likewise.
2997         (gt_ggc_m_S): Likewise.
2998         (highest_bit): Likewise.
2999         * ggc-page.c (gt_ggc_m_S): New function.
3000         * stringpool.c (string_stack): Remove.
3001         (init_stringpool): Update.
3002         (ggc_alloc_string): Use ggc_alloc.
3003         (maybe_delete_ident): New function.
3004         (ggc_purge_stringpool): Likewise.
3005         (gt_ggc_m_S): Remove.
3006         * ggc-common.c (ggc_protect_identifiers): New global.
3007         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
3008         ggc_protect_identifiers.
3009         * ggc.h (ggc_protect_identifiers): Declare.
3010         (gt_ggc_m_S): Update.
3011         (ggc_purge_stringpool): Declare.
3012         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
3013         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
3014         special case.
3015         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
3016
3017 2008-05-21  David S. Miller  <davem@davemloft.net>
3018
3019         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
3020         tmake_file.
3021
3022 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
3023
3024         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
3025         once finished.
3026
3027 2008-05-20  David Daney  <ddaney@avtrex.com>
3028
3029         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
3030         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
3031         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3032         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3033         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
3034         (atomic_hiqi_op): New define_code_iterator.
3035         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
3036         mips_expand_compare_and_swap_12.
3037         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
3038         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
3039         (sync_<optab><mode>, sync_old_<optab><mode>,
3040         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
3041         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
3042         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
3043         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
3044         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
3045         (test_and_set_12): New insn.
3046         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
3047         sync_new_<optab><mode>, sync_old_nand<mode>,
3048         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
3049         clobber to operand 0 for SI and DI mode insns.
3050         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
3051         mips_gen_fn_4): New typedefs.
3052         (mips_gen_fn_ptrs): Define new union type.
3053         (mips_expand_compare_and_swap_12): Remove declaration.
3054         (mips_expand_atomic_qihi): Declare function.
3055         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
3056         (mips_expand_atomic_qihi): ... this.  Use new generator function
3057         parameter.
3058         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
3059         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
3060         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
3061         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
3062         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
3063         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
3064         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
3065         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
3066         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
3067         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
3068         New macros.
3069
3070 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
3071
3072         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
3073         the missing break.
3074
3075 2008-05-20  Anatoly Sokolov <aesok@post.ru>
3076
3077         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
3078         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
3079         (avr_attribute_table): Add 'OS_main' function attribute.
3080         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
3081         functions with 'OS_main' attribute.
3082
3083 2008-05-20  Richard Guenther  <rguenther@suse.de>
3084
3085         PR tree-optimization/35204
3086         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
3087         helper, split out from ...
3088         (DFS): ... here.  Make the DFS walk non-recursive.
3089
3090 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
3091             Jan Sjodin  <jan.sjodin@amd.com>
3092
3093         PR tree-optimization/36181
3094         * tree-parloops.c (loop_has_vector_phi_nodes): New.
3095         (parallelize_loops): Don't parallelize when the loop has vector
3096         phi nodes.
3097
3098 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3099             Sebastian Pop  <sebastian.pop@amd.com>
3100
3101         * tree-loop-linear.c (gather_interchange_stats): Look in the access
3102         matrix, and never look at the tree representation of the memory
3103         accesses.
3104         (linear_transform_loops): Computes parameters and access matrices.
3105         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
3106         when fails.
3107         (access_matrix_get_index_for_parameter): New.
3108         * tree-data-ref.h (struct access_matrix): New.
3109         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
3110         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
3111         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
3112         am_vector_index_for_loop): New.
3113         (struct data_reference): Add field access_matrix.
3114         (DR_ACCESS_MATRIX): New.
3115         (compute_data_dependences_for_loop): Update declaration.
3116         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
3117         * lambda.h (lambda_vector_vec_p): Declared.
3118         * lambda-code.c: Depend on pointer-set.h.
3119         (lambda_collect_parameters_from_af, lambda_collect_parameters,
3120         av_for_af_base, av_for_af, build_access_matrix,
3121         lambda_compute_access_matrices): New.
3122         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
3123
3124 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
3125
3126         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
3127         $SOURCEDIR/include.
3128
3129 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3130             Sebastian Pop  <sebastian.pop@amd.com>
3131
3132         PR tree-optimization/36206
3133         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
3134         FOLD_CONVERSIONS.
3135         (instantiate_scev_1): Rename flags to fold_conversions.
3136         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
3137         outeside instantiation_loop.
3138         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
3139         (evolution_function_is_affine_or_constant_p): Removed.
3140         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
3141         instantiate_scev.
3142         (analyze_siv_subscript): Pass in the loop nest number.
3143         Call evolution_function_is_affine_in_loop instead of 
3144         evolution_function_is_affine_p.
3145         (analyze_overlapping_iterations): Pass in the loop nest number.
3146
3147 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3148             Sebastian Pop  <sebastian.pop@amd.com>
3149
3150         PR tree-optimization/36206
3151         * tree-chrec.h (chrec_fold_op): New.
3152         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
3153         and other trees.
3154
3155 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
3156
3157         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
3158         (DIRS_EQ): New.
3159         (remove_duplicates): Do not set inode on non-inode systems.
3160         Use DIRS_EQ.
3161
3162 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3163
3164         * config.gcc (tm_file): Update comments about relative pathnames.
3165
3166 2008-05-20  Richard Guenther  <rguenther@suse.de>
3167
3168         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
3169         * tree-ssa-sccvn.c (process_scc): Likewise.
3170         * tree-ssa-sink.c (execute_sink_code): Likewise.
3171         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
3172         * tree-vrp.c (process_assert_insertions): Likewise.
3173         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3174         (perform_tree_ssa_dce): Likewise.
3175         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3176         (dump_dominator_optimization_stats): Likewise.
3177         * tree-vectorizer.c (vectorize_loops): Likewise.
3178
3179 2008-05-20  Richard Guenther  <rguenther@suse.de>
3180
3181         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
3182
3183 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
3184
3185         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
3186         (ix86_i386elf_return_in_memory): Likewise.
3187         (ix86_i386interix_return_in_memory): Likewise.
3188         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
3189         (SUBTARGET_RETURN_IN_MEMORY): New.
3190         * config/i386/i386elf.h: Likewise.
3191         * config/i386/ptx4-i.h: Likewise.
3192         * config/i386/sol2-10.h: Likewise.
3193         * config/i386/sysv4.h: Likewise.
3194         * config/i386/vx-common.h: Likewise.
3195         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
3196         * config/i386/i386.c (ix86_return_in_memory): Made static and
3197         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
3198         (ix86_i386elf_return_in_memory): Removed.
3199         (ix86_i386interix_return_in_memory): Removed.
3200         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
3201         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
3202
3203 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
3204
3205         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
3206
3207 2008-05-19  Xinliang David Li  <davidxl@google.com>
3208
3209         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
3210         * opts.c: Ditto.
3211         * common.opt: Ditto.
3212         * doc/invoke.texi: Ditto.
3213
3214 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3215
3216         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
3217         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
3218
3219 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3220
3221         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
3222         sizes of operand array from 8/4 to 4/2.
3223         (ix86_expand_vector_init_general): Change size of operand array
3224         from 32 to 16.  Remove op0, op1 and half_mode.
3225
3226 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3227
3228         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
3229         (ix86_expand_vector_init_interleave): Likewise.
3230         (ix86_expand_vector_init_general): Use them.  Assert
3231         word_mode == SImode when n_words == 4.
3232
3233 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
3234
3235         * config/i386/i386.c (ix86_secondary_reload): New static function.
3236         (TARGET_SECONDARY_RELOAD): New define.
3237         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
3238         * config/i386/i386.md (reload_outqi): Remove.
3239
3240 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3241
3242         PR middle-end/35509
3243         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
3244         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
3245         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
3246         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
3247         (fold_builtin_1): Likewise.
3248         * builtins.def (BUILT_IN_ISINF_SIGN): New.
3249         c-common.c (check_builtin_function_arguments): Handle
3250         BUILT_IN_ISINF_SIGN.
3251         * doc/extend.texi: Document __builtin_isinf_sign.
3252         * fold-const.c (operand_equal_p): Handle COND_EXPR.
3253
3254 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
3255
3256         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
3257         EH cleanup at the end of the pass, search for those that have been
3258         turned into forwarder blocks and do the cleanup on their successor.
3259
3260 2008-05-18  Richard Guenther  <rguenther@suse.de>
3261
3262         * tree-cfg.c (verify_gimple_expr): Allow conversions from
3263         pointers to sizetype and vice versa.
3264
3265 2008-05-18 Xinliang David Li   <davidxl@google.com>
3266
3267         * gcc/tree-ssa-dce.c: Coding style fix.
3268         (check_pow): Documentation comment. 
3269         (check_log): Documenation comment. Coding style fix.
3270         (is_unnecessary_except_errno_call): Ditto.
3271         (gen_conditions_for_pow): Ditto.
3272         (gen_conditions_for_log): Ditto.
3273         (gen_shrink_wrap_conditions): Ditto.
3274         (shrink_wrap_one_built_in_calls): Ditto.
3275         * gcc/doc/invoke.texi: Better documentation string.
3276         * ChangeLog: Fix wrong change log entries from 
3277         May 17 checkin on function call DCE.
3278
3279 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
3280
3281         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
3282
3283 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
3284
3285         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
3286         * df-problems.c (simulation routines): Fixed block comment to
3287         properly say how to add forwards scanning functions.
3288         
3289 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3290
3291         * tree-inline.c (setup_one_parameter): Remove dead code.
3292
3293 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3294
3295         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
3296         a BIT_AND_EXPR only for an INTEGER_TYPE.
3297
3298 2008-05-17 Xinliang David Li   <davidxl@google.com>
3299
3300         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
3301         (check_pow, check_log, is_unnecessary_except_errno_call): New 
3302         functions to check for eliminating math functions that are pure 
3303         except for setting errno.
3304         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
3305         general condition expressions for shrink-wrapping pow/log calls.
3306         (gen_shrink_wrap_conditions): Ditto.
3307         (shrink_wrap_one_built_in_call): Ditto.
3308         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
3309         (mark_operand_necessary): If debugging, output if OP is necessary.
3310         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
3311         unnecessary.
3312         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
3313         opt level >= 2.
3314         * gcc/common.opt: New user flag -ftree-builtin-dce.
3315         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
3316
3317 2008-05-16  David S. Miller  <davem@davemloft.net>
3318
3319         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
3320         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3321
3322 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
3323
3324         PR target/36246
3325         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
3326
3327 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3328
3329         * ifcvt.c (dead_or_predicable): Rename
3330         df_simulate_one_insn_backwards to df_simulate_one_insn.
3331         * recog.c (peephole2_optimize): Ditto.
3332         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
3333         Ditto.
3334         * df.h: Rename df_simulate_one_insn_backwards to
3335         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
3336         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
3337         scanning of defs and uses.
3338         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
3339         (df_simulate_one_insn_forwards): Removed.
3340
3341 2008-05-16  Doug Kwan  <dougkwan@google.com>
3342
3343         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
3344         QNaN & SNaN.
3345         (real_from_string): Handle NaNs and Inf as approriate.
3346
3347 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3348
3349         * doc/gty.texi (Source Files Containing Type Information): Note
3350         that headers should appear first in the gtfiles list.
3351
3352 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3353
3354         * tree.def (COND_EXEC): Properly documented this code.
3355
3356 2008-05-16  Diego Novillo  <dnovillo@google.com>
3357
3358         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
3359         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
3360         the new field.
3361
3362 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3363
3364         * tree-ssa-dse (max_stmt_uid): Removed.
3365         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
3366         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
3367         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
3368         * function.h (cfun.last_stmt_uid): New field.
3369         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
3370         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
3371         New functions.
3372         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
3373         (create_stmt_ann): Initialize the ann->uid field.
3374         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
3375         with new calls.
3376         * tree-flow.h (renumber_gimple_stmt_uids): New function.
3377
3378 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3379
3380         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
3381         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
3382         (init_empty_tree_cfg): Call it.
3383
3384 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3385
3386         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
3387         Update all users.
3388
3389 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3390
3391         * doc/invoke.text (-fdump-tree-*-verbose): New option.
3392         * tree-dump.c (dump_options): New verbose option.
3393         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
3394         Add verbose dump.
3395         * tree-pass.h (TDF_VERBOSE): New dump flag.
3396         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3397         (tree-flow.h): Added include.
3398         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
3399
3400 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3401
3402         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
3403
3404         From Jie Zhang  <jie.zhang@analog.com>
3405         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3406         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
3407         mcpu=bf561-none and mcpu=bf561-0.2.
3408         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3409         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3410         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3411         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3412         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
3413         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
3414         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
3415         option.
3416         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
3417         (cputype_selected): Remove.
3418         (bfin_handle_option): Don't use cputype_selected.
3419         (override_options): When no mcpu option, enable all workarounds.
3420         Don't use bfin_workarounds.
3421         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
3422         processor type.
3423         (DEFAULT_CPU_TYPE): Don't define.
3424
3425 2008-05-16  Richard Guenther  <rguenther@suse.de>
3426
3427         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
3428         on deletion of the last stmt.
3429
3430 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3431
3432         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
3433         V8HImode for SSE2 and V16QImode for SSE4.1.
3434
3435 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3436
3437         * cgraph.h (compute_inline_parameters): Made public.
3438         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
3439         variable_generate_summary, function_write_summary,
3440         variable_write_summary, variable_read_summary.  Added generate_summary,
3441         write_summary, read_summary.
3442         * cgraphunit.c (cgraph_process_new_functions): Changed call from
3443         pass_ipa_inline.function_generate_summary, to
3444         compute_inline_parameters. 
3445         * ipa-inline.c (compute_inline_parameters): Made public and added
3446         node parameter.
3447         (compute_inline_parameters_for_current): New function.
3448         (pass_inline_param): Now calls compute_inline_parameters_for_current.
3449         (inline_generate_summary): Removed parameter and made to loop over
3450         all cgraph nodes.
3451         (pass_ipa_inline): Updated for new IPA_PASS structure.
3452         * passes.c (execute_ipa_summary_passes): Now is called once per
3453         pass rather than once per node*pass.
3454         
3455 2008-05-15  Anatoly Sokolov <aesok@post.ru>
3456
3457         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
3458         avr_have_mul_p, avr_asm_only_p): Remove variables.
3459         (avr_override_options): Remove initialization of removed variables.
3460         (avr_file_start):  Convert removed variables to fields of 
3461         'struct base_arch_s *avr_current_arch'. 
3462         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3463         (AVR_HAVE_MUL): (Ditto.).
3464         (AVR_HAVE_MOVW): (Ditto.).
3465         (AVR_HAVE_LPMX): (Ditto.). 
3466         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
3467         avr_asm_only_p): Remove declaration.
3468
3469 2008-05-15  Diego Novillo  <dnovillo@google.com>
3470
3471         * config/arm/arm.c (arm_return_in_memory): Fix return type.
3472         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
3473
3474 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
3475
3476         PR middle-end/36194
3477         * combine.c (check_conversion): Rename back to check_promoted_subreg.
3478         Don't call record_truncated_value from here.
3479         (record_truncated_value): Turn it into a for_each_rtx callback.
3480         (record_truncated_values): New function.
3481         (combine_instructions): Call note_uses with record_truncated_values.
3482         Change name of check_conversion to check_promoted_subreg. 
3483
3484 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
3485
3486         * doc/sourcebuild.texi: Document support for torture tests.
3487
3488 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3489
3490         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
3491         to alternative 4 of operand 2.
3492
3493 2008-05-15  Richard Guenther  <rguenther@suse.de>
3494
3495         * tree-pass.h (current_pass): Declare.
3496         (get_pass_for_id): Likewise.
3497         * passes.c (passes_by_id, passes_by_id_size): New globals.
3498         (set_pass_for_id): New function.
3499         (get_pass_for_id): Likewise.
3500         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
3501         (execute_function_todo): Flush per function statistics.
3502         * toplev.c (compile_file): Init statistics.
3503         (general_init): Do early statistics initialization.
3504         (finalize): Finish statistics.
3505         * statistics.h (statistics_early_init): Declare.
3506         (statistics_init): Likewise.
3507         (statistics_fini): Likewise.
3508         (statistics_fini_pass): Likewise.
3509         (statistics_counter_event): Likewise.
3510         (statistics_histogram_event): Likewise.
3511         * statistics.c: New file.
3512         * Makefile.in (OBJS-common): Add statistics.o.
3513         (statistics.o): Add dependencies.
3514         * doc/invoke.texi (-fdump-statistics): Document.
3515
3516         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
3517         (insert): Likewise.
3518         (execute_pre): Use statistics_counter_event.
3519         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
3520         (substitute_and_fold): Increment it.  Use statistics_counter_event.
3521
3522 2008-05-15  Diego Novillo  <dnovillo@google.com>
3523
3524         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
3525
3526         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
3527         * tree-ssa-alias.c (new_type_alias): Remove references to
3528         sub-variables from comment.
3529         * tree-ssa-operands.c (swap_tree_operands): Likewise.
3530
3531 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3532
3533         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
3534         attribute to 1 only for insertps alternative.
3535
3536 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3537
3538         * config/bfin/bfin.md (loadbytes): New pattern.
3539         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
3540         (bfin_init_builtins): Initialize it.
3541         (bdesc_1arg): Add it.
3542
3543 2008-05-15  Sa Liu  <saliu@de.ibm.com>
3544
3545         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
3546         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
3547         * testsuite/lib/target-supports.exp: Add
3548         check_effective_target_fortran_integer_16.
3549
3550 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3551
3552         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
3553         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
3554         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
3555         (TARGET_RETURN_IN_MEMORY): Define.
3556
3557 2008-05-15  Richard Guenther  <rguenther@suse.de>
3558
3559         PR middle-end/36244
3560         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
3561         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
3562         represent unmodifiable vars.
3563
3564 2008-05-15  Richard Guenther  <rguenther@suse.de>
3565
3566         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
3567         INDIRECT_REF and TARGET_MEM_REF.
3568         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3569         TARGET_MEM_REF.
3570
3571 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3572             H.J. Lu  <hongjiu.lu@intel.com>
3573
3574         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
3575         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
3576         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
3577         insn alternatives.  Add missing alternatives.
3578         (*vec_concatv2di_rex64_sse4_1): Likewise.
3579         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
3580         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
3581         Require TARGET_SSE.
3582
3583 2008-05-15  Richard Guenther  <rguenther@suse.de>
3584
3585         PR tree-optimization/36009
3586         PR tree-optimization/36204
3587         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
3588         (determine_invariantness_stmt): Record the loop a store is
3589         always executed in.
3590         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
3591         dependency.
3592
3593 2008-05-15  Richard Guenther  <rguenther@suse.de>
3594
3595         PR tree-optimization/34330
3596         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
3597         through the pointer will alias the SMT.
3598
3599 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
3600
3601         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
3602
3603 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
3604
3605         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
3606
3607 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3608             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3609
3610         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
3611         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
3612         (vashl_optab): New optab for vector/vector shifts.
3613         (vashr_optab): Ditto.
3614         (vlshr_optab): Ditto.
3615         (vrotl_optab): Ditto.
3616         (vrotr_optab): Ditto.
3617         (optab_subtype): New enum for optab_for_tree_code call.
3618         (optab_for_tree_code): Add enum optab_subtype argument.
3619
3620         * optabs.c (optab_for_tree_code): Take an additional argument to
3621         distinguish between a vector shift by a scalar and vector shift by
3622         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
3623         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
3624         vector shift by a vector.
3625         (expand_widen_pattern_expr): Pass additional argument to
3626         optab_for_tree_code.
3627
3628         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
3629         vrotl_optab, vrotr_optab.
3630
3631         * expr.c (expand_expr_real_1): Update calls to
3632         optab_for_tree_code to distinguish between vector shifted by a
3633         scalar and vector shifted by a vector.
3634         * tree-vectorizer.c (supportable_widening_operation): Ditto.
3635         (supportable_narrowing_operation): Ditto.
3636         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
3637         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
3638         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
3639         (vect_create_epilog_for_reduction): Ditto.
3640         (vectorizable_reduction): Ditto.
3641         (vectorizable_operation): Ditto.
3642         (vect_strided_store_supported): Ditto.
3643         (vect_strided_load_supported): Ditto.
3644         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3645         * expmed.c (expand_shift): Ditto.
3646
3647         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
3648         scalar type.
3649         (ashr@var{m}3): Ditto.
3650         (vashl@var{m}3): Document new vector/vector shift standard name.
3651         (vashr@var{m}3): Ditto.
3652         (vlshr@var{m}3): Ditto.
3653         (vrotl@var{m}3): Ditto.
3654         (vrotr@var{m}3): Ditto.
3655
3656         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
3657         (PPERM_INVERT): Ditto.
3658         (PPERM_REVERSE): Ditto.
3659         (PPERM_REV_INV): Ditto.
3660         (PPERM_ZERO): Ditto.
3661         (PPERM_ONES): Ditto.
3662         (PPERM_SIGN): Ditto.
3663         (PPERM_INV_SIGN): Ditto.
3664         (PPERM_SRC1): Ditto.
3665         (PPERM_SRC2): Ditto.
3666
3667         * config/i386/sse.md (mulv2di3): Add SSE5 support.
3668         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
3669         allows a memory operand to be the value being added, and split it
3670         to improve vectorization.
3671         (sse5_pmacsdqh_mem): Ditto.
3672         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
3673         (sse5_mulv2div2di3_high): Ditto.
3674         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
3675         (vec_pack_trunc_v4si): Ditto.
3676         (vec_pack_trunc_v2di): Ditto.
3677         (sse5_pcmov_<mode>): Remove code that tried to use use
3678         andps/andnps instead of pcmov.
3679         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
3680         pmacsdqh instructions.
3681         (vec_widen_smult_lo_v4si): Ditto.
3682
3683         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
3684         (PPERM_INVERT): Ditto.
3685         (PPERM_REVERSE): Ditto.
3686         (PPERM_REV_INV): Ditto.
3687         (PPERM_ZERO): Ditto.
3688         (PPERM_ONES): Ditto.
3689         (PPERM_SIGN): Ditto.
3690         (PPERM_INV_SIGN): Ditto.
3691         (PPERM_SRC1): Ditto.
3692         (PPERM_SRC2): Ditto.
3693         (ix86_expand_sse_movcc): Move the SSE5 test after the if
3694         true/false tests.
3695         (ix86_expand_int_vcond): If SSE5 generate all possible integer
3696         comparisons.
3697         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
3698         says ignore whether the last reference is a memory operand.
3699
3700 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3701             Paolo Bonzini <bonzini at gnu dot org>
3702
3703         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
3704         shift patterns.
3705
3706         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
3707         (vlshr<mode>3): Rename from vlshr<mode>3.
3708         (vashr<mode>3): Rename from vashr<mode>3.
3709         (mulv4sf3): Change the names of vector shift patterns.
3710         (mulv4si3): Ditto.
3711         (negv4sf2): Ditt.
3712
3713         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
3714         shift insns.
3715
3716         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
3717         (SI_SHLHI): Ditto.
3718         (SI_SHL): Ditto.
3719         (SI_SHLI): Ditto.
3720         (SI_ROTH): Ditto.
3721         (SI_ROTHI): Ditto.
3722         (SI_ROT): Ditto.
3723         (SI_ROTI): Ditto.
3724         (SPU_RL_0): Ditto.
3725         (SPU_RL_1): Ditto.
3726         (SPU_RL_2): Ditto.
3727         (SPU_RL_3): Ditto.
3728         (SPU_RL_4): Ditto.
3729         (SPU_RL_5): Ditto.
3730         (SPU_RL_6): Ditto.
3731         (SPU_RL_7): Ditto.
3732         (SPU_SL_0): Ditto.
3733         (SPU_SL_1): Ditto.
3734         (SPU_SL_2): Ditto.
3735         (SPU_SL_3): Ditto.
3736         (SPU_SL_4): Ditto.
3737         (SPU_SL_5): Ditto.
3738         (SPU_SL_6): Ditto.
3739         (SPU_SL_7): Ditto.
3740
3741         * config/spu/spu.md (v): New iterator macro to add v for vector types.
3742         (floatunssidf2_internal): Change vector/vector shift names.
3743         (floatunsdidf2_internal): Ditto.
3744         (mulv8hi3): Ditto.
3745         (ashrdi3): Ditto.
3746         (ashrti3): Ditto.
3747         (cgt_df): Ditto.
3748         (cgt_v2df): Ditto.
3749         (dftsv): Ditto.
3750         (vashl<mode>3): Rename from ashl<mode>3.
3751         (vashr<mode>3): Rename from ashr<mode>3.
3752         (vlshr<mode>3): Rename from lshr<mode>3.
3753         (vrotl<mode>3): Rename from rotl<mode>3.
3754
3755 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3756
3757         PR target/36224
3758         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
3759         multiply gives the wrong value when doing widening multiplies.
3760         (vec_widen_smult_lo_v4si): Ditto.
3761
3762 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3763
3764         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
3765         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
3766         emit_library_call_value. 
3767         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
3768         * tree.h (ECF_LIBCALL_BLOCK): Removed.
3769         * calls.c (initialize_argument_information, precompute_arguments, 
3770         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
3771         (precompute_arguments): Removed flags parameter.
3772         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
3773         
3774 2008-05-14  Richard Guenther  <rguenther@suse.de>
3775
3776         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
3777         Make sure to register the store if the use is a PHI_NODE.
3778
3779 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3780
3781         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3782         memory if the component is to be referenced in BLKmode according
3783         to get_inner_reference.
3784
3785 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
3786
3787         * calls.c (emit_library_call_value_1): Restore code clearing
3788         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
3789
3790 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3791             Nicolas Roche  <roche@adacore.com>
3792
3793         * configure.ac: Add support for a "gcc_subdir" variable in
3794         config-lang.in, to denote a subdirectory where the language/GCC
3795         integration files are to be found.
3796         * configure: Regenerate.
3797
3798 2008-05-14  Ira Rosen  <irar@il.ibm.com>
3799
3800         PR tree-optimization/36098
3801         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
3802         value for the first load in the group in case of a gap.
3803         (vect_build_slp_tree): Check that there are no gaps in loads.
3804
3805 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3806
3807         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
3808         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
3809         expand_copysign_bit, ): Change call to emit_no_conflict_block to
3810         emit_insn and remove unneeded code to construct extra args.
3811         (emit_no_conflict_block): Removed.
3812         * optabls.h: (emit_no_conflict_block): Removed.
3813         * cse.c (cse_extended_basic_block): Remove search for
3814         REG_NO_CONFLICT note.
3815         * global.c: Removed incorrect comment added in revision 117.
3816         * expr.c (convert_move): Change call to emit_no_conflict_block to
3817         emit_insn.
3818         * recog.c: Change comments so that they do not mention
3819         REG_NO_CONFLICT.
3820         * local_alloc.c (combine_regs): Removed last parameter.
3821         (no_conflict_p): Removed.
3822         (block_alloc): Removed note, no_conflict_combined_regno and set
3823         local vars. Removed all code to process REG_NO_CONFLICT blocks.
3824         (combine_regs): Removed already_dead and code to look for
3825         REG_NO_CONFLICT notes.
3826         * lower_subreg (remove_retval_note): Removed code to look for
3827         REG_NO_CONFLICT block.
3828         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
3829         (resolve_clobber): Remove code to process libcalls that have
3830         REG_NO_CONFLICT notes.
3831         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
3832         case.
3833         * combine.c (can_combine_p, distribute_notes):  Removed
3834         REG_NO_CONFLICT case.
3835         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
3836         to emit_insns.
3837         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
3838         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
3839         Ditto.
3840         * reg-notes.def (NO_CONFLICT): Removed.
3841
3842 2008-05-14  David S. Miller  <davem@davemloft.net>
3843
3844         * config/sparc/sparc.c (sparc_profile_hook): If
3845         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
3846         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
3847         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3848
3849 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3850
3851         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
3852
3853 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
3854
3855         PR target/36222
3856         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
3857         and op1 expansion before vector concat to have less live pseudos.
3858
3859 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
3860
3861         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3862         ix86_expand_vector_set if supported.
3863
3864 2008-05-13  Diego Novillo  <dnovillo@google.com>
3865             Kenneth Zadeck  <zadeck@naturalbridge.com>
3866
3867         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
3868
3869         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
3870         phinodes_print_statistics, init_ssanames, fini_ssanames,
3871         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
3872         release_ssa_name, release_defs, replace_ssa_name_symbol,
3873         ssanames_print_statistics): Move ...
3874         * tree-flow.h: ... here.
3875         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
3876         Use FN instead of cfun.
3877         (make_ssa_name_fn): Rename from make_ssa_name.
3878         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
3879         * tree-flow-inline.h (make_ssa_name): Move from
3880         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
3881         * omp-low.c (expand_omp_parallel):
3882         * tree-flow-inline.h (redirect_edge_var_map_result):
3883         * tree-ssa.c (init_tree_ssa): Add argument FN.
3884         Use it instead of cfun.  Update all users.
3885
3886 2008-05-13  Tom Tromey  <tromey@redhat.com>
3887
3888         PR preprocessor/22168:
3889         * doc/cpp.texi (Top): Update menu.
3890         (Alternatives to Wrapper #ifndef): New node.
3891         (Other Directives): Document deprecation.
3892         (Obsolete Features): Remove menu.
3893         (Assertions): Merge node into Obsolete Features.
3894         (Obsolete once-only headers): Move earlier; rename to Alternatives
3895         to Wrapper #ifndef.
3896         * doc/cppopts.texi: Update.
3897         * c.opt (Wdeprecated): Enable for C and ObjC.
3898         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
3899         (C++ Dialect Options): Move -Wno-deprecated from here to...
3900         (Warning Options): ... here.
3901
3902 2008-05-13  Richard Guenther  <rguenther@suse.de>
3903
3904         PR middle-end/36227
3905         * fold-const.c (fold_sign_changed_comparison): Do not allow
3906         changes in pointer-ness.
3907
3908 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3909
3910         PR target/24713
3911         * config/sh/sh.c (sh_expand_prologue): Don't clear
3912         RTX_FRAME_RELATED_P for push insns.
3913
3914 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
3915
3916         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
3917
3918 2008-05-12  Anatoly Sokolov <aesok@post.ru>
3919
3920         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
3921         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
3922         Use 'machine->is_leaf' instead of 'leaf_func_p'.
3923
3924 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
3925
3926         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
3927         (*vec_concatv4sf_sse): This.
3928         (*sse2_concatv2si): Renamed to ...
3929         (*vec_concatv2si_sse2): This.
3930         (*sse1_concatv2si): Renamed to ...
3931         (*vec_concatv2si_sse): This.
3932         (*vec_concatv2di_rex): Renamed to ...
3933         (*vec_concatv2di_rex64): This.
3934         (*vec_concatv2si_sse4_1): New.
3935         (*vec_concatv2di_rex64_sse4_1): Likewise.
3936
3937 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
3938
3939         PR rtl-optimization/36111
3940         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
3941         that was created for swappable operands.
3942
3943 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
3944
3945         PR ada/36001
3946         * Makefile.in: Substitute GNATMAKE and GNATBIND.
3947         * configure.ac: Add call to ACX_PROG_GNAT.
3948
3949 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
3950
3951         * optc-gen.awk: Fix comment typo.
3952
3953 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3954
3955         * pretty-print.c (pp_integer_with_precision): Use
3956         HOST_LONG_LONG_FORMAT.
3957
3958 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
3959
3960         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
3961                 
3962 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
3963
3964         * config/i386/i386.c (bdesc_ptest): Removed.
3965         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
3966         (bdesc_args): Add __builtin_ia32_ptestz128,
3967         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
3968         (ix86_init_mmx_sse_builtins): Updated.
3969         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
3970         (ix86_expand_builtin): Updated.
3971
3972 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
3973
3974         * tree-cfg.c (valid_fixed_convert_types_p): New function.
3975         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
3976
3977 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
3978
3979         * value-prof.c (interesting_stringop_to_profile): Do not
3980         return early for BUILT_IN_MEMPCPY.
3981
3982 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3983
3984         * calls.c (expand_call): Don't use callgraph to increase
3985         preferred_stack_boundary.
3986
3987         * cgraph.h (cgraph_rtl_info): Use unsigned on
3988         preferred_incoming_stack_boundary.
3989
3990         * final.c (rest_of_clean_state): Use unsigned on
3991         preferred_stack_boundary.
3992
3993 2008-05-09  Tom Tromey  <tromey@redhat.com>
3994
3995         PR preprocessor/22231:
3996         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
3997         proceeding.
3998
3999 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
4000
4001         PR tree-optimization/36129
4002         * tree-ssa-ccp.c: Include value-prof.h.
4003         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
4004         built-in function was folded to a constant.
4005         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
4006
4007 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
4008             Sebastian Pop  <sebastian.pop@amd.com>
4009
4010         * tree-scalar-evolution.c: Document instantiate_scev.
4011         (instantiate_parameters_1): Renamed instantiate_scev_1.
4012         Don't use the same loop for instantiation_loop and evolution_loop.
4013         (instantiate_scev): New.
4014         (instantiate_parameters): Moved...
4015         (resolve_mixers): Update call to instantiate_scev_1 to pass the
4016         same loop twice.  Maintains the semantics for this function.
4017         * tree-scalar-evolution.h (instantiate_scev): Declare.
4018         (instantiate_parameters): ...here.  Now static inline.
4019         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
4020         instead of resolve_mixers.
4021
4022 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
4023
4024         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
4025
4026 2008-05-09  Tomas Bily  <tbily@suse.cz>
4027
4028         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
4029         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
4030         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4031         * c-common.c (c_common_truthvalue_conversion): Likewise.
4032         * tree-object-size.c (compute_object_offset): Likewise.
4033         * tree-inline.c (estimate_num_insns_1): Likewise.
4034         * varasm.c (const_hash_1, compare_constant, copy_constant)
4035         (compute_reloc_for_constant, output_addressed_constants)
4036         (initializer_constant_valid_p): Likewise.
4037         * c-omp.c (check_omp_for_incr_expr): Likewise.
4038         * gimplify.c (gimplify_expr): Likewise.
4039         * c-typeck.c (c_finish_return): Likewise.
4040         * tree-vectorizer.c (supportable_widening_operation)
4041         (supportable_narrowing_operation): Likewise.
4042         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
4043         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
4044         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
4045         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
4046         (descr_info_loc): Likewise.
4047         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4048         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
4049         (fold_unary): Likewise.
4050         * builtins.c (get_pointer_alignment): Likewise.
4051         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
4052         (instantiate_parameters_1): Likewise.
4053         * tree.c (expr_align, stabilize_reference): Likewise.
4054         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
4055         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
4056         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
4057         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4058         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
4059         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
4060         Likewise.
4061         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
4062         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
4063         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
4064         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
4065         (forward_propagate_comparison)
4066         (tree_ssa_forward_propagate_single_use_vars): Likewise.
4067         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
4068         * emit-rtl.c (component_ref_for_mem_expr)
4069         (set_mem_attributes_minus_bitpos): Likewise.
4070         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
4071         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
4072         Likewise.
4073         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
4074         (build_function_call, pointer_diff, build_compound_expr)
4075         (c_finish_return): Likewise.
4076         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
4077         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
4078         Likewise.
4079         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
4080         * expr.c (is_aligning_offset): Likewise.
4081         * tree-ssa-alias.c (is_escape_site): Likewise.
4082         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
4083         (check_all_va_list_escapes): Likewise.
4084         * tree-ssa-loop-ivopts.c (determine_base_object)
4085         (determine_common_wider_type): Likewise.
4086         * dojump.c (do_jump): Likewise.
4087         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
4088         * tree-gimple.c (is_gimple_cast): Likewise.
4089         * fold-const.c (decode_field_reference, )
4090         (fold_sign_changed_comparison, fold_unary, fold_comparison)
4091         (fold_binary): Likewise.
4092         * tree-ssa-alias-warnings.c (find_alias_site_helper)
4093         (already_warned_in_frontend_p): Likewise.
4094         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
4095         * tree.c (really_constant_p, get_unwidened): Likewise.
4096         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
4097         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
4098         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
4099         Likewise.
4100         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
4101         CONVERT_EXPR_P.
4102         (CONVERT_EXPR_P): Define.
4103         (CASE_CONVERT): Define.
4104         
4105 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
4106
4107         PR middle-end/36117
4108         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
4109         (delete_unmarked_insns): When deleting a call, call
4110         delete_unreachable_blocks.
4111         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4112         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
4113
4114 2008-05-08  Richard Guenther  <rguenther@suse.de>
4115
4116         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
4117         (-ftree-salias): Likewise.
4118         (salias-max-implicit-fields): Remove param documentation.
4119         (salias-max-array-elements): Likewise.
4120         * tree-pass.h (pass_create_structure_vars): Remove.
4121         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4122         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4123         * tree-ssa-alias.c (create_structure_vars): Remove.
4124         (gate_structure_vars): Likewise.
4125         (pass_create_structure_vars): Likewise.
4126         (gate_build_alias): Likewise.
4127         (pass_build_alias): Adjust to run always and dump the function.
4128         * common.opt (ftree-salias): Hide.
4129         * passes.c (init_optimization_passes): Remove
4130         pass_create_structure_vars, adjust comment.
4131         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4132         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4133         * opts.c (decode_options): Do not set flag_tree_salias.
4134         (common_handle_option): Add OPT_ftree_salias to the backward
4135         compatibility section.
4136
4137 2008-05-08  Richard Guenther  <rguenther@suse.de>
4138
4139         * tree-flow-inline.h (var_can_have_subvars): Move ...
4140         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
4141         * tree-flow.h (var_can_have_subvars): Remove.
4142         (push_fields_onto_fieldstack): Remove.
4143         (sort_fieldstack): Likewise.
4144         (struct fieldoff): Move ...
4145         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
4146         alias_set and base_for_components fields.
4147         (sort_fieldstack): Make static.
4148         (push_fields_onto_fieldstack): Likewise.  Remove code that
4149         handles anything but RECORD_TYPEs.  Remove alias_set and
4150         base_for_components handling.
4151         (create_variable_info_for): Adjust.
4152
4153 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
4154
4155         * common.opt (Wframe-larger-than=): Shorten the help message
4156         to one line.
4157         * doc/invoke.texi (Wframe-larger-than=): Add more description.
4158
4159 2008-05-08  Rafael Espindola  <espindola@google.com>
4160
4161         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
4162         trap.
4163         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
4164         trap and that both operands are gimple values.
4165         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
4166         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
4167         is a fp operation.
4168
4169 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4170
4171         * read-rtl.c (join_c_conditions): Return the first string if the
4172         two strings are equal.
4173
4174 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4175
4176         * gensupport.h (pred_data): Add a "num_codes" field.
4177         (add_predicate_code): Declare.
4178         * gensupport.c (add_predicate_code): New function.
4179         (std_pred_table): Add an "allows_const_p" field.
4180         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
4181         Remove the (incomplete) list of such codes from the codes field.
4182         (init_predicate_table): Use add_predicate_code.  Add all
4183         RTX_CONST_OBJs if allows_const_p is true.
4184         * genrecog.c (process_define_predicate): Use add_predicate_code.
4185
4186 2008-05-08  David Daney  <ddaney@avtrex.com>
4187             Richard Sandiford  <rsandifo@nildram.co.uk>
4188         
4189         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
4190         special case of constant zero operands.
4191         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
4192         old and new values.  Special case constant zero values.
4193         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
4194         fails.
4195         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
4196         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
4197
4198 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
4199
4200         PR target/36090
4201         * simplify-rtx.c (simplify_plus_minus): Create CONST of
4202         similar RTX_CONST_OBJ before CONST_INT.
4203
4204 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
4205
4206         * stmt.c (expand_stack_restore): Change sa mode if needed.
4207
4208 2008-05-08  Richard Guenther  <rguenther@suse.de>
4209
4210         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
4211         return type to bool.
4212         (ix86_sol10_return_in_memory): Likewise.
4213         (ix86_i386elf_return_in_memory): Likewise.
4214         (ix86_i386interix_return_in_memory): Likewise.
4215         * config/i386/i386.c (ix86_return_in_memory): Likewise.
4216         (ix86_sol10_return_in_memory): Likewise.
4217         (ix86_i386elf_return_in_memory): Likewise.
4218         (ix86_i386interix_return_in_memory): Likewise.
4219
4220 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4221
4222         PR bootstrap/36180
4223         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
4224         fndecl argument.
4225         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
4226         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
4227         declared in front.
4228
4229 2008-05-08  Richard Guenther  <rguenther@suse.de>
4230
4231         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
4232         * tree-data-ref.h (struct dr_alias): Remove subvars field.
4233         (DR_SUBVARS): Remove.
4234         * tree-dfa.c (dump_subvars_for): Remove.
4235         (debug_subvars_for): Likewise.
4236         (dump_variable): Do not dump subvars.
4237         (remove_referenced_var): Do not remove subvars.
4238         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
4239         (lookup_subvars_for_var): Remove.
4240         (get_subvars_for_var): Likewise.
4241         (get_subvars_at): Likewise.
4242         (get_first_overlapping_subvar): Likewise.
4243         (overlap_subvar): Likewise.
4244         * tree-flow.h (subvar_t): Remove.
4245         (struct var_ann_d): Remove subvars field.
4246         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
4247         argument.  Remove special handling of SFTs.
4248         (compute_tag_properties): Likewise.
4249         (set_initial_properties): Likewise.
4250         (compute_call_clobbered): Likewise.
4251         (count_mem_refs): Likewise.
4252         (compute_memory_partitions): Likewise.
4253         (compute_flow_insensitive_aliasing): Likewise.
4254         (setup_pointers_and_addressables): Likewise.
4255         (new_type_alias): Likewise.
4256         (struct used_part): Remove.
4257         (used_portions): Likewise.
4258         (struct used_part_map): Likewise.
4259         (used_part_map_eq): Likewise.
4260         (used_part_map_hash): Likewise.
4261         (free_used_part_map): Likewise.
4262         (up_lookup): Likewise.
4263         (up_insert): Likewise.
4264         (get_or_create_used_part_for): Likewise.
4265         (create_sft): Likewise.
4266         (create_overlap_variables_for): Likewise.
4267         (find_used_portions): Likewise.
4268         (create_structure_vars): Likewise.
4269         * tree.def (STRUCT_FIELD_TAG): Remove.
4270         * tree.h (MTAG_P): Adjust.
4271         (struct tree_memory_tag): Remove base_for_components and
4272         unpartitionable flags.
4273         (struct tree_struct_field_tag): Remove.
4274         (SFT_PARENT_VAR): Likewise.
4275         (SFT_OFFSET): Likewise.
4276         (SFT_SIZE): Likewise.
4277         (SFT_NONADDRESSABLE_P): Likewise.
4278         (SFT_ALIAS_SET): Likewise.
4279         (SFT_UNPARTITIONABLE_P): Likewise.
4280         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
4281         (union tree_node): Remove sft field.
4282         * alias.c (get_alias_set): Remove special handling of SFTs.
4283         * print-tree.c (print_node): Remove handling of SFTs.
4284         * tree-dump.c (dequeue_and_dump): Likewise.
4285         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
4286         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
4287         * tree-predcom.c (set_alias_info): Do not set subvars.
4288         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
4289         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
4290         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
4291         (add_vars_for_offset): Remove.
4292         (add_virtual_operand): Remove special handling of SFTs.
4293         (add_call_clobber_ops): Likewise.
4294         (add_call_read_ops): Likewise.
4295         (get_asm_expr_operands): Likewise.
4296         (get_modify_stmt_operands): Likewise.
4297         (get_expr_operands): Likewise.
4298         (add_to_addressable_set): Likewise.
4299         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
4300         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4301         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
4302         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
4303         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
4304         (tree_node_structure): Likewise.
4305         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
4306         handling of SFTs.
4307         (find_what_p_points_to): Likewise.
4308
4309 2008-05-08  Sa Liu  <saliu@de.ibm.com>
4310
4311         * config/spu/spu.md: Fixed subti3 pattern.
4312
4313 2008-05-08  Richard Guenther  <rguenther@suse.de>
4314
4315         PR middle-end/36154
4316         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
4317         sure to create a representative for trailing arrays for PTA.
4318
4319 2008-05-08  Richard Guenther  <rguenther@suse.de>
4320
4321         PR middle-end/36172
4322         * fold-const.c (operand_equal_p): Two objects which types
4323         differ in pointerness are not equal.
4324
4325 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4326
4327         * calls.c (compute_argument_block_size): Add argument tree fndecl.
4328         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
4329         (emit_library_call_value_1): Add new variable fndecl initialized by
4330         NULL_TREE. It should be the decl type of orgfun, but this information
4331         seems not to be available here, so it uses the default calling abi.
4332         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
4333         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
4334         by TARGET_RETURN_IN_MEMORY.
4335         * config/i386/i386-interix.h: Likewise.
4336         * config/i386/i386.h: Likewise.
4337         * config/i386/i386elf.h: Likewise.
4338         * config/i386/ptx4-i.h: Likewise.
4339         * config/i386/sol2-10.h: Likewise.
4340         * config/i386/sysv4.h: Likewise.
4341         * config/i386/vx-common.h: Likewise.
4342         * config/cris/cris.h: Removed #if 0 clause.
4343         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
4344         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
4345         argument.
4346         (ix86_sol10_return_in_memory): Likewise.
4347         (ix86_i386elf_return_in_memory): New.
4348         (ix86_i386interix_return_in_memory): New.
4349         * config/mt/mt-protos.h (mt_return_in_memory): New.
4350         * config/mt/mt.c: Likewise.
4351         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4352         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
4353         * config/bfin/bfin.h: Likewise.
4354         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
4355         argument.
4356         * config/bfin/bfin.c: Likewise.
4357         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4358         * config/alpha/unicosmk.h: Likewise.
4359         * config/i386/cygming.h: Likewise.
4360         * config/iq2000/iq2000.h: Likewise.
4361         * config/mips/mips.h: Likewise.
4362         * config/mn10300/mn10300.h: Likewise.
4363         * config/rs6000/rs6000.h: Likewise.
4364         * config/score/score.h: Likewise.
4365         * config/spu/spu.h: Likewise.
4366         * config/v850/v850.h: Likewise.
4367         * defaults.h: Likewise.
4368         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
4369         * expr.c (emit_block_move): Adjust use of
4370         OUTGOING_REG_PARM_STACK_SPACE.
4371         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
4372         OUTGOING_REG_PARM_STACK_SPACE.
4373         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
4374
4375 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
4376
4377         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
4378         on OMP_RETURN for OMP_FOR.
4379
4380         PR debug/35896
4381         * dwarf2out.c (dw_expand_expr, common_check): Removed.
4382         (fortran_common): New function.
4383         (gen_variable_die): Call fortran_common instead of common_check,
4384         adjust for it returning tree instead of rtx.  Formatting.
4385
4386 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4387
4388         PR rtl/7335
4389         PR rtl/33826
4390         * see.c (see_copy_insn): Copy new pure const attributes for new call.
4391         * c-decl.c (merge_decls): Ditto.
4392         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
4393         to RTL_CONST_OR_PURE_CALL_P.
4394         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
4395         Initialized DECL_LOOPING_CONST_PURE.
4396         (process_call_operands): Set tree_side_effects properly.
4397         * tree.h (TREE_READONLY_DECL_P): Removed.
4398         (DECL_IS_PURE): Renamed to DECL_PURE_P.
4399         (DECL_LOOPING_OR_CONST_P): New macro.
4400         (struct tree_function_decl): Added looping_const_or_pure_p.
4401         (ECF_*) Renumbered.
4402         (ECF_LOOPING_OR_CONST_P): New macro.
4403         * rtlanal.c (pure_const_p): Removed.
4404         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
4405         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
4406         to RTL_CONST_CALL_P.
4407         * ipa-pure-const.c (pure_const_state_e): Added looping field.
4408         (check_decl, check_tree, check_call, scan_function): Initialize
4409         looping.
4410         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
4411         (static_execute): Set looping true for recursive functions.
4412         Undo setting state to IPA_NEITHER for recursive functions.
4413         * cse.c (cse_insn): 
4414         * ifcvt.c (noce_can_store_speculate_p): Changed
4415         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
4416         RTL_CONST_OR_PURE_CALL_P.
4417         * dse.c (scan_insn): Ditto.
4418         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
4419         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
4420         RTL_CONST_OR_PURE_CALL_P.
4421         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
4422         pure_call_p to RTL_CONST_CALL_P.
4423         * gimplify.c (gimplify_call_expr): Clear side effects for
4424         non-looping pure and constant calls.
4425         * calls.c (emit_call_1): Set rtl flags from ecf flags.
4426         (flags_from_decl_or_type): Set ecf flags from decl flags.
4427         (initialize_argument_information): Turn off
4428         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
4429         Change const to pure if callee_copies is true rather than just
4430         turning off const.
4431         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
4432         way of marking pure calls.
4433         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
4434         Remove hack that was supposed to fix pr7335 and remove old
4435         way of marking pure calls.
4436         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
4437         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
4438         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
4439         RTL_CONST_OR_PURE_CALL_P.
4440         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
4441         * loop-invariant.c (find_exits, find_invariant_bb): Changed
4442         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
4443         * sched-deps.c (schedule_analyze): Ditto.
4444         * rtl.h (struct rtx_def): Use call field, unchanging field, and
4445         return_val field of calls to represent pure and const function info.
4446         (CONST_OR_PURE_CALL_P): Deleted macro.
4447         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4448         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
4449         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
4450         TREE_READONLY.
4451         * tree-optimize.c (execute_fixup_cfg): Added test for
4452         ECF_LOOPING_CONST_OR_PURE.
4453         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
4454         DECL_PURE_P.
4455         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
4456         effects for looping pure or const calls.
4457         (verify_gimple_expr): Added verification code. 
4458         * config/alpha/alpha.c (alpha_legitimize_address,
4459         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
4460         RTL_CONST_CALL_P.
4461         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
4462         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
4463         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
4464         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
4465         RTL_CONST_OR_PURE_CALL_P.
4466         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
4467         and const calls to be deleted.
4468
4469 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4470
4471         PR target/35714
4472         * config/i386/mmx.md (mmx_subv2sf3): New expander.
4473         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
4474         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
4475         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4476         to handle nonimmediate operands.
4477         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
4478         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
4479         to handle nonimmediate operands.
4480         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
4481         (mmx_pmulhrwv4hi3): New expander.  Use
4482         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4483         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
4484         (sse2_umulv1siv1di3): New expander.  Use
4485         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4486         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
4487         (mmx_eq<mode>3): New expander.  Use
4488         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4489         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
4490         (mmx_uavgv8qi3): New expander.  Use
4491         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4492         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
4493         (mmx_uavgv4hi3): New expander.  Use
4494         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4495
4496         * config/i386/sse.md
4497         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
4498         to handle nonimmediate operands.
4499         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
4500         to handle nonimmediate operands.
4501         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
4502         to handle nonimmediate operands.
4503         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
4504         to handle nonimmediate operands.
4505         (sse2_unpckhpd_exp): New expander.  Use
4506         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4507         (sse2_unpcklpd_exp): New expander.  Use
4508         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4509         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
4510         to handle nonimmediate operands.
4511         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
4512         to handle nonimmediate operands.
4513         (*sse2_<plusminus_insn><mode>3): Rename from
4514         sse2_<plusminus_insn><mode>3 insn pattern.
4515         (sse2_<plusminus_insn><mode>3): New expander.  Use
4516         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4517         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
4518         (sse2_umulv2siv2di3): New expander.  Use
4519         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4520         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
4521         (sse4_1_mulv2siv2di3): New expander.  Use
4522         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4523         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
4524         (sse2_pmaddwd): New expander.  Use
4525         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4526         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
4527         (sse2_eq<mode>3): New expander.  Use
4528         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4529         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
4530         (sse4_1_eqv2di3): New expander.  Use
4531         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4532         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4533         (sse2_uavgv16qi3): New expander.  Use
4534         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4535         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4536         (sse2_uavgv16qi3): New expander.  Use
4537         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4538         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
4539         (sse2_uavgv8hi3): New expander.  Use
4540         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4541         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
4542         (ssse3_pmulhrswv8hi3): New expander.  Use
4543         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4544         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
4545         (ssse3_pmulhrswv4hi3): New expander.  Use
4546         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4547
4548         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
4549         (<sse>_vmmul<mode>3): Ditto.
4550         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
4551         (divv2df3): Ditto.
4552         (ssse3_pmaddubsw128): Use register_operand for operand 1.
4553         (ssse3_pmaddubsw): Ditto.
4554
4555         * config/i386/i386.c (struct_builtin_description)
4556         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
4557         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
4558         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
4559         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
4560         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
4561         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
4562         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
4563         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
4564         (ix86_fixup_binary_operands): Assert that src1
4565         and src2 must have the same mode when swapped.
4566         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
4567         and ix86_binary_operator_ok.  Do not force operands in registers
4568         when optimizing.
4569
4570 2008-05-07  Jan Hubicka  <jh@suse.cz>
4571
4572         * cgraph.c (dump_cgraph_node): Update.
4573         * cgraph.h (cgraph_local_info): Break out inline summary.
4574         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
4575         hook.
4576         * ipa-inline (inline_summary): New accestor function.
4577         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
4578         cgraph_decide_inlining, compute_inline_parameters): Update.
4579         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
4580
4581 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4582
4583         Cleanup ColdFire scheduling support and add V4 pipeline model.
4584
4585         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
4586         (define_attr cpu): Add cfv4 value.
4587         (define_attr type, define_attr type1): Merge into a single 'type'
4588         attribute.  Update all uses.
4589         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
4590         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
4591         Update all uses.
4592         (define_attr opx_mem, define_attr opy_mem): Remove.
4593         (define_attr op_mem): Clean up, update comment.
4594         (define_attr size): Use specific values instead of general int.
4595         (define_attr guess, define_attr split): Remove.  Update all uses.
4596         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
4597         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
4598         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
4599         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
4600         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
4601         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
4602         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
4603         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
4604         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
4605         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
4606         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
4607         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
4608         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
4609         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
4610         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
4611         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
4612         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
4613         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
4614         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
4615         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
4616         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
4617         Update or set attributes.
4618         (stack_tie): New fake instruction.
4619
4620         * config/m68k/m68k.h (TUNE_CFV4): New macro.
4621         (m68k_sched_attr_size): Update declaration.
4622         (m68k_sched_attr_type2): Remove.
4623         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
4624         Declare new bypass predicates.
4625
4626         * config/m68k/m68k.c (m68k_sched_issue_rate,
4627         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
4628         implementations.
4629         (TARGET_SCHED_ISSUE_RATE,
4630         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
4631         (override_options): Handle scheduling for ColdFire V4 core.
4632         (m68k_expand_prologue): Emit stack_tie.
4633         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
4634         'OP_TYPE_FPN'.  Update all uses.
4635         (sched_guess_p): Remove.
4636         (sched_address_type): Handle symbolic addresses.
4637         (sched_get_operand): New static function.
4638         (sched_operand_type): Merge into sched_attr_op_type.
4639         (sched_attr_op_type): Handle FP registers, handle quick constants,
4640         update.
4641         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
4642         (m68k_sched_attr_size): Update.  Move logic to ...
4643         (sched_get_attr_size_int): New static function.
4644         (sched_get_opxy_mem_type): New static function.
4645         (m68k_sched_attr_op_mem): Update.
4646         (m68k_sched_attr_type2): Remove.
4647         (sched_cfv4_bypass_data): New static variable.
4648         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
4649         (m68k_sched_issue_rate): Implement scheduler hook.
4650         (struct _sched_ib: enabled_p): New field.
4651         (m68k_sched_variable_issue): Update.  Handle V4.
4652         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
4653         sched_dump_class_func_t, sched_dump_split_class,
4654         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
4655         sched_dump_dfa_class, m68k_sched_dump): Remove.
4656         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
4657         hook.
4658         (m68k_sched_init_global): Remove statisctics dumping, introduce
4659         sanity check that all instructions have pipeline reservations.  Handle
4660         ColdFire V4 core.
4661         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4662         Handle ColdFire V4 core.
4663         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
4664         New static functions.
4665         (m68k_sched_address_bypass_p): New bypass predicate.
4666         (sched_get_indexed_address_scale): New static function.
4667         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
4668
4669         * cf.md: Update comments.
4670         (define_attr type2): Remove.  Use 'type' attribute instead.
4671         Update all uses.
4672         (cf_ib): Rename to cfv123_ib.  Update all uses.
4673         (cf_oep): Rename to cfv123_oep.  Update all uses.
4674         (cf_chr): Rename to cfv123_chr.  Update all uses.
4675         (cf_mem): Rename to cfv123_mem.  Update all uses.
4676         (cf_mac): Move to more appropriate place.
4677         (cfv123_guess): New automaton and cpu_unit.
4678         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
4679         Update uses of 'size' attribute.  Handle before reload scheduling.
4680         (cfv123_guess): New dummy reservation for unhandled instructions.
4681         (cfv4_*): Pipeline description of ColdFire V4 core.
4682         (ignore): New reservation to handle 'ignore' type.
4683
4684 2008-05-07  Ian Lance Taylor  <iant@google.com>
4685
4686         PR middle-end/36013
4687         * gimplify.c (find_single_pointer_decl_1): Don't look through
4688         indirections.
4689         (find_single_pointer_decl): Adjust comments.
4690
4691 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
4692
4693         PR middle-end/36137
4694         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
4695         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
4696
4697         PR middle-end/36106
4698         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
4699         integral type rather than floating point, then VIEW_CONVERT_EXPR
4700         to the floating point type.
4701
4702 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4703
4704         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
4705         TFmode op0 to register.
4706
4707 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
4708
4709         * c-decl.c (grokdeclarator): Comment typo.
4710
4711 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
4712
4713         * tree-flow.h: Remove prototype for computed_goto_p.
4714         * tree-cfg.c (computed_goto_p): Make static.
4715
4716 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
4717
4718         PR target/35657
4719         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4720         (contains_aligned_value_p): This.  Handle _Decimal128.
4721         (ix86_function_arg_boundary): Only align _Decimal128 to its
4722         natural boundary and handle it properly.
4723
4724 2008-05-06  Martin Jambor  <mjambor@suse.cz>
4725
4726         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
4727         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
4728         (ipcp_method_set_orig_node): Removed.
4729         (ipcp_cval_get_cvalue_type): Removed.
4730         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
4731         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
4732         (ipcp_cval_set_cvalue_type): Removed.
4733         (ipcp_cval_get_cvalue): Removed.
4734         (ipcp_cval_set_cvalue): Removed.
4735         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
4736         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
4737         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
4738         (ipcp_cval_meet): Renamed to ipa_lattice_meet
4739         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
4740         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
4741         (ipcp_get_ith_lattice): Changed parameters.
4742         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
4743         (ipcp_lattice_from_jfunc): Changed parameters.
4744         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
4745         (ipcp_method_cval_print): Added temporary variable info.
4746         (ipcp_redirect): Removed already unused local variable caller.
4747         (ipcp_redirect): New temporary variable orig_callee_info
4748         (ipcp_redirect): Removed newly unused local variable callee.
4749         (ipcp_redirect): Removed (a bit confusing) local variable type.
4750         (ipcp_insert_stage): Added local variable info.
4751         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
4752         renamed too
4753         (ipcp_formal_create): Removed.
4754         (ipcp_method_cval_set): Removed.
4755         (ipcp_propagate_stage): Renamed lattice variables.
4756         (ipcp_method_cval_set_cvalue_type): Removed.
4757         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
4758         (ipcp_print_all_lattices): Changed printed strings to refer to 
4759         lattices rather than cvals.
4760         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
4761         (ipcp_propagate_const): Changed formal parameters.
4762         (build_const_val): Changed formal parameters.
4763         (ipcp_insert_stage): Removed useless variable cvalue
4764         (build_const_val): Changed formal parameters.
4765         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
4766         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
4767         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
4768         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
4769         (ipcp_print_func_profile_counts): Changed string from "method" to 
4770         "function"
4771         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
4772         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
4773         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
4774         (ipcp_structures_print): Renamed to ipcp_print_all_structures
4775         (ipcp_profile_print): Renamed to ipcp_print_profile_data
4776         (ipcp_lat_is_const): Changed parameters and made inline.
4777         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
4778         (ipcp_redirect): Renamed to ipcp_need_redirect_p
4779         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
4780         the predicate condition directly
4781         (ipcp_propagate_stage): Added local variable args. Removed local
4782         variable callee.  (Both are mere code simplifications.)
4783         (ipcp_method_dont_insert_const): Renamed to
4784         ipcp_node_not_modifiable_p.
4785         (ipcp_node_not_modifiable_p): Made inline.
4786         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
4787         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
4788         (ipcp_print_all_lattices): Removed variable cvalue
4789         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
4790         Updated comments.
4791
4792 2008-05-06  Olivier Hainque  <hainque@adacore.com>
4793
4794         * tree-sra.c (try_instantiate_multiple_fields): Early return
4795         if field has POINTER_TYPE.
4796
4797 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
4798
4799         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
4800         by using 'q' specifier for instruction.
4801         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
4802
4803 2008-05-06  Anatoly Sokolov <aesok@post.ru>
4804
4805         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4806         Change mode of zero_extract from QImode to HImode.
4807         (sign bit tests peepholes): (Ditto.).
4808
4809 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
4810
4811         * config/i386/mmx.md: Remove double backslashes from asm templates.
4812         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
4813         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4814         to handle nonimmediate operands.
4815         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
4816         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4817         to handle nonimmediate operands.
4818         (*mmx_<code>v2sf3_finite): New insn pattern.
4819         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
4820         (mmx_<code>v2sf3): New expander.  Use
4821         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4822         (mmx_<plusminus_insn><mode>3): New expander.  Use
4823         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4824         (*mmx_<plusminus_insn><mode>3): New insn pattern.
4825         (mmx_add<mode>3): Removed.
4826         (mmx_ssadd<mode>3): Ditto.
4827         (mmx_usadd<mode>3): Ditto.
4828         (mmx_sub<mode>3): Ditto.
4829         (mmx_sssub<mode>3): Ditto.
4830         (mmx_ussub<mode>3): Ditto.
4831         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
4832         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
4833         to handle nonimmediate operands.
4834         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
4835         insn pattern.
4836         (mmx_smulv4hi3_highpart): New expander.  Use
4837         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4838         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
4839         insn pattern.
4840         (mmx_umulv4hi3_highpart): New expander.  Use
4841         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4842         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
4843         (mmx_<code>v4hi3): New expander.  Use
4844         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4845         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
4846         (mmx_<code>v8qi3): New expander.  Use
4847         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4848         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
4849         (mmx_<code><mode>3): New expander.  Use
4850         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4851
4852 2008-05-05  Jan Hubicka  <jh@suse.cz>
4853
4854         PR tree-optimization/36118
4855         * passes.c (pass_init_dump_file): Fix dump header.
4856
4857 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4858
4859         PR middle-end/36141
4860         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
4861         VCE for function decls.
4862
4863 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4864
4865         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
4866
4867 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4868
4869         * config/i386/i386.md (sat_plusminus): New.
4870         (plusminus_insn): Likewise.
4871         (plusminus_mnemonic): Likewise.
4872         (addsub): Removed.
4873         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
4874         (*<addsub><mode>3_cc_overflow): Renamed to ...
4875         (*<plusminus_insn><mode>3_cc_overflow): This.
4876         (*<addsub>si3_zext_cc_overflow): Renamed to ...
4877         (*<plusminus_insn>si3_zext_cc_overflow): This.
4878
4879         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
4880         (<plusminus_insn><mode>3): This.
4881         (*<addsub><mode>3): Renamed to ...
4882         (*<plusminus_insn><mode>3): This.
4883         (<sse>_vm<addsub><mode>3): Renamed to ...
4884         (<sse>_vm<plusminus_insn><mode>3): This.
4885         (sse3_h<addsub>v4sf3): Renamed to ...
4886         (sse3_h<plusminus_insn>v4sf3): This.
4887         (sse3_h<addsub>v2df3): Renamed to ...
4888         (sse3_h<plusminus_insn>v2df3): This.
4889         (<plusminus_insn><mode>3): New.
4890         (*<plusminus_insn><mode>3): Likewise.
4891         (sse2_<plusminus_insn><mode>3): Likewise.
4892         (add<mode>): Removed.
4893         (*add<mode>3): Likewise.
4894         (sse2_ssadd<mode>3): Likewise.
4895         (sse2_usadd<mode>3): Likewise.
4896         (sub<mode>3): Likewise.
4897         (*sub<mode>3): Likewise.
4898         (sse2_sssub<mode>3): Likewise.
4899         (sse2_ussub<mode>3): Likewise.
4900
4901 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
4902
4903         * gthr-single.h: Add in required interface elements as per gthr.h.
4904         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
4905         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
4906         Generalize UNUSED macro. 
4907         (__gthread_once): Add.
4908         (__gthread_key_create): Add.
4909         (__gthread_key_delete): Add.
4910         (__gthread_getspecific): Add.
4911         (__gthread_setspecific): Add.
4912         
4913 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
4914
4915         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
4916         the same size types for the indirect reference on the rhs, then
4917         create a VCE.
4918
4919 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
4920
4921         * config/i386/i386.md
4922         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
4923         one insn template instead of template series.
4924         (*xordi_1_rex64): Ditto.
4925         (*xordi_2_rex64): Ditto.
4926
4927 2008-05-05  Ira Rosen  <irar@il.ibm.com>
4928
4929         PR tree-optimization/36119
4930         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
4931         in case of SLP.
4932
4933 2008-06-04  Jan Hubicka  <jh@suse.cz>
4934
4935         tree-optimization/36100
4936         * tree-pass.h (pass_O0_always_inline): Declare.
4937         * ipa-inline.c (inline_transform): Remove dead code.
4938         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4939         pass_O0_always_inline): New.
4940         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
4941
4942 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
4943
4944         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
4945         mnemonic in this_param move for TARGET_64BIT.
4946
4947 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
4948
4949         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
4950         (*strmovsi_rex_1): Ditto.
4951         (*strsetsi_1): Ditto.
4952         (*strsetsi_rex_1): Ditto.
4953
4954         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
4955         adddicc expanders using SWI mode iterator.
4956
4957 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4958
4959         PR target/36121
4960         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
4961         argument handling.
4962
4963 2008-05-04  David S. Miller  <davem@davemloft.net>
4964
4965         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
4966         (sparc*-*-linux*): Use linux.h in tm_file.
4967         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
4968         compiler defaulting to 32-bit.
4969         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
4970         no longer needed.
4971         * config/sparc/linux.h: Remove definitions now obtained
4972         properly from linux.h
4973         * config/sparc/linux64.h: Likewise.
4974         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
4975         don't want this setting for 32-bit builds in a biarch compiler.
4976         * doc/install.texi: Add sparc-linux to list of targets
4977         supporting --enable-targets=all.
4978
4979 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
4980
4981         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
4982
4983 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
4984
4985         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
4986         after V4SI_FTYPE_V8HI.
4987         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
4988         case V4SI_FTYPE_V2DF.
4989
4990 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
4991
4992         * doc/invoke.texi (max-flow-memory-locations): Removed.
4993         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
4994         
4995 2008-05-03  Richard Guenther  <rguenther@suse.de>
4996
4997         PR middle-end/34973
4998         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
4999
5000 2008-05-02  David S. Miller  <davem@davemloft.net>
5001
5002         * config.gcc (need_64bit_hwint): Document libcpp dependency.
5003
5004 2008-05-02  Simon Baldwin <simonb@google.com>
5005
5006         PR bootstrap/36108
5007         * c-common.h (warn_array_subscript_range): Removed.
5008         * c-common.c (warn_array_subscript_range): Ditto.
5009         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
5010         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
5011
5012 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5013
5014         * config/i386/i386.c (ix86_special_builtin_type): New.
5015         (bdesc_special_args): Likewise.
5016         (ix86_expand_special_args_builtin): Likewise.
5017         (ix86_init_mmx_sse_builtins): Updated.
5018         (ix86_expand_builtin): Updated.
5019         (ix86_expand_store_builtin): Removed.
5020         (ix86_expand_unop_builtin): Likewise.
5021
5022         * config/i386/mm3dnow.h (__v2sf): Moved to ...
5023         * config/i386/mmintrin.h (__v2sf): Here.
5024
5025         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
5026         const __v2sf.
5027         (_mm_loadl_pi): Likewise.
5028         (_mm_storeh_pi): Replace __v2si with __v2sf.
5029         (_mm_storel_pi): Likewise.
5030
5031         * doc/extend.texi: Correct __builtin_ia32_loadhps,
5032         __builtin_ia32_loadlps, __builtin_ia32_storehps,
5033         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
5034         __builtin_ia32_loadlpd.
5035
5036 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5037
5038         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
5039         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
5040         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
5041         (ix86_init_mmx_sse_builtins): Updated.
5042         (ix86_expand_args_builtin): Likewise.
5043         (ix86_expand_builtin): Likewise.
5044         (ix86_expand_unop1_builtin): Renamed to ...
5045         (ix86_expand_unop_vec_merge_builtin): This.
5046
5047 2008-05-01  Jan Hubicka  <jh@suse.cz>
5048
5049         PR bootstrap/36100
5050         * ipa-inline.c (inline_generate_summary): Make static.
5051         (inline_transform): Do not call inlining at -O0; make static.
5052         * passes.c (execute_todo): Add sanity check.
5053         (execute_one_ipa_transform_pass): Execute proper flags.
5054
5055 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
5056
5057         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
5058         (DECL_NONADDRESSABLE_P): Likewise.
5059         * alias.c (record_component_aliases): Fix comment.
5060
5061 2008-05-01  Simon Baldwin <simonb@google.com>
5062
5063         * c-common.h (warn_array_subscript_range): New function.
5064         * c-common.c (warn_array_subscript_range): Ditto.
5065         * tree-vrp.c (check_array_ref): Corrected code to agree with
5066         comment, ignoring only arrays of size 0 or size 1.
5067         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
5068
5069 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5070
5071         * config/i386/i386.c (ix86_builtin_type): Replace
5072         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
5073         (bdesc_args): Updated.
5074         (ix86_init_mmx_sse_builtins): Likewise.
5075         (ix86_expand_args_builtin): Likewise.
5076
5077         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
5078         with __v1di.
5079
5080         * doc/extend.texi: Correct __builtin_ia32_palignr.
5081
5082 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5083
5084         PR target/36095
5085         * config/i386/i386.c (bdesc_crc32): Removed.
5086         (ix86_expand_crc32): Likewise.
5087         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
5088         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
5089         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
5090         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
5091         UINT_FTYPE_UINT_UCHAR.
5092         (bdesc_args): Updated. Add crc32 builtins.
5093         (ix86_init_mmx_sse_builtins): Updated.
5094         (ix86_expand_args_builtin): Updated to support subreg.
5095
5096         * doc/extend.texi: Correct __builtin_ia32_crc32di.
5097
5098 2008-05-01  Jan Hubicka  <jh@suse.cz>
5099
5100         * tree-pass.h (opt_pass): Add IPA_PASS.
5101         (varpool_node, cgraph_node): Forward declare.
5102         (ipa_opt_pass): Define.
5103         (pass_ipa_inline): Turn into ipa_opt_pass.
5104         (pass_apply_inline): Remove.
5105         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
5106         (apply_inline): Turn into ....
5107         (inline_transform): ... this one.
5108         (inline_generate_summary): New function.
5109         (pass_apply_inline): Remove.
5110         * function.h (ipa_opt_pass): Forward declare structure; typedef;
5111         vector.
5112         (struct function): Add ipa_transforms_to_apply.
5113         * passes.c (register_one_dump_file): Work on IPA_PASS.
5114         (init_optimization_passes): Remove pass_inline_parameters and
5115         pass_apply_inline.
5116         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
5117         (execute_one_pass) ... here; apply transforms when possible.
5118         (add_ipa_transform_pass, execute_ipa_summary_asses,
5119         execute_one_ipa_transform_pass): New.
5120         (execute_ipa_pass_list): Update for IPA_PASS type.
5121
5122 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5123
5124         * config/i386/i386.c (ix86_builtin_type): Add
5125         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
5126         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
5127         (bdesc_args): Add SSE4a builtins.
5128         (ix86_init_mmx_sse_builtins): Updated.
5129         (ix86_expand_args_builtin): Likewise.
5130         (ix86_expand_builtin): Likewise.
5131
5132 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5133
5134         * config/i386/i386.c (ix86_builtin_type): Add
5135         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
5136         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
5137         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
5138         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
5139         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
5140         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
5141         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
5142         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
5143         and DI_FTYPE_DI_DI_INT.
5144         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
5145         (ix86_init_mmx_sse_builtins): Updated.
5146         (ix86_expand_args_builtin): Likewise.
5147         (ix86_expand_builtin): Likewise.
5148         (ix86_expand_binop_imm_builtin): Removed.
5149
5150         * doc/extend.texi: Correct __builtin_ia32_palignr128.
5151
5152 2008-04-30  Richard Guenther  <rguenther@suse.de>
5153
5154         PR tree-optimization/32921
5155         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
5156
5157 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
5158
5159         * config/arm/arm.c (arm_unwind_emit): Use
5160         crtl->all_throwers_are_sibcalls instead of
5161         cfun->all_throwers_are_sibcalls.
5162         (arm_output_fn_unwind): Likewise.
5163         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
5164         instead of cfun->uses_pic_offset_table.
5165         (frv_expand_prologue): Likewise.
5166         (frv_frame_pointer_required): Likewise.
5167         (frv_expand_fdpic_call): Likewise.
5168         (frv_emit_movsi): Likewise.
5169         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
5170         cfun->returns_pcc_struct instead of
5171         current_function_returns_pcc_struct.
5172         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
5173         instead of cfun->calls_eh_return.
5174         (m32c_pushm_popm): Likewise.
5175         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
5176         "extern" declaration.
5177
5178 2008-04-30  Richard Guenther  <rguenther@suse.de>
5179
5180         PR tree-optimization/21636
5181         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
5182         constant address.
5183         (evaluate_stmt): Print the likely value.
5184         (ccp_visit_stmt): Avoid excessive vertical spacing.
5185
5186 2008-04-30  Rafael Espindola  <espindola@google.com>
5187
5188         * builtins.c (fold_call_expr): Return realret.
5189         * tree-ssa-threadedge.c
5190         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5191         __builtin_object_size.
5192
5193 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
5194
5195         * gcc.c (wrapper_string): New variable.
5196         (insert_wrapper): New function.
5197         (execute): New option -wrapper.
5198         * doc/invoke.texi (Overall Options): New driver option -wrapper.
5199
5200 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
5201
5202         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
5203         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
5204         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
5205         from...
5206         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
5207         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
5208         config/rs6000/e500crtres64gprctr.asm,
5209         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
5210         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
5211         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
5212         config/rs6000/e500crtsav64gprctr.asm,
5213         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
5214         config/rs6000/e500crtsavg64gprctr.asm: New files.
5215         * config/rs6000/t-ppccomm: Add build rules for new files.
5216         (LIB2FUNCS_STATIC_EXTRA): Add new files.
5217         * config/rs6000/t-netbsd: Add build rules for new files.
5218         (LIB2FUNCS_STATIC_EXTRA): New variable.
5219         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
5220         (CRTSAVRES_DEFAULT_SPEC): Likewise.
5221         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
5222
5223 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
5224
5225         * config/i386/i386.c (ix86_builtin_type): Add
5226         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
5227         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
5228         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
5229         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
5230         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
5231         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
5232         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
5233         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
5234         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
5235         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
5236         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
5237         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
5238         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
5239         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
5240         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
5241         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
5242         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
5243         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
5244         V1DI_FTYPE_V2SI_V2SI.
5245         (bdesc_2arg): Moved to ...
5246         (bdesc_args): Here.
5247         (ix86_init_mmx_sse_builtins): Updated.
5248         (ix86_expand_args_builtin): Updated.  Take a pointer
5249         to const struct builtin_description.  Handle comparison
5250         builtin functions.
5251         (ix86_expand_sse_compare): Take a new argument for swapping operands.
5252         (ix86_expand_builtin): Updated.
5253
5254         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
5255         (ssse3_pmaddubsw128): This.
5256         (ssse3_pmaddubswv4hi3): Renamed to ...
5257         (ssse3_pmaddubsw): This.
5258
5259         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
5260         (__builtin_ia32_packssdw128): Likewise.
5261         (__builtin_ia32_packuswb128): Likewise.
5262         (__builtin_ia32_pmaddubsw): Likewise.
5263         (__builtin_ia32_pmaddubsw128): Likewise.
5264
5265 2008-04-30  Richard Guenther  <rguenther@suse.de>
5266
5267         PR tree-optimization/14847
5268         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
5269         (recognize_bits_test): Use it.
5270         (recognize_single_bit_test): Likewise.
5271
5272 2008-04-30  Martin Jambor  <mjambor@suse.cz>
5273
5274         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
5275         instead of setting number of formal parameters to zero.
5276         (ipcp_init_stage): Do not set the number of actual parameters to zero 
5277         either.
5278         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
5279         which are called with variable number of arguments.
5280         (ipcp_insert_stage): Explicitely skipping all nodes which are
5281         called with variable number of arguments.
5282         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
5283         number of parameters.
5284
5285         * ipa-prop.h (struct ipa_node_params): Added flag
5286         called_with_var_arguments
5287         (ipa_set_param_count): Added.  Changed sole setter to use it.
5288         (ipa_get_param_count): Added.  All readers of param_count
5289         converted to use it instead.
5290         (ipa_set_called_with_variable_arg): Added.
5291         (ipa_is_called_with_var_arguments): Added.
5292         (ipa_get_ith_param): Added.  All readers of param_decls converted
5293         to use it instead.
5294         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
5295         changed to use it. 
5296         (ipa_get_cs_argument_count): Added, all readers of argument_count
5297         changed to cal it.
5298         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
5299         to use it.
5300         
5301         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
5302         (struct ipcp_lattice): Renamed cval_type to type
5303         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
5304
5305         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
5306         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
5307         (ipcp_insert_stage): Changed the type of variable cvalue to tree
5308         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
5309         (build_const_val): Changed the type of parameter cvalue to tree
5310         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
5311         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
5312         
5313         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
5314         constant 
5315
5316         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
5317         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
5318         (ipa_add_method): Renamed to ipa_push_func_to_list
5319         (ipa_remove_method): Renamed to ipa_pop_func_from_list
5320         (ipa_callsite_param_count): Removed.
5321         (ipa_callsite_param_count_set): Removed.
5322         (ipa_callsite_param): Removed.
5323         (ipa_callsite_callee): Removed.
5324         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
5325         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
5326         (ipa_method_formal_count): Removed.
5327         (ipa_method_formal_count_set): Removed.
5328         (ipa_method_get_tree): Removed.
5329         (ipa_method_tree_map_create): Removed.
5330         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
5331         (ipa_create_param_decls_array): Creates the array itself
5332         (ipa_create_param_decls_array): Temporary variable info instead of 
5333         a few dereferences.
5334         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
5335         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
5336         (get_type): Removed.
5337         (ipa_jf_get_info_type): Removed.
5338         (ipa_node_create): Renamed to ipa_create_node_params
5339         (ipa_free): Renamed to ipa_free_all_node_params
5340         (ipa_nodes_create): Renamed to ipa_create_all_node_params
5341         (ipa_edges_create): Renamed to ipa_create_all_edge_args
5342         (ipa_edges_free): Renamed to ipa_free_all_edge_args
5343         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
5344         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
5345         ipa_free_all_edge_args
5346         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
5347         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
5348         (ipa_create_methodlist_node): Removed.
5349         (ipa_methodlist_method): Removed.
5350         (ipa_methodlist_method_set): Removed.
5351         (ipa_methodlist_next_method): Removed.
5352         (ipa_methodlist_next_method_set): Removed.
5353         (ipa_method_is_modified): Removed.
5354         (ipa_method_modify_create): Removed.
5355         (ipa_method_modify_init): Temporary variable info instead of a few 
5356         dereferences.
5357         (ipa_detect_param_modifications): Temporary variable info instead of 
5358         a few dereferences.
5359         (ipa_compute_jump_functions): Temporary variable info instead of 
5360         a few dereferences.
5361         (ipa_method_modify_set): Removed.
5362         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
5363         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
5364         than craph_node as the first parameter.
5365         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
5366         (ipa_method_modify_init): Removed.
5367         (ipa_compute_jump_functions): Added a temp variable instead of 
5368         repeatadly dereferencing the cgraph_edge.aux pointer
5369         (ipa_callsite_param_set_type): Removed.
5370         (ipa_compute_jump_functions): i renamed to index and moved to 
5371         an inner block
5372         (ipa_callsite_param_set_info_type_formal): Removed.
5373         (ipa_callsite_param_set_info_type): Removed.
5374         (ipa_callsite_param_map_create): Removed.
5375         (ipa_callsite_tree): Removed.
5376         (ipa_callsite_caller): Removed.
5377         (ipa_pop_func_from_list): return_method removed to return_func
5378
5379         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
5380         prefixed all values with IPA_. Changed all users.
5381         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
5382         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
5383         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
5384         (union parameter_info): Renamed to jump_func_value.
5385         (union jump_func_value): Renamed value to constant
5386         (struct ipa_jump_func): Renamed info_type to value
5387         (struct ipa_node): Renamed to ipa_node_params
5388         (struct ipa_node_params): Renamed ipa_arg_num to param_count
5389         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
5390         (struct ipa_node_params): Renamed ipa_mod to modified_flags
5391         (struct ipa_edge): Renamed to ipa_edge_args
5392         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
5393         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
5394         (struct ipa_methodlist): Renamed to ipa_func_list
5395         (struct ipa_func_list): method_p renamed to node, next_method
5396         renamed to next
5397         (ipa_methodlist_p): Removed, switched all users to struct pointer
5398         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
5399
5400 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
5401
5402         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
5403         (rs6000_emit_epilogue): Use backchain to restore only when we
5404         have a large frame.  Make use of frame pointer to restore if we
5405         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
5406
5407 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
5408
5409         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5410         Add mode to zero_extract.
5411         (sign bit tests peepholes): (Ditto.).
5412
5413 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
5414
5415         * config/i386/i386.c (ix86_builtins): Replace Prescott New
5416         Instructions in comments with SSE3.
5417         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
5418         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
5419         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
5420         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
5421         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
5422         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
5423         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
5424         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
5425         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
5426         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
5427         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
5428         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
5429         (bdesc_sse_args): Renamed to ...
5430         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
5431         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
5432         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
5433         IX86_BUILTIN_FABSQ.
5434         (bdesc_1arg): Moved to ...
5435         (bdesc_args): Here.
5436         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
5437         Instructions in comments with SSE3.
5438         (ix86_expand_sse_operands_builtin): Renamed to ...
5439         (ix86_expand_args_builtin): This.  Updated.
5440         (ix86_expand_unop1_builtin): Update comments.
5441         (ix86_expand_builtin): Updated.
5442
5443 2008-04-29  Richard Guenther  <rguenther@suse.de>
5444
5445         PR tree-optimization/36078
5446         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
5447         Update virtual SSA form after cleaning up the CFG.
5448
5449 2008-04-29  Richard Guenther  <rguenther@suse.de>
5450
5451         PR middle-end/15255
5452         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
5453
5454 2008-04-29  Richard Guenther  <rguenther@suse.de>
5455
5456         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
5457         (compute_may_aliases): Do not call finalize_ref_all_pointers.
5458         (compute_flow_insensitive_aliasing): Do not treat
5459         PTR_IS_REF_ALL pointers special.
5460         (get_smt_for): Likewise.
5461         (may_alias_p): Re-structure.
5462         (is_escape_site): A ref-all pointer conversion is not an escape site.
5463         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
5464         PTR_IS_REF_ALL pointers special.
5465         * tree-ssa-structalias.h (struct alias_info): Remove
5466         ref_all_symbol_mem_tag field.
5467         (PTR_IS_REF_ALL): Remove.
5468
5469 2008-04-29  Richard Guenther  <rguenther@suse.de>
5470
5471         PR middle-end/36077
5472         * fold-const.c (extract_muldiv_1): In combining division constants
5473         make sure to never overflow.
5474
5475 2008-04-29  Nick Clifton  <nickc@redhat.com>
5476
5477         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
5478
5479 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5480
5481         PR bootstrap/35169
5482         * optc-gen.awk: Work around HP-UX/IA awk bug.
5483
5484 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
5485
5486         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
5487         2008-04-25 commit.
5488
5489 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5490
5491         PR target/36073
5492         * config/i386/i386.md
5493         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
5494         Change operand 1 predicate to nonimmediate_operand.
5495
5496 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
5497
5498         PR debug/36060
5499         * dwarf2out.c (struct die_struct): Mark as chain_circular through
5500         die_sub field.
5501         * gengtype.c (walk_type, write_func_for_structure): Handle
5502         chain_circular.
5503         * doc/gty.texi: Document chain_circular.
5504
5505 2008-04-28  Richard Guenther  <rguenther@suse.de>
5506
5507         PR tree-optimization/36066
5508         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
5509         SCEV and loop.
5510
5511 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5512
5513         PR target/36064
5514         * config/i386/i386.md
5515         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
5516         Use match_scratch instead of match_operand for operands 3 and 4.
5517
5518 2008-04-27  Richard Guenther  <rguenther@suse.de>
5519
5520         PR tree-optimization/18754
5521         PR tree-optimization/34223
5522         * tree-pass.h (pass_complete_unrolli): Declare.
5523         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
5524         loop size before and after unconditionally of UL_NO_GROWTH in effect.
5525         Rewrite loop into loop closed SSA form if it is not already.
5526         (tree_unroll_loops_completely): Re-structure to iterate over
5527         innermost loops with intermediate CFG cleanups.
5528         Unroll outermost loops only if requested or the code does not grow
5529         doing so.
5530         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
5531         loops are available.
5532         (tree_vectorize): Instead do so here.
5533         (tree_complete_unroll): Also unroll outermost loops.
5534         (tree_complete_unroll_inner): New function.
5535         (gate_tree_complete_unroll_inner): Likewise.
5536         (pass_complete_unrolli): New pass.
5537         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
5538         uses outside of the loop.
5539         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
5540         form if it is available.  
5541         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
5542         * passes.c (init_optimization_passes): Schedule complete inner
5543         loop unrolling pass before the first CCP pass after final inlining.
5544
5545 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
5546
5547         * targhooks.h (default_emutls_var_fields,
5548         default_emutls_var_init): Declare.
5549         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
5550         * target.h (struct gcc_target): Add struct emutls member.
5551         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
5552         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
5553         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
5554         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
5555         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
5556         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
5557         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
5558         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
5559         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
5560         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
5561         emit debug information.
5562         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
5563         * varasm.c: Include targhooks.h.
5564         (emutls_object_section, emutls_tmpl_section): New.
5565         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
5566         (EMUTLS_SEPARATOR): New.
5567         (prefix_name): New.
5568         (get_emutls_object_name): New.
5569         (default_emutls_var_fields): New, broken out of ...
5570         (get_emutls_object_type): ... here.  Adjust to use target hooks.
5571         (get_emutls_init_templ_addr): Adjust to use target hooks.
5572         (emutls_decl): Adjust to use target hooks.
5573         (emutls_finish): Likewise.
5574         (default_emutls_var_init): New, broken out of ...
5575         (assemble_variable): ... here.  Adjust to use target hooks.
5576         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
5577         SECCAT_EMUTLS_TMPL.
5578         * c-common.c (handle_section_attribute): Prevent overriding
5579         sections for emulated tls with special sections.
5580         * config/i386/i386.c (x86_64_elf_select_section): Add
5581         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
5582         (x86_64_elf_unique_section): Likewise.
5583         * config/vxworks.c: Include tree.h.
5584         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
5585         (vxworks_override_options): Set TLS scheme.
5586         * doc/tm.texi (Emulated TLS): New node.
5587
5588 2008-04-26  Simon Baldwin <simonb@google.com>
5589
5590         PR c/35652
5591         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
5592         with propagated string constants.
5593
5594 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
5595
5596         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
5597         constraint for operand 2 when operand 0 is memory operand.
5598         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
5599         operand 0 is memory operand.
5600         (fix_trunc<mode>_i387_with_temp): Ditto.
5601         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
5602         operand 2 when operand 1 is memory operand.
5603         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
5604         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
5605         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
5606         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5607         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
5608         operands 2,3 and 4 when operand 1 is memory operand.
5609         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
5610         is memory operand.
5611         (fistdi2_floor_with_temp): Ditto.
5612         (fist<mode>2_floor_with_temp): Ditto.
5613         (fistdi2_ceil_with_temp): Ditto.
5614         (fist<mode>2_ceil_with_temp): Ditto.
5615         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
5616
5617 2008-04-26  David Daney  <ddaney@avtrex.com>
5618
5619         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
5620         unspec_volitile.
5621         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
5622         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
5623         UNSPEC_UPDATE_GOT_VERSION): Renumber.
5624         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
5625         (compare_and_swap_12): New insn.
5626         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
5627         * config/mips/mips.c (mips_force_binary): New function.
5628         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
5629         (mips_expand_compare_and_swap_12): New function.
5630         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
5631
5632 2008-04-25  Jan Hubicka  <jh@suse.cz>
5633
5634         PR testsuite/35843
5635         * cfgexpand.c (pass_expand): Turn into RTL pass.
5636         * passes.c (execute_one_pass): Do pass typechecking after execution.
5637         * tree-pass.h (pass_expand): Turn into RTL pass.
5638
5639         * function.h (struct rtl_data): Move here fields
5640         accesses_prior_frames, calls_eh_return, saves_all_registers,
5641         has_nonlocal_goto, has_asm_statement, is_thunk,
5642         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
5643         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
5644         arg_pointer_save_area_init from struct function; turn into bool.
5645         (struct function): Move
5646         calls_eh_return, saves_all_registers, has_nonlocal_goto,
5647         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
5648         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
5649         tail_call_emit, arg_pointer_save_area_init
5650         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
5651         (current_function_returns_struct, current_function_returns_pcc_struct,
5652         current_function_calls_setjmp, current_function_calls_alloca,
5653         current_function_accesses_prior_frames,
5654         current_function_calls_eh_return, current_function_is_thunk,
5655         current_function_stdarg, current_function_profile,
5656         current_function_limit_stack, current_function_uses_pic_offset_table,
5657         current_function_uses_const_pool, current_function_has_nonlocal_label,
5658         current_function_saves_all_registers,
5659         current_function_has_nonlocal_goto,
5660         current_function_has_asm_statement): Remove accesor macros.
5661         * ra-conflict.c (global_conflicts): Update.
5662         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
5663         (suitable_for_tail_call_opt_p): Update.
5664         * builtins.c (expand_builtin_return_addr): Update.
5665         (expand_builtin_setjmp_setup): Update.
5666         (expand_builtin_nonlocal_goto): Update.
5667         * final.c (final_start_function): Update.
5668         (profile_function): Update.
5669         (leaf_function_p): Update.
5670         (only_leaf_regs_used): Update.
5671         * df-scan.c (df_get_exit_block_use_set): Update.
5672         * dojump.c (clear_pending_stack_adjust): Update.
5673         * tree-stdarg.c (gate_optimize_stdarg): Update.
5674         * gimple-low.c (lower_function_body): Update.
5675         * global.c (compute_regsets): Update.
5676         (global_alloc): Update.
5677         * dwarf2out.c (dwarf2out_begin_prologue): Update.
5678         * expr.c (expand_assignment): Update.
5679         * dse.c (dse_step0): Update.
5680         (dse_step1): Update.
5681         * c-decl.c (store_parm_decls): Update.
5682         * local-alloc.c (combine_regs): Update.
5683         (find_free_reg): Update.
5684         * function.c (assign_parms_augmented_arg_list): Update.
5685         (assign_parm_find_data_types): Update.
5686         (assign_parms): Update.
5687         (allocate_struct_function): Update.
5688         (expand_function_start): Update.
5689         (expand_function_end): Update.
5690         (get_arg_pointer_save_area): Update.
5691         (thread_prologue_and_epilogue_insns): Update.
5692         (rest_of_match_asm_constraints): Update.
5693         * stor-layout.c (variable_size): Update.
5694         * gcse.c (gcse_main): Update.
5695         (bypass_jumps): Update.
5696         * gimplify.c (gimplify_function_tree): Update.
5697         * calls.c (emit_call_1): Update.
5698         (expand_call): Update.
5699         * bt-load.c (compute_defs_uses_and_gen): Update.
5700         * except.c (sjlj_assign_call_site_values): Update.
5701         (sjlj_emit_function_enter): Update.
5702         (can_throw_external): Update.
5703         (set_nothrow_function_flags): Update.
5704         (expand_builtin_unwind_init): Update.
5705         (expand_eh_return): Update.
5706         (convert_to_eh_region_ranges): Update.
5707         (output_function_exception_table): Update.
5708         * emit-rtl.c (gen_tmp_stack_mem): Update.
5709         * cfgexpand.c (expand_used_vars): Update.
5710         (tree_expand_cfg): Update.
5711         * cfgcleanup.c (rest_of_handle_jump): Update.
5712         * explow.c (allocate_dynamic_stack_space): Update.
5713         * varasm.c (assemble_start_function): Update.
5714         (force_const_mem): Update.
5715         (mark_constant_pool): Update.
5716         * tree-optimize.c (tree_rest_of_compilation): Update.
5717         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
5718         * tree-cfg.c (notice_special_calls): Update.
5719         (is_ctrl_altering_stmt): Update.
5720         (tree_can_make_abnormal_goto): Update.
5721         (tree_purge_dead_abnormal_call_edges): Update.
5722         * config/alpha/predicates.md: Update.
5723         * config/alpha/alpha.c (alpha_sa_mask): Update.
5724         (alpha_sa_size): Update.
5725         (alpha_does_function_need_gp): Update.
5726         (alpha_expand_prologue): Update.
5727         (alpha_start_function): Update.
5728         (alpha_output_function_end_prologue): Update.
5729         (alpha_expand_epilogue): Update.
5730         * config/frv/frv.c (frv_stack_info): Update.
5731         (frv_expand_epilogue): Update.
5732         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
5733         (s390_register_info): Update.
5734         (s390_frame_info): Update.
5735         (s390_init_frame_layout): Update.
5736         (s390_can_eliminate): Update.
5737         (save_gprs): Update.
5738         * config/spu/spu.c (spu_split_immediate): Update.
5739         (need_to_save_reg): Update.
5740         (spu_expand_prologue): Update.
5741         (spu_expand_epilogue): Update.
5742         * config/sparc/sparc.md: Update.
5743         * config/sparc/sparc.c (eligible_for_return_delay): Update.
5744         (sparc_tls_got): Update.
5745         (legitimize_pic_address): Update.
5746         (sparc_emit_call_insn): Update.
5747         (sparc_expand_prologue): Update.
5748         (output_return): Update.
5749         (print_operand): Update.
5750         (sparc_function_ok_for_sibcall): Update.
5751         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
5752         * config/m32r/m32r.md: Update.
5753         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
5754         (m32r_compute_frame_size): Update.
5755         (m32r_expand_prologue): Update.
5756         (m32r_expand_epilogue): Update.
5757         (m32r_legitimize_pic_address): Update.
5758         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
5759         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5760         * config/i386/i386.c (ix86_frame_pointer_required): Update.
5761         (gen_push): Update.
5762         (ix86_save_reg): Update.
5763         (ix86_compute_frame_layout): Update.
5764         (ix86_expand_prologue): Update.
5765         (ix86_expand_epilogue): Update.
5766         * config/sh/sh.c (output_stack_adjust): Update.
5767         (calc_live_regs): Update.
5768         (sh5_schedule_saves): Update.
5769         (sh_expand_prologue): Update.
5770         (sh_expand_epilogue): Update.
5771         (sh_setup_incoming_varargs): Update.
5772         (sh_allocate_initial_value): Update.
5773         (sh_get_pr_initial_val): Update.
5774         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
5775         * config/sh/sh.md (label:): Update.
5776         * config/avr/avr.c (out_movhi_mr_r): Update.
5777         * config/crx/crx.h (enum): Update.
5778         * config/xtensa/xtensa.h (along): Update.
5779         * config/stormy16/stormy16.c Update.
5780         (xstormy16_compute_stack_layout): Update.
5781         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
5782         (fr30_expand_prologue): Update.
5783         * config/cris/cris.c (cris_conditional_register_usage): Update.
5784         (cris_reg_saved_in_regsave_area): Update.
5785         (cris_initial_frame_pointer_offset): Update.
5786         (cris_simple_epilogue): Update.
5787         (cris_expand_prologue): Update.
5788         (cris_expand_epilogue): Update.
5789         (cris_expand_pic_call_address): Update.
5790         (cris_asm_output_symbol_ref): Update.
5791         (cris_asm_output_label_ref): Update.
5792         * config/cris/cris.md Update.
5793         * config/iq2000/iq2000.c (compute_frame_size): Update.
5794         (iq2000_expand_epilogue): Update.
5795         * config/mt/mt.h (save_direction): Update.
5796         * config/mn10300/mn10300.c (mn10300_function_value): Update.
5797         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5798         (ia64_secondary_reload_class): Update.
5799         * config/m68k/m68k.c (m68k_save_reg): Update.
5800         (m68k_expand_prologue): Update.
5801         (m68k_expand_epilogue): Update.
5802         (legitimize_pic_address): Update.
5803         * config/rs6000/rs6000.c (rs6000_got_register): Update.
5804         (first_reg_to_save): Update.
5805         (first_altivec_reg_to_save): Update.
5806         (compute_vrsave_mask): Update.
5807         (compute_save_world_info): Update.
5808         (rs6000_stack_info): Update.
5809         (spe_func_has_64bit_regs_p): Update.
5810         (rs6000_ra_ever_killed): Update.
5811         (rs6000_emit_eh_reg_restore): Update.
5812         (rs6000_emit_allocate_stack): Update.
5813         (rs6000_emit_prologue): Update.
5814         (rs6000_emit_epilogue): Update.
5815         (rs6000_output_function_epilogue): Update.
5816         (output_profile_hook): Update.
5817         (rs6000_elf_declare_function_name): Update.
5818         * config/rs6000/rs6000.h (rs6000_args): Update.
5819         * config/rs6000/rs6000.md: Update.
5820         * config/mcore/mcore.c (mcore_expand_prolog): Update.
5821         * config/arc/arc.c (arc_output_function_epilogue): Update.
5822         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
5823         * config/darwin.c (machopic_function_base_name): Update.
5824         * config/score/score3.c (score3_compute_frame_size): Update.
5825         (rpush): Update.
5826         (rpop): Update.
5827         (score3_epilogue): Update.
5828         * config/score/score7.c (score7_compute_frame_size): Update.
5829         (score7_prologue): Update.
5830         (score7_epilogue): Update.
5831         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
5832         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5833         * config/arm/arm.c (use_return_insn): Update.
5834         (require_pic_register): Update.
5835         (arm_load_pic_register): Update.
5836         (arm_compute_save_reg0_reg12_mask): Update.
5837         (arm_compute_save_reg_mask): Update.
5838         (thumb1_compute_save_reg_mask): Update.
5839         (output_return_instruction): Update.
5840         (arm_output_function_prologue): Update.
5841         (arm_output_epilogue): Update.
5842         (arm_get_frame_offsets): Update.
5843         (arm_expand_prologue): Update.
5844         (thumb_pushpop): Update.
5845         (thumb_exit): Update.
5846         (thumb1_expand_prologue): Update.
5847         (thumb1_expand_epilogue): Update.
5848         (arm_unwind_emit): Update.
5849         (arm_output_fn_unwind): Update.
5850         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
5851         * config/arm/arm.md: Update.
5852         * config/pa/pa.md: Update.
5853         * config/pa/pa.c (legitimize_pic_address): Update.
5854         (compute_frame_size): Update.
5855         (hppa_expand_prologue): Update.
5856         (hppa_expand_epilogue): Update.
5857         (borx_reg_operand): Update.
5858         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
5859         (HARD_REGNO_RENAME_OK): Update.
5860         * config/mips/mips.c (mips_global_pointer): Update.
5861         (mips_save_reg_p): Update.
5862         (mips_compute_frame_info): Update.
5863         (mips_frame_pointer_required): Update.
5864         (mips_expand_prologue): Update.
5865         (mips_expand_epilogue): Update.
5866         (mips_can_use_return_insn): Update.
5867         (mips_reorg_process_insns): Update.
5868         * config/v850/v850.c (compute_register_save_size): Update.
5869         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
5870         * config/mmix/mmix.c (along): Update.
5871         (mmix_expand_epilogue): Update.
5872         * config/bfin/bfin.c (legitimize_pic_address): Update.
5873         (must_save_p): Update.
5874         (stack_frame_needed_p): Update.
5875         (add_to_reg): Update.
5876         (bfin_expand_prologue): Update.
5877         * stmt.c (expand_asm_operands): Update.
5878         * reload1.c (reload): Update.
5879         (init_elim_table): Update.
5880
5881 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
5882         
5883         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
5884         
5885 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
5886
5887         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
5888         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
5889         (mov<mode>): Removed.
5890         (*movv4sf_internal): Likewise.
5891         (*movv2df_internal): Likewise.
5892
5893 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
5894
5895         * config.gcc (crx-*-elf): Remove deprecation.
5896
5897 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
5898
5899         * config/i386/cygming-crtend.c (register_frame_ctor): Register
5900         __gcc_deregister_frame with atexit.
5901         (deregister_frame_dtor): Remove.
5902
5903 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
5904             Nathan Sidwell  <nathan@codesourcery.com>
5905
5906         * config/rs6000/rs6000.opt (mspe): Remove Var property.
5907         (misel): Likewise.
5908         * config/rs6000/rs6000.h (rs6000_spe): Declare.
5909         (rs6000_isel): Likewise.
5910         * config/rs6000/rs6000.c (rs6000_spe): New variable.
5911         (rs6000_isel): New variable.
5912         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
5913
5914 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5915
5916         PR c++/35758
5917         * c-common.c (handle_vector_size_attribute): Call
5918         lang_hooks.types.reconstruct_complex_type instead of
5919         reconstruct_complex_type.
5920         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
5921         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
5922         * langhooks.h (struct lang_hooks_for_types): Add
5923         reconstruct_complex_type hook.
5924         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
5925         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
5926
5927 2008-04-24  Richard Guenther  <rguenther@suse.de>
5928
5929         * c-common.h (check_builtin_function_arguments): Declare.
5930         * c-common.c (validate_nargs): New function.
5931         (check_builtin_function_arguments): Likewise.
5932         * c-typeck.c (build_function_call): Call
5933         check_builtin_function_arguments.
5934         * builtins.c (fold_builtin_classify): Remove error reporting code.
5935         (fold_builtin_unordered_cmp): Likewise.
5936         (fold_builtin_1): Likewise.
5937         (fold_builtin_n): Likewise.
5938
5939 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5940
5941         PR tree-optimization/36008
5942         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
5943         the original op1, rather than delta by step.
5944
5945 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
5946             Sebastian Pop  <sebastian.pop@amd.com>
5947
5948         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
5949         eliminate_local_variables_stmt, eliminate_local_variables,
5950         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
5951         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
5952         of code delimited by two edges in the CFG.
5953         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
5954         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
5955         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
5956         the case of parallelisation of reductions.
5957         (expr_invariant_in_region_p): New.
5958
5959         * tree-flow.h (gather_blocks_in_sese_region): Declared.
5960         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
5961
5962 2008-04-24  Ira Rosen  <irar@il.ibm.com>
5963             Richard Guenther  <rguenther@suse.de>
5964
5965         PR tree-optimization/36034
5966         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
5967         incapable of dealing with loads with gaps.
5968
5969 2008-04-24  Rafael Espindola  <espindola@google.com>
5970
5971         * tree-flow.h (vrp_evaluate_conditional): Change signature.
5972         * tree-ssa-propagate.c (fold_predicate_in): Update call to
5973         vrp_evaluate_conditional.
5974         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
5975         (vrp_evaluate_conditional): Split the cond argument.
5976         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
5977         (simplify_stmt_for_jump_threading): Update call to
5978         vrp_evaluate_conditional.
5979
5980 2008-04-24  Ira Rosen  <irar@il.ibm.com>
5981
5982         PR tree-optimization/35982
5983         * tree-vect-analyze.c (vect_check_interleaving): Check that the
5984         interleaved data-refs are of the same type.
5985
5986 2008-04-24  Danny Smith  <dannysmith@users.net>
5987
5988         * c-format.c (check_format_info_main): Use strncmp rather than a
5989         magic prefix to handle multichar length specs.
5990         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
5991         Don't prefix "I64" and "I32" with '\0'.
5992
5993 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5994
5995         PR target/36015
5996         * config/i386/i386.c (init_cumulative_args): Don't pass anything
5997         in registers for -m32 only if stdarg_p (fntype).
5998
5999 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
6000
6001         PR rtl-optimization/36006
6002         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
6003         temp to op0 in order to avoid invalid rtx sharing.
6004
6005 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
6006
6007         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
6008         check TREE_INVARIANT.
6009         * tree-gimple.c (is_gimple_address): New.
6010         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
6011         * tree-gimple.h (is_gimple_address): New.
6012         * tree.h (decl_address_invariant_p): New.
6013         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
6014         (build_string): Likewise.
6015         (decl_address_invariant_p): New, from is_gimple_invariant_address.
6016         (tree_invariant_p_1): Likewise.
6017         (save_expr): Use it.
6018         (tree_invariant_p): New.
6019         (skip_simple_arithmetic): Use it.
6020         (stabilize_reference_1): Use it.
6021         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
6022         simplify.
6023         (build1_stat): Drop code to compute TREE_INVARIANT.
6024         (build2_stat): Drop code to compute TREE_INVARIANT.
6025         (build3_stat): Drop code to compute TREE_INVARIANT.
6026         (build4_stat): Drop code to compute TREE_INVARIANT.
6027         (build5_stat): Drop code to compute TREE_INVARIANT.
6028         (build7_stat): Drop code to compute TREE_INVARIANT.
6029         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
6030         * tree.h (struct tree_base): Remove invariant_flag.
6031         (TREE_INVARIANT): Remove.
6032         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
6033         (fold_builtin_expect): Check TREE_CONSTANT.
6034         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
6035         * c-tree.h (c_expr_to_decl): Drop third parameter.
6036         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
6037         (build_c_cast): Don't set TREE_INVARIANT.
6038         (pop_init_level): Don't set TREE_INVARIANT.
6039         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
6040         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
6041         TREE_CONSTANT.
6042         (gimplify_init_constructor): Don't set TREE_INVARIANT.
6043         (gimplify_addr_expr): Adjust comment.
6044         * tree-mudflap.c (mf_build_string):
6045         * print-tree.c (print_node): Don't print TREE_INVARIANT.
6046         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
6047         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
6048         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
6049         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
6050         * langhooks.h (struct lang_hooks): Drop third parameter from
6051         expr_to_decl.
6052
6053 2008-04-23  Richard Guenther  <rguenther@suse.de>
6054
6055         PR tree-optimization/27799
6056         PR tree-optimization/32921
6057         PR tree-optimization/32624
6058         * tree-ssa-structalias.c (merge_smts_into): Only merge the
6059         SMTs aliases and the tag itself into the solution.
6060         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
6061         merge the points-to solution back into the SMT aliases.
6062         (may_alias_p): Use alias_set_subset_of instead of
6063         aliases_conflict_p.  A pointer which points to
6064         memory with alias set zero may access any variable.
6065
6066 2008-04-23  Richard Guenther  <rguenther@suse.de>
6067
6068         * alias.c (alias_set_subset_of): Correctly handle asking
6069         if zero is a subset of an alias set with zero child.
6070         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
6071         (compute_flow_insensitive_aliasing): Correctly walk all
6072         pointers.  Do not unnecessarily union sets.
6073
6074 2008-04-23  Richard Guenther  <rguenther@suse.de>
6075
6076         PR middle-end/36021
6077         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
6078
6079 2008-04-22  Tomas Bily  <tbily@suse.cz>
6080
6081         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
6082         unreachable case.
6083         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
6084         NON_LVALUE_EXPR.
6085         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
6086         * tree-ssa-structalias.c (get_constraint_for): Likewise.
6087         * tree-inline.c (estimate_num_insns_1): Likewise.
6088         * varasm.c (const_hash_1, compare_constant, copy_constant)
6089         (compute_reloc_for_constant, output_addressed_constants): Likewise.
6090         * emit-rtl.c (component_ref_for_mem_expr)
6091         (set_mem_attributes_minus_bitpos): Likewise.
6092         * expr.c (highest_pow2_factor, expand_expr_real_1, )
6093         (is_aligning_offset): Likewise.
6094         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
6095         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
6096         * dojump.c (do_jump): Likewise.
6097         * builtins.c (get_pointer_alignment, get_memory_rtx)
6098         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
6099         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
6100
6101 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
6102
6103         PR rtl-optimization/36017
6104         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
6105         expanding the library call.
6106
6107 2008-04-22  Ian Lance Taylor  <iant@google.com>
6108
6109         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
6110         than size_in_bytes.
6111
6112 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
6113
6114         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
6115         of LR/CTR moves for Power6.
6116
6117 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
6118
6119         PR middle-end/36003
6120         * passes.c (init_optimization_passes): Remove
6121         pass_fast_rtl_byte_dce.
6122         
6123 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
6124
6125         PR target/29096
6126         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
6127         builtin functions to generate faster code.
6128         (_mm_cvtpu16_ps): Ditto.
6129         (_mm_cvtpi32x2_ps): Ditto.
6130
6131 2008-04-22  Nick Clifton  <nickc@redhat.com>
6132
6133         * common.opt (ftree-loop-distribution): Add Optimization
6134         attribute.
6135
6136         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
6137         (frv_expand_builtin_va_start): Likewise.
6138
6139         * config/arm/arm.c (thumb_find_work_register): Fix location of
6140         argument register count.
6141
6142 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6143
6144         Support scheduling for ColdFire V1 and V3 microarchitecture.
6145         Improve scheduling of multiplication instructions.
6146
6147         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
6148         (mac): New instruction attribute.
6149         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
6150         (m68k_sched_mac): New variable.
6151         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
6152         Handle cfv1 and cfv3.
6153         (max_insn_size): New static variable.
6154         (struct _sched_ib): New type.
6155         (sched_ib): New static variable.
6156         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
6157         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
6158         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
6159         Update.
6160         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
6161         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
6162         new variables.  Update.
6163         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
6164         Add modeling of cfv3 instruction buffer.  Update.
6165         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
6166         * config/m68k/m68k.h (TUNE_CFV3): New macro.
6167         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
6168         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
6169         a particular reservation applies to.
6170         (type2): Reorganize attribute values.  Rename alu to alu_reg,
6171         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
6172         to mul_l and mul_w.
6173         (cf_ib_*): Simplify description of instruction buffer.
6174         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
6175         (cf_mem): Split into cf_mem1 and cf_mem2.
6176         (cf_v2_move_??): Rename to cfv12_alu_??.
6177         (cf_v2_move_l_??): Rename to cfv12_omove_??.
6178         (cf_v2_mul_??): Remove reservations.
6179         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
6180         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
6181         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
6182         appropriate place.
6183         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
6184         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
6185         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
6186         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
6187         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
6188         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
6189         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
6190         expansions of the above reservations for instructions of sizes
6191         1, 2 and 3 words.
6192
6193 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6194
6195         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
6196
6197 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
6198
6199         * coverage.c: Include tree-pass.h.
6200         (coverage_counter_alloc): Print da_file_name to the dump file.
6201
6202 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
6203
6204         * sbitmap.c (sbitmap_range_empty_p): New function.
6205         * sbitmap.h (sbitmap_range_empty_p): New function.
6206         * bitmap.h: Now includes obstack.h.
6207
6208 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
6209             Kenneth Zadeck  <zadeck@naturalbridge.com>
6210
6211         * dbgcnt.def (ra_byte_scan): Added.
6212         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
6213         when the last hit happens for a counter.  
6214         * timevar.def (TV_DF_BYTE_LR): New variable.
6215         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
6216         * passes.c (pass_fast_rtl_byte_dce): New pass.
6217         * fwprop.c (update_df): Added mode to call df_ref_create.
6218         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6219         DF_REF_EXTRACT_OFFSET.
6220         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
6221         DF_BYTE_LR_OUT, df_byte_lr): New macro.
6222         (df_mm): New enum.
6223         (df_ref_extract): Added mode field.
6224         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
6225         DF_REF_EXTRACT_OFFSET.
6226         (DF_REF_EXTRACT_MODE): New macro.
6227         (df_byte_lr_bb_info): New structure.
6228         (df_print_byte_regset, df_compute_accessed_bytes, 
6229         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
6230         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
6231         df_byte_lr_simulate_uses,
6232         df_byte_lr_simulate_artificial_refs_at_top,
6233         df_byte_lr_simulate_artificial_refs_at_end,
6234         df_compute_accessed_bytes): New function.
6235         (df_ref_create): Add parameter.
6236         (df_byte_lr_get_bb_info): New inline function.
6237         * df-scan.c (df_ref_record, df_uses_record,
6238         df_ref_create_structure): Added mode parameter.
6239         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
6240         df_defs_record, df_uses_record, df_get_conditional_uses,
6241         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
6242         df_entry_block_defs_collect, df_exit_block_uses_collect):
6243         Added mode parameter to calls to df_ref_record, df_uses_record,
6244         df_ref_create_structure.
6245         (df_ref_equal_p, df_ref_compare): Added test for modes.
6246         (df_ref_create_structure): Added code to set mode.  Renamed
6247         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6248         DF_REF_EXTRACT_OFFSET.
6249         * df-core.c (df_print_byte_regset): New function.
6250         * df-byte-scan.c: New file.
6251         * df-problems.c (df_rd_transfer_function): Removed unnecessary
6252         calls to BITMAP_FREE.  
6253         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
6254         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
6255         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
6256         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
6257         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
6258         df_byte_lr_local_compute, df_byte_lr_init,
6259         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
6260         df_byte_lr_transfer_function, df_byte_lr_free, 
6261         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
6262         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
6263         df_byte_lr_simulate_uses,
6264         df_byte_lr_simulate_artificial_refs_at_top,
6265         df_byte_lr_simulate_artificial_refs_at_end): New function.
6266         * dce.c (byte_dce_process_block): New function.
6267         (dce_process_block): au is now passed in rather than computed
6268         locally.  Changed loops that look at artificial defs to not look
6269         for conditional or partial ones, because there never are any.  
6270         (fast_dce): Now is able to drive byte_dce_process_block or 
6271         dce_process_block depending on the kind of dce being done.
6272         (rest_of_handle_fast_dce): Add parameter to fast_dce.
6273         (rest_of_handle_fast_byte_dce): New function.
6274         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
6275         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
6276
6277 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
6278
6279         PR fortran/35019
6280         * gcc.h: Added fortran options that take arguments to
6281         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
6282         macros.
6283
6284 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
6285
6286         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
6287         scalarization if on the LHS and not a full access.
6288
6289 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6290
6291         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
6292
6293 2008-04-18  Rafael Espindola  <espindola@google.com>
6294
6295         * tree-vrp.c (find_case_label_index): Fix the binary search.
6296         (find_case_label_range): New.
6297         (vrp_visit_switch_stmt): Use find_case_label_range.
6298         (simplify_switch_using_ranges): Use find_case_label_range.
6299
6300 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6301
6302         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
6303         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
6304
6305 2008-04-18  Tom Tromey  <tromey@redhat.com>
6306
6307         PR libcpp/15500:
6308         * doc/cpp.texi (Implementation-defined behavior): Mention
6309         -finput-charset.
6310
6311 2008-04-18  Ian Lance Taylor  <iant@google.com>
6312
6313         * fold-const.c (pointer_may_wrap_p): New static function.
6314         (fold_comparison): Add another test for pointer overflow.  Use
6315         pointer_may_wrap_p to disable some false positives.
6316
6317 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
6318           
6319         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
6320         (fname_as_string): Match updated cpp_interpret_string prototype.
6321         (fix_string_type): Support char16_t* and char32_t*.
6322         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
6323         derivative) nodes.  Register as builtin if C++0x.
6324         (c_parse_error): Support CPP_CHAR{16,32}.
6325         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
6326         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
6327         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
6328         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
6329         CTI_CHAR32_ARRAY_TYPE>: New elements.
6330         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
6331         char32_type_node, signed_char32_type_node, char16_array_type_node,
6332         char32_array_type_node): New defines.
6333         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
6334         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
6335         (lex_string): Support CPP_STRING{16,32}, match updated
6336         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
6337         (lex_charconst): Support CPP_CHAR{16,32}.
6338         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
6339         and CPP_STRING{16,32}.
6340
6341 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
6342
6343         PR bootstrap/35457
6344         * aclocal.m4: Regenerate.
6345         * configure: Regenerate.
6346
6347 2008-04-18  Jan Hubicka  <jh@suse.cz>
6348
6349         * except.c (dw2_size_of_call_site_table,
6350         sjlj_size_of_call_site_table): Use vector API for call_site_record.
6351
6352         * cgraphbuild.c (build_cgraph_edges): Update.
6353         * tree-pass.h: Update comment.
6354         * final.c (leaf_function_p): Update.
6355         (leaf_renumber_regs): Update.
6356         (rest_of_clean_state): Update.
6357         * omp-low.c (expand_omp_parallel): Update.
6358         * ipa-reference.c (analyze_function): Update.
6359         * reorg.c (find_end_label): Update.
6360         (optimize_skip): Update.
6361         (fill_simple_delay_slots): Update.
6362         (fill_simple_delay_slots): Update.
6363         (make_return_insns): Update.
6364         (dbr_schedule): Update.
6365         * gimple-low.c (record_vars_into): Update.
6366         * cfgbuild.c (make_edges): Update.
6367         * function.c (assign_stack_local): Update.
6368         (assign_parm_adjust_stack_rtl): Update.
6369         (locate_and_pad_parm): Update.
6370         (allocate_struct_function): Do not initialize stack_alignment_needed
6371         and preferred_stack_boundary here.
6372         (stack_protect_prologue): Update.
6373         (stack_protect_epilogue): Update.
6374         (expand_function_start): Initialize stack_alignment_needed,
6375         preferred_stack_boundary and max_jumptable_ents.
6376         (expand_function_end): Update.
6377         (free_after_compilation): Do not NULLify epilogue_delay_list.
6378         * function.h (struct rtl_data): Add stack_protect_guard,
6379         stack_alignment_needed,
6380         preferred_stack_boundary, epilogue_delay_list.
6381         (struct function): Remove value_histograms, stack_alignment_needed,
6382         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
6383         last_label_uid,
6384         unexpanded_var_list, stack_protect_guard.
6385         (current_function_epilogue_delay_list): Remove.
6386         * ipa-type-escape.c (analyze_function): Update.
6387         * gimplify.c (pop_gimplify_context): Update comment.
6388         * calls.c (expand_call): Update.
6389         (emit_library_call_value_1): Update.
6390         * except.c (set_nothrow_function_flags): Update.
6391         * cfgexpand.c (get_decl_align_unit): Update.
6392         (create_stack_guard): Update.
6393         (estimated_stack_frame_size): Update.
6394         (expand_used_vars): Update.
6395         (tree_expand_cfg): Free histogram earliers, init expansion variables.
6396         * explow.c (allocate_dynamic_stack_space): Update.
6397         * tree-ssa-live.c (remove_unused_locals): Update.
6398         * varasm.c (mark_constant_pool): Update.
6399         * tree-inline.c (remap_decls): Update.
6400         (initialize_cfun): Update.
6401         (declare_return_variable): Update.
6402         (inline_forbidden_p): Update.
6403         (expand_call_inline): Update.
6404         (declare_inline_vars): Update.
6405         (tree_function_versioning): Update.
6406         * tree-flow.h (value_histograms): New.
6407         (VALUE_HISTOGRAMS): New macro.
6408         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
6409         last_label_uid.
6410         * tree-cfg.c (set_bb_for_stmt): Update.
6411         (replace_by_duplicate_decl): Update.
6412         (move_block_to_fn): Update.
6413         (new_label_mapper): Update.
6414         (dump_function_to_file): Update.
6415         * ipa-struct-reorg.c (build_data_structure): Update.
6416         * cfgrtl.c (print_rtl_with_bb): Update.
6417         * reload1.c (reload): Update.
6418         (reload): Update.
6419         * config/i386/i386.c (setup_incoming_varargs_64,
6420         ix86_compute_frame_layout): Update.
6421         * config/arc/arc.c (arc_output_function_epilogue): Update.
6422
6423 2008-04-18  Marius Strobl <marius@FreeBSD.org>
6424
6425         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
6426         for FreeBSD as well.
6427         * gthr-posix95.h: Likewise.
6428
6429 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
6430
6431         PR rtl-optimization/35838
6432         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
6433         out the byte offset of the first subreg.
6434
6435 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
6436
6437         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
6438         to split_ti instead of three separate calls with single member arrays.
6439         (subti3 splitter): Ditto.
6440         (adddi3 splitter): Ditto with split_di.
6441         (subdi3 splitter): Ditto.
6442         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
6443         two separate calls with single member arrays.  Swap match_dup
6444         operands 1 and 2 to better fit into the array.
6445         (negdi2 splitter): Ditto with split_di.
6446         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
6447         two separate calls with single member arrays.  Swap match_dup operands
6448         6 and 7 to better fit into the array.
6449
6450 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
6451
6452         * config/i386/i386.c (sse_builtin_type): New.
6453         (bdesc_sse_args): Likewise.
6454         (bdesc_sse_3arg): Removed.
6455         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6456         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
6457         IX86_BUILTIN_ROUNDPS.
6458         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
6459         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
6460         IX86_BUILTIN_ROUNDPS.
6461         (ix86_expand_sse_4_operands_builtin): Removed.
6462         (ix86_expand_sse_operands_builtin): New.
6463         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
6464         and CODE_FOR_sse4_1_roundps.
6465         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6466         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
6467
6468 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
6469
6470         PR target/35907
6471         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
6472         regs before frame pop when needed.  If use_backchain_to_restore_sp
6473         then load backchain into a temp reg to restore vr and vrsave.  Add
6474         code to restore vr after frame pop if possible.
6475
6476 2008-04-17  Richard Guenther  <rguenther@suse.de>
6477
6478         * tree-vn.c (expressions_equal_p): Do not check type
6479         equality or compatibility before calling operand_equal_p.
6480         * fold-const.c (operand_equal_p): Check equivalence of
6481         integer constants before bailing out due to signedness or
6482         precision differences.
6483         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
6484         spurious differences in type qualification.  Ignore types
6485         for COMPONENT_REFs at all.
6486
6487 2008-04-17  Christian Bruel  <christian.bruel@st.com>
6488
6489         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
6490         msw_skip comparison.
6491         
6492 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
6493
6494         PR c/35739
6495         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
6496         reg type.
6497
6498         PR tree-optimization/35899
6499         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
6500         rather than TREE_OPERAND.
6501
6502 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
6503
6504         PR target/35944
6505         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
6506         temporary registers.  Change operand predicate to general_operand.
6507         (remainderxf3): Ditto.
6508
6509 2008-04-16  Richard Guenther  <rguenther@suse.de>
6510
6511         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
6512         * tree-affine.c (aff_combination_expand): Look through some
6513         conversions.
6514
6515 2008-04-15  Doug Kwan  <dougkwan@google.com>
6516
6517         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
6518         for hex printing.
6519         * tree-pretty-print.c (dump_generic_node): Ditto.
6520         * final.c (output_addr_const): Ditto.
6521         * dwarf2out.c (output_cfi): Ditto.
6522         * c-pretty-print.c (pp_c_integer_constant): Ditto.
6523         * print-rtl.c (print_rtx): Ditto.
6524         * print-tree.c (print_node_brief, print_node): Ditto.
6525         * c-common.c (match_case_to_enum_1): Ditto.
6526         * sched-vis.c (print_value): Ditto.
6527         * config/i386/i386.c (print_operand): Cast to long unsigned int
6528         for hex printing.
6529
6530 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
6531         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
6532         MS Windows VirtualProtect function.
6533
6534 2008-04-15  Jan Hubicka  <jh@suse.cz>
6535
6536         * gengtype.c (write_root): Param_is argument is OK.
6537         * expr.c (expand_expr_real_1): Update call of get_exception_*.
6538         * function.h: Include varray.h
6539         (rtl_eh): New stucture based on except.c one.
6540         (call_site_record): New forward declaration and vector type.
6541         * calls.c (emit_call_1): Do not call
6542         note_current_region_may_contain_throw.
6543         * except.c (eh_status): Remove cur_region, try_region since they are
6544         unused.
6545         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
6546         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
6547         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
6548         Remove call_site_data_used, call_site_data_size.
6549         Turn call_site_record into vector in function.h.
6550         (note_current_region_may_contain_throw): Remove.
6551         (get_exception_pointer, get_exception_filter): Do not take struct
6552         function argument; update.
6553         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
6554         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
6555         build_post_landing_pads, dw2_build_landing_pads,
6556         sjlj_assign_call_site_values, sjlj_mark_call_sites,
6557         sjlj_emit_function_enter, sjlj_emit_function_enter, 
6558         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
6559         sjlj_build_landing_pads, finish_eh_generation,
6560         remove_exception_handler_label, remove_eh_handler,
6561         maybe_remove_eh_handler, add_reachable_handler,
6562         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
6563         add_action_record, collect_one_action_chain, add_call_site,
6564         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
6565         sjlj_output_call_site_table, output_function_exception_table,
6566         * except.h (note_current_region_may_contain_throw): Remove
6567         (get_exception_pointer, get_exception_filter): Do not take struct
6568         function argument.
6569         * Makefile.in (GTFILES): Put varargs before struct function.
6570
6571 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6572
6573         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
6574         punt for STRING_CST.
6575         (get_constraint_for): Deal with STRING_CST here instead.
6576
6577 2008-04-15  Richard Guenther  <rguenther@suse.de>
6578
6579         * tree-ssa-propagate.c (substitute_and_fold): Substitute
6580         statements in a basic-block with a backward walk.  Do not
6581         substitute into dead statements but instead remove those.
6582
6583 2008-04-15  Richard Guenther  <rguenther@suse.de>
6584
6585         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
6586         to zero, thus disable creation of SFTs.
6587
6588 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6589
6590         * tree-predcom.c (suitable_reference_p): Return false if the
6591         reference can throw.
6592
6593 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
6594
6595         PR c/35751
6596         * c-decl.c (finish_decl): If extern or static var has variable
6597         size, set TREE_TYPE (decl) to error_mark_node.
6598
6599 2008-04-15  Rafael Espindola  <espindola@google.com>
6600
6601         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
6602         variable arg1.
6603
6604 2008-04-15  Richard Guenther  <rguenther@suse.de>
6605
6606         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
6607         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
6608         (visit_reference_op_load): Do walk vuse-vdef chains on
6609         vn_reference_lookup.
6610         (visit_reference_op_store): But do not here.
6611         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
6612         vn_reference_lookup.
6613         (vn_lookup_with_vuses): But do so here.
6614
6615 2008-04-14  Ian Lance Taylor  <iant@google.com>
6616
6617         * fold-const.c (fold_overflow_warning): Remove assertion.
6618
6619 2008-04-15  Ben Elliston  <bje@au.ibm.com>
6620
6621         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
6622         temp1 local variables.
6623
6624 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
6625
6626         PR target/35661
6627         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
6628         ".text.unlikely" section as executable.
6629
6630 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
6631
6632         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6633         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
6634         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
6635         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
6636         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
6637         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
6638         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
6639
6640 2008-04-14  Ian Lance Taylor  <iant@google.com>
6641
6642         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
6643         * fold-const.c (fold_comparison): If appropriate, test
6644         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
6645         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
6646         reassociating a pointer type.
6647         * doc/invoke.texi (Optimize Options): Document that
6648         -fstrict-overflow applies to pointer wraparound.
6649
6650 2008-04-13  Jan Hubicka  <jh@suse.cz>
6651
6652         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
6653
6654 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
6655
6656         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
6657         we are going to "save the world".
6658
6659 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
6660
6661         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
6662         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
6663         operand 0 constraint, not "=".
6664
6665 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
6666
6667         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
6668
6669 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6670
6671         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
6672         of size of positions_needed * CHAR_BIT.
6673
6674 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6675
6676         PR middle-end/35897
6677         * dse.c (store_info): Change positions_needed to unsigned
6678         HOST_WIDE_INT.
6679         (lowpart_bitmask): New.
6680         (record_store): Cast to unsigned HOST_WIDE_INT for
6681         positions_needed.  Assert width <= size of positions_needed *
6682         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
6683         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
6684         lowpart_bitmask to set mask.
6685
6686 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
6687
6688         * config/bfin/constraints.md: New file.
6689         * config/bfin/bfin.md: Include it.
6690         (adddi3): Use satisfies_constraint functions instead of the old macros.
6691         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
6692         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
6693         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
6694         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
6695         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
6696         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
6697         EXTRA_CONSTRAINT): Delete.
6698         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
6699         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
6700         of the old macros.
6701         * config/bfin/bfin.c: Include "tm-constrs.h".
6702         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
6703         Use satisfies_constraint functions instead of the old macros.
6704         * doc/md.texi (Blackfin Constraints): Update file name reference.
6705
6706 2008-04-11  Richard Guenther  <rguenther@suse.de>
6707
6708         PR tree-optimization/35869
6709         * tree-vrp.c (execute_vrp): Move switch statement update after
6710         jump threading.  Schedule another cfg cleanup run.
6711
6712 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
6713
6714         PR c/35744
6715         * attribs.c (decl_attributes): Return early on errorneous node.
6716
6717 2008-04-10  Oleg Ryjkov  <olegr@google.com>
6718
6719         * tree.h (struct tree_base): Added a new flag default_def_flag.
6720         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
6721
6722 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6723
6724         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
6725
6726 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6727
6728         PR target/35768
6729         * pa.md: Define mode iterator P.  Define mode attribute dwc.
6730         (dcacheflush): Update pattern to use iterator P and attribute dwc.
6731         (icacheflush): Likewise.
6732         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
6733         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
6734
6735 2008-04-11  Ben Elliston  <bje@au.ibm.com>
6736
6737         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
6738
6739 2008-04-10  Rafael Espindola  <espindola@google.com>
6740
6741         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
6742         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
6743         (extract_range_from_expr): The same.
6744
6745 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
6746
6747         * config/mips/mips.md (GPR2): New mode iterator.
6748         (seq): Add comment.
6749         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
6750         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
6751         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
6752         Rewrite these to take two modes, the mode of comparison and the
6753         mode of the destination.
6754         * config/mips/mips.c (mips_expand_scc): Instead of having
6755         paradoxical subreg as destination, expand "narrowing" scc if mode
6756         of comparison is SI and target is requested in DI mode.
6757         (mips_emit_int_order_test): Update comment.  Make mode of
6758         comparison match CMP0 rather than TARGET.  When creating inverse
6759         target use mode of TARGET.
6760
6761 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
6762
6763         * gcov-dump.c (tag_summary): Only print summaries for the first
6764         GCOV_COUNTERS_SUMMABLE counters.
6765
6766 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
6767
6768         * config/i386/i386.md (absneg): New code iterator.
6769         (absnegprefix): New code attribute.
6770         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
6771         patterns using absneg code iterator.
6772         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
6773         using absneg code iterator.
6774         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
6775         *neg<mode>2 patterns using absneg code iterator.
6776         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6777         *negextendsfdf2 patterns using absneg code iterator.
6778         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
6779         *negextendsfxf2 patterns using absneg code iterator.
6780         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6781         *negextendsfdf2 patterns using absneg code iterator.
6782         * config/i386/sse.md (<code><mode>2): Macroize expander from
6783         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
6784
6785 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
6786
6787         * config/s390/s390.h: Remove the remains of the recent search
6788         & replace action of current_function_outgoing_args_size.
6789
6790 2008-04-10  Ira Rosen  <irar@il.ibm.com>
6791
6792         PR tree-optimization/35821
6793         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
6794         NEW_STMT_LIST is not NULL.
6795
6796 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
6797
6798         PR libstdc++/35597
6799         * toplev.c (process_options): Remove -ffunction-sections debugging
6800         warning.
6801
6802 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
6803
6804         PR middle-end/PR28690
6805         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
6806         than gen_rtx_fmt_ee to perform more canonicalizations.
6807
6808 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6809
6810         PR driver/35665
6811         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
6812
6813 2008-04-09  Richard Guenther  <rguenther@suse.de>
6814
6815         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
6816         (dump_function_to_file): Dump function arguments with types.
6817
6818 2008-04-08  Richard Guenther  <rguenther@suse.de>
6819
6820         * fold-const.c (fold_widened_comparison): Do not allow
6821         sign-changes that change the result.
6822
6823 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
6824
6825         PR target/35839
6826         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
6827         kinds of indirect references.
6828
6829 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
6830
6831         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
6832         GNU Fortran language string.
6833
6834 2008-04-08  Rafael Espindola  <espindola@google.com>
6835
6836         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
6837         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
6838         * tree.h (tree_call_nonnegative_warnv_p): New.
6839
6840 2008-04-08  Jan Hubicka  <jh@suse.cz>
6841
6842         * function.c (free_after_compilation): Clear out regno_reg_rtx
6843         pointer.
6844
6845 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
6846
6847         Revert
6848         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
6849
6850         PR middle-end/PR28690
6851         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
6852         same precedence as REG_POINTER and MEM_POINTER operands.
6853
6854 2008-04-08  Richard Guenther  <rguenther@suse.de>
6855
6856         PR middle-end/35834
6857         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
6858         for adding index to base.
6859
6860 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
6861
6862         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
6863         (MINGW_ENABLE_EXECUTE_STACK): New.
6864         (IN_LIBGCC2): For libgcc include windows.h file for
6865         function declarations.
6866
6867 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
6868
6869         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
6870         and tem2 if tem1 is not a REG or MULT.
6871
6872 2008-04-08  Jan Hubicka  <jh@suse.cz>
6873
6874         * function.h (incomming_args): Break out of struct function.
6875         (function_subsections): Break out of struct function.
6876         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
6877         return_rtx and hard_reg_initial_vals from struct function.
6878         Kill inl_max_label_num.
6879         (current_function_pops_args, current_function_args_info,
6880         current_function_args_size, current_function_args_size,
6881         current_function_pretend_args_size,
6882         current_function_outgoing_args_size,
6883         current_function_internal_arg_pointer, current_function_return_rtx):
6884         Kill compatibility accestor macros.
6885         * builtins.c (expand_builtin_apply_args_1): Update.
6886         (expand_builtin_next_arg): Update.
6887         * df-scan.c (df_get_call_refs): Update.
6888         * dbxout.c (dbxout_function_end): Update.
6889         * dwarf2out.c (dwarf2out_switch_text_section): Update.
6890         (output_line_info): Update.
6891         (secname_for_decl): Update.
6892         (dwarf2out_var_location): Update.
6893         * function.c (free_after_compilation): Update.
6894         (assign_parm_find_stack_rtl): Update.
6895         (assign_parms): Update.
6896         (expand_dummy_function_end): Update.
6897         (expand_function_end): Update.
6898         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
6899         (expand_call): Update.
6900         (emit_library_call_value_1): Update.
6901         (store_one_arg): Update.
6902         * varasm.c (initialize_cold_section_name): Update.
6903         (unlikely_text_section): Update.
6904         (unlikely_text_section_p): Update.
6905         (assemble_start_function): Update.
6906         (assemble_end_function): Update.
6907         (default_section_type_flags): Update.
6908         (switch_to_section): Update.
6909         * integrate.c (set_decl_abstract_flags): Update.
6910         (get_hard_reg_initial_val): Update.
6911         (has_hard_reg_initial_val): Update.
6912         (allocate_initial_values): Update.
6913         * resource.c (init_resource_info): Update.
6914         * config/alpha/alpha.c (NUM_ARGS): Update.
6915         (direct_return): Update.
6916         (alpha_va_start): Update.
6917         (alpha_sa_size): Update.
6918         (alpha_initial_elimination_offset): Update.
6919         (alpha_expand_prologue): Update.
6920         (alpha_start_function): Update.
6921         (alpha_expand_epilogue): Update.
6922         (unicosmk_initial_elimination_offset):
6923         * config/alpha/alpha.md (call expander): Update.
6924         * config/s390/s390.c (s390_register_info): Update.
6925         (s390_register_info): Update.
6926         (s390_frame_info): Update.
6927         (s390_initial_elimination_offset): Update.
6928         (s390_build_builtin_va_list): Update.
6929         (s390_va_start): Update.
6930         * config/spu/spu.c (direct_return): Update.
6931         (spu_expand_prologue): Update.
6932         (spu_initial_elimination_offset): Update.
6933         (spu_build_builtin_va_list): Update.
6934         (spu_va_start): Update.
6935         * config/sparc/sparc.c (sparc_init_modes): Update.
6936         (sparc_compute_frame_size): Update.
6937         (function_value): Update.
6938         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
6939         * config/i386/i386.md (return expander): Update.
6940         * config/i386/i386.c (ix86_va_start): Update.
6941         (ix86_can_use_return_insn_p): Update.
6942         (ix86_compute_frame_layout): Update.
6943         (ix86_expand_epilogue): Update.
6944         * config/sh/sh.c (output_stack_adjust): Update.
6945         (calc_live_regs): Update.
6946         (sh_expand_prologue): Update.
6947         (sh_builtin_saveregs): Update.
6948         (sh_va_start): Update.
6949         (initial_elimination_offset): Update.
6950         (sh_allocate_initial_value): Update.
6951         (sh_function_ok_for_sibcall): Update.
6952         (sh_get_pr_initial_val): Update.
6953         * config/sh/sh.md (return expander): Update.
6954         * config/avr/avr.c (frame_pointer_required_p): UPdate.
6955         * config/crx/crx.c (crx_compute_frame): UPdate.
6956         (crx_initial_elimination_offset): UPdate.
6957         * config/xtensa/xtensa.c (compute_frame_size): Update
6958         (xtensa_builtin_saveregs): Update.
6959         (xtensa_va_start): Update.
6960         (order_regs_for_local_alloc): Update.
6961         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
6962         (xstormy16_expand_builtin_va_start): Update.
6963         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
6964         * config/m68hc11/m68hc11.md (return expanders): Update.
6965         * config/m68hc11/m68hc11.c (expand_prologue): Update.
6966         (expand_epilogue): Update.
6967         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
6968         (cris_simple_epilogue): Update.
6969         (cris_expand_prologue): Update.
6970         (cris_expand_epilogue): Update.
6971         * config/iq2000/iq2000.c (iq2000_va_start): Update.
6972         (compute_frame_size): Update.
6973         * config/mt/mt.c (mt_compute_frame_size): Update.
6974         * config/mn10300/mn10300.c (expand_prologue): Update.
6975         (expand_epilogue): Update.
6976         (initial_offset): Update.
6977         (mn10300_builtin_saveregs):
6978         * config/mn10300/mn10300.md (return expander): Update.
6979         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6980         (ia64_initial_elimination_offset): Update.
6981         (ia64_initial_elimination_offset): Update.
6982         (ia64_expand_prologue): Update.
6983         * config/m68k/m68k.md (return expander): Update.
6984         * config/rs6000/rs6000.c (rs6000_va_start): Update.
6985         (rs6000_stack_info): Update.
6986         * config/mcore/mcore.c (layout_mcore_frame): Update.
6987         (mcore_expand_prolog): Update.
6988         * config/arc/arc.c (arc_compute_frame_size): Update.
6989         * config/score/score3.c (score3_compute_frame_size): Update.
6990         * config/score/score7.c (score7_compute_frame_size): Update.
6991         * config/arm/arm.c (use_return_insn): Update.
6992         (thumb_find_work_register): Update.
6993         (arm_compute_save_reg_mask): Update.
6994         (arm_output_function_prologue): Update.
6995         (arm_output_epilogue): Update.
6996         (arm_size_return_regs): Update.
6997         (arm_get_frame_offsets): Update.
6998         (arm_expand_prologue): Update.
6999         (thumb_exit): Update.
7000         (thumb_unexpanded_epilogue): Update.
7001         (thumb1_output_function_prologue): Update.
7002         * config/pa/pa.md (return expander): Update.
7003         * config/pa/pa.c (compute_frame_size): Update.
7004         (hppa_builtin_saveregs): Update.
7005         * config/mips/mips.c (mips_va_start): Update.
7006         (mips16_build_function_stub): Update.
7007         (mips_compute_frame_info): Update.
7008         (mips_restore_gp): Update.
7009         (mips_output_function_prologue): Update.
7010         (mips_expand_prologue): Update.
7011         * config/v850/v850.c (compute_frame_size): Update.
7012         (expand_prologue): * config/mmix/mmix.c (along): update.
7013         (mmix_initial_elimination_offset): update.
7014         (mmix_reorg): update.
7015         (mmix_use_simple_return): update.
7016         (mmix_expand_prologue): update.
7017         (mmix_expand_epilogue): Update.
7018         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
7019         (emit_link_insn): Update.
7020
7021 2008-04-08  Anatoly Sokolov <aesok@post.ru>
7022
7023         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
7024         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
7025         instructions.
7026         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
7027         atmega103 device.
7028
7029 2008-04-07  Jan Hubicka  <jh@suse.cz>
7030
7031         * function.h (rtl): Rename to x_rtl.
7032         (crtl): New define.
7033         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7034         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7035         used_temp_slots avail_temp_slots, temp_slot_level,
7036         nonlocal_goto_handler_labels): Update accesstors.
7037         (rtl): New global variable.
7038         (struct function): Move some fileds to rtl_data.
7039         (get_arg_pointer_save_area): Update prototype.
7040         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7041         get_arg_pointer_save_area.
7042         * expr.c (init_expr): Update
7043         * function.c (get_frame_size): Update
7044         (assign_stack_local): Update
7045         (expand_function_end): Update.
7046         (get_art_pointer_save_area): Update
7047         * function.h 
7048         * emit-rtl.c (rtl): Declare.
7049         (regno_reg_rtx): Declare.
7050         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7051         Update.
7052         (gen_reg_rtx): Update.
7053         * varasm.c (n_deferred_constatns): Update accestor.
7054         (init_varasm_status): Do not allocate varasm_status.
7055         (force_const_mem, get_pool_size, output_constant_pool): Update.
7056         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7057         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7058         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
7059         * sparc/sparc.h (INIT_EXPANDERS): Update.
7060         * ia64/ia64.h (INIT_EXPANDERS): Update.
7061
7062 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
7063
7064         * reload.c (push_secondary_reload): Add missing break to for loop.
7065
7066 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7067
7068         PR middle-end/PR28690
7069         * rtlanal.c: Update copyright years.
7070         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
7071         as REG_POINTER and MEM_POINTER operands.
7072         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
7073         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
7074         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
7075         * gcse.c: Update copyright years.
7076         (pre_delete): Call gen_reg_rtx_and_attrs.
7077         (hoist_code): Likewise.
7078         (build_store_vectors): Likewise.
7079         (delete_store): Likewise.
7080         * loop-invariant.c (move_invariant_reg): Likewise.
7081         Update copyright years.
7082
7083 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
7084
7085         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
7086         control string instead of quoted.
7087
7088 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
7089
7090         * doc/rtl.texi: Rewrite of subreg section.
7091
7092 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
7093
7094         PR/35842
7095         * config/i386/i386.c (legitimize_pic_address): Add treating
7096         of dllimport SYM_REF's.
7097         (legitimize_dllimport_symbol): Add prototype.
7098
7099 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7100
7101         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
7102         reference in constructor with non self-referential type.
7103
7104 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7105
7106         Removal of Return with Depressed Stack Pointer support
7107         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
7108         (ECF_SP_DEPRESSED): Likewise.
7109         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
7110         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
7111         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7112         (expand_call): Do not test ECF_SP_DEPRESSED.
7113         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7114         * function.c (keep_stack_depressed): Delete.
7115         (handle_epilogue_set): Likewise.
7116         (update_epilogue_consts): Likewise.
7117         (emit_equiv_load): Likewise.
7118         (thread_prologue_and_epilogue_insns): Remove support for Return with
7119         Depressed Stack Pointer.
7120         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7121
7122 2008-04-06  Richard Guenther  <rguenther@suse.de>
7123
7124         PR tree-optimization/35400
7125         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
7126         information from SSA_NAMEs.
7127
7128 2008-04-06  Anatoly Sokolov <aesok@post.ru>
7129
7130         * config/avr/avr.h (avr_mega_p): Remove declaration.
7131         (AVR_MEGA): Remove macro.
7132         * config/avr/avr.c (avr_mega_p): Remove variable.
7133         (avr_override_options): Remove inicializion of avr_mega_p.
7134         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7135         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7136         (avr_jump_mode): (Ditto.).
7137         (avr_output_progmem_section_asm_op): (Ditto.).
7138         (avr_asm_init_sections): (Ditto.).
7139         (avr_asm_init_sections): (Ditto.).
7140         (avr_rtx_costs): (Ditto.).
7141         * config/avr/avr.md: (Ditto.).
7142         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
7143         '__AVR_MEGA__'.
7144
7145 2008-04-06  Richard Guenther  <rguenther@suse.de>
7146
7147         PR tree-optimization/35842
7148         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
7149         is_gimple_invariant_address.
7150
7151 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7152
7153         * gcc.c (default_compilers): Sync Fortran extensions list with
7154         that in fortran/lang-specs.h.
7155         * doc/invoke.texi: Likewise.
7156         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
7157         * dwarf2out.c (gen_compile_unit_die): Likewise.
7158
7159 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
7160
7161         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
7162
7163 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
7164
7165         PR target/12329
7166         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
7167         attribute is used for nested functions.
7168
7169 2008-04-05  Jan Hubicka  <jh@suse.cz>
7170
7171         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
7172
7173         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
7174         letter argument.
7175         (dump_files): Update.
7176         (enable_rtl_dump_file): Do not accept letter argument.
7177         * tree-pass.h (dump_file_info): Remove letter argument.
7178         * toplev.c (decode_d_option): Update -da handling.
7179         * toplev.h (enable_rtl_dump_file): Update prototype.
7180         * passes.c (register_one_dump_file): Do not accept IPA argument; work
7181         it out based on pass type.
7182         (register_dump_files_1): Likewise.
7183         (init_optimization_passes): Update register_one_dump_file calls.
7184         (execute_one_pass): Sanity check that IPA passes are called at IPA
7185         level and RTL passes at RTL level.
7186         (execute_pass_list): IPA pass can not be after or subpass of
7187         GIMPLE/RTL pass.
7188         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
7189         disallov RTL subpasses of IPA subpasses.
7190
7191 2008-04-05  Ben Elliston  <bje@au.ibm.com>
7192
7193         * tree-cfg.c (need_fake_edge_p): Return false for calls to
7194         builtins that return exactly once and do not throw. Cache call to
7195         call_expr_flags.
7196
7197 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
7198
7199         PR rtl-optimization/34916
7200         PR middle-end/35519
7201         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
7202         between instruction pairs.
7203
7204 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
7205
7206         * doc/invoke.texi: Document -mbitops for SH.
7207         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
7208         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
7209         * config/sh/sh.c (print_operand): Add %t operand code.
7210         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
7211         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
7212         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
7213         (extendqihi2): Likewise.
7214         (movqi_i): Likewise.
7215         (insv): Use bset, bclr and bst instructions for SH2A if possible.
7216         (extv): Use bld instruction for SH2A if possible.
7217         (extzv): Likewise.
7218         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
7219         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
7220         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
7221         (bset.b, bclr.b): Define peepholes.
7222         * config/sh/sh.opt (mbitops): New option.
7223
7224 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
7225
7226         PR target/35620
7227         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
7228         and view convert expression.
7229
7230 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7231
7232         PR target/35364
7233         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
7234
7235 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
7236
7237         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
7238
7239         * config/i386/cpuid.h (bit_AES): New.
7240         (bit_PCLMUL): Likewise.
7241
7242         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
7243         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
7244         SSE2 if AES or PCLMUL is enabled.
7245         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
7246         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7247         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
7248         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
7249         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
7250         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
7251         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7252         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
7253         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
7254         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
7255         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
7256         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
7257         __builtin_ia32_aeskeygenassist128 and
7258         __builtin_ia32_pclmulqdq128.
7259         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
7260         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
7261         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
7262
7263         * config/i386/i386.h (TARGET_AES): New.
7264         (TARGET_PCLMUL): Likewise.
7265         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
7266
7267         * config/i386/i386.md (UNSPEC_AESENC): New.
7268         (UNSPEC_AESENCLAST): Likewise.
7269         (UNSPEC_AESDEC): Likewise.
7270         (UNSPEC_AESDECLAST): Likewise.
7271         (UNSPEC_AESIMC): Likewise.
7272         (UNSPEC_AESKEYGENASSIST): Likewise.
7273         (UNSPEC_PCLMUL): Likewise.
7274
7275         * config/i386/i386.opt (maes): New.
7276         (mpclmul): Likewise.
7277
7278         * config/i386/sse.md (aesenc): New pattern.
7279         (aesenclast): Likewise.
7280         (aesdec): Likewise.
7281         (aesdeclast): Likewise.
7282         (aesimc): Likewise.
7283         (aeskeygenassist): Likewise.
7284         (pclmulqdq): Likewise.
7285
7286         * config/i386/wmmintrin.h: New.
7287
7288         * doc/extend.texi: Document AES and PCLMUL built-in function.
7289
7290         * doc/invoke.texi: Document -maes and -mpclmul.
7291
7292 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
7293
7294         * function.c (free_after_parsing): Replace with
7295         cxx_push_function_context from C++ front-end.
7296         (allocate_struct_function): Don't call langhook.
7297         * langhooks.h (struct lang_hooks_for_functions): Delete.
7298         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
7299         member "function".
7300         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
7301         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
7302         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
7303         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
7304         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
7305         remove LANG_HOOKS_FUNCTION_INITIALIZER.
7306         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
7307
7308         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
7309         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
7310         
7311 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7312
7313         PR c/35440
7314         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
7315         for all types.
7316
7317 2008-04-04  Richard Guenther  <rguenther@suse.de>
7318
7319         PR middle-end/35823
7320         * fold-const.c (optimize_minmax_comparison): Use the correct
7321         type for the constant in the simplified comparison.
7322
7323 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
7324
7325         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
7326         Pass L2 size as "--param l2-cache-size" to the compiler.
7327         (decode_l2_cache): New function to decode L2 cache parameters using
7328         0x8000006 extended cpuid function.
7329         (detect_caches_amd): Determine parameters of L2 cache using
7330         decode_l2_caches function.
7331         (decode_caches_intel): Decode L2 cache parameters.
7332         (detect_caches_intel): Determine L2 cache parameters using
7333         decode_caches_intel and decode_l2_caches functions.
7334
7335 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
7336
7337         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
7338         secondary input reload for subword loads from the constant pool.
7339
7340 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
7341
7342         PR target/35713
7343         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
7344           constants of the appropriate size for runtime calculations.
7345
7346         PR c/35712
7347         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
7348           decimal-float literal constant zero.
7349
7350 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
7351
7352         PR c/35738
7353         * c-parser.c (c_parser_omp_atomic): Call
7354         default_function_array_conversion on the RHS.
7355
7356         PR middle-end/35818
7357         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
7358         call is_variable_sized if decl has incomplete type.
7359
7360 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
7361
7362         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
7363
7364 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
7365
7366         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
7367         iterators.
7368         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
7369         (sgt<u>): Merge sgt and sgtu into new expander.
7370         (sgt, sgtu): Remove expanders.
7371         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
7372         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
7373         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
7374         *sgtu_<mode>_mips16 into new pattern.
7375         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
7376         (sge<u>): Merge sge and sgeu into new expander.
7377         (sge, sgeu): Remove expanders.
7378         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
7379         new pattern.
7380         (*sge_<mode>, second *sge_<mode>): Remove patterns.
7381         (slt<u>): Merge slt and sltu into new expander.
7382         (slt, sltu): Remove expanders.
7383         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
7384         (*slt_<mode>, *sltu_<mode>): Remove patterns.
7385         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
7386         *sltu_<mode>_mips16 into new pattern.
7387         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
7388         (sle<u>): Merge sle and sleu into new expander.
7389         (sle, sleu): Remove expanders.
7390         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
7391         (*sle_<mode>, *sleu_<mode>): Remove patterns.
7392         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
7393         *sleu_<mode>_mips16 into new pattern.
7394         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
7395
7396 2008-04-03  Jan Hubicka  <jh@suse.cz>
7397
7398         PR tree-optimization/35795
7399         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
7400         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
7401         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
7402         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
7403         * score/score3.c (score3_output_mi_thunk): Likewise.
7404         * score/score7.c (score7_output_mi_thunk): Likewise.
7405         * mips/mips.c (mips_output_mi_thunk): Likewise.
7406
7407 2008-04-03  Richard Guenther  <rguenther@suse.de>
7408
7409         * tree-vrp.c (extract_range_from_unary_expr): Handle all
7410         conversions.  Simplify code.
7411
7412 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
7413
7414         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
7415
7416 2008-04-03  Tom Tromey  <tromey@redhat.com>
7417             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7418
7419         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7420         * config/bfin/t-bfin-linux (generated_files): Add
7421         linux-sysroot-suffix.h.
7422         * doc/install.texi (Prerequisites): Require make 3.80.
7423         * doc/sourcebuild.texi (Front End Directory): Document new
7424         variable.
7425         * Makefile.in (generated_files): New variable.
7426         (ALL_HOST_OBJS): New variable.
7427         ($(ALL_HOST_OBJS)): New target.
7428
7429 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7430
7431         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
7432         (remap_block): Call id->transform_lang_insert_block instead
7433         of langhook.
7434         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
7435         Set id.transform_lang_insert_block to NULL.
7436         (clone_body): Move to cp/optimize.c
7437         * tree-inline.h (struct copy_body_data): Change
7438         transform_lang_insert_block to function pointer.
7439         (copy_generic_body, copy_decl_no_change): Export.
7440         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
7441         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
7442         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
7443
7444         * c-tree.h (insert_block): Kill.
7445         * c-decl.c (insert_block): Kill.
7446
7447 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7448
7449         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7450         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7451         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
7452         argument.
7453         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
7454         argument, call {push,pop}_function_context from here.
7455         * c-parser.c: Use c_{push,pop}_function_context.
7456
7457         * function.c (push_function_context_to): Move meat ...
7458         (push_function_context): ... here.  Simplify.
7459         * function.c (pop_function_context_from): Move meat ...
7460         (pop_function_context): ... here.  Simplify.
7461         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
7462         leave_nested).
7463         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7464         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7465         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
7466         * tree.h (push_function_context_to, pop_function_context_from): Remove.
7467
7468 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7469
7470         * expmed.c (extract_force_align_mem_bit_field): Remove.
7471
7472 2008-04-03  Richard Guenther  <rguenther@suse.de>
7473
7474         PR middle-end/35800
7475         * expr.h (try_casesi): Adjust prototype.
7476         * expr.c (try_casesi): Take fallback label as extra parameter.
7477         Use that for gen_casesi if default_label is NULL.
7478         * stmt.c (expand_case): Pass fallback label to try_casesi,
7479         make sure to fill gaps with a fallback label if default_label
7480         is not present.
7481
7482 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
7483
7484         PR target/35801
7485         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
7486
7487 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7488
7489         * expmed.c (extract_split_bit_field): Remove if (0) code.
7490         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
7491         (do_ds_constraint): Likewise.
7492
7493 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
7494
7495         * doc/cppopts.texi (-dU): Document.
7496         * c-common.h (flag_dump_macros): Update comment.
7497         * c-opts.c (handle_OPT_d): Handle -dU.
7498         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
7499         dump_queued_macros, cb_used_define, cb_used_undef): New.
7500         (init_pp_output): Handle -dU.
7501         (cb_line_change): Call dump_queued_macros.
7502         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
7503
7504 2008-04-02  Anatoly Sokolov <aesok@post.ru>
7505
7506         * config/avr/predicates.md (io_address_operand): New predicate. 
7507         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
7508         * config/avr/avr.c (avr_io_address_p): Remove function.
7509         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
7510         'avr_io_address_p' function.
7511         (out_movhi_r_mr): (Ditto.).
7512         (out_movqi_mr_r): (Ditto.).
7513         (out_movhi_mr_r): (Ditto.).
7514         (avr_address_cost): (Ditto.).
7515
7516 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
7517
7518         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
7519         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
7520         in 32bit mode when XMM registers are available to avoid store
7521         forwarding stalls.
7522         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
7523         corresponding post-reload splitters.
7524
7525 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7526
7527         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
7528         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
7529         __builtin_ia32_roundss.
7530         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
7531         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
7532         __builtin_ia32_roundss.
7533         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
7534         IX86_BUILTIN_SHUFPD here.
7535
7536 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7537
7538         * config/i386/i386.md (plogic): New.
7539         (plogicprefix): Likewise.
7540
7541         * config/i386/mmx.md (mmx_<code><mode>3): New.
7542         (mmx_and<mode>3): Removed.
7543         (mmx_ior<mode>3): Likewise.
7544         (mmx_xor<mode>3): Likewise.
7545
7546         * config/i386/sse.md (<code><mode>3): New.
7547         (*<code><mode>3): Likewise.
7548         (*<code><mode>3): Likewise.
7549         (<code><mode>3): Likewise.
7550         (*sse_<code><mode>3): Likewise.
7551         (*sse2_<code><mode>3): Likewise.
7552         (<code>tf3): Likewise.
7553         (*<code>tf3): Likewise.
7554         (and<mode>3): Likewise.
7555         (*and<mode>3): Likewise.
7556         (ior<mode>3): Removed.
7557         (*ior<mode>3): Likewise.
7558         (xor<mode>3): Likewise.
7559         (*xor<mode>3): Likewise.
7560         (*and<mode>3): Likewise.
7561         (*ior<mode>3): Likewise.
7562         (*xor<mode>3): Likewise.
7563         (and<mode>3): Likewise.
7564         (*sse_and<mode>3): Likewise.
7565         (*sse2_and<mode>3): Likewise.
7566         (andtf3): Likewise.
7567         (*andtf3): Likewise.
7568         (ior<mode>3): Likewise.
7569         (*sse_ior<mode>3): Likewise.
7570         (*sse2_ior<mode>3): Likewise.
7571         (iortf3): Likewise.
7572         (*iortf3): Likewise.
7573         (xor<mode>3): Likewise.
7574         (*sse_xor<mode>3): Likewise.
7575         (*sse2_xor<mode>3): Likewise.
7576         (xortf3): Likewise.
7577         (*xortf3): Likewise.
7578
7579 2008-04-02  Richard Guenther  <rguenther@suse.de>
7580
7581         PR tree-optimization/14495
7582         PR tree-optimization/34793
7583         * tree-vrp.c (struct switch_update): New structure.
7584         (to_remove_edges, to_update_switch_stmts): New VECs.
7585         (simplify_switch_using_ranges): New function.  Remove not taken
7586         case labels and edges.
7587         (simplify_stmt_using_ranges): Call it.
7588         (identify_jump_threads): Mark edges we have queued for removal
7589         so we don't thread them.
7590         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
7591         case label vector.
7592         * tree-cfg.c (group_case_labels): Deal with missing default label.
7593         (tree_verify_flow_info): Allow missing default label.
7594         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
7595         (emit_case_nodes): Likewise.
7596         (expand_case): Do not rely on the default label to be present.
7597         * expr.c (try_casesi): Deal with NULL default_label.
7598         (do_tablejump): Likewise.
7599
7600 2008-04-02  Richard Guenther  <rguenther@suse.de>
7601
7602         PR tree-optimization/14495
7603         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
7604         SWITCH_EXPR here ...
7605         (vrp_visit_switch_stmt): ... but here (new function).
7606         (find_case_label_index): New helper function.
7607         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
7608
7609 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7610
7611         * fwprop.c: Fix ISO-C99ism.
7612
7613 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7614
7615         PR bootstrap/35752
7616         * Makefile.in (objdir): Set it here.
7617         * configure.ac: Not here.  Find dynamic linker characteristics.
7618         * exec-tool.in: Use them.
7619         * aclocal.m4: Regenerate.
7620         * configure: Regenerate.
7621
7622 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7623
7624         * expr.c (expand_var): Delete it.
7625         * expr.h (expand_var): Delete prototype.
7626         * function.c (expand_function_start): Use expand_decl instead.
7627         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
7628         langhook.
7629
7630 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
7631
7632         PR rtl-optimization/35542
7633         * fwprop.c (forward_propagate_and_simplify): Replace
7634         loc_reg_mentioned_in_p with reg_mentioned_p.
7635
7636 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7637
7638         PR rtl-optimization/35281
7639         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
7640         (propagate_rtx_1): Handle PR_HANDLE_MEM.
7641         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
7642         (varying_mem_p): Move above propagate_rtx.
7643         (all_uses_available_at): Do not check MEMs.
7644
7645 2008-04-02  Rafael Espindola  <espindola@google.com>
7646
7647         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
7648         (register_edge_assert_for_2): Split the cond argument.
7649         (register_edge_assert_for_1): Adjust for the change in
7650         register_edge_assert_for_2.
7651         (register_edge_assert_for): Split the cond argument.
7652         (find_switch_asserts): Adjust for the change in
7653         register_edge_assert_for.
7654
7655 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
7656
7657         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
7658         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
7659         offsets for 64-bit mingw.
7660         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
7661         abi for x86_64-pc-mingw.
7662
7663 2008-04-02  Richard Guenther  <rguenther@suse.de>
7664
7665         * tree-vrp.c (extract_range_from_assert): Make sure to not
7666         produce range min/max with TREE_OVERFOW set.
7667         If merging a anti-range and a range keep the anti-range if
7668         the range covers all values of the type.
7669         (register_edge_assert_for_2): Only allow sign-changing
7670         conversions in detecting canonical range checks.  Also
7671         register an assert for the unsigned name if useful.
7672
7673         PR tree-optimization/35787
7674         * tree-vrp.c (vrp_val_max): New function.
7675         (vrp_val_min): Likewise.
7676         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
7677         (vrp_val_is_min): Likewise.
7678         (supports_overflow_infinity): Use vrp_val_{min,max}.
7679         (negative_overflow_infinity): Likewise.
7680         (positive_overflow_infinity): Likewise.
7681         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
7682         (is_positive_overflow_infinity): Likewise.
7683         (is_overflow_infinity): Likewise.
7684         (avoid_overflow_infinity): Use vrp_val_{min,max} and
7685         vrp_val_is_{min,max}.
7686         (set_and_canonicalize_value_range): Canonicalize anti-ranges
7687         to ranges if possible.  Avoid empty ranges.
7688
7689 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7690
7691         PR middle-end/35705
7692         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
7693         the expression is a function address.
7694
7695 2008-04-01  George Helffrich  <george@gcc.gnu.org>
7696
7697         PR fortran/35154, fortran/23057
7698         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
7699         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
7700         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
7701         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
7702         in common.
7703         (dbxout_syms): Check for COMMON-based symbol and wrap in
7704         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
7705         in bracket for efficiency.
7706
7707         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
7708         using DW_TAG_common_block + member offset.
7709         (add_pubname_string): New function.
7710         (dw_expand_expr): New function to find block name and offset for
7711         COMMON var.
7712         (common_check): New function to check whether symbol in Fortran COMMON.
7713         (gen_variable_die): If COMMON, use DW_TAG_common_block.
7714
7715 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
7716
7717         PR c/35436
7718         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
7719
7720 2008-04-02  Ben Elliston  <bje@au.ibm.com>
7721
7722         * config/v850/v850.md (casesi): Remove if (0) code.
7723         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7724         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
7725
7726 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
7727
7728         * config/i386/i386.md (rex64suffix): New mode attribute.
7729         (floathi<mode>2): Disable expander for SSE math.
7730         (*floathi<mode>2_1): New insn insn_and_split pattern.
7731         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
7732         corresponding post-reload splitters.
7733         (*floathi<mode>2_i387): New macroized insn pattern.
7734         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
7735         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
7736         insn_and_split pattern.
7737         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
7738         New macroized instruction patterns and corresponding post-reload
7739         splitters.
7740         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
7741         and corresponding post-reload splitters.
7742         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
7743         New macroized instruction patterns.
7744         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
7745         macroized instruction patterns and corresponding post-reload splitters.
7746         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
7747         corresponding post-reload splitters.
7748         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
7749         New macroized instruction patterns.
7750         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
7751         corresponding post-reload splitters.
7752         (*floatsi<mode>2_i387): New macroized instruction patterns.
7753
7754 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
7755
7756         * config/i386/i386.md (smaxmin): New.
7757         (umaxmin): Likewise.
7758         (maxminiprefix): Likewise.
7759         (maxminfprefix): Likewise.
7760         (<code><mode>3): Likewise.
7761         (smin<mode>3): Removed.
7762         (smax<mode>3): Likewise.
7763
7764         * config/i386/mmx.md (mmx_<code>v2sf3): New.
7765         (mmx_<code>v4hi3): Likewise.
7766         (mmx_<code>v8qi3): Likewise.
7767         (mmx_smaxv2sf3): Removed.
7768         (mmx_sminv2sf3): Likewise.
7769         (mmx_umaxv8qi3): Likewise.
7770         (mmx_smaxv4hi3): Likewise.
7771         (mmx_uminv8qi3): Likewise.
7772         (mmx_sminv4hi3): Likewise.
7773
7774         * config/i386/sse.md (<addsub><mode>3): New.
7775         (*<addsub><mode>3): Likewise.
7776         (<sse>_vm<addsub><mode>3): Likewise.
7777         (<maxmin><mode>3): Likewise.
7778         (*<maxmin><mode>3_finite): Likewise.
7779         (*<maxmin><mode>3): Likewise.
7780         (<sse>_vm<maxmin><mode>3): Likewise.
7781         (sse3_h<addsub>v4sf3): Likewise.
7782         (sse3_h<addsub>v2df3): Likewise.
7783         (<maxmin>v16qi3): Likewise.
7784         (*<maxmin>v16qi3): Likewise.
7785         (<maxmin>v8hi3): Likewise.
7786         (*<maxmin>v8hi3): Likewise.
7787         (*sse4_1_<maxmin><mode>3): Likewise.
7788         (*sse4_1_<maxmin><mode>3): Likewise.
7789         (add<mode>3): Removed.
7790         (*add<mode>3): Likewise.
7791         (<sse>_vmadd<mode>3): Likewise.
7792         (sub<mode>3): Likewise.
7793         (*sub<mode>3): Likewise.
7794         (<sse>_vmsub<mode>3): Likewise.
7795         (smin<mode>3): Likewise.
7796         (*smin<mode>3_finite): Likewise.
7797         (*smin<mode>3): Likewise.
7798         (<sse>_vmsmin<mode>3): Likewise.
7799         (smax<mode>3): Likewise.
7800         (*smax<mode>3_finite): Likewise.
7801         (*smax<mode>3): Likewise.
7802         (<sse>_vmsmax<mode>3): Likewise.
7803         (sse3_haddv4sf3): Likewise.
7804         (sse3_haddv2df3): Likewise.
7805         (sse3_hsubv4sf3): Likewise.
7806         (sse3_hsubv2df3): Likewise.
7807         (umaxv16qi3): Likewise.
7808         (*umaxv16qi3): Likewise.
7809         (smaxv8hi3): Likewise.
7810         (*smaxv8hi3): Likewise.
7811         (*sse4_1_smax<mode>3): Likewise.
7812         (*sse4_1_umax<mode>3): Likewise.
7813         (uminv16qi3): Likewise.
7814         (*uminv16qi3): Likewise.
7815         (sminv8hi3): Likewise.
7816         (*sminv8hi3): Likewise.
7817         (*sse4_1_smin<mode>3): Likewise.
7818         (*sse4_1_umin<mode>3): Likewise.
7819
7820 2008-04-01  Rafael Espindola  <espindola@google.com>
7821
7822         * tree-cfg.c (verify_expr): remove in_phi.
7823         (verify_stmt): Don't call walk_tree with verify_expr. Use
7824         is_gimple_min_invariant instead of is_gimple_val.
7825
7826 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
7827
7828         * doc/include/gpl_v3.texi: Update for manpage generation.
7829         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
7830         gpl.texi.
7831         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
7832         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
7833         gpl_v3.texi instead of gpl.texi.
7834         (gpl.pod): New.
7835
7836 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
7837
7838         PR pch/13675
7839         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
7840
7841 2008-04-01  Rafael Espindola  <espindola@google.com>
7842
7843         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
7844         (extract_code_and_val_from_cond): Use
7845         extract_code_and_val_from_cond_with_ops.
7846
7847 2008-04-01  Jan Hubicka  <jh@suse.cz>
7848
7849         * function.c (free_after_compilation): Free epilogue_delay_list.
7850         (prepare_function_start): Assert that previous compilation was freed.
7851
7852 2008-04-01  Jan Hubicka  <jh@suse.cz>
7853             Jim Wilson  <wilson@tuliptree.org>
7854             Andreas Tobler <andreast@gcc.gnu.org>
7855
7856         PR middle-end/35781
7857         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
7858         rtl.emit instead cfun->emit.
7859         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
7860         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
7861
7862 2008-04-01  Ben Elliston  <bje@au.ibm.com>
7863
7864         * doc/c-tree.texi (Function Basics): Fix grammatical error.
7865
7866 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
7867
7868         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
7869         New options
7870         (fprofile-use): Add var flag_profile_use
7871         * coverage.c (coverage_begin_output): Do not open a gcno file for
7872         output only if -ftest-coverage is set.
7873         Do not add getpwd() to gcda file path.
7874         (build_gcov_info): Check the new flag
7875         flag_profile_datafile_relative_path.
7876         (coverage_init): Use profile_data_prefix.
7877         Read profile counter only if flag_profile_use is set.
7878         * opts.c (common_handle_option): New option fprofile-use=,
7879         fprofile-dir=, fprofile-generate=.
7880         * toplev.c (profile_data_prefix): New variable definition.
7881         * toplev.h (profile_data_prefix): New declaration.
7882         * doc/invoke.tex (Option Summary, Optimization Options):
7883         Add new options.
7884
7885 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
7886
7887         * varasm.c (output_constant_pool_1): In LABEL_REF check,
7888         use tmp consistently.
7889
7890         PR target/35695
7891         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
7892         * config/ia64/ia64.c (rtx_needs_barrier): Handle
7893         UNSPEC_FR_RECIP_APPROX_RES.
7894         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
7895
7896 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
7897
7898         PR c/35750
7899         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
7900
7901 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7902
7903         PR middle-end/30186
7904         * fold-const.c (fold_indirect_ref_1): Support accessing non first
7905         element of the vector via a pointer.
7906
7907 2008-03-31  Ian Lance Taylor  <iant@google.com>
7908
7909         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
7910
7911 2008-03-31  Jan Hubicka  <jh@suse.cz>
7912
7913         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7914         get_arg_pointer_save_area.
7915         * expr.c (init_expr): Just clear out rtl.expr.
7916         * function.c (free_after_compilation): Clear out whole RTL structure.
7917         (get_func_frame_size): Merge into ...
7918         (get_frame_size): ... this one.
7919         (assign_stack_local_1): Merge into ...
7920         (assign_stack_local): ... this one.
7921         (expand_function_end): Update call of get_arg_pointer_save_area.
7922         (get_art_pointer_save_area): Remove cfun argument.
7923         * function.h (emit_status): regno_pointer_align does not need length
7924         attribute. Move x_regno_reg_rtx to ...
7925         (regno_reg_rtx): ... new global array.
7926         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
7927         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
7928         apply_args_value, forced_labels, stack_pointer_delta):
7929         Update accestors.
7930         (struct varasm_status): Move here from varasm.c
7931         (struct rtl_data): New. Move here some fields from struct function.
7932         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7933         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7934         used_temp_slots avail_temp_slots, temp_slot_level,
7935         nonlocal_goto_handler_labels): Update accesstors.
7936         (rtl): New global variable.
7937         (struct function): Move some fileds to rtl_data.
7938         (get_arg_pointer_save_area): Update prototype.
7939         * emit-rtl.c (rtl): Declare.
7940         (regno_reg_rtx): Declare.
7941         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7942         Update.
7943         (gen_reg_rtx): Update.
7944         (init_virtual_regs): Do not tate emit_status argument.
7945         (init_emit): Do not allocate emit.
7946         * varasm.c (varasm_statuc): Move to function.h.
7947         (n_deferred_constatns): Update accestor.
7948         (init_varasm_status): Do not allocate varasm_status.
7949         (force_const_mem, get_pool_size, output_constant_pool): Update.
7950         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7951         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7952
7953 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
7954
7955         PR rtl-optimization/35729
7956         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
7957         references.
7958
7959 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
7960
7961         PR target/32000
7962         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
7963         load/store if memory is unaligned.
7964         (*movti_rex64): Likewise.
7965
7966         * config/i386/predicates.md (misaligned_operand): New.
7967
7968 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
7969
7970         PR tree-opt/35431
7971         * tree-ssa-phiopt.c (conditional_replacement): Return early for
7972         complex types.
7973
7974 2008-03-31  Jan Beulich  <jbeulich@novell.com>
7975
7976         * config/ia64/constraints.md: Add 'j' constraint.
7977         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
7978         (movdi_internal): Likewise.
7979
7980 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
7981
7982         PR c/35748
7983         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
7984
7985 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7986
7987         PR target/35757
7988         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
7989         proper error message for the third argument on blendpd and
7990         blendps.
7991
7992         * config/i386/sse.md (blendbits): New.
7993         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
7994
7995 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7996
7997         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
7998
7999 2008-03-30  Richard Guenther  <rguenther@suse.de>
8000
8001         PR middle-end/31023
8002         * fold-const.c (fold_sign_changed_comparison): Do leave
8003         conversions to base-types alone.
8004
8005 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8006
8007         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
8008         the link register if one altivec register is be saved.
8009
8010 2008-03-30  Ben Elliston  <bje@au.ibm.com>
8011
8012         * final.c (final_scan_insn): Remove if (0) code.
8013
8014 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
8015
8016         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
8017
8018 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
8019
8020         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
8021         of V4SFmode to ix86_binary_operator_ok.
8022
8023 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
8024
8025         * config/i386/i386.c (override_options): Initialize
8026         ix86_veclib_handler to ix86_veclibabi_svml when
8027         -mveclibabi=svml is used.
8028         (ix86_veclibabi_svml): New function for SVML ABI style
8029         vectorization support.
8030         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
8031
8032 2008-03-28  Rafael Espindola  <espindola@google.com>
8033
8034         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
8035         (tree_binary_nonnegative_warnv_p): Make it public.
8036         (tree_single_nonnegative_warnv_p): Make it public.
8037         (tree_invalid_nonnegative_warnv_p): Make it public.
8038         (tree_unary_nonzero_warnv_p): Make it public.
8039         (tree_binary_nonzero_warnv_p): Make it public
8040         (tree_single_nonzero_warnv_p): Make it public.
8041         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
8042         (extract_range_from_binary_expr): Split the expr argument.
8043         (extract_range_from_unary_expr): Split the expr argument.
8044         (extract_range_from_comparison): Split the expr argument.
8045         (extract_range_from_expr): Use the new aux functions.
8046         (vrp_evaluate_conditional_warnv): Use
8047         vrp_evaluate_conditional_warnv_with_ops.
8048         * tree.h (tree_unary_nonzero_warnv_p): Declare.
8049         (tree_binary_nonzero_warnv_p): Declare.
8050         (tree_single_nonzero_warnv_p): Declare.
8051         (tree_expr_nonzero_warnv_p): Declare.
8052         (tree_unary_nonnegative_warnv_p): Declare.
8053         (tree_binary_nonnegative_warnv_p): Declare.
8054         (tree_single_nonnegative_warnv_p): Declare.
8055         (tree_invalid_nonnegative_warnv_p): Declare.
8056
8057 2008-03-28  Richard Guenther  <rguenther@suse.de>
8058
8059         PR tree-optimization/30317
8060         PR tree-optimization/30911
8061         PR tree-optimization/34793
8062         * tree-vrp.c (set_and_canonicalize_value_range): New function.
8063         (struct assert_locus_d): New member EXPR.
8064         (register_new_assert_for): Add EXPR parameter to support
8065         ASSERT_EXPR <name, expr OP limit>.
8066         (register_edge_assert_for_1): Adjust callers.
8067         (find_assert_locations): Likewise.
8068         (process_assert_insertions_for): Build condition from expression.
8069         (extract_range_from_assert): Handle ASSERT_EXPRs
8070         of the form ASSERT_EXPR <name, expr OP limit>.
8071         (register_edge_assert_for_2): New helper registering
8072         asserts for comparisons.  Recognize range tests of the form
8073         (unsigned)i - CST1 OP CST2.
8074         (register_edge_assert_for_1): Use it.
8075         (register_edge_assert_for): Likewise.
8076         (needs_overflow_infinity): Integer sub-types
8077         do not need overflow infinities.
8078         (vrp_val_is_max): The extreme values of integer sub-types
8079         are those of the base type.
8080         (vrp_val_is_min): Likewise.
8081         * tree.def (ASSERT_EXPR): Document extra allowed conditional
8082         expressions.
8083
8084 2008-03-28  Nick Clifton  <nickc@redhat.com>
8085
8086         PR target/31110
8087         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
8088         Return GENERAL_REGS for stack adjustment reloads.
8089
8090 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8091
8092         PR target/31334
8093         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
8094         const_vector when all the vectors are constant.
8095
8096 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
8097
8098         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
8099         comparisons.
8100         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
8101         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
8102         (scc_sf): New.
8103         (s<code>_sf): Use new scc_sf attribute for opcode names.
8104
8105 2008-03-27  Tom Tromey  <tromey@redhat.com>
8106
8107         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
8108         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
8109         config/spu/t-spu-elf, config/i386/t-interix,
8110         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
8111         config/i386/x-darwin, config/i386/x-mingw32,
8112         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
8113         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
8114         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
8115         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
8116         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
8117         config/rs6000/x-darwin, config/rs6000/t-rs6000,
8118         config/score/t-score-elf, config/arm/t-strongarm-pe,
8119         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
8120         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
8121         Revert automatic dependency patch.
8122
8123 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8124
8125         PR target/35657
8126         * config/i386/i386.c (ix86_function_arg_boundary): Align
8127         decimal floating point to its natural boundary.
8128
8129 2008-03-27  Richard Guenther  <rguenther@suse.de>
8130
8131         PR middle-end/35716
8132         * fold-const.c (fold_comparison): Restrict distinct decl
8133         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
8134         solely rely on operand_equal_p.
8135
8136 2008-03-27  Richard Guenther  <rguenther@suse.de>
8137
8138         PR c/32511
8139         * c-common.c (handle_weak_attribute): Reject combination of
8140         weak and inline.
8141
8142 2008-03-27  Richard Guenther  <rguenther@suse.de>
8143
8144         PR tree-optimization/32810
8145         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
8146         conversions from DECL_INITIAL.
8147         (fold_const_aggregate_ref): Likewise from constructor elements.
8148
8149 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
8150
8151         * tree-affine.h (aff_combination_expand): Declare.
8152         (get_inner_reference_aff): Likewise.
8153         * tree-affine.c (aff_combination_expand): Split out from
8154         tree_to_aff_combination_expand.
8155         (get_inner_reference_aff): New function.
8156         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
8157         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
8158         (struct lim_aux_data): sm_done field removed.
8159         (mem_ref_loc_p, mem_ref_locs_p): New types.
8160         (struct mem_ref): Added id, stored, accesses_in_loop,
8161         indep_loop, dep_loop, indep_ref, dep_ref fields.
8162         Removed is_stored, locs and next fields.
8163         (memory_accesses): New variable.
8164         (movement_possibility): Do not allow moving statements
8165         that store to memory.
8166         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
8167         New functions.
8168         (determine_max_movement): For statements with memory references,
8169         find the outermost loop in that the reference is independent.
8170         (move_computations_stmt): Mark the virtual operands for renaming.
8171         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
8172         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
8173         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
8174         add_vop_ref_mapping, create_vop_ref_mapping_loop,
8175         create_vop_ref_mapping, analyze_memory_references,
8176         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
8177         get_all_locs_in_loop, ref_always_accessed_p,
8178         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
8179         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
8180         store_motion_loop, store_motion): New functions.
8181         (struct vop_to_refs_elt): New type.
8182         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
8183         memref_hash, memref_eq, hoist_memory_references): Rewritten.
8184         (schedule_sm): Replaced by...
8185         (execute_sm): ... this.
8186         (determine_lsm_ref, hoist_memory_references,
8187         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
8188         find_more_ref_vops, free_mem_ref, free_mem_refs,
8189         determine_lsm_loop, determine_lsm): Removed.
8190         (tree_ssa_lim_finalize): Free data structures used by store motion.
8191         (tree_ssa_lim): Call analyze_memory_references.  Use
8192         store_motion instead of determine_lsm.
8193
8194 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8195
8196         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
8197         rename tmake_file to m68hc11/t-m68hc11.
8198         (mcore): Set inhibit_libc to true.
8199         * config.host (alpha*-dec-*vms*): Set extra_programs.
8200         (interix3*): Don't use host_xmake_file.
8201         * configure.ac: Let config.gcc override inhibit_libc.
8202         * configure: Regenerate.
8203
8204         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
8205         * config/t-openbsd-thread: Remove commented out lines.
8206         
8207         * config/x-interix: Remove.
8208
8209         * config/m68hc11/t-m68hc11-gas: Rename to...
8210         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
8211
8212         * config/mcore/t-mcore: Remove T_CFLAGS.
8213         * config/mcore/t-mcore-pe: Likewise.
8214
8215 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8216
8217         * configure.ac: Replace custom __GNU_SOURCE test with
8218         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
8219         * aclocal.m4: Regenerate.
8220         * configure: Regenerate.
8221         * config.in: Regenerate.
8222
8223 2008-03-27  Richard Guenther  <rguenther@suse.de>
8224
8225         * fold-const.c (target.h): Include.
8226         (fold_comparison): Fold comparison of addresses of decls
8227         that bind locally or of constants.  Consolidate address folding code.
8228         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
8229         results from fold_binary_to_constant.
8230         (compare_values_warnv): Likewise.
8231
8232 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
8233
8234         PR middle-end/35429
8235         * fold-const.c (fold_truthop): Check for integeral types when folding
8236         a == 0 && b == 0 and a != 0 || b != 0 .
8237
8238 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8239
8240         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
8241
8242 2008-03-26  Andreas Schwab  <schwab@suse.de>
8243
8244         * doc/invoke.texi: Fix use of @item vs. @itemx.
8245
8246 2008-03-26  Tom Tromey  <tromey@redhat.com>
8247
8248         * Makefile.in (build/gensupport.o, build/print-rtl.o,
8249         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
8250         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
8251         build/gencodes.o, build/genconditions.o, build/genconfig.o,
8252         build/genconstants.o, build/genemit.o, build/genextract.o,
8253         build/genflags.o, build/genmddeps.o, build/genopinit.o,
8254         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
8255         options.h.
8256
8257 2008-03-26  Richard Guenther  <rguenther@suse.de>
8258
8259         Revert
8260         2008-03-26  Richard Guenther  <rguenther@suse.de>
8261
8262         * fold-const.c (target.h): Include.
8263         (fold_comparison): Fold comparison of addresses of two decls
8264         that bind locally.  Consolidate address folding code.
8265
8266 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8267
8268         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
8269         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
8270         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
8271         dconstsqrt2, dconstthird, dconste and/or dconst10.
8272         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
8273         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
8274         dconstsqrt2, dconste): Delete.
8275         (init_emit_once): Likewise.  Simplify initializing dconstm1.
8276         Constify variable.
8277         * real.c (get_real_const): New.
8278         * real.h (dconst3, dconst10, dconstm2, dconstthird,
8279         dconstsqrt2, dconste): Delete.
8280         (real_value_const, get_real_const): New.
8281
8282 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
8283
8284         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
8285
8286         * config/i386/i386.c (ix86_function_arg_boundary): Check
8287         BIGGEST_ALIGNMENT instead of 128.
8288         (setup_incoming_varargs_64): Likewise.
8289
8290 2008-03-26  Tom Tromey  <tromey@redhat.com>
8291
8292         * Makefile.in (DEPFILES): Add missing '/'.
8293
8294 2008-03-26  Richard Guenther  <rguenther@suse.de>
8295
8296         * fold-const.c (target.h): Include.
8297         (fold_comparison): Fold comparison of addresses of two decls
8298         that bind locally.  Consolidate address folding code.
8299
8300 2008-03-26  Nick Clifton  <nickc@redhat.com>
8301
8302         PR target/31232
8303         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
8304         not allow INT+INT as a legitimate addressing mode.
8305
8306 2008-03-26  Richard Guenther  <rguenther@suse.de>
8307
8308         * tree-flow.h (widen_bitfield): Remove declaration.
8309         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
8310         (widen_bitfield): Remove function.
8311         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
8312         code.
8313
8314 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8315
8316         PR target/31558
8317         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
8318         error_mark_node's.
8319
8320 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8321
8322         PR rtl-optimization/35232
8323         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
8324         (forget_old_reloads_1, forget_marked_reloads): Don't clear
8325         reg_reloaded_call_part_clobbered here.
8326         (reload_regs_reach_end_p): New function.
8327         (reload_reg_rtx_for_input): New variable.
8328         (reload_reg_rtx_for_output): Likewise.
8329         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
8330         when reassigning a pseudo register.  Load reloadreg from 
8331         reload_reg_rtx_for_input, moving the mode and register
8332         calculation to...
8333         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
8334         instead of the original when deciding whether an input reload
8335         would be a no-op or whether an output reload can be deleted.
8336         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
8337         when setting up new_spill_reg_store.  Load it from
8338         reload_reg_rtx_for_output, moving the mode and register
8339         calculation to...
8340         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
8341         instead of the original when deciding whether an output reload
8342         would be a no-op.  Do the same when modifying insn notes.
8343         Use rtx_equal_p instead of == to compare the registers.
8344         (inherit_piecemeal_p): Take a mode and two register numbers
8345         as argument.
8346         (emit_reload_insns): Clear new_spill_reg_store for every hard
8347         register in the reload register.  Remove spill registers
8348         from reg_reloaded_valid before considering whether to record
8349         inheritance information for them.  Use reload_reg_rtx_for_output
8350         instead of reg_rtx when recording output reloads.  Use
8351         reload_reg_rtx_for_input instead of reg_rtx when recording
8352         input reloads.  Set or clear reg_reloaded_call_part_clobbered
8353         at the same time as setting reg_reloaded_valid.
8354         (delete_output_reload): Add a new_reload_reg parameter and use it
8355         instead of rld[j].reg_rtx.
8356         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
8357         calls accordingly.
8358
8359 2008-03-25  Tom Tromey  <tromey@redhat.com>
8360
8361         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
8362         (build/genattr.o): Likewise.
8363         (build/genattrtab.o): Likewise.
8364         (build/gencodes.o): Likewise.
8365         (build/genconfig.o): Likewise.
8366         (build/genconstants.o): Likewise.
8367         (build/genemit.o): Likewise.
8368         (build/genextract.o): Likewise.
8369         (build/genflags.o): Likewise.
8370
8371 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
8372         
8373         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
8374         instead of size_int for integer types.
8375         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
8376         to match type of MINUS_EXPR.
8377         
8378 2008-03-25  Tom Tromey  <tromey@redhat.com>
8379
8380         * configure: Rebuilt.
8381         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
8382         Makefile.
8383
8384 2008-03-25  Tom Tromey  <tromey@redhat.com>
8385
8386         * config/x-solaris (host-solaris.o): Update.
8387         * config/x-linux (host-linux.o): Update.
8388         * config/x-hpux (host-hpux.o): Update.
8389         * config/x-darwin (host-darwin.o): Update.
8390         * config/v850/t-v850e (v850-c.o): Update.
8391         * config/v850/t-v850 (v850-c.o): Update.
8392         * config/t-vxworks (vxworks.o): Update.
8393         * config/t-sol2 (sol2-c.o, sol2.o): Update.
8394         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
8395         * config/spu/t-spu-elf (spu-c.o): Update.
8396         (spu.o): Remove.
8397         * config/sh/t-symbian (sh-c.o): Update.
8398         (symbian.o): Update.
8399         * config/sh/t-sh (sh-c.o): Update.
8400         * config/score/t-score-elf (score7.o, score3.o): Update.
8401         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
8402         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
8403         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
8404         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
8405         (rs6000.o): Remove.
8406         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
8407         * config/m32c/t-m32c (m32c-pragma.o): Update.
8408         * config/ia64/t-ia64 (ia64-c.o): Update.
8409         * config/i386/x-mingw32 (host-mingw32.o): Update.
8410         * config/i386/x-i386 (driver-i386.o): Update.
8411         * config/i386/x-darwin (host-i386-darwin.o): Update.
8412         * config/i386/x-cygwin (host-cygwin.o): Update.
8413         * config/i386/t-nwld (nwld.o): Update.
8414         * config/i386/t-netware (netware.o): Update.
8415         * config/i386/t-interix (winnt.o): Update.
8416         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
8417         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
8418         msformat-c.o): Update.
8419         * config/bfin/t-bfin-linux (generated_files): Add
8420         linux-sysroot-suffix.h.
8421         * config/arm/t-wince-pe (pe.o): Update.
8422         * config/arm/t-strongarm-pe (pe.o): Update.
8423         * config/arm/t-pe (pe.o): Update.
8424         * config/arm/t-arm (arm-c.o): Update.
8425         * doc/install.texi (Prerequisites): Require make 3.80.
8426         * Makefile.in: Remove .o targets.
8427         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
8428         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
8429         (simple_generated_h, simple_generated_c): Move earlier.
8430         (generated_files): New variable.
8431         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
8432         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
8433         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
8434         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
8435         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
8436         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
8437         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
8438         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
8439         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
8440         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
8441         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
8442         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
8443         (.c.o): Remove.
8444         (COMPILE.base, COMPILE): New variables.
8445         (%.o): New pattern rule.
8446         (ALL_HOST_OBJS): New variable.
8447         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
8448         (dummy-checksum.o, cc1-checksum.o): Remove.
8449         (DRIVER_SHLIB): New variable.
8450         (DRIVER_DEFINES): Use it.
8451         (gencondmd.c): Move out of build/.
8452         (s-conditions): Update.
8453         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
8454         (ALL_BUILD_OBJS): Likewise.
8455         (build/%.o): Use BUILDCOMPILE.
8456         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
8457         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
8458         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
8459         build/gencheck.o, build/gencodes.o, build/genconditions.o,
8460         build/genconfig.o, build/genconstants.o, build/genemit.o,
8461         build/genextract.o, build/genflags.o, build/genmddeps.o,
8462         build/genopinit.o, build/genoutput.o, build/genpeep.o,
8463         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
8464         build/gen-protos.o, build/scan.o, build/fix-header.o,
8465         build/scan-decls.o): Simplify.
8466         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
8467         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
8468         prefix.o, toplev.o): Reduce to variable setting.
8469         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
8470         ($(out_object_file), gcc-options.o): New targets.
8471         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
8472         * configure: Rebuilt.
8473         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
8474         * doc/sourcebuild.texi (Front End Directory): Document new variable.
8475
8476 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
8477
8478         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
8479         complain when we hit an error, return ERROR_MARK_NODE.
8480
8481 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8482
8483         * config/sh/constraints.md (Pso, Psz): New constraints.
8484         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
8485         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
8486
8487 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8488
8489         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
8490         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
8491
8492 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8493
8494         * config/sh/sh.md (prefetch): Add condition for SH2A target.
8495         (prefetch_sh2a): New.   
8496
8497 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8498             Naveen.H.S  <naveen.hs@kpitcummins.com>
8499
8500         * config/sh/constraints.md (I28): New constraint.
8501         * config/sh/sh.c (broken_move): Add support for movi20s.
8502         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
8503
8504 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
8505             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8506             Naveen.H.S  <naveen.hs@kpitcummins.com>
8507
8508         * config/sh/sh.c (SH_ATTRIBUTES): Define.
8509         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
8510         (print_operand): Handle resbank in %@ operand code.
8511         (sh_encode_section_info): New.
8512         (push_regs): Add conditions for resbank.
8513         (sh_expand_epilogue): Likewise.
8514         (sh_insert_attributes): Likewise.
8515         (sh_attribute_table): Likewise.
8516         (sh_handle_resbank_handler_attribute): New.
8517         (sh2a_handle_function_vector_handler_attribute): New.
8518         (sh2a_is_function_vector_call): New.
8519         (sh2a_get_function_vector_number): New.
8520         (sh2a_function_vector_p): New.
8521         (sh_cfun_resbank_handler_p): New.
8522         * config/sh/sh.md (calli): Emit jsr/n if possible.
8523         (calli_tbr_rel): New.
8524         (calli_pcrel): Emit jsr/n if possible.
8525         (return_i): Emit rts/n if possible.
8526         (call_valuei_tbr_rel): New.
8527         (call_valuei_pcrel): Add condition for SH2A target.
8528         (call_value): Likewise.
8529         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
8530         (sh2a_get_function_vector_number): Likewise.
8531         (sh2a_is_function_vector_call): Likewise.
8532         * doc/extend.texi: Document TBR relative addressing of SH2A.
8533         (resbank): Add description for SH2A.
8534
8535 2008-03-24  Richard Guenther  <rguenther@suse.de>
8536
8537         PR c/22371
8538         * gimplify.c (gimplify_modify_expr): For frontend type-correct
8539         pointer assignments change conversions according to middle-end rules.
8540         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
8541         * configure.ac: Include type checking in yes.
8542         * configure: Regenerate.
8543
8544 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8545
8546         * diagnostic.c (diagnostic_count_diagnostic): Delete.
8547         (diagnostic_report_diagnostic): Update. Handle ICEs here.
8548         
8549 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
8550
8551         * gthr-vxworks.h (UNUSED): Define.
8552
8553 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
8554
8555         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
8556
8557 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
8558
8559         * doc/extend.texi (Function Attributes): Add missing comma in the
8560         example of the "alloc_size" attribute.
8561         
8562 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
8563
8564         Revert:
8565         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8566
8567         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8568         32bit host.
8569
8570         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8571
8572         PR target/35496
8573         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8574         of the underlying type of a MS bitfield layout to the natural
8575         alignment of the type.
8576
8577         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8578
8579         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8580         to their natural alignment to avoid store forwarding stalls.
8581
8582 2008-03-22  Richard Guenther  <rguenther@suse.de>
8583
8584         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
8585         For PHI nodes verify the address is invariant.
8586         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
8587         (get_symbol_constant_value): Use is_gimple_min_invariant.
8588         (maybe_fold_stmt_indirect): Likewise.
8589
8590 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
8591
8592         PR rtl-optimization/33927
8593         * Makefile.in (dse.o): Depend on $(TM_P_H).
8594         * expr.h (extract_low_bits): Declare.
8595         * expmed.c (extract_low_bits): New function.
8596         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
8597         * dse.c: Include tm_p.h.
8598         (find_shift_sequence): Remove the read_reg argument and return the
8599         read value.  Emit the instructions instead of returning them.
8600         Iterate on new_mode rather than calculating it each time.
8601         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
8602         source to NEW_MODE and extract_low_bits to convert the shifted
8603         value to READ_MODE.
8604         (replace_read): Allow the load and store to have different mode
8605         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
8606         or extraction instructions before trying the replacement.  Update
8607         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
8608
8609 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8610
8611         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8612         to their natural alignment to avoid store forwarding stalls.
8613
8614 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8615
8616         PR target/27946
8617         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
8618         encouraging but not allowing gprs for input;
8619         change the input constraint to !f#r.
8620         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
8621         gprs for output;
8622         change the output constraint to !f#r.
8623
8624 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
8625
8626         PR target/13958
8627         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
8628         corresponding post-reload splitters.
8629         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
8630         when x87 FP math is selected.
8631         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
8632         New function prototype.
8633         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
8634         unreachable function to ease macroization of insn patterns.
8635
8636 2008-03-21  Martin Jambor  <mjambor@suse.cz>
8637
8638         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
8639         reference dumps if ddr is NULL or dependence is unknown.
8640
8641 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8642
8643         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
8644         unsigned extension into account.
8645         (ATOMIC_COMPARE_AND_SWAP): Likewise.
8646         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
8647         Do computations on a scratch register.
8648
8649 2008-03-21  Richard Guenther  <rguenther@suse.de>
8650
8651         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
8652         Use is_gimple_min_invariant instead of TREE_INVARIANT.
8653         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
8654         * tree-ssa-dom.c (record_equality): Likewise.
8655         * tree-inline.c (copy_body_r): Likewise.
8656         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
8657         TREE_INVARIANT.
8658
8659 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8660
8661         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
8662         as 'delete_unused' argument.
8663
8664 2008-03-20  Richard Guenther  <rguenther@suse.de>
8665
8666         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
8667         special casing of constant qualifiers.
8668         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
8669         care about them in general.
8670         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
8671         regardless of their type.
8672         (fold_stmt_r): Forcefully fold *& if we end up with that.
8673
8674 2008-03-20  Paul Brook  <paul@codesourcery.com>
8675
8676         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
8677         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
8678         linker flags.
8679         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
8680         definition.
8681         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
8682         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
8683
8684 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
8685
8686         * common.opt (Wmudflap): New option.
8687         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
8688         (mx_register_decls): Likewise.
8689         (mudflap_finish_file): Likewise.
8690         * doc/invoke.texi: Document -Wno-mudflap.
8691
8692 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
8693
8694         * c-format.c (replace_format_name_to_system_name): New.
8695         (cmp_attribs): New.
8696         (convert_format_name_to_system_name): New.
8697         (decode_format_attr): Add use of convert_format_name_to_system_name.
8698         (format_types_orig): Add gnu_ prefix to names.
8699         (check_format_info_main): Special treating of \0 escaped names for
8700         supporting multi-character format specifiers as I32, I64.
8701         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
8702         (gnu_target_overrides_format_attributes): New.
8703         * c-format.h: Add structure target_ovr_attr to hold
8704         system specific formatter names.
8705         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
8706         msformat-c.o file to c_target_objs and cxx_target_objs.
8707         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8708         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
8709         (TARGET_N_FORMAT_TYPES): New.
8710         * config/i386/msformat-c.c: New.
8711         * config/i386/t-cygming: Add build rule for msformat-c.o.
8712         * doc/extend.texi: Add new format names gnu_* and ms_* and
8713         further details.
8714         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8715
8716 2008-03-20  Ira Rosen  <irar@il.ibm.com>
8717
8718         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
8719         optimizations turned on under -O3.
8720         (ftree-vectorize): Add that the flag is turned on with -O3.
8721
8722 2008-03-20  Ben Elliston  <bje@au.ibm.com>
8723
8724         * regmove.c (try_auto_increment): Fix spelling error in comment.
8725         * final.c (final_scan_insn): Likewise.
8726
8727 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
8728
8729         PR target/14552
8730         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
8731         allocator preferences for "y" and "r" class registers.
8732         ("*mov<mode>_internal"): Ditto.
8733         ("*movv2sf_internal_rex64"): Ditto.
8734         ("*movv2sf_internal"): Ditto.
8735
8736 2008-03-19  Michael Matz  <matz@suse.de>
8737
8738         PR middle-end/35616
8739         * calls.c (expand_call): Check overlap of arguments with call
8740         address for sibcalls.
8741
8742 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8743
8744         PR target/35496
8745         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8746         of the underlying type of a MS bitfield layout to the natural
8747         alignment of the type.
8748
8749 2008-03-19  Jan Hubicka  <jh@suse.cz>
8750
8751         PR other/35094
8752         * toplev.c (decode_d_option): Handle all CPP flags.
8753         * tree-vrp.c: Update tree_pass descriptors.
8754         * regrename.c: Update tree_pass descriptors.
8755         * fwprop.c: Update tree_pass descriptors.
8756         * doc/invoke.texi: Remove documentation of dropped -d? flags.
8757         * tree-into-ssa.c: Update tree_pass descriptors.
8758         * tree-dump.c: Update tree_pass descriptors.
8759         * tree-complex.c: Update tree_pass descriptors.
8760         * tree-dump.h: Update tree_pass descriptors.
8761         * see.c: Update tree_pass descriptors.
8762         * cgraphbuild.c: Update tree_pass descriptors.
8763         * tracer.c: Update tree_pass descriptors.
8764         * tree-loop-distribution.c: Update tree_pass descriptors.
8765         * cgraph.c: Update tree_pass descriptors.
8766         * postreload-gcse.c: Update tree_pass descriptors.
8767         * postreload.c: Update tree_pass descriptors.
8768         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
8769         * tree-tailcall.c: Update tree_pass descriptors.
8770         * tree-pass.h (tree_opt_pass): Rename to ...
8771         (opt_pass) ... this one; add "type" field and remove letter field.
8772         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
8773         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
8774         all_lowering_passes): Update declaration.
8775         * ipa-cp.c: Update tree_pass descriptors.
8776         * final.c: Update tree_pass descriptors.
8777         * omp-low.c: Update tree_pass descriptors.
8778         * tree-ssa-dse.c: Update tree_pass descriptors.
8779         * ipa-reference.c: Update tree_pass descriptors.
8780         * tree-ssa-uncprop.c: Update tree_pass descriptors.
8781         * auto-inc-dec.c: Update tree_pass descriptors.
8782         * reorg.c: Update tree_pass descriptors.
8783         * cgraphunit.c: Update tree_pass descriptors.
8784         * tree-ssa-copyrename.c: Update tree_pass descriptors.
8785         * tree-ssa-ccp.c: Update tree_pass descriptors.
8786         * df-core.c: Update tree_pass descriptors.
8787         * mode-switching.c: Update tree_pass descriptors.
8788         * tree-nomudflap.c: Update tree_pass descriptors.
8789         * modulo-sched.c: Update tree_pass descriptors.
8790         * ipa-pure-const.c: Update tree_pass descriptors.
8791         * cse.c: Update tree_pass descriptors.
8792         * web.c: Update tree_pass descriptors.
8793         * tree-stdarg.c: Update tree_pass descriptors.
8794         * tree-ssa-math-opts.c: Update tree_pass descriptors.
8795         * tree-ssa-dom.c: Update tree_pass descriptors.
8796         * tree-nrv.c: Update tree_pass descriptors.
8797         * tree-ssa-alias.c: Update tree_pass descriptors.
8798         * loop-init.c: Update tree_pass descriptors.
8799         * gimple-low.c: Update tree_pass descriptors.
8800         * ipa-inline.c: Update tree_pass descriptors.
8801         * tree-ssa-sink.c: Update tree_pass descriptors.
8802         * global.c: Update tree_pass descriptors.
8803         * ifcvt.c: Update tree_pass descriptors.
8804         * jump.c: Update tree_pass descriptors.
8805         * predict.c: Update tree_pass descriptors.
8806         * tree-ssa-loop.c: Update tree_pass descriptors.
8807         * recog.c: Update tree_pass descriptors.
8808         * dse.c: Update tree_pass descriptors.
8809         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
8810         * tree-eh.c: Update tree_pass descriptors.
8811         * regmove.c: Update tree_pass descriptors.
8812         * local-alloc.c
8813         * function.c: Update tree_pass descriptors.
8814         * tree-vectorizer.c: Update tree_pass descriptors.
8815         * gcse.c: Update tree_pass descriptors.
8816         * ipa-type-escape.c: Update tree_pass descriptors.
8817         * tree-if-conv.c: Update tree_pass descriptors.
8818         * init-regs.c: Update tree_pass descriptors.
8819         * ipa.c: Update tree_pass descriptors.
8820         * tree-ssa-phiopt.c: Update tree_pass descriptors.
8821         * rtl-factoring.c: Update tree_pass descriptors.
8822         * lower-subreg.c: Update tree_pass descriptors.
8823         * bt-load.c: Update tree_pass descriptors.
8824         * tree-dfa.c: Update tree_pass descriptors.
8825         * except.c: Update tree_pass descriptors.
8826         * emit-rtl.c: Update tree_pass descriptors.
8827         * cfgexpand.c: Update tree_pass descriptors.
8828         * tree-cfgcleanup.c: Update tree_pass descriptors.
8829         * cfgcleanup.c: Update tree_pass descriptors.
8830         * tree-ssa-pre.c: Update tree_pass descriptors.
8831         * tree-sra.c: Update tree_pass descriptors.
8832         * tree-mudflap.c: Update tree_pass descriptors.
8833         * tree-ssa-copy.c: Update tree_pass descriptors.
8834         * cfglayout.c: Update tree_pass descriptors.
8835         * tree-ssa-forwprop.c: Update tree_pass descriptors.
8836         * tree-ssa-dce.c: Update tree_pass descriptors.
8837         * tree-ssa.c: Update tree_pass descriptors.
8838         * regclass.c: Update tree_pass descriptors.
8839         * integrate.c: Update tree_pass descriptors.
8840         * tree-optimize.c: Update tree_pass descriptors.
8841         * tree-ssa-phiprop.c: Update tree_pass descriptors.
8842         * tree-object-size.c: Update tree_pass descriptors.
8843         * combine.c: Update tree_pass descriptors.
8844         * tree-outof-ssa.c: Update tree_pass descriptors.
8845         * bb-reorder.c: Update tree_pass descriptors.
8846         * stack-ptr-mod.c: Update tree_pass descriptors.
8847         * var-tracking.c: Update tree_pass descriptors.
8848         * tree-profile.c: Update tree_pass descriptors.
8849         * tree-vect-generic.c: Update tree_pass descriptors.
8850         * reg-stack.c: Update tree_pass descriptors.
8851         * sched-rgn.c: Update tree_pass descriptors.
8852         * tree-ssa-structalias.c: Update tree_pass descriptors.
8853         * tree-cfg.c: Update tree_pass descriptors.
8854         * passes.c (current_pass): Update declaration.
8855         (finish_optimization_passes): Update.
8856         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
8857         (register_one_dump_file, register_dump_files_1, next_pass_1):
8858         Update arguments.
8859         (init_optimization_passes): Update handling of new types.
8860         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
8861         * ipa-struct-reorg.c: Update tree_pass descriptors.
8862         * tree-ssa-reassoc.c: Update tree_pass descriptors.
8863         * combine-stack-adj.c: Update tree_pass descriptors.
8864         * cfgrtl.c: Update tree_pass descriptors.
8865         * dce.c: Update tree_pass descriptors.
8866         * tree-ssanames.c: Update tree_pass descriptors.
8867
8868 2008-03-19  Richard Guenther  <rguenther@suse.de>
8869
8870         PR middle-end/35609
8871         * tree-ssa.c (walk_data): New structure.
8872         (warn_uninitialized_var): If not always_executed warn with "maybe"
8873         instead of "is".
8874         (execute_early_warn_uninitialized): Compute post-dominators.
8875         Initialize always_executed before processing each basic block.
8876
8877 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
8878
8879         PR target/35504
8880         * config/i386/i386.c (x86_this_parameter): Calculate correct location
8881         of "this" pointer when "regparm = N" or "fastcall" is in effect.
8882
8883 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8884
8885         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
8886
8887 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
8888
8889         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
8890         is true.
8891         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
8892         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
8893         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
8894         target after ignore has been set, and move there also the commputation
8895         of subtarget and original_target.
8896         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
8897         (LANG_HOOKS_INITIALIZER): Remove it.
8898         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
8899
8900 2008-03-18  Richard Guenther  <rguenther@suse.de>
8901
8902         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
8903         found an expression with constants, note that in the VN for the lhs.
8904         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
8905         fold them to constants if possible.  Run cleanup_cfg if done so.
8906         (execute_pre): Return todo.
8907         (do_pre): Likewise.
8908         (execute_fre): Likewise.
8909         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
8910         of constants.
8911         (get_prop_source_stmt): Look through pointer conversions.
8912
8913 2008-03-18  Jan Hubicka  <jh@suse.cz>
8914
8915         * tree-pretty-print.c: Include predict.h.
8916         (dump_generic_node): Dump predictor.
8917         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
8918         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
8919         * gimple-low.c (lower_stmt): Likewise.
8920         * expr.c (expand_expr_real): Likewise.
8921         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
8922         them.
8923         (build_predict_expr, build_predict_expr): New.
8924         * predict.h (predictor_name, build_predict_expr): Update.
8925         * c-typeck.c (c_finish_bc_stmt): Add prediction.
8926         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
8927         * predict.def (PRED_CONTINUE): Update hitrate.
8928         * tree.def (PREDICT_EXPR): Define.
8929         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
8930         do not handle BIND_EXPR.
8931         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
8932         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
8933         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
8934         operands.
8935
8936 2008-03-18  Michael Matz  <matz@suse.de>
8937
8938         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
8939
8940 2008-03-18  Richard Guenther  <rguenther@suse.de>
8941
8942         * tree-gimple.h (is_gimple_invariant_address): Declare.
8943         (is_gimple_constant): Likewise.
8944         * tree-gimple.c (is_gimple_constant): New function.
8945         (is_gimple_invariant_address): Likewise.
8946         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
8947         and is_gimple_invariant_address.
8948         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
8949         previous change.
8950         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
8951         an addressable base.
8952
8953 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
8954
8955         PR middle-end/35611
8956         * gimplify.c (gimplify_expr): Gimplify second operand of
8957         OMP_ATOMIC_LOAD.
8958
8959 2008-03-17  Richard Guenther  <rguenther@suse.de>
8960
8961         PR tree-optimization/19637
8962         * fold-const.c (fold_unary): Remove restrictions of removing
8963         intermediate pointer-conversions (P2)(P1)P0.
8964         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
8965         conversion to void pointer.
8966         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
8967
8968 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
8969
8970         PR debug/31510
8971         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
8972         emulated thread local variables.
8973
8974 2008-03-16  Richard Guenther  <rguenther@suse.de>
8975
8976         PR middle-end/35607
8977         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
8978         expand TREE_INVARIANT operations that are not gimple invariant.
8979
8980 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
8981
8982         * doc/extend.texi (Alignment): Say that the ABI controls
8983         the __alignof__ for non-strict-alignment targets rather
8984         than being a recommendation.
8985
8986 2008-03-15  Paul Brook  <paul@codesourcery.com>
8987
8988         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
8989         annotations.
8990         (arm_output_fn_unwind): Mark functions that can not be unwound.
8991
8992 2008-03-15  Paul Brook  <paul@codesourcery.com>
8993
8994         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
8995         extension instructions.
8996
8997 2008-03-15  Richard Guenther  <rguenther@suse.de>
8998
8999         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
9000         and fold constant aggregate refs.
9001         (fold_const_aggregate_ref): Handle string constants
9002         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
9003         (evaluate_stmt): Simplify now that ccp_fold folds constant
9004         aggregate refs.
9005
9006 2008-03-15  Paul Brook  <paul@codesourcery.com>
9007
9008         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
9009         (extzv): Use gen_extzv_t2.
9010         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
9011
9012 2008-03-15  Richard Guenther  <rguenther@suse.de>
9013
9014         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
9015         (fold_const_aggregate_ref): Likewise.
9016         (get_value): Return NULL if we don't have any values.
9017         (ccp_finalize): Set const_val to NULL after freeing it.
9018         * tree-flow.h (get_symbol_constant_value): Declare.
9019         (fold_const_aggregate_ref): Likewise.
9020         * tree-ssa-sccvn.c (try_to_simplify): Use them.
9021
9022 2008-03-15  Richard Guenther  <rguenther@suse.de>
9023
9024         PR middle-end/35593
9025         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
9026         to not produce negative array indices if not allowed.  Add
9027         parameter to indicate that.
9028         (maybe_fold_offset_to_component_ref): Allow negative array
9029         indices only for the first member of a structure.
9030         (maybe_fold_offset_to_reference): Allow negative array indices.
9031         (maybe_fold_stmt_addition): Likewise.
9032
9033 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
9034             Anatoly Sokolov <aesok@post.ru>
9035
9036         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
9037         (avr_arch): Add ARCH_AVR6.
9038         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
9039         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
9040         instead of fixed value 2.
9041         (print_operand_address): Use gs() asm specifier instead of pm().
9042         (avr_assemble_integer): (Ditto.).
9043         (avr_output_addr_vec_elt): (Ditto.).
9044         (print_operand): Handle "!" code.
9045         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
9046         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
9047         (AVR_HAVE_EIJMP_EICALL): Define.
9048         (AVR_3_BYTE_PC): Redefine.
9049         (AVR_2_BYTE_PC): (Ditto.).
9050         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
9051         (LINK_SPEC): Add atmega2560 and atmega2561.
9052         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
9053         (crtm2561.o).
9054         * config/avr/avr.md (call_insn): Use eicall instead of icall 
9055         for 3 byte PC devices.
9056         (call_value_insn): (Ditto.).
9057         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
9058         (indirect_jump): Use only for for 2 byte PC devices.
9059         (*tablejump): (Ditto.).
9060         (*indirect_jump_avr6): Add insn.
9061         (*tablejump_rjmp): Don't use for 3 byte PC devices.
9062         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
9063         instead of ijmp for 3 byte PC devices.
9064         (__tablejump2__): (Ditto.).
9065         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
9066         (MULITLIB_DIRNAMES): (Ditto.). 
9067         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
9068
9069 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
9070
9071         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
9072         "sse2_umulsidi3".  Use V1DI mode for operand 0.
9073         ("mmx_psadbw"): Use V1DI mode for operand 0.
9074         * config/i386/i386-modes.def (V1SI): New vector mode.
9075         * config/i386/i386.c (struct builtin_description)
9076         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
9077         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
9078         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
9079         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
9080         v1di_ftype_v8qi_v8qi type.
9081         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
9082
9083         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
9084         __builtin_ia32_pmuludq]: Fix the mode of return value.
9085
9086 2008-03-15  Richard Guenther  <rguenther@suse.de>
9087
9088         PR middle-end/35595
9089         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
9090         being a PHI_NODE.
9091
9092 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
9093         
9094         * doc/invoke.texi (Option Summary, Xtensa Options): Document
9095         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
9096         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
9097         unless TARGET_SERIALIZE_VOLATILE is enabled.
9098         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
9099         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
9100         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
9101
9102 2008-03-14  Richard Guenther  <rguenther@suse.de>
9103
9104         PR tree-optimization/34172
9105         * tree-flow.h (refs_may_alias_p): Declare.
9106         (get_single_def_stmt): Likewise.
9107         (get_single_def_stmt_from_phi): Likewise.
9108         (get_single_def_stmt_with_phi): Likewise.
9109         * tree-dfa.c (refs_may_alias_p): New function.
9110         (get_single_def_stmt): Likewise.
9111         (get_single_def_stmt_from_phi): Likewise.
9112         (get_single_def_stmt_with_phi): Likewise.
9113         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
9114         (vn_reference_lookup_1): New helper function.
9115         (vn_reference_lookup): Walk the virtual use-def chain to
9116         continue searching for a match if the def does not alias the
9117         reference we are looking for.
9118
9119 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
9120
9121         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
9122         archive and Perzl.  Update The Written Word listing.
9123
9124 2008-03-14  Richard Guenther  <rguenther@suse.de>
9125
9126         PR tree-optimization/34043
9127         PR tree-optimization/33989
9128         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
9129         when doing FRE.
9130         (bitmap_find_leader): Use extra argument to verify dominance
9131         relationship inside a basic-block.
9132         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
9133         (find_leader_in_sets): Adjust.
9134         (create_component_ref_by_pieces): Take extra argument for
9135         dominance check, handle lookup failures.
9136         (find_or_generate_expression): Likewise.
9137         (create_expression_by_pieces): Likewise.
9138         (insert_into_preds_of_block): Adjust.
9139         (create_value_expr_from): If asked for, verify all operands
9140         are in the blocks AVAIL_OUT set.
9141         (make_values_for_stmt): Check for SSA_NAMEs that are life
9142         over an abnormal edge.
9143         (compute_avail): Remove such check.
9144         (do_SCCVN_insertion): New function.
9145         (eliminate): If we do not find a leader suitable for replacement
9146         insert a replacement expression from SCCVN if available.
9147         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
9148         (struct vn_ssa_aux): Add needs_insertion flag.
9149         * tree-ssa-sccvn.c (may_insert): New global flag.
9150         (copy_reference_ops_from_ref): Value-number union member access
9151         based on its size, not type and member if insertion is allowed.
9152         (visit_reference_op_load): For a weak match from union type
9153         punning lookup a view-converted value and insert a SSA_NAME
9154         for that value if that is not found.
9155         (visit_use): Make dumps shorter.  Do not disallow value numbering
9156         SSA_NAMEs that are life over an abnormal edge to constants.
9157         (free_scc_vn): Release inserted SSA_NAMEs.
9158         (run_scc_vn): New flag to specify whether insertion is allowed.
9159         Process SSA_NAMEs in forward order.
9160         * tree-ssa-loop-im.c (for_each_index): Handle invariant
9161         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
9162         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
9163         pointer type to/from integral types that do not change the
9164         precision to regular conversions.
9165
9166 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9167
9168         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9169         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9170         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
9171         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
9172         input arguments and the mode of return value.  Built-in functions
9173         that operate on whole 64-bit MMX register now use V1DI mode.
9174
9175 2008-03-13  Alon Dayan  <alond@il.ibm.com>
9176             Olga Golovanevsky  <olga@il.ibm.com>
9177
9178         PR tree-optimization/35041
9179         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
9180         to locate the right position in a statement.
9181
9182 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9183
9184         PR target/34000
9185         PR target/35553
9186         * config/i386/xmmintrin.h:  Change all static inline functions to
9187         extern inline and add __gnu_inline__ attribute.
9188         * config/i386/bmintrin.h: Ditto.
9189         * config/i386/smmintrin.h: Ditto.
9190         * config/i386/tmmintrin.h: Ditto.
9191         * config/i386/mmintrin-common.h: Ditto.
9192         * config/i386/ammintrin.h: Ditto.
9193         * config/i386/emmintrin.h: Ditto.
9194         * config/i386/pmmintrin.h: Ditto.
9195         * config/i386/mmintrin.h: Ditto.
9196         * config/i386/mm3dnow.h: Ditto.
9197
9198 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
9199
9200         PR middle-end/35185
9201         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
9202         (lower_omp_2): New function.
9203         (lower_omp_1, lower_omp): Rewritten.
9204
9205 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
9206
9207         PR 35054
9208         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
9209         with the phrase "Microsoft Windows compilers".
9210         (Push/Pop Macro Pragmas): New subsection. Document
9211         #pragma push_macro and pragma pop_macro.
9212
9213 2008-03-12  Paul Brook  <paul@codesourcery.com>
9214
9215         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
9216
9217 2008-03-12  Paul Brook  <paul@codesourcery.com>
9218
9219         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
9220         (thumb2_alusi3_short): Exclude PLUS and MINUS.
9221         (thumb2_addsi_shortim): Rename ...
9222         (thumb2_addsi_short): ... to this.  Allow register operands.
9223         (thumb2_subsi_short): New pattern.
9224         (thumb2_one_cmplsi2_short,
9225         thumb2_negsi2_short): New patterns and peepholes.
9226
9227 2008-03-12  Paul Brook  <paul@codesourcery.com>
9228
9229         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
9230
9231 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
9232
9233         * config/i386/i386.md (int_cond): New code iterator.
9234         (fp_cond): Ditto.
9235         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
9236         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
9237         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
9238         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
9239         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
9240         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
9241         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
9242         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
9243
9244 2008-03-12  Paul Brook  <paul@codesourcery.com>
9245
9246         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
9247         instead of {arm,thumb}_compute_save_reg_mask.
9248         (output_return_instruction): Ditto.
9249         (thumb_unexpanded_epilogue): Ditto.
9250         (thumb1_expand_prologue): Ditto.
9251         (thumb1_output_function_prologue): Ditto.
9252         (arm_set_return_address): Ditto.
9253         (thumb_set_return_address): Ditto.
9254         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
9255         regs to achieve stack alignment.
9256         (thumb1_compute_save_reg_mask): Fix compiler warning.
9257         (arm_output_epilogue): Use offsets->saved_regs_mask.
9258         Adjust stack pointer by poping call clobered registers.
9259         (arm_expand_prologue): Use offsets->saved_regs_mask.
9260         Adjust stack pointer by pushing extra registers.
9261         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
9262
9263 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
9264
9265         PR tree-opt/35422
9266         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
9267         conversion to the operands of a multiplication.
9268
9269 2008-03-12  Richard Guenther  <rguenther@suse.de>
9270
9271         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
9272         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
9273         * timevar.def (TV_TREE_PHIPROP): Add.
9274         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
9275         pass description.  Use TV_TREE_PHIPROP.
9276         * tree-ssa-forwprop.c: Remove phiprop code.
9277
9278 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
9279
9280         PR middle-end/35549
9281         * omp-low.c (maybe_lookup_decl): Constify first argument.
9282         (use_pointer_for_field): Change last argument from bool to
9283         omp_context *.  Disallow shared copy-in/out in nested
9284         parallel if decl is shared in outer parallel too.
9285         (build_outer_var_ref, scan_sharing_clauses,
9286         lower_rec_input_clauses, lower_copyprivate_clauses,
9287         lower_send_clauses, lower_send_shared_vars): Adjust callers.
9288
9289 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
9290             Ira Rosen  <irar@il.ibm.com>
9291
9292         * tree-vectorizer.c (free_stmt_vec_info): New function.
9293         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
9294         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
9295         * tree-vectorizer.h (free_stmt_vec_info): Declare.
9296         * tree-vect-transform.c (vectorizable_conversion): Free
9297         vec_oprnds0 if it was allocated.
9298         (vect_permute_store_chain): Remove unused VECs.
9299         (vectorizable_store): Free VECs that are allocated in the..
9300         function.
9301         (vect_transform_strided_load, vectorizable_load): Likewise.
9302         (vect_remove_stores): Simplify the code.
9303         (vect_transform_loop): Move code to vect_remove_stores().
9304         Call vect_remove_stores() and free_stmt_vec_info().
9305
9306 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9307
9308         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
9309         TARGET_HPUX.  Revise comment.
9310         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
9311         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
9312         Use sr4 variant of `be' instruction when not generating PIC code.
9313         (attr_length_call): Adjust for above change.
9314
9315 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9316
9317         * ipa-reference.c (static_execute): Remove module_statics_const and
9318         associated setting code.
9319
9320 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9321
9322         PR target/35540
9323         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
9324         predicate for operand 1.
9325         (paritysi2_cmp): Use register_operand predicate for operand 2.
9326         Use earlyclobber modifier for operand 1.  Remove support for
9327         memory operands.
9328         (paritydi2_cmp): Use register_operand predicate for operand 3.
9329         Use earlyclobber modifier for operand 1.  Remove support for
9330         memory operands.
9331
9332 2008-03-11  Paul Brook  <paul@codesourcery.com>
9333             Vladimir Prus  <vladimir@codesourcery.com>
9334
9335         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
9336         (arm_compute_save_reg0_reg12_mask): Always
9337         check if register 11 must be saved.  Always safe hard frame pointer
9338         when frame_pointer_needeed.
9339         (arm_compute_save_reg_mask): Save IP and PC
9340         only with apcs frames.
9341         (arm_output_epilogue): Adjust Thumb2 codepath to
9342         be also invoked and work for ARM non-apcs frames.
9343         (arm_expand_prologue): Don't bother saving IP
9344         for non-apcs frame, since it's not clobbered by
9345         prologue code.  Implement non-apcs frame
9346         layout.
9347
9348 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9349
9350         PR rtl-optimization/35281
9351         * expr.c (convert_move): Use a new pseudo for the intermediate
9352         from_mode->word_mode result.
9353
9354 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9355
9356         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
9357         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
9358         * toplev.c (compile_file): Don't call it.
9359
9360 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9361
9362         PR middle-end/35526
9363         * expr.c (store_expr): Call emit_block_move if the mode
9364         of "temp" RTX is BLKmode.
9365
9366 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9367             Richard Guenther  <rguenther@suse.de>
9368
9369         PR tree-optimization/31358
9370         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
9371         the step with a NULL_TREE.
9372         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
9373         to sizetype if type is a pointer type.
9374         (add_candidate_1): Don't convert the base and step to
9375         the generic type if the orginal type is a pointer type.
9376         (add_iv_value_candidates): Use sizetype for the step
9377         if type is a pointer type.
9378         (cand_value_at): Likewise.
9379         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
9380         for pointer types.
9381         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
9382         Don't convert the tem affine to the type.
9383         (add_elt_to_tree): Use sizetype for the step if a pointer.
9384         Use POINTER_PLUS_EXPR for pointers.
9385         (aff_combination_to_tree): Use sizetype for the step if a
9386         pointer.
9387
9388 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
9389
9390         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
9391         Remove commutativity hint.
9392
9393 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
9394
9395         PR c/35438
9396         PR c/35439
9397         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
9398         errorneous type.  Check that v is a VAR_DECL.
9399
9400         PR middle-end/35099
9401         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
9402
9403 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
9404
9405         PR tree-optimization/35494
9406         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
9407         may be overriden at link and run time.
9408
9409 2008-03-10  Richard Guenther  <rguenther@suse.de>
9410
9411         PR tree-optimization/34677
9412         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
9413         (poolify_tree): Likewise.
9414         (modify_expr_template): Likewise.
9415         (poolify_modify_stmt): Likewise.
9416         (insert_fake_stores): Handle all component-ref style stores
9417         in addition to INDIRECT_REF.  Also handle complex types.
9418         Do not poolify the inserted load.
9419         (realify_fake_stores): Do not rebuild the tree but only
9420         make it a SSA_NAME copy.
9421         (init_pre): Remove initialzation of modify_expr_template.
9422         Do not allocate modify_expr_node_pool.
9423         (fini_pre): Do not free modify_expr_node_pool.
9424
9425 2008-03-10  Paul Brook  <paul@codesourcery.com>
9426
9427         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
9428         to avoid conflicts.
9429
9430 2008-03-10  Paul Brook  <paul@codesourcery.com>
9431             Mark Shinwell  <shinwell@codesourcery.com>
9432
9433         * config/arm/cortex-r4.md: New.
9434         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
9435         insn attributes.
9436         * config/arm/arm.md: Include cortex-r4.md.
9437         (insn): Add smmls, sdiv and udiv values.
9438         (generic_sched): Don't use generic scheduling for Cortex-R4.
9439         (arm_issue_rate): New function.
9440         (TARGET_SCHED_ISSUE_RATE): Define.
9441
9442 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
9443
9444         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
9445
9446 2008-03-10  Richard Guenther  <rguenther@suse.de>
9447
9448         * tree-ssa-pre.c (get_sccvn_value): Simplify.
9449         (compute_avail): Do not add stmt uses to AVAIL_OUT.
9450
9451 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
9452
9453         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
9454         Set default to true.
9455
9456 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9457
9458         * c.opt (Wsynth): Deprecate.
9459         * doc/invoke.texi (Option Summary, Warning Options): Document
9460         -Wno-format-contains-nul.
9461
9462 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
9463
9464         PR target/35496
9465         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
9466         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
9467
9468 2008-03-09  Ira Rosen  <irar@il.ibm.com>
9469
9470         * config/rs6000/rs6000.c (builtin_description): Rename vector
9471         left shift operations.
9472         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
9473         (altivec_vsl<VI_char>): Rename to ...
9474         (ashl<mode>3): ... new name.
9475         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
9476         gen_ashlv4si3.
9477         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
9478
9479 2008-03-08  Richard Guenther  <rguenther@suse.de>
9480
9481         * coverage.h (tree_coverage_counter_addr): Declare.
9482         * coverage.c (tree_coverage_counter_addr): New function.
9483         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
9484         before using again.
9485         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
9486         (tree_gen_one_value_profiler): Likewise.
9487         (tree_gen_ic_profiler): Likewise.
9488         (tree_gen_average_profiler): Likewise.
9489         (tree_gen_ior_profiler): Likewise.
9490
9491 2008-03-08  Richard Guenther  <rguenther@suse.de>
9492
9493         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
9494         (vn_binary_op_insert): Likewise.
9495         (vn_unary_op_lookup): Likewise.
9496         (vn_unary_op_insert): Likewise.
9497         (vn_nary_op_lookup): Declare.
9498         (vn_nary_op_insert): Likewise.
9499         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
9500         and binary hashes, use a single obstack for unary_op_pool
9501         and binary_op_pool.
9502         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
9503         a single struct vn_nary_op_s.  Store tree code length and
9504         a variable number of operands.
9505         (struct vn_reference_op_struct): Remove unused op2.
9506         (vn_reference_op_eq): Do not compare op2.
9507         (vn_reference_op_compute_hash): Do not compute hash of op2.
9508         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
9509         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
9510         with vn_nary_op_compute_hash.
9511         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
9512         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
9513         vn_nary_op_lookup.
9514         (vn_unary_op_insert, vn_binary_op_insert): Replace with
9515         vn_nary_op_insert.
9516         (visit_unary_op): Call nary functions.
9517         (visit_binary_op): Likewise.
9518         (process_scc): Adjust for struct vn_tables_s changes.
9519         (allocate_vn_table): Likewise.
9520         (free_vn_table): Likewise.
9521         * tree-vn.c (vn_add): Call nary functions.
9522         (vn_lookup): Likewise.
9523
9524 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
9525
9526         PR target/35498
9527         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
9528         wdst back after sync_compare_and_swapqhi_internal.
9529
9530 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
9531
9532         PR target/22152
9533         * config/i386/i386-modes.def (V1DI): New vector mode.
9534         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
9535         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
9536         (MMXMODE248): Ditto.
9537         (MMXMODE): Add V1DI mode.
9538         (mmxvecsize): Change DI mode to V1DI mode.
9539         ("mov<mode>): Use MMXMODEI8 mode iterator.
9540         ("*mov<mode>_internal_rex64"): Ditto.
9541         ("*mov<mode>_internal"): Ditto.
9542         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
9543         ("mmx_sub<mode>3"): Ditto.
9544         ("mmx_adddi3"): Remove insn pattern.
9545         ("mmx_subdi3"): Ditto.
9546         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
9547         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
9548         ("mmx_ashl<mode>3"): Ditto.
9549         ("mmx_lshrdi3"): Remove insn pattern.
9550         ("mmx_ashldi3"): Ditto.
9551         * config/i386/i386.c (classify_argument): Handle V1DImode.
9552         (function_arg_advance_32): Ditto.
9553         (function_arg_32): Ditto.
9554         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
9555         mmx_addv1di3 insn pattern.
9556         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
9557         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
9558         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
9559         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
9560         Remove definitions of built-in functions.
9561         (V1DI_type_node): New node.
9562         (v1di_ftype_v1di_int): Ditto.
9563         (v1di_ftype_v1di_v1di): Ditto.
9564         (v2si_ftype_v2si_si): Ditto.
9565         (v4hi_ftype_v4hi_di): Remove node.
9566         (v2si_ftype_v2si_di): Ditto.
9567         (ix86_init_mmx_sse_builtins): Handle V1DImode.
9568         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
9569         Redefine builtins using def_builtin_const with *_ftype_*_int node.
9570         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
9571         Add new builtins using def_builtin_const.
9572         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
9573         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
9574         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
9575         * config/i386/mmintrin.h (__v1di): New typedef.
9576         (_mm_add_si64): Cast arguments to __v1di type.
9577         (_mm_sub_si64): Ditto.
9578         (_mm_sll_pi16): Cast __count to __v4hi type.
9579         (_mm_sll_pi32): Cast __count to __v2si type.
9580         (_mm_sll_si64): Cast arguments to __v1di type.
9581         (_mm_srl_pi16): Cast __count to __v4hi type.
9582         (_mm_srl_pi32): Cast __count to __v2si type.
9583         (_mm_srl_si64): Cast arguments to __v1di type.
9584         (_mm_sra_pi16): Cast __count to __v4hi type.
9585         (_mm_sra_pi32): Cast __count to __v2si type.
9586         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
9587         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
9588         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
9589         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
9590         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
9591         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
9592         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
9593         (_mm_srai_pi32): Use __builtin_ia32_psradi.
9594         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
9595         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9596         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9597         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
9598
9599 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
9600
9601         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
9602
9603 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
9604
9605         PR target/35373
9606         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
9607         reg+const addressing for Altivec modes.  Don't generate reg+reg
9608         addressing for TFmode or TDmode quantities.
9609
9610 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
9611
9612         * c-common.c (vector_types_convertible_p): Call langhook
9613         instead of comptypes.
9614
9615 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9616
9617         PR tree-opt/35402
9618         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
9619         integral and scalar float variables which have a
9620         NULL DECL_INITIAL.
9621
9622 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
9623
9624         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
9625         dwarf_register_span hook when emitting unwind information for
9626         register-to-memory saves.
9627         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
9628         (rs6000_frame_related): Remove call to spe_synthesize_frame.
9629
9630 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
9631
9632         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
9633         for the same VAR_DECL.
9634
9635 2008-03-06  Tom Tromey  <tromey@redhat.com>
9636
9637         * treelang: Delete.
9638         * doc/standards.texi (Standards): Don't mention treelang.
9639         * doc/invoke.texi (Overall Options): Don't mention treelang.
9640         * doc/install.texi (Prerequisites): Don't mention bison or
9641         treelang.
9642         (Configuration): Don't mention treelang.
9643         (Building): Likewise.
9644         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
9645
9646 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
9647
9648         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
9649         word-extractions out of a multi-word object.
9650
9651 2008-03-06  Richard Guenther  <rguenther@suse.de>
9652
9653         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
9654         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
9655         result type and precision.
9656         * expr.c (get_inner_reference): Set unsignedp based on the result
9657         type of BIT_FIELD_REF.
9658         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
9659         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
9660         (try_instantiate_multiple_fields): Likewise.  Use the correct type
9661         for BIT_FIELD_REF.
9662         (sra_build_assignment): Likewise.
9663         (sra_build_elt_assignment): Likewise.
9664         (sra_explode_bitfield_assignment): Likewise.
9665         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
9666         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
9667         set BIT_FIELD_REF_UNSIGNED.
9668         (vectorizable_load): Likewise.
9669
9670 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
9671
9672         * cse.c (cse_extended_basic_block): Invalidate artificial defs
9673         at bb start.
9674
9675 2008-03-06  Richard Guenther  <rguenther@suse.de>
9676
9677         * alias.c (struct alias_set_entry): Move has_zero_child field
9678         to pack with alias_set.
9679
9680 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
9681
9682         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9683         32bit host.
9684
9685 2008-03-05  Ian Lance Taylor  <iant@google.com>
9686
9687         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
9688
9689 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
9690
9691         * fwprop.c (update_df): Support width and offset parameters of
9692         df_ref_create.
9693         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
9694         global_conflicts): Change DF_REF_EXTRACT to either
9695         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9696         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9697         * df-scan.c (df_ref_record, df_defs_record,
9698         df_ref_create_structure, df_def_record_1, df_uses_record,
9699         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
9700         df_bb_refs_collect, df_entry_block_defs_collect,
9701         df_exit_block_uses_collect): Support new width and offset fields.
9702         (ref_extract_pool): New storage pool.
9703         (df_free_ref): New function.
9704         (df_reg_chain_unlink, df_free_collection_rec,
9705         df_sort_and_compress_refs): Call df_free_ref.
9706         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
9707         of df_ref_extract.
9708         (df_ref_create_structure): Allocate df_ref_extract if offset and
9709         width fields are used.
9710         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
9711         (df_uses_record): Get offset and width from ZERO_EXTRACT 
9712         and SIGN_EXTRACT.
9713         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
9714         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9715         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9716         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
9717         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9718         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9719         (df_ref_extract): New structure.
9720         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
9721         (df_ref_create): Add width and offset parameters.
9722         
9723 2008-03-05  Richard Guenther  <rguenther@suse.de>
9724
9725         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9726         Use ranges_overlap_p.
9727         (offset_overlaps_with_access): Rename
9728         to ranges_overlap_p and move ...
9729         * tree-flow-inline.h (ranges_overlap_p): ... here.
9730
9731         * tree.h (get_inner_reference, handled_component_p): Update
9732         comments.
9733
9734         * tree.h (record_component_aliases, get_alias_set,
9735         alias_sets_conflict_p, alias_sets_must_conflict_p,
9736         objects_must_conflict_p): Move declarations ...
9737         * alias.h (record_component_aliases, get_alias_set,
9738         alias_sets_conflict_p, alias_sets_must_conflict_p,
9739         objects_must_conflict_p): ... here.
9740         Include coretypes.h.
9741         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
9742
9743 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
9744
9745         * cfg.c: Include tree-flow.h.
9746         (remove_edge_raw): Call redirect_edge_var_map_clear.
9747         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
9748         * tree-flow-inline.h (redirect_edge_var_map_def): New.
9749         (redirect_edge_var_map_result): New.
9750         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
9751         PENDING_STMT use with redirect_edge_var_map_*.
9752         * tree-ssa.c (edge_var_maps): New definition.
9753         (redirect_edge_var_map_add): New.
9754         (redirect_edge_var_map_clear): New.
9755         (redirect_edge_var_map_dup): New.
9756         (redirect_edge_var_map_vector): New.
9757         (redirect_edge_var_map_destroy): New.
9758         (ssa_redirect_edge): Replace PENDING_STMT use with
9759         redirect_edge_var_map_*.
9760         (flush_pending_stmts): Same.
9761         (delete_tree_ssa): Destroy edge var map.
9762         * tree-flow.h (struct _edge_var_map): New.
9763         Define edge_var_map vector type.
9764         Declare redirect_edge_var_map_* prototypes.
9765         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
9766         * tree-cfg.c (reinstall_phi_args): Replace
9767         PENDING_STMT use with redirect_edge_var_map_*.
9768
9769 2008-03-05  Richard Guenther  <rguenther@suse.de>
9770
9771         PR tree-optimization/35472
9772         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
9773         whose single use_stmt has a overlapping set of loaded and
9774         stored symbols as that use_stmt might be a noop assignment then.
9775
9776 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
9777
9778         * gthr-rtems.h: Implement __gthread_mutex_destroy.
9779
9780 2008-03-05  Richard Guenther  <rguenther@suse.de>
9781
9782         PR c++/35336
9783         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
9784         should be constants.
9785         * tree-cfg.c (verify_expr): Verify it.
9786         * fold-const.c (fold_truthop): Remove code generating
9787         BIT_FIELD_REFs of structure bases.
9788         (fold_binary): Likewise.
9789         (fold_ternary): Position and size of BIT_FIELD_REFs are
9790         always host integers.
9791         (make_bit_field_ref): Remove.
9792         (optimize_bit_field_compare): Remove.
9793         (all_ones_mask_p): Remove.
9794
9795 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
9796
9797         PR gcc/33009
9798         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
9799         (split_block_and_df_analyze): New. Split basic block and rebuild
9800         dataflow.
9801         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
9802         SPLIT_BLOCK.
9803         (split_pattern_seq): Likewise.
9804         (erase_matching_seqs): Likewise.
9805         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
9806
9807 2008-03-04  Geoff Keating  <geoffk@apple.com>
9808
9809         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
9810         declaration and code.
9811         (tree_invalid_nonnegative_warnv_p): Likewise.
9812
9813 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
9814
9815         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
9816         examples.  Truncate option-names then causing overfull hbox.
9817
9818 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9819
9820         PR target/35222
9821         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
9822         on hpux10.
9823         * configure: Rebuilt.
9824
9825 2008-03-04  Rafael Espindola  <espindola@google.com>
9826
9827         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
9828         (tree_unary_nonnegative_warnv_p): New.
9829         (tree_binary_nonnegative_warnv_p): New.
9830         (tree_single_nonnegative_warnv_p): New.
9831         (tree_invalid_nonnegative_warnv_p): New.
9832         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
9833
9834 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9835
9836         PR 28322
9837         * opts.c (handle_option): Postpone 'unknown option' errors only for
9838         warning options.
9839
9840 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
9841
9842         PR target/35453
9843         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
9844         (_SIDD_XXX): This.
9845
9846 2008-03-04  Rafael Espindola  <espindola@google.com>
9847
9848         * fold-const.c (tree_unary_nonzero_warnv_p): New.
9849         (tree_binary_nonzero_warnv_p): New.
9850         (tree_single_nonzero_warnv_p): New.
9851         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
9852
9853 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
9854
9855         PR middle-end/35456
9856         * fold-const.c (fold_cond_expr_with_comparison): Prevent
9857         transformations for modes that have signed zeros.
9858         * ifcvt.c (noce_try_abs): Ditto.
9859
9860 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
9861
9862         * config/i386/i386.c (override_options): Force
9863         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
9864
9865 2008-03-04  Jan Hubicka  <jh@suse.cz>
9866
9867         PR c++/35262
9868         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
9869         in last commit.
9870
9871 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
9872
9873         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
9874         label to probe the stack.
9875
9876 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
9877
9878         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
9879         (__gthr_win32_mutex_destroy): Declare.
9880         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
9881         __gthr_win32_mutex_destroy.
9882         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
9883
9884 2008-03-03  Jan Hubicka  <jh@suse.cz>
9885
9886         PR c++/35262
9887         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
9888         aggressive on inlining cold calls.
9889
9890 2008-03-03  Richard Guenther  <rguenther@suse.de>
9891
9892         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
9893         struct copies into the expression table.
9894         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
9895         (try_to_simplify): Likewise.
9896         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
9897         integral and pointer arguments which do not change the
9898         precision to NOP_EXPRs.
9899         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
9900         VIEW_CONVERT_EXPR case.
9901
9902 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
9903
9904         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
9905         defined in a loop at depth 0 is invariant.
9906         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
9907         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
9908         be called at loop depth 0.
9909
9910 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
9911
9912         PR driver/35420
9913         * gcc.c (process_command): Update copyright notice dates.
9914         * gcov.c (print_version): Likewise.
9915         * gcov-dump.c (print_version): Likewise.
9916         * mips-tfile.c (main): Likewise.
9917         * mips-tdump.c (main): Likewise.
9918
9919 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9920
9921         PR 24924
9922         * c-common.c (flag_permissive): Delete.
9923         (constant_expression_warnings): Check flags first.
9924         (constant_expression_error): New.
9925         * c-common.h (flag_permissive): Delete.
9926         (constant_expression_error): Declare.
9927         * flags.h (flag_permissive): Declare. Update description.
9928         * diagnostic.c (pedwarn): Update.
9929         (permerror): New.
9930         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
9931         (permissive_error_kind): New.
9932         * toplev.c (flag_permissive): Define. Update description.
9933         * toplev.h (permissive_error_kind): Declare.
9934         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
9935         (pedwarn_c90): Use pedantic_warning_kind.
9936         * c-opts.c (c_common_post_options): flag_permissive does not affect
9937         flag_pedantic_errors.
9938
9939 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
9940
9941         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
9942         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
9943         __absvsi2, __absvDI2): Use unsigned arithmetic.
9944
9945 2008-03-02  Andi Kleen  <ak@suse.de>
9946             Richard Guenther  <rguenther@suse.de>
9947
9948         * struct-equiv.c: Remove file.
9949         * cfg_cleanup.c (condjump_equiv_p): Remove.
9950         * Makefile.in (OBJS-common): Remove struct-equiv.o.
9951         (struct-equiv.o): Remove rule.
9952         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
9953         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
9954         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
9955
9956 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9957
9958         * ifcvt.c (noce_process_if_block): Try to handle only the then
9959         block if the else block exists but isn't suitable.
9960
9961 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
9962
9963         PR gcc/35063
9964         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
9965         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
9966         regression from previous patch.
9967
9968 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
9969
9970         PR gcc/35063
9971         * gthr.h: Add __gthread_mutex_destroy as a function that must be
9972         implemented.
9973         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
9974         * gthr-single.h (__gthread_mutex_destroy): Likewise.
9975         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
9976         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
9977         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
9978         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
9979         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
9980         (__gthread_mutex_destroy_function): Rename to
9981         __gthread_mutex_destroy.
9982         * gthr-dce.h (__gthread_mutex_destroy): Call
9983         pthread_mutex_destroy.
9984         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
9985         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
9986         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
9987
9988 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9989
9990         * df-scan.c (df_ref_chain_change_bb): Simplify.
9991         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
9992         set_block_for_insn if there's any change.
9993         * df.h ((df_insn_change_bb): Fix prototype.
9994         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
9995         df_insn_change_bb, don't call set_block_for_insn.
9996         * emit-rtl.c (reorder_insns): Likewise.
9997         * haifa-sched.c (move_insn): Likewise.
9998
9999 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10000
10001         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
10002
10003 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10004
10005         * tree-flow-inline.h (next_readonly_imm_use): Return
10006         NULL_USE_OPERAND_P after the end.
10007
10008 2008-03-01  Richard Guenther  <rguenther@suse.de>
10009
10010         PR tree-optimization/35411
10011         * tree-sra.c (sra_build_assignment): Split conversion to
10012         final type to a separate statement if we are not assigning
10013         to a register.
10014
10015 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10016
10017         * fold-const.c (fold_convertible_p): Correct the logic to follow
10018         that in fold_convert().
10019
10020 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
10021
10022         PR c++/35315
10023         * tree-inline.c (build_duplicate_type): When we make a
10024         duplicate type, make it unique in the canonical types system.
10025
10026 2008-02-29  Tom Tromey  <tromey@redhat.com>
10027
10028         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
10029         input_file_stack_history, input_file_stack_restored): Remove.
10030         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10031         * input.h (struct file_stack): Remove.
10032         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10033         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
10034         Likewise.
10035         * diagnostic.h (struct diagnostic_context) <last_module>: Change
10036         type.
10037         (diagnostic_last_module_changed): Add 'map' argument.
10038         (diagnostic_set_last_function): Likewise.
10039         * diagnostic.c (undiagnostic_report_current_module): Iterate using
10040         line map, not input_file_stack.
10041         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
10042
10043 2008-02-29  Paul Brook  <paul@codesourcery.com>
10044
10045         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
10046
10047 2008-02-29  Paul Brook  <paul@codesourcery.com>
10048
10049         * config/arm/ieee754-df.S (muldf3): Use RET macros.
10050
10051 2008-02-29  Richard Guenther  <rguenther@suse.de>
10052
10053         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
10054         vn_lookup_or_add.
10055         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
10056         value for comparing for a store match.
10057         (simplify_unary_expression): Do nothing for SSA_NAMEs.
10058         (try_to_simplify): Do not do a full-blown reference lookup.
10059
10060 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10061
10062         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
10063         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
10064
10065         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
10066
10067 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
10068
10069         * tree-loop-linear.c (try_interchange_loops): Compare memory access
10070         strides against cache sizes.
10071
10072 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10073
10074         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
10075         constant to fpul.
10076
10077 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
10078
10079         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
10080         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
10081         is smaller than the original promoted value.
10082         (simplify_subreg): If OP is a SUBREG, try to preserve its
10083         SUBREG_PROMOTED_VAR_P information.
10084
10085 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
10086
10087         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
10088         (VN_INFO_GET): Allocate new objects on the obstack.
10089         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
10090         for rpo_numbers_temp, for consistency.
10091         (free_scc_vn): Free the obstack.
10092
10093 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
10094
10095         * doc/invoke.texi: Document -ftree-loop-distribution.
10096         * tree-loop-distribution.c: New.
10097         * tree-pass.h (pass_loop_distribution): New.
10098         * graphds.h (struct graph): Add htab_t indices.
10099         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
10100         * tree-vectorizer.c (rename_variables_in_loop): Extern.
10101         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
10102         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
10103         * tree-data-ref.c (debug_data_dependence_relations): New.
10104         (dump_data_dependence_relation): Also print data references.
10105         (free_data_ref): Extern.
10106         (same_access_functions): Moved...
10107         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
10108         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10109         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
10110         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
10111         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
10112         (stmts_from_loop): Skip LABEL_EXPR.
10113         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
10114         New.
10115         (build_rdg): Initialize rdg->indices htab.
10116         (free_rdg, stores_from_loop, ref_base_address,
10117         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
10118         have_similar_memory_accesses_1, ref_base_address_1,
10119         remove_similar_memory_refs): New.
10120         * tree-data-ref.h: Depend on tree-chrec.h.
10121         (debug_data_dependence_relations, free_data_ref): Declared.
10122         (same_access_functions): ... here.
10123         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
10124         New.
10125         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
10126         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
10127         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
10128         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10129         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
10130         rdg_vertex_for_stmt): Declared.
10131         (struct rdg_edge): Add level.
10132         (RDGE_LEVEL): New.
10133         (free_rdg, stores_from_loop, remove_similar_memory_refs,
10134         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
10135         Declared.
10136         (rdg_has_similar_memory_accesses): New.
10137         * tree-vect-analyze.c: Remove unused static decls.
10138         * lambda.h (dependence_level): New.
10139         * common.opt (ftree-loop-distribution): New.
10140         * tree-flow.h (mark_virtual_ops_in_bb, 
10141         slpeel_tree_duplicate_loop_to_edge_cfg,
10142         rename_variables_in_loop): Declared.
10143         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
10144         (OBJS-common): Add tree-loop-distribution.o.
10145         (tree-loop-distribution.o): New rule.
10146         * tree-cfg.c (mark_virtual_ops_in_bb): New.
10147         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
10148         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
10149
10150 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
10151
10152         PR target/33963
10153         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
10154         other than structures and unions.
10155
10156 2008-02-28  Richard Guenther  <rguenther@suse.de>
10157
10158         Revert:
10159         2008-02-26  Richard Guenther  <rguenther@suse.de>
10160
10161         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10162         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10163         (lookup_decl_from_uid): Declare.
10164         (remove_decl_from_map): Likewise.
10165         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10166         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10167         (decl_for_uid_map): New global hashtable mapping DECL_UID
10168         to the decl tree.
10169         (init_ttree): Allocate it.
10170         (insert_decl_to_uid_decl_map): New helper function.
10171         (make_node_stat): Insert new decls into the map.
10172         (copy_node_stat): Likewise.
10173         (lookup_decl_from_uid): New function.
10174         (remove_decl_from_map): Likewise.
10175         (print_decl_for_uid_map_statistics): New helper.
10176         (dump_tree_statistics): Call it.
10177
10178         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10179         (referenced_var_iterator): Adjust.
10180         (FOR_EACH_REFERENCED_VAR): Adjust.
10181         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10182         (num_referenced_vars): Adjust.
10183         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10184         (first_referenced_var): Remove.
10185         (end_referenced_vars_p): Likewise.
10186         (next_referenced_var): Likewise.
10187         (referenced_var_iterator_set): New helper function.
10188         * tree-dfa.c (referenced_var_lookup): Adjust.
10189         (referenced_var_check_and_insert): Likewise.
10190         (remove_referenced_var): Likewise.
10191         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10192         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10193         (verify_call_clobbering): Likewise.
10194         (verify_memory_partitions): Likewise.
10195         (init_tree_ssa): Allocate bitmap instead of hashtable for
10196         referenced_vars.
10197         (delete_tree_ssa): Adjust.
10198         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10199         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10200         (compute_tag_properties): Likewise.
10201         (set_initial_properties): Likewise.
10202         (find_partition_for): Likewise.
10203         (update_reference_counts): Likewise.
10204         (dump_may_aliases_for): Likewise.
10205         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10206         (add_call_clobber_ops): Likewise.
10207         (add_call_read_ops): Likewise.
10208         (get_asm_expr_operands): Likewise.
10209         * tree-into-ssa.c (dump_decl_set): Likewise.
10210         (update_ssa): Likewise.
10211         * tree-sra.c (scan_function): Likewise.
10212         (decide_instantiations): Likewise.
10213         (scalarize_parms): Likewise.
10214         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10215         (dsa_named_for): Likewise.
10216         * tree-ssa-structalias.c (update_alias_info): Likewise.
10217         (merge_smts_into): Likewise.
10218
10219 2008-02-27  David Daney  <ddaney@avtrex.com>
10220
10221         PR target/34409
10222         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
10223         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
10224         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
10225         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
10226         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
10227
10228 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
10229
10230         PR target/25477
10231         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
10232         (BUILT_IN_NEXTTOWARD): Remove.
10233         (BUILT_IN_NEXTTOWARDF): Ditto.
10234         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
10235         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
10236
10237 2008-02-27  Tom Tromey  <tromey@redhat.com>
10238
10239         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
10240         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
10241
10242 2008-02-27  Jan Beulich  <jbeulich@novell.com>
10243
10244         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
10245         update the respective field on newdecl.
10246
10247 2008-02-27  Revital Eres  <eres@il.ibm.com>
10248
10249         PR rtl-optimization/34999
10250         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
10251         crossing edges that ends with a call insn.
10252         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
10253         call insn and clear the EDGE_CROSSING flag of the crossing edge
10254         when fixing fallthru edges.
10255
10256 2008-02-27  Richard Guenther  <rguenther@suse.de>
10257
10258         PR middle-end/35390
10259         * fold-const.c (fold_unary): Return the correct argument,
10260         converted to the result type.
10261
10262 2008-02-27  Richard Guenther  <rguenther@suse.de>
10263
10264         PR middle-end/34971
10265         * expr.c (expand_expr_real_1): Assert on rotates that operate
10266         on partial modes.
10267         * fold-const.c (fold_binary): Use the types precision, not the
10268         bitsize of the mode if folding rotate expressions.  Build rotates
10269         only for full modes.
10270
10271 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
10272
10273         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
10274         and CPP_PRAGMA_EOL.
10275         * c-pragma.c (pragma_ns_name): New typedef.
10276         (registered_pp_pragmas): New variable.
10277         (c_pp_lookup_pragma): New function.
10278         (c_register_pragma_1): If flag_preprocess_only, do nothing
10279         for non-expanded pragmas, for expanded ones push pragma's
10280         namespace and name into registered_pp_pragmas vector.
10281         (c_invoke_pragma_handler): Register OpenMP pragmas even when
10282         flag_preprocess_only, don't register GCC pch_preprocess
10283         pragma if flag_preprocess_only.
10284         * c-opts.c (c_common_init): Call init_pragma even if
10285         flag_preprocess_only.
10286         * c-pragma.c (c_pp_lookup_pragma): New prototype.
10287         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
10288         cpp_register_pragma if flag_preprocess_only.
10289
10290 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10291
10292         PR c/28800
10293         * c-parser.c (c_parser_translation_unit): Warn for empty
10294         translation unit, not empty source file.
10295
10296 2008-02-26  Paul Brook  <paul@codesourcery.com>
10297
10298         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
10299         operand for Thumb-2.
10300         * config/arm/arm.h (reg_class): Add CORE_REGS.
10301         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
10302         (BASE_REG_CLASS): Use CORE_REGS.
10303         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
10304         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
10305         (REGNO_OK_FOR_INDEX_P): Exclude SP.
10306         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
10307         ARM_REGNO_OK_FOR_INDEX_P.
10308         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
10309         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
10310         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
10311         (ldm/stm peepholes): Ditto.
10312         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
10313         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
10314         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
10315         * config/arm/constraints.md: Enable "k" constraint on ARM.
10316
10317 2008-02-27  Ben Elliston  <bje@au.ibm.com>
10318
10319         * config/rs6000/rs6000.c: Annotate cache line size field in all
10320         instances of struct processor_costs.
10321
10322 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
10323
10324         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
10325         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
10326         jump_bypass): New counters.
10327         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
10328         * dce.c (gate_ud_dce): Same.
10329         (gate_fast_dce): Same.
10330         * dse.c (gate_dse1): New function.
10331         (gate_dse2): New function.
10332         (gate_dse): Merge results of new gate functions.
10333         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
10334         (gate_handle_jump_bypass): Add dbg_cnt.
10335         (gate_handle_gcse): Add dbg_cnt.
10336         * ifcvt.c (gate_handle_if_conversion): Same.
10337         (gate_handle_if_after_combine): Same.
10338         (gate_handle_if_after_reload): Same.
10339         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
10340
10341 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
10342
10343         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
10344         line sizes.
10345         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
10346
10347 2008-02-26  Jason Merrill  <jason@redhat.com>
10348
10349         PR c++/35315
10350         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
10351         alone if it's the naming decl for the type's main variant.
10352
10353 2008-02-26  Tom Tromey  <tromey@redhat.com>
10354
10355         * system.h (USE_MAPPED_LOCATION): Poison.
10356         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
10357         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
10358         (make_goto_expr_edges): Likewise.
10359         (remove_bb): Likewise.
10360         (execute_warn_function_return): Likewise.
10361         * basic-block.h (struct edge_def) <goto_locus>: Change type to
10362         location_t.
10363         * c-common.c (fname_decl): Remove old location code.
10364         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
10365         location code.
10366         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
10367         variant.
10368         (ASM_INPUT_SOURCE_LOCATION): Likewise.
10369         (gen_rtx_ASM_INPUT): Likewise.
10370         (gen_rtx_ASM_INPUT_loc): Likewise.
10371         (get_rtx_asm_OPERANDS): Remove.
10372         * cfglayout.c (insn_locators_alloc): Remove old location code.
10373         (set_curr_insn_source_location): Likewise.
10374         (curr_insn_locator): Likewise.
10375         * print-tree.c (print_node): Remove old location code.
10376         * tree-mudflap.c (mf_varname_tree): Remove old location code.
10377         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
10378         * cfgexpand.c (expand_gimple_cond_expr): Don't use
10379         location_from_locus.
10380         (construct_exit_block): Remove old location code.
10381         * emit-rtl.c (force_next_line_note): Remove old location code.
10382         * profile.c (branch_prob): Remove old location code.
10383         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
10384         LOC_LINE): Remove old-location variants.
10385         * langhooks.c (lhd_print_error_function): Remove old location
10386         code.
10387         * configure, config.in: Rebuilt.
10388         * configure.ac (--enable-mapped-location): Remove.
10389         * c-decl.c (c_init_decl_processing): Remove old location code.
10390         (finish_function): Likewise.
10391         * recog.c (decode_asm_operands): Remove old location code.
10392         * c-pch.c (c_common_read_pch): Remove old location code.
10393         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
10394         variants.
10395         * gimple-low.c (lower_function_body): Remove old location code.
10396         * toplev.c (unknown_location): Remove.
10397         (push_srcloc): Remove old-location variant.
10398         (process_options): Remove old location code.
10399         (lang_dependent_init): Likewise.
10400         * input.h (UNKNOWN_LOCATION): Move definition.
10401         (location_t): Undeprecate.
10402         (source_locus): Remove.
10403         (location_from_locus): Remove.
10404         (struct location_s): Remove.
10405         Remove all old-location code.
10406         (input_line, input_filename): Remove.
10407         * final.c (final_scan_insn): Remove old location code.
10408         * diagnostic.c (diagnostic_build_prefix): Remove
10409         USE_MAPPED_LOCATION test.
10410         * tree.h (gimple_stmt) <locus>: Now a location_t.
10411         (tree_exp) <locus>: Likewise.
10412         (DECL_IS_BUILTIN): Remove old-location variant.
10413         (annotate_with_file_line, annotate_with_locus): Likewise.
10414         (expr_locus, set_expr_locus): Update.
10415         * tree.c (build1_stat): Remove old location code.
10416         (last_annotated_node): Remove.
10417         (annotate_with_file_line): Remove old-location variant.
10418         (annotate_with_locus): Likewise.
10419         (expr_location): Remove old location code.
10420         (set_expr_location): Likewise.
10421         (expr_has_location): Likewise.
10422         (expr_locus): Likewise.
10423         (set_expr_locus): Likewise.
10424         (expr_filename): Don't use location_from_locus.
10425         (expr_lineno): Likewise.
10426         * rtl-error.c (location_for_asm): Remove old location code.
10427         * c-lex.c (cb_line_change): Remove old location code.
10428         (fe_file_change): Likewise.
10429         (cb_def_pragma): Likewise.
10430         (c_lex_with_flags): Likewise.
10431         * gengtype.c (do_typedef): Don't special-case location types.
10432         (define_location_structures): Remove.
10433         (main): Don't call define_location_structures.
10434         * tree-pretty-print.c (dump_implicit_edges): Remove old location
10435         code.
10436
10437 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10438
10439         PR 26264
10440         * builtins.def (BUILT_IN_STDARG_START): Remove.
10441         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
10442         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10443         * tree-inline.c (inline_forbidden_p_1): Likewise.
10444         
10445 2008-02-26  Richard Guenther  <rguenther@suse.de>
10446
10447         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10448         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10449         (lookup_decl_from_uid): Declare.
10450         (remove_decl_from_map): Likewise.
10451         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10452         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10453         (decl_for_uid_map): New global hashtable mapping DECL_UID
10454         to the decl tree.
10455         (init_ttree): Allocate it.
10456         (insert_decl_to_uid_decl_map): New helper function.
10457         (make_node_stat): Insert new decls into the map.
10458         (copy_node_stat): Likewise.
10459         (lookup_decl_from_uid): New function.
10460         (remove_decl_from_map): Likewise.
10461         (print_decl_for_uid_map_statistics): New helper.
10462         (dump_tree_statistics): Call it.
10463
10464         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10465         (referenced_var_iterator): Adjust.
10466         (FOR_EACH_REFERENCED_VAR): Adjust.
10467         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10468         (num_referenced_vars): Adjust.
10469         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10470         (first_referenced_var): Remove.
10471         (end_referenced_vars_p): Likewise.
10472         (next_referenced_var): Likewise.
10473         (referenced_var_iterator_set): New helper function.
10474         * tree-dfa.c (referenced_var_lookup): Adjust.
10475         (referenced_var_check_and_insert): Likewise.
10476         (remove_referenced_var): Likewise.
10477         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10478         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10479         (verify_call_clobbering): Likewise.
10480         (verify_memory_partitions): Likewise.
10481         (init_tree_ssa): Allocate bitmap instead of hashtable for
10482         referenced_vars.
10483         (delete_tree_ssa): Adjust.
10484         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10485         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10486         (compute_tag_properties): Likewise.
10487         (set_initial_properties): Likewise.
10488         (find_partition_for): Likewise.
10489         (update_reference_counts): Likewise.
10490         (dump_may_aliases_for): Likewise.
10491         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10492         (add_call_clobber_ops): Likewise.
10493         (add_call_read_ops): Likewise.
10494         (get_asm_expr_operands): Likewise.
10495         * tree-into-ssa.c (dump_decl_set): Likewise.
10496         (update_ssa): Likewise.
10497         * tree-sra.c (scan_function): Likewise.
10498         (decide_instantiations): Likewise.
10499         (scalarize_parms): Likewise.
10500         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10501         (dsa_named_for): Likewise.
10502         * tree-ssa-structalias.c (update_alias_info): Likewise.
10503         (merge_smts_into): Likewise.
10504
10505 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10506
10507         PR 34351
10508         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
10509         * c-opts.c (c_common_handle_option): Wall enables
10510         Wvolatile-register-var.
10511         * common.opt: Move Wvolatile-register-var to...
10512         * c.opt: ...here.
10513         
10514 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10515
10516         * common.opt (Wlarger-than=): New.
10517         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
10518         -Wlarger-than=.
10519         * opts.c (common_handle_option): Handle -Wlarger-than=.
10520         * optc-gen.awk: Likewise.
10521         * opth-gen.awk: Likewise.
10522         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
10523         * tree-optimize.c (tree_rest_of_compilation): Likewise.
10524         
10525 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10526
10527         * c-common.c (match_case_to_enum_1): Add appropriate
10528         OPT_W* parameter to warning.
10529         (c_do_switch_warnings): Likewise.
10530         * c-typeck.c (warning_init): Add one more parameter following
10531         'warning' function.
10532         (push_init_level): Update call to warning_init.
10533         (pop_init_level): Likewise.
10534         (add_pending_init): Likewise.
10535         (output_init_element: Likewise.
10536
10537 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10538
10539         PR 28322
10540         * toplev.c (toplev_main): If there are warnings or error, print
10541         errors for ignored options.
10542         * opts.c (ignored_options): New static variable.
10543         (postpone_unknown_option_error): New.
10544         (print_ignored_options): New.
10545         (handle_option): Postpone errors for unknown -Wno-* options.
10546         * opts.h (print_ignored_options): Declare.
10547         
10548 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
10549
10550         * config/mips/mips.md (loadgp_blockage, blockage): Change type
10551         to "ghost".
10552
10553 2008-02-25  Richard Guenther  <rguenther@suse.de>
10554
10555         Revert:
10556         2008-02-25  Richard Guenther  <rguenther@suse.de>
10557
10558         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10559         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10560         (lookup_decl_from_uid): Declare.
10561         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10562         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10563         (decl_for_uid_map): New global hashtable mapping DECL_UID
10564         to the decl tree.
10565         (init_ttree): Allocate it.
10566         (insert_decl_to_uid_decl_map): New helper function.
10567         (make_node_stat): Insert new decls into the map.
10568         (copy_node_stat): Likewise.
10569         (lookup_decl_from_uid): New function.
10570         (print_decl_for_uid_map_statistics): New helper.
10571         (dump_tree_statistics): Call it.
10572
10573         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10574         (referenced_var_iterator): Adjust.
10575         (FOR_EACH_REFERENCED_VAR): Adjust.
10576         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10577         (num_referenced_vars): Adjust.
10578         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10579         (first_referenced_var): Remove.
10580         (end_referenced_vars_p): Likewise.
10581         (next_referenced_var): Likewise.
10582         (referenced_var_iterator_set): New helper function.
10583         * tree-dfa.c (referenced_var_lookup): Adjust.
10584         (referenced_var_check_and_insert): Likewise.
10585         (remove_referenced_var): Likewise.
10586         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10587         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10588         (verify_call_clobbering): Likewise.
10589         (verify_memory_partitions): Likewise.
10590         (init_tree_ssa): Allocate bitmap instead of hashtable for
10591         referenced_vars.
10592         (delete_tree_ssa): Adjust.
10593         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10594         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10595         (compute_tag_properties): Likewise.
10596         (set_initial_properties): Likewise.
10597         (find_partition_for): Likewise.
10598         (update_reference_counts): Likewise.
10599         (dump_may_aliases_for): Likewise.
10600         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10601         (add_call_clobber_ops): Likewise.
10602         (add_call_read_ops): Likewise.
10603         (get_asm_expr_operands): Likewise.
10604         * tree-into-ssa.c (dump_decl_set): Likewise.
10605         (update_ssa): Likewise.
10606         * tree-sra.c (scan_function): Likewise.
10607         (decide_instantiations): Likewise.
10608         (scalarize_parms): Likewise.
10609         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10610         (dsa_named_for): Likewise.
10611         * tree-ssa-structalias.c (update_alias_info): Likewise.
10612         (merge_smts_into): Likewise.
10613
10614 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
10615
10616         PR fortran/29549
10617         * doc/invoke.texi (-fcx-limited-range): Document new option.
10618         * toplev.c (process_options): Handle -fcx-fortran-rules.
10619         * common.opt: Add documentation for -fcx-fortran-rules.
10620
10621 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
10622
10623         PR c/35162
10624         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
10625         actual behaviour and C99.
10626         
10627 2008-02-26  Ben Elliston  <bje@au.ibm.com>
10628
10629         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
10630         (ASM_CPU_POWER6_SPEC): Likewise.
10631         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
10632         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
10633         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
10634
10635 2008-02-25  Richard Guenther  <rguenther@suse.de>
10636
10637         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10638         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10639         (lookup_decl_from_uid): Declare.
10640         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10641         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10642         (decl_for_uid_map): New global hashtable mapping DECL_UID
10643         to the decl tree.
10644         (init_ttree): Allocate it.
10645         (insert_decl_to_uid_decl_map): New helper function.
10646         (make_node_stat): Insert new decls into the map.
10647         (copy_node_stat): Likewise.
10648         (lookup_decl_from_uid): New function.
10649         (print_decl_for_uid_map_statistics): New helper.
10650         (dump_tree_statistics): Call it.
10651
10652         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10653         (referenced_var_iterator): Adjust.
10654         (FOR_EACH_REFERENCED_VAR): Adjust.
10655         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10656         (num_referenced_vars): Adjust.
10657         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10658         (first_referenced_var): Remove.
10659         (end_referenced_vars_p): Likewise.
10660         (next_referenced_var): Likewise.
10661         (referenced_var_iterator_set): New helper function.
10662         * tree-dfa.c (referenced_var_lookup): Adjust.
10663         (referenced_var_check_and_insert): Likewise.
10664         (remove_referenced_var): Likewise.
10665         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10666         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10667         (verify_call_clobbering): Likewise.
10668         (verify_memory_partitions): Likewise.
10669         (init_tree_ssa): Allocate bitmap instead of hashtable for
10670         referenced_vars.
10671         (delete_tree_ssa): Adjust.
10672         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10673         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10674         (compute_tag_properties): Likewise.
10675         (set_initial_properties): Likewise.
10676         (find_partition_for): Likewise.
10677         (update_reference_counts): Likewise.
10678         (dump_may_aliases_for): Likewise.
10679         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10680         (add_call_clobber_ops): Likewise.
10681         (add_call_read_ops): Likewise.
10682         (get_asm_expr_operands): Likewise.
10683         * tree-into-ssa.c (dump_decl_set): Likewise.
10684         (update_ssa): Likewise.
10685         * tree-sra.c (scan_function): Likewise.
10686         (decide_instantiations): Likewise.
10687         (scalarize_parms): Likewise.
10688         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10689         (dsa_named_for): Likewise.
10690         * tree-ssa-structalias.c (update_alias_info): Likewise.
10691         (merge_smts_into): Likewise.
10692
10693 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
10694
10695         PR target/35258
10696         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
10697         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
10698         * alias.h (nonoverlapping_memrefs_p): Likewise.
10699
10700 2008-02-25  Jan Beulich  <jbeulich@novell.com>
10701
10702         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
10703         * config/i386/netware-libgcc.exp: Add __bswap?i2,
10704         __emultls_get_address, __emultls_register_common,
10705         __floatundi?f, and _Unwind_GetIPInfo.
10706         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
10707         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
10708         (gen_regparm_prefix): Likewise.
10709         (i386_nlm_encode_section_info): Sync with
10710         config/i386/winnt.c:i386_pe_encode_section_info().
10711         (i386_nlm_maybe_mangle_decl_assembler_name): New.
10712         i386_nlm_mangle_decl_assembler_name): New.
10713         (netware_override_options): New.
10714         * config/i386/netware.h (netware_override_options): Declare.
10715         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
10716         (i386_nlm_mangle_decl_assembler_name): Declare.
10717         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
10718
10719 2008-02-25  Ben Elliston  <bje@au.ibm.com>
10720
10721         PR other/32948
10722         * c-decl.c (grokdeclarator): Remove unused local variables
10723         `typedef_type' and `type_as_written'.
10724         * bb-reorder.c
10725         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
10726         unused local variable `has_hot_blocks'.
10727         (fix_crossing_conditional_branches): Remove unused local variable
10728         `prev_bb'.
10729         
10730 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
10731
10732         PR middle-end/19984
10733         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
10734         using DEF_C99_BUILTIN.
10735         (BUILT_IN_NANF): Ditto.
10736         (BUILT_IN_NANL): Ditto.
10737
10738 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
10739             Revital Eres  <eres@il.ibm.com>
10740
10741         * modulo-sched.c (calculate_must_precede_follow): Address TODO
10742         regarding the order of two dependent insns in the same row.
10743
10744 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
10745
10746         * stor-layout.c (layout_decl): Do not bump the alignment of a
10747         bit-field to more than byte alignment if it is packed.
10748
10749 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
10750
10751         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
10752         e300c2 and e300c3.
10753
10754 2008-02-24  Diego Novillo  <dnovillo@google.com>
10755
10756         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
10757
10758         PR 33738
10759         * tree-vrp.c (vrp_evaluate_conditional): With
10760         -Wtype-limits, emit a warning when comparing against a
10761         constant outside the natural range of OP0's type.
10762         * c.opt (Wtype-limits): Move ...
10763         * common.opt (Wtype-limits): ... here.
10764
10765 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
10766
10767         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
10768         * config/rs6000/e300c2c3.md: New file.
10769         * config/rs6000/rs6000.c (processor_costs): Add new costs for
10770         e300c2 and e300c3.
10771         (rs6000_override_options): Add e300c2 and e300c3 cases to
10772         processor_target_table. Do not allow usage of Altivec or Spe
10773         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
10774         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
10775         * config/rs6000/rs6000.h (processor_type): Add
10776         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
10777         (ASM_CPU_SPEC): Add e300c2 and e300c3.
10778         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
10779         and ppce300c3. Include e300c2c3.md.
10780
10781 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
10782
10783         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
10784         instead of TARGET_STRICT_ALIGN.
10785
10786 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
10787
10788         * explow.c (memory_address): Assert that the generated address is
10789         valid.
10790
10791 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10792
10793         PR target/25477
10794         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
10795         * config/darwin-ppc-ldouble-patch.def: New file.
10796         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
10797         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
10798         SUBTARGET_INIT_BUILTINS if defined.
10799         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
10800         New functions.
10801
10802 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10803
10804         PR rtl-opt/33512
10805         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
10806         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
10807
10808 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10809
10810         PR pch/35027
10811         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
10812         file" warning condtional on -Winvalid-PCH.
10813
10814 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
10815
10816         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
10817
10818 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
10819
10820         PR target/22076
10821         PR target/34256 
10822         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
10823         prevent reload from using MMX registers.
10824         (*mov<mode>_internal): Ditto.
10825         (*movv2sf_internal_rex64): Ditto.
10826         (*movv2sf_internal): Ditto.
10827
10828 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10829
10830         PR documentation/31569
10831         * doc/install.texi2html: Use makeinfo --no-number-sections.
10832
10833 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10834
10835         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
10836         ensure that we can address an entire entity > 8 bytes.  Don't
10837         generate reg+reg addressing for such data.
10838
10839 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10840
10841         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
10842         strings when optimizing for size, unless the target cares about
10843         alignment.
10844
10845 2008-02-22  Tom Tromey  <tromey@redhat.com>
10846
10847         * regclass.c (current_pass): Remove declaration.
10848
10849 2008-02-22  Anatoly Sokolov <aesok@post.ru>
10850
10851         * config/avr/libgcc.S (__RAMPZ__): Define.
10852         (__do_copy_data): Add for devices with 128KB code memory.
10853
10854 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10855
10856         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
10857         Use spe_abi.
10858         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
10859
10860 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
10861
10862         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
10863         GENNONACR_REGS.
10864
10865 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10866
10867         PR c/19999
10868         * c-typeck.c (build_binary_op): Warn about floating point
10869         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
10870
10871 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
10872
10873         PR target/34526
10874         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
10875         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
10876         add vrsave.
10877         (rs6000_override_options): Set altivec_abi as default, not override,
10878         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
10879         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
10880         is used; use new member spe_abi.
10881         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
10882         spe_abi and altivec_abi.
10883
10884 2008-02-22  Tomas Bily  <tbily@suse.cz>
10885
10886         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
10887
10888 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10889
10890         PR bootstrap/35273
10891         * config.build (build_file_translate): Set to `CMD //c' only if
10892         it works.
10893         * Makefile.in (build_file_translate): Improve comment.
10894
10895 2008-02-21  Jan Hubicka  <jh@suse.cz>
10896
10897         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
10898         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
10899         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
10900
10901 2008-02-21  Michael Matz  <matz@suse.de>
10902
10903         PR target/35264
10904         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
10905
10906 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
10907
10908         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
10909         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
10910         as insn constraint.
10911         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
10912         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
10913         SSE_VEC_FLOAT_MODE_P as insn constraint.
10914         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
10915         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
10916         sse4a_movntdf using MODEF mode iterator.
10917         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
10918         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
10919         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
10920         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
10921         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
10922         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
10923         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
10924
10925 2008-02-21  Richard Guenther  <rguenther@suse.de>
10926
10927         * tree.def (PAREN_EXPR): New tree code.
10928         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
10929         and PAREN_EXPR.
10930         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
10931         * expr.c (expand_expr_real_1): Likewise.
10932         * tree-inline.c (estimate_num_insns_1): Likewise.
10933         * tree-complex.c (expand_complex_move): Likewise.
10934         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
10935         as plain x.
10936
10937 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10938
10939         PR target/35225
10940         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
10941
10942 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10943
10944         PR target/35190
10945         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
10946
10947         * config/sh/sh.c (find_barrier): Don't go past
10948         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
10949
10950 2008-02-20  DJ Delorie  <dj@redhat.com>
10951
10952         * config/h8300/h8300.md (insv): Force source operand to be a register.
10953
10954         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
10955         as a jump, not as a plain insn.
10956         
10957 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
10958
10959         * doc/invoke.texi (Warning Options): Add new option
10960         -Wframe-larger-than=.
10961         (-Wframe-larger-than): Document.
10962
10963         * flags.h (warn_frame_larger_than, frame_larger_than_size):
10964         Add declarations for new option variables.
10965
10966         * final.c (final_start_function): Check the frame size
10967         before emission and issue a Wframe-larger-than warning.
10968
10969         * opts.c (warn_frame_larger_than, frame_larger_than_size):
10970         Add definitions for new option variables.
10971         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
10972
10973         * common.opt (Wframe-larger-than=): New option.
10974
10975 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
10976
10977         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
10978         (<sse>_div<mode>3): Ditto.
10979         (<sse>_vmdiv<mode>3): Ditto.
10980         (<sse>_vmsqrt<mode>2): Ditto.
10981         (*smax<mode>3): Ditto.
10982         (sse5_frcz<mode>2): Ditto.
10983         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
10984         as insn constraint.
10985
10986 2008-02-20  Richard Guenther  <rguenther@suse.de>
10987
10988         PR middle-end/35265
10989         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
10990         be happy with INTEGRAL_TYPE_P.
10991
10992 2008-02-20  Richard Guenther  <rguenther@suse.de>
10993
10994         * fold-const.c (split_tree): Associate floatig-point expressions
10995         if flag_associative_math is set.
10996
10997 2008-02-20  Richard Guenther  <rguenther@suse.de>
10998
10999         * tree.h (fold_real_zero_addition_p): Declare.
11000         * fold-const.c (fold_real_zero_addition_p): Export.
11001         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
11002         floating-point operations with zero and one.
11003
11004 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
11005
11006         * doc/install.texi: Correct references to CFLAGS, replacing them
11007         with BOOT_CFLAGS.  Document flags used during bootstrap for
11008         target libraries.
11009                                 
11010 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11011
11012         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
11013         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
11014         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
11015         insn constraint.
11016         (smin<mode>3): Ditto from similar patterns.
11017         (smax<mode>3): Ditto.
11018         (*ieee_smin<mode>3): Ditto.
11019         (*ieee_smax<mode>3): Ditto.
11020         * config/i386/sse.md (sse): New mode attribute.
11021         (mov<mode>): Macroize expander from movv4sf and movv2df using
11022         SSEMODEF2P mode iterator.
11023         (<sse>_movnt<mode>): Ditto from similar patterns. Use
11024         SSE_VEC_FLOAT_MODE_P as insn constraint.
11025         (storent<mode>): Ditto.
11026         (storent<mode>): Macroize expander from storentsf and storentdf using
11027         MODEF mode iterator.
11028         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
11029         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
11030         (abs<mode>2): Ditto from similar patterns.
11031         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
11032         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
11033         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
11034         (<sse>_vmsqrt<mode>2): Ditto.
11035         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
11036         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
11037         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
11038         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
11039         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
11040         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
11041         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
11042         insn constraint.
11043         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
11044         iterator and SSE_FLOAT_MODE_P as insn constraint.
11045         (<sse>_ucomi): Ditto from similar patterns.
11046         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
11047         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
11048         SSE_VEC_FLOAT_MODE_P as insn constraint.
11049         (vcond<mode>): Ditto from similar patterns.
11050         (and<mode>3, *and<mode>3): Ditto.
11051         (<sse>_nand<mode>3): Ditto.
11052         (ior<mode>3, *ior<mode>3): Ditto.
11053         (xor<mode>3, *xor<mode>3): Ditto.
11054         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
11055         iterator and SSE_FLOAT_MODE_P as insn constraint.
11056         (*nand<mode>3): Ditto from similar patterns.
11057         (*ior<mode>3): Ditto.
11058         (*xor<mode>3): Ditto.
11059
11060 2008-02-20  Ira Rosen  <irar@il.ibm.com>
11061
11062         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
11063         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
11064         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
11065
11066 2008-02-19  Jan Hubicka  <jh@suse.cz>
11067
11068         * predict.c (tree_bb_level_predictions): Remove variable next
11069         mistakely introduced by previous commit.
11070
11071 2008-02-19  Jan Hubicka  <jh@suse.cz>
11072
11073         * predict.c (predict_paths_leading_to): Rewrite.
11074         (predict_paths_for_bb): New.
11075         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
11076
11077 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11078
11079         PR bootstrap/35218
11080         * Makefile.in (build_file_translate): New.
11081         (gcc-vers.texi): Use it for translating $(abs_srcdir).
11082         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
11083         * configure.ac (build_file_translate): Substitute it.
11084         * configure: Regenerate.
11085
11086 2008-02-19  Jan Hubicka  <jh@suse.cz>
11087
11088         PR rtl-optimization/34408
11089         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
11090         invalid sharing.
11091
11092 2008-02-19  Jan Hubicka  <jh@suse.cz>
11093
11094         PR middle-end/28779
11095         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
11096         call_expr.
11097
11098 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
11099
11100         PR Ada/35186
11101         * config/i386/i386-modes.def: Revert the last DI alignment
11102         change until Ada people can look into it.
11103
11104 2008-02-19  Nick Clifton  <nickc@redhat.com>
11105
11106         * opts.c (print_specific_help): Fix typo in --help text.
11107
11108 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
11109
11110         PR target/35239
11111         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
11112         32-bit inline asm without asm alternatives for host GCC < 3.0.
11113
11114 2008-02-19  Richard Guenther  <rguenther@suse.de>
11115
11116         PR tree-optimization/34989
11117         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
11118         Allow propagation to INDIRECT_REF if we can simplify only.
11119
11120 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11121
11122         * c-common.c (warn_for_collisions_1): Use appropriate option when
11123         warning.
11124
11125 2008-02-19  Nick Clifton  <nickc@redhat.com>
11126
11127         PR other/31349
11128         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
11129         (handle_options): Fix indentation.
11130         (print_filtered_help): If no language-specific options were
11131         displayed tell the user how to list all the options supported by
11132         the language's front-end.
11133         (print_specific_help): Fix indentation and remove duplicate line.
11134         (common_handle_option): Handle the -v option.
11135         For --help enable the display of undocumented options if the -v
11136         switch has been included on the command line.
11137         For --help= check for overlaps in the arguments between the option
11138         classes and the language names and issue a warning when they
11139         cannot be disambiguated.
11140         * c.opt (v): Pass on to the common option handler.
11141
11142 2008-02-19  Revital Eres  <eres@il.ibm.com> 
11143
11144         * modulo-sched.c (sms_schedule): Change dump message when
11145         create_ddg function fails.
11146         (try_scheduling_node_in_cycle): Rename row to cycle.
11147         (print_partial_schedule): Rename CYCLE to ROW.
11148
11149 2008-02-19  Christian Bruel  <christian.bruel@st.com>
11150             Zdenek Dvorak  <ook@ucw.cz>
11151
11152         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
11153
11154 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11155
11156         PR target/33555
11157         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
11158         (*x86_movdicc_0_m1_se): Ditto.
11159
11160 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11161
11162         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
11163         (CMPtype): Define as __gcc_CMPtype.
11164         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
11165         (CMPtype): Define as __gcc_CMPtype.
11166
11167 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
11168
11169         Support valgrind 3.3 for --enable-checking=valgrind.
11170         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
11171         here.
11172         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
11173         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
11174         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
11175         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
11176         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
11177         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
11178         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
11179         respectively.
11180         * ggc-zone.c: Similar.
11181         * ggc-page.c: Similar.
11182
11183 2008-02-19  Paul Brook  <paul@codesourcery.com>
11184
11185         PR target/35071
11186         * config/arm/ieee754-df.S: Fix do_it typo.
11187         * config/arm/ieee754-sf.S: Fix do_it typo.
11188
11189 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11190
11191         PR target/35189
11192         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
11193         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
11194         (OPTION_MASK_ISA_SSE_SET): Likewise.
11195         (OPTION_MASK_ISA_SSE2_SET): Likewise.
11196         (OPTION_MASK_ISA_SSE3_SET): Likewise.
11197         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
11198         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
11199         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
11200         (OPTION_MASK_ISA_SSE4_SET): Likewise.
11201         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
11202         (OPTION_MASK_ISA_SSE5_SET): Likewise.
11203         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
11204         (OPTION_MASK_ISA_MMX_UNSET): Updated.
11205         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
11206         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
11207         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
11208         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
11209         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
11210         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
11211         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
11212         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
11213         (OPTION_MASK_ISA_SSE4): Removed.
11214         (ix86_handle_option): Turn on bits in ix86_isa_flags and
11215         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
11216         (override_options): Don't turn on implied SSE/MMX bits in
11217         ix86_isa_flags.
11218
11219 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11220
11221         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11222         32bit host.
11223
11224 2008-02-18  Joey Ye  <joey.ye@intel.com>
11225
11226         PR middle-end/34921
11227         * tree-nested.c (insert_field_into_struct): Set type alignment
11228         to field alignment if the former is less than the latter.
11229
11230 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
11231
11232         * BASE-VER: Set to 4.4.0.
11233
11234 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11235
11236         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
11237         * doc/cfg.texi: Likewise.
11238         * doc/extend.texi: Likewise.
11239         * doc/gty.texi: Likewise.
11240         * doc/invoke.texi: Likewise.
11241         * doc/loop.texi: Likewise.
11242         * doc/md.texi: Likewise.
11243         * doc/passes.texi: Likewise.
11244         * doc/rtl.texi: Likewise.
11245         * doc/sourcebuild.texi: Likewise.
11246         * doc/tm.texi: Likewise.
11247         * doc/tree-ssa.texi: Likewise.
11248
11249 2008-02-17  Richard Guenther  <rguenther@suse.de>
11250
11251         PR middle-end/35227
11252         * tree-complex.c (init_parameter_lattice_values): Handle parameters
11253         without default definition.
11254
11255 2008-02-17  Richard Guenther  <rguenther@suse.de>
11256
11257         PR tree-optimization/35231
11258         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
11259         if A | B != 1.
11260
11261 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
11262
11263         Revert:
11264         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
11265         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11266         libgcc_cmp_return mode.
11267
11268 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11269
11270         PR c/28368
11271         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
11272
11273 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
11274
11275         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
11276         multilibs.
11277
11278 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11279
11280         * doc/c-tree.texi: Use `@.' where appropriate.
11281         * doc/extend.texi: Likewise.
11282         * doc/install.texi: Likewise.
11283         * doc/invoke.texi: Likewise.
11284         * doc/loop.texi: Likewise.
11285         * doc/makefile.texi: Likewise.
11286         * doc/md.texi: Likewise.
11287         * doc/passes.texi: Likewise.
11288         * doc/standards.texi: Likewise.
11289         * doc/tm.texi: Likewise.
11290
11291 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11292
11293         PR middle-end/35196
11294         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
11295         in entry_bb.
11296         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
11297         rather than in entry_bb.
11298
11299 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11300
11301         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11302         libgcc_cmp_return mode.
11303
11304 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11305
11306         PR middle-end/35130
11307         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
11308         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
11309
11310 2008-02-15  Richard Guenther  <rguenther@suse.de>
11311             Zdenek Dvorak  <ook@ucw.cz>
11312
11313         PR tree-optimization/35164
11314         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
11315         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
11316         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
11317         Only propagate addresses which do not have abnormal SSA_NAMEs
11318         in their operands.
11319
11320 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
11321
11322         PR target/35088
11323         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
11324
11325 2008-02-15  Jan Hubicka  <jh@suse.cz>
11326
11327         PR middle-end/35149
11328         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
11329
11330 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11331
11332         PR middle-end/34621
11333         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
11334         when calculating alignment_pad.
11335
11336 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11337
11338         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
11339         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
11340         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
11341         and STACK_BOUNDARY define.
11342
11343 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
11344
11345         PR preprocessor/35061
11346         * c-pragma.c (handle_pragma_pop_macro): Check that
11347         pushed_macro_table has been allocated.
11348
11349 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11350
11351         PR middle-end/35136
11352         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
11353         (force_gimple_operand): Likewise.
11354         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
11355         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
11356         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
11357         (find_interesting_uses_address): Check addressability and alignment
11358         of the base expression only after substituting bases of IVs into it.
11359
11360 2008-02-14  Michael Matz  <matz@suse.de>
11361
11362         PR target/34930
11363         * function.c (instantiate_virtual_regs_in_insn): Reload address
11364         before falling back to reloading the whole operand.
11365
11366 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11367
11368         * config/s390/s390.c (s390_mainpool_start): Emit the pool
11369         before the first section switch note.
11370
11371 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11372
11373         * doc/bugreport.texi: Update copyright years.
11374         * doc/c-tree.texi: Likewise.
11375         * doc/cfg.texi: Likewise.
11376         * doc/cpp.texi: Likewise.
11377         * doc/cppinternals.texi: Likewise.
11378         * doc/fragments.texi: Likewise.
11379         * doc/frontends.texi: Likewise.
11380         * doc/gcc.texi: Likewise.
11381         * doc/gty.texi: Likewise.
11382         * doc/hostconfig.texi: Likewise.
11383         * doc/implement-c.texi: Likewise.
11384         * doc/libgcc.texi: Likewise.
11385         * doc/loop.texi: Likewise.
11386         * doc/makefile.texi: Likewise.
11387         * doc/options.texi: Likewise.
11388         * doc/passes.texi: Likewise.
11389         * doc/rtl.texi: Likewise.
11390         * doc/sourcebuild.texi: Likewise.
11391         * doc/standards.texi: Likewise.
11392         * doc/tree-ssa.texi: Likewise.
11393         * doc/trouble.texi: Likewise.
11394
11395         * doc/extend.texi: Use @: or add comma where appropriate.
11396         * doc/invoke.texi: Likewise.
11397         * doc/tm.texi: Likewise.
11398
11399 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
11400
11401         PR target/34393
11402         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
11403         to a reg.
11404
11405 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
11406
11407         * doc/md.texi (clz, ctz): Add reference.
11408         * doc/rtl.texi (clz, ctz): Likewise.
11409
11410 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11411
11412         PR other/35148
11413         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
11414         srcdir.
11415
11416 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
11417
11418         * config/s390/s390.c (struct constant_pool): New field
11419         emit_pool_after added.
11420         (s390_mainpool_start): Set the emit_pool_after flag according
11421         to the section switch notes.
11422         (s390_mainpool_finish): Consider emit_pool_after when emitting
11423         the literal pool at the end of the function.
11424         (s390_chunkify_start): Force literal pool splits at section
11425         switch notes.
11426
11427 2008-02-13  Michael Matz  <matz@suse.de>
11428
11429         PR debug/35065
11430         * var-tracking.c (clobber_variable_part): Correctly traverse the
11431         list.
11432
11433 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11434
11435         PR 29673
11436         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
11437         Add -fdump-ipa-inline.
11438         * tree-dump.c (dump_files): Remove tree-inlined dump.
11439         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
11440         
11441 2008-02-12  Richard Guenther  <rguenther@suse.de>
11442
11443         PR tree-optimization/35171
11444         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
11445         default defs.
11446
11447 2008-02-12  Richard Guenther  <rguenther@suse.de>
11448
11449         PR middle-end/35163
11450         * fold-const.c (fold_widened_comparison): Use get_unwidened in
11451         value-preserving mode.  Disallow final truncation.
11452
11453 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
11454
11455         PR middle-end/35136
11456         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
11457         code from here to...
11458         (force_gimple_operand): ...here.
11459
11460 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
11461
11462         PR c++/35144
11463         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
11464         non-compatible pointers.
11465         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
11466         different FIELD_DECLs, try harder by comparing field offsets, sizes
11467         and types.
11468
11469         PR inline-asm/35160
11470         * function.c (match_asm_constraints_1): Don't replace the same input
11471         multiple times.
11472
11473 2008-02-12  Anatoly Sokolov <aesok@post.ru>
11474
11475         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
11476         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
11477         (expand_epilogue): Restore RAMPZ register.
11478         * config/avr/avr.md (RAMPZ_ADDR): New constant.
11479
11480 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
11481
11482         * config/i386/cygwin.asm: (__alloca): Correct calling
11483         convention and alignment.
11484         (__chkstk): Force 8 byte stack alignment.
11485
11486 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
11487             Richard Guenther  <rguenther@suse.de>
11488
11489         PR tree-optimization/33992
11490         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
11491         the zero we compare against.
11492
11493 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
11494
11495         PR libfortran/35063
11496         * gthr-win32.h (__gthread_mutex_destroy_function): New function
11497         to CloseHandle after unlocking to prevent accumulation of handle
11498         count.
11499
11500 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11501
11502         PR middle_end/34150
11503         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
11504         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
11505         and update LABEL_NUSES during and after reload.
11506
11507 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
11508
11509         PR middle-end/34627
11510         * combine.c (simplify_if_then_else): Make sure the comparison is
11511         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
11512
11513 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11514
11515         PR bootstrap/35051
11516         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
11517         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
11518         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
11519         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
11520         * tree.h (get_type_static_bounds): Likewise.
11521
11522 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11523
11524         * doc/invoke.texi (Option Summary, C++ Dialect Options)
11525         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11526         Make -Wfoo language annotations match what the compiler outputs.
11527
11528 2008-02-08  Sa Liu  <saliu@de.ibm.com>
11529
11530         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
11531         intrinsics spu_convts, spu_convtu, spu_convtf.
11532
11533 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
11534
11535         * doc/extend.texi (Function Attributes) <noinline>: Mention
11536         asm ("") as method to keep calls.
11537
11538 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11539
11540         PR other/32754
11541         * doc/options.texi (Options): Replace references to opts.sh with
11542         optc-gen.awk.
11543         * opts-common.c: Likewise.
11544         * optc-gen.awk: Likewise.
11545         
11546 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
11547
11548         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
11549
11550 2008-02-07  Richard Henderson  <rth@redhat.com>
11551
11552         PR rtl-opt/33410
11553         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
11554         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
11555         funny mode.
11556
11557 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
11558
11559         PR tree-optimization/35085
11560         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
11561         for operand entry oe2 in addition to operand entry oe3 in order to
11562         expose more opportunities for vectorizer sum reduction.
11563
11564 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11565
11566         PR other/35107
11567         * Makefile.in (LIBS): Remove $(GMPLIBS).
11568         (cc1-dummy, cc1): Add $(GMPLIBS).
11569
11570 2008-02-06  Jan Hubicka  <jh@suse.cz>
11571
11572         PR target/23322
11573         * i386.md (moddf_integer): Do not produce partial memory stalls for
11574         targets where it hurts.
11575
11576 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
11577
11578         PR target/35083
11579         * optabs.c (expand_float): Do not check for decimal modes when
11580         expanding unsigned integer through signed conversion.
11581
11582 2008-02-06  Nick Clifton  <nickc@redhat.com>
11583
11584         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
11585         inside the clobber with a match_operand and duplicated operand
11586         number in the constraint.
11587         (ineqbranchsi): Delete redundant comment.
11588
11589 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
11590
11591         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
11592         builtin_define ("__USE_INIT_FINI__").
11593         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
11594         -msx multilibs.
11595         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
11596
11597 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11598
11599         PR documentation/30330
11600         * doc/invoke.texi (C++ Dialect Options)
11601         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11602         For each warning option -Wfoo that allows -Wno-foo, ensure both
11603         -Wfoo and -Wno-foo are listed in the option index.  Fix index
11604         entry of -Wswitch-default, index -Wnormalized= including the
11605         `=', and -Wlarger-than-@var{len} including @var{len}.
11606
11607 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
11608
11609         * config/i386/i386.md (floatunssisf2): Use
11610         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
11611         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
11612         Macroize expander using MODEF mode iterator.
11613
11614 2008-02-05  Diego Novillo  <dnovillo@google.com>
11615
11616         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
11617
11618         PR 33738
11619         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
11620
11621 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11622
11623         PR other/35070
11624         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
11625
11626 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
11627
11628         PR target/35084
11629         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
11630         to indicate if a message should be generated.
11631         (init_cumulative_args): Updated.
11632         (function_value_32): Likewise.
11633
11634 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
11635
11636         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
11637
11638 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
11639
11640         PR target/35083
11641         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
11642         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
11643
11644 2008-02-04  Diego Novillo  <dnovillo@google.com>
11645
11646         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
11647
11648         PR 33738
11649         * tree-vrp.c (vrp_evaluate_conditional): With
11650         -Wtype-limits, emit a warning when comparing against a
11651         constant outside the natural range of OP0's type.
11652
11653 2008-02-04  Richard Guenther  <rguenther@suse.de>
11654
11655         PR middle-end/33631
11656         * expr.c (count_type_elements): Give for unions instead of
11657         guessing.
11658
11659 2008-02-04  Richard Guenther  <rguenther@suse.de>
11660
11661         PR middle-end/35043
11662         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
11663         to TYPE_DOMAINs base type instead of using bitsizetype here.
11664
11665 2008-02-03  Jason Merrill  <jason@redhat.com>
11666
11667         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
11668
11669 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11670
11671         PR other/29972
11672         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
11673         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
11674         (RS/6000 and PowerPC Options): Fix typos and markup.
11675         * doc/passes.texi (Tree-SSA passes): Likewise.
11676
11677 2008-02-02  Michael Matz  <matz@suse.de>
11678
11679         PR target/35045
11680         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
11681         from record_last_reg_set_info.
11682         (record_last_reg_set_info): Take an RTX argument, iterate over all
11683         constituent hardregs.
11684         (record_last_set_info, record_opr_changes): Change calls to
11685         new signature or to record_last_reg_set_info_regno.
11686
11687 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
11688
11689         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
11690
11691 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
11692
11693         PR rtl-optimization/34773
11694         * reg-notes.def (EQUAL): Mention significance of combination of
11695         REG_EQUAL and REG_RETVAL.
11696         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
11697         insn that has a REG_RETVAL.
11698
11699 2008-02-01  Roger Sayle  <roger@eyesopen.com>
11700
11701         PR bootstrap/33781
11702         * configure.ac (--enable-fixed-point): Disable unless explicitly
11703         requested on IRIX.
11704         * configure: Regenerate.
11705
11706 2008-02-01  Richard Guenther  <rguenther@suse.de>
11707
11708         PR other/35042
11709         * invoke.texi (-finline-limit): Remove no longer true parts
11710         of the documentation.  Note that there is no default value.
11711
11712 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
11713             Mark Mitchell  <mark@codesourcery.com>
11714             Ben Elliston  <bje@au.ibm.com>
11715
11716         PR c/29326
11717         * doc/extend.texi (Other Builtins): Document.
11718
11719 2008-01-31  Tom Browder <tom.browder@gmail.com>
11720
11721         * doc/c-tree.texi (Types): Fix grammar.
11722         (Expression trees): Ditto.
11723         * doc/passes.texi (Tree-SSA passes): Ditto.
11724         
11725         * doc/configterms.texi (Configure Terms): Fix typo.
11726         * doc/cpp.texi (Common Predefined Macros): Ditto.
11727         * doc/md.texi (Machine Constraints): Ditto.
11728         
11729         * doc/makefile.texi (Makefile): Add comma.
11730
11731 2008-01-31  Tom Browder  <tom.browder@gmail.com>
11732             Gerald Pfeifer  <gerald@pfeifer.com>
11733         
11734         * doc/sourcebuild.texi (Front End): Remove references to CVS
11735         and CVSROOT/modules.
11736         (Texinfo Manuals): Replace reference to CVS by one to SVN.
11737         (Back End): Remove reference to CVS.
11738
11739 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
11740
11741         PR target/34900
11742         * config/mips/mips.c (gen_load_const_gp): New function, taking a
11743         comment from...
11744         (mips16_gp_pseudo_reg): ...here.
11745         * config/mips/mips.md (load_const_gp): Replace with...
11746         (load_const_gp_<mode>): ...this :P-based insn.
11747
11748 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11749
11750         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
11751         options. Minor fixes.
11752         (-std): Move reference to standards closer to where language
11753         standards are first mentioned.
11754         
11755 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
11756
11757         PR rtl-optimization/34995
11758         * reload.c (alternative_allows_const_pool_ref): Take an rtx
11759         parameter and return a bool.  If the rtx parameter is nonnull,
11760         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
11761         (find_reloads): Update call accordingly.  Pass the new operand
11762         if it needed no address reloads, otherwise pass null.
11763
11764 2008-01-30  Richard Henderson  <rth@redhat.com>
11765
11766         PR c/34993
11767         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
11768         for unbounded arrays.
11769
11770 2008-01-30  Silvius Rus  <rus@google.com>
11771
11772         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
11773
11774 2008-01-30  Jan Hubicka  <jh@suse.cz>
11775
11776         PR target/34982
11777         * i386.c (init_cumulative_args): Use real function declaration when
11778         calling locally.
11779
11780 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
11781
11782         PR rtl-optimization/34998
11783         * global.c (build_insn_chain): Treat non-subreg_lowpart
11784         SUBREGs of pseudos as clobbering all the words covered by the
11785         SUBREG, not just all the bytes.
11786         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
11787         original df_ref rather than an extract parameter.
11788         (global_conflicts): Update call accordingly.
11789
11790 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
11791
11792         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
11793         the overflow check to make it easier to read.
11794         (__fixtfdi): Change the type of the ll member in union
11795         long_double to UDItype_x.
11796
11797 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
11798
11799         PR middle-end/34969
11800         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
11801         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
11802         * tree-inline.c (fold_marked_statements): Call
11803         cgraph_update_edges_for_call_stmt if folding a call statement.
11804         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
11805         debug_generic_stmt calls, reset it back afterwards.
11806
11807         PR c/35017
11808         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
11809         static decls.
11810         * c-typeck.c (build_external_ref): Don't pedwarn about
11811         static vars in current function's scope.
11812
11813 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
11814
11815         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
11816
11817 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
11818
11819         PR c/35002
11820         * ipa-struct-reorg.c: Fix spelling.
11821         * params.def: Ditto.
11822
11823 2008-01-29  Richard Guenther  <rguenther@suse.de>
11824
11825         PR middle-end/35006
11826         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
11827         field.
11828         * tree-inline.c (remap_type): Increment remapping_type_depth
11829         around remapping types.
11830         (copy_body_r): Only add referenced variables if they are referenced
11831         from code, not types.
11832
11833 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
11834
11835         PR c++/34055
11836         PR c++/34103
11837         PR c++/34219
11838         PR c++/34606
11839         PR c++/34753
11840         PR c++/34754
11841         PR c++/34755
11842         PR c++/34919
11843         PR c++/34961
11844         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
11845         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
11846
11847 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
11848
11849         PR target/34412
11850         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
11851         pointer for tiny stack.
11852
11853 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
11854
11855         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
11856
11857 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
11858
11859         * config/vx-common.h: Fix typo in comment.
11860
11861 2008-01-28  Ian Lance Taylor  <iant@google.com>
11862
11863         PR c++/34862
11864         PR c++/33407
11865         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11866         coalesce pointers if they have different DECL_NO_TBAA_P values.
11867         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
11868         between variables with different DECL_NO_TBAA_P values.
11869
11870 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
11871
11872         PR 31535
11873         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
11874         are not legitimate small data references on SPE targets.
11875
11876 2008-01-28  David Daney  <ddaney@avtrex.com>
11877
11878         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
11879
11880 2008-01-28  David Daney  <ddaney@avtrex.com>
11881
11882         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
11883
11884 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
11885
11886         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
11887         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
11888         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
11889         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
11890         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
11891         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
11892         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
11893         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
11894
11895 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11896
11897         * basic-block.h (condjump_equiv_p): Fix comment.
11898
11899 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11900
11901         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
11902         print_generic_stmt_indented): Fix comment.
11903
11904 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11905
11906         * configure.ac (__stack_chk_fail): Add detecion for availability
11907         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
11908         * configure: Regenerate.
11909
11910 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
11911
11912         PR middle-end/34688
11913         * final.c (output_addr_const): Handle TRUNCATE.
11914
11915 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
11916
11917         PR target/34711
11918         * tree-ssa-loop-ivopts.c (comp_cost): New type.
11919         (zero_cost, infinite_cost): New constants.
11920         (struct cost_pair): Change type of cost to comp_cost.
11921         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
11922         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
11923         New functions.
11924         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
11925         split_address_cost, ptr_difference_cost, difference_cost,
11926         get_computation_cost_at, get_computation_cost,
11927         determine_use_iv_cost_generic, determine_use_iv_cost_address,
11928         determine_use_iv_cost_condition, determine_use_iv_costs,
11929         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
11930         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
11931         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
11932         Change type of cost to comp_cost.
11933         (determine_iv_cost): Increase cost of non-original ivs, instead
11934         of decreasing the cost of original ones.
11935         (get_address_cost): Indicate the complexity of the addressing mode 
11936         in comp_cost.
11937         (try_add_cand_for): Prefer using ivs not specific to some object.
11938         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
11939
11940 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
11941             Janis Johnson  <janis187@us.ibm.com>
11942
11943         PR target/34814
11944         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
11945         (TARGET_INSTANTIATE_DECLS): Likewise.
11946         * target.h (expand_to_rtl_hook): New target hook.
11947         (instantiate_decls): Likewise.
11948         * function.c (instantiate_decl): Make non-static.  Rename to...
11949         (instantiate_decl_rtl): ... this.
11950         (instantiate_expr): Use instantiate_decl_rtl.
11951         (instantiate_decls_1): Likewise.
11952         (instantiate_decls): Likewise.
11953         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
11954         * function.h (instantiate_decl_rtl): Add prototype.
11955         * cfgexpand.c (target.h): New include.
11956         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
11957         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
11958         (TARGET_INSTANTIATE_DECLS): Likewise.
11959         (TARGET_INITIALIZER): New target hooks added.
11960         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
11961         New prototype.
11962         * config/rs6000/rs6000.c (tree-flow.h): New include.
11963         (machine_function): Add sdmode_stack_slot field.
11964         (rs6000_alloc_sdmode_stack_slot): New function.
11965         (rs6000_instantiate_decls): Likewise.
11966         (rs6000_secondary_memory_needed_rtx): Likewise.
11967         (rs6000_check_sdmode): Likewise.
11968         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
11969         (TARGET_INSTANTIATE_DECLS): Likewise.
11970         (rs6000_hard_regno_mode_ok): Allow SDmode.
11971         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
11972         (rs6000_emit_move): Handle SDmode.
11973         (function_arg_advance): Likewise.
11974         (function_arg): Likewise.
11975         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
11976         SDmode var args for 32-bit compiles.
11977         (rs6000_secondary_reload_class): Handle SDmode.
11978         (rs6000_output_function_epilogue): Likewise.
11979         (rs6000_function_value): Simplify if statement.
11980         (rs6000_libcall_value): Likewise.
11981         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
11982         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
11983         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
11984         (movsd_hardfloat): New define_insn.
11985         (movsd_softfloat): Likewise.
11986         (movsd_store): Likewise.
11987         (movsd_load): Likewise.
11988         (extendsddd2): Likewise.
11989         (extendsdtd2): Likewise.
11990         (truncddsd2): Likewise.
11991         (movdd_hardfloat64): Fixup comment.
11992         (UNSPEC_MOVSD_LOAD): New constant.
11993         (UNSPEC_MOVSD_STORE): Likewise.
11994
11995 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
11996
11997         PR c++/34965
11998         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
11999         TRUTH_XOR_EXPR.
12000         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
12001         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
12002         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
12003         and TRUTH_XOR_EXPR.
12004
12005 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
12006
12007         PR target/34794
12008         * config.gcc: Separate AIX 5.3 from AIX 6.1.
12009         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
12010         __LONGDOUBLE128 too.
12011         * config/rs6000/aix61.h: New file.
12012
12013 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12014
12015         PR rtl-optimization/34959
12016         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
12017         popcount and parity rtxes the same mode as their operand.
12018         Truncate or extend the result to the return value's mode
12019         if necessary.
12020
12021 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12022
12023         PR target/34981
12024         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
12025         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
12026         to GOT_VERSION_REGNUM.
12027         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
12028         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
12029         * config/mips/mips.c (mips_emit_call_insn): New function.
12030         (mips_call_tls_get_addr): Call mips_expand_call directly.
12031         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
12032         emit_call_insn.
12033         (mips16_build_call_stub): Likewise.  Return the call insn or null.
12034         (mips_expand_call): Update the call to mips16_build_call_stub
12035         accordingly and a remove redundant condition.  Assert that MIPS16
12036         stubs do not use lazy binding.  Use mips_emit_call_insn and return
12037         the call insn.
12038         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
12039         TARGET_USE_GOT.
12040         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
12041         (mips_avoid_hazard): Remove hazard_set handling.
12042         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
12043         (UNSPEC_RESTORE_GP): ...this.
12044         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
12045         (FAKE_CALL_REGNO): Rename to...
12046         (GOT_VERSION_REGNUM): ...this.
12047         (type): Add "ghost" value.  Add an associated insn reservation.
12048         (hazard_set): Remove.
12049         (exception_receiver): Rename to...
12050         (restore_gp): ...this and update the unspec identifier accordingly.
12051         (exception_receiver, nonlocal_got_receiver): New expanders.
12052         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
12053         FAKE_CALL_REGNO.  Remove hazard_set attribute.
12054         (set_got_version, update_got_version): New patterns.
12055
12056 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
12057
12058         PR target/34970
12059         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
12060
12061 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12062
12063         PR other/31955
12064         * doc/install.texi2html: Generate gcc-vers.texi.
12065
12066 2008-01-25  DJ Delorie  <dj@redhat.com>
12067
12068         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12069
12070 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12071
12072         * config/c4x: Remove directory.
12073         * config.gcc (crx-*, mt-*): Mark obsolete.
12074         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
12075         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
12076         sh-*-rtemscoff*): Remove cases.
12077         * defaults.h (C4X_FLOAT_FORMAT): Remove.
12078         * real.c (encode_c4x_single, decode_c4x_single,
12079         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
12080         c4x_extended_format): Remove.
12081         * real.h (c4x_single_format, c4x_extended_format): Remove.
12082         * doc/extend.texi (interrupt, naked): Remove mention of attributes
12083         on C4x.
12084         (Pragmas): Remove comment about c4x pragmas.
12085         * doc/install.texi (c4x): Remove target-specific instructions.
12086         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
12087         * doc/md.texi (Machine Constraints): Remove C4x documentation.
12088         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
12089         refer to C4x source files as examples.
12090         (C4X_FLOAT_FORMAT): Remove documentation.
12091
12092 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
12093
12094         * config/bfin/bfin.c (override_options): Reorder tests so that
12095         flag_pic gets enabled for -msep-data.
12096
12097 2008-01-25  Richard Guenther  <rguenther@suse.de>
12098
12099         PR middle-end/32244
12100         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
12101         to its bitfield precision if required.
12102
12103 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12104
12105         PR middle-end/33880
12106         * tree-nested.c (walk_omp_for): New function.
12107         (convert_nonlocal_reference, convert_local_reference): Call
12108         walk_omp_for on OMP_FOR.
12109         (convert_call_expr): Call walk_body on OMP_FOR's
12110         OMP_FOR_PRE_INIT_BODY.
12111
12112 2008-01-25  Richard Guenther  <rguenther@suse.de>
12113
12114         PR tree-optimization/34966
12115         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
12116         default defs and PHI_NODEs we have to insert after the
12117         defining statement.
12118
12119 2008-01-24  Nick Clifton  <nickc@redhat.com>
12120
12121         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
12122         Provide a default definition.
12123         (LIBGCC2_UNITS_PER_WORD): Likewise.
12124
12125         * config/stormy16/stormy16.c: Include df.h for the prototype
12126         for df_regs_ever_live_p.
12127         (xstormy16_expand_builtin_va_start): Convert the stack offset
12128         into a component_ref and then use POINTER_PLUS_EXPR to add it
12129         to the incoming_virtual_args_rtx.
12130         (xstormy16_gimplify_va_arg_expr): Rename to
12131         xstormy16_gimplify_va_arg_expr.
12132         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
12133         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
12134         xstormy16_gimplify_va_arg_expr.
12135         Fix up some formatting issues.
12136
12137         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
12138         Move to predicates.md.
12139         (xs_hi_general_operand): Likewise.
12140         (xs_hi_nonmemory_operand): Likewise.
12141         * config/stormy16/predicates.md:
12142         (xstormy16_carry_plus_operand): New predicate.
12143         (xs_hi_general_operand): New predicate.
12144         (xs_hi_nonmemory_operand): New predicate.
12145         * config/stormy16/stormy16-protos.h:
12146         (xstormy16_carry_plus_operand): Delete prototype.
12147         (xs_hi_general_operand): Likewise.
12148         (xs_hi_nonmemory_operand): Likewise.
12149
12150         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
12151         modifiers as they are no longer needed and they can trigger
12152         reload spill failures.
12153
12154         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
12155         with a match_operand in order to help reload.
12156
12157         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
12158         constraint with 'e' for the 8th alternative as this version of
12159         the mov.w instruction only accepts the lower 8 registers.
12160
12161 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
12162
12163         PR target/34856
12164         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
12165         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
12166         vector elements.
12167
12168 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12169
12170         PR middle-end/33333
12171         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
12172
12173 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12174
12175         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
12176         New functions.
12177         (remove_structure): Update allocations list before removing structure.
12178         
12179 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12180
12181         * ipa-struct-reorg.c (is_safe_cond_expr, 
12182         create_new_stmts_for_cond_expr): Use integer_zerop function,
12183         that recognize not only zero-pointer, but zero-integer too.
12184
12185 2008-01-25  Ben Elliston  <bje@au.ibm.com>
12186
12187         PR other/22232
12188         * fixproto: Escape "." in sed expression that strips leading "./".
12189
12190 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12191
12192         PR driver/34904
12193         * gcc.c (SWITCH_OK): Removed.
12194         (SWITCH_LIVE): Changed to bit.
12195         (SWITCH_FALSE): Likewise.
12196         (SWITCH_IGNORE): Likewise.
12197         (switchstr): Change live_cond to unsigned int.
12198         (process_command): Replace SWITCH_OK with 0.
12199         (do_self_spec): Likewise.
12200         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
12201         (give_switch): Likewise.
12202         (used_arg): Likewise.
12203         (do_spec_1): Set the SWITCH_IGNORE bit.
12204         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
12205         bits.  Set the SWITCH_LIVE bit.
12206
12207 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
12208
12209         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
12210
12211 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
12212
12213         PR tree-optimization/34472
12214         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
12215         parameter to a "bool *" and set *DATA to false if there is
12216         an unsafe access.  Do not delete the structure here.
12217         (check_cond_exprs): Delete it here instead.
12218         (check_cond_exprs, exclude_cold_structs): Do not increase
12219         I when removing a structure.
12220
12221 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
12222
12223         PR target/34856
12224         * config/i386/i386.c (ix86_expand_vector_init): Consider only
12225         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
12226
12227 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
12228
12229         PR middle-end/34934
12230         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
12231         a fixed vector for stack.
12232
12233 2008-01-24  Ben Elliston  <bje@au.ibm.com>
12234
12235         PR c++/25701
12236         * doc/gcc.texi (Software development): Add a direntry for g++.
12237         
12238 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
12239
12240         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
12241         stale and straggling -fforce-addr comments above.
12242
12243         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
12244         define.
12245         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
12246         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
12247
12248 2008-01-23  Michael Matz  <matz@suse.de>
12249
12250         PR debug/34895
12251         * dwarf2out.c (force_type_die): Use modified_type_die instead of
12252         gen_type_die.
12253
12254 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
12255
12256         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
12257         malloc result type.
12258
12259 2008-01-23 Anatoly Sokolov <aesok@post.ru>
12260
12261         * config/avr/avr.c (avr_current_arch): New variable.
12262         (avr_arch_types): Add 'avr31' and 'avr51' entries.
12263         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
12264         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
12265         (avr_override_options): Init 'avr_current_arch'. 
12266         (base_arch_s): Move from here...
12267         * config/avr/avr.h (base_arch_s): ... here. Add new members 
12268         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
12269         'mega' to 'have_jmp_call'.
12270         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
12271         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
12272         macros.
12273         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
12274         architectures.
12275         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
12276         MULTILIB_MATCHES): (Ditto.).
12277
12278 2008-01-23  Richard Guenther  <rguenther@suse.de>
12279
12280         PR middle-end/31529
12281         * cgraphunit.c (cgraph_reset_node): Always mark the node
12282         not reachable if it is not queued already.
12283
12284 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
12285
12286         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
12287         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
12288         (cputype_selected): New static variable.
12289         (bfin_handle_option): Set it if -mcpu is used.
12290         (override_option): Select default set of workarounds if no cpu type
12291         selected on the command line.
12292         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
12293
12294         From  Michael Frysinger  <michael.frysinger@analog.com>
12295         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
12296         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
12297
12298         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
12299         for bf547, bf523, bf524, and bf526.
12300         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
12301         bf526.
12302         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
12303         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
12304         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
12305         __ADSPBF547__ and __ADSPBF54x__ for bf547.
12306         * doc/invoke.texi (Blackfin Options): Document that
12307         -mcpu now accept bf547, bf523, bf524, and bf526.
12308
12309 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
12310
12311         PR rtl-optimization/34628
12312         * combine.c (try_combine): Stop and undo after the first combination
12313         if an autoincrement side-effect on the first insn has effectively
12314         been lost.
12315
12316 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
12317
12318         PR target/34529
12319         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
12320         Offset addresses are not valid for Altivec or paired float modes.
12321
12322 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
12323
12324         PR c++/34607
12325         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
12326         if DECL_INITIAL (decl) is error_mark_node.
12327
12328         PR c++/34914
12329         * c-common.c (handle_vector_size_attribute): Only allow
12330         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
12331         the same way as pointer, array etc. types.
12332         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
12333
12334         PR c++/34917
12335         * tree.c (build_type_attribute_qual_variant): Call
12336         build_qualified_type if attributes are equal, but quals are not.
12337
12338 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12339
12340         PR 32102
12341         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
12342         * flags.h (warn_strict_aliasing): Remove.
12343         (warn_strict_overflow): Remove.
12344         * opts.c (warn_strict_aliasing): Remove.
12345         (warn_strict_overflow): Remove.
12346         * c-opts.c (c_common_handle_option): -Wall only sets
12347         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
12348         (c_common_post_options): Give default values to -Wstrict-aliasing
12349         and -Wstrict-overflow if they are uninitialized.
12350         * common.opt (Wstrict-aliasing): Specify Var and Init.
12351         (Wstrict-overflow): Likewise.
12352
12353 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
12354
12355         PR rtl-optimization/26854
12356         PR rtl-optimization/34400
12357         PR rtl-optimization/34884
12358         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
12359         DF_RD->gen.
12360         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
12361         (df_rd_bb_info.expanded_lr_out): Deleted
12362         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
12363         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
12364         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12365         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12366         Removed code to allocate, initialize or free expanded_lr_out.
12367         (df_rd_bb_local_compute_process_def): Restructured to make more
12368         understandable.
12369         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
12370         sets if the sets are being trimmed.
12371
12372 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
12373
12374         PR bootstrap/32287
12375         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
12376         (as_vers): Likewise.
12377         * configure: Regenerated.
12378
12379 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12380
12381         PR middle-end/33092
12382         * tree-pass.h (pass_build_alias): New pass.
12383         * tree-ssa-alias.c (gate_build_alias): New.
12384         (pass_build_alias): New.
12385         * passes.c (init_optimization_passes): Add pass_build_alias after
12386         pass_create_structure_vars.
12387
12388 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
12389
12390         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
12391         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
12392         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
12393         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
12394         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
12395         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
12396         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
12397         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
12398         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
12399         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
12400         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
12401         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
12402         * config/s390/s390.md (FP_ALL): New mode iterator.
12403         (_d): New mode attribute.
12404         ("*signbit<mode>2>"): Changed mode of first operand.
12405         ("isinf<mode>2"): Changed mode of first operand.
12406         ("*TDC_insn"): Adaptation for DFP modes.
12407
12408 2008-01-22  Ben Elliston  <bje@au.ibm.com>
12409
12410         * tree.c (check_qualified_type): Improve function description.
12411
12412 2008-01-21  Jason Merrill  <jason@redhat.com>
12413
12414         PR c++/34196
12415         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
12416         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
12417         if it is set.
12418
12419 2008-01-21  DJ Delorie  <dj@redhat.com>
12420
12421         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
12422         return zero.
12423
12424 2008-01-21  Richard Guenther  <rguenther@suse.de>
12425
12426         PR middle-end/34856
12427         * tree-cfg.c (verify_expr): Allow all invariant expressions
12428         instead of just constant class ones as reference argument.
12429         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
12430         like any other constant.
12431         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12432
12433 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
12434
12435         * regmove.c (fixup_match_1): Update call crossed frequencies.
12436
12437 2008-01-21  Richard Guenther  <rguenther@suse.de>
12438
12439         PR c/34885
12440         * tree-inline.c (setup_one_parameter): Deal with mismatched
12441         types using a VIEW_CONVERT_EXPR.
12442
12443 2008-01-21  Alon Dayan  <alond@il.ibm.com>
12444             Olga Golovanevsky  <olga@il.ibm.com>
12445         
12446         PR tree-optimization/34701
12447         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
12448         when the structure size is not a power of 2.
12449
12450 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12451
12452         * doc/install.texi: Add doc for --enable-checking=df.
12453         
12454 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12455
12456         PR rtl-optimization/34808
12457         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
12458
12459 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12460
12461         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
12462         input.
12463
12464 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
12465
12466         PR rtl-optimization/26854
12467         PR rtl-optimization/34400
12468         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
12469         DF_RD->gen.
12470         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
12471         (df_rd_bb_info.expanded_lr_out): New.
12472         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
12473         * loop_iv.c (iv_analysis_loop_init): Ditto.
12474         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12475         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12476         Added code to allocate, initialize or free expanded_lr_out.
12477         (df_rd_bb_local_compute_process_def): Restructured to make
12478         more understandable.
12479         (df_rd_confluence_n): Add code to do nothing with fake edges and
12480         code to no apply invalidate_by_call sets if the sets are being trimmed.
12481         (df_lr_local_finalize): Renamed to df_lr_finalize.
12482         (df_live_local_finalize): Renamed to df_live_finalize.
12483
12484 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12485
12486         PR target/34831
12487         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
12488         deciding whether to use reciprocal instructions.
12489
12490 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
12491
12492         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
12493         dwarf2out_note_section_used if cold_text_section is NULL.
12494
12495 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
12496
12497         PR gcov-profile/34610
12498         * tree-cfg.c (make_edges): Mark both outgoing edges from
12499         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
12500         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
12501         from OMP_FOR and OMP_CONTINUE outgoing edges.
12502
12503         * tree-profile.c (tree_profiling): Return early if
12504         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
12505         at the end.
12506         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
12507         from cfun to child_cfun.
12508         * function.h (struct function): Add after_tree_profile bit.
12509
12510 2008-01-19 Anatoly Sokolov <aesok@post.ru>
12511
12512         * config/avr/avr.S (_exit): Disable interrupt.
12513
12514 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
12515             Steven Bosscher  <stevenb.gcc@gmail.com>
12516
12517         PR rtl-optimization/26854
12518         PR rtl-optimization/34400
12519         * df-problems.c (df_live_scratch): New scratch bitmap.
12520         (df_live_alloc): Allocate df_live_scratch when doing df_live.
12521         (df_live_reset): Clear the proper bitmaps.
12522         (df_live_bb_local_compute): Only process the artificial defs once
12523         since the order is not important.
12524         (df_live_init): Init the df_live sets only with the variables
12525         found live by df_lr.
12526         (df_live_transfer_function): Use the df_lr sets to prune the
12527         df_live sets as they are being computed.  
12528         (df_live_free): Free df_live_scratch.
12529
12530 2008-01-18  Ian Lance Taylor  <iant@google.com>
12531
12532         * common.opt: Add fmerge-debug-strings.
12533         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
12534         flag_merge_debug_strings rather than flag_merge_constants.
12535         * doc/invoke.texi (Option Summary): Mention
12536         -fmerge-debug-strings.
12537         (Debugging Options): Document -fmerge-debug-strings.
12538
12539 2008-01-18  Ian Lance Taylor  <iant@google.com>
12540
12541         PR c++/33407
12542         * tree.h (DECL_IS_OPERATOR_NEW): Define.
12543         (struct tree_function_decl): Add new field operator_new_flag.
12544         * tree-inline.c (expand_call_inline): When inlining a call to
12545         operator new, force the return value to go into a variable, and
12546         set DECL_NO_TBAA_P on that variable.
12547         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
12548
12549 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
12550
12551         PR debug/34484
12552         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
12553         DWARF2_DEBUGGING_INFO.
12554         (dwarf2out_note_section_used): Ditto.  Add prototype.
12555         (have_multiple_function_sections, text_section_used,
12556         cold_text_section_used, *cold_text_sections): Move declarations
12557         before their uses.
12558
12559 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
12560
12561         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
12562         field and add signal_ra.
12563         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
12564         assignments to frame state pc.  Move end of stack check after
12565         MD_FALLBACK_FRAME_STATE_FOR.
12566         (uw_update_context_1): Use frame state signal_regs if set, instead
12567         of checking signal_frame flag.
12568         (uw_update_context): Use frame state signal_ra if set.
12569         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
12570         * config/xtensa/linux-unwind.h: New file.
12571
12572 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
12573
12574         * modulo-sched.c (get_sched_window): Fix comment typo.
12575
12576 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
12577
12578         PR tree-optimization/34648
12579         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
12580
12581 2008-01-17  Anatoly Sokolov <aesok@post.ru>
12582
12583         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
12584         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
12585
12586 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
12587
12588         PR rtl-optimization/34400
12589         * df-core.c (df_worklist_dataflow_overeager,
12590         df_worklist_dataflow_doublequeue): New functions.
12591         (df_worklist_dataflow): Two different worklist solvers.
12592         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
12593         New param.
12594
12595 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12596
12597         PR testsuite/34821
12598         * doc/invoke.texi: Document the dependence on pthread for fopenmp
12599         and ftree-parallelize-loops.
12600
12601 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
12602
12603         PR rtl-optimization/34826
12604         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
12605
12606 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
12607
12608         * global.c (find_reg): Mark the eh regs as used if necessary.
12609         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
12610         * ra.h (struct allocno): no_eh_reg field added.  Changed
12611         no_stack_reg type to bitfield.
12612
12613 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
12614
12615         * tree.c (substitute_in_expr): Add missing 'break'.
12616
12617 2008-01-17  Richard Guenther  <rguenther@suse.de>
12618
12619         PR tree-optimization/34825
12620         * tree-ssa-math-opts.c (is_division_by): Do not recognize
12621         x / x as division to handle.
12622
12623 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12624
12625         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
12626         "-pthread" is specified.
12627         * pa-hpux11.h (LIB_SPEC): Likewise.
12628
12629 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
12630             Peter Bergner  <bergner@vnet.ibm.com>
12631
12632         PR rtl-optimization/33796
12633         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
12634
12635 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12636
12637         PR libgfortran/34699
12638         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
12639         static links.
12640         * pa-hpux10.h (LINK_SPEC): Likewise.
12641         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
12642
12643 2008-01-16  Richard Guenther  <rguenther@suse.de>
12644
12645         PR middle-end/32628
12646         * fold-const.c (fold_convert_const_int_from_int): Do not
12647         set overflow if that occured only because of a sign extension
12648         change when converting from/to a sizetype with the same
12649         precision and signedness.
12650
12651 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
12652
12653         PR debug/34249
12654         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
12655         location address to the correct place.  Update copyright year.
12656
12657 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12658
12659         * lambda-code.c (lambda_transform_legal_p): Handle the case of
12660         no dependences in the dependence_relations vector.
12661
12662 2008-01-16  Jan Hubicka  <jh@suse.cz>
12663
12664         PR rtl-optimization/31396
12665         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
12666         * cfg.c (dump_reg_info): Print it.
12667         * regs.h (struct reg_info_t): add freq_calls_crossed.
12668         (REG_FREQ_CALLS_CROSSED): New macro.
12669         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
12670         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
12671         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
12672         regmove_optimize): Update call crossed frequencies.
12673         * local-alloc.c (struct qty): Add freq_calls_crossed.
12674         (alloc_qty): Copute freq_calls_crossed.
12675         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
12676         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
12677         * ra.h (struct allocno): Add freq_calls_crossed.
12678
12679 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12680
12681         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
12682         libgomp when compiling with ftree-parallelize-loops.
12683         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
12684
12685 2008-01-16  Richard Guenther  <rguenther@suse.de>
12686
12687         PR tree-optimization/34769
12688         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
12689         * tree.c (int_cst_value): Instead make this function more
12690         permissive in what it accepts as valid input.  Document this
12691         function always sign-extends the value.
12692
12693 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
12694             Richard Guenther  <rguenther@suse.de>
12695
12696         PR c/34668
12697         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
12698         (gimple_fold_indirect_ref_rhs): ... this.
12699         (gimple_fold_indirect_ref): New function with foldings
12700         that preserve lvalueness.
12701         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
12702         * tree-flow.h (gimple_fold_indirect_ref): Declare.
12703         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
12704         to fold an INDIRECT_REF, fall back to the old use of
12705         fold_indirect_ref_1.
12706
12707 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12708
12709         * tree-data-ref.c (subscript_dependence_tester_1): Call 
12710         free_conflict_function.
12711         (compute_self_dependence): Same.
12712
12713 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
12714
12715         PR debug/34249
12716         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
12717         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
12718         function global.
12719         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
12720         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
12721         for DWARF2_UNWIND_INFO targets.
12722
12723 2008-01-16  Richard Guenther  <rguenther@suse.de>
12724
12725         PR c/34768
12726         * c-typeck.c (common_pointer_type): Do not merge inconsistent
12727         type qualifiers for function types.
12728
12729 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
12730
12731         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
12732         loop_iterator li from previous commit.
12733
12734 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
12735
12736         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
12737
12738 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
12739
12740         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
12741         (parallelize_loops): Don't parallelize irreducible components.
12742
12743 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12744
12745         PR c++/24924
12746         * c-opts (c_common_post_options): Do not enable CPP
12747         flag_pedantic_errors by default.
12748         
12749 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
12750
12751         PR rtl-optimization/31944
12752         * cse.c (remove_pseudo_from_table): New function.
12753         (merge_equiv_classes): Use above function to remove pseudo-registers.
12754         (invalidate): Likewise.
12755
12756 2008-01-13  Richard Guenther  <rguenther@suse.de>
12757
12758         PR middle-end/34601
12759         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
12760         instead of TYPE_MODE to deal with calls from expand_one_error_var.
12761
12762 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
12763
12764         * gcse.c (cprop_jump): Call validate_unshare_change instead of
12765         validate_change to unshare the source of the PC set.
12766
12767 2008-01-12  Jan Hubicka  <jh@suse.cz>
12768
12769         PR middle-end/32135
12770         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
12771         references above array bounds.  This might trigger bounds checks for
12772         pointers to arrays.
12773
12774 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
12775
12776         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
12777         new_replaceable_dependencies.
12778
12779 2008-01-12  Doug Kwan  <dougkwan@google.com>
12780
12781         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
12782         instead of OPT_Wreturn_type in warning due to ignored return type
12783         qualifiers.
12784         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
12785         options included in -Wextra.
12786         * c.opt: New option -Wignored_qualifiers.
12787         * doc/invoke.texi (Warning Options, -Wextra): Add new option
12788         -Wignore_qualifiers.
12789         (-Wignored-qualifiers): Document.
12790         (-Wreturn-type): Remove description of functionality now handled
12791         by -Wignored-qualifiers.
12792
12793 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
12794
12795         PR ada/33788
12796         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
12797         NOP_EXPR if it is between integral types with the same precision.
12798
12799 2008-01-12  Jan Hubicka  <jh@suse.cz>
12800
12801         PR other/28023
12802         * invoke.texi (max-inline-recursive-depth): Fix default value.
12803
12804 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
12805
12806         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
12807         correct type.
12808
12809 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
12810         
12811         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
12812         
12813 2008-01-11  James E. Wilson  <wilson@specifix.com>
12814
12815         PR target/26015
12816         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
12817
12818 2008-01-11  Anatoly Sokolov <aesok@post.ru>
12819
12820         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
12821         save/restore frame pointer register and don't use 'call-prologues' 
12822         optimization in function with "OS_task" attribute.
12823
12824 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
12825
12826         PR middle-end/31309
12827         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
12828         when copying to memory.
12829
12830 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
12831
12832         PR rtl-optimization/30905
12833         * cfgcleanup.c: Include dce.h
12834         (crossjumps_occured): New global variable.
12835         (try_crossjump_bb): Exit loop after finding a fallthru edge.
12836         If something changed, set crossjumps_occured to true.
12837         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
12838         Don't add/remove fake edges to exit here...
12839         (cleanup_cfg): ...but do it here, when crossjumping.
12840         Run a fast DCE when successful crossjumps occured in the latest
12841         iteration of try_optimize_cfg.
12842
12843 2008-01-11  Richard Guenther  <rguenther@suse.de>
12844
12845         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
12846         (struct vn_unary_op_s): Likewise.
12847         (vn_reference_insert): Free old reference on hash collision.
12848
12849 2008-01-10  Raksit Ashok  <raksit@google.com>
12850
12851         PR rtl-optimization/27971
12852         * combine.c (find_split_point): Split PLUS expressions which are
12853         inside a MEM rtx, and whose first operand is complex.
12854
12855 2008-01-10  DJ Delorie  <dj@redhat.com>
12856
12857         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
12858         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
12859         (m32c_hard_regno_ok): Call the underlying function.
12860
12861 2008-01-10  Richard Guenther  <rguenther@suse.de>
12862
12863         PR middle-end/34683
12864         * tree-cfg.c (tree_merge_blocks): Do not go through the
12865         full-blown folding and stmt updating path if we just deal
12866         with virtual operands.
12867         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
12868         test for abnormal SSA_NAMEs.
12869
12870 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
12871
12872         PR middle-end/34641
12873         * reload.c (push_reload): Add assertions.  All constants from
12874         reg_equiv_constant should have been used for replacing the respective
12875         pseudo earlier.
12876         (find_reloads_address): Invoke find_reloads_address_part for
12877         constant taken from the reg_equiv_constant array.
12878
12879 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
12880
12881         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
12882         field (valnum) the first in the struct.  Replace bools with
12883         unit bit fields.
12884
12885 2008-01-10  Richard Guenther  <rguenther@suse.de>
12886
12887         PR tree-optimization/34651
12888         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
12889         types and ordering for masking and converting.
12890
12891 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
12892
12893         PR tree-optimization/34017
12894         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
12895         also for PHI_NODE expressions.
12896
12897 2008-01-09  Jan Hubicka  <jh@suse.cz>
12898
12899         PR tree-optimization/34708
12900         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
12901         based on number of case labels.
12902         (init_inline_once): Remove switch_cost.
12903         * tree-inline.h (eni_weights_d): Remove switch_cost.
12904
12905 2008-01-09  Richard Guenther  <rguenther@suse.de>
12906         Andrew Pinski  <andrew_pinski@playstation.sony.com>
12907
12908         PR middle-end/30132
12909         * gimplify.c (gimplify_cond_expr): Do not create an addressable
12910         temporary if an rvalue is ok or an lvalue is not required.
12911
12912 2008-01-09  Richard Guenther  <rguenther@suse.de>
12913
12914         PR middle-end/34458
12915         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
12916         adjust return type.
12917
12918 2008-01-09  Richard Guenther  <rguenther@suse.de>
12919
12920         PR middle-end/34679
12921         * tree.c (host_integerp): Check for sizetype only if the
12922         type is an integer type.
12923
12924 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
12925
12926         PR debug/26364
12927         * opts.c (decode_options): Disable inlining of functions called
12928         once if not in unit-at-a-time mode.
12929
12930 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
12931
12932         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
12933
12934 2008-01-08  Richard Guenther  <rguenther@suse.de>
12935
12936         PR middle-end/31863
12937         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
12938         out early if the result will be unused.
12939
12940 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
12941
12942         PR target/34709
12943         Revert:
12944
12945         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12946         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12947         for TARGET_RECIP.       
12948         
12949 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
12950         
12951         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
12952         for vectorization tuned.
12953         
12954 2008-01-08  Richard Guenther  <rguenther@suse.de>
12955
12956         PR tree-optimization/34683
12957         * tree-ssa-operands.c (operand_build_cmp): Export.
12958         * tree-ssa-operands.h (operand_build_cmp): Declare.
12959         * tree-vn.c (vuses_compare): Remove.
12960         (sort_vuses): Use operand_build_cmp.
12961         (sort_vuses_heap): Likewise.
12962         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
12963         to re-use old VEC if available.  Do not sort already sorted VUSEs.
12964         (vdefs_to_vec): Do not sort already sorted VDEFs.
12965
12966 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
12967
12968         PR middle-end/34694
12969         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
12970
12971 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
12972
12973         PR target/34702
12974         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
12975         limitations of reciprocal sequences on x86 targets.
12976
12977 2008-01-08  Richard Guenther  <rguenther@suse.de>
12978
12979         PR tree-optimization/34683
12980         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
12981
12982 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
12983
12984         PR target/34622
12985         * config/darwin.c (darwin_mergeable_string_section): Don't use
12986         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
12987
12988 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
12989
12990         PR target/34682
12991         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
12992         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
12993         predicates of op0 and op1 to register_operand.
12994         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
12995         expander using X87MODEF mode iterator.  Change predicates of
12996         op0 and op1 to register_operand.
12997         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
12998         corresponding patterns and macroize using MODEF macro.  Change
12999         predicates of op0 and op1 to register_operand and remove
13000         "m" constraint. Disparage "r" alternative with "!".
13001         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
13002         macroize using X87MODEF macro.  Change predicates of op0 and op1
13003         to register_operand and remove "m" constraint.  Disparage "r"
13004         alternative with "!".
13005         (absneg splitter with memory operands): Remove.
13006         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
13007         patterns and macroize using X87MODEF mode iterator.
13008         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
13009         Change predicate of op1 to register_operand.
13010         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
13011         for memory operands.
13012
13013 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
13014
13015         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
13016
13017 2008-01-07  Richard Guenther  <rguenther@suse.de>
13018
13019         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
13020         fields.
13021
13022 2008-01-07  Richard Guenther  <rguenther@suse.de>
13023
13024         PR tree-optimization/34683
13025         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
13026         VOPs of the needed size to save memory.  Use VEC_quick_push
13027         to save compile-time.
13028         (vdefs_to_vec): Likewise.
13029
13030 2008-01-07  Sa Liu  <saliu@de.ibm.com>
13031
13032         * config/spu/spu.md (divdf3): Genetate inline code for double
13033         division.  The implementation doesn't handle INF or NAN, therefore it
13034         only applies when -ffinite-math-only is given.
13035
13036 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
13037
13038         PR libstdc++/34680
13039         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
13040         * doc/cpp.texi ([Common Predefined Macros]): Document.
13041
13042 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
13043
13044         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
13045         order to use commutative addition instead of subtraction.
13046
13047 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13048             Mircea Namolaru  <namolaru@il.ibm.com>
13049             Vladimir Yanovsky  <yanov@il.ibm.com>
13050             Revital Eres  <eres@il.ibm.com>
13051
13052         PR tree-optimization/34263
13053         * tree-outof-ssa.c (process_single_block_loop_latch,
13054         contains_tree_r): New functions.
13055         (analyze_edges_for_bb): Call process_single_block_loop_latch
13056         function to empty single-basic-block latch block if possible.
13057
13058 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13059
13060         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13061         for TARGET_RECIP.
13062         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
13063
13064 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13065
13066         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
13067
13068 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13069
13070         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
13071
13072 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
13073
13074         PR tree-optimization/34618
13075         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
13076         flag from T.
13077
13078 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13079
13080         PR target/34673
13081         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
13082         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
13083         Update copyright year.
13084
13085         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
13086         Update copyright year.
13087         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
13088         using NR fixup.
13089
13090 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
13091
13092         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
13093         edge does not point to current bb before changing need_assert.
13094
13095 2008-01-04  Richard Guenther  <rguenther@suse.de>
13096
13097         PR middle-end/34029
13098         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
13099         for verifying purposes if they are is_gimple_min_invariant.
13100
13101 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
13102
13103         PR tree-optimization/34448
13104         PR tree-optimization/34465
13105         * gimplify.c (gimplify_init_constructor): Add new parameter
13106         notify_temp_creation.  Use it.
13107         (gimplify_modify_expr_rhs): Take volatiles into account when
13108         optimizing constructors.
13109         Do not optimize constructors if gimplify_init_constructor will dump to
13110         memory.
13111         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
13112         * gcc.c-torture/compile/pr34448.c: New.
13113
13114 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
13115
13116         PR gcov-profile/34609
13117         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
13118         return_slot if result is TREE_ADDRESSABLE.
13119
13120 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
13121
13122         * config/mips/mips.md (sqrt_condition): Tweak comment.
13123         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
13124
13125 2008-01-03  Tom Tromey  <tromey@redhat.com>
13126
13127         PR c/34457
13128         * c-common.c (c_type_hash): Handle VLAs.
13129
13130 2008-01-03  Jan Hubicka  <jh@suse.cz>
13131
13132         PR tree-optimization/31081
13133         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
13134         0 when inlining and not inlining to first basic block.
13135         (remap_decl): When var is initialized to 0, don't set default_def.
13136         (expand_call_inline): Set entry_bb.
13137         * tree-inline.h (copy_body_data): Add entry_bb.
13138
13139 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13140
13141         PR c++/34619
13142         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
13143         before returning.
13144
13145         PR tree-optimization/29484
13146         * tree-inline.c (inline_forbidden_p_2): New function.
13147         (inline_forbidden_p): Disallow inlining if some static var
13148         has an address of a local LABEL_DECL in its initializer.
13149         * doc/extend.texi (Labels as Values): Document &&foo behaviour
13150         vs. inlining.
13151
13152 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
13153
13154         PR tree-optimization/34635
13155         * tree-data-ref.c (add_other_self_distances): Make sure that the
13156         evolution step is constant.
13157
13158 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13159
13160         PR middle-end/34608
13161         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
13162
13163 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
13164
13165         * tree-sra.c (scalarize_init): Insert the generate_element_init
13166         statements after the generate_element_zero statements.
13167
13168 2008-01-02  Richard Guenther  <rguenther@suse.de>
13169
13170         PR middle-end/34093
13171         PR middle-end/31976
13172         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
13173         for very large number of operands instead of ICEing.
13174
13175 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
13176
13177         PR target/34013
13178         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
13179         while stack probing.
13180
13181 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
13182
13183         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
13184         in C++0x mode.
13185
13186 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
13187
13188         PR libmudflap/26442
13189         * tree-mudflap.c (mx_register_decls): Guard warning by
13190         !DECL_ARTIFICIAL check.
13191
13192 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
13193
13194         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
13195         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
13196         sse5_perm<mode>): Fix constraints.