OSDN Git Service

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