OSDN Git Service

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