OSDN Git Service

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