OSDN Git Service

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