OSDN Git Service

* tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
2
3         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
4         this point, so assert that.
5
6 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
7
8         * cfganal.c: Include vec.h and vecprim.h.
9         (compute_idf): Import from...
10         * tree-into-ssa (compute_idf): ...here.
11         * basic-block.h (compute_idf): Export.
12
13 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
14
15         * c-decl.c (merge_decls): Use !current_function_decl to check for
16         extern declaration of C99 inline function being at file scope.
17
18 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
19
20         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
21
22 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23
24         * alias.c (record_alias_subset, init_alias_analysis): Fix
25         -Wc++-compat and/or -Wcast-qual warnings.
26         * attribs.c (lookup_attribute_spec): Likewise.
27         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
28         copy_bb, connect_traces,
29         find_rarely_executed_basic_blocks_and_cr): Likewise.
30         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
31         note_btr_set, migrate_btr_defs): Likewise.
32         * builtins.c (result_vector, expand_builtin_memcpy,
33         expand_builtin_mempcpy_args, expand_builtin_strncpy,
34         builtin_memset_read_str, expand_builtin_printf,
35         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
36         Likewise.
37         * caller-save.c (mark_set_regs): Likewise.
38         * calls.c (expand_call, emit_library_call_value_1): Likewise.
39         * cgraph.c (cgraph_edge): Likewise.
40         * combine.c (likely_spilled_retval_1): Likewise.
41         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
42         htab_counts_entry_del, get_coverage_counts): Likewise.
43         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
44         new_cselib_val): Likewise.
45         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
46         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
47         Likewise.
48         * df-core.c (df_compact_blocks): Likewise.
49         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
50         * df-scan.c (df_grow_reg_info, df_ref_create,
51         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
52         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
53         df_record_entry_block_defs, df_record_exit_block_uses,
54         df_bb_verify): Likewise.
55         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
56         DF_REF_EXTRACT_MODE_CONST): New.
57         * dominance.c (get_immediate_dominator, get_dominated_by,
58         nearest_common_dominator, root_of_dom_tree,
59         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
60         -Wc++-compat and/or -Wcast-qual warnings.
61         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
62         record_store, replace_read, check_mem_read_rtx, scan_insn,
63         dse_step1, dse_record_singleton_alias_set): Likewise.
64         * dwarf2asm.c (dw2_force_const_mem): Likewise.
65
66 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
67
68         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
69         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
70         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
71         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
72         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
73         add_ranges_num, add_ranges_by_labels, file_info_cmp,
74         file_name_acquire, output_file_names, add_const_value_attribute,
75         premark_used_types_helper, file_table_eq, file_table_hash,
76         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
77         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
78         -Wcast-qual warnings.
79         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
80         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
81         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
82         gen_reg_rtx, start_sequence, init_emit): Likewise.
83         * et-forest.c (et_new_occ, et_new_tree): Likewise.
84         * except.c (init_eh_for_function, gen_eh_region,
85         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
86         arh_to_landing_pad, arh_to_label, add_action_record,
87         add_call_site, switch_to_exception_section): Likewise.
88         * expmed.c (synth_mult): Likewise.
89         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
90         store_expr): Likewise.
91         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
92         Likewise.
93         * function.c (assign_stack_temp_for_type,
94         allocate_struct_function, match_asm_constraints_1): Likewise.
95         * gcov-io.c (gcov_allocate): Likewise.
96         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
97         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
98         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
99         record_one_set, insert_expr_in_table, insert_set_in_table,
100         dump_hash_table, compute_hash_table_work, alloc_hash_table,
101         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
102         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
103         -Wcast-qual warnings.
104
105 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
106
107         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
108         -Wcast-qual warnings.
109         * gcc.c (process_command): Likewise.
110         * genattrtab.c (oballoc): Use XOBNEW.
111         (oballocvec): Define.
112         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
113         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
114         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
115         -Wc++-compat and/or -Wcast-qual warnings.
116         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
117         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
118         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
119         gen_presence_absence_set, gen_automaton, gen_regexp_el,
120         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
121         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
122         add_excls, process_presence_absence_names,
123         process_presence_absence_patterns, add_presence_absence,
124         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
125         get_free_state, add_arc, get_free_automata_list_el,
126         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
127         transform_3, cache_presence, create_ainsns, create_automata,
128         create_state_ainsn_table, dfa_insn_code_enlarge,
129         output_trans_func, output_min_issue_delay_func,
130         output_dead_lock_func, output_reset_func,
131         output_get_cpu_unit_code_func, output_dfa_start_func,
132         expand_automata): Likewise.
133         * genextract.c (gen_insn): Likewise.
134         * gengtype-lex.l: Likewise.
135         * gengtype.c (read_input_list, adjust_field_type,
136         process_gc_options): Likewise.
137         * genoutput.c (note_constraint): Likewise.
138         * genpreds.c (mangle, add_constraint): Likewise.
139         * genrecog.c (process_define_predicate, new_decision,
140         add_to_sequence): Likewise.
141         * gensupport.c (record_insn_name): Likewise.
142
143 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
144
145         * config/i386/driver-i386.c (detect_caches_amd,
146         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
147         and/or -Wcast-qual warnings.
148         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
149         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
150         gt_pch_save): Likewise.
151         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
152         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
153         * global.c (compute_regsets): Likewise.
154         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
155         finish_graph_dump_file): Likewise.
156         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
157         unlink_bb_notes): Likewise.
158         * integrate.c (get_hard_reg_initial_val): Likewise.
159         * ipa-prop.c (ipa_push_func_to_list): Likewise.
160         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
161         * local-alloc.c (update_equiv_regs): Likewise.
162         * loop-invariant.c (check_invariant_table_size,
163         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
164         Likewise.
165         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
166         altered_reg_used, mark_altered): Likewise.
167         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
168         insert_var_expansion_initialization,
169         combine_var_copies_in_loop_exit, apply_opt_in_copies,
170         release_var_copies): Likewise.
171         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
172         analyze_matrix_decl, add_allocation_site, analyze_transpose,
173         analyze_accesses_for_phi_node, check_var_notmodified_p,
174         check_allocation_function, find_sites_in_func,
175         record_all_accesses_in_func, transform_access_sites,
176         transform_allocation_sites): Likewise.
177         * omp-low.c (new_omp_region, create_omp_child_function_name,
178         check_omp_nesting_restrictions, check_combined_parallel,
179         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
180         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
181         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
182         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
183         Likewise.
184         * opts-common.c (prune_options): Likewise.
185         * opts.c (add_input_filename, print_filtered_help,
186         get_option_state): Likewise.
187         * params.c (add_params): Likewise.
188         * passes.c (set_pass_for_id, next_pass_1,
189         do_per_function_toporder, pass_fini_dump_file): Likewise.
190         * postreload.c (reload_cse_simplify_operands): Likewise.
191         * predict.c (tree_predicted_by_p, tree_predict_edge,
192         clear_bb_predictions, combine_predictions_for_bb): Likewise.
193
194 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
195
196         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
197         warnings.
198         * recog.c (check_asm_operands, validate_change_1): Likewise.
199         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
200         subst_asm_stack_regs): Likewise.
201         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
202         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
203         * regmove.c (reg_is_remote_constant_p): Likewise.
204         * regrename.c (regrename_optimize, scan_rtx_reg,
205         kill_clobbered_value, kill_set_value, kill_autoinc_value):
206         Likewise.
207         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
208         regstat_compute_calls_crossed): Likewise.
209         * reload1.c (init_reload, new_insn_chain,
210         has_nonexceptional_receiver, reload, copy_reloads,
211         calculate_needs_all_insns, init_elim_table): Likewise.
212         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
213         * rtl.c (shallow_copy_rtx_stat): Likewise.
214         * rtlanal.c (parms_set): Likewise.
215         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
216         sbitmap_resize, sbitmap_vector_alloc): Likewise.
217         * sched-ebb.c (earliest_block_with_similiar_load,
218         add_deps_for_risky_insns): Likewise.
219         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
220         schedule_region): Likewise.
221         * see.c (eq_descriptor_pre_extension,
222         hash_descriptor_pre_extension, hash_del_pre_extension,
223         eq_descriptor_properties, hash_descriptor_properties,
224         hash_del_properties, see_seek_pre_extension_expr,
225         see_initialize_data_structures, see_print_register_properties,
226         see_print_pre_extension_expr, see_delete_merged_def_extension,
227         see_delete_unmerged_def_extension, see_emit_use_extension,
228         see_pre_delete_extension, see_map_extension, see_commit_changes,
229         see_analyze_merged_def_local_prop,
230         see_analyze_merged_def_local_prop,
231         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
232         see_set_prop_merged_def, see_set_prop_unmerged_def,
233         see_set_prop_unmerged_use, see_print_one_extension,
234         see_merge_one_use_extension, see_merge_one_def_extension,
235         see_store_reference_and_extension, see_update_uses_relevancy,
236         see_update_defs_relevancy): Likewise.
237         * statistics.c (hash_statistics_hash, hash_statistics_eq,
238         hash_statistics_free, curr_statistics_hash): Likewise.
239         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
240         expand_asm_operands, expand_return, case_bit_test_cmp,
241         expand_case): Likewise.
242         * stor-layout.c (start_record_layout): Likewise.
243         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
244         gt_pch_save_stringpool): Likewise.
245         * tree-data-ref.c (hash_stmt_vertex_info,
246         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
247         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
248
249 2008-06-25 Uros Bizjak  <ubizjak@gmail.com>
250
251         PR target/36627
252         * config/i386/i386.md : Change constraints of HImode and QImode
253         immediate operands from "i" to "n".  Change SImode "ni" constraint to
254         "i" and SImode "rmi" constraint to "g".  Remove all constraints
255         from const0_operand and const1_operand predicated operands.
256         (i): Change QImode and HImode attribute from "i" to "n".
257         (*subqi_2): Change HImode operands to QImode.
258         (*subqi_3): Ditto.
259
260 2008-06-25  Olivier Hainque  <hainque@adacore.com>
261
262         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
263         sed substitutions.
264
265 2008-06-25  Richard Guenther  <rguenther@suse.de>
266
267         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
268         not overflow the result type.
269
270 2008-06-25  Richard Guenther  <rguenther@suse.de>
271
272         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
273         (vn_lookup): Likewise.
274
275 2008-06-25  Richard Guenther  <rguenther@suse.de>
276
277         PR tree-optimization/35518
278         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
279         * tree-sra.c (instantiate_element): Use fold_build3 to build
280         BIT_FIELD_REFs.
281         (try_instantiate_multiple_fields): Likewise.
282
283 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
284
285         * config/rs6000/rs6000.md: Change all string instruction's clobber to
286         be early clobbers.
287
288 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
289
290         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
291         use_backchain_to_restore_sp to true
292         if the offset of the link register save area would go over the 32k - 1
293         offset limit of the load
294         instructions.
295
296 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
297
298         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
299         anchor for the type-punning blurb.  Cross-reference "Structures
300         unions enumerations and bit-fields implementation".  Provide a
301         cast-through-pointer example.  Make final sentence self-contained.
302         * doc/implement-c.texi (Structures unions enumerations and
303         bit-fields implementation): Cross-reference the type-punning blurb
304         in the -fstrict-aliasing documentation.
305
306 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
307
308         PR middle-end/36594
309         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
310         the memory instead of the memory itself for the save area.
311
312 2008-06-24  Olivier Hainque  <hainque@adacore.com>
313             Nicolas Roche  <roche@adacore.com>
314
315         * gengtype.c (srcdir_len): size_t instead of int.
316         (get_file_realbasename): New function.  For F a filename, the real
317         basename of F, with all the path components stripped.
318         (get_file_srcdir_relative_path): New function.  For F a filename, the
319         relative path to F from $(srcdir).
320         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
321         get_file_realbasename.  Adjust the head comment.
322         (get_prefix_langdir_index): New function. For F a filename, return the
323         lang_dir_names[] relative index of the language directory that is
324         a prefix in F.
325         (get_file_langdir): For F a filename, return the name of the language
326         directory where F is located.
327         (get_file_gtfilename): New function. The gt- output file name for an
328         input filename F.
329         (get_output_file_with_visibility): Replace in-line computations with
330         uses of get_file_gtfilename and get_prefix_langdir_index.
331         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
332
333 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
334
335         PR tree-optimization/36504
336         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
337         references without base address.
338
339 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
340
341         PR middle-end/36584
342         * calls.c (expand_call): Increase alignment for recursive functions.
343
344 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
345
346         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
347         (TARGET_FUNCTION_VALUE): New define.
348         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
349         * config/avr/avr.h (FUNCTION_VALUE): Remove.
350
351 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
352
353         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
354         (fmod<mode>3): Ditto.
355         (remainderxf3): Ditto.
356         (remainder<mode>3): Ditto.
357
358 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
359
360         PR target/36533
361         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
362         REG is a hard register.
363
364         PR tree-optimization/36508
365         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
366         499, don't check it at all in release compilers.
367
368 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
369
370         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
371         together with SSE_TARGET_MATH to disable insn pattern.
372         (*fop_<MODEF:mode>_2_i387): Ditto.
373         (*fop_<MODEF:mode>_3_i387): Ditto.
374
375 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
376
377         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
378         
379 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
380
381         PR middle-end/34906
382         * gimplify.c (gimplify_asm_expr): Check the return code of
383         parse_output_constraint call, set function return and is_inout
384         value if it failed.
385
386 2008-06-22  Ian Lance Taylor  <iant@google.com>
387
388         * c-lex.c (narrowest_unsigned_type): Change itk to int.
389         (narrowest_signed_type): Likewise.
390         * c-typeck.c (c_common_type): Change local variable mclass to enum
391         mode_class, twice.
392         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
393         tcc_comparison, not the tree code itself.
394         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
395         (c_expand_expr): Cast modifier to enum expand_modifier.
396         * c-common.h (C_RID_CODE): Add casts.
397         (C_SET_RID_CODE): Define.
398         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
399         (c_lex_one_token): Add cast to avoid warning.
400         (c_parser_objc_type_name): Rename local typename to type_name.
401         (check_no_duplicate_clause): Change code parameter to enum
402         omp_clause_code.
403         (c_parser_omp_var_list_parens): Change kind parameter to enum
404         omp_clause_code.
405         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
406         c_parser_omp_list_var_parens.
407         (c_parser_omp_threadprivate): Likewise.
408         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
409         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
410         * c-format.c (NO_FMT): Define.
411         (printf_length_specs): Use NO_FMT.
412         (asm_fprintf_length_specs): Likewise.
413         (gcc_diag_length_specs): Likewise.
414         (scanf_length_specs): Likewise.
415         (strfmon_length_specs): Likewise.
416         (gcc_gfc_length_specs): Likewise.
417         (printf_flag_specs): Change 0 to STD_C89.
418         (asm_fprintf_flag_specs): Likewise.
419         (gcc_diag_flag_specs): Likewise.
420         (gcc_cxxdiag_flag_specs): Likewise.
421         (scanf_flag_specs): Likewise.
422         (strftime_flag_specs): Likewise.
423         (strfmon_flag_specs): Likewise.
424         (print_char_table): Likewise.
425         (asm_fprintf_char_table): Likewise.
426         (gcc_diag_char_table): Likewise.
427         (gcc_tdiag_char_table): Likewise.
428         (gcc_cdiag_char_table): Likewise.
429         (gcc_cxxdiag_char_table): Likewise.
430         (gcc_gfc_char_table): Likewise.
431         (scan_char_table): Likewise.
432         (time_char_table): Likewis.
433         (monetary_char_table): Likewise.
434         * c-format.h (BADLEN): Likewise.
435
436 2008-06-21  Ian Lance Taylor  <iant@google.com>
437
438         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
439         Define END_OF_BASE_TREE_CODES around inclusion.
440         * tree.c (tree_code_type): New global array.
441         (tree_code_length, tree_code_name): Likewise.
442         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
443         $(lang_tree_files).
444         (all-tree.def, s-alltree): New targets.
445         (gencheck.h, s-gencheck): Remove.
446         (tree.o): Depend upon all-tree.def.
447         (build/gencheck.o): Remove gencheck.h dependency.
448         (mostlyclean): Don't remove gencheck.h.
449         * c-common.h (enum c_tree_code): Remove.
450         * c-lang.c (tree_code_type): Remove.
451         (tree_code_length, tree_code_name): Remove.
452         * gencheck.c (tree_codes): Include all-tree.def, rather than
453         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
454         after it is used.
455         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
456         than tree.def.
457         * cp/cp-tree.h (enum cplus_tree_code): Remove.
458         (operator_name_info): Size to MAX_TREE_CODES.
459         (assignment_operator_name_info): Likewise.
460         * cp/cp-lang.c (tree_code_type): Remove.
461         (tree_code_length, tree_code_name): Remove.
462         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
463         (assignment_operator_name_info): Likewise.
464         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
465         MAX_TREE_CODES.
466         * cp/mangle.c (write_expression): Likewise.
467         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
468         * fortran/f95-lang.c (tree_code_type): Remove.
469         (tree_code_length, tree_code_name): Remove.
470         * java/java-tree.h (enum java_tree_code): Remove.
471         * java/lang.c (tree_code_type): Remove.
472         (tree_code_length, tree_code_name): Remove.
473         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
474         * objc/objc-act.h (enum objc_tree_code): Remove.
475         * objc/objc-lang.c (tree_code_type): Remove.
476         (tree_code_length, tree_code_name): Remove.
477         * objcp/objcp-lang.c (tree_code_type): Remove.
478         (tree_code_length, tree_code_name): Remove.
479         * ada/ada-tree.h (enum gnat_tree_code): Remove.
480         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
481         * ada/misc.c (tree_code_type): Remove.
482         (tree_code_length, tree_code_name): Remove.
483
484 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
485
486         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
487         the grand_bitmap_obstack.
488
489 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
490
491         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
492         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
493         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
494         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
495         move_stmt_r, new_label_mapper): Likewise.
496         * tree-complex.c (cvc_lookup): Likewise.
497         * tree-dfa.c (create_function_ann): Likewise.
498         * tree-dump.c (dump_register): Likewise.
499         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
500         find_phi_replacement_condition): Likewise.
501         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
502         tree_function_versioning): Likewise.
503         * tree-into-ssa.c (cmp_dfsnum): Likewise.
504         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
505         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
506         get_nonlocal_debug_decl, convert_nonlocal_reference,
507         convert_nonlocal_omp_clauses, get_local_debug_decl,
508         convert_local_reference, convert_local_omp_clauses,
509         convert_nl_goto_reference, convert_nl_goto_receiver,
510         convert_tramp_reference, convert_call_expr): Likewise.
511         * tree-outof-ssa.c (contains_tree_r): Likewise.
512         * tree-parloops.c (reduction_phi, initialize_reductions,
513         eliminate_local_variables_1, add_field_for_reduction,
514         add_field_for_name, create_phi_for_local_result,
515         create_call_for_reduction_1, create_loads_for_reductions,
516         create_stores_for_reduction, create_loads_and_stores_for_name):
517         Likewise.
518         * tree-phinodes.c (allocate_phi_node): Likewise.
519         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
520         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
521         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
522         * tree-ssa-coalesce.c (compare_pairs): Likewise.
523         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
524         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
525         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
526         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
527         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
528         vn_nary_op_insert): Likewise.
529         * tree-ssa.c (redirect_edge_var_map_add,
530         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
531         * tree-vectorizer.c (vectorize_loops): Likewise.
532         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
533         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
534         tree_cons_stat, build1_stat, build_variant_type_copy,
535         decl_init_priority_lookup, decl_fini_priority_lookup,
536         decl_priority_info, decl_restrict_base_lookup,
537         decl_restrict_base_insert, decl_debug_expr_lookup,
538         decl_debug_expr_insert, decl_value_expr_lookup,
539         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
540         type_hash_add, get_file_function_name, tree_check_failed,
541         tree_not_check_failed, tree_range_check_failed,
542         omp_clause_range_check_failed, build_omp_clause,
543         build_vl_exp_stat): Likewise.
544         * value-prof.c (gimple_histogram_value,
545         gimple_duplicate_stmt_histograms): Likewise.
546         * var-tracking.c (attrs_list_insert, attrs_list_copy,
547         unshare_variable, variable_union_info_cmp_pos, variable_union,
548         dataflow_set_different_1, dataflow_set_different_2,
549         vt_find_locations, variable_was_changed, set_variable_part,
550         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
551         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
552         section_entry_hash, object_block_entry_eq,
553         object_block_entry_hash, create_block_symbol,
554         initialize_cold_section_name, default_function_rodata_section,
555         strip_reg_name, set_user_assembler_name, const_desc_eq,
556         build_constant_desc, output_constant_def, lookup_constant_def,
557         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
558         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
559         default_internal_label): Likewise.
560         * varray.c (varray_init, varray_grow): Likewise.
561         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
562
563 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
564
565         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
566         operators for "test" insn.  Macroize insn using SWI mode macro.
567         (*jcc_fused_2): Ditto.
568         (*jcc_fused_3): Macroize insn using SWI mode macro.
569         (*jcc_fused_4): Ditto.
570
571 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
572
573         * tree-ssa-pre.c: Fix typo in comment.
574         (init_antic, fini_antic): Add explicit funtions for
575         initializing and deinitializing ANTIC and AVAIL sets.
576         (create_expression_by_pieces): Fix typo in comment.
577         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
578         (execute_pre): Eventually dump details about ANTIC_IN.
579
580 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
581
582         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
583         * gcc.c (translate_options, init_spec, store_arg, read_specs,
584         add_to_obstack, file_at_path, find_a_file, execute,
585         add_preprocessor_option, add_assembler_option, add_linker_option,
586         process_command, insert_wrapper, do_option_spec, do_self_spec,
587         spec_path, do_spec_1, is_directory, main, used_arg,
588         getenv_spec_function): Likewise.
589         * tlink.c (symbol_hash_lookup, file_hash_lookup,
590         demangled_hash_lookup, symbol_push, file_push, frob_extension):
591         Likewise.
592
593 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
594
595         * doc/rtl.texi: Updated subreg section.
596
597 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
598
599         PR c++/36523
600         * cgraphunit.c (cgraph_process_new_functions): Don't clear
601         node->needed and node->reachable.
602         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
603         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
604         (expand_task_call): Don't call expand_task_copyfn.
605         (expand_task_copyfn): Renamed to...
606         (finalize_task_copyfn): ... this.
607
608 2008-06-19  Jan Hubicka  <jh@suse.cz>
609
610         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
611         clobbering framepointer.
612
613 2008-06-19  Jan Hubicka  <jh@suse.cz>
614
615         * tree-optimize.c (execute_early_local_optimizations): Set
616         cgraph_state only at first invocation.
617
618 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
619
620         * system.h (-Wc++-compat): Activate as a warning, no an error.
621
622 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
623
624         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
625         instead of "#" in insn asm template.
626         (*jcc_fused_2): Ditto.
627
628 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
629
630         * config/i386/i386.h (ix86_tune_indices)
631         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
632         (TARGET_FUSE_CMP_AND_BRANCH): New define.
633         * config/i386/i386.md (*jcc_fused_1): New insn pattern
634         (*jcc_fused_2): Ditto.
635         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
636         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
637         (print operand): Handle 'E' and 'e' code.
638
639 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
640
641         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
642         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
643         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
644
645 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
646
647         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
648         node->decl.
649         (cgraph_expand_function): Use local copy of decl.
650         (cgraph_expand_all_functions): Remove redundant initialization of
651         order_pos.
652         (cgraph_optimize): Reword internal_error message.
653
654 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
655
656         * arm-protos.h (arm_return_in_memory): Remove public
657         arm_return_in_memory() prototype.
658         * arm.c (arm_return_in_memory): Add static prototype, add target
659         hook macro, change definition and comments.
660         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
661
662 2008-06-19  Ben Elliston  <bje@au.ibm.com>
663
664         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
665         real.c: Remove references to IEEE 754R.
666         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
667         * doc/libgcc.texi (Decimal float library routines): Likewise.
668
669 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
670
671         * targhooks.h (struct gcc_target): New member unwind_word_mode.
672         (default_unwind_word_mode): Add prototype.
673         * targhooks.c (default_unwind_word_mode): New function.
674         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
675         instead of word_mode.
676         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
677         (TARGET_INITIALIZER): Use it.
678
679         * c-common.c (handle_mode_attribute): Support "unwind_word"
680         mode attribute.
681         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
682
683         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
684         word_mode to access SjLj_Function_Context member "data".
685         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
686         conversion from targetm.eh_return_filter_mode () to
687         targetm.unwind_word_mode () if they differ.
688
689         * builtin-types.def (BT_UNWINDWORD): New primitive type.
690         (BT_FN_UNWINDWORD_PTR): New function type.
691         (BT_FN_WORD_PTR): Remove.
692         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
693         * except.c (expand_builtin_extend_pointer): Convert pointer to
694         targetm.unwind_word_mode () instead of word_mode.
695
696         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
697         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
698         (spu_unwind_word_mode): New function.
699         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
700         (TARGET_UNWIND_WORD_MODE): Define.
701         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
702
703 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
704
705         * config/spu/spu.c (reg_align): Remove.
706         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
707         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
708         (spu_split_store): Likewise.
709
710 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
711
712         * gcc/tree-vn.c: Fix typo in comment.
713
714 2008-06-18  Jan Hubicka  <jh@suse.cz>
715
716         * cgraphunit.c (cgraph_optimize): Output debug info when doing
717         toplevel reorder too.
718
719 2008-06-18  Jan Hubicka  <jh@suse.cz>
720
721         * c-opts.c (c_common_post_options): PCH is not compatible with
722         no-unit-at-a-time.
723         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
724         -fno-toplevel-reorder by default now.
725
726 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
727
728         PR documentation/30739
729         * doc/install.texi (Prerequisites): Document dependency on awk.
730
731 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
732             Ian Lance Taylor  <iant@google.com>
733
734         PR rtl-optimization/35604
735         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
736         only want to change jump destinations, not eventual label comparisons.
737
738 2008-06-16  Jan Hubicka  <jh@suse.cz>
739
740         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
741         syntax errors.
742         (cgraph_analyze_function): Likewise.
743
744 2008-06-16  Jan Hubicka  <jh@suse.cz>
745
746         * cgraph.h (cgraph_mark_if_needed): New function.
747         * cgraphunit.c (cgraph_mark_if_needed): New function.
748         * c-decl.c (duplicate_decl): Use it.
749
750 2008-06-16  Jan Hubicka  <jh@suse.cz>
751
752         * cgraph.c (cgraph_add_new_function): When in expansion state, do
753         lowering.
754
755 2008-06-16  Jan Hubicka  <jh@suse.cz>
756
757         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
758
759 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
760             Kazu Hirata  <kazu@codesourcery.com>
761             Maxim Kuvyrkov  <maxim@codesourcery.com
762
763         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
764         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
765         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
766         EXTRA_SPEC_FUNCTIONS.
767         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
768         (DRIVER_SELF_SPECS): Adjust.
769         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
770         * config/mips/st.h, config/mips/t-st: New.
771         * config/mips/driver-native.c, config/mips/x-native: New.
772         * doc/invoke.texi (MIPS): Document 'native' value for -march and
773         -mtune options.
774
775 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
776
777         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
778         from it.
779         (ISA_HAS_FP_CONDMOVE): New macro.
780         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
781         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
782         (ISA_HAS_NMADD3_NMSUB3): New macro.
783         * config/mips/mips.c (mips_rtx_costs): Update.
784         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
785         compiling for ST Loongson 2E/2F.
786         (madd<mode>): Rename to madd4<mode>.  Update.
787         (madd3<mode>): New pattern.
788         (msub<mode>): Rename to msub4<mode>.  Update.
789         (msub3<mode>): New pattern.
790         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
791         (nmadd3<mode>): New pattern.
792         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
793         (nmadd3<mode>_fastmath): New pattern.
794         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
795         (nmsub3<mode>): New pattern.
796         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
797         (nmsub3<mode>_fastmath): New pattern.
798         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
799
800 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
801
802         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
803         (DF_REF_INSN_INFO): New.
804         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
805         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
806         with a NULL DF_REF_INSN_INFO.
807         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
808         DF_INSN_SET.
809         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
810         DF_INSN_INFO_EQ_USES): New.
811         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
812         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
813         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
814         * df-core.c: Update comment for above changes.
815         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
816         DF_INSN_UID_* macros.
817         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
818         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
819         insn rtx.  Update all callers.
820         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
821         df_ref_create_structure, df_insn_refs_collect): Likewise.
822         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
823         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
824         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
825         macros to access the insn refs.
826         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
827         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
828         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
829         for accessing the refs.
830         (try_fwprop_subst): Likewise.
831         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
832         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
833         for accessing the refs.
834         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
835         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
836         to look at the insn refs.
837         (record_uses): Likewise.
838         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
839         function anymore.
840         (mark_artificial_uses): Don't mark_insn for artificial refs.
841         (mark_reg_rependencies): Likewise.
842
843         * doc/rtl.texi: Remove documentation of ADDRESSOF.
844
845 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
846
847         * configure: Regenerate.
848
849 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
850
851         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
852         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
853         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
854
855 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
856
857         * config/avr/avr.c (avr_mcu_t): Add attiny167.
858         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
859         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
860
861 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
862
863         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
864         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
865         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
866
867 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
868
869         * tree-ssa-sccvn.c: Fix format of comments.
870
871 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
872
873         * cgraph.c: Remove unneeded forward declarations of eq_node()
874         and hash_node().
875
876 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
877
878         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
879         REG_RETVAL notes.
880         (see_update_relevancy): Likewise.
881         * fwprop.c (try_fwprop_subst): Likewise.
882         * rtlanal.c (noop_move_p): Likewise.
883         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
884         notes to non-existing libcall blocks.
885         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
886         Remove orig_set.
887         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
888         (dead_libcall_p): Remove.
889         (delete_trivially_dead_insns): Don't use it.
890         * web.c (union_defs): Remove comment about keeping nops.
891         * gcse.c (hash_scan_insn): Don't take libcall pointers.
892         (compute_hash_table_work): Don't track libcall notes.
893         (do_local_cprop): Don't take libcall pointers.  Don't update
894         libcall notes.
895         (adjust_libcall_notes): Deleted.
896         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
897         ever have existed in the first place).
898         (replace_store_insn): Don't try to remove libcall notes.
899         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
900         (resolve_reg_notes): Don't call them.
901         (resolve_simple_move): Likewise.
902         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
903         Don't remove REG_RETVAL notes.
904         * emit-rtl.c (try_split): Don't update libcall notes.
905         (emit_copy_of_insn_after): Dito.
906         * cselib.c (cselib_current_insn_in_libcall): Remove.
907         (cselib_process_insn): Don't set/clear it.
908         (new_elt_loc_list): Don't record it.
909         (cselib_init): Don't initialize it.
910         * cselib.c (struct elt_loc_list): Remove in_libcall field.
911         * loop-invariant.c (find_invariant_insn): Don't look for libcall
912         notes.
913         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
914         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
915         (init_deps): Don't initialize it.
916         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
917         * combine.c (delete_noop_moves): Don't update libcall notes.
918         (can_combine_p): Remove now pointless #if 0 block.
919         (try_combine): Remove another obsolete #if 0 block.
920         (distribute_notes): Don't distribute libcall notes.
921         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
922         * dce.c (libcall_dead_p): Remove.
923         (delete_unmarked_insns): Don't handle libcall blocks.
924         (preserve_libcall_for_dce): Remove.
925         (prescan_insns_for_dce): Don't special-case libcall block insns.
926         * reload1 (reload): Don't handle libcall notes. 
927         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
928         documentation.
929
930 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
931
932         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
933         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
934         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
935
936 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
937
938         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
939         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
940         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
941
942 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
943
944         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
945
946 2008-06-16  Ira Rosen  <irar@il.ibm.com>
947
948         PR tree-optimization/36493
949         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
950         the arguments list. Use VECTYPE to create vector pointer.
951         (vectorizable_store): Fail if accesses through a pointer to vectype
952         do not alias the original memory reference operands.
953         Call vect_create_data_ref_ptr without the removed argument.
954         (vectorizable_load): Likewise.
955         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
956         removed argument.
957
958 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
959
960         PR target/36336
961         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
962         reg_equiv_constant.
963
964 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
965
966         * config/mips/loongson2ef.md: New file.
967         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
968         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
969         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
970         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
971         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
972         and loongson_2f.
973         (loongson2ef.md): New include.
974         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
975         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
976         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
977         (loongson_gt_<mode>, loongson_extract_halfword)
978         (loongson_insert_halfword_0, loongson_insert_halfword_2)
979         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
980         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
981         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
982         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
983         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
984         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
985         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
986         (vec_interleave_low<mode>): Define type attribute.
987         * config/mips/mips.c (mips_ls2): New static variable.
988         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
989         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
990         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
991         Implement target scheduling hooks.
992         (mips_multipass_dfa_lookahead): Update to handle tuning for
993         Loongson 2E/2F.
994         (mips_sched_init): Initialize data for Loongson scheduling.
995         (mips_ls2_variable_issue): New static function.
996         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
997         Add sanity check.
998         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
999         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
1000         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
1001         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
1002         Handle ST Loongson 2E/2F cores.
1003         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
1004
1005 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1006
1007         * omp-low.c (extract_omp_for_data): Fix comment typo.
1008         * c.opt: Fix typo.
1009
1010 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1011
1012         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
1013         FIXME note about gcc/config.guess.
1014         * doc/options.texi (Option file format): Remove non-ASCII bytes.
1015         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
1016         * doc/cppopts.texi: Likewise.
1017         * doc/extend.texi: Likewise.
1018         * doc/gcc.texi: Likewise.
1019         * doc/gccint.texi: Likewise.
1020         * doc/gcov.texi: Likewise.
1021         * doc/gty.texi: Likewise.
1022         * doc/hostconfig.texi: Likewise.
1023         * doc/install.texi: Likewise.
1024         * doc/invoke.texi: Likewise.
1025         * doc/loop.texi: Likewise.
1026         * doc/makefile.texi: Likewise.
1027         * doc/md.texi: Likewise.
1028         * doc/passes.texi: Likewise.
1029         * doc/tm.texi: Likewise.
1030         * doc/tree-ssa.texi: Likewise.
1031         * doc/trouble.texi: Likewise.
1032
1033 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
1034             Nathan Sidwell  <nathan@codesourcery.com>
1035             Maxim Kuvyrkov  <maxim@codesourcery.com>
1036             Richard Sandiford  <rdsandiford@googlemail.com>
1037         
1038         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
1039         * config/mips/mips-protos.h (mips_expand_vector_init): New.
1040         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
1041         builtins.
1042         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
1043         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
1044         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
1045         V8QImode cases.
1046         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
1047         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
1048         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
1049         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
1050         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
1051         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
1052         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
1053         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
1054         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
1055         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
1056         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
1057         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
1058         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
1059         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
1060         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
1061         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
1062         (mips_builtins): Add Loongson builtins.
1063         (mips_loongson_2ef_bdesc): New.
1064         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
1065         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
1066         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
1067         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
1068         New.
1069         (mips_expand_vector_init): New.
1070         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
1071         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
1072         if appropriate.
1073         * config/mips/mips.md: Add unspec numbers for Loongson
1074         builtins.  Include loongson.md.
1075         (MOVE64): Include Loongson vector modes.
1076         (SPLITF): Include Loongson vector modes.
1077         (HALFMODE): Handle Loongson vector modes.
1078         * config/mips/loongson.md: New.
1079         * config/mips/loongson.h: New.
1080         * config.gcc: Add loongson.h header for mips*-*-* targets.
1081         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
1082
1083 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
1084
1085         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
1086         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
1087         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
1088         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
1089         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
1090         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
1091         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
1092         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
1093         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
1094         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
1095         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
1096         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
1097         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
1098         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
1099         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
1100         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
1101         Remove use_fixproto=yes.
1102         (ia64*-*-hpux*): Remove comment about using fixproto.
1103         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
1104
1105 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1106
1107         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
1108         library rebuilds.
1109         * configure: Regenerate.
1110
1111 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1112
1113         PR middle-end/36520
1114         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
1115         before evaluating it.
1116
1117 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
1118
1119         PR c/36507
1120         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
1121         nested inline functions.
1122         (start_decl, start_function): Don't invert DECL_EXTERNAL
1123         for nested inline functions.
1124
1125 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1126
1127         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
1128         splits that must be made for correctness.
1129
1130 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1131
1132         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
1133         (AVAIL_NON_MIPS16): Likewise.
1134         (mips_builtin_description): Replace target_flags with a predicate.
1135         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
1136         (dspr2_32): New availability predicates.
1137         (MIPS_BUILTIN): New macro.
1138         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
1139         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
1140         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
1141         Replace the TARGET_FLAGS parameters with AVAIL parameters.
1142         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
1143         (mips_dsp_32only_bdesc): Merge into...
1144         (mips_builtins): ...this new array.
1145         (mips_bdesc_map, mips_bdesc_arrays): Delete.
1146         (mips_init_builtins): Update after above changes.
1147         (mips_expand_builtin_1): Merge into...
1148         (mips_expand_builtin): ...here and update after above changes.
1149
1150 2008-06-12  Paul Brook  <paul@codesourcery.com>
1151
1152         * longlong.h (__arm__): Define count_leading_zeros.
1153         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
1154         (clzsi2, clzdi2): New functions.
1155         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
1156         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
1157         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
1158         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
1159         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
1160         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
1161         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
1162         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1163         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
1164         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
1165
1166 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
1167
1168         * config/m68k/m68k.c (m68k_tune_flags): New.
1169         (override_options): Compute m68k_tune_flags.
1170         (MULL_COST, MULW_COST): Update for various variants of CFV2.
1171         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
1172
1173 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1174
1175         PR middle-end/36506
1176         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
1177
1178 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1179
1180         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
1181         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
1182
1183 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1184
1185         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
1186         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
1187
1188 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1189
1190         PR middle-end/36506
1191         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
1192         reductions.
1193
1194 2008-06-12  Richard Guenther  <rguenther@suse.de>
1195
1196         PR tree-optimization/36345
1197         * tree-flow.h (struct ptr_info_def): Align escape_mask,
1198         add memory_tag_needed flag.
1199         (may_alias_p): Declare.
1200         * tree-ssa-alias.c (may_alias_p): Export.
1201         (set_initial_properties): Use memory_tag_needed flag.
1202         (update_reference_counts): Likewise.
1203         (reset_alias_info): Reset memory_tag_needed flag.
1204         (create_name_tags): Check memory_tag_needed flag.
1205         (dump_points_to_info_for): Dump it.
1206         * tree-ssa-structalias.c (struct variable_info): Remove
1207         directly_dereferenced flag.
1208         (new_var_info): Do not initialize it.
1209         (process_constraint_1): Do not set it.
1210         (update_alias_info): Set is_dereferenced flag.
1211         (set_uids_in_ptset): Use may_alias_p.
1212         (set_used_smts): Check memory_tag_needed flag.
1213         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
1214         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
1215         memory_tag_needed flag.
1216         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
1217         from broken design.
1218
1219 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
1220
1221         * config/i386/i386.c (ix86_compute_frame_layout): Disable
1222         red zone for w64 abi.
1223         (ix86_expand_prologue): Likewise.
1224         (ix86_force_to_memory): Likewise.
1225         (ix86_free_from_memory): Likewise.
1226
1227 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
1228
1229         PR target/36425
1230         * config/rs6000/rs6000.c (rs6000_override_options): Set
1231         rs6000_isel conditionally to the absence of comand line override.
1232         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
1233         Remove duplicate rs6000_isel setting.
1234         * config/rs6000/eabispe.h: Ditto.
1235
1236 2008-06-11  Richard Guenther  <rguenther@suse.de>
1237
1238         * alias.c (get_alias_set): Use the element alias-set for arrays.
1239         (record_component_aliases): For arrays and vectors do nothing.
1240         * c-common.c (strict_aliasing_warning): Handle the cases
1241         of alias set zero explicitly.
1242         * Makefile.in (dfp.o-warn): Add -Wno-error.
1243
1244 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1245
1246         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
1247         tune_32 tune_64.
1248         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
1249         tune_32 tune_64 to supported_defaults.  Allow values not
1250         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
1251         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
1252         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
1253         with_cpu_64 to generic for 64-bit-supporting configurations, not
1254         with_cpu.  Remove FIXMEs.
1255         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
1256         --with-arch-64, --with-tune-32, --with-tune-64): Document.
1257         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
1258         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
1259         arch_32 and arch_64.
1260
1261 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1262             Olivier Hainque  <hainque@adacore.com>
1263
1264         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
1265         Use DECL_SIZE_UNIT to retrieve the size of the field.
1266
1267 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1268
1269         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
1270         with function calls after declarations.  Lay out
1271         neon_float_type_node before further use.
1272
1273 2008-06-11  Richard Guenther  <rguenther@suse.de>
1274
1275         * tree-flow.h (may_point_to_global_var): Declare.
1276         * tree-ssa-alias.c (may_point_to_global_var): New function.
1277         * tree-ssa-sink.c (is_hidden_global_store): Use it.
1278
1279 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
1280
1281         * configure.ac: Teach that fido supports .debug_line.
1282         * configure: Regenerate.
1283
1284 2008-06-10  Tom Tromey  <tromey@redhat.com>
1285
1286         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
1287         debug hook.
1288
1289 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1290
1291         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
1292         (encode_decimal64, decode_decimal64, encode_decimal128,
1293         decode_decimal128): Reverse order of 32-bit parts of value if host
1294         and target endianness differ.
1295
1296 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
1297
1298         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
1299         Avoid division by 0.
1300         (tree_mod_pow2_value_transform): Likewise.
1301         (tree_ic_transform): Likewise.
1302         (tree_stringops_transform): Likewise.
1303         (tree_mod_subtract_transform): Likewise.
1304         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
1305         (copy_edges_for_bb): Likewise.
1306         (initialize_cfun): Likewise.
1307
1308 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1309
1310         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
1311         nonmemory_operand. Add "N" operand constraint.
1312         (*btsi): Ditto.
1313         (*jcc_btdi_mask_rex64): New instruction and split pattern.
1314         (*jcc_btsi_mask): Ditto.
1315         (*jcc_btsi_mask_1): Ditto.
1316
1317 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1318
1319         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
1320         TYPE_CANONICAL for copied element type.
1321
1322 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1323
1324         PR target/36473
1325         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
1326         Add m_CORE2 and m_GENERIC.
1327         * config/i386/predicates.md (bt_comparison_operator): New predicate.
1328         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
1329         (*btsi): Ditto.
1330         (*jcc_btdi_rex64): New instruction and split pattern.
1331         (*jcc_btsi): Ditto.
1332         (*jcc_btsi_1): Ditto.
1333         (*btsq): Fix Intel asm dialect operand order.
1334         (*btrq): Ditto.
1335         (*btcq): Ditto.
1336
1337 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
1338
1339         PR middle-end/36447
1340         * simplify-rtx.c (simplify_subreg): Add check for shift count 
1341         greater than size.
1342
1343 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
1344
1345         * doc/md.texi: Synchronize with later constraints.md change.
1346         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
1347         with a C implementation.
1348         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
1349         MFLO handling.
1350         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
1351         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
1352         when moving to and from MD_REGNUM.
1353         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
1354         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
1355         Handle byte and halfword moves.
1356         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
1357         separately.
1358         * config/mips/constraints.md (h): Turn into NO_REGS.
1359         (l, x): Update documentation.
1360         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
1361         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
1362         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
1363         (HILO): New mode iterator.
1364         (MOVE128): Add TI.
1365         (any_div): New code iterator.
1366         (u): Extend code attribute to div and udiv.
1367         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
1368         d_operand in the splitters.  Remove redundant CONST_INT checks.
1369         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
1370         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
1371         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
1372         accordingly, using normal moves instead of unspecs to move LO into
1373         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
1374         (<u>mulsidi3): Handle expansion in C code.
1375         (<u>mulsidi3_32bit_internal): Rename to...
1376         (<u>mulsidi3_32bit): ...this.
1377         (<u>mulsidi3_32bit_r4000): Fix insn separator.
1378         (*<u>mulsidi3_64bit): Rename to...
1379         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
1380         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
1381         to set LO and HI to the multiplication result.  Use a normal move
1382         for MFLO and an unspec for MFHI.
1383         (*<u>mulsidi3_64bit_parts): Replace with...
1384         (<u>mulsidi3_64bit_hilo): ...this new instruction.
1385         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
1386         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
1387         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
1388         instead of HI.  Split the instruction into a separate multiplication
1389         and MFHI if !TARGET_FIX_R4000.
1390         (<su>muldi3_highpart): Likewise.
1391         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
1392         and the "=h" clobber.
1393         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
1394         (<u>mulditi3): New expander.
1395         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
1396         (madsi): Remove "=h" clobber.
1397         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
1398         Force the modulus result to be a GPR and split the instruction into
1399         a division followed by an MFHI after reload.
1400         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
1401         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
1402         the MIPS16 HIGH define_split.
1403         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
1404         of acc<->gpr moves to "multi".
1405         (*movdi_64bit): Replace the single "x" alternative with
1406         alternatives for moving into and out of "a".
1407         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
1408         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
1409         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
1410         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
1411         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
1412         (movti): New expander.
1413         (*movti, *movti_mips16): New insns.
1414         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
1415         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
1416         (mthi<GPR:mode>_<HILO:mode>): Likewise.
1417         * config/mips/predicates.md (fpr_operand): Delete.
1418         (d_operand): New predicate.
1419
1420 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
1421
1422         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
1423         failure on some Bourne shells.
1424         (x86_64-*-*): Ditto.
1425
1426 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
1427
1428         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
1429
1430 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1431
1432         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
1433         (sparc-sun-solaris2*): Likewise.
1434
1435 2008-06-09  Arnaud Charlet  <charlet@adacore.com
1436
1437         * doc/install.texi: Update requirements to build the Ada compiler.
1438
1439 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
1440
1441         * df-scan.c (struct df_scan_problem_data): Remove the
1442         mw_link_pool alloc pool.
1443         (df_scan_free_internal): Don't free it.
1444         (df_scan_alloc): Don't allocate it.
1445         * df.h (struct df_link): Update comment.
1446
1447 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1448
1449         * except.h: Correct checks for when SJLJ exceptions must be used.
1450
1451 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1452
1453         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
1454         default.
1455         
1456 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
1457
1458         PR tree-optimization/36218
1459         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
1460         configure for the build system.
1461         (BUILD_LDFLAGS): Define.
1462         * configure: Regenerate.
1463         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
1464
1465 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
1466
1467         PR target/36424
1468         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
1469         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
1470         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
1471
1472 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
1473
1474         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
1475
1476 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
1477
1478         * config.gcc (Obsolete configurations): Remove list of
1479         configurations.
1480         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
1481         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
1482         targets matched by those patterns.
1483         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
1484         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
1485         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
1486         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
1487         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
1488         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1489         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
1490         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
1491         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
1492         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
1493         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
1494         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
1495         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
1496         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
1497         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
1498         Make code for Solaris 7 and greater unconditional for Solaris.
1499         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
1500         Remove --with-* handling.
1501         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
1502         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
1503         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
1504         LINK_OS_WINDISS_SPEC): Remove.
1505         * config/rs6000/sysv4.opt (mwindiss): Remove.
1506         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
1507         * configure: Regenerate.
1508         * doc/cpp.texi: Don't mention BeOS.
1509         * doc/extend.texi (interrupt): Don't mention MS1.
1510         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
1511         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
1512         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
1513         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
1514         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
1515         Remove.
1516         * doc/invoke.texi (MT Options): Remove.
1517         (-mwindiss): Remove.
1518         (CRIS Options): Remove cris-axis-aout references.
1519         (HPPA Options): Don't mention hppa1.1-*-pro.
1520         * doc/md.texi: (MorphoTech family): Remove.
1521         * libgcc2.c: Don't handle UWIN.
1522         * config/alpha/t-unicosmk: Remove.
1523         * config/alpha/unicosmk.h: Remove.
1524         * config/arm/kaos-arm.h: Remove.
1525         * config/arm/kaos-strongarm.h: Remove.
1526         * config/arm/strongarm-coff.h: Remove.
1527         * config/arm/strongarm-elf.h: Remove.
1528         * config/arm/strongarm-pe.h: Remove.
1529         * config/arm/t-strongarm-pe: Remove.
1530         * config/arm/t-xscale-coff: Remove.
1531         * config/arm/t-xscale-elf: Remove.
1532         * config/arm/xscale-coff.h: Remove.
1533         * config/arm/xscale-elf.h: Remove.
1534         * config/chorus.h: Remove.
1535         * config/cris/aout.h: Remove.
1536         * config/cris/aout.opt: Remove.
1537         * config/cris/t-aout: Remove.
1538         * config/i386/beos-elf.h: Remove.
1539         * config/i386/kaos-i386.h: Remove.
1540         * config/i386/ptx4-i.h: Remove.
1541         * config/i386/sco5.h: Remove.
1542         * config/i386/sco5.opt: Remove.
1543         * config/i386/sysv4-cpp.h: Remove.
1544         * config/i386/sysv5.h: Remove.
1545         * config/i386/t-beos: Remove.
1546         * config/i386/t-sco5: Remove.
1547         * config/i386/t-uwin: Remove.
1548         * config/i386/uwin.asm: Remove.
1549         * config/i386/uwin.h: Remove.
1550         * config/kaos.h: Remove.
1551         * config/mips/windiss.h: Remove.
1552         * config/mt: Remove directory.
1553         * config/pa/pa-osf.h: Remove.
1554         * config/pa/pa-pro-end.h: Remove.
1555         * config/pa/t-pro: Remove.
1556         * config/ptx4.h: Remove.
1557         * config/rs6000/beos.h: Remove.
1558         * config/rs6000/kaos-ppc.h: Remove.
1559         * config/rs6000/t-beos: Remove.
1560         * config/rs6000/windiss.h: Remove.
1561         * config/sh/kaos-sh.h: Remove.
1562         * config/sol2-6.h: Remove.
1563         * config/sparc/sol26-sld.h: Remove.
1564         * config/sparc/sysv4-only.h: Remove.
1565         * config/vax/bsd.h: Remove.
1566         * config/vax/t-memfuncs: Remove.
1567         * config/vax/ultrix.h: Remove.
1568         * config/vax/vaxv.h: Remove.
1569         * config/windiss.h: Remove.
1570
1571 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1572
1573         PR rtl-optimization/36438
1574         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
1575         for vector shifts with constant scalar shift operands.
1576
1577 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
1578
1579         * doc/invoke.texi: Document -march=xlr.
1580         * config/mips/xlr.md: New file.
1581         * config/mips/mips.md: Include it.
1582         (cpu): Add "xlr".
1583         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
1584         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
1585         (mips_rtx_cost_data): Likewise.
1586
1587 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
1588
1589         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
1590         PRE_INC and PRE_DEC cases.
1591
1592 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1593
1594         PR rtl-optimization/36419
1595         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
1596         the emitting jump insn.
1597
1598         PR target/36362
1599         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
1600         is not bool, boolify the whole *expr_p and convert to the desired type.
1601
1602 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1603
1604         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
1605         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
1606         Add omp_private_outer_ref hook, add another argument to
1607         omp_clause_default_ctor hook.
1608         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1609         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1610         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
1611         hook_tree_tree_tree_tree_null.
1612         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
1613         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
1614         * hooks.c (hook_tree_tree_tree_tree_null): New function.
1615         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
1616         * tree.def (OMP_TASK): New tree code.
1617         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
1618         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
1619         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
1620         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
1621         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
1622         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
1623         OMP_CLAUSE_COLLAPSE_EXPR): Define.
1624         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1625         (OMP_DIRECTIVE_P): Add OMP_TASK.
1626         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1627         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1628         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1629         and OMP_CLAUSE_UNTIED entries.
1630         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
1631         num_ops to 2.
1632         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1633         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1634         * tree-pretty-print.c (dump_omp_clause): Handle
1635         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1636         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1637         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1638         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
1639         warning about unsigned iterators.  Change decl/init/cond/incr
1640         arguments to TREE_VECs, check arguments for all collapsed loops.
1641         (c_finish_omp_taskwait): New function.
1642         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1643         ws_clauses.
1644         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
1645         default_function_array_conversion on init.  Add par_clauses argument.
1646         If decl is present in parallel's lastprivate clause, change it to
1647         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1648         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
1649         collapse count in clauses.
1650         (c_parser_omp_for, c_parser_omp_parallel): Adjust
1651         c_parser_omp_for_loop callers.
1652         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1653         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1654         (c_parser_omp_clause_name): Handle collapse and untied clauses.
1655         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1656         functions.
1657         (c_parser_omp_clause_schedule): Handle schedule(auto).
1658         Include correct location in the error message.
1659         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1660         and PRAGMA_OMP_CLAUSE_UNTIED.
1661         (OMP_TASK_CLAUSE_MASK): Define.
1662         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1663         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1664         * tree-nested.c (convert_nonlocal_omp_clauses,
1665         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1666         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1667         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1668         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1669         OMP_CLAUSE_DECL.
1670         (conver_nonlocal_reference, convert_local_reference,
1671         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
1672         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1673         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1674         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1675         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1676         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
1677         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
1678         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
1679         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1680         OMP_CLAUSE_UNTIED.
1681         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
1682         * c-common.h (c_finish_omp_taskwait): New prototype.
1683         * gimple-low.c (lower_stmt): Handle OMP_TASK.
1684         * tree-parloops.c (create_parallel_loop): Create 1 entry
1685         vectors for OMP_FOR_{INIT,COND,INCR}.
1686         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1687         (make_edges): Handle OMP_TASK.
1688         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
1689         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1690         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
1691         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
1692         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1693         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1694         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1695         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1696         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
1697         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
1698         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
1699         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
1700         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
1701         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
1702         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
1703         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
1704         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
1705         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
1706         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
1707         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
1708         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
1709         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
1710         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
1711         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
1712         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
1713         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
1714         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
1715         original iterator is present in lastprivate clause or if
1716         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
1717         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1718         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
1719         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
1720         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
1721         if it is set, lookup var in outer contexts too.  Handle
1722         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
1723         to be implicitly determined firstprivate for task regions.
1724         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
1725         if it is set, lookup var in outer contexts too.  Set
1726         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
1727         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
1728         OMP_CLAUSE_UNTIED.  Take region_type as last argument
1729         instead of in_parallel and in_combined_parallel.
1730         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1731         Adjust callers.
1732         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
1733         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
1734         (new_omp_context): Set default_kind to
1735         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
1736         (omp_region_type): New enum.
1737         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
1738         fields, add region_type.
1739         (new_omp_context): Take region_type as argument instead of is_parallel
1740         and is_combined_parallel.
1741         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
1742         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
1743         ctx->is_combined_parallel checks.
1744         (gimplify_omp_task): New function.
1745         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1746         OMP_CLAUSE_UNTIED.
1747         * omp-low.c (extract_omp_for_data): Use schedule(static)
1748         for schedule(auto).  Handle pointer and unsigned iterators.
1749         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
1750         Add loops argument.  Extract data for collapsed OMP_FOR loops.
1751         (expand_parallel_call): Assert sched_kind isn't auto,
1752         map runtime schedule to index 3.
1753         (struct omp_for_data_loop): New type.
1754         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
1755         Add loop, loops, collapse and iter_type fields.
1756         (workshare_safe_to_combine_p): Disallow combined for if
1757         iter_type is unsigned long long.  Don't combine collapse > 1 loops
1758         unless all bounds and steps are constant.  Adjust extract_omp_for_data
1759         caller.
1760         (expand_omp_for_generic): Handle pointer, unsigned and long long
1761         iterators.  Handle collapsed OMP_FOR loops.  Adjust
1762         for struct omp_for_data changes.  If libgomp function doesn't return
1763         boolean_type_node, add comparison of the return value with 0.
1764         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
1765         pointer, unsigned and long long iterators.  Adjust for struct
1766         omp_for_data changes.
1767         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
1768         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
1769         unsigned long long.  Allocate loops array, pass it to
1770         extract_omp_for_data.  For collapse > 1 loops use always
1771         expand_omp_for_generic.
1772         (omp_context): Add sfield_map and srecord_type fields.
1773         (is_task_ctx, lookup_sfield): New functions.
1774         (use_pointer_for_field): Use is_task_ctx helper.  Change first
1775         argument's type from const_tree to tree.  Clarify comment.
1776         In OMP_TASK disallow copy-in/out sharing.
1777         (build_sender_ref): Call lookup_sfield instead of lookup_field.
1778         (install_var_field): Add mask argument.  Populate both record_type
1779         and srecord_type if needed.
1780         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
1781         in srecord_type.
1782         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
1783         and DECL_FIELD_OFFSET.
1784         (scan_sharing_clauses): Adjust install_var_field callers.  For
1785         firstprivate clauses on explicit tasks allocate the var by value in
1786         record_type unconditionally, rather than by reference.
1787         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
1788         Use is_taskreg_ctx instead of is_parallel_ctx.
1789         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1790         (create_omp_child_function_name): Add task_copy argument, use
1791         *_omp_cpyfn* names if it is true.
1792         (create_omp_child_function): Add task_copy argument, if true create
1793         *_omp_cpyfn* helper function.
1794         (scan_omp_parallel): Adjust create_omp_child_function callers.
1795         Rename parallel_nesting_level to taskreg_nesting_level.
1796         (scan_omp_task): New function.
1797         (lower_rec_input_clauses): Don't run constructors for firstprivate
1798         explicit task vars which are initialized by *_omp_cpyfn*.  
1799         Pass outer var ref to omp_clause_default_ctor hook if
1800         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
1801         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
1802         OMP_CLAUSE_REDUCTION_INIT.
1803         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
1804         avoid duplicate setting of fields.  Handle
1805         OMP_CLAUSE_PRIVATE_OUTER_REF.
1806         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
1807         copy-out if TREE_READONLY, only copy-in.
1808         (expand_task_copyfn): New function.
1809         (expand_task_call): New function.
1810         (struct omp_taskcopy_context): New type.
1811         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
1812         New functions.
1813         (lower_omp_parallel): Rename to...
1814         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1815         Call create_task_copyfn if srecord_type is needed.  Adjust
1816         sender_decl type.
1817         (task_shared_vars): New variable.
1818         (check_omp_nesting_restrictions): Warn if work-sharing,
1819         barrier, master or ordered region is closely nested inside OMP_TASK.
1820         Add warnings for barrier if closely nested inside of work-sharing,
1821         ordered, or master region.
1822         (scan_omp_1): Call check_omp_nesting_restrictions even for
1823         GOMP_barrier calls.  Rename parallel_nesting_level to
1824         taskreg_nesting_level.  Handle OMP_TASK.
1825         (lower_lastprivate_clauses): Even if some lastprivate is found on a
1826         work-sharing construct, continue looking for them on parent parallel
1827         construct.
1828         (lower_omp_for_lastprivate): Add lastprivate clauses
1829         to the beginning of dlist rather than end.  Adjust for struct
1830         omp_for_data changes.
1831         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
1832         not after it.  Handle collapsed OMP_FOR loops, adjust for
1833         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
1834         (get_ws_args_for): Adjust extract_omp_for_data caller.
1835         (scan_omp_for): Handle collapsed OMP_FOR
1836         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1837         (lower_omp_single_simple): If libgomp function doesn't return
1838         boolean_type_node, add comparison of the return value with 0.
1839         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
1840         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
1841         (parallel_nesting_level): Rename to...
1842         (taskreg_nesting_level): ... this.
1843         (is_taskreg_ctx): New function.
1844         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
1845         of is_parallel_ctx.
1846         (execute_lower_omp): Rename parallel_nesting_level to
1847         taskreg_nesting_level.
1848         (expand_omp_parallel): Rename to...
1849         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1850         Call omp_task_call for OMP_TASK regions.
1851         (expand_omp): Adjust caller, handle OMP_TASK.
1852         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
1853
1854         * bitmap.c (bitmap_default_obstack_depth): New variable.
1855         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
1856         if argument is NULL and bitmap_default_obstack is already initialized.
1857         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
1858         at the end.
1859         * matrix-reorg.c (matrix_reorg): Likewise.
1860
1861 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
1862
1863         * config/i386/i386.md (*indirect_jump): Macroize using P
1864         mode iterator.  Remove !TARGET_64BIT from insn constraints.
1865         (*tablejump_1): Ditto.
1866         (*indirect_jump_rex64): Remove insn pattern.
1867         (*tablejump_1_rex64): Ditto.
1868         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
1869         and eh_return_si insn patterns.
1870
1871 2008-06-06  Richard Guenther  <rguenther@suse.de>
1872
1873         * tree-ssa-structalias.c (merge_smts_into): Remove.
1874         (find_what_p_points_to): Do not bother to compute the
1875         points-to set for pt_anything pointers.
1876         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1877         for pt_anything pointers is ok.
1878
1879 2008-06-06  Jan Hubicka  <jh@suse.cz>
1880
1881         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1882
1883 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1884
1885         * cgraph.c: Fix typos in comments.
1886         (cgraph_availability_names): Fix string typo.
1887         * fold-const.c: Fix typos in comments.
1888         (fold_binary): Fix typo in warning.
1889         * genautomata.c: Fix typos in comments.
1890         (check_presence_pattern_sets): Fix typo in local variable.
1891         (output_description): Fix typo in output.
1892         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1893         * hwint.h: Likewise.
1894         * matrix-reorg.c (check_allocation_function): Likewise.
1895         * omega.c (smooth_weird_equations): Likewise.
1896         * auto-inc-dec.c: Fix typos in comments.
1897         * bb-reorder.c: Likewise.
1898         * builtins.c: Likewise.
1899         * c-common.c: Likewise.
1900         * c-cppbuiltin.c: Likewise.
1901         * c-parser.c: Likewise.
1902         * c-pretty-print.c: Likewise.
1903         * cfgcleanup.c: Likewise.
1904         * cfgexpand.c: Likewise.
1905         * cfghooks.c: Likewise.
1906         * cfglayout.c: Likewise.
1907         * cfgloopmanip.c: Likewise.
1908         * cgraphunit.c: Likewise.
1909         * coverage.c: Likewise.
1910         * dbxout.c: Likewise.
1911         * df-byte-scan.c: Likewise.
1912         * df-core.c: Likewise.
1913         * df-problems.c: Likewise.
1914         * df-scan.c: Likewise.
1915         * dfp.c: Likewise.
1916         * dominance.c: Likewise.
1917         * domwalk.c: Likewise.
1918         * dse.c: Likewise.
1919         * dwarf2out.c: Likewise.
1920         * emit-rtl.c: Likewise.
1921         * et-forest.c: Likewise.
1922         * function.c: Likewise.
1923         * function.h: Likewise.
1924         * gcc.c: Likewise.
1925         * gcov-io.c: Likewise.
1926         * gcov.c: Likewise.
1927         * gcse.c: Likewise.
1928         * genattrtab.c: Likewise.
1929         * ggc-page.c: Likewise.
1930         * gimplify.c: Likewise.
1931         * gthr-lynx.h: Likewise.
1932         * haifa-sched.c: Likewise.
1933         * ipa-cp.c: Likewise.
1934         * ipa-inline.c: Likewise.
1935         * ipa-prop.h: Likewise.
1936         * ipa-pure-const.c: Likewise.
1937         * ipa-struct-reorg.c: Likewise.
1938         * ipa-struct-reorg.h: Likewise.
1939         * ipa-type-escape.c: Likewise.
1940         * ipa.c: Likewise.
1941         * loop-doloop.c: Likewise.
1942         * mips-tfile.c: Likewise.
1943         * mkmap-flat.awk: Likewise.
1944         * mkmap-symver.awk: Likewise.
1945         * modulo-sched.c: Likewise.
1946         * omp-low.c: Likewise.
1947         * optabs.c: Likewise.
1948         * optabs.h: Likewise.
1949         * opts.c: Likewise.
1950         * passes.c: Likewise.
1951         * postreload-gcse.c: Likewise.
1952         * postreload.c: Likewise.
1953         * predict.c: Likewise.
1954         * pretty-print.h: Likewise.
1955         * profile.c: Likewise.
1956         * protoize.c: Likewise.
1957         * ra-conflict.c: Likewise.
1958         * real.c: Likewise.
1959         * recog.c: Likewise.
1960         * regclass.c: Likewise.
1961         * regs.h: Likewise.
1962         * reload.c: Likewise.
1963         * rtl-error.c: Likewise.
1964         * rtlanal.c: Likewise.
1965         * scan.h: Likewise.
1966         * sched-rgn.c: Likewise.
1967         * see.c: Likewise.
1968         * stmt.c: Likewise.
1969         * target.h: Likewise.
1970         * tree-dfa.c: Likewise.
1971         * tree-eh.c: Likewise.
1972         * tree-flow-inline.h: Likewise.
1973         * tree-inline.c: Likewise.
1974         * tree-into-ssa.c: Likewise.
1975         * tree-loop-distribution.c: Likewise.
1976         * tree-nested.c: Likewise.
1977         * tree-parloops.c: Likewise.
1978         * tree-pass.h: Likewise.
1979         * tree-pretty-print.c: Likewise.
1980         * tree-profile.c: Likewise.
1981         * tree-scalar-evolution.c: Likewise.
1982         * tree-sra.c: Likewise.
1983         * tree-ssa-alias-warnings.c: Likewise.
1984         * tree-ssa-ccp.c: Likewise.
1985         * tree-ssa-coalesce.c: Likewise.
1986         * tree-ssa-dom.c: Likewise.
1987         * tree-ssa-dse.c: Likewise.
1988         * tree-ssa-forwprop.c: Likewise.
1989         * tree-ssa-live.c: Likewise.
1990         * tree-ssa-live.h: Likewise.
1991         * tree-ssa-loop-im.c: Likewise.
1992         * tree-ssa-loop-ivopts.c: Likewise.
1993         * tree-ssa-loop-niter.c: Likewise.
1994         * tree-ssa-loop-prefetch.c: Likewise.
1995         * tree-ssa-phiopt.c: Likewise.
1996         * tree-ssa-phiprop.c: Likewise.
1997         * tree-ssa-sccvn.c: Likewise.
1998         * tree-ssa-ter.c: Likewise.
1999         * tree-ssa-threadupdate.c: Likewise.
2000         * tree-ssa.c: Likewise.
2001         * tree-vect-analyze.c: Likewise.
2002         * tree-vect-transform.c: Likewise.
2003         * tree-vectorizer.c: Likewise.
2004         * tree-vn.c: Likewise.
2005         * tree-vrp.c: Likewise.
2006         * tree.c: Likewise.
2007         * tree.def: Likewise.
2008         * tree.h: Likewise.
2009         * unwind-dw2-fde.c: Likewise.
2010         * unwind.inc: Likewise.
2011         * value-prof.c: Likewise.
2012         * vmsdbgout.c: Likewise.
2013
2014 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
2015
2016         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
2017         always place FP constants in the TOC for TARGET_POWERPC64.
2018         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
2019
2020 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
2021
2022         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
2023         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
2024         enable for TARGET_E500_DOUBLE.
2025         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
2026         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
2027         floating-point modes like integer modes for E500 double.
2028         (rs6000_legitimate_offset_address_p): Likewise.
2029         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
2030         addressing for DDmode for E500 double.
2031         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
2032         modes as using 64-bits of registers for E500 double.
2033         (spe_build_register_parallel): Do not handle DDmode or TDmode.
2034         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
2035         specially for E500 double.
2036         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
2037         TDmode for E500 double.
2038         (rs6000_gimplify_va_arg): Only handle SDmode in registers
2039         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
2040         (rs6000_split_multireg_move): Do not handle TDmode specially for
2041         E500 double.
2042         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
2043         using 64-bit registers for E500 double.
2044         (emit_frame_save): Do not handle DDmode specially for E500 double.
2045         (gen_frame_mem_offset): Likewise.
2046         (rs6000_function_value): Do not call spe_build_register_parallel
2047         for DDmode or TDmode.
2048         (rs6000_libcall_value): Likewise.
2049         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
2050         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
2051         for E500 double.
2052
2053 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
2054
2055         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
2056         in comments.
2057
2058 2008-06-04  Junjie Gu <jgu@tensilica.com>
2059
2060         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
2061         comparison for frame pointers.
2062
2063 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2064
2065         PR target/27386
2066         * config/avr/avr.h (PUSH_ROUNDING): Remove.
2067
2068 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2069
2070         PR target/30243
2071         * builtins.c (expand_builtin_signbit): Don't take lowpart when
2072         register is already smaller or equal to required mode. 
2073
2074 2008-06-04  Xinliang David Li  <davidxl@google.com>
2075
2076         * tree-call-cdce.c: New file. 
2077         (cond_dead_built_in_calls): New static variable.
2078         (input_domain): New struct.
2079         (check_pow): New function.
2080         (check_builtin_call): Ditto.
2081         (check_target_format): Ditto.
2082         (is_call_dce_candidate): Ditto.
2083         (gen_one_condition): Ditto.
2084         (gen_conditions_for_domain): Ditto.
2085         (get_domain): Ditto.
2086         (gen_conditions_for_pow_cst_base): Ditto.
2087         (gen_conditions_for_pow_int_base): Ditto.
2088         (gen_conditions_for_pow): Ditto.
2089         (get_no_error_domain): Ditto.
2090         (gen_shrink_wrap_conditions): Ditto.
2091         (shrink_wrap_one_built_in_call): Ditto.
2092         (shink_wrap_conditional_dead_built_in_calls): Ditto.
2093         (tree_call_cdce): Ditto.
2094         (gate_call_cdce): Ditto.
2095         (pass_call_cdce): New gimple pass.
2096         * passes.c: (init_optimization_passes): New pass.
2097         * tree-pass.h: New pass declaration.
2098         * opts.c (decode_options): New flag setting.
2099         * common.opt: Add -ftree-builtin-call-dce flag.
2100         * Makefile.in: Add new source file.
2101         * tempvar.def: New tv_id.
2102         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
2103
2104 2008-06-04  Richard Guenther  <rguenther@suse.de>
2105
2106         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
2107         (is_call_clobbered): Always check var_ann->call_clobbered.
2108         (mark_call_clobbered): Always set var_ann->call_clobbered.
2109         (clear_call_clobbered): Always clear var_ann->call_clobbered.
2110         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
2111         (reset_alias_info): Clear call clobbering info on MTAGs and
2112         globals as well.
2113         (set_pt_anything): Set pt_global_mem.
2114         (create_tag_raw): Adjust comment.
2115         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
2116
2117 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
2118             Maxim Kuvyrkov  <maxim@codesourcery.com>
2119
2120         * config/m68k/m68k.opt (mxgot): New option.
2121         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
2122         (m68k_output_addr_const_extra): New.
2123         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
2124         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
2125         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
2126         * doc/invoke.texi (M680x0 Options): Document -mxgot.
2127
2128 2008-06-04  Richard Guenther  <rguenther@suse.de>
2129
2130         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
2131         negative or non-representable offsets.
2132
2133 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2134
2135         * config/i386/i386.c (ix86_gen_leave): New.
2136         (ix86_gen_pop1): Likewise.
2137         (ix86_gen_add3): Likewise.
2138         (ix86_gen_sub3): Likewise.
2139         (ix86_gen_sub3_carry): Likewise.
2140         (ix86_gen_one_cmpl2): Likewise.
2141         (ix86_gen_monitor): Likewise.
2142         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
2143         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
2144         ix86_gen_one_cmpl2 and ix86_gen_monitor.
2145         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
2146         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
2147         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
2148         (ix86_expand_epilogue): Updated.
2149         (print_operand): Handle integer register operand for 'z'.
2150         (ix86_expand_strlensi_unroll_1): Likewise.
2151         (ix86_expand_strlen): Likewise.
2152         (ix86_expand_builtin): Likewise.
2153         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
2154         mov{q}/mov{l} and add{q}/add{l}.
2155
2156 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2157
2158         * config/i386/i386.md (P): New mode iterator.
2159         (SFmode push_operand splitter): Macroize DImode and SImode pushes
2160         using P mode iterator.
2161         (DFmode push_operand splitter): Ditto.
2162         (XFmode push_operand splitter): Ditto.
2163         (DFmode float_extend SFmode push_operand splitter): Ditto.
2164         (XFmode float_extend SFmode push_operand splitter): Do not generate
2165         SImode pushes for 64bit target.  Macroize Dimode and SImode
2166         pushes using P mode iterator.
2167         (XFmode float_extend DFmode push_operand splitter): Ditto.
2168
2169 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2170
2171         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
2172         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
2173         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
2174         return type to int.
2175         (ix86_call_abi_override): Remove check for call_used_regs.
2176
2177 2008-06-03  Richard Guenther  <rguenther@suse.de>
2178
2179         * tree-ssa-structalias.c (find_func_aliases): Add constraints
2180         for the lhs of calls if the return type contains pointers.
2181
2182 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2183
2184         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
2185         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
2186         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
2187         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
2188         of cfun and DEFAULT_ABI to deceide abi mode.
2189         (DEFAULT_ABI): New.
2190         (REG_PARM_STACK_SPACE): Removed.
2191         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
2192         (STACK_BOUNDARY): Use default target to deceide stack boundary.
2193         * config/i386/i386-protos.h (ix86_cfun_abi): New.
2194         (ix86_function_abi): Likewise.
2195         (ix86_function_type_abi): Likewise.
2196         (ix86_call_abi_override): Likewise.
2197         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
2198         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
2199         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
2200         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
2201         specific defines.
2202         (X86_64_REGPARM_MAX): New.
2203         (X86_64_SSE_REGPARM_MAX): New.
2204         (X64_REGPARM_MAX): New.
2205         (X64_SSE_REGPARM_MAX): New.
2206         (X86_32_REGPARM_MAX): New.
2207         (X86_32_SSE_REGPARM_MAX): New.
2208         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
2209         (ix86_function_regparm): Handle user calling abi.
2210         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
2211         by DEFAULT_ABI versus SYSV_ABI check.
2212         (ix86_reg_parm_stack_space): New.
2213         (ix86_function_type_abi): New.
2214         (ix86_call_abi_override): New.
2215         (ix86_function_abi): New.
2216         (ix86_cfun_abi): New.
2217         (init_cumulative_args): Call abi specific initialization.
2218         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
2219         (function_arg_64): Extend SSE_REGPARM_MAX check.
2220         (function_arg (): Remove TARGET_64BIT_MS_ABI.
2221         (ix86_pass_by_reference): Likewise.
2222         (ix86_function_value_regno_p): Likewise.
2223         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
2224         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
2225         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
2226         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
2227         (setup_incoming_varargs_64): Adjust regparm for call abi.
2228         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
2229         (ix86_va_start): Likewise.
2230         (ix86_gimplify_va_arg): Likewise.
2231         (ix86_expand_prologue): Likewise.
2232         (output_pic_addr_const): Likewise.
2233         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
2234         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
2235         (x86_output_mi_thunk): Likewise.
2236         (x86_function_profiler): Likewise.
2237         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
2238         (SYSV_ABI, MS_ABI): New constants.
2239         (DEFAULT_ABI): New.
2240         (init_regs): Add prototype of function in regclass.c file.
2241         (OVERRIDE_ABI_FORMAT): New.
2242         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
2243         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
2244         (OUTGOING_REG_PARM_STACK_SPACE): New.
2245         (ix86_reg_parm_stack_space): New prototype.
2246         (CUMULATIVE_ARGS): Add call_abi member.
2247         (machine_function): Add call_abi member.
2248         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
2249         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
2250
2251 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
2252
2253         PR target/34879
2254         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
2255         (avr_builtin_setjmp_frame_value): New function.
2256         * config/avr/avr.md (nonlocal_goto_receiver): Define.
2257         (nonlocal_goto): Define.
2258
2259 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
2260
2261         * config/mips/mips.c (mips_emit_loadgp): Return early if
2262         there is nothing do to, otherwise emit a blockage if
2263         !TARGET_EXPLICIT_RELOCS || crtl->profile.
2264         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
2265
2266 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2267
2268         * configure.ac: Drop unneeded backslash ending up in config.in.
2269         * acinclude.m4: Likewise.
2270         * config.in: Regenerate.
2271
2272 2008-05-26  Jan Hubicka  <jh@suse.cz>
2273
2274         * predict.c (maybe_hot_frequency_p): Break out of...
2275         (maybe_hot_bb_p): ... here.
2276         (maybe_hot_edge_p): New.
2277         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
2278         * basic-block.h (maybe_hot_edge_p): Declare.
2279
2280 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2281
2282         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
2283         (*cmpfp_<mode>_cc): Ditto.
2284         (*fp_jcc_8<mode>_387): Ditto.
2285         (*fop_<MODEF:mode>_2_i387): Ditto.
2286         (*fop_<MODEF:mode>_3_i387): Ditto.
2287         (*fop_xf_2_i387): Ditto.
2288         (*fop_xf_3_i387): Ditto.
2289
2290 2008-06-02  Tomas Bily  <tbily@suse.cz>
2291
2292         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
2293
2294 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2295
2296         * config/mips/mips.c (mips_valid_offset_p): New function.
2297         (mips_valid_lo_sum_p): Likewise.
2298         (mips_classify_address): Use them.
2299         (mips_force_address): New function.
2300         (mips_legitimize_address): Use it.
2301         * config/mips/mips.md (MOVE128): New mode iterator.
2302         (movtf): Require TARGET_64BIT.  Remove empty strings.
2303         (*movtf_internal): Rename to...
2304         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
2305         of "R" and use {,fp}{load,store} attributes instead of "multi".
2306         Use a separate define_split.
2307         (*movtf_mips16): New pattern.
2308
2309 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2310
2311         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
2312         * config/mips/mips.c (mips_expand_before_return): New function.
2313         (mips_expand_epilogue): Call it.
2314         * config/mips/mips.md (return): Turn into a define_expand.
2315         (*return): New insn.
2316
2317 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2318
2319         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
2320         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
2321         functions.  Do not emit uses and clobbers of CONCATs; individually
2322         use and clobber their operands.
2323         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
2324         gen_clobber, emit_use and gen_use.
2325         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
2326         (expand_builtin_return): Likewise.
2327         * cfgbuild.c (count_basic_blocks): Likewise.
2328         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2329         * explow.c (emit_stack_restore): Likewise.
2330         * expmed.c (extract_bit_field_1): Likewise.
2331         * expr.c (convert_move, emit_move_complex_parts): Likewise.
2332         (emit_move_multi_word, store_constructor): Likewise.
2333         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
2334         (thread_prologue_and_epilogue_insns): Likewise.
2335         * lower-subreg.c (resolve_simple_move): Likewise.
2336         * optabs.c (widen_operand, expand_binop): Likewise.
2337         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
2338         * reload.c (find_reloads): Likewise.
2339         * reload1.c (eliminate_regs_in_insn): Likewise.
2340         * stmt.c (expand_nl_goto_receiver): Likewise.
2341         * config/alpha/alpha.md (builtin_longjmp): Likewise.
2342         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2343         * config/arm/arm.c (arm_load_pic_register): Likewise.
2344         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
2345         * config/arm/arm.md (untyped_return): Likewise.
2346         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
2347         * config/avr/avr.c (expand_prologue): Likewise.
2348         * config/bfin/bfin.c (do_unlink): Likewise.
2349         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
2350         * config/cris/cris.c (cris_expand_prologue): Likewise.
2351         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2352         (machopic_legitimize_pic_address): Likewise.
2353         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
2354         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
2355         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
2356         (ix86_expand_convert_uns_didf_sse): Likewise.
2357         (ix86_expand_vector_init_general): Likewise.
2358         * config/ia64/ia64.md (eh_epilogue): Likewise.
2359         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
2360         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
2361         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
2362         (config/iq2000/iq2000.c): Likewise.
2363         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2364         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2365         (builtin_longjmp): Likewise.
2366         * config/mn10300/mn10300.md (call, call_value): Likewise.
2367         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
2368         * config/pdp11/pdp11.md (abshi2): Likewise.
2369         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2370         * config/s390/s390.c (s390_emit_prologue): Likewise.
2371         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
2372         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
2373         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
2374         * config/sh/sh.c (prepare_move_operands): Likewise.
2375         (output_stack_adjust, sh_expand_epilogue): Likewise.
2376         (sh_set_return_address, sh_expand_t_scc): Likewise.
2377         * config/sparc/sparc.c (load_pic_register): Likewise.
2378         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
2379         * config/spu/spu.c (spu_expand_epilogue): Likewise.
2380         * config/v850/v850.c (expand_epilogue): Likewise.
2381
2382 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
2383
2384         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
2385         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
2386         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
2387         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
2388         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
2389         stack pointer register.
2390         (output_movhi): Remove code for interrupt specific writing to the 
2391         stack pointer register.
2392
2393 2008-05-31  Richard Guenther  <rguenther@suse.de>
2394
2395         PR tree-optimization/34244
2396         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
2397         (tree_expr_nonzero_warnv_p): Likewise.
2398         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
2399         ssa_name_nonnegative_p.
2400         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
2401         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
2402         not tree_expr_nonzero_warnv_p.
2403
2404         PR tree-optimization/36262
2405         Revert
2406         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
2407
2408         PR tree-optimization/34244
2409         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
2410         (record_numbers_of_iterations): New function.
2411         (execute_vrp): Cache the numbers of iterations of loops.
2412         * tree-scalar-evolution.c (scev_reset_except_niters):
2413         New function.
2414         (scev_reset): Use scev_reset_except_niters.
2415         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
2416
2417 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2418
2419         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2420         __WORKAROUND_RETS when appropriate.
2421
2422 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2423
2424         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
2425         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
2426         mode iterator.
2427         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
2428         *fop_df_comm_sse insn patterns using MODEF mode iterator.
2429         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
2430         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
2431         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
2432         *fop_df_1_mixed insn patterns using MODEF mode iterator.
2433         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
2434         *fop_df_1_sse insn patterns using MODEF mode iterator.
2435         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
2436         *fop_df_1_i387 insn patterns using MODEF mode iterator.
2437         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
2438         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
2439         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
2440         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
2441         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
2442         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
2443         (*fop_xf_4_i387): Use <MODE> for mode attribute.
2444         (*fop_xf_5_i387): Ditto.
2445         (*fop_xf_6_i387): Ditto.
2446
2447 2008-05-30  Richard Guenther  <rguenther@suse.de>
2448
2449         * builtins.c (build_string_literal): Avoid generating
2450         a non-gimple_val result.
2451
2452 2008-05-30  DJ Delorie  <dj@redhat.com>
2453
2454         * exec-tool.in: Use an environment variable (private) instead of a
2455         file (shared) as a semaphore, so as to not break parallel builds.
2456
2457 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2458
2459         * optabs.c (maybe_encapsulate_block): Remove.
2460         (emit_libcall_block): Adjust accordingly.
2461         * optabs.h (maybe_encapsulate_block): Remove prototype.
2462
2463         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
2464         Don't use maybe_encapsulate_block.
2465
2466 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2467
2468         * config/rs6000/rs6000.c (rs6000_legitimize_address,
2469         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
2470         rtx is a SYMBOL_REF before calling get_pool_constant.
2471
2472 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2473
2474         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
2475
2476 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
2477
2478         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
2479         rather than OS names to choose INO_T_EQ definition.
2480         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
2481         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
2482
2483 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
2484
2485         PR target/36348
2486         * config/darwin-f.c: New.
2487         * config/t-darwin: Added rule to build darwin-f.o.
2488         * config.gcc: Defined new variable, fortran_target_objs.
2489         (*-*-darwin*): Set fortran_target_objs.
2490         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
2491         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
2492         * configure: Regenerated.
2493
2494 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2495
2496         PR target/35771
2497         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
2498         canonical type if needed.
2499
2500 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2501
2502         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
2503
2504 2008-05-29  Richard Guenther  <rguenther@suse.de>
2505
2506         PR tree-optimization/36343
2507         PR tree-optimization/36346
2508         PR tree-optimization/36347
2509         * tree-flow.h (clobber_what_p_points_to): Declare.
2510         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
2511         pointed-to variable is dereferenced is irrelevant to whether
2512         the pointer can access the pointed-to variable.
2513         (clobber_what_p_points_to): New function.
2514         * tree-ssa-alias.c (set_initial_properties): Use it.
2515         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
2516         call clobber check for NMTs.
2517
2518 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2519         
2520         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
2521         for printing gcov_type.
2522
2523 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2524
2525         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
2526         and the eh region information.
2527         * value-prof.c (gimple_move_stmt_histograms): New function.
2528         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
2529
2530 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
2531
2532         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
2533
2534 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
2535
2536         * value-prof.c (tree_ic_transform): Print counts.
2537         * tree-profile.c (tree_gen_ic_func_profiler):
2538         Clear __gcov_indreict_call_callee variable to avoid misattribution
2539         of the profile.
2540
2541 2008-05-28  Rafael Espindola  <espindola@google.com>
2542
2543         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
2544         invalid sharing.
2545
2546 2008-05-28  Richard Guenther  <rguenther@suse.de>
2547
2548         PR tree-optimization/36339
2549         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
2550         and clobbering code out of the loop.
2551
2552 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2553
2554         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
2555         letters defined.
2556
2557         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
2558         s390_contiguous_bitmask_p, s390_symref_operand_p,
2559         s390_check_symref_alignment, s390_reload_larl_operand,
2560         s390_reload_symref_address): New functions.
2561         (s390_branch_condition_mnemonic): Support compare and branch
2562         instructions.
2563         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
2564         and 'W' constraints.
2565         (s390_secondary_reload): Add secondary reloads for unaligned
2566         symbol refs or symbol refs to floating point or QI/TI mode
2567         integer values.
2568         (legitimate_address_p): Accept symbol references as addresses.
2569         (s390_expand_insv): Use rotate and insert selected bits
2570         instruction for insv when building for z10.
2571         (print_operand_address): Handle symbol ref addresses.
2572         (print_operand): Output modifier 'c' added for signed byte values.
2573         (s390_encode_section_info): Mark symbol refs with
2574         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
2575
2576         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
2577         (length attribute): RRF, RRR have 4 byte length.
2578         (FPALL, INTALL): New mode iterators added.
2579         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
2580         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
2581         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
2582         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
2583         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
2584         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
2585         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
2586         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
2587         instructions.
2588         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
2589         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
2590         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
2591         reload<INTALL:mode><P:mode>_toreg_z10,
2592         reload<FPALL:mode><P:mode>_tomem_z10,
2593         reload<FPALL:mode><P:mode>_toreg_z10,
2594         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
2595         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
2596         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
2597         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
2598         definition.
2599         (movmem, clrmem, cmpmem): New splitters added.
2600
2601         * config/s390/predicates.md (larl_operand): Use
2602         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
2603         SYMBOL_REF_ALIGN1_P.
2604         (s390_signed_integer_comparison,
2605         s390_unsigned_integer_comparison): New predicates.
2606
2607         * config/s390/s390-protos.h (s390_check_symref_alignment,
2608         s390_contiguous_bitmask_p, s390_reload_larl_operand,
2609         s390_reload_symref_address,
2610         s390_compare_and_branch_condition_mask): Prototypes added.
2611
2612         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
2613         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
2614         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
2615
2616 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2617
2618         * config/s390/s390.c (z10_cost): New cost function for z10.
2619         (s390_handle_arch_option, override_options): Support -march=z10 switch.
2620         (s390_issue_rate): Adjust issue rate for z10.
2621         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
2622         (processor_flags): Add PF_Z10.
2623         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
2624         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
2625         * gcc/config.gcc: Add z10.
2626
2627 2008-05-28  Richard Guenther  <rguenther@suse.de>
2628
2629         PR tree-optimization/36291
2630         * tree-flow. h (struct gimple_df): Remove var_anns member.
2631         * tree-flow-inline.h (gimple_var_anns): Remove.
2632         (var_ann): Simplify.
2633         * tree-dfa.c (create_var_ann): Simplify.
2634         (remove_referenced_var): Clear alias info from var_anns of globals.
2635         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2636         (delete_tree_ssa): Clear alias info from var_anns of globals.
2637         Do not free var_anns.
2638         (var_ann_eq): Remove.
2639         (var_ann_hash): Likewise.
2640
2641 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
2642
2643         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2644         and loongson2f entries.
2645         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2646         * config/mips/mips.h (processor_type): Add Loongson-2E
2647         and Loongson-2F entries.
2648         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2649         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2650         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2651         * doc/invoke.texi (MIPS Options): Document loongson2e
2652         and loongson2f processor names.
2653
2654 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2655
2656         PR target/35767
2657         PR target/35771
2658         * config/i386/i386.c (ix86_function_arg_boundary): Use
2659         alignment of canonical type.
2660         (ix86_expand_vector_move): Check unaligned memory access for
2661         all SSE modes.
2662
2663 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2664
2665         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2666         Moved to the front of file.
2667
2668 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
2669             H.J. Lu  <hongjiu.lu@intel.com>
2670
2671         * dwarf2out.c (current_fde): New.
2672         (add_cfi): Use it.
2673         (lookup_cfa:): Likewise.
2674         (dwarf2out_end_epilogue): Likewise.
2675         (dwarf2out_note_section_used): Likewise.
2676
2677 2008-05-27  Michael Matz  <matz@suse.de>
2678
2679         PR c++/27975
2680         * c.opt (Wenum-compare): New warning option.
2681         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
2682
2683 2008-05-27  Michael Matz  <matz@suse.de>
2684
2685         PR middle-end/36326
2686         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
2687         non-BLKmode types.
2688         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
2689         into memory as tail calls.
2690
2691 2008-05-27  Richard Guenther  <rguenther@suse.de>
2692
2693         PR tree-optimization/36339
2694         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
2695         pointers cause all addressable variables to be call clobbered.
2696
2697 2008-05-27  Richard Guenther  <rguenther@suse.de>
2698
2699         PR tree-optimization/36245
2700         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
2701
2702 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2703
2704         * config/s390/s390.md: Replace all occurences of the 'm'
2705         constraint with 'RT'.
2706
2707 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2708
2709         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
2710         definitions added.
2711         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
2712         "*movdi_64".
2713         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
2714         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
2715         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
2716
2717 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2718
2719         * reload.c: (find_reloads): Skip alternatives according to the
2720         "enabled" attribute. Constify the constraint variable.
2721         * recog.c (get_attr_enabled): Add default implementation.
2722         (extract_insn): Set the alternative_enabled_p array
2723         in the recog_data struct.
2724         (preprocess_constraints, constrain_operands): Skip
2725         alternatives according to the "enabled" attribute
2726         * recog.h (struct recog_data): New field alternative_enabled_p.
2727         (skip_alternative): New inline function.
2728         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
2729         (record_reg_classes): Skip alternative according to the
2730         "enabled" attribute.
2731
2732         * doc/md.texi: Add documention for the "enabled" attribute.
2733
2734 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2735
2736         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
2737         * postreload.c (reload_cse_simplify_operands): Replace 'm'
2738         constraint with TARGET_MEM_CONSTRAINT.
2739         * recog.c (asm_operand_ok, preprocess_constraints,
2740         constrain_operands): Likewise.
2741         * regclass.c (record_reg_classes): Likewise.
2742         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
2743         * reload1.c (maybe_fix_stack_asms): Likewise.
2744         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
2745         * recog.h: Adjust comment.
2746         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
2747         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
2748         * doc/md.texi: Add a note to description of 'm' constraint.
2749         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
2750
2751 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2752
2753         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
2754         that the bitfield is of integral type before testing its precision.
2755
2756 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2757             Sa Liu  <saliu@de.ibm.com> 
2758
2759         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
2760         __modti3, __udivti3, __umodti3 and __udivmodti4.
2761         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
2762         that implement TImode mul and div functions.
2763         * config/spu/multi3.c: New. Implement __multi3.
2764         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
2765         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
2766         functions on SPU.
2767
2768 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
2769
2770         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
2771         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
2772         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
2773         tls_sysv_suffix): New mode and mode attribute iterators.
2774         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
2775         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
2776         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
2777         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
2778         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
2779         iterators.
2780
2781 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2782
2783         PR tree-optimization/36329
2784         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
2785         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
2786         * cgraphbuild.c (initialize_inline_failed): Use the latter
2787         macro in lieu of the former.
2788         * ipa-inline.c (cgraph_mark_inline): Likewise.
2789         (cgraph_decide_inlining_of_small_function): Likewise.
2790         (cgraph_decide_inlining): Likewise.
2791         (cgraph_decide_inlining_incrementally): Likewise.
2792
2793 2008-05-26  Tristan Gingold  <gingold@adacore.com>
2794             Anatoly Sokolov  <aesok@post.ru>
2795
2796         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
2797         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
2798         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
2799         optimization for 'avr6' architecture.
2800
2801 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
2802
2803         PR target/34932
2804         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
2805
2806 2008-05-26  Richard Guenther  <rguenther@suse.de>
2807
2808         * tree-ssa-sccvn.c (expr_has_constants): Declare.
2809         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
2810
2811 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
2812
2813         PR middle-end/36253
2814         * caller-save.c (insert_restore): Verify alignment of spill space.
2815         (insert_save): Likewise.
2816         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
2817         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
2818         (STACK_SLOT_ALIGNMENT): Likewise.
2819         * function.c (LOCAL_ALIGNMENT): Removed.
2820         (get_stack_local_alignment): New.
2821         (assign_stack_local): Use it.  Set alignment on stack slot.
2822         (assign_stack_temp_for_type): Use get_stack_local_alignment.
2823         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
2824         (STACK_SLOT_ALIGNMENT): New.
2825         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
2826         stack slot in XFmode.
2827
2828         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
2829
2830 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
2831
2832         PR/36321
2833         * config/i386/i386.md (allocate_stack_worker_64): Make sure
2834         argument operand in rax isn't removed.
2835
2836 2008-05-26  Richard Guenther  <rguenther@suse.de>
2837
2838         PR middle-end/36300
2839         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
2840         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
2841
2842 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2843
2844         PR bootstrap/36331
2845         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
2846
2847 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
2848
2849         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
2850         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
2851
2852 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2853
2854         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
2855         build a trampoline if we don't want one.
2856         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
2857         return zero for nested functions if we don't want a trampoline.
2858
2859 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2860
2861         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
2862
2863 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2864
2865         PR fortran/18428
2866         * c.opt: Removed undocumented option '-lang-fortran'.
2867         * c-common.h: Removed global variable 'lang_fortran'.
2868         * c-opts.c (c_common_handle_option): Removed code to handle
2869         option '-lang-fortran'. Updated includes.
2870         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
2871         definition of '__GFORTRAN__'.
2872         (define__GNUC__): Reimplemented to use BASEVER and
2873         cpp_define_formatted.
2874         (builtin_define_with_value_n): Removed.
2875         * c-incpath.h: Renamed to ...
2876         * incpath.h: ... this.
2877         * c-incpath.c: Renamed to ...
2878         * incpath.c: ... this. Updated includes.
2879         * fix-header.c: Updated includes.
2880         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2881         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2882         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2883
2884 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2885
2886         * tree.h: Update the table of flags used on tree nodes.
2887         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2888         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2889         (FORCED_LABEL): Add access check.
2890         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2891         (ASM_INPUT_P): Likewise.
2892         (ASM_VOLATILE_P): Likewise.
2893         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2894         (OMP_SECTION_LAST): Access private_flag directly.
2895         (OMP_RETURN_NOWAIT): Likewise.
2896         (OMP_PARALLEL_COMBINED): Likewise.
2897         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2898         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2899         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2900         deprecated_flag directly.
2901
2902 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
2903
2904         * final.c (frame_pointer_needed): Removed.
2905         * flags.h (frame_pointer_needed): Likewise.
2906
2907         * function.h (rtl_data): Add frame_pointer_needed.
2908         (frame_pointer_needed): New.
2909
2910 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
2911
2912         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2913
2914 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
2915
2916         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2917         SRC is a REG.
2918
2919 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
2920
2921         * c-common.c (strip_array_types): Move function to..
2922         * tree.c: ..here.
2923         (get_inner_array_type): Delete.
2924         * c-common.h (strip_array_types): Move declaration to..
2925         * tree.h: ..here.
2926         (get_inner_array_type): Delete.
2927         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2928         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2929         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2930         * config/pa/pa.c (emit_move_sequence): Likewise.
2931
2932 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2933
2934         * config/i386/i386.md (*sse_prologue_save_insn): Set length
2935         attribute to 34.
2936
2937 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
2938
2939         * function.c: Include target hook for nonlocal_goto frame value.
2940
2941 2008-05-24  Richard Guenther  <rguenther@suse.de>
2942
2943         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2944         variable can be only accessed through a pointer or a union.
2945
2946 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2947
2948         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
2949         * doc/extend.texi: Likewise.
2950
2951 2008-05-23  DJ Delorie  <dj@redhat.com>
2952
2953         * config/m32c/jump.md (untyped_call): Add.
2954
2955         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
2956         for A24 to PSImode.
2957         (m32c_address_cost): Detail costs for indirect offsets.
2958
2959 2008-05-23  Rafael Espindola  <espindola@google.com>
2960
2961         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
2962         if a node is a SUBREG.
2963         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
2964         is a SUBREG.
2965
2966 2008-05-23  Paul Brook  <paul@codesourcery.com>
2967             Carlos O'Donell  <carlos@codesourcery.com>
2968
2969         * doc/extend.texi: Clarify use of __attribute__((naked)).
2970         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2971         * target.h (gcc_target): Add allocate_stack_slots_for_args.
2972         * function.c (use_register_for_decl): Use
2973         targetm.calls.allocate_stack_slots_for_args.
2974         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2975         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
2976         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2977
2978 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2979
2980         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
2981
2982 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
2983
2984         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
2985         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
2986         is only rounded once.
2987
2988 2008-05-23  Richard Guenther  <rguenther@suse.de>
2989
2990         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
2991
2992 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
2993             Jakub Jelinek  <jakub@redhat.com>
2994
2995         PR target/36079
2996         * configure.ac: Handle --enable-cld.
2997         * configure: Regenerated.
2998         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
2999         * config/i386/i386.h (struct machine_function): Add needs_cld field.
3000         (ix86_current_function_needs_cld): New define.
3001         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
3002         (cld): New isns pattern.
3003         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
3004         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
3005         * config/i386/i386.opt (mcld): New option.
3006         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
3007         TARGET_CLD and ix86_current_function_needs_cld.
3008         (override_options): Use -mcld by default for 32-bit code if
3009         USE_IX86_CLD.
3010
3011         * doc/install.texi (Options specification): Document --enable-cld.
3012         * doc/invoke.texi (Machine Dependent Options)
3013         [i386 and x86-64 Options]: Add -mcld option.
3014         (Intel 386 and AMD x86-64 Options): Document -mcld option.
3015
3016 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
3017         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
3018         (return_in_memory_64): Likewise.
3019         (return_in_memory_ms_64): Likewise.
3020
3021 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3022
3023         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
3024         * builtins.c (fold_builtin_fpclassify): New.
3025         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
3026         * builtins.def (BUILT_IN_FPCLASSIFY): New.
3027         * c-common.c (handle_type_generic_attribute): Adjust to accept
3028         fixed arguments before an elipsis.
3029         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
3030         * doc/extend.texi: Document __builtin_fpclassify.
3031
3032 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
3033
3034         * omp-low.c (gate_expand_omp_ssa): Remove.
3035         (pass_expand_omp_ssa): Remove.
3036         (gate_expand_omp): Do not check for flag_openmp_ssa.
3037         * common.opt (-fopenmp-ssa): Remove.
3038         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
3039
3040 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3041
3042         * config/sh/sh.opt (mfixed-range): New option.
3043         * config/sh/sh-protos.h (sh_fix_range): Declare.
3044         * config/sh/sh.c (sh_fix_range): New function.
3045         * config/sh/sh.h (sh_fixed_range_str): Declare.
3046         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
3047         is not empty.
3048         * doc/invoke.texi (SH Options): Document -mfixed-range.
3049
3050 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
3051
3052         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
3053         it before the redeclaration.
3054
3055 2008-05-22  Anatoly Sokolov <aesok@post.ru>
3056
3057         * config/avr/avr.c (get_sequence_length): Add new function.
3058         (expand_prologue, expand_epilogue): Remove duplicate code.
3059
3060 2008-05-22  Rafael Espindola  <espindola@google.com>
3061
3062         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
3063         sharing.
3064
3065 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
3066
3067         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
3068         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
3069
3070         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
3071         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
3072         (vect_update_misalignment_for_peel): Likewise.
3073         (vector_alignment_reachable_p): Likewise.
3074         * tree-vect-transform.c (vectorizable_load): Likewise.
3075         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
3076         (get_vectype_for_scalar_type): Pass mode of scalar_type
3077         to UNITS_PER_SIMD_WORD.
3078
3079         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
3080         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
3081         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3082         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3083         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3084
3085 2008-05-22  Ira Rosen  <irar@il.ibm.com>
3086
3087         PR tree-optimization/36293
3088         * tree-vect-transform.c (vect_transform_strided_load): Don't check
3089         if the first load must be skipped because of a gap.
3090
3091 2008-05-22  Richard Guenther  <rguenther@suse.de>
3092
3093         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
3094         more cases of offset disambiguation that is possible if
3095         strict-aliasing rules apply.
3096         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
3097         for basic offset and type-based disambiguation.
3098
3099 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3100
3101         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
3102         ix86_expand_vector_set on V16QImode for SSE4.1.
3103
3104 2008-05-21  Tom Tromey  <tromey@redhat.com>
3105
3106         * c.opt (Wimport): Mark as undocumented.
3107         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
3108         -Wno-import.
3109         (Warning Options): Likewise.
3110         * doc/cppopts.texi: Don't mention -Wimport.
3111
3112 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
3113
3114         PR tree-optimization/36287
3115         PR tree-optimization/36286
3116         * lambda-code.c (build_access_matrix): Do not use the loop->num
3117         for computing the number of induction variables: use the loop depth
3118         instead.
3119
3120 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
3121
3122         PR/36280
3123         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
3124         option -f(no-)leading-underscore.
3125
3126 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3127
3128         * config/i386/i386.c (ix86_expand_vector_init_general): Use
3129         GET_MODE_NUNITS (mode).
3130
3131 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
3132
3133         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
3134         (-mmulhw): Add 464 to description.
3135         (-mdlmzb): Likewise.
3136         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
3137         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
3138         464fp entries.
3139         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
3140         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
3141         * config/rs6000/rs6000.md: Update comments for 464.
3142
3143 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
3144
3145         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
3146
3147 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3148
3149         * config/i386/sse.md (vec_extractv4sf): Removed.
3150         (vec_extractv2df): Likewise.
3151         (vec_extractv2di): Likewise.
3152         (vec_extractv4si): Likewise.
3153         (vec_extractv8hi): Likewise.
3154         (vec_extractv16qi): Likewise.
3155         (vec_extract<mode>): New.
3156
3157 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3158
3159         * config/i386/sse.md (vec_setv4sf): Removed.
3160         (vec_setv2df): Likewise.
3161         (vec_setv2di): Likewise.
3162         (vec_setv4si): Likewise.
3163         (vec_setv8hi): Likewise.
3164         (vec_setv16qi): Likewise.
3165         (vec_set<mode>): New.
3166
3167 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3168
3169         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
3170         goto for vec_concat and vec_interleave.
3171
3172 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3173
3174         * config/i386/sse.md (vec_initv4sf): Removed.
3175         (vec_initv2df): Likewise.
3176         (vec_initv2di): Likewise.
3177         (vec_initv4si): Likewise.
3178         (vec_initv8hi): Likewise.
3179         (vec_initv16qi): Likewise.
3180         (vec_init<mode>): New.
3181
3182 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
3183
3184         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
3185
3186 2008-05-21  Tom Tromey  <tromey@redhat.com>
3187
3188         * ggc-zone.c (lookup_page_table_if_allocated): New function.
3189         (zone_find_object_offset): Likewise.
3190         (gt_ggc_m_S): Likewise.
3191         (highest_bit): Likewise.
3192         * ggc-page.c (gt_ggc_m_S): New function.
3193         * stringpool.c (string_stack): Remove.
3194         (init_stringpool): Update.
3195         (ggc_alloc_string): Use ggc_alloc.
3196         (maybe_delete_ident): New function.
3197         (ggc_purge_stringpool): Likewise.
3198         (gt_ggc_m_S): Remove.
3199         * ggc-common.c (ggc_protect_identifiers): New global.
3200         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
3201         ggc_protect_identifiers.
3202         * ggc.h (ggc_protect_identifiers): Declare.
3203         (gt_ggc_m_S): Update.
3204         (ggc_purge_stringpool): Declare.
3205         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
3206         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
3207         special case.
3208         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
3209
3210 2008-05-21  David S. Miller  <davem@davemloft.net>
3211
3212         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
3213         tmake_file.
3214
3215 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
3216
3217         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
3218         once finished.
3219
3220 2008-05-20  David Daney  <ddaney@avtrex.com>
3221
3222         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
3223         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
3224         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3225         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3226         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
3227         (atomic_hiqi_op): New define_code_iterator.
3228         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
3229         mips_expand_compare_and_swap_12.
3230         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
3231         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
3232         (sync_<optab><mode>, sync_old_<optab><mode>,
3233         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
3234         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
3235         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
3236         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
3237         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
3238         (test_and_set_12): New insn.
3239         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
3240         sync_new_<optab><mode>, sync_old_nand<mode>,
3241         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
3242         clobber to operand 0 for SI and DI mode insns.
3243         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
3244         mips_gen_fn_4): New typedefs.
3245         (mips_gen_fn_ptrs): Define new union type.
3246         (mips_expand_compare_and_swap_12): Remove declaration.
3247         (mips_expand_atomic_qihi): Declare function.
3248         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
3249         (mips_expand_atomic_qihi): ... this.  Use new generator function
3250         parameter.
3251         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
3252         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
3253         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
3254         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
3255         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
3256         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
3257         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
3258         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
3259         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
3260         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
3261         New macros.
3262
3263 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
3264
3265         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
3266         the missing break.
3267
3268 2008-05-20  Anatoly Sokolov <aesok@post.ru>
3269
3270         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
3271         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
3272         (avr_attribute_table): Add 'OS_main' function attribute.
3273         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
3274         functions with 'OS_main' attribute.
3275
3276 2008-05-20  Richard Guenther  <rguenther@suse.de>
3277
3278         PR tree-optimization/35204
3279         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
3280         helper, split out from ...
3281         (DFS): ... here.  Make the DFS walk non-recursive.
3282
3283 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
3284             Jan Sjodin  <jan.sjodin@amd.com>
3285
3286         PR tree-optimization/36181
3287         * tree-parloops.c (loop_has_vector_phi_nodes): New.
3288         (parallelize_loops): Don't parallelize when the loop has vector
3289         phi nodes.
3290
3291 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3292             Sebastian Pop  <sebastian.pop@amd.com>
3293
3294         * tree-loop-linear.c (gather_interchange_stats): Look in the access
3295         matrix, and never look at the tree representation of the memory
3296         accesses.
3297         (linear_transform_loops): Computes parameters and access matrices.
3298         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
3299         when fails.
3300         (access_matrix_get_index_for_parameter): New.
3301         * tree-data-ref.h (struct access_matrix): New.
3302         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
3303         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
3304         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
3305         am_vector_index_for_loop): New.
3306         (struct data_reference): Add field access_matrix.
3307         (DR_ACCESS_MATRIX): New.
3308         (compute_data_dependences_for_loop): Update declaration.
3309         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
3310         * lambda.h (lambda_vector_vec_p): Declared.
3311         * lambda-code.c: Depend on pointer-set.h.
3312         (lambda_collect_parameters_from_af, lambda_collect_parameters,
3313         av_for_af_base, av_for_af, build_access_matrix,
3314         lambda_compute_access_matrices): New.
3315         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
3316
3317 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
3318
3319         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
3320         $SOURCEDIR/include.
3321
3322 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3323             Sebastian Pop  <sebastian.pop@amd.com>
3324
3325         PR tree-optimization/36206
3326         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
3327         FOLD_CONVERSIONS.
3328         (instantiate_scev_1): Rename flags to fold_conversions.
3329         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
3330         outeside instantiation_loop.
3331         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
3332         (evolution_function_is_affine_or_constant_p): Removed.
3333         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
3334         instantiate_scev.
3335         (analyze_siv_subscript): Pass in the loop nest number.
3336         Call evolution_function_is_affine_in_loop instead of 
3337         evolution_function_is_affine_p.
3338         (analyze_overlapping_iterations): Pass in the loop nest number.
3339
3340 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3341             Sebastian Pop  <sebastian.pop@amd.com>
3342
3343         PR tree-optimization/36206
3344         * tree-chrec.h (chrec_fold_op): New.
3345         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
3346         and other trees.
3347
3348 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
3349
3350         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
3351         (DIRS_EQ): New.
3352         (remove_duplicates): Do not set inode on non-inode systems.
3353         Use DIRS_EQ.
3354
3355 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3356
3357         * config.gcc (tm_file): Update comments about relative pathnames.
3358
3359 2008-05-20  Richard Guenther  <rguenther@suse.de>
3360
3361         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
3362         * tree-ssa-sccvn.c (process_scc): Likewise.
3363         * tree-ssa-sink.c (execute_sink_code): Likewise.
3364         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
3365         * tree-vrp.c (process_assert_insertions): Likewise.
3366         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.