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,
3365         av_for_af_base, av_for_af, build_access_matrix,
3366         lambda_compute_access_matrices): New.
3367         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
3368
3369 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
3370
3371         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
3372         $SOURCEDIR/include.
3373
3374 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3375             Sebastian Pop  <sebastian.pop@amd.com>
3376
3377         PR tree-optimization/36206
3378         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
3379         FOLD_CONVERSIONS.
3380         (instantiate_scev_1): Rename flags to fold_conversions.
3381         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
3382         outeside instantiation_loop.
3383         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
3384         (evolution_function_is_affine_or_constant_p): Removed.
3385         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
3386         instantiate_scev.
3387         (analyze_siv_subscript): Pass in the loop nest number.
3388         Call evolution_function_is_affine_in_loop instead of 
3389         evolution_function_is_affine_p.
3390         (analyze_overlapping_iterations): Pass in the loop nest number.
3391
3392 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3393             Sebastian Pop  <sebastian.pop@amd.com>
3394
3395         PR tree-optimization/36206
3396         * tree-chrec.h (chrec_fold_op): New.
3397         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
3398         and other trees.
3399
3400 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
3401
3402         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
3403         (DIRS_EQ): New.
3404         (remove_duplicates): Do not set inode on non-inode systems.
3405         Use DIRS_EQ.
3406
3407 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3408
3409         * config.gcc (tm_file): Update comments about relative pathnames.
3410
3411 2008-05-20  Richard Guenther  <rguenther@suse.de>
3412
3413         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
3414         * tree-ssa-sccvn.c (process_scc): Likewise.
3415         * tree-ssa-sink.c (execute_sink_code): Likewise.
3416         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
3417         * tree-vrp.c (process_assert_insertions): Likewise.
3418         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3419         (perform_tree_ssa_dce): Likewise.
3420         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3421         (dump_dominator_optimization_stats): Likewise.
3422         * tree-vectorizer.c (vectorize_loops): Likewise.
3423
3424 2008-05-20  Richard Guenther  <rguenther@suse.de>
3425
3426         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
3427
3428 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
3429
3430         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
3431         (ix86_i386elf_return_in_memory): Likewise.
3432         (ix86_i386interix_return_in_memory): Likewise.
3433         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
3434         (SUBTARGET_RETURN_IN_MEMORY): New.
3435         * config/i386/i386elf.h: Likewise.
3436         * config/i386/ptx4-i.h: Likewise.
3437         * config/i386/sol2-10.h: Likewise.
3438         * config/i386/sysv4.h: Likewise.
3439         * config/i386/vx-common.h: Likewise.
3440         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
3441         * config/i386/i386.c (ix86_return_in_memory): Made static and
3442         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
3443         (ix86_i386elf_return_in_memory): Removed.
3444         (ix86_i386interix_return_in_memory): Removed.
3445         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
3446         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
3447
3448 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
3449
3450         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
3451
3452 2008-05-19  Xinliang David Li  <davidxl@google.com>
3453
3454         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
3455         * opts.c: Ditto.
3456         * common.opt: Ditto.
3457         * doc/invoke.texi: Ditto.
3458
3459 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3460
3461         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
3462         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
3463
3464 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3465
3466         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
3467         sizes of operand array from 8/4 to 4/2.
3468         (ix86_expand_vector_init_general): Change size of operand array
3469         from 32 to 16.  Remove op0, op1 and half_mode.
3470
3471 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3472
3473         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
3474         (ix86_expand_vector_init_interleave): Likewise.
3475         (ix86_expand_vector_init_general): Use them.  Assert
3476         word_mode == SImode when n_words == 4.
3477
3478 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
3479
3480         * config/i386/i386.c (ix86_secondary_reload): New static function.
3481         (TARGET_SECONDARY_RELOAD): New define.
3482         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
3483         * config/i386/i386.md (reload_outqi): Remove.
3484
3485 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3486
3487         PR middle-end/35509
3488         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
3489         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
3490         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
3491         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
3492         (fold_builtin_1): Likewise.
3493         * builtins.def (BUILT_IN_ISINF_SIGN): New.
3494         c-common.c (check_builtin_function_arguments): Handle
3495         BUILT_IN_ISINF_SIGN.
3496         * doc/extend.texi: Document __builtin_isinf_sign.
3497         * fold-const.c (operand_equal_p): Handle COND_EXPR.
3498
3499 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
3500
3501         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
3502         EH cleanup at the end of the pass, search for those that have been
3503         turned into forwarder blocks and do the cleanup on their successor.
3504
3505 2008-05-18  Richard Guenther  <rguenther@suse.de>
3506
3507         * tree-cfg.c (verify_gimple_expr): Allow conversions from
3508         pointers to sizetype and vice versa.
3509
3510 2008-05-18 Xinliang David Li   <davidxl@google.com>
3511
3512         * gcc/tree-ssa-dce.c: Coding style fix.
3513         (check_pow): Documentation comment. 
3514         (check_log): Documenation comment. Coding style fix.
3515         (is_unnecessary_except_errno_call): Ditto.
3516         (gen_conditions_for_pow): Ditto.
3517         (gen_conditions_for_log): Ditto.
3518         (gen_shrink_wrap_conditions): Ditto.
3519         (shrink_wrap_one_built_in_calls): Ditto.
3520         * gcc/doc/invoke.texi: Better documentation string.
3521         * ChangeLog: Fix wrong change log entries from 
3522         May 17 checkin on function call DCE.
3523
3524 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
3525
3526         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
3527
3528 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
3529
3530         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
3531         * df-problems.c (simulation routines): Fixed block comment to
3532         properly say how to add forwards scanning functions.
3533         
3534 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3535
3536         * tree-inline.c (setup_one_parameter): Remove dead code.
3537
3538 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3539
3540         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
3541         a BIT_AND_EXPR only for an INTEGER_TYPE.
3542
3543 2008-05-17 Xinliang David Li   <davidxl@google.com>
3544
3545         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
3546         (check_pow, check_log, is_unnecessary_except_errno_call): New 
3547         functions to check for eliminating math functions that are pure 
3548         except for setting errno.
3549         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
3550         general condition expressions for shrink-wrapping pow/log calls.
3551         (gen_shrink_wrap_conditions): Ditto.
3552         (shrink_wrap_one_built_in_call): Ditto.
3553         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
3554         (mark_operand_necessary): If debugging, output if OP is necessary.
3555         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
3556         unnecessary.
3557         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
3558         opt level >= 2.
3559         * gcc/common.opt: New user flag -ftree-builtin-dce.
3560         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
3561
3562 2008-05-16  David S. Miller  <davem@davemloft.net>
3563
3564         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
3565         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3566
3567 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
3568
3569         PR target/36246
3570         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
3571
3572 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3573
3574         * ifcvt.c (dead_or_predicable): Rename
3575         df_simulate_one_insn_backwards to df_simulate_one_insn.
3576         * recog.c (peephole2_optimize): Ditto.
3577         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
3578         Ditto.
3579         * df.h: Rename df_simulate_one_insn_backwards to
3580         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
3581         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
3582         scanning of defs and uses.
3583         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
3584         (df_simulate_one_insn_forwards): Removed.
3585
3586 2008-05-16  Doug Kwan  <dougkwan@google.com>
3587
3588         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
3589         QNaN & SNaN.
3590         (real_from_string): Handle NaNs and Inf as approriate.
3591
3592 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3593
3594         * doc/gty.texi (Source Files Containing Type Information): Note
3595         that headers should appear first in the gtfiles list.
3596
3597 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3598
3599         * tree.def (COND_EXEC): Properly documented this code.
3600
3601 2008-05-16  Diego Novillo  <dnovillo@google.com>
3602
3603         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
3604         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
3605         the new field.
3606
3607 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3608
3609         * tree-ssa-dse (max_stmt_uid): Removed.
3610         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
3611         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
3612         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
3613         * function.h (cfun.last_stmt_uid): New field.
3614         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
3615         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
3616         New functions.
3617         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
3618         (create_stmt_ann): Initialize the ann->uid field.
3619         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
3620         with new calls.
3621         * tree-flow.h (renumber_gimple_stmt_uids): New function.
3622
3623 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3624
3625         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
3626         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
3627         (init_empty_tree_cfg): Call it.
3628
3629 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3630
3631         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
3632         Update all users.
3633
3634 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3635
3636         * doc/invoke.text (-fdump-tree-*-verbose): New option.
3637         * tree-dump.c (dump_options): New verbose option.
3638         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
3639         Add verbose dump.
3640         * tree-pass.h (TDF_VERBOSE): New dump flag.
3641         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3642         (tree-flow.h): Added include.
3643         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
3644
3645 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3646
3647         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
3648
3649         From Jie Zhang  <jie.zhang@analog.com>
3650         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3651         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
3652         mcpu=bf561-none and mcpu=bf561-0.2.
3653         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3654         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3655         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3656         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3657         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
3658         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
3659         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
3660         option.
3661         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
3662         (cputype_selected): Remove.
3663         (bfin_handle_option): Don't use cputype_selected.
3664         (override_options): When no mcpu option, enable all workarounds.
3665         Don't use bfin_workarounds.
3666         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
3667         processor type.
3668         (DEFAULT_CPU_TYPE): Don't define.
3669
3670 2008-05-16  Richard Guenther  <rguenther@suse.de>
3671
3672         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
3673         on deletion of the last stmt.
3674
3675 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3676
3677         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
3678         V8HImode for SSE2 and V16QImode for SSE4.1.
3679
3680 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3681
3682         * cgraph.h (compute_inline_parameters): Made public.
3683         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
3684         variable_generate_summary, function_write_summary,
3685         variable_write_summary, variable_read_summary.  Added generate_summary,
3686         write_summary, read_summary.
3687         * cgraphunit.c (cgraph_process_new_functions): Changed call from
3688         pass_ipa_inline.function_generate_summary, to
3689         compute_inline_parameters. 
3690         * ipa-inline.c (compute_inline_parameters): Made public and added
3691         node parameter.
3692         (compute_inline_parameters_for_current): New function.
3693         (pass_inline_param): Now calls compute_inline_parameters_for_current.
3694         (inline_generate_summary): Removed parameter and made to loop over
3695         all cgraph nodes.
3696         (pass_ipa_inline): Updated for new IPA_PASS structure.
3697         * passes.c (execute_ipa_summary_passes): Now is called once per
3698         pass rather than once per node*pass.
3699         
3700 2008-05-15  Anatoly Sokolov <aesok@post.ru>
3701
3702         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
3703         avr_have_mul_p, avr_asm_only_p): Remove variables.
3704         (avr_override_options): Remove initialization of removed variables.
3705         (avr_file_start):  Convert removed variables to fields of 
3706         'struct base_arch_s *avr_current_arch'. 
3707         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3708         (AVR_HAVE_MUL): (Ditto.).
3709         (AVR_HAVE_MOVW): (Ditto.).
3710         (AVR_HAVE_LPMX): (Ditto.). 
3711         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
3712         avr_asm_only_p): Remove declaration.
3713
3714 2008-05-15  Diego Novillo  <dnovillo@google.com>
3715
3716         * config/arm/arm.c (arm_return_in_memory): Fix return type.
3717         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
3718
3719 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
3720
3721         PR middle-end/36194
3722         * combine.c (check_conversion): Rename back to check_promoted_subreg.
3723         Don't call record_truncated_value from here.
3724         (record_truncated_value): Turn it into a for_each_rtx callback.
3725         (record_truncated_values): New function.
3726         (combine_instructions): Call note_uses with record_truncated_values.
3727         Change name of check_conversion to check_promoted_subreg. 
3728
3729 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
3730
3731         * doc/sourcebuild.texi: Document support for torture tests.
3732
3733 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3734
3735         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
3736         to alternative 4 of operand 2.
3737
3738 2008-05-15  Richard Guenther  <rguenther@suse.de>
3739
3740         * tree-pass.h (current_pass): Declare.
3741         (get_pass_for_id): Likewise.
3742         * passes.c (passes_by_id, passes_by_id_size): New globals.
3743         (set_pass_for_id): New function.
3744         (get_pass_for_id): Likewise.
3745         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
3746         (execute_function_todo): Flush per function statistics.
3747         * toplev.c (compile_file): Init statistics.
3748         (general_init): Do early statistics initialization.
3749         (finalize): Finish statistics.
3750         * statistics.h (statistics_early_init): Declare.
3751         (statistics_init): Likewise.
3752         (statistics_fini): Likewise.
3753         (statistics_fini_pass): Likewise.
3754         (statistics_counter_event): Likewise.
3755         (statistics_histogram_event): Likewise.
3756         * statistics.c: New file.
3757         * Makefile.in (OBJS-common): Add statistics.o.
3758         (statistics.o): Add dependencies.
3759         * doc/invoke.texi (-fdump-statistics): Document.
3760
3761         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
3762         (insert): Likewise.
3763         (execute_pre): Use statistics_counter_event.
3764         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
3765         (substitute_and_fold): Increment it.  Use statistics_counter_event.
3766
3767 2008-05-15  Diego Novillo  <dnovillo@google.com>
3768
3769         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
3770
3771         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
3772         * tree-ssa-alias.c (new_type_alias): Remove references to
3773         sub-variables from comment.
3774         * tree-ssa-operands.c (swap_tree_operands): Likewise.
3775
3776 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3777
3778         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
3779         attribute to 1 only for insertps alternative.
3780
3781 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3782
3783         * config/bfin/bfin.md (loadbytes): New pattern.
3784         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
3785         (bfin_init_builtins): Initialize it.
3786         (bdesc_1arg): Add it.
3787
3788 2008-05-15  Sa Liu  <saliu@de.ibm.com>
3789
3790         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
3791         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
3792         * testsuite/lib/target-supports.exp: Add
3793         check_effective_target_fortran_integer_16.
3794
3795 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3796
3797         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
3798         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
3799         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
3800         (TARGET_RETURN_IN_MEMORY): Define.
3801
3802 2008-05-15  Richard Guenther  <rguenther@suse.de>
3803
3804         PR middle-end/36244
3805         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
3806         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
3807         represent unmodifiable vars.
3808
3809 2008-05-15  Richard Guenther  <rguenther@suse.de>
3810
3811         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
3812         INDIRECT_REF and TARGET_MEM_REF.
3813         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3814         TARGET_MEM_REF.
3815
3816 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3817             H.J. Lu  <hongjiu.lu@intel.com>
3818
3819         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
3820         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
3821         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
3822         insn alternatives.  Add missing alternatives.
3823         (*vec_concatv2di_rex64_sse4_1): Likewise.
3824         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
3825         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
3826         Require TARGET_SSE.
3827
3828 2008-05-15  Richard Guenther  <rguenther@suse.de>
3829
3830         PR tree-optimization/36009
3831         PR tree-optimization/36204
3832         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
3833         (determine_invariantness_stmt): Record the loop a store is
3834         always executed in.
3835         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
3836         dependency.
3837
3838 2008-05-15  Richard Guenther  <rguenther@suse.de>
3839
3840         PR tree-optimization/34330
3841         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
3842         through the pointer will alias the SMT.
3843
3844 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
3845
3846         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
3847
3848 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
3849
3850         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
3851
3852 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3853             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3854
3855         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
3856         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
3857         (vashl_optab): New optab for vector/vector shifts.
3858         (vashr_optab): Ditto.
3859         (vlshr_optab): Ditto.
3860         (vrotl_optab): Ditto.
3861         (vrotr_optab): Ditto.
3862         (optab_subtype): New enum for optab_for_tree_code call.
3863         (optab_for_tree_code): Add enum optab_subtype argument.
3864
3865         * optabs.c (optab_for_tree_code): Take an additional argument to
3866         distinguish between a vector shift by a scalar and vector shift by
3867         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
3868         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
3869         vector shift by a vector.
3870         (expand_widen_pattern_expr): Pass additional argument to
3871         optab_for_tree_code.
3872
3873         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
3874         vrotl_optab, vrotr_optab.
3875
3876         * expr.c (expand_expr_real_1): Update calls to
3877         optab_for_tree_code to distinguish between vector shifted by a
3878         scalar and vector shifted by a vector.
3879         * tree-vectorizer.c (supportable_widening_operation): Ditto.
3880         (supportable_narrowing_operation): Ditto.
3881         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
3882         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
3883         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
3884         (vect_create_epilog_for_reduction): Ditto.
3885         (vectorizable_reduction): Ditto.
3886         (vectorizable_operation): Ditto.
3887         (vect_strided_store_supported): Ditto.
3888         (vect_strided_load_supported): Ditto.
3889         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3890         * expmed.c (expand_shift): Ditto.
3891
3892         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
3893         scalar type.
3894         (ashr@var{m}3): Ditto.
3895         (vashl@var{m}3): Document new vector/vector shift standard name.
3896         (vashr@var{m}3): Ditto.
3897         (vlshr@var{m}3): Ditto.
3898         (vrotl@var{m}3): Ditto.
3899         (vrotr@var{m}3): Ditto.
3900
3901         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
3902         (PPERM_INVERT): Ditto.
3903         (PPERM_REVERSE): Ditto.
3904         (PPERM_REV_INV): Ditto.
3905         (PPERM_ZERO): Ditto.
3906         (PPERM_ONES): Ditto.
3907         (PPERM_SIGN): Ditto.
3908         (PPERM_INV_SIGN): Ditto.
3909         (PPERM_SRC1): Ditto.
3910         (PPERM_SRC2): Ditto.
3911
3912         * config/i386/sse.md (mulv2di3): Add SSE5 support.
3913         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
3914         allows a memory operand to be the value being added, and split it
3915         to improve vectorization.
3916         (sse5_pmacsdqh_mem): Ditto.
3917         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
3918         (sse5_mulv2div2di3_high): Ditto.
3919         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
3920         (vec_pack_trunc_v4si): Ditto.
3921         (vec_pack_trunc_v2di): Ditto.
3922         (sse5_pcmov_<mode>): Remove code that tried to use use
3923         andps/andnps instead of pcmov.
3924         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
3925         pmacsdqh instructions.
3926         (vec_widen_smult_lo_v4si): Ditto.
3927
3928         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
3929         (PPERM_INVERT): Ditto.
3930         (PPERM_REVERSE): Ditto.
3931         (PPERM_REV_INV): Ditto.
3932         (PPERM_ZERO): Ditto.
3933         (PPERM_ONES): Ditto.
3934         (PPERM_SIGN): Ditto.
3935         (PPERM_INV_SIGN): Ditto.
3936         (PPERM_SRC1): Ditto.
3937         (PPERM_SRC2): Ditto.
3938         (ix86_expand_sse_movcc): Move the SSE5 test after the if
3939         true/false tests.
3940         (ix86_expand_int_vcond): If SSE5 generate all possible integer
3941         comparisons.
3942         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
3943         says ignore whether the last reference is a memory operand.
3944
3945 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3946             Paolo Bonzini <bonzini at gnu dot org>
3947
3948         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
3949         shift patterns.
3950
3951         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
3952         (vlshr<mode>3): Rename from vlshr<mode>3.
3953         (vashr<mode>3): Rename from vashr<mode>3.
3954         (mulv4sf3): Change the names of vector shift patterns.
3955         (mulv4si3): Ditto.
3956         (negv4sf2): Ditt.
3957
3958         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
3959         shift insns.
3960
3961         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
3962         (SI_SHLHI): Ditto.
3963         (SI_SHL): Ditto.
3964         (SI_SHLI): Ditto.
3965         (SI_ROTH): Ditto.
3966         (SI_ROTHI): Ditto.
3967         (SI_ROT): Ditto.
3968         (SI_ROTI): Ditto.
3969         (SPU_RL_0): Ditto.
3970         (SPU_RL_1): Ditto.
3971         (SPU_RL_2): Ditto.
3972         (SPU_RL_3): Ditto.
3973         (SPU_RL_4): Ditto.
3974         (SPU_RL_5): Ditto.
3975         (SPU_RL_6): Ditto.
3976         (SPU_RL_7): Ditto.
3977         (SPU_SL_0): Ditto.
3978         (SPU_SL_1): Ditto.
3979         (SPU_SL_2): Ditto.
3980         (SPU_SL_3): Ditto.
3981         (SPU_SL_4): Ditto.
3982         (SPU_SL_5): Ditto.
3983         (SPU_SL_6): Ditto.
3984         (SPU_SL_7): Ditto.
3985
3986         * config/spu/spu.md (v): New iterator macro to add v for vector types.
3987         (floatunssidf2_internal): Change vector/vector shift names.
3988         (floatunsdidf2_internal): Ditto.
3989         (mulv8hi3): Ditto.
3990         (ashrdi3): Ditto.
3991         (ashrti3): Ditto.
3992         (cgt_df): Ditto.
3993         (cgt_v2df): Ditto.
3994         (dftsv): Ditto.
3995         (vashl<mode>3): Rename from ashl<mode>3.
3996         (vashr<mode>3): Rename from ashr<mode>3.
3997         (vlshr<mode>3): Rename from lshr<mode>3.
3998         (vrotl<mode>3): Rename from rotl<mode>3.
3999
4000 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4001
4002         PR target/36224
4003         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
4004         multiply gives the wrong value when doing widening multiplies.
4005         (vec_widen_smult_lo_v4si): Ditto.
4006
4007 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
4008
4009         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
4010         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
4011         emit_library_call_value. 
4012         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
4013         * tree.h (ECF_LIBCALL_BLOCK): Removed.
4014         * calls.c (initialize_argument_information, precompute_arguments, 
4015         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
4016         (precompute_arguments): Removed flags parameter.
4017         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
4018         
4019 2008-05-14  Richard Guenther  <rguenther@suse.de>
4020
4021         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
4022         Make sure to register the store if the use is a PHI_NODE.
4023
4024 2008-05-14  Olivier Hainque  <hainque@adacore.com>
4025
4026         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
4027         memory if the component is to be referenced in BLKmode according
4028         to get_inner_reference.
4029
4030 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
4031
4032         * calls.c (emit_library_call_value_1): Restore code clearing
4033         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
4034
4035 2008-05-14  Olivier Hainque  <hainque@adacore.com>
4036             Nicolas Roche  <roche@adacore.com>
4037
4038         * configure.ac: Add support for a "gcc_subdir" variable in
4039         config-lang.in, to denote a subdirectory where the language/GCC
4040         integration files are to be found.
4041         * configure: Regenerate.
4042
4043 2008-05-14  Ira Rosen  <irar@il.ibm.com>
4044
4045         PR tree-optimization/36098
4046         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
4047         value for the first load in the group in case of a gap.
4048         (vect_build_slp_tree): Check that there are no gaps in loads.
4049
4050 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
4051
4052         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
4053         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
4054         expand_copysign_bit, ): Change call to emit_no_conflict_block to
4055         emit_insn and remove unneeded code to construct extra args.
4056         (emit_no_conflict_block): Removed.
4057         * optabls.h: (emit_no_conflict_block): Removed.
4058         * cse.c (cse_extended_basic_block): Remove search for
4059         REG_NO_CONFLICT note.
4060         * global.c: Removed incorrect comment added in revision 117.
4061         * expr.c (convert_move): Change call to emit_no_conflict_block to
4062         emit_insn.
4063         * recog.c: Change comments so that they do not mention
4064         REG_NO_CONFLICT.
4065         * local_alloc.c (combine_regs): Removed last parameter.
4066         (no_conflict_p): Removed.
4067         (block_alloc): Removed note, no_conflict_combined_regno and set
4068         local vars. Removed all code to process REG_NO_CONFLICT blocks.
4069         (combine_regs): Removed already_dead and code to look for
4070         REG_NO_CONFLICT notes.
4071         * lower_subreg (remove_retval_note): Removed code to look for
4072         REG_NO_CONFLICT block.
4073         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
4074         (resolve_clobber): Remove code to process libcalls that have
4075         REG_NO_CONFLICT notes.
4076         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
4077         case.
4078         * combine.c (can_combine_p, distribute_notes):  Removed
4079         REG_NO_CONFLICT case.
4080         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
4081         to emit_insns.
4082         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
4083         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
4084         Ditto.
4085         * reg-notes.def (NO_CONFLICT): Removed.
4086
4087 2008-05-14  David S. Miller  <davem@davemloft.net>
4088
4089         * config/sparc/sparc.c (sparc_profile_hook): If
4090         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
4091         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
4092         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
4093
4094 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
4095
4096         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
4097
4098 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
4099
4100         PR target/36222
4101         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
4102         and op1 expansion before vector concat to have less live pseudos.
4103
4104 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
4105
4106         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
4107         ix86_expand_vector_set if supported.
4108
4109 2008-05-13  Diego Novillo  <dnovillo@google.com>
4110             Kenneth Zadeck  <zadeck@naturalbridge.com>
4111
4112         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
4113
4114         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
4115         phinodes_print_statistics, init_ssanames, fini_ssanames,
4116         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
4117         release_ssa_name, release_defs, replace_ssa_name_symbol,
4118         ssanames_print_statistics): Move ...
4119         * tree-flow.h: ... here.
4120         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
4121         Use FN instead of cfun.
4122         (make_ssa_name_fn): Rename from make_ssa_name.
4123         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
4124         * tree-flow-inline.h (make_ssa_name): Move from
4125         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
4126         * omp-low.c (expand_omp_parallel):
4127         * tree-flow-inline.h (redirect_edge_var_map_result):
4128         * tree-ssa.c (init_tree_ssa): Add argument FN.
4129         Use it instead of cfun.  Update all users.
4130
4131 2008-05-13  Tom Tromey  <tromey@redhat.com>
4132
4133         PR preprocessor/22168:
4134         * doc/cpp.texi (Top): Update menu.
4135         (Alternatives to Wrapper #ifndef): New node.
4136         (Other Directives): Document deprecation.
4137         (Obsolete Features): Remove menu.
4138         (Assertions): Merge node into Obsolete Features.
4139         (Obsolete once-only headers): Move earlier; rename to Alternatives
4140         to Wrapper #ifndef.
4141         * doc/cppopts.texi: Update.
4142         * c.opt (Wdeprecated): Enable for C and ObjC.
4143         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
4144         (C++ Dialect Options): Move -Wno-deprecated from here to...
4145         (Warning Options): ... here.
4146
4147 2008-05-13  Richard Guenther  <rguenther@suse.de>
4148
4149         PR middle-end/36227
4150         * fold-const.c (fold_sign_changed_comparison): Do not allow
4151         changes in pointer-ness.
4152
4153 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4154
4155         PR target/24713
4156         * config/sh/sh.c (sh_expand_prologue): Don't clear
4157         RTX_FRAME_RELATED_P for push insns.
4158
4159 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
4160
4161         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
4162
4163 2008-05-12  Anatoly Sokolov <aesok@post.ru>
4164
4165         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
4166         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
4167         Use 'machine->is_leaf' instead of 'leaf_func_p'.
4168
4169 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
4170
4171         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
4172         (*vec_concatv4sf_sse): This.
4173         (*sse2_concatv2si): Renamed to ...
4174         (*vec_concatv2si_sse2): This.
4175         (*sse1_concatv2si): Renamed to ...
4176         (*vec_concatv2si_sse): This.
4177         (*vec_concatv2di_rex): Renamed to ...
4178         (*vec_concatv2di_rex64): This.
4179         (*vec_concatv2si_sse4_1): New.
4180         (*vec_concatv2di_rex64_sse4_1): Likewise.
4181
4182 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
4183
4184         PR rtl-optimization/36111
4185         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
4186         that was created for swappable operands.
4187
4188 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
4189
4190         PR ada/36001
4191         * Makefile.in: Substitute GNATMAKE and GNATBIND.
4192         * configure.ac: Add call to ACX_PROG_GNAT.
4193
4194 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
4195
4196         * optc-gen.awk: Fix comment typo.
4197
4198 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4199
4200         * pretty-print.c (pp_integer_with_precision): Use
4201         HOST_LONG_LONG_FORMAT.
4202
4203 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
4204
4205         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
4206                 
4207 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
4208
4209         * config/i386/i386.c (bdesc_ptest): Removed.
4210         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
4211         (bdesc_args): Add __builtin_ia32_ptestz128,
4212         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
4213         (ix86_init_mmx_sse_builtins): Updated.
4214         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
4215         (ix86_expand_builtin): Updated.
4216
4217 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
4218
4219         * tree-cfg.c (valid_fixed_convert_types_p): New function.
4220         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
4221
4222 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
4223
4224         * value-prof.c (interesting_stringop_to_profile): Do not
4225         return early for BUILT_IN_MEMPCPY.
4226
4227 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
4228
4229         * calls.c (expand_call): Don't use callgraph to increase
4230         preferred_stack_boundary.
4231
4232         * cgraph.h (cgraph_rtl_info): Use unsigned on
4233         preferred_incoming_stack_boundary.
4234
4235         * final.c (rest_of_clean_state): Use unsigned on
4236         preferred_stack_boundary.
4237
4238 2008-05-09  Tom Tromey  <tromey@redhat.com>
4239
4240         PR preprocessor/22231:
4241         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
4242         proceeding.
4243
4244 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
4245
4246         PR tree-optimization/36129
4247         * tree-ssa-ccp.c: Include value-prof.h.
4248         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
4249         built-in function was folded to a constant.
4250         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
4251
4252 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
4253             Sebastian Pop  <sebastian.pop@amd.com>
4254
4255         * tree-scalar-evolution.c: Document instantiate_scev.
4256         (instantiate_parameters_1): Renamed instantiate_scev_1.
4257         Don't use the same loop for instantiation_loop and evolution_loop.
4258         (instantiate_scev): New.
4259         (instantiate_parameters): Moved...
4260         (resolve_mixers): Update call to instantiate_scev_1 to pass the
4261         same loop twice.  Maintains the semantics for this function.
4262         * tree-scalar-evolution.h (instantiate_scev): Declare.
4263         (instantiate_parameters): ...here.  Now static inline.
4264         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
4265         instead of resolve_mixers.
4266
4267 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
4268
4269         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
4270
4271 2008-05-09  Tomas Bily  <tbily@suse.cz>
4272
4273         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
4274         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
4275         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4276         * c-common.c (c_common_truthvalue_conversion): Likewise.
4277         * tree-object-size.c (compute_object_offset): Likewise.
4278         * tree-inline.c (estimate_num_insns_1): Likewise.
4279         * varasm.c (const_hash_1, compare_constant, copy_constant)
4280         (compute_reloc_for_constant, output_addressed_constants)
4281         (initializer_constant_valid_p): Likewise.
4282         * c-omp.c (check_omp_for_incr_expr): Likewise.
4283         * gimplify.c (gimplify_expr): Likewise.
4284         * c-typeck.c (c_finish_return): Likewise.
4285         * tree-vectorizer.c (supportable_widening_operation)
4286         (supportable_narrowing_operation): Likewise.
4287         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
4288         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
4289         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
4290         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
4291         (descr_info_loc): Likewise.
4292         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4293         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
4294         (fold_unary): Likewise.
4295         * builtins.c (get_pointer_alignment): Likewise.
4296         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
4297         (instantiate_parameters_1): Likewise.
4298         * tree.c (expr_align, stabilize_reference): Likewise.
4299         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
4300         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
4301         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
4302         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4303         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
4304         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
4305         Likewise.
4306         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
4307         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
4308         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
4309         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
4310         (forward_propagate_comparison)
4311         (tree_ssa_forward_propagate_single_use_vars): Likewise.
4312         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
4313         * emit-rtl.c (component_ref_for_mem_expr)
4314         (set_mem_attributes_minus_bitpos): Likewise.
4315         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
4316         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
4317         Likewise.
4318         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
4319         (build_function_call, pointer_diff, build_compound_expr)
4320         (c_finish_return): Likewise.
4321         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
4322         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
4323         Likewise.
4324         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
4325         * expr.c (is_aligning_offset): Likewise.
4326         * tree-ssa-alias.c (is_escape_site): Likewise.
4327         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
4328         (check_all_va_list_escapes): Likewise.
4329         * tree-ssa-loop-ivopts.c (determine_base_object)
4330         (determine_common_wider_type): Likewise.
4331         * dojump.c (do_jump): Likewise.
4332         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
4333         * tree-gimple.c (is_gimple_cast): Likewise.
4334         * fold-const.c (decode_field_reference, )
4335         (fold_sign_changed_comparison, fold_unary, fold_comparison)
4336         (fold_binary): Likewise.
4337         * tree-ssa-alias-warnings.c (find_alias_site_helper)
4338         (already_warned_in_frontend_p): Likewise.
4339         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
4340         * tree.c (really_constant_p, get_unwidened): Likewise.
4341         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
4342         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
4343         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
4344         Likewise.
4345         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
4346         CONVERT_EXPR_P.
4347         (CONVERT_EXPR_P): Define.
4348         (CASE_CONVERT): Define.
4349         
4350 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
4351
4352         PR middle-end/36117
4353         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
4354         (delete_unmarked_insns): When deleting a call, call
4355         delete_unreachable_blocks.
4356         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4357         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
4358
4359 2008-05-08  Richard Guenther  <rguenther@suse.de>
4360
4361         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
4362         (-ftree-salias): Likewise.
4363         (salias-max-implicit-fields): Remove param documentation.
4364         (salias-max-array-elements): Likewise.
4365         * tree-pass.h (pass_create_structure_vars): Remove.
4366         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4367         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4368         * tree-ssa-alias.c (create_structure_vars): Remove.
4369         (gate_structure_vars): Likewise.
4370         (pass_create_structure_vars): Likewise.
4371         (gate_build_alias): Likewise.
4372         (pass_build_alias): Adjust to run always and dump the function.
4373         * common.opt (ftree-salias): Hide.
4374         * passes.c (init_optimization_passes): Remove
4375         pass_create_structure_vars, adjust comment.
4376         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4377         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4378         * opts.c (decode_options): Do not set flag_tree_salias.
4379         (common_handle_option): Add OPT_ftree_salias to the backward
4380         compatibility section.
4381
4382 2008-05-08  Richard Guenther  <rguenther@suse.de>
4383
4384         * tree-flow-inline.h (var_can_have_subvars): Move ...
4385         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
4386         * tree-flow.h (var_can_have_subvars): Remove.
4387         (push_fields_onto_fieldstack): Remove.
4388         (sort_fieldstack): Likewise.
4389         (struct fieldoff): Move ...
4390         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
4391         alias_set and base_for_components fields.
4392         (sort_fieldstack): Make static.
4393         (push_fields_onto_fieldstack): Likewise.  Remove code that
4394         handles anything but RECORD_TYPEs.  Remove alias_set and
4395         base_for_components handling.
4396         (create_variable_info_for): Adjust.
4397
4398 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
4399
4400         * common.opt (Wframe-larger-than=): Shorten the help message
4401         to one line.
4402         * doc/invoke.texi (Wframe-larger-than=): Add more description.
4403
4404 2008-05-08  Rafael Espindola  <espindola@google.com>
4405
4406         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
4407         trap.
4408         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
4409         trap and that both operands are gimple values.
4410         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
4411         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
4412         is a fp operation.
4413
4414 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4415
4416         * read-rtl.c (join_c_conditions): Return the first string if the
4417         two strings are equal.
4418
4419 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4420
4421         * gensupport.h (pred_data): Add a "num_codes" field.
4422         (add_predicate_code): Declare.
4423         * gensupport.c (add_predicate_code): New function.
4424         (std_pred_table): Add an "allows_const_p" field.
4425         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
4426         Remove the (incomplete) list of such codes from the codes field.
4427         (init_predicate_table): Use add_predicate_code.  Add all
4428         RTX_CONST_OBJs if allows_const_p is true.
4429         * genrecog.c (process_define_predicate): Use add_predicate_code.
4430
4431 2008-05-08  David Daney  <ddaney@avtrex.com>
4432             Richard Sandiford  <rsandifo@nildram.co.uk>
4433         
4434         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
4435         special case of constant zero operands.
4436         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
4437         old and new values.  Special case constant zero values.
4438         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
4439         fails.
4440         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
4441         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
4442
4443 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
4444
4445         PR target/36090
4446         * simplify-rtx.c (simplify_plus_minus): Create CONST of
4447         similar RTX_CONST_OBJ before CONST_INT.
4448
4449 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
4450
4451         * stmt.c (expand_stack_restore): Change sa mode if needed.
4452
4453 2008-05-08  Richard Guenther  <rguenther@suse.de>
4454
4455         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
4456         return type to bool.
4457         (ix86_sol10_return_in_memory): Likewise.
4458         (ix86_i386elf_return_in_memory): Likewise.
4459         (ix86_i386interix_return_in_memory): Likewise.
4460         * config/i386/i386.c (ix86_return_in_memory): Likewise.
4461         (ix86_sol10_return_in_memory): Likewise.
4462         (ix86_i386elf_return_in_memory): Likewise.
4463         (ix86_i386interix_return_in_memory): Likewise.
4464
4465 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4466
4467         PR bootstrap/36180
4468         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
4469         fndecl argument.
4470         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
4471         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
4472         declared in front.
4473
4474 2008-05-08  Richard Guenther  <rguenther@suse.de>
4475
4476         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
4477         * tree-data-ref.h (struct dr_alias): Remove subvars field.
4478         (DR_SUBVARS): Remove.
4479         * tree-dfa.c (dump_subvars_for): Remove.
4480         (debug_subvars_for): Likewise.
4481         (dump_variable): Do not dump subvars.
4482         (remove_referenced_var): Do not remove subvars.
4483         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
4484         (lookup_subvars_for_var): Remove.
4485         (get_subvars_for_var): Likewise.
4486         (get_subvars_at): Likewise.
4487         (get_first_overlapping_subvar): Likewise.
4488         (overlap_subvar): Likewise.
4489         * tree-flow.h (subvar_t): Remove.
4490         (struct var_ann_d): Remove subvars field.
4491         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
4492         argument.  Remove special handling of SFTs.
4493         (compute_tag_properties): Likewise.
4494         (set_initial_properties): Likewise.
4495         (compute_call_clobbered): Likewise.
4496         (count_mem_refs): Likewise.
4497         (compute_memory_partitions): Likewise.
4498         (compute_flow_insensitive_aliasing): Likewise.
4499         (setup_pointers_and_addressables): Likewise.
4500         (new_type_alias): Likewise.
4501         (struct used_part): Remove.
4502         (used_portions): Likewise.
4503         (struct used_part_map): Likewise.
4504         (used_part_map_eq): Likewise.
4505         (used_part_map_hash): Likewise.
4506         (free_used_part_map): Likewise.
4507         (up_lookup): Likewise.
4508         (up_insert): Likewise.
4509         (get_or_create_used_part_for): Likewise.
4510         (create_sft): Likewise.
4511         (create_overlap_variables_for): Likewise.
4512         (find_used_portions): Likewise.
4513         (create_structure_vars): Likewise.
4514         * tree.def (STRUCT_FIELD_TAG): Remove.
4515         * tree.h (MTAG_P): Adjust.
4516         (struct tree_memory_tag): Remove base_for_components and
4517         unpartitionable flags.
4518         (struct tree_struct_field_tag): Remove.
4519         (SFT_PARENT_VAR): Likewise.
4520         (SFT_OFFSET): Likewise.
4521         (SFT_SIZE): Likewise.
4522         (SFT_NONADDRESSABLE_P): Likewise.
4523         (SFT_ALIAS_SET): Likewise.
4524         (SFT_UNPARTITIONABLE_P): Likewise.
4525         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
4526         (union tree_node): Remove sft field.
4527         * alias.c (get_alias_set): Remove special handling of SFTs.
4528         * print-tree.c (print_node): Remove handling of SFTs.
4529         * tree-dump.c (dequeue_and_dump): Likewise.
4530         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
4531         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
4532         * tree-predcom.c (set_alias_info): Do not set subvars.
4533         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
4534         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
4535         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
4536         (add_vars_for_offset): Remove.
4537         (add_virtual_operand): Remove special handling of SFTs.
4538         (add_call_clobber_ops): Likewise.
4539         (add_call_read_ops): Likewise.
4540         (get_asm_expr_operands): Likewise.
4541         (get_modify_stmt_operands): Likewise.
4542         (get_expr_operands): Likewise.
4543         (add_to_addressable_set): Likewise.
4544         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
4545         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4546         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
4547         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
4548         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
4549         (tree_node_structure): Likewise.
4550         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
4551         handling of SFTs.
4552         (find_what_p_points_to): Likewise.
4553
4554 2008-05-08  Sa Liu  <saliu@de.ibm.com>
4555
4556         * config/spu/spu.md: Fixed subti3 pattern.
4557
4558 2008-05-08  Richard Guenther  <rguenther@suse.de>
4559
4560         PR middle-end/36154
4561         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
4562         sure to create a representative for trailing arrays for PTA.
4563
4564 2008-05-08  Richard Guenther  <rguenther@suse.de>
4565
4566         PR middle-end/36172
4567         * fold-const.c (operand_equal_p): Two objects which types
4568         differ in pointerness are not equal.
4569
4570 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4571
4572         * calls.c (compute_argument_block_size): Add argument tree fndecl.
4573         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
4574         (emit_library_call_value_1): Add new variable fndecl initialized by
4575         NULL_TREE. It should be the decl type of orgfun, but this information
4576         seems not to be available here, so it uses the default calling abi.
4577         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
4578         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
4579         by TARGET_RETURN_IN_MEMORY.
4580         * config/i386/i386-interix.h: Likewise.
4581         * config/i386/i386.h: Likewise.
4582         * config/i386/i386elf.h: Likewise.
4583         * config/i386/ptx4-i.h: Likewise.
4584         * config/i386/sol2-10.h: Likewise.
4585         * config/i386/sysv4.h: Likewise.
4586         * config/i386/vx-common.h: Likewise.
4587         * config/cris/cris.h: Removed #if 0 clause.
4588         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
4589         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
4590         argument.
4591         (ix86_sol10_return_in_memory): Likewise.
4592         (ix86_i386elf_return_in_memory): New.
4593         (ix86_i386interix_return_in_memory): New.
4594         * config/mt/mt-protos.h (mt_return_in_memory): New.
4595         * config/mt/mt.c: Likewise.
4596         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4597         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
4598         * config/bfin/bfin.h: Likewise.
4599         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
4600         argument.
4601         * config/bfin/bfin.c: Likewise.
4602         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4603         * config/alpha/unicosmk.h: Likewise.
4604         * config/i386/cygming.h: Likewise.
4605         * config/iq2000/iq2000.h: Likewise.
4606         * config/mips/mips.h: Likewise.
4607         * config/mn10300/mn10300.h: Likewise.
4608         * config/rs6000/rs6000.h: Likewise.
4609         * config/score/score.h: Likewise.
4610         * config/spu/spu.h: Likewise.
4611         * config/v850/v850.h: Likewise.
4612         * defaults.h: Likewise.
4613         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
4614         * expr.c (emit_block_move): Adjust use of
4615         OUTGOING_REG_PARM_STACK_SPACE.
4616         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
4617         OUTGOING_REG_PARM_STACK_SPACE.
4618         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
4619
4620 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
4621
4622         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
4623         on OMP_RETURN for OMP_FOR.
4624
4625         PR debug/35896
4626         * dwarf2out.c (dw_expand_expr, common_check): Removed.
4627         (fortran_common): New function.
4628         (gen_variable_die): Call fortran_common instead of common_check,
4629         adjust for it returning tree instead of rtx.  Formatting.
4630
4631 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4632
4633         PR rtl/7335
4634         PR rtl/33826
4635         * see.c (see_copy_insn): Copy new pure const attributes for new call.
4636         * c-decl.c (merge_decls): Ditto.
4637         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
4638         to RTL_CONST_OR_PURE_CALL_P.
4639         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
4640         Initialized DECL_LOOPING_CONST_PURE.
4641         (process_call_operands): Set tree_side_effects properly.
4642         * tree.h (TREE_READONLY_DECL_P): Removed.
4643         (DECL_IS_PURE): Renamed to DECL_PURE_P.
4644         (DECL_LOOPING_OR_CONST_P): New macro.
4645         (struct tree_function_decl): Added looping_const_or_pure_p.
4646         (ECF_*) Renumbered.
4647         (ECF_LOOPING_OR_CONST_P): New macro.
4648         * rtlanal.c (pure_const_p): Removed.
4649         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
4650         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
4651         to RTL_CONST_CALL_P.
4652         * ipa-pure-const.c (pure_const_state_e): Added looping field.
4653         (check_decl, check_tree, check_call, scan_function): Initialize
4654         looping.
4655         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
4656         (static_execute): Set looping true for recursive functions.
4657         Undo setting state to IPA_NEITHER for recursive functions.
4658         * cse.c (cse_insn): 
4659         * ifcvt.c (noce_can_store_speculate_p): Changed
4660         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
4661         RTL_CONST_OR_PURE_CALL_P.
4662         * dse.c (scan_insn): Ditto.
4663         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
4664         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
4665         RTL_CONST_OR_PURE_CALL_P.
4666         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
4667         pure_call_p to RTL_CONST_CALL_P.
4668         * gimplify.c (gimplify_call_expr): Clear side effects for
4669         non-looping pure and constant calls.
4670         * calls.c (emit_call_1): Set rtl flags from ecf flags.
4671         (flags_from_decl_or_type): Set ecf flags from decl flags.
4672         (initialize_argument_information): Turn off
4673         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
4674         Change const to pure if callee_copies is true rather than just
4675         turning off const.
4676         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
4677         way of marking pure calls.
4678         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
4679         Remove hack that was supposed to fix pr7335 and remove old
4680         way of marking pure calls.
4681         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
4682         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
4683         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
4684         RTL_CONST_OR_PURE_CALL_P.
4685         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
4686         * loop-invariant.c (find_exits, find_invariant_bb): Changed
4687         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
4688         * sched-deps.c (schedule_analyze): Ditto.
4689         * rtl.h (struct rtx_def): Use call field, unchanging field, and
4690         return_val field of calls to represent pure and const function info.
4691         (CONST_OR_PURE_CALL_P): Deleted macro.
4692         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4693         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
4694         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
4695         TREE_READONLY.
4696         * tree-optimize.c (execute_fixup_cfg): Added test for
4697         ECF_LOOPING_CONST_OR_PURE.
4698         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
4699         DECL_PURE_P.
4700         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
4701         effects for looping pure or const calls.
4702         (verify_gimple_expr): Added verification code. 
4703         * config/alpha/alpha.c (alpha_legitimize_address,
4704         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
4705         RTL_CONST_CALL_P.
4706         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
4707         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
4708         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
4709         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
4710         RTL_CONST_OR_PURE_CALL_P.
4711         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
4712         and const calls to be deleted.
4713
4714 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4715
4716         PR target/35714
4717         * config/i386/mmx.md (mmx_subv2sf3): New expander.
4718         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
4719         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
4720         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4721         to handle nonimmediate operands.
4722         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
4723         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
4724         to handle nonimmediate operands.
4725         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
4726         (mmx_pmulhrwv4hi3): New expander.  Use
4727         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4728         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
4729         (sse2_umulv1siv1di3): New expander.  Use
4730         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4731         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
4732         (mmx_eq<mode>3): New expander.  Use
4733         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4734         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
4735         (mmx_uavgv8qi3): New expander.  Use
4736         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4737         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
4738         (mmx_uavgv4hi3): New expander.  Use
4739         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4740
4741         * config/i386/sse.md
4742         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
4743         to handle nonimmediate operands.
4744         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
4745         to handle nonimmediate operands.
4746         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
4747         to handle nonimmediate operands.
4748         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
4749         to handle nonimmediate operands.
4750         (sse2_unpckhpd_exp): New expander.  Use
4751         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4752         (sse2_unpcklpd_exp): New expander.  Use
4753         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4754         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
4755         to handle nonimmediate operands.
4756         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
4757         to handle nonimmediate operands.
4758         (*sse2_<plusminus_insn><mode>3): Rename from
4759         sse2_<plusminus_insn><mode>3 insn pattern.
4760         (sse2_<plusminus_insn><mode>3): New expander.  Use
4761         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4762         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
4763         (sse2_umulv2siv2di3): New expander.  Use
4764         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4765         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
4766         (sse4_1_mulv2siv2di3): New expander.  Use
4767         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4768         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
4769         (sse2_pmaddwd): New expander.  Use
4770         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4771         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
4772         (sse2_eq<mode>3): New expander.  Use
4773         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4774         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
4775         (sse4_1_eqv2di3): New expander.  Use
4776         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4777         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4778         (sse2_uavgv16qi3): New expander.  Use
4779         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4780         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4781         (sse2_uavgv16qi3): New expander.  Use
4782         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4783         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
4784         (sse2_uavgv8hi3): New expander.  Use
4785         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4786         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
4787         (ssse3_pmulhrswv8hi3): New expander.  Use
4788         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4789         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
4790         (ssse3_pmulhrswv4hi3): New expander.  Use
4791         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4792
4793         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
4794         (<sse>_vmmul<mode>3): Ditto.
4795         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
4796         (divv2df3): Ditto.
4797         (ssse3_pmaddubsw128): Use register_operand for operand 1.
4798         (ssse3_pmaddubsw): Ditto.
4799
4800         * config/i386/i386.c (struct_builtin_description)
4801         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
4802         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
4803         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
4804         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
4805         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
4806         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
4807         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
4808         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
4809         (ix86_fixup_binary_operands): Assert that src1
4810         and src2 must have the same mode when swapped.
4811         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
4812         and ix86_binary_operator_ok.  Do not force operands in registers
4813         when optimizing.
4814
4815 2008-05-07  Jan Hubicka  <jh@suse.cz>
4816
4817         * cgraph.c (dump_cgraph_node): Update.
4818         * cgraph.h (cgraph_local_info): Break out inline summary.
4819         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
4820         hook.
4821         * ipa-inline (inline_summary): New accestor function.
4822         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
4823         cgraph_decide_inlining, compute_inline_parameters): Update.
4824         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
4825
4826 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4827
4828         Cleanup ColdFire scheduling support and add V4 pipeline model.
4829
4830         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
4831         (define_attr cpu): Add cfv4 value.
4832         (define_attr type, define_attr type1): Merge into a single 'type'
4833         attribute.  Update all uses.
4834         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
4835         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
4836         Update all uses.
4837         (define_attr opx_mem, define_attr opy_mem): Remove.
4838         (define_attr op_mem): Clean up, update comment.
4839         (define_attr size): Use specific values instead of general int.
4840         (define_attr guess, define_attr split): Remove.  Update all uses.
4841         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
4842         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
4843         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
4844         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
4845         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
4846         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
4847         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
4848         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
4849         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
4850         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
4851         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
4852         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
4853         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
4854         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
4855         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
4856         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
4857         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
4858         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
4859         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
4860         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
4861         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
4862         Update or set attributes.
4863         (stack_tie): New fake instruction.
4864
4865         * config/m68k/m68k.h (TUNE_CFV4): New macro.
4866         (m68k_sched_attr_size): Update declaration.
4867         (m68k_sched_attr_type2): Remove.
4868         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
4869         Declare new bypass predicates.
4870
4871         * config/m68k/m68k.c (m68k_sched_issue_rate,
4872         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
4873         implementations.
4874         (TARGET_SCHED_ISSUE_RATE,
4875         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
4876         (override_options): Handle scheduling for ColdFire V4 core.
4877         (m68k_expand_prologue): Emit stack_tie.
4878         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
4879         'OP_TYPE_FPN'.  Update all uses.
4880         (sched_guess_p): Remove.
4881         (sched_address_type): Handle symbolic addresses.
4882         (sched_get_operand): New static function.
4883         (sched_operand_type): Merge into sched_attr_op_type.
4884         (sched_attr_op_type): Handle FP registers, handle quick constants,
4885         update.
4886         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
4887         (m68k_sched_attr_size): Update.  Move logic to ...
4888         (sched_get_attr_size_int): New static function.
4889         (sched_get_opxy_mem_type): New static function.
4890         (m68k_sched_attr_op_mem): Update.
4891         (m68k_sched_attr_type2): Remove.
4892         (sched_cfv4_bypass_data): New static variable.
4893         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
4894         (m68k_sched_issue_rate): Implement scheduler hook.
4895         (struct _sched_ib: enabled_p): New field.
4896         (m68k_sched_variable_issue): Update.  Handle V4.
4897         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
4898         sched_dump_class_func_t, sched_dump_split_class,
4899         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
4900         sched_dump_dfa_class, m68k_sched_dump): Remove.
4901         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
4902         hook.
4903         (m68k_sched_init_global): Remove statisctics dumping, introduce
4904         sanity check that all instructions have pipeline reservations.  Handle
4905         ColdFire V4 core.
4906         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4907         Handle ColdFire V4 core.
4908         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
4909         New static functions.
4910         (m68k_sched_address_bypass_p): New bypass predicate.
4911         (sched_get_indexed_address_scale): New static function.
4912         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
4913
4914         * cf.md: Update comments.
4915         (define_attr type2): Remove.  Use 'type' attribute instead.
4916         Update all uses.
4917         (cf_ib): Rename to cfv123_ib.  Update all uses.
4918         (cf_oep): Rename to cfv123_oep.  Update all uses.
4919         (cf_chr): Rename to cfv123_chr.  Update all uses.
4920         (cf_mem): Rename to cfv123_mem.  Update all uses.
4921         (cf_mac): Move to more appropriate place.
4922         (cfv123_guess): New automaton and cpu_unit.
4923         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
4924         Update uses of 'size' attribute.  Handle before reload scheduling.
4925         (cfv123_guess): New dummy reservation for unhandled instructions.
4926         (cfv4_*): Pipeline description of ColdFire V4 core.
4927         (ignore): New reservation to handle 'ignore' type.
4928
4929 2008-05-07  Ian Lance Taylor  <iant@google.com>
4930
4931         PR middle-end/36013
4932         * gimplify.c (find_single_pointer_decl_1): Don't look through
4933         indirections.
4934         (find_single_pointer_decl): Adjust comments.
4935
4936 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
4937
4938         PR middle-end/36137
4939         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
4940         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
4941
4942         PR middle-end/36106
4943         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
4944         integral type rather than floating point, then VIEW_CONVERT_EXPR
4945         to the floating point type.
4946
4947 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4948
4949         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
4950         TFmode op0 to register.
4951
4952 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
4953
4954         * c-decl.c (grokdeclarator): Comment typo.
4955
4956 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
4957
4958         * tree-flow.h: Remove prototype for computed_goto_p.
4959         * tree-cfg.c (computed_goto_p): Make static.
4960
4961 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
4962
4963         PR target/35657
4964         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4965         (contains_aligned_value_p): This.  Handle _Decimal128.
4966         (ix86_function_arg_boundary): Only align _Decimal128 to its
4967         natural boundary and handle it properly.
4968
4969 2008-05-06  Martin Jambor  <mjambor@suse.cz>
4970
4971         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
4972         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
4973         (ipcp_method_set_orig_node): Removed.
4974         (ipcp_cval_get_cvalue_type): Removed.
4975         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
4976         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
4977         (ipcp_cval_set_cvalue_type): Removed.
4978         (ipcp_cval_get_cvalue): Removed.
4979         (ipcp_cval_set_cvalue): Removed.
4980         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
4981         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
4982         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
4983         (ipcp_cval_meet): Renamed to ipa_lattice_meet
4984         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
4985         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
4986         (ipcp_get_ith_lattice): Changed parameters.
4987         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
4988         (ipcp_lattice_from_jfunc): Changed parameters.
4989         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
4990         (ipcp_method_cval_print): Added temporary variable info.
4991         (ipcp_redirect): Removed already unused local variable caller.
4992         (ipcp_redirect): New temporary variable orig_callee_info
4993         (ipcp_redirect): Removed newly unused local variable callee.
4994         (ipcp_redirect): Removed (a bit confusing) local variable type.
4995         (ipcp_insert_stage): Added local variable info.
4996         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
4997         renamed too
4998         (ipcp_formal_create): Removed.
4999         (ipcp_method_cval_set): Removed.
5000         (ipcp_propagate_stage): Renamed lattice variables.
5001         (ipcp_method_cval_set_cvalue_type): Removed.
5002         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
5003         (ipcp_print_all_lattices): Changed printed strings to refer to 
5004         lattices rather than cvals.
5005         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
5006         (ipcp_propagate_const): Changed formal parameters.
5007         (build_const_val): Changed formal parameters.
5008         (ipcp_insert_stage): Removed useless variable cvalue
5009         (build_const_val): Changed formal parameters.
5010         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
5011         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
5012         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
5013         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
5014         (ipcp_print_func_profile_counts): Changed string from "method" to 
5015         "function"
5016         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
5017         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
5018         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
5019         (ipcp_structures_print): Renamed to ipcp_print_all_structures
5020         (ipcp_profile_print): Renamed to ipcp_print_profile_data
5021         (ipcp_lat_is_const): Changed parameters and made inline.
5022         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
5023         (ipcp_redirect): Renamed to ipcp_need_redirect_p
5024         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
5025         the predicate condition directly
5026         (ipcp_propagate_stage): Added local variable args. Removed local
5027         variable callee.  (Both are mere code simplifications.)
5028         (ipcp_method_dont_insert_const): Renamed to
5029         ipcp_node_not_modifiable_p.
5030         (ipcp_node_not_modifiable_p): Made inline.
5031         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
5032         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
5033         (ipcp_print_all_lattices): Removed variable cvalue
5034         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
5035         Updated comments.
5036
5037 2008-05-06  Olivier Hainque  <hainque@adacore.com>
5038
5039         * tree-sra.c (try_instantiate_multiple_fields): Early return
5040         if field has POINTER_TYPE.
5041
5042 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
5043
5044         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
5045         by using 'q' specifier for instruction.
5046         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
5047
5048 2008-05-06  Anatoly Sokolov <aesok@post.ru>
5049
5050         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5051         Change mode of zero_extract from QImode to HImode.
5052         (sign bit tests peepholes): (Ditto.).
5053
5054 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
5055
5056         * config/i386/mmx.md: Remove double backslashes from asm templates.
5057         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
5058         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5059         to handle nonimmediate operands.
5060         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
5061         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5062         to handle nonimmediate operands.
5063         (*mmx_<code>v2sf3_finite): New insn pattern.
5064         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
5065         (mmx_<code>v2sf3): New expander.  Use
5066         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5067         (mmx_<plusminus_insn><mode>3): New expander.  Use
5068         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5069         (*mmx_<plusminus_insn><mode>3): New insn pattern.
5070         (mmx_add<mode>3): Removed.
5071         (mmx_ssadd<mode>3): Ditto.
5072         (mmx_usadd<mode>3): Ditto.
5073         (mmx_sub<mode>3): Ditto.
5074         (mmx_sssub<mode>3): Ditto.
5075         (mmx_ussub<mode>3): Ditto.
5076         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
5077         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
5078         to handle nonimmediate operands.
5079         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
5080         insn pattern.
5081         (mmx_smulv4hi3_highpart): New expander.  Use
5082         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5083         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
5084         insn pattern.
5085         (mmx_umulv4hi3_highpart): New expander.  Use
5086         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5087         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
5088         (mmx_<code>v4hi3): New expander.  Use
5089         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5090         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
5091         (mmx_<code>v8qi3): New expander.  Use
5092         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5093         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
5094         (mmx_<code><mode>3): New expander.  Use
5095         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5096
5097 2008-05-05  Jan Hubicka  <jh@suse.cz>
5098
5099         PR tree-optimization/36118
5100         * passes.c (pass_init_dump_file): Fix dump header.
5101
5102 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5103
5104         PR middle-end/36141
5105         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
5106         VCE for function decls.
5107
5108 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5109
5110         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
5111
5112 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5113
5114         * config/i386/i386.md (sat_plusminus): New.
5115         (plusminus_insn): Likewise.
5116         (plusminus_mnemonic): Likewise.
5117         (addsub): Removed.
5118         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
5119         (*<addsub><mode>3_cc_overflow): Renamed to ...
5120         (*<plusminus_insn><mode>3_cc_overflow): This.
5121         (*<addsub>si3_zext_cc_overflow): Renamed to ...
5122         (*<plusminus_insn>si3_zext_cc_overflow): This.
5123
5124         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
5125         (<plusminus_insn><mode>3): This.
5126         (*<addsub><mode>3): Renamed to ...
5127         (*<plusminus_insn><mode>3): This.
5128         (<sse>_vm<addsub><mode>3): Renamed to ...
5129         (<sse>_vm<plusminus_insn><mode>3): This.
5130         (sse3_h<addsub>v4sf3): Renamed to ...
5131         (sse3_h<plusminus_insn>v4sf3): This.
5132         (sse3_h<addsub>v2df3): Renamed to ...
5133         (sse3_h<plusminus_insn>v2df3): This.
5134         (<plusminus_insn><mode>3): New.
5135         (*<plusminus_insn><mode>3): Likewise.
5136         (sse2_<plusminus_insn><mode>3): Likewise.
5137         (add<mode>): Removed.
5138         (*add<mode>3): Likewise.
5139         (sse2_ssadd<mode>3): Likewise.
5140         (sse2_usadd<mode>3): Likewise.
5141         (sub<mode>3): Likewise.
5142         (*sub<mode>3): Likewise.
5143         (sse2_sssub<mode>3): Likewise.
5144         (sse2_ussub<mode>3): Likewise.
5145
5146 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
5147
5148         * gthr-single.h: Add in required interface elements as per gthr.h.
5149         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
5150         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
5151         Generalize UNUSED macro. 
5152         (__gthread_once): Add.
5153         (__gthread_key_create): Add.
5154         (__gthread_key_delete): Add.
5155         (__gthread_getspecific): Add.
5156         (__gthread_setspecific): Add.
5157         
5158 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
5159
5160         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
5161         the same size types for the indirect reference on the rhs, then
5162         create a VCE.
5163
5164 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
5165
5166         * config/i386/i386.md
5167         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
5168         one insn template instead of template series.
5169         (*xordi_1_rex64): Ditto.
5170         (*xordi_2_rex64): Ditto.
5171
5172 2008-05-05  Ira Rosen  <irar@il.ibm.com>
5173
5174         PR tree-optimization/36119
5175         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
5176         in case of SLP.
5177
5178 2008-06-04  Jan Hubicka  <jh@suse.cz>
5179
5180         tree-optimization/36100
5181         * tree-pass.h (pass_O0_always_inline): Declare.
5182         * ipa-inline.c (inline_transform): Remove dead code.
5183         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
5184         pass_O0_always_inline): New.
5185         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
5186
5187 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
5188
5189         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
5190         mnemonic in this_param move for TARGET_64BIT.
5191
5192 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
5193
5194         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
5195         (*strmovsi_rex_1): Ditto.
5196         (*strsetsi_1): Ditto.
5197         (*strsetsi_rex_1): Ditto.
5198
5199         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
5200         adddicc expanders using SWI mode iterator.
5201
5202 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5203
5204         PR target/36121
5205         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
5206         argument handling.
5207
5208 2008-05-04  David S. Miller  <davem@davemloft.net>
5209
5210         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
5211         (sparc*-*-linux*): Use linux.h in tm_file.
5212         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
5213         compiler defaulting to 32-bit.
5214         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
5215         no longer needed.
5216         * config/sparc/linux.h: Remove definitions now obtained
5217         properly from linux.h
5218         * config/sparc/linux64.h: Likewise.
5219         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
5220         don't want this setting for 32-bit builds in a biarch compiler.
5221         * doc/install.texi: Add sparc-linux to list of targets
5222         supporting --enable-targets=all.
5223
5224 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
5225
5226         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
5227
5228 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
5229
5230         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
5231         after V4SI_FTYPE_V8HI.
5232         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
5233         case V4SI_FTYPE_V2DF.
5234
5235 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
5236
5237         * doc/invoke.texi (max-flow-memory-locations): Removed.
5238         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
5239         
5240 2008-05-03  Richard Guenther  <rguenther@suse.de>
5241
5242         PR middle-end/34973
5243         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
5244
5245 2008-05-02  David S. Miller  <davem@davemloft.net>
5246
5247         * config.gcc (need_64bit_hwint): Document libcpp dependency.
5248
5249 2008-05-02  Simon Baldwin <simonb@google.com>
5250
5251         PR bootstrap/36108
5252         * c-common.h (warn_array_subscript_range): Removed.
5253         * c-common.c (warn_array_subscript_range): Ditto.
5254         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
5255         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
5256
5257 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5258
5259         * config/i386/i386.c (ix86_special_builtin_type): New.
5260         (bdesc_special_args): Likewise.
5261         (ix86_expand_special_args_builtin): Likewise.
5262         (ix86_init_mmx_sse_builtins): Updated.
5263         (ix86_expand_builtin): Updated.
5264         (ix86_expand_store_builtin): Removed.
5265         (ix86_expand_unop_builtin): Likewise.
5266
5267         * config/i386/mm3dnow.h (__v2sf): Moved to ...
5268         * config/i386/mmintrin.h (__v2sf): Here.
5269
5270         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
5271         const __v2sf.
5272         (_mm_loadl_pi): Likewise.
5273         (_mm_storeh_pi): Replace __v2si with __v2sf.
5274         (_mm_storel_pi): Likewise.
5275
5276         * doc/extend.texi: Correct __builtin_ia32_loadhps,
5277         __builtin_ia32_loadlps, __builtin_ia32_storehps,
5278         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
5279         __builtin_ia32_loadlpd.
5280
5281 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5282
5283         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
5284         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
5285         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
5286         (ix86_init_mmx_sse_builtins): Updated.
5287         (ix86_expand_args_builtin): Likewise.
5288         (ix86_expand_builtin): Likewise.
5289         (ix86_expand_unop1_builtin): Renamed to ...
5290         (ix86_expand_unop_vec_merge_builtin): This.
5291
5292 2008-05-01  Jan Hubicka  <jh@suse.cz>
5293
5294         PR bootstrap/36100
5295         * ipa-inline.c (inline_generate_summary): Make static.
5296         (inline_transform): Do not call inlining at -O0; make static.
5297         * passes.c (execute_todo): Add sanity check.
5298         (execute_one_ipa_transform_pass): Execute proper flags.
5299
5300 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
5301
5302         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
5303         (DECL_NONADDRESSABLE_P): Likewise.
5304         * alias.c (record_component_aliases): Fix comment.
5305
5306 2008-05-01  Simon Baldwin <simonb@google.com>
5307
5308         * c-common.h (warn_array_subscript_range): New function.
5309         * c-common.c (warn_array_subscript_range): Ditto.
5310         * tree-vrp.c (check_array_ref): Corrected code to agree with
5311         comment, ignoring only arrays of size 0 or size 1.
5312         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
5313
5314 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5315
5316         * config/i386/i386.c (ix86_builtin_type): Replace
5317         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
5318         (bdesc_args): Updated.
5319         (ix86_init_mmx_sse_builtins): Likewise.
5320         (ix86_expand_args_builtin): Likewise.
5321
5322         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
5323         with __v1di.
5324
5325         * doc/extend.texi: Correct __builtin_ia32_palignr.
5326
5327 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5328
5329         PR target/36095
5330         * config/i386/i386.c (bdesc_crc32): Removed.
5331         (ix86_expand_crc32): Likewise.
5332         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
5333         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
5334         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
5335         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
5336         UINT_FTYPE_UINT_UCHAR.
5337         (bdesc_args): Updated. Add crc32 builtins.
5338         (ix86_init_mmx_sse_builtins): Updated.
5339         (ix86_expand_args_builtin): Updated to support subreg.
5340
5341         * doc/extend.texi: Correct __builtin_ia32_crc32di.
5342
5343 2008-05-01  Jan Hubicka  <jh@suse.cz>
5344
5345         * tree-pass.h (opt_pass): Add IPA_PASS.
5346         (varpool_node, cgraph_node): Forward declare.
5347         (ipa_opt_pass): Define.
5348         (pass_ipa_inline): Turn into ipa_opt_pass.
5349         (pass_apply_inline): Remove.
5350         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
5351         (apply_inline): Turn into ....
5352         (inline_transform): ... this one.
5353         (inline_generate_summary): New function.
5354         (pass_apply_inline): Remove.
5355         * function.h (ipa_opt_pass): Forward declare structure; typedef;
5356         vector.
5357         (struct function): Add ipa_transforms_to_apply.
5358         * passes.c (register_one_dump_file): Work on IPA_PASS.
5359         (init_optimization_passes): Remove pass_inline_parameters and
5360         pass_apply_inline.
5361         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
5362         (execute_one_pass) ... here; apply transforms when possible.
5363         (add_ipa_transform_pass, execute_ipa_summary_asses,
5364         execute_one_ipa_transform_pass): New.
5365         (execute_ipa_pass_list): Update for IPA_PASS type.
5366
5367 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5368
5369         * config/i386/i386.c (ix86_builtin_type): Add
5370         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
5371         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
5372         (bdesc_args): Add SSE4a builtins.
5373         (ix86_init_mmx_sse_builtins): Updated.
5374         (ix86_expand_args_builtin): Likewise.
5375         (ix86_expand_builtin): Likewise.
5376
5377 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5378
5379         * config/i386/i386.c (ix86_builtin_type): Add
5380         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
5381         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
5382         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
5383         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
5384         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
5385         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
5386         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
5387         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
5388         and DI_FTYPE_DI_DI_INT.
5389         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
5390         (ix86_init_mmx_sse_builtins): Updated.
5391         (ix86_expand_args_builtin): Likewise.
5392         (ix86_expand_builtin): Likewise.
5393         (ix86_expand_binop_imm_builtin): Removed.
5394
5395         * doc/extend.texi: Correct __builtin_ia32_palignr128.
5396
5397 2008-04-30  Richard Guenther  <rguenther@suse.de>
5398
5399         PR tree-optimization/32921
5400         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
5401
5402 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
5403
5404         * config/arm/arm.c (arm_unwind_emit): Use
5405         crtl->all_throwers_are_sibcalls instead of
5406         cfun->all_throwers_are_sibcalls.
5407         (arm_output_fn_unwind): Likewise.
5408         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
5409         instead of cfun->uses_pic_offset_table.
5410         (frv_expand_prologue): Likewise.
5411         (frv_frame_pointer_required): Likewise.
5412         (frv_expand_fdpic_call): Likewise.
5413         (frv_emit_movsi): Likewise.
5414         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
5415         cfun->returns_pcc_struct instead of
5416         current_function_returns_pcc_struct.
5417         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
5418         instead of cfun->calls_eh_return.
5419         (m32c_pushm_popm): Likewise.
5420         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
5421         "extern" declaration.
5422
5423 2008-04-30  Richard Guenther  <rguenther@suse.de>
5424
5425         PR tree-optimization/21636
5426         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
5427         constant address.
5428         (evaluate_stmt): Print the likely value.
5429         (ccp_visit_stmt): Avoid excessive vertical spacing.
5430
5431 2008-04-30  Rafael Espindola  <espindola@google.com>
5432
5433         * builtins.c (fold_call_expr): Return realret.
5434         * tree-ssa-threadedge.c
5435         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5436         __builtin_object_size.
5437
5438 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
5439
5440         * gcc.c (wrapper_string): New variable.
5441         (insert_wrapper): New function.
5442         (execute): New option -wrapper.
5443         * doc/invoke.texi (Overall Options): New driver option -wrapper.
5444
5445 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
5446
5447         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
5448         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
5449         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
5450         from...
5451         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
5452         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
5453         config/rs6000/e500crtres64gprctr.asm,
5454         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
5455         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
5456         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
5457         config/rs6000/e500crtsav64gprctr.asm,
5458         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
5459         config/rs6000/e500crtsavg64gprctr.asm: New files.
5460         * config/rs6000/t-ppccomm: Add build rules for new files.
5461         (LIB2FUNCS_STATIC_EXTRA): Add new files.
5462         * config/rs6000/t-netbsd: Add build rules for new files.
5463         (LIB2FUNCS_STATIC_EXTRA): New variable.
5464         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
5465         (CRTSAVRES_DEFAULT_SPEC): Likewise.
5466         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
5467
5468 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
5469
5470         * config/i386/i386.c (ix86_builtin_type): Add
5471         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
5472         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
5473         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
5474         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
5475         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
5476         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
5477         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
5478         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
5479         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
5480         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
5481         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
5482         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
5483         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
5484         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
5485         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
5486         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
5487         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
5488         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
5489         V1DI_FTYPE_V2SI_V2SI.
5490         (bdesc_2arg): Moved to ...
5491         (bdesc_args): Here.
5492         (ix86_init_mmx_sse_builtins): Updated.
5493         (ix86_expand_args_builtin): Updated.  Take a pointer
5494         to const struct builtin_description.  Handle comparison
5495         builtin functions.
5496         (ix86_expand_sse_compare): Take a new argument for swapping operands.
5497         (ix86_expand_builtin): Updated.
5498
5499         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
5500         (ssse3_pmaddubsw128): This.
5501         (ssse3_pmaddubswv4hi3): Renamed to ...
5502         (ssse3_pmaddubsw): This.
5503
5504         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
5505         (__builtin_ia32_packssdw128): Likewise.
5506         (__builtin_ia32_packuswb128): Likewise.
5507         (__builtin_ia32_pmaddubsw): Likewise.
5508         (__builtin_ia32_pmaddubsw128): Likewise.
5509
5510 2008-04-30  Richard Guenther  <rguenther@suse.de>
5511
5512         PR tree-optimization/14847
5513         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
5514         (recognize_bits_test): Use it.
5515         (recognize_single_bit_test): Likewise.
5516
5517 2008-04-30  Martin Jambor  <mjambor@suse.cz>
5518
5519         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
5520         instead of setting number of formal parameters to zero.
5521         (ipcp_init_stage): Do not set the number of actual parameters to zero 
5522         either.
5523         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
5524         which are called with variable number of arguments.
5525         (ipcp_insert_stage): Explicitely skipping all nodes which are
5526         called with variable number of arguments.
5527         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
5528         number of parameters.
5529
5530         * ipa-prop.h (struct ipa_node_params): Added flag
5531         called_with_var_arguments
5532         (ipa_set_param_count): Added.  Changed sole setter to use it.
5533         (ipa_get_param_count): Added.  All readers of param_count
5534         converted to use it instead.
5535         (ipa_set_called_with_variable_arg): Added.
5536         (ipa_is_called_with_var_arguments): Added.
5537         (ipa_get_ith_param): Added.  All readers of param_decls converted
5538         to use it instead.
5539         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
5540         changed to use it. 
5541         (ipa_get_cs_argument_count): Added, all readers of argument_count
5542         changed to cal it.
5543         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
5544         to use it.
5545         
5546         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
5547         (struct ipcp_lattice): Renamed cval_type to type
5548         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
5549
5550         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
5551         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
5552         (ipcp_insert_stage): Changed the type of variable cvalue to tree
5553         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
5554         (build_const_val): Changed the type of parameter cvalue to tree
5555         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
5556         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
5557         
5558         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
5559         constant 
5560
5561         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
5562         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
5563         (ipa_add_method): Renamed to ipa_push_func_to_list
5564         (ipa_remove_method): Renamed to ipa_pop_func_from_list
5565         (ipa_callsite_param_count): Removed.
5566         (ipa_callsite_param_count_set): Removed.
5567         (ipa_callsite_param): Removed.
5568         (ipa_callsite_callee): Removed.
5569         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
5570         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
5571         (ipa_method_formal_count): Removed.
5572         (ipa_method_formal_count_set): Removed.
5573         (ipa_method_get_tree): Removed.
5574         (ipa_method_tree_map_create): Removed.
5575         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
5576         (ipa_create_param_decls_array): Creates the array itself
5577         (ipa_create_param_decls_array): Temporary variable info instead of 
5578         a few dereferences.
5579         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
5580         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
5581         (get_type): Removed.
5582         (ipa_jf_get_info_type): Removed.
5583         (ipa_node_create): Renamed to ipa_create_node_params
5584         (ipa_free): Renamed to ipa_free_all_node_params
5585         (ipa_nodes_create): Renamed to ipa_create_all_node_params
5586         (ipa_edges_create): Renamed to ipa_create_all_edge_args
5587         (ipa_edges_free): Renamed to ipa_free_all_edge_args
5588         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
5589         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
5590         ipa_free_all_edge_args
5591         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
5592         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
5593         (ipa_create_methodlist_node): Removed.
5594         (ipa_methodlist_method): Removed.
5595         (ipa_methodlist_method_set): Removed.
5596         (ipa_methodlist_next_method): Removed.
5597         (ipa_methodlist_next_method_set): Removed.
5598         (ipa_method_is_modified): Removed.
5599         (ipa_method_modify_create): Removed.
5600         (ipa_method_modify_init): Temporary variable info instead of a few 
5601         dereferences.
5602         (ipa_detect_param_modifications): Temporary variable info instead of 
5603         a few dereferences.
5604         (ipa_compute_jump_functions): Temporary variable info instead of 
5605         a few dereferences.
5606         (ipa_method_modify_set): Removed.
5607         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
5608         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
5609         than craph_node as the first parameter.
5610         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
5611         (ipa_method_modify_init): Removed.
5612         (ipa_compute_jump_functions): Added a temp variable instead of 
5613         repeatadly dereferencing the cgraph_edge.aux pointer
5614         (ipa_callsite_param_set_type): Removed.
5615         (ipa_compute_jump_functions): i renamed to index and moved to 
5616         an inner block
5617         (ipa_callsite_param_set_info_type_formal): Removed.
5618         (ipa_callsite_param_set_info_type): Removed.
5619         (ipa_callsite_param_map_create): Removed.
5620         (ipa_callsite_tree): Removed.
5621         (ipa_callsite_caller): Removed.
5622         (ipa_pop_func_from_list): return_method removed to return_func
5623
5624         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
5625         prefixed all values with IPA_. Changed all users.
5626         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
5627         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
5628         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
5629         (union parameter_info): Renamed to jump_func_value.
5630         (union jump_func_value): Renamed value to constant
5631         (struct ipa_jump_func): Renamed info_type to value
5632         (struct ipa_node): Renamed to ipa_node_params
5633         (struct ipa_node_params): Renamed ipa_arg_num to param_count
5634         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
5635         (struct ipa_node_params): Renamed ipa_mod to modified_flags
5636         (struct ipa_edge): Renamed to ipa_edge_args
5637         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
5638         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
5639         (struct ipa_methodlist): Renamed to ipa_func_list
5640         (struct ipa_func_list): method_p renamed to node, next_method
5641         renamed to next
5642         (ipa_methodlist_p): Removed, switched all users to struct pointer
5643         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
5644
5645 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
5646
5647         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
5648         (rs6000_emit_epilogue): Use backchain to restore only when we
5649         have a large frame.  Make use of frame pointer to restore if we
5650         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
5651
5652 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
5653
5654         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5655         Add mode to zero_extract.
5656         (sign bit tests peepholes): (Ditto.).
5657
5658 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
5659
5660         * config/i386/i386.c (ix86_builtins): Replace Prescott New
5661         Instructions in comments with SSE3.
5662         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
5663         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
5664         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
5665         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
5666         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
5667         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
5668         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
5669         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
5670         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
5671         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
5672         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
5673         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
5674         (bdesc_sse_args): Renamed to ...
5675         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
5676         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
5677         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
5678         IX86_BUILTIN_FABSQ.
5679         (bdesc_1arg): Moved to ...
5680         (bdesc_args): Here.
5681         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
5682         Instructions in comments with SSE3.
5683         (ix86_expand_sse_operands_builtin): Renamed to ...
5684         (ix86_expand_args_builtin): This.  Updated.
5685         (ix86_expand_unop1_builtin): Update comments.
5686         (ix86_expand_builtin): Updated.
5687
5688 2008-04-29  Richard Guenther  <rguenther@suse.de>
5689
5690         PR tree-optimization/36078
5691         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
5692         Update virtual SSA form after cleaning up the CFG.
5693
5694 2008-04-29  Richard Guenther  <rguenther@suse.de>
5695
5696         PR middle-end/15255
5697         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
5698
5699 2008-04-29  Richard Guenther  <rguenther@suse.de>
5700
5701         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
5702         (compute_may_aliases): Do not call finalize_ref_all_pointers.
5703         (compute_flow_insensitive_aliasing): Do not treat
5704         PTR_IS_REF_ALL pointers special.
5705         (get_smt_for): Likewise.
5706         (may_alias_p): Re-structure.
5707         (is_escape_site): A ref-all pointer conversion is not an escape site.
5708         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
5709         PTR_IS_REF_ALL pointers special.
5710         * tree-ssa-structalias.h (struct alias_info): Remove
5711         ref_all_symbol_mem_tag field.
5712         (PTR_IS_REF_ALL): Remove.
5713
5714 2008-04-29  Richard Guenther  <rguenther@suse.de>
5715
5716         PR middle-end/36077
5717         * fold-const.c (extract_muldiv_1): In combining division constants
5718         make sure to never overflow.
5719
5720 2008-04-29  Nick Clifton  <nickc@redhat.com>
5721
5722         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
5723
5724 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5725
5726         PR bootstrap/35169
5727         * optc-gen.awk: Work around HP-UX/IA awk bug.
5728
5729 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
5730
5731         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
5732         2008-04-25 commit.
5733
5734 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5735
5736         PR target/36073
5737         * config/i386/i386.md
5738         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
5739         Change operand 1 predicate to nonimmediate_operand.
5740
5741 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
5742
5743         PR debug/36060
5744         * dwarf2out.c (struct die_struct): Mark as chain_circular through
5745         die_sub field.
5746         * gengtype.c (walk_type, write_func_for_structure): Handle
5747         chain_circular.
5748         * doc/gty.texi: Document chain_circular.
5749
5750 2008-04-28  Richard Guenther  <rguenther@suse.de>
5751
5752         PR tree-optimization/36066
5753         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
5754         SCEV and loop.
5755
5756 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5757
5758         PR target/36064
5759         * config/i386/i386.md
5760         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
5761         Use match_scratch instead of match_operand for operands 3 and 4.
5762
5763 2008-04-27  Richard Guenther  <rguenther@suse.de>
5764
5765         PR tree-optimization/18754
5766         PR tree-optimization/34223
5767         * tree-pass.h (pass_complete_unrolli): Declare.
5768         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
5769         loop size before and after unconditionally of UL_NO_GROWTH in effect.
5770         Rewrite loop into loop closed SSA form if it is not already.
5771         (tree_unroll_loops_completely): Re-structure to iterate over
5772         innermost loops with intermediate CFG cleanups.
5773         Unroll outermost loops only if requested or the code does not grow
5774         doing so.
5775         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
5776         loops are available.
5777         (tree_vectorize): Instead do so here.
5778         (tree_complete_unroll): Also unroll outermost loops.
5779         (tree_complete_unroll_inner): New function.
5780         (gate_tree_complete_unroll_inner): Likewise.
5781         (pass_complete_unrolli): New pass.
5782         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
5783         uses outside of the loop.
5784         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
5785         form if it is available.  
5786         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
5787         * passes.c (init_optimization_passes): Schedule complete inner
5788         loop unrolling pass before the first CCP pass after final inlining.
5789
5790 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
5791
5792         * targhooks.h (default_emutls_var_fields,
5793         default_emutls_var_init): Declare.
5794         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
5795         * target.h (struct gcc_target): Add struct emutls member.
5796         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
5797         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
5798         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
5799         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
5800         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
5801         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
5802         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
5803         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
5804         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
5805         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
5806         emit debug information.
5807         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
5808         * varasm.c: Include targhooks.h.
5809         (emutls_object_section, emutls_tmpl_section): New.
5810         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
5811         (EMUTLS_SEPARATOR): New.
5812         (prefix_name): New.
5813         (get_emutls_object_name): New.
5814         (default_emutls_var_fields): New, broken out of ...
5815         (get_emutls_object_type): ... here.  Adjust to use target hooks.
5816         (get_emutls_init_templ_addr): Adjust to use target hooks.
5817         (emutls_decl): Adjust to use target hooks.
5818         (emutls_finish): Likewise.
5819         (default_emutls_var_init): New, broken out of ...
5820         (assemble_variable): ... here.  Adjust to use target hooks.
5821         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
5822         SECCAT_EMUTLS_TMPL.
5823         * c-common.c (handle_section_attribute): Prevent overriding
5824         sections for emulated tls with special sections.
5825         * config/i386/i386.c (x86_64_elf_select_section): Add
5826         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
5827         (x86_64_elf_unique_section): Likewise.
5828         * config/vxworks.c: Include tree.h.
5829         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
5830         (vxworks_override_options): Set TLS scheme.
5831         * doc/tm.texi (Emulated TLS): New node.
5832
5833 2008-04-26  Simon Baldwin <simonb@google.com>
5834
5835         PR c/35652
5836         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
5837         with propagated string constants.
5838
5839 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
5840
5841         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
5842         constraint for operand 2 when operand 0 is memory operand.
5843         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
5844         operand 0 is memory operand.
5845         (fix_trunc<mode>_i387_with_temp): Ditto.
5846         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
5847         operand 2 when operand 1 is memory operand.
5848         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
5849         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
5850         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
5851         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5852         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
5853         operands 2,3 and 4 when operand 1 is memory operand.
5854         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
5855         is memory operand.
5856         (fistdi2_floor_with_temp): Ditto.
5857         (fist<mode>2_floor_with_temp): Ditto.
5858         (fistdi2_ceil_with_temp): Ditto.
5859         (fist<mode>2_ceil_with_temp): Ditto.
5860         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
5861
5862 2008-04-26  David Daney  <ddaney@avtrex.com>
5863
5864         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
5865         unspec_volitile.
5866         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
5867         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
5868         UNSPEC_UPDATE_GOT_VERSION): Renumber.
5869         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
5870         (compare_and_swap_12): New insn.
5871         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
5872         * config/mips/mips.c (mips_force_binary): New function.
5873         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
5874         (mips_expand_compare_and_swap_12): New function.
5875         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
5876
5877 2008-04-25  Jan Hubicka  <jh@suse.cz>
5878
5879         PR testsuite/35843
5880         * cfgexpand.c (pass_expand): Turn into RTL pass.
5881         * passes.c (execute_one_pass): Do pass typechecking after execution.
5882         * tree-pass.h (pass_expand): Turn into RTL pass.
5883
5884         * function.h (struct rtl_data): Move here fields
5885         accesses_prior_frames, calls_eh_return, saves_all_registers,
5886         has_nonlocal_goto, has_asm_statement, is_thunk,
5887         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
5888         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
5889         arg_pointer_save_area_init from struct function; turn into bool.
5890         (struct function): Move
5891         calls_eh_return, saves_all_registers, has_nonlocal_goto,
5892         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
5893         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
5894         tail_call_emit, arg_pointer_save_area_init
5895         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
5896         (current_function_returns_struct, current_function_returns_pcc_struct,
5897         current_function_calls_setjmp, current_function_calls_alloca,
5898         current_function_accesses_prior_frames,
5899         current_function_calls_eh_return, current_function_is_thunk,
5900         current_function_stdarg, current_function_profile,
5901         current_function_limit_stack, current_function_uses_pic_offset_table,
5902         current_function_uses_const_pool, current_function_has_nonlocal_label,
5903         current_function_saves_all_registers,
5904         current_function_has_nonlocal_goto,
5905         current_function_has_asm_statement): Remove accesor macros.
5906         * ra-conflict.c (global_conflicts): Update.
5907         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
5908         (suitable_for_tail_call_opt_p): Update.
5909         * builtins.c (expand_builtin_return_addr): Update.
5910         (expand_builtin_setjmp_setup): Update.
5911         (expand_builtin_nonlocal_goto): Update.
5912         * final.c (final_start_function): Update.
5913         (profile_function): Update.
5914         (leaf_function_p): Update.
5915         (only_leaf_regs_used): Update.
5916         * df-scan.c (df_get_exit_block_use_set): Update.
5917         * dojump.c (clear_pending_stack_adjust): Update.
5918         * tree-stdarg.c (gate_optimize_stdarg): Update.
5919         * gimple-low.c (lower_function_body): Update.
5920         * global.c (compute_regsets): Update.
5921         (global_alloc): Update.
5922         * dwarf2out.c (dwarf2out_begin_prologue): Update.
5923         * expr.c (expand_assignment): Update.
5924         * dse.c (dse_step0): Update.
5925         (dse_step1): Update.
5926         * c-decl.c (store_parm_decls): Update.
5927         * local-alloc.c (combine_regs): Update.
5928         (find_free_reg): Update.
5929         * function.c (assign_parms_augmented_arg_list): Update.
5930         (assign_parm_find_data_types): Update.
5931         (assign_parms): Update.
5932         (allocate_struct_function): Update.
5933         (expand_function_start): Update.
5934         (expand_function_end): Update.
5935         (get_arg_pointer_save_area): Update.
5936         (thread_prologue_and_epilogue_insns): Update.
5937         (rest_of_match_asm_constraints): Update.
5938         * stor-layout.c (variable_size): Update.
5939         * gcse.c (gcse_main): Update.
5940         (bypass_jumps): Update.
5941         * gimplify.c (gimplify_function_tree): Update.
5942         * calls.c (emit_call_1): Update.
5943         (expand_call): Update.
5944         * bt-load.c (compute_defs_uses_and_gen): Update.
5945         * except.c (sjlj_assign_call_site_values): Update.
5946         (sjlj_emit_function_enter): Update.
5947         (can_throw_external): Update.
5948         (set_nothrow_function_flags): Update.
5949         (expand_builtin_unwind_init): Update.
5950         (expand_eh_return): Update.
5951         (convert_to_eh_region_ranges): Update.
5952         (output_function_exception_table): Update.
5953         * emit-rtl.c (gen_tmp_stack_mem): Update.
5954         * cfgexpand.c (expand_used_vars): Update.
5955         (tree_expand_cfg): Update.
5956         * cfgcleanup.c (rest_of_handle_jump): Update.
5957         * explow.c (allocate_dynamic_stack_space): Update.
5958         * varasm.c (assemble_start_function): Update.
5959         (force_const_mem): Update.
5960         (mark_constant_pool): Update.
5961         * tree-optimize.c (tree_rest_of_compilation): Update.
5962         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
5963         * tree-cfg.c (notice_special_calls): Update.
5964         (is_ctrl_altering_stmt): Update.
5965         (tree_can_make_abnormal_goto): Update.
5966         (tree_purge_dead_abnormal_call_edges): Update.
5967         * config/alpha/predicates.md: Update.
5968         * config/alpha/alpha.c (alpha_sa_mask): Update.
5969         (alpha_sa_size): Update.
5970         (alpha_does_function_need_gp): Update.
5971         (alpha_expand_prologue): Update.
5972         (alpha_start_function): Update.
5973         (alpha_output_function_end_prologue): Update.
5974         (alpha_expand_epilogue): Update.
5975         * config/frv/frv.c (frv_stack_info): Update.
5976         (frv_expand_epilogue): Update.
5977         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
5978         (s390_register_info): Update.
5979         (s390_frame_info): Update.
5980         (s390_init_frame_layout): Update.
5981         (s390_can_eliminate): Update.
5982         (save_gprs): Update.
5983         * config/spu/spu.c (spu_split_immediate): Update.
5984         (need_to_save_reg): Update.
5985         (spu_expand_prologue): Update.
5986         (spu_expand_epilogue): Update.
5987         * config/sparc/sparc.md: Update.
5988         * config/sparc/sparc.c (eligible_for_return_delay): Update.
5989         (sparc_tls_got): Update.
5990         (legitimize_pic_address): Update.
5991         (sparc_emit_call_insn): Update.
5992         (sparc_expand_prologue): Update.
5993         (output_return): Update.
5994         (print_operand): Update.
5995         (sparc_function_ok_for_sibcall): Update.
5996         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
5997         * config/m32r/m32r.md: Update.
5998         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
5999         (m32r_compute_frame_size): Update.
6000         (m32r_expand_prologue): Update.
6001         (m32r_expand_epilogue): Update.
6002         (m32r_legitimize_pic_address): Update.
6003         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
6004         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6005         * config/i386/i386.c (ix86_frame_pointer_required): Update.
6006         (gen_push): Update.
6007         (ix86_save_reg): Update.
6008         (ix86_compute_frame_layout): Update.
6009         (ix86_expand_prologue): Update.
6010         (ix86_expand_epilogue): Update.
6011         * config/sh/sh.c (output_stack_adjust): Update.
6012         (calc_live_regs): Update.
6013         (sh5_schedule_saves): Update.
6014         (sh_expand_prologue): Update.
6015         (sh_expand_epilogue): Update.
6016         (sh_setup_incoming_varargs): Update.
6017         (sh_allocate_initial_value): Update.
6018         (sh_get_pr_initial_val): Update.
6019         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
6020         * config/sh/sh.md (label:): Update.
6021         * config/avr/avr.c (out_movhi_mr_r): Update.
6022         * config/crx/crx.h (enum): Update.
6023         * config/xtensa/xtensa.h (along): Update.
6024         * config/stormy16/stormy16.c Update.
6025         (xstormy16_compute_stack_layout): Update.
6026         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
6027         (fr30_expand_prologue): Update.
6028         * config/cris/cris.c (cris_conditional_register_usage): Update.
6029         (cris_reg_saved_in_regsave_area): Update.
6030         (cris_initial_frame_pointer_offset): Update.
6031         (cris_simple_epilogue): Update.
6032         (cris_expand_prologue): Update.
6033         (cris_expand_epilogue): Update.
6034         (cris_expand_pic_call_address): Update.
6035         (cris_asm_output_symbol_ref): Update.
6036         (cris_asm_output_label_ref): Update.
6037         * config/cris/cris.md Update.
6038         * config/iq2000/iq2000.c (compute_frame_size): Update.
6039         (iq2000_expand_epilogue): Update.
6040         * config/mt/mt.h (save_direction): Update.
6041         * config/mn10300/mn10300.c (mn10300_function_value): Update.
6042         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6043         (ia64_secondary_reload_class): Update.
6044         * config/m68k/m68k.c (m68k_save_reg): Update.
6045         (m68k_expand_prologue): Update.
6046         (m68k_expand_epilogue): Update.
6047         (legitimize_pic_address): Update.
6048         * config/rs6000/rs6000.c (rs6000_got_register): Update.
6049         (first_reg_to_save): Update.
6050         (first_altivec_reg_to_save): Update.
6051         (compute_vrsave_mask): Update.
6052         (compute_save_world_info): Update.
6053         (rs6000_stack_info): Update.
6054         (spe_func_has_64bit_regs_p): Update.
6055         (rs6000_ra_ever_killed): Update.
6056         (rs6000_emit_eh_reg_restore): Update.
6057         (rs6000_emit_allocate_stack): Update.
6058         (rs6000_emit_prologue): Update.
6059         (rs6000_emit_epilogue): Update.
6060         (rs6000_output_function_epilogue): Update.
6061         (output_profile_hook): Update.
6062         (rs6000_elf_declare_function_name): Update.
6063         * config/rs6000/rs6000.h (rs6000_args): Update.
6064         * config/rs6000/rs6000.md: Update.
6065         * config/mcore/mcore.c (mcore_expand_prolog): Update.
6066         * config/arc/arc.c (arc_output_function_epilogue): Update.
6067         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
6068         * config/darwin.c (machopic_function_base_name): Update.
6069         * config/score/score3.c (score3_compute_frame_size): Update.
6070         (rpush): Update.
6071         (rpop): Update.
6072         (score3_epilogue): Update.
6073         * config/score/score7.c (score7_compute_frame_size): Update.
6074         (score7_prologue): Update.
6075         (score7_epilogue): Update.
6076         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
6077         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6078         * config/arm/arm.c (use_return_insn): Update.
6079         (require_pic_register): Update.
6080         (arm_load_pic_register): Update.
6081         (arm_compute_save_reg0_reg12_mask): Update.
6082         (arm_compute_save_reg_mask): Update.
6083         (thumb1_compute_save_reg_mask): Update.
6084         (output_return_instruction): Update.
6085         (arm_output_function_prologue): Update.
6086         (arm_output_epilogue): Update.
6087         (arm_get_frame_offsets): Update.
6088         (arm_expand_prologue): Update.
6089         (thumb_pushpop): Update.
6090         (thumb_exit): Update.
6091         (thumb1_expand_prologue): Update.
6092         (thumb1_expand_epilogue): Update.
6093         (arm_unwind_emit): Update.
6094         (arm_output_fn_unwind): Update.
6095         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
6096         * config/arm/arm.md: Update.
6097         * config/pa/pa.md: Update.
6098         * config/pa/pa.c (legitimize_pic_address): Update.
6099         (compute_frame_size): Update.
6100         (hppa_expand_prologue): Update.
6101         (hppa_expand_epilogue): Update.
6102         (borx_reg_operand): Update.
6103         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
6104         (HARD_REGNO_RENAME_OK): Update.
6105         * config/mips/mips.c (mips_global_pointer): Update.
6106         (mips_save_reg_p): Update.
6107         (mips_compute_frame_info): Update.
6108         (mips_frame_pointer_required): Update.
6109         (mips_expand_prologue): Update.
6110         (mips_expand_epilogue): Update.
6111         (mips_can_use_return_insn): Update.
6112         (mips_reorg_process_insns): Update.
6113         * config/v850/v850.c (compute_register_save_size): Update.
6114         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
6115         * config/mmix/mmix.c (along): Update.
6116         (mmix_expand_epilogue): Update.
6117         * config/bfin/bfin.c (legitimize_pic_address): Update.
6118         (must_save_p): Update.
6119         (stack_frame_needed_p): Update.
6120         (add_to_reg): Update.
6121         (bfin_expand_prologue): Update.
6122         * stmt.c (expand_asm_operands): Update.
6123         * reload1.c (reload): Update.
6124         (init_elim_table): Update.
6125
6126 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
6127         
6128         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
6129         
6130 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
6131
6132         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
6133         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
6134         (mov<mode>): Removed.
6135         (*movv4sf_internal): Likewise.
6136         (*movv2df_internal): Likewise.
6137
6138 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
6139
6140         * config.gcc (crx-*-elf): Remove deprecation.
6141
6142 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
6143
6144         * config/i386/cygming-crtend.c (register_frame_ctor): Register
6145         __gcc_deregister_frame with atexit.
6146         (deregister_frame_dtor): Remove.
6147
6148 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
6149             Nathan Sidwell  <nathan@codesourcery.com>
6150
6151         * config/rs6000/rs6000.opt (mspe): Remove Var property.
6152         (misel): Likewise.
6153         * config/rs6000/rs6000.h (rs6000_spe): Declare.
6154         (rs6000_isel): Likewise.
6155         * config/rs6000/rs6000.c (rs6000_spe): New variable.
6156         (rs6000_isel): New variable.
6157         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
6158
6159 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6160
6161         PR c++/35758
6162         * c-common.c (handle_vector_size_attribute): Call
6163         lang_hooks.types.reconstruct_complex_type instead of
6164         reconstruct_complex_type.
6165         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
6166         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
6167         * langhooks.h (struct lang_hooks_for_types): Add
6168         reconstruct_complex_type hook.
6169         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
6170         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
6171
6172 2008-04-24  Richard Guenther  <rguenther@suse.de>
6173
6174         * c-common.h (check_builtin_function_arguments): Declare.
6175         * c-common.c (validate_nargs): New function.
6176         (check_builtin_function_arguments): Likewise.
6177         * c-typeck.c (build_function_call): Call
6178         check_builtin_function_arguments.
6179         * builtins.c (fold_builtin_classify): Remove error reporting code.
6180         (fold_builtin_unordered_cmp): Likewise.
6181         (fold_builtin_1): Likewise.
6182         (fold_builtin_n): Likewise.
6183
6184 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6185
6186         PR tree-optimization/36008
6187         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
6188         the original op1, rather than delta by step.
6189
6190 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
6191             Sebastian Pop  <sebastian.pop@amd.com>
6192
6193         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
6194         eliminate_local_variables_stmt, eliminate_local_variables,
6195         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
6196         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
6197         of code delimited by two edges in the CFG.
6198         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
6199         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
6200         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
6201         the case of parallelisation of reductions.
6202         (expr_invariant_in_region_p): New.
6203
6204         * tree-flow.h (gather_blocks_in_sese_region): Declared.
6205         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
6206
6207 2008-04-24  Ira Rosen  <irar@il.ibm.com>
6208             Richard Guenther  <rguenther@suse.de>
6209
6210         PR tree-optimization/36034
6211         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
6212         incapable of dealing with loads with gaps.
6213
6214 2008-04-24  Rafael Espindola  <espindola@google.com>
6215
6216         * tree-flow.h (vrp_evaluate_conditional): Change signature.
6217         * tree-ssa-propagate.c (fold_predicate_in): Update call to
6218         vrp_evaluate_conditional.
6219         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
6220         (vrp_evaluate_conditional): Split the cond argument.
6221         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
6222         (simplify_stmt_for_jump_threading): Update call to
6223         vrp_evaluate_conditional.
6224
6225 2008-04-24  Ira Rosen  <irar@il.ibm.com>
6226
6227         PR tree-optimization/35982
6228         * tree-vect-analyze.c (vect_check_interleaving): Check that the
6229         interleaved data-refs are of the same type.
6230
6231 2008-04-24  Danny Smith  <dannysmith@users.net>
6232
6233         * c-format.c (check_format_info_main): Use strncmp rather than a
6234         magic prefix to handle multichar length specs.
6235         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
6236         Don't prefix "I64" and "I32" with '\0'.
6237
6238 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6239
6240         PR target/36015
6241         * config/i386/i386.c (init_cumulative_args): Don't pass anything
6242         in registers for -m32 only if stdarg_p (fntype).
6243
6244 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
6245
6246         PR rtl-optimization/36006
6247         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
6248         temp to op0 in order to avoid invalid rtx sharing.
6249
6250 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
6251
6252         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
6253         check TREE_INVARIANT.
6254         * tree-gimple.c (is_gimple_address): New.
6255         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
6256         * tree-gimple.h (is_gimple_address): New.
6257         * tree.h (decl_address_invariant_p): New.
6258         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
6259         (build_string): Likewise.
6260         (decl_address_invariant_p): New, from is_gimple_invariant_address.
6261         (tree_invariant_p_1): Likewise.
6262         (save_expr): Use it.
6263         (tree_invariant_p): New.
6264         (skip_simple_arithmetic): Use it.
6265         (stabilize_reference_1): Use it.
6266         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
6267         simplify.
6268         (build1_stat): Drop code to compute TREE_INVARIANT.
6269         (build2_stat): Drop code to compute TREE_INVARIANT.
6270         (build3_stat): Drop code to compute TREE_INVARIANT.
6271         (build4_stat): Drop code to compute TREE_INVARIANT.
6272         (build5_stat): Drop code to compute TREE_INVARIANT.
6273         (build7_stat): Drop code to compute TREE_INVARIANT.
6274         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
6275         * tree.h (struct tree_base): Remove invariant_flag.
6276         (TREE_INVARIANT): Remove.
6277         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
6278         (fold_builtin_expect): Check TREE_CONSTANT.
6279         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
6280         * c-tree.h (c_expr_to_decl): Drop third parameter.
6281         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
6282         (build_c_cast): Don't set TREE_INVARIANT.
6283         (pop_init_level): Don't set TREE_INVARIANT.
6284         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
6285         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
6286         TREE_CONSTANT.
6287         (gimplify_init_constructor): Don't set TREE_INVARIANT.
6288         (gimplify_addr_expr): Adjust comment.
6289         * tree-mudflap.c (mf_build_string):
6290         * print-tree.c (print_node): Don't print TREE_INVARIANT.
6291         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
6292         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
6293         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
6294         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
6295         * langhooks.h (struct lang_hooks): Drop third parameter from
6296         expr_to_decl.
6297
6298 2008-04-23  Richard Guenther  <rguenther@suse.de>
6299
6300         PR tree-optimization/27799
6301         PR tree-optimization/32921
6302         PR tree-optimization/32624
6303         * tree-ssa-structalias.c (merge_smts_into): Only merge the
6304         SMTs aliases and the tag itself into the solution.
6305         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
6306         merge the points-to solution back into the SMT aliases.
6307         (may_alias_p): Use alias_set_subset_of instead of
6308         aliases_conflict_p.  A pointer which points to
6309         memory with alias set zero may access any variable.
6310
6311 2008-04-23  Richard Guenther  <rguenther@suse.de>
6312
6313         * alias.c (alias_set_subset_of): Correctly handle asking
6314         if zero is a subset of an alias set with zero child.
6315         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
6316         (compute_flow_insensitive_aliasing): Correctly walk all
6317         pointers.  Do not unnecessarily union sets.
6318
6319 2008-04-23  Richard Guenther  <rguenther@suse.de>
6320
6321         PR middle-end/36021
6322         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
6323
6324 2008-04-22  Tomas Bily  <tbily@suse.cz>
6325
6326         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
6327         unreachable case.
6328         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
6329         NON_LVALUE_EXPR.
6330         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
6331         * tree-ssa-structalias.c (get_constraint_for): Likewise.
6332         * tree-inline.c (estimate_num_insns_1): Likewise.
6333         * varasm.c (const_hash_1, compare_constant, copy_constant)
6334         (compute_reloc_for_constant, output_addressed_constants): Likewise.
6335         * emit-rtl.c (component_ref_for_mem_expr)
6336         (set_mem_attributes_minus_bitpos): Likewise.
6337         * expr.c (highest_pow2_factor, expand_expr_real_1, )
6338         (is_aligning_offset): Likewise.
6339         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
6340         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
6341         * dojump.c (do_jump): Likewise.
6342         * builtins.c (get_pointer_alignment, get_memory_rtx)
6343         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
6344         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
6345
6346 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
6347
6348         PR rtl-optimization/36017
6349         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
6350         expanding the library call.
6351
6352 2008-04-22  Ian Lance Taylor  <iant@google.com>
6353
6354         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
6355         than size_in_bytes.
6356
6357 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
6358
6359         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
6360         of LR/CTR moves for Power6.
6361
6362 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
6363
6364         PR middle-end/36003
6365         * passes.c (init_optimization_passes): Remove
6366         pass_fast_rtl_byte_dce.
6367         
6368 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
6369
6370         PR target/29096
6371         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
6372         builtin functions to generate faster code.
6373         (_mm_cvtpu16_ps): Ditto.
6374         (_mm_cvtpi32x2_ps): Ditto.
6375
6376 2008-04-22  Nick Clifton  <nickc@redhat.com>
6377
6378         * common.opt (ftree-loop-distribution): Add Optimization
6379         attribute.
6380
6381         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
6382         (frv_expand_builtin_va_start): Likewise.
6383
6384         * config/arm/arm.c (thumb_find_work_register): Fix location of
6385         argument register count.
6386
6387 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6388
6389         Support scheduling for ColdFire V1 and V3 microarchitecture.
6390         Improve scheduling of multiplication instructions.
6391
6392         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
6393         (mac): New instruction attribute.
6394         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
6395         (m68k_sched_mac): New variable.
6396         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
6397         Handle cfv1 and cfv3.
6398         (max_insn_size): New static variable.
6399         (struct _sched_ib): New type.
6400         (sched_ib): New static variable.
6401         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
6402         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
6403         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
6404         Update.
6405         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
6406         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
6407         new variables.  Update.
6408         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
6409         Add modeling of cfv3 instruction buffer.  Update.
6410         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
6411         * config/m68k/m68k.h (TUNE_CFV3): New macro.
6412         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
6413         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
6414         a particular reservation applies to.
6415         (type2): Reorganize attribute values.  Rename alu to alu_reg,
6416         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
6417         to mul_l and mul_w.
6418         (cf_ib_*): Simplify description of instruction buffer.
6419         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
6420         (cf_mem): Split into cf_mem1 and cf_mem2.
6421         (cf_v2_move_??): Rename to cfv12_alu_??.
6422         (cf_v2_move_l_??): Rename to cfv12_omove_??.
6423         (cf_v2_mul_??): Remove reservations.
6424         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
6425         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
6426         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
6427         appropriate place.
6428         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
6429         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
6430         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
6431         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
6432         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
6433         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
6434         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
6435         expansions of the above reservations for instructions of sizes
6436         1, 2 and 3 words.
6437
6438 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6439
6440         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
6441
6442 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
6443
6444         * coverage.c: Include tree-pass.h.
6445         (coverage_counter_alloc): Print da_file_name to the dump file.
6446
6447 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
6448
6449         * sbitmap.c (sbitmap_range_empty_p): New function.
6450         * sbitmap.h (sbitmap_range_empty_p): New function.
6451         * bitmap.h: Now includes obstack.h.
6452
6453 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
6454             Kenneth Zadeck  <zadeck@naturalbridge.com>
6455
6456         * dbgcnt.def (ra_byte_scan): Added.
6457         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
6458         when the last hit happens for a counter.  
6459         * timevar.def (TV_DF_BYTE_LR): New variable.
6460         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
6461         * passes.c (pass_fast_rtl_byte_dce): New pass.
6462         * fwprop.c (update_df): Added mode to call df_ref_create.
6463         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6464         DF_REF_EXTRACT_OFFSET.
6465         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
6466         DF_BYTE_LR_OUT, df_byte_lr): New macro.
6467         (df_mm): New enum.
6468         (df_ref_extract): Added mode field.
6469         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
6470         DF_REF_EXTRACT_OFFSET.
6471         (DF_REF_EXTRACT_MODE): New macro.
6472         (df_byte_lr_bb_info): New structure.
6473         (df_print_byte_regset, df_compute_accessed_bytes, 
6474         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
6475         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
6476         df_byte_lr_simulate_uses,
6477         df_byte_lr_simulate_artificial_refs_at_top,
6478         df_byte_lr_simulate_artificial_refs_at_end,
6479         df_compute_accessed_bytes): New function.
6480         (df_ref_create): Add parameter.
6481         (df_byte_lr_get_bb_info): New inline function.
6482         * df-scan.c (df_ref_record, df_uses_record,
6483         df_ref_create_structure): Added mode parameter.
6484         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
6485         df_defs_record, df_uses_record, df_get_conditional_uses,
6486         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
6487         df_entry_block_defs_collect, df_exit_block_uses_collect):
6488         Added mode parameter to calls to df_ref_record, df_uses_record,
6489         df_ref_create_structure.
6490         (df_ref_equal_p, df_ref_compare): Added test for modes.
6491         (df_ref_create_structure): Added code to set mode.  Renamed
6492         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6493         DF_REF_EXTRACT_OFFSET.
6494         * df-core.c (df_print_byte_regset): New function.
6495         * df-byte-scan.c: New file.
6496         * df-problems.c (df_rd_transfer_function): Removed unnecessary
6497         calls to BITMAP_FREE.  
6498         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
6499         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
6500         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
6501         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
6502         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
6503         df_byte_lr_local_compute, df_byte_lr_init,
6504         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
6505         df_byte_lr_transfer_function, df_byte_lr_free, 
6506         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
6507         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
6508         df_byte_lr_simulate_uses,
6509         df_byte_lr_simulate_artificial_refs_at_top,
6510         df_byte_lr_simulate_artificial_refs_at_end): New function.
6511         * dce.c (byte_dce_process_block): New function.
6512         (dce_process_block): au is now passed in rather than computed
6513         locally.  Changed loops that look at artificial defs to not look
6514         for conditional or partial ones, because there never are any.  
6515         (fast_dce): Now is able to drive byte_dce_process_block or 
6516         dce_process_block depending on the kind of dce being done.
6517         (rest_of_handle_fast_dce): Add parameter to fast_dce.
6518         (rest_of_handle_fast_byte_dce): New function.
6519         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
6520         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
6521
6522 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
6523
6524         PR fortran/35019
6525         * gcc.h: Added fortran options that take arguments to
6526         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
6527         macros.
6528
6529 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
6530
6531         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
6532         scalarization if on the LHS and not a full access.
6533
6534 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6535
6536         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
6537
6538 2008-04-18  Rafael Espindola  <espindola@google.com>
6539
6540         * tree-vrp.c (find_case_label_index): Fix the binary search.
6541         (find_case_label_range): New.
6542         (vrp_visit_switch_stmt): Use find_case_label_range.
6543         (simplify_switch_using_ranges): Use find_case_label_range.
6544
6545 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6546
6547         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
6548         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
6549
6550 2008-04-18  Tom Tromey  <tromey@redhat.com>
6551
6552         PR libcpp/15500:
6553         * doc/cpp.texi (Implementation-defined behavior): Mention
6554         -finput-charset.
6555
6556 2008-04-18  Ian Lance Taylor  <iant@google.com>
6557
6558         * fold-const.c (pointer_may_wrap_p): New static function.
6559         (fold_comparison): Add another test for pointer overflow.  Use
6560         pointer_may_wrap_p to disable some false positives.
6561
6562 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
6563           
6564         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
6565         (fname_as_string): Match updated cpp_interpret_string prototype.
6566         (fix_string_type): Support char16_t* and char32_t*.
6567         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
6568         derivative) nodes.  Register as builtin if C++0x.
6569         (c_parse_error): Support CPP_CHAR{16,32}.
6570         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
6571         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
6572         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
6573         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
6574         CTI_CHAR32_ARRAY_TYPE>: New elements.
6575         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
6576         char32_type_node, signed_char32_type_node, char16_array_type_node,
6577         char32_array_type_node): New defines.
6578         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
6579         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
6580         (lex_string): Support CPP_STRING{16,32}, match updated
6581         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
6582         (lex_charconst): Support CPP_CHAR{16,32}.
6583         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
6584         and CPP_STRING{16,32}.
6585
6586 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
6587
6588         PR bootstrap/35457
6589         * aclocal.m4: Regenerate.
6590         * configure: Regenerate.
6591
6592 2008-04-18  Jan Hubicka  <jh@suse.cz>
6593
6594         * except.c (dw2_size_of_call_site_table,
6595         sjlj_size_of_call_site_table): Use vector API for call_site_record.
6596
6597         * cgraphbuild.c (build_cgraph_edges): Update.
6598         * tree-pass.h: Update comment.
6599         * final.c (leaf_function_p): Update.
6600         (leaf_renumber_regs): Update.
6601         (rest_of_clean_state): Update.
6602         * omp-low.c (expand_omp_parallel): Update.
6603         * ipa-reference.c (analyze_function): Update.
6604         * reorg.c (find_end_label): Update.
6605         (optimize_skip): Update.
6606         (fill_simple_delay_slots): Update.
6607         (fill_simple_delay_slots): Update.
6608         (make_return_insns): Update.
6609         (dbr_schedule): Update.
6610         * gimple-low.c (record_vars_into): Update.
6611         * cfgbuild.c (make_edges): Update.
6612         * function.c (assign_stack_local): Update.
6613         (assign_parm_adjust_stack_rtl): Update.
6614         (locate_and_pad_parm): Update.
6615         (allocate_struct_function): Do not initialize stack_alignment_needed
6616         and preferred_stack_boundary here.
6617         (stack_protect_prologue): Update.
6618         (stack_protect_epilogue): Update.
6619         (expand_function_start): Initialize stack_alignment_needed,
6620         preferred_stack_boundary and max_jumptable_ents.
6621         (expand_function_end): Update.
6622         (free_after_compilation): Do not NULLify epilogue_delay_list.
6623         * function.h (struct rtl_data): Add stack_protect_guard,
6624         stack_alignment_needed,
6625         preferred_stack_boundary, epilogue_delay_list.
6626         (struct function): Remove value_histograms, stack_alignment_needed,
6627         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
6628         last_label_uid,
6629         unexpanded_var_list, stack_protect_guard.
6630         (current_function_epilogue_delay_list): Remove.
6631         * ipa-type-escape.c (analyze_function): Update.
6632         * gimplify.c (pop_gimplify_context): Update comment.
6633         * calls.c (expand_call): Update.
6634         (emit_library_call_value_1): Update.
6635         * except.c (set_nothrow_function_flags): Update.
6636         * cfgexpand.c (get_decl_align_unit): Update.
6637         (create_stack_guard): Update.
6638         (estimated_stack_frame_size): Update.
6639         (expand_used_vars): Update.
6640         (tree_expand_cfg): Free histogram earliers, init expansion variables.
6641         * explow.c (allocate_dynamic_stack_space): Update.
6642         * tree-ssa-live.c (remove_unused_locals): Update.
6643         * varasm.c (mark_constant_pool): Update.
6644         * tree-inline.c (remap_decls): Update.
6645         (initialize_cfun): Update.
6646         (declare_return_variable): Update.
6647         (inline_forbidden_p): Update.
6648         (expand_call_inline): Update.
6649         (declare_inline_vars): Update.
6650         (tree_function_versioning): Update.
6651         * tree-flow.h (value_histograms): New.
6652         (VALUE_HISTOGRAMS): New macro.
6653         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
6654         last_label_uid.
6655         * tree-cfg.c (set_bb_for_stmt): Update.
6656         (replace_by_duplicate_decl): Update.
6657         (move_block_to_fn): Update.
6658         (new_label_mapper): Update.
6659         (dump_function_to_file): Update.
6660         * ipa-struct-reorg.c (build_data_structure): Update.
6661         * cfgrtl.c (print_rtl_with_bb): Update.
6662         * reload1.c (reload): Update.
6663         (reload): Update.
6664         * config/i386/i386.c (setup_incoming_varargs_64,
6665         ix86_compute_frame_layout): Update.
6666         * config/arc/arc.c (arc_output_function_epilogue): Update.
6667
6668 2008-04-18  Marius Strobl <marius@FreeBSD.org>
6669
6670         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
6671         for FreeBSD as well.
6672         * gthr-posix95.h: Likewise.
6673
6674 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
6675
6676         PR rtl-optimization/35838
6677         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
6678         out the byte offset of the first subreg.
6679
6680 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
6681
6682         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
6683         to split_ti instead of three separate calls with single member arrays.
6684         (subti3 splitter): Ditto.
6685         (adddi3 splitter): Ditto with split_di.
6686         (subdi3 splitter): Ditto.
6687         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
6688         two separate calls with single member arrays.  Swap match_dup
6689         operands 1 and 2 to better fit into the array.
6690         (negdi2 splitter): Ditto with split_di.
6691         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
6692         two separate calls with single member arrays.  Swap match_dup operands
6693         6 and 7 to better fit into the array.
6694
6695 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
6696
6697         * config/i386/i386.c (sse_builtin_type): New.
6698         (bdesc_sse_args): Likewise.
6699         (bdesc_sse_3arg): Removed.
6700         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6701         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
6702         IX86_BUILTIN_ROUNDPS.
6703         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
6704         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
6705         IX86_BUILTIN_ROUNDPS.
6706         (ix86_expand_sse_4_operands_builtin): Removed.
6707         (ix86_expand_sse_operands_builtin): New.
6708         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
6709         and CODE_FOR_sse4_1_roundps.
6710         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6711         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
6712
6713 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
6714
6715         PR target/35907
6716         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
6717         regs before frame pop when needed.  If use_backchain_to_restore_sp
6718         then load backchain into a temp reg to restore vr and vrsave.  Add
6719         code to restore vr after frame pop if possible.
6720
6721 2008-04-17  Richard Guenther  <rguenther@suse.de>
6722
6723         * tree-vn.c (expressions_equal_p): Do not check type
6724         equality or compatibility before calling operand_equal_p.
6725         * fold-const.c (operand_equal_p): Check equivalence of
6726         integer constants before bailing out due to signedness or
6727         precision differences.
6728         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
6729         spurious differences in type qualification.  Ignore types
6730         for COMPONENT_REFs at all.
6731
6732 2008-04-17  Christian Bruel  <christian.bruel@st.com>
6733
6734         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
6735         msw_skip comparison.
6736         
6737 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
6738
6739         PR c/35739
6740         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
6741         reg type.
6742
6743         PR tree-optimization/35899
6744         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
6745         rather than TREE_OPERAND.
6746
6747 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
6748
6749         PR target/35944
6750         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
6751         temporary registers.  Change operand predicate to general_operand.
6752         (remainderxf3): Ditto.
6753
6754 2008-04-16  Richard Guenther  <rguenther@suse.de>
6755
6756         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
6757         * tree-affine.c (aff_combination_expand): Look through some
6758         conversions.
6759
6760 2008-04-15  Doug Kwan  <dougkwan@google.com>
6761
6762         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
6763         for hex printing.
6764         * tree-pretty-print.c (dump_generic_node): Ditto.
6765         * final.c (output_addr_const): Ditto.
6766         * dwarf2out.c (output_cfi): Ditto.
6767         * c-pretty-print.c (pp_c_integer_constant): Ditto.
6768         * print-rtl.c (print_rtx): Ditto.
6769         * print-tree.c (print_node_brief, print_node): Ditto.
6770         * c-common.c (match_case_to_enum_1): Ditto.
6771         * sched-vis.c (print_value): Ditto.
6772         * config/i386/i386.c (print_operand): Cast to long unsigned int
6773         for hex printing.
6774
6775 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
6776         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
6777         MS Windows VirtualProtect function.
6778
6779 2008-04-15  Jan Hubicka  <jh@suse.cz>
6780
6781         * gengtype.c (write_root): Param_is argument is OK.
6782         * expr.c (expand_expr_real_1): Update call of get_exception_*.
6783         * function.h: Include varray.h
6784         (rtl_eh): New stucture based on except.c one.
6785         (call_site_record): New forward declaration and vector type.
6786         * calls.c (emit_call_1): Do not call
6787         note_current_region_may_contain_throw.
6788         * except.c (eh_status): Remove cur_region, try_region since they are
6789         unused.
6790         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
6791         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
6792         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
6793         Remove call_site_data_used, call_site_data_size.
6794         Turn call_site_record into vector in function.h.
6795         (note_current_region_may_contain_throw): Remove.
6796         (get_exception_pointer, get_exception_filter): Do not take struct
6797         function argument; update.
6798         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
6799         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
6800         build_post_landing_pads, dw2_build_landing_pads,
6801         sjlj_assign_call_site_values, sjlj_mark_call_sites,
6802         sjlj_emit_function_enter, sjlj_emit_function_enter, 
6803         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
6804         sjlj_build_landing_pads, finish_eh_generation,
6805         remove_exception_handler_label, remove_eh_handler,
6806         maybe_remove_eh_handler, add_reachable_handler,
6807         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
6808         add_action_record, collect_one_action_chain, add_call_site,
6809         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
6810         sjlj_output_call_site_table, output_function_exception_table,
6811         * except.h (note_current_region_may_contain_throw): Remove
6812         (get_exception_pointer, get_exception_filter): Do not take struct
6813         function argument.
6814         * Makefile.in (GTFILES): Put varargs before struct function.
6815
6816 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6817
6818         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
6819         punt for STRING_CST.
6820         (get_constraint_for): Deal with STRING_CST here instead.
6821
6822 2008-04-15  Richard Guenther  <rguenther@suse.de>
6823
6824         * tree-ssa-propagate.c (substitute_and_fold): Substitute
6825         statements in a basic-block with a backward walk.  Do not
6826         substitute into dead statements but instead remove those.
6827
6828 2008-04-15  Richard Guenther  <rguenther@suse.de>
6829
6830         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
6831         to zero, thus disable creation of SFTs.
6832
6833 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6834
6835         * tree-predcom.c (suitable_reference_p): Return false if the
6836         reference can throw.
6837
6838 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
6839
6840         PR c/35751
6841         * c-decl.c (finish_decl): If extern or static var has variable
6842         size, set TREE_TYPE (decl) to error_mark_node.
6843
6844 2008-04-15  Rafael Espindola  <espindola@google.com>
6845
6846         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
6847         variable arg1.
6848
6849 2008-04-15  Richard Guenther  <rguenther@suse.de>
6850
6851         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
6852         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
6853         (visit_reference_op_load): Do walk vuse-vdef chains on
6854         vn_reference_lookup.
6855         (visit_reference_op_store): But do not here.
6856         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
6857         vn_reference_lookup.
6858         (vn_lookup_with_vuses): But do so here.
6859
6860 2008-04-14  Ian Lance Taylor  <iant@google.com>
6861
6862         * fold-const.c (fold_overflow_warning): Remove assertion.
6863
6864 2008-04-15  Ben Elliston  <bje@au.ibm.com>
6865
6866         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
6867         temp1 local variables.
6868
6869 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
6870
6871         PR target/35661
6872         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
6873         ".text.unlikely" section as executable.
6874
6875 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
6876
6877         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6878         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
6879         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
6880         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
6881         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
6882         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
6883         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
6884
6885 2008-04-14  Ian Lance Taylor  <iant@google.com>
6886
6887         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
6888         * fold-const.c (fold_comparison): If appropriate, test
6889         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
6890         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
6891         reassociating a pointer type.
6892         * doc/invoke.texi (Optimize Options): Document that
6893         -fstrict-overflow applies to pointer wraparound.
6894
6895 2008-04-13  Jan Hubicka  <jh@suse.cz>
6896
6897         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
6898
6899 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
6900
6901         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
6902         we are going to "save the world".
6903
6904 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
6905
6906         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
6907         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
6908         operand 0 constraint, not "=".
6909
6910 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
6911
6912         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
6913
6914 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6915
6916         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
6917         of size of positions_needed * CHAR_BIT.
6918
6919 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6920
6921         PR middle-end/35897
6922         * dse.c (store_info): Change positions_needed to unsigned
6923         HOST_WIDE_INT.
6924         (lowpart_bitmask): New.
6925         (record_store): Cast to unsigned HOST_WIDE_INT for
6926         positions_needed.  Assert width <= size of positions_needed *
6927         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
6928         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
6929         lowpart_bitmask to set mask.
6930
6931 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
6932
6933         * config/bfin/constraints.md: New file.
6934         * config/bfin/bfin.md: Include it.
6935         (adddi3): Use satisfies_constraint functions instead of the old macros.
6936         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
6937         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
6938         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
6939         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
6940         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
6941         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
6942         EXTRA_CONSTRAINT): Delete.
6943         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
6944         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
6945         of the old macros.
6946         * config/bfin/bfin.c: Include "tm-constrs.h".
6947         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
6948         Use satisfies_constraint functions instead of the old macros.
6949         * doc/md.texi (Blackfin Constraints): Update file name reference.
6950
6951 2008-04-11  Richard Guenther  <rguenther@suse.de>
6952
6953         PR tree-optimization/35869
6954         * tree-vrp.c (execute_vrp): Move switch statement update after
6955         jump threading.  Schedule another cfg cleanup run.
6956
6957 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
6958
6959         PR c/35744
6960         * attribs.c (decl_attributes): Return early on errorneous node.
6961
6962 2008-04-10  Oleg Ryjkov  <olegr@google.com>
6963
6964         * tree.h (struct tree_base): Added a new flag default_def_flag.
6965         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
6966
6967 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6968
6969         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
6970
6971 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6972
6973         PR target/35768
6974         * pa.md: Define mode iterator P.  Define mode attribute dwc.
6975         (dcacheflush): Update pattern to use iterator P and attribute dwc.
6976         (icacheflush): Likewise.
6977         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
6978         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
6979
6980 2008-04-11  Ben Elliston  <bje@au.ibm.com>
6981
6982         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
6983
6984 2008-04-10  Rafael Espindola  <espindola@google.com>
6985
6986         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
6987         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
6988         (extract_range_from_expr): The same.
6989
6990 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
6991
6992         * config/mips/mips.md (GPR2): New mode iterator.
6993         (seq): Add comment.
6994         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
6995         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
6996         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
6997         Rewrite these to take two modes, the mode of comparison and the
6998         mode of the destination.
6999         * config/mips/mips.c (mips_expand_scc): Instead of having
7000         paradoxical subreg as destination, expand "narrowing" scc if mode
7001         of comparison is SI and target is requested in DI mode.
7002         (mips_emit_int_order_test): Update comment.  Make mode of
7003         comparison match CMP0 rather than TARGET.  When creating inverse
7004         target use mode of TARGET.
7005
7006 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
7007
7008         * gcov-dump.c (tag_summary): Only print summaries for the first
7009         GCOV_COUNTERS_SUMMABLE counters.
7010
7011 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
7012
7013         * config/i386/i386.md (absneg): New code iterator.
7014         (absnegprefix): New code attribute.
7015         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
7016         patterns using absneg code iterator.
7017         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
7018         using absneg code iterator.
7019         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
7020         *neg<mode>2 patterns using absneg code iterator.
7021         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
7022         *negextendsfdf2 patterns using absneg code iterator.
7023         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
7024         *negextendsfxf2 patterns using absneg code iterator.
7025         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
7026         *negextendsfdf2 patterns using absneg code iterator.
7027         * config/i386/sse.md (<code><mode>2): Macroize expander from
7028         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
7029
7030 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
7031
7032         * config/s390/s390.h: Remove the remains of the recent search
7033         & replace action of current_function_outgoing_args_size.
7034
7035 2008-04-10  Ira Rosen  <irar@il.ibm.com>
7036
7037         PR tree-optimization/35821
7038         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
7039         NEW_STMT_LIST is not NULL.
7040
7041 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
7042
7043         PR libstdc++/35597
7044         * toplev.c (process_options): Remove -ffunction-sections debugging
7045         warning.
7046
7047 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
7048
7049         PR middle-end/PR28690
7050         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
7051         than gen_rtx_fmt_ee to perform more canonicalizations.
7052
7053 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7054
7055         PR driver/35665
7056         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
7057
7058 2008-04-09  Richard Guenther  <rguenther@suse.de>
7059
7060         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
7061         (dump_function_to_file): Dump function arguments with types.
7062
7063 2008-04-08  Richard Guenther  <rguenther@suse.de>
7064
7065         * fold-const.c (fold_widened_comparison): Do not allow
7066         sign-changes that change the result.
7067
7068 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
7069
7070         PR target/35839
7071         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
7072         kinds of indirect references.
7073
7074 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
7075
7076         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
7077         GNU Fortran language string.
7078
7079 2008-04-08  Rafael Espindola  <espindola@google.com>
7080
7081         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
7082         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
7083         * tree.h (tree_call_nonnegative_warnv_p): New.
7084
7085 2008-04-08  Jan Hubicka  <jh@suse.cz>
7086
7087         * function.c (free_after_compilation): Clear out regno_reg_rtx
7088         pointer.
7089
7090 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
7091
7092         Revert
7093         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7094
7095         PR middle-end/PR28690
7096         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
7097         same precedence as REG_POINTER and MEM_POINTER operands.
7098
7099 2008-04-08  Richard Guenther  <rguenther@suse.de>
7100
7101         PR middle-end/35834
7102         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
7103         for adding index to base.
7104
7105 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
7106
7107         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
7108         (MINGW_ENABLE_EXECUTE_STACK): New.
7109         (IN_LIBGCC2): For libgcc include windows.h file for
7110         function declarations.
7111
7112 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
7113
7114         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
7115         and tem2 if tem1 is not a REG or MULT.
7116
7117 2008-04-08  Jan Hubicka  <jh@suse.cz>
7118
7119         * function.h (incomming_args): Break out of struct function.
7120         (function_subsections): Break out of struct function.
7121         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
7122         return_rtx and hard_reg_initial_vals from struct function.
7123         Kill inl_max_label_num.
7124         (current_function_pops_args, current_function_args_info,
7125         current_function_args_size, current_function_args_size,
7126         current_function_pretend_args_size,
7127         current_function_outgoing_args_size,
7128         current_function_internal_arg_pointer, current_function_return_rtx):
7129         Kill compatibility accestor macros.
7130         * builtins.c (expand_builtin_apply_args_1): Update.
7131         (expand_builtin_next_arg): Update.
7132         * df-scan.c (df_get_call_refs): Update.
7133         * dbxout.c (dbxout_function_end): Update.
7134         * dwarf2out.c (dwarf2out_switch_text_section): Update.
7135         (output_line_info): Update.
7136         (secname_for_decl): Update.
7137         (dwarf2out_var_location): Update.
7138         * function.c (free_after_compilation): Update.
7139         (assign_parm_find_stack_rtl): Update.
7140         (assign_parms): Update.
7141         (expand_dummy_function_end): Update.
7142         (expand_function_end): Update.
7143         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
7144         (expand_call): Update.
7145         (emit_library_call_value_1): Update.
7146         (store_one_arg): Update.
7147         * varasm.c (initialize_cold_section_name): Update.
7148         (unlikely_text_section): Update.
7149         (unlikely_text_section_p): Update.
7150         (assemble_start_function): Update.
7151         (assemble_end_function): Update.
7152         (default_section_type_flags): Update.
7153         (switch_to_section): Update.
7154         * integrate.c (set_decl_abstract_flags): Update.
7155         (get_hard_reg_initial_val): Update.
7156         (has_hard_reg_initial_val): Update.
7157         (allocate_initial_values): Update.
7158         * resource.c (init_resource_info): Update.
7159         * config/alpha/alpha.c (NUM_ARGS): Update.
7160         (direct_return): Update.
7161         (alpha_va_start): Update.
7162         (alpha_sa_size): Update.
7163         (alpha_initial_elimination_offset): Update.
7164         (alpha_expand_prologue): Update.
7165         (alpha_start_function): Update.
7166         (alpha_expand_epilogue): Update.
7167         (unicosmk_initial_elimination_offset):
7168         * config/alpha/alpha.md (call expander): Update.
7169         * config/s390/s390.c (s390_register_info): Update.
7170         (s390_register_info): Update.
7171         (s390_frame_info): Update.
7172         (s390_initial_elimination_offset): Update.
7173         (s390_build_builtin_va_list): Update.
7174         (s390_va_start): Update.
7175         * config/spu/spu.c (direct_return): Update.
7176         (spu_expand_prologue): Update.
7177         (spu_initial_elimination_offset): Update.
7178         (spu_build_builtin_va_list): Update.
7179         (spu_va_start): Update.
7180         * config/sparc/sparc.c (sparc_init_modes): Update.
7181         (sparc_compute_frame_size): Update.
7182         (function_value): Update.
7183         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
7184         * config/i386/i386.md (return expander): Update.
7185         * config/i386/i386.c (ix86_va_start): Update.
7186         (ix86_can_use_return_insn_p): Update.
7187         (ix86_compute_frame_layout): Update.
7188         (ix86_expand_epilogue): Update.
7189         * config/sh/sh.c (output_stack_adjust): Update.
7190         (calc_live_regs): Update.
7191         (sh_expand_prologue): Update.
7192         (sh_builtin_saveregs): Update.
7193         (sh_va_start): Update.
7194         (initial_elimination_offset): Update.
7195         (sh_allocate_initial_value): Update.
7196         (sh_function_ok_for_sibcall): Update.
7197         (sh_get_pr_initial_val): Update.
7198         * config/sh/sh.md (return expander): Update.
7199         * config/avr/avr.c (frame_pointer_required_p): UPdate.
7200         * config/crx/crx.c (crx_compute_frame): UPdate.
7201         (crx_initial_elimination_offset): UPdate.
7202         * config/xtensa/xtensa.c (compute_frame_size): Update
7203         (xtensa_builtin_saveregs): Update.
7204         (xtensa_va_start): Update.
7205         (order_regs_for_local_alloc): Update.
7206         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
7207         (xstormy16_expand_builtin_va_start): Update.
7208         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
7209         * config/m68hc11/m68hc11.md (return expanders): Update.
7210         * config/m68hc11/m68hc11.c (expand_prologue): Update.
7211         (expand_epilogue): Update.
7212         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
7213         (cris_simple_epilogue): Update.
7214         (cris_expand_prologue): Update.
7215         (cris_expand_epilogue): Update.
7216         * config/iq2000/iq2000.c (iq2000_va_start): Update.
7217         (compute_frame_size): Update.
7218         * config/mt/mt.c (mt_compute_frame_size): Update.
7219         * config/mn10300/mn10300.c (expand_prologue): Update.
7220         (expand_epilogue): Update.
7221         (initial_offset): Update.
7222         (mn10300_builtin_saveregs):
7223         * config/mn10300/mn10300.md (return expander): Update.
7224         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
7225         (ia64_initial_elimination_offset): Update.
7226         (ia64_initial_elimination_offset): Update.
7227         (ia64_expand_prologue): Update.
7228         * config/m68k/m68k.md (return expander): Update.
7229         * config/rs6000/rs6000.c (rs6000_va_start): Update.
7230         (rs6000_stack_info): Update.
7231         * config/mcore/mcore.c (layout_mcore_frame): Update.
7232         (mcore_expand_prolog): Update.
7233         * config/arc/arc.c (arc_compute_frame_size): Update.
7234         * config/score/score3.c (score3_compute_frame_size): Update.
7235         * config/score/score7.c (score7_compute_frame_size): Update.
7236         * config/arm/arm.c (use_return_insn): Update.
7237         (thumb_find_work_register): Update.
7238         (arm_compute_save_reg_mask): Update.
7239         (arm_output_function_prologue): Update.
7240         (arm_output_epilogue): Update.
7241         (arm_size_return_regs): Update.
7242         (arm_get_frame_offsets): Update.
7243         (arm_expand_prologue): Update.
7244         (thumb_exit): Update.
7245         (thumb_unexpanded_epilogue): Update.
7246         (thumb1_output_function_prologue): Update.
7247         * config/pa/pa.md (return expander): Update.
7248         * config/pa/pa.c (compute_frame_size): Update.
7249         (hppa_builtin_saveregs): Update.
7250         * config/mips/mips.c (mips_va_start): Update.
7251         (mips16_build_function_stub): Update.
7252         (mips_compute_frame_info): Update.
7253         (mips_restore_gp): Update.
7254         (mips_output_function_prologue): Update.
7255         (mips_expand_prologue): Update.
7256         * config/v850/v850.c (compute_frame_size): Update.
7257         (expand_prologue): * config/mmix/mmix.c (along): update.
7258         (mmix_initial_elimination_offset): update.
7259         (mmix_reorg): update.
7260         (mmix_use_simple_return): update.
7261         (mmix_expand_prologue): update.
7262         (mmix_expand_epilogue): Update.
7263         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
7264         (emit_link_insn): Update.
7265
7266 2008-04-08  Anatoly Sokolov <aesok@post.ru>
7267
7268         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
7269         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
7270         instructions.
7271         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
7272         atmega103 device.
7273
7274 2008-04-07  Jan Hubicka  <jh@suse.cz>
7275
7276         * function.h (rtl): Rename to x_rtl.
7277         (crtl): New define.
7278         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7279         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7280         used_temp_slots avail_temp_slots, temp_slot_level,
7281         nonlocal_goto_handler_labels): Update accesstors.
7282         (rtl): New global variable.
7283         (struct function): Move some fileds to rtl_data.
7284         (get_arg_pointer_save_area): Update prototype.
7285         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7286         get_arg_pointer_save_area.
7287         * expr.c (init_expr): Update
7288         * function.c (get_frame_size): Update
7289         (assign_stack_local): Update
7290         (expand_function_end): Update.
7291         (get_art_pointer_save_area): Update
7292         * function.h 
7293         * emit-rtl.c (rtl): Declare.
7294         (regno_reg_rtx): Declare.
7295         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7296         Update.
7297         (gen_reg_rtx): Update.
7298         * varasm.c (n_deferred_constatns): Update accestor.
7299         (init_varasm_status): Do not allocate varasm_status.
7300         (force_const_mem, get_pool_size, output_constant_pool): Update.
7301         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7302         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7303         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
7304         * sparc/sparc.h (INIT_EXPANDERS): Update.
7305         * ia64/ia64.h (INIT_EXPANDERS): Update.
7306
7307 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
7308
7309         * reload.c (push_secondary_reload): Add missing break to for loop.
7310
7311 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7312
7313         PR middle-end/PR28690
7314         * rtlanal.c: Update copyright years.
7315         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
7316         as REG_POINTER and MEM_POINTER operands.
7317         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
7318         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
7319         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
7320         * gcse.c: Update copyright years.
7321         (pre_delete): Call gen_reg_rtx_and_attrs.
7322         (hoist_code): Likewise.
7323         (build_store_vectors): Likewise.
7324         (delete_store): Likewise.
7325         * loop-invariant.c (move_invariant_reg): Likewise.
7326         Update copyright years.
7327
7328 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
7329
7330         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
7331         control string instead of quoted.
7332
7333 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
7334
7335         * doc/rtl.texi: Rewrite of subreg section.
7336
7337 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
7338
7339         PR/35842
7340         * config/i386/i386.c (legitimize_pic_address): Add treating
7341         of dllimport SYM_REF's.
7342         (legitimize_dllimport_symbol): Add prototype.
7343
7344 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7345
7346         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
7347         reference in constructor with non self-referential type.
7348
7349 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7350
7351         Removal of Return with Depressed Stack Pointer support
7352         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
7353         (ECF_SP_DEPRESSED): Likewise.
7354         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
7355         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
7356         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7357         (expand_call): Do not test ECF_SP_DEPRESSED.
7358         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7359         * function.c (keep_stack_depressed): Delete.
7360         (handle_epilogue_set): Likewise.
7361         (update_epilogue_consts): Likewise.
7362         (emit_equiv_load): Likewise.
7363         (thread_prologue_and_epilogue_insns): Remove support for Return with
7364         Depressed Stack Pointer.
7365         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7366
7367 2008-04-06  Richard Guenther  <rguenther@suse.de>
7368
7369         PR tree-optimization/35400
7370         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
7371         information from SSA_NAMEs.
7372
7373 2008-04-06  Anatoly Sokolov <aesok@post.ru>
7374
7375         * config/avr/avr.h (avr_mega_p): Remove declaration.
7376         (AVR_MEGA): Remove macro.
7377         * config/avr/avr.c (avr_mega_p): Remove variable.
7378         (avr_override_options): Remove inicializion of avr_mega_p.
7379         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7380         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7381         (avr_jump_mode): (Ditto.).
7382         (avr_output_progmem_section_asm_op): (Ditto.).
7383         (avr_asm_init_sections): (Ditto.).
7384         (avr_asm_init_sections): (Ditto.).
7385         (avr_rtx_costs): (Ditto.).
7386         * config/avr/avr.md: (Ditto.).
7387         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
7388         '__AVR_MEGA__'.
7389
7390 2008-04-06  Richard Guenther  <rguenther@suse.de>
7391
7392         PR tree-optimization/35842
7393         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
7394         is_gimple_invariant_address.
7395
7396 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7397
7398         * gcc.c (default_compilers): Sync Fortran extensions list with
7399         that in fortran/lang-specs.h.
7400         * doc/invoke.texi: Likewise.
7401         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
7402         * dwarf2out.c (gen_compile_unit_die): Likewise.
7403
7404 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
7405
7406         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
7407
7408 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
7409
7410         PR target/12329
7411         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
7412         attribute is used for nested functions.
7413
7414 2008-04-05  Jan Hubicka  <jh@suse.cz>
7415
7416         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
7417
7418         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
7419         letter argument.
7420         (dump_files): Update.
7421         (enable_rtl_dump_file): Do not accept letter argument.
7422         * tree-pass.h (dump_file_info): Remove letter argument.
7423         * toplev.c (decode_d_option): Update -da handling.
7424         * toplev.h (enable_rtl_dump_file): Update prototype.
7425         * passes.c (register_one_dump_file): Do not accept IPA argument; work
7426         it out based on pass type.
7427         (register_dump_files_1): Likewise.
7428         (init_optimization_passes): Update register_one_dump_file calls.
7429         (execute_one_pass): Sanity check that IPA passes are called at IPA
7430         level and RTL passes at RTL level.
7431         (execute_pass_list): IPA pass can not be after or subpass of
7432         GIMPLE/RTL pass.
7433         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
7434         disallov RTL subpasses of IPA subpasses.
7435
7436 2008-04-05  Ben Elliston  <bje@au.ibm.com>
7437
7438         * tree-cfg.c (need_fake_edge_p): Return false for calls to
7439         builtins that return exactly once and do not throw. Cache call to
7440         call_expr_flags.
7441
7442 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
7443
7444         PR rtl-optimization/34916
7445         PR middle-end/35519
7446         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
7447         between instruction pairs.
7448
7449 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
7450
7451         * doc/invoke.texi: Document -mbitops for SH.
7452         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
7453         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
7454         * config/sh/sh.c (print_operand): Add %t operand code.
7455         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
7456         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
7457         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
7458         (extendqihi2): Likewise.
7459         (movqi_i): Likewise.
7460         (insv): Use bset, bclr and bst instructions for SH2A if possible.
7461         (extv): Use bld instruction for SH2A if possible.
7462         (extzv): Likewise.
7463         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
7464         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
7465         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
7466         (bset.b, bclr.b): Define peepholes.
7467         * config/sh/sh.opt (mbitops): New option.
7468
7469 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
7470
7471         PR target/35620
7472         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
7473         and view convert expression.
7474
7475 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7476
7477         PR target/35364
7478         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
7479
7480 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
7481
7482         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
7483
7484         * config/i386/cpuid.h (bit_AES): New.
7485         (bit_PCLMUL): Likewise.
7486
7487         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
7488         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
7489         SSE2 if AES or PCLMUL is enabled.
7490         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
7491         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7492         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
7493         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
7494         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
7495         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
7496         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7497         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
7498         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
7499         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
7500         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
7501         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
7502         __builtin_ia32_aeskeygenassist128 and
7503         __builtin_ia32_pclmulqdq128.
7504         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
7505         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
7506         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
7507
7508         * config/i386/i386.h (TARGET_AES): New.
7509         (TARGET_PCLMUL): Likewise.
7510         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
7511
7512         * config/i386/i386.md (UNSPEC_AESENC): New.
7513         (UNSPEC_AESENCLAST): Likewise.
7514         (UNSPEC_AESDEC): Likewise.
7515         (UNSPEC_AESDECLAST): Likewise.
7516         (UNSPEC_AESIMC): Likewise.
7517         (UNSPEC_AESKEYGENASSIST): Likewise.
7518         (UNSPEC_PCLMUL): Likewise.
7519
7520         * config/i386/i386.opt (maes): New.
7521         (mpclmul): Likewise.
7522
7523         * config/i386/sse.md (aesenc): New pattern.
7524         (aesenclast): Likewise.
7525         (aesdec): Likewise.
7526         (aesdeclast): Likewise.
7527         (aesimc): Likewise.
7528         (aeskeygenassist): Likewise.
7529         (pclmulqdq): Likewise.
7530
7531         * config/i386/wmmintrin.h: New.
7532
7533         * doc/extend.texi: Document AES and PCLMUL built-in function.
7534
7535         * doc/invoke.texi: Document -maes and -mpclmul.
7536
7537 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
7538
7539         * function.c (free_after_parsing): Replace with
7540         cxx_push_function_context from C++ front-end.
7541         (allocate_struct_function): Don't call langhook.
7542         * langhooks.h (struct lang_hooks_for_functions): Delete.
7543         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
7544         member "function".
7545         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
7546         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
7547         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
7548         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
7549         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
7550         remove LANG_HOOKS_FUNCTION_INITIALIZER.
7551         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
7552
7553         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
7554         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
7555         
7556 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7557
7558         PR c/35440
7559         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
7560         for all types.
7561
7562 2008-04-04  Richard Guenther  <rguenther@suse.de>
7563
7564         PR middle-end/35823
7565         * fold-const.c (optimize_minmax_comparison): Use the correct
7566         type for the constant in the simplified comparison.
7567
7568 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
7569
7570         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
7571         Pass L2 size as "--param l2-cache-size" to the compiler.
7572         (decode_l2_cache): New function to decode L2 cache parameters using
7573         0x8000006 extended cpuid function.
7574         (detect_caches_amd): Determine parameters of L2 cache using
7575         decode_l2_caches function.
7576         (decode_caches_intel): Decode L2 cache parameters.
7577         (detect_caches_intel): Determine L2 cache parameters using
7578         decode_caches_intel and decode_l2_caches functions.
7579
7580 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
7581
7582         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
7583         secondary input reload for subword loads from the constant pool.
7584
7585 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
7586
7587         PR target/35713
7588         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
7589           constants of the appropriate size for runtime calculations.
7590
7591         PR c/35712
7592         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
7593           decimal-float literal constant zero.
7594
7595 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
7596
7597         PR c/35738
7598         * c-parser.c (c_parser_omp_atomic): Call
7599         default_function_array_conversion on the RHS.
7600
7601         PR middle-end/35818
7602         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
7603         call is_variable_sized if decl has incomplete type.
7604
7605 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
7606
7607         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
7608
7609 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
7610
7611         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
7612         iterators.
7613         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
7614         (sgt<u>): Merge sgt and sgtu into new expander.
7615         (sgt, sgtu): Remove expanders.
7616         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
7617         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
7618         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
7619         *sgtu_<mode>_mips16 into new pattern.
7620         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
7621         (sge<u>): Merge sge and sgeu into new expander.
7622         (sge, sgeu): Remove expanders.
7623         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
7624         new pattern.
7625         (*sge_<mode>, second *sge_<mode>): Remove patterns.
7626         (slt<u>): Merge slt and sltu into new expander.
7627         (slt, sltu): Remove expanders.
7628         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
7629         (*slt_<mode>, *sltu_<mode>): Remove patterns.
7630         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
7631         *sltu_<mode>_mips16 into new pattern.
7632         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
7633         (sle<u>): Merge sle and sleu into new expander.
7634         (sle, sleu): Remove expanders.
7635         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
7636         (*sle_<mode>, *sleu_<mode>): Remove patterns.
7637         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
7638         *sleu_<mode>_mips16 into new pattern.
7639         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
7640
7641 2008-04-03  Jan Hubicka  <jh@suse.cz>
7642
7643         PR tree-optimization/35795
7644         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
7645         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
7646         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
7647         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
7648         * score/score3.c (score3_output_mi_thunk): Likewise.
7649         * score/score7.c (score7_output_mi_thunk): Likewise.
7650         * mips/mips.c (mips_output_mi_thunk): Likewise.
7651
7652 2008-04-03  Richard Guenther  <rguenther@suse.de>
7653
7654         * tree-vrp.c (extract_range_from_unary_expr): Handle all
7655         conversions.  Simplify code.
7656
7657 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
7658
7659         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
7660
7661 2008-04-03  Tom Tromey  <tromey@redhat.com>
7662             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7663
7664         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7665         * config/bfin/t-bfin-linux (generated_files): Add
7666         linux-sysroot-suffix.h.
7667         * doc/install.texi (Prerequisites): Require make 3.80.
7668         * doc/sourcebuild.texi (Front End Directory): Document new
7669         variable.
7670         * Makefile.in (generated_files): New variable.
7671         (ALL_HOST_OBJS): New variable.
7672         ($(ALL_HOST_OBJS)): New target.
7673
7674 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7675
7676         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
7677         (remap_block): Call id->transform_lang_insert_block instead
7678         of langhook.
7679         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
7680         Set id.transform_lang_insert_block to NULL.
7681         (clone_body): Move to cp/optimize.c
7682         * tree-inline.h (struct copy_body_data): Change
7683         transform_lang_insert_block to function pointer.
7684         (copy_generic_body, copy_decl_no_change): Export.
7685         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
7686         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
7687         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
7688
7689         * c-tree.h (insert_block): Kill.
7690         * c-decl.c (insert_block): Kill.
7691
7692 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7693
7694         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7695         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7696         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
7697         argument.
7698         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
7699         argument, call {push,pop}_function_context from here.
7700         * c-parser.c: Use c_{push,pop}_function_context.
7701
7702         * function.c (push_function_context_to): Move meat ...
7703         (push_function_context): ... here.  Simplify.
7704         * function.c (pop_function_context_from): Move meat ...
7705         (pop_function_context): ... here.  Simplify.
7706         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
7707         leave_nested).
7708         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7709         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7710         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
7711         * tree.h (push_function_context_to, pop_function_context_from): Remove.
7712
7713 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7714
7715         * expmed.c (extract_force_align_mem_bit_field): Remove.
7716
7717 2008-04-03  Richard Guenther  <rguenther@suse.de>
7718
7719         PR middle-end/35800
7720         * expr.h (try_casesi): Adjust prototype.
7721         * expr.c (try_casesi): Take fallback label as extra parameter.
7722         Use that for gen_casesi if default_label is NULL.
7723         * stmt.c (expand_case): Pass fallback label to try_casesi,
7724         make sure to fill gaps with a fallback label if default_label
7725         is not present.
7726
7727 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
7728
7729         PR target/35801
7730         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
7731
7732 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7733
7734         * expmed.c (extract_split_bit_field): Remove if (0) code.
7735         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
7736         (do_ds_constraint): Likewise.
7737
7738 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
7739
7740         * doc/cppopts.texi (-dU): Document.
7741         * c-common.h (flag_dump_macros): Update comment.
7742         * c-opts.c (handle_OPT_d): Handle -dU.
7743         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
7744         dump_queued_macros, cb_used_define, cb_used_undef): New.
7745         (init_pp_output): Handle -dU.
7746         (cb_line_change): Call dump_queued_macros.
7747         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
7748
7749 2008-04-02  Anatoly Sokolov <aesok@post.ru>
7750
7751         * config/avr/predicates.md (io_address_operand): New predicate. 
7752         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
7753         * config/avr/avr.c (avr_io_address_p): Remove function.
7754         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
7755         'avr_io_address_p' function.
7756         (out_movhi_r_mr): (Ditto.).
7757         (out_movqi_mr_r): (Ditto.).
7758         (out_movhi_mr_r): (Ditto.).
7759         (avr_address_cost): (Ditto.).
7760
7761 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
7762
7763         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
7764         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
7765         in 32bit mode when XMM registers are available to avoid store
7766         forwarding stalls.
7767         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
7768         corresponding post-reload splitters.
7769
7770 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7771
7772         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
7773         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
7774         __builtin_ia32_roundss.
7775         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
7776         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
7777         __builtin_ia32_roundss.
7778         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
7779         IX86_BUILTIN_SHUFPD here.
7780
7781 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7782
7783         * config/i386/i386.md (plogic): New.
7784         (plogicprefix): Likewise.
7785
7786         * config/i386/mmx.md (mmx_<code><mode>3): New.
7787         (mmx_and<mode>3): Removed.
7788         (mmx_ior<mode>3): Likewise.
7789         (mmx_xor<mode>3): Likewise.
7790
7791         * config/i386/sse.md (<code><mode>3): New.
7792         (*<code><mode>3): Likewise.
7793         (*<code><mode>3): Likewise.
7794         (<code><mode>3): Likewise.
7795         (*sse_<code><mode>3): Likewise.
7796         (*sse2_<code><mode>3): Likewise.
7797         (<code>tf3): Likewise.
7798         (*<code>tf3): Likewise.
7799         (and<mode>3): Likewise.
7800         (*and<mode>3): Likewise.
7801         (ior<mode>3): Removed.
7802         (*ior<mode>3): Likewise.
7803         (xor<mode>3): Likewise.
7804         (*xor<mode>3): Likewise.
7805         (*and<mode>3): Likewise.
7806         (*ior<mode>3): Likewise.
7807         (*xor<mode>3): Likewise.
7808         (and<mode>3): Likewise.
7809         (*sse_and<mode>3): Likewise.
7810         (*sse2_and<mode>3): Likewise.
7811         (andtf3): Likewise.
7812         (*andtf3): Likewise.
7813         (ior<mode>3): Likewise.
7814         (*sse_ior<mode>3): Likewise.
7815         (*sse2_ior<mode>3): Likewise.
7816         (iortf3): Likewise.
7817         (*iortf3): Likewise.
7818         (xor<mode>3): Likewise.
7819         (*sse_xor<mode>3): Likewise.
7820         (*sse2_xor<mode>3): Likewise.
7821         (xortf3): Likewise.
7822         (*xortf3): Likewise.
7823
7824 2008-04-02  Richard Guenther  <rguenther@suse.de>
7825
7826         PR tree-optimization/14495
7827         PR tree-optimization/34793
7828         * tree-vrp.c (struct switch_update): New structure.
7829         (to_remove_edges, to_update_switch_stmts): New VECs.
7830         (simplify_switch_using_ranges): New function.  Remove not taken
7831         case labels and edges.
7832         (simplify_stmt_using_ranges): Call it.
7833         (identify_jump_threads): Mark edges we have queued for removal
7834         so we don't thread them.
7835         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
7836         case label vector.
7837         * tree-cfg.c (group_case_labels): Deal with missing default label.
7838         (tree_verify_flow_info): Allow missing default label.
7839         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
7840         (emit_case_nodes): Likewise.
7841         (expand_case): Do not rely on the default label to be present.
7842         * expr.c (try_casesi): Deal with NULL default_label.
7843         (do_tablejump): Likewise.
7844
7845 2008-04-02  Richard Guenther  <rguenther@suse.de>
7846
7847         PR tree-optimization/14495
7848         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
7849         SWITCH_EXPR here ...
7850         (vrp_visit_switch_stmt): ... but here (new function).
7851         (find_case_label_index): New helper function.
7852         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
7853
7854 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7855
7856         * fwprop.c: Fix ISO-C99ism.
7857
7858 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7859
7860         PR bootstrap/35752
7861         * Makefile.in (objdir): Set it here.
7862         * configure.ac: Not here.  Find dynamic linker characteristics.
7863         * exec-tool.in: Use them.
7864         * aclocal.m4: Regenerate.
7865         * configure: Regenerate.
7866
7867 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7868
7869         * expr.c (expand_var): Delete it.
7870         * expr.h (expand_var): Delete prototype.
7871         * function.c (expand_function_start): Use expand_decl instead.
7872         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
7873         langhook.
7874
7875 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
7876
7877         PR rtl-optimization/35542
7878         * fwprop.c (forward_propagate_and_simplify): Replace
7879         loc_reg_mentioned_in_p with reg_mentioned_p.
7880
7881 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7882
7883         PR rtl-optimization/35281
7884         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
7885         (propagate_rtx_1): Handle PR_HANDLE_MEM.
7886         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
7887         (varying_mem_p): Move above propagate_rtx.
7888         (all_uses_available_at): Do not check MEMs.
7889
7890 2008-04-02  Rafael Espindola  <espindola@google.com>
7891
7892         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
7893         (register_edge_assert_for_2): Split the cond argument.
7894         (register_edge_assert_for_1): Adjust for the change in
7895         register_edge_assert_for_2.
7896         (register_edge_assert_for): Split the cond argument.
7897         (find_switch_asserts): Adjust for the change in
7898         register_edge_assert_for.
7899
7900 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
7901
7902         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
7903         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
7904         offsets for 64-bit mingw.
7905         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
7906         abi for x86_64-pc-mingw.
7907
7908 2008-04-02  Richard Guenther  <rguenther@suse.de>
7909
7910         * tree-vrp.c (extract_range_from_assert): Make sure to not
7911         produce range min/max with TREE_OVERFOW set.
7912         If merging a anti-range and a range keep the anti-range if
7913         the range covers all values of the type.
7914         (register_edge_assert_for_2): Only allow sign-changing
7915         conversions in detecting canonical range checks.  Also
7916         register an assert for the unsigned name if useful.
7917
7918         PR tree-optimization/35787
7919         * tree-vrp.c (vrp_val_max): New function.
7920         (vrp_val_min): Likewise.
7921         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
7922         (vrp_val_is_min): Likewise.
7923         (supports_overflow_infinity): Use vrp_val_{min,max}.
7924         (negative_overflow_infinity): Likewise.
7925         (positive_overflow_infinity): Likewise.
7926         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
7927         (is_positive_overflow_infinity): Likewise.
7928         (is_overflow_infinity): Likewise.
7929         (avoid_overflow_infinity): Use vrp_val_{min,max} and
7930         vrp_val_is_{min,max}.
7931         (set_and_canonicalize_value_range): Canonicalize anti-ranges
7932         to ranges if possible.  Avoid empty ranges.
7933
7934 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7935
7936         PR middle-end/35705
7937         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
7938         the expression is a function address.
7939
7940 2008-04-01  George Helffrich  <george@gcc.gnu.org>
7941
7942         PR fortran/35154, fortran/23057
7943         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
7944         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
7945         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
7946         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
7947         in common.
7948         (dbxout_syms): Check for COMMON-based symbol and wrap in
7949         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
7950         in bracket for efficiency.
7951
7952         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
7953         using DW_TAG_common_block + member offset.
7954         (add_pubname_string): New function.
7955         (dw_expand_expr): New function to find block name and offset for
7956         COMMON var.
7957         (common_check): New function to check whether symbol in Fortran COMMON.
7958         (gen_variable_die): If COMMON, use DW_TAG_common_block.
7959
7960 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
7961
7962         PR c/35436
7963         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
7964
7965 2008-04-02  Ben Elliston  <bje@au.ibm.com>
7966
7967         * config/v850/v850.md (casesi): Remove if (0) code.
7968         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7969         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
7970
7971 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
7972
7973         * config/i386/i386.md (rex64suffix): New mode attribute.
7974         (floathi<mode>2): Disable expander for SSE math.
7975         (*floathi<mode>2_1): New insn insn_and_split pattern.
7976         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
7977         corresponding post-reload splitters.
7978         (*floathi<mode>2_i387): New macroized insn pattern.
7979         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
7980         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
7981         insn_and_split pattern.
7982         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
7983         New macroized instruction patterns and corresponding post-reload
7984         splitters.
7985         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
7986         and corresponding post-reload splitters.
7987         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
7988         New macroized instruction patterns.
7989         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
7990         macroized instruction patterns and corresponding post-reload splitters.
7991         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
7992         corresponding post-reload splitters.
7993         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
7994         New macroized instruction patterns.
7995         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
7996         corresponding post-reload splitters.
7997         (*floatsi<mode>2_i387): New macroized instruction patterns.
7998
7999 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
8000
8001         * config/i386/i386.md (smaxmin): New.
8002         (umaxmin): Likewise.
8003         (maxminiprefix): Likewise.
8004         (maxminfprefix): Likewise.
8005         (<code><mode>3): Likewise.
8006         (smin<mode>3): Removed.
8007         (smax<mode>3): Likewise.
8008
8009         * config/i386/mmx.md (mmx_<code>v2sf3): New.
8010         (mmx_<code>v4hi3): Likewise.
8011         (mmx_<code>v8qi3): Likewise.
8012         (mmx_smaxv2sf3): Removed.
8013         (mmx_sminv2sf3): Likewise.
8014         (mmx_umaxv8qi3): Likewise.
8015         (mmx_smaxv4hi3): Likewise.
8016         (mmx_uminv8qi3): Likewise.
8017         (mmx_sminv4hi3): Likewise.
8018
8019         * config/i386/sse.md (<addsub><mode>3): New.
8020         (*<addsub><mode>3): Likewise.
8021         (<sse>_vm<addsub><mode>3): Likewise.
8022         (<maxmin><mode>3): Likewise.
8023         (*<maxmin><mode>3_finite): Likewise.
8024         (*<maxmin><mode>3): Likewise.
8025         (<sse>_vm<maxmin><mode>3): Likewise.
8026         (sse3_h<addsub>v4sf3): Likewise.
8027         (sse3_h<addsub>v2df3): Likewise.
8028         (<maxmin>v16qi3): Likewise.
8029         (*<maxmin>v16qi3): Likewise.
8030         (<maxmin>v8hi3): Likewise.
8031         (*<maxmin>v8hi3): Likewise.
8032         (*sse4_1_<maxmin><mode>3): Likewise.
8033         (*sse4_1_<maxmin><mode>3): Likewise.
8034         (add<mode>3): Removed.
8035         (*add<mode>3): Likewise.
8036         (<sse>_vmadd<mode>3): Likewise.
8037         (sub<mode>3): Likewise.
8038         (*sub<mode>3): Likewise.
8039         (<sse>_vmsub<mode>3): Likewise.
8040         (smin<mode>3): Likewise.
8041         (*smin<mode>3_finite): Likewise.
8042         (*smin<mode>3): Likewise.
8043         (<sse>_vmsmin<mode>3): Likewise.
8044         (smax<mode>3): Likewise.
8045         (*smax<mode>3_finite): Likewise.
8046         (*smax<mode>3): Likewise.
8047         (<sse>_vmsmax<mode>3): Likewise.
8048         (sse3_haddv4sf3): Likewise.
8049         (sse3_haddv2df3): Likewise.
8050         (sse3_hsubv4sf3): Likewise.
8051         (sse3_hsubv2df3): Likewise.
8052         (umaxv16qi3): Likewise.
8053         (*umaxv16qi3): Likewise.
8054         (smaxv8hi3): Likewise.
8055         (*smaxv8hi3): Likewise.
8056         (*sse4_1_smax<mode>3): Likewise.
8057         (*sse4_1_umax<mode>3): Likewise.
8058         (uminv16qi3): Likewise.
8059         (*uminv16qi3): Likewise.
8060         (sminv8hi3): Likewise.
8061         (*sminv8hi3): Likewise.
8062         (*sse4_1_smin<mode>3): Likewise.
8063         (*sse4_1_umin<mode>3): Likewise.
8064
8065 2008-04-01  Rafael Espindola  <espindola@google.com>
8066
8067         * tree-cfg.c (verify_expr): remove in_phi.
8068         (verify_stmt): Don't call walk_tree with verify_expr. Use
8069         is_gimple_min_invariant instead of is_gimple_val.
8070
8071 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
8072
8073         * doc/include/gpl_v3.texi: Update for manpage generation.
8074         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
8075         gpl.texi.
8076         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
8077         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
8078         gpl_v3.texi instead of gpl.texi.
8079         (gpl.pod): New.
8080
8081 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
8082
8083         PR pch/13675
8084         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
8085
8086 2008-04-01  Rafael Espindola  <espindola@google.com>
8087
8088         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
8089         (extract_code_and_val_from_cond): Use
8090         extract_code_and_val_from_cond_with_ops.
8091
8092 2008-04-01  Jan Hubicka  <jh@suse.cz>
8093
8094         * function.c (free_after_compilation): Free epilogue_delay_list.
8095         (prepare_function_start): Assert that previous compilation was freed.
8096
8097 2008-04-01  Jan Hubicka  <jh@suse.cz>
8098             Jim Wilson  <wilson@tuliptree.org>
8099             Andreas Tobler <andreast@gcc.gnu.org>
8100
8101         PR middle-end/35781
8102         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
8103         rtl.emit instead cfun->emit.
8104         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
8105         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
8106
8107 2008-04-01  Ben Elliston  <bje@au.ibm.com>
8108
8109         * doc/c-tree.texi (Function Basics): Fix grammatical error.
8110
8111 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
8112
8113         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
8114         New options
8115         (fprofile-use): Add var flag_profile_use
8116         * coverage.c (coverage_begin_output): Do not open a gcno file for
8117         output only if -ftest-coverage is set.
8118         Do not add getpwd() to gcda file path.
8119         (build_gcov_info): Check the new flag
8120         flag_profile_datafile_relative_path.
8121         (coverage_init): Use profile_data_prefix.
8122         Read profile counter only if flag_profile_use is set.
8123         * opts.c (common_handle_option): New option fprofile-use=,
8124         fprofile-dir=, fprofile-generate=.
8125         * toplev.c (profile_data_prefix): New variable definition.
8126         * toplev.h (profile_data_prefix): New declaration.
8127         * doc/invoke.tex (Option Summary, Optimization Options):
8128         Add new options.
8129
8130 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
8131
8132         * varasm.c (output_constant_pool_1): In LABEL_REF check,
8133         use tmp consistently.
8134
8135         PR target/35695
8136         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
8137         * config/ia64/ia64.c (rtx_needs_barrier): Handle
8138         UNSPEC_FR_RECIP_APPROX_RES.
8139         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
8140
8141 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
8142
8143         PR c/35750
8144         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
8145
8146 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8147
8148         PR middle-end/30186
8149         * fold-const.c (fold_indirect_ref_1): Support accessing non first
8150         element of the vector via a pointer.
8151
8152 2008-03-31  Ian Lance Taylor  <iant@google.com>
8153
8154         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
8155
8156 2008-03-31  Jan Hubicka  <jh@suse.cz>
8157
8158         * builtins.c (expand_builtin_setjmp_receiver): Update call of
8159         get_arg_pointer_save_area.
8160         * expr.c (init_expr): Just clear out rtl.expr.
8161         * function.c (free_after_compilation): Clear out whole RTL structure.
8162         (get_func_frame_size): Merge into ...
8163         (get_frame_size): ... this one.
8164         (assign_stack_local_1): Merge into ...
8165         (assign_stack_local): ... this one.
8166         (expand_function_end): Update call of get_arg_pointer_save_area.
8167         (get_art_pointer_save_area): Remove cfun argument.
8168         * function.h (emit_status): regno_pointer_align does not need length
8169         attribute. Move x_regno_reg_rtx to ...
8170         (regno_reg_rtx): ... new global array.
8171         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
8172         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
8173         apply_args_value, forced_labels, stack_pointer_delta):
8174         Update accestors.
8175         (struct varasm_status): Move here from varasm.c
8176         (struct rtl_data): New. Move here some fields from struct function.
8177         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
8178         frame_offset, stack_check_probe_note, arg_pointer_save_area,
8179         used_temp_slots avail_temp_slots, temp_slot_level,
8180         nonlocal_goto_handler_labels): Update accesstors.
8181         (rtl): New global variable.
8182         (struct function): Move some fileds to rtl_data.
8183         (get_arg_pointer_save_area): Update prototype.
8184         * emit-rtl.c (rtl): Declare.
8185         (regno_reg_rtx): Declare.
8186         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
8187         Update.
8188         (gen_reg_rtx): Update.
8189         (init_virtual_regs): Do not tate emit_status argument.
8190         (init_emit): Do not allocate emit.
8191         * varasm.c (varasm_statuc): Move to function.h.
8192         (n_deferred_constatns): Update accestor.
8193         (init_varasm_status): Do not allocate varasm_status.
8194         (force_const_mem, get_pool_size, output_constant_pool): Update.
8195         * stmt.c (force_label_rtx): Do not use x_ prefixes.
8196         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
8197
8198 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
8199
8200         PR rtl-optimization/35729
8201         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
8202         references.
8203
8204 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
8205
8206         PR target/32000
8207         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
8208         load/store if memory is unaligned.
8209         (*movti_rex64): Likewise.
8210
8211         * config/i386/predicates.md (misaligned_operand): New.
8212
8213 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
8214
8215         PR tree-opt/35431
8216         * tree-ssa-phiopt.c (conditional_replacement): Return early for
8217         complex types.
8218
8219 2008-03-31  Jan Beulich  <jbeulich@novell.com>
8220
8221         * config/ia64/constraints.md: Add 'j' constraint.
8222         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
8223         (movdi_internal): Likewise.
8224
8225 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
8226
8227         PR c/35748
8228         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
8229
8230 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
8231
8232         PR target/35757
8233         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
8234         proper error message for the third argument on blendpd and
8235         blendps.
8236
8237         * config/i386/sse.md (blendbits): New.
8238         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
8239
8240 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
8241
8242         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
8243
8244 2008-03-30  Richard Guenther  <rguenther@suse.de>
8245
8246         PR middle-end/31023
8247         * fold-const.c (fold_sign_changed_comparison): Do leave
8248         conversions to base-types alone.
8249
8250 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8251
8252         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
8253         the link register if one altivec register is be saved.
8254
8255 2008-03-30  Ben Elliston  <bje@au.ibm.com>
8256
8257         * final.c (final_scan_insn): Remove if (0) code.
8258
8259 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
8260
8261         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
8262
8263 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
8264
8265         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
8266         of V4SFmode to ix86_binary_operator_ok.
8267
8268 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
8269
8270         * config/i386/i386.c (override_options): Initialize
8271         ix86_veclib_handler to ix86_veclibabi_svml when
8272         -mveclibabi=svml is used.
8273         (ix86_veclibabi_svml): New function for SVML ABI style
8274         vectorization support.
8275         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
8276
8277 2008-03-28  Rafael Espindola  <espindola@google.com>
8278
8279         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
8280         (tree_binary_nonnegative_warnv_p): Make it public.
8281         (tree_single_nonnegative_warnv_p): Make it public.
8282         (tree_invalid_nonnegative_warnv_p): Make it public.
8283         (tree_unary_nonzero_warnv_p): Make it public.
8284         (tree_binary_nonzero_warnv_p): Make it public
8285         (tree_single_nonzero_warnv_p): Make it public.
8286         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
8287         (extract_range_from_binary_expr): Split the expr argument.
8288         (extract_range_from_unary_expr): Split the expr argument.
8289         (extract_range_from_comparison): Split the expr argument.
8290         (extract_range_from_expr): Use the new aux functions.
8291         (vrp_evaluate_conditional_warnv): Use
8292         vrp_evaluate_conditional_warnv_with_ops.
8293         * tree.h (tree_unary_nonzero_warnv_p): Declare.
8294         (tree_binary_nonzero_warnv_p): Declare.
8295         (tree_single_nonzero_warnv_p): Declare.
8296         (tree_expr_nonzero_warnv_p): Declare.
8297         (tree_unary_nonnegative_warnv_p): Declare.
8298         (tree_binary_nonnegative_warnv_p): Declare.
8299         (tree_single_nonnegative_warnv_p): Declare.
8300         (tree_invalid_nonnegative_warnv_p): Declare.
8301
8302 2008-03-28  Richard Guenther  <rguenther@suse.de>
8303
8304         PR tree-optimization/30317
8305         PR tree-optimization/30911
8306         PR tree-optimization/34793
8307         * tree-vrp.c (set_and_canonicalize_value_range): New function.
8308         (struct assert_locus_d): New member EXPR.
8309         (register_new_assert_for): Add EXPR parameter to support
8310         ASSERT_EXPR <name, expr OP limit>.
8311         (register_edge_assert_for_1): Adjust callers.
8312         (find_assert_locations): Likewise.
8313         (process_assert_insertions_for): Build condition from expression.
8314         (extract_range_from_assert): Handle ASSERT_EXPRs
8315         of the form ASSERT_EXPR <name, expr OP limit>.
8316         (register_edge_assert_for_2): New helper registering
8317         asserts for comparisons.  Recognize range tests of the form
8318         (unsigned)i - CST1 OP CST2.
8319         (register_edge_assert_for_1): Use it.
8320         (register_edge_assert_for): Likewise.
8321         (needs_overflow_infinity): Integer sub-types
8322         do not need overflow infinities.
8323         (vrp_val_is_max): The extreme values of integer sub-types
8324         are those of the base type.
8325         (vrp_val_is_min): Likewise.
8326         * tree.def (ASSERT_EXPR): Document extra allowed conditional
8327         expressions.
8328
8329 2008-03-28  Nick Clifton  <nickc@redhat.com>
8330
8331         PR target/31110
8332         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
8333         Return GENERAL_REGS for stack adjustment reloads.
8334
8335 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8336
8337         PR target/31334
8338         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
8339         const_vector when all the vectors are constant.
8340
8341 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
8342
8343         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
8344         comparisons.
8345         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
8346         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
8347         (scc_sf): New.
8348         (s<code>_sf): Use new scc_sf attribute for opcode names.
8349
8350 2008-03-27  Tom Tromey  <tromey@redhat.com>
8351
8352         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
8353         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
8354         config/spu/t-spu-elf, config/i386/t-interix,
8355         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
8356         config/i386/x-darwin, config/i386/x-mingw32,
8357         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
8358         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
8359         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
8360         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
8361         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
8362         config/rs6000/x-darwin, config/rs6000/t-rs6000,
8363         config/score/t-score-elf, config/arm/t-strongarm-pe,
8364         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
8365         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
8366         Revert automatic dependency patch.
8367
8368 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8369
8370         PR target/35657
8371         * config/i386/i386.c (ix86_function_arg_boundary): Align
8372         decimal floating point to its natural boundary.
8373
8374 2008-03-27  Richard Guenther  <rguenther@suse.de>
8375
8376         PR middle-end/35716
8377         * fold-const.c (fold_comparison): Restrict distinct decl
8378         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
8379         solely rely on operand_equal_p.
8380
8381 2008-03-27  Richard Guenther  <rguenther@suse.de>
8382
8383         PR c/32511
8384         * c-common.c (handle_weak_attribute): Reject combination of
8385         weak and inline.
8386
8387 2008-03-27  Richard Guenther  <rguenther@suse.de>
8388
8389         PR tree-optimization/32810
8390         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
8391         conversions from DECL_INITIAL.
8392         (fold_const_aggregate_ref): Likewise from constructor elements.
8393
8394 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
8395
8396         * tree-affine.h (aff_combination_expand): Declare.
8397         (get_inner_reference_aff): Likewise.
8398         * tree-affine.c (aff_combination_expand): Split out from
8399         tree_to_aff_combination_expand.
8400         (get_inner_reference_aff): New function.
8401         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
8402         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
8403         (struct lim_aux_data): sm_done field removed.
8404         (mem_ref_loc_p, mem_ref_locs_p): New types.
8405         (struct mem_ref): Added id, stored, accesses_in_loop,
8406         indep_loop, dep_loop, indep_ref, dep_ref fields.
8407         Removed is_stored, locs and next fields.
8408         (memory_accesses): New variable.
8409         (movement_possibility): Do not allow moving statements
8410         that store to memory.
8411         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
8412         New functions.
8413         (determine_max_movement): For statements with memory references,
8414         find the outermost loop in that the reference is independent.
8415         (move_computations_stmt): Mark the virtual operands for renaming.
8416         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
8417         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
8418         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
8419         add_vop_ref_mapping, create_vop_ref_mapping_loop,
8420         create_vop_ref_mapping, analyze_memory_references,
8421         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
8422         get_all_locs_in_loop, ref_always_accessed_p,
8423         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
8424         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
8425         store_motion_loop, store_motion): New functions.
8426         (struct vop_to_refs_elt): New type.
8427         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
8428         memref_hash, memref_eq, hoist_memory_references): Rewritten.
8429         (schedule_sm): Replaced by...
8430         (execute_sm): ... this.
8431         (determine_lsm_ref, hoist_memory_references,
8432         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
8433         find_more_ref_vops, free_mem_ref, free_mem_refs,
8434         determine_lsm_loop, determine_lsm): Removed.
8435         (tree_ssa_lim_finalize): Free data structures used by store motion.
8436         (tree_ssa_lim): Call analyze_memory_references.  Use
8437         store_motion instead of determine_lsm.
8438
8439 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8440
8441         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
8442         rename tmake_file to m68hc11/t-m68hc11.
8443         (mcore): Set inhibit_libc to true.
8444         * config.host (alpha*-dec-*vms*): Set extra_programs.
8445         (interix3*): Don't use host_xmake_file.
8446         * configure.ac: Let config.gcc override inhibit_libc.
8447         * configure: Regenerate.
8448
8449         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
8450         * config/t-openbsd-thread: Remove commented out lines.
8451         
8452         * config/x-interix: Remove.
8453
8454         * config/m68hc11/t-m68hc11-gas: Rename to...
8455         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
8456
8457         * config/mcore/t-mcore: Remove T_CFLAGS.
8458         * config/mcore/t-mcore-pe: Likewise.
8459
8460 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8461
8462         * configure.ac: Replace custom __GNU_SOURCE test with
8463         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
8464         * aclocal.m4: Regenerate.
8465         * configure: Regenerate.
8466         * config.in: Regenerate.
8467
8468 2008-03-27  Richard Guenther  <rguenther@suse.de>
8469
8470         * fold-const.c (target.h): Include.
8471         (fold_comparison): Fold comparison of addresses of decls
8472         that bind locally or of constants.  Consolidate address folding code.
8473         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
8474         results from fold_binary_to_constant.
8475         (compare_values_warnv): Likewise.
8476
8477 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
8478
8479         PR middle-end/35429
8480         * fold-const.c (fold_truthop): Check for integeral types when folding
8481         a == 0 && b == 0 and a != 0 || b != 0 .
8482
8483 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8484
8485         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
8486
8487 2008-03-26  Andreas Schwab  <schwab@suse.de>
8488
8489         * doc/invoke.texi: Fix use of @item vs. @itemx.
8490
8491 2008-03-26  Tom Tromey  <tromey@redhat.com>
8492
8493         * Makefile.in (build/gensupport.o, build/print-rtl.o,
8494         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
8495         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
8496         build/gencodes.o, build/genconditions.o, build/genconfig.o,
8497         build/genconstants.o, build/genemit.o, build/genextract.o,
8498         build/genflags.o, build/genmddeps.o, build/genopinit.o,
8499         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
8500         options.h.
8501
8502 2008-03-26  Richard Guenther  <rguenther@suse.de>
8503
8504         Revert
8505         2008-03-26  Richard Guenther  <rguenther@suse.de>
8506
8507         * fold-const.c (target.h): Include.
8508         (fold_comparison): Fold comparison of addresses of two decls
8509         that bind locally.  Consolidate address folding code.
8510
8511 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8512
8513         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
8514         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
8515         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
8516         dconstsqrt2, dconstthird, dconste and/or dconst10.
8517         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
8518         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
8519         dconstsqrt2, dconste): Delete.
8520         (init_emit_once): Likewise.  Simplify initializing dconstm1.
8521         Constify variable.
8522         * real.c (get_real_const): New.
8523         * real.h (dconst3, dconst10, dconstm2, dconstthird,
8524         dconstsqrt2, dconste): Delete.
8525         (real_value_const, get_real_const): New.
8526
8527 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
8528
8529         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
8530
8531         * config/i386/i386.c (ix86_function_arg_boundary): Check
8532         BIGGEST_ALIGNMENT instead of 128.
8533         (setup_incoming_varargs_64): Likewise.
8534
8535 2008-03-26  Tom Tromey  <tromey@redhat.com>
8536
8537         * Makefile.in (DEPFILES): Add missing '/'.
8538
8539 2008-03-26  Richard Guenther  <rguenther@suse.de>
8540
8541         * fold-const.c (target.h): Include.
8542         (fold_comparison): Fold comparison of addresses of two decls
8543         that bind locally.  Consolidate address folding code.
8544
8545 2008-03-26  Nick Clifton  <nickc@redhat.com>
8546
8547         PR target/31232
8548         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
8549         not allow INT+INT as a legitimate addressing mode.
8550
8551 2008-03-26  Richard Guenther  <rguenther@suse.de>
8552
8553         * tree-flow.h (widen_bitfield): Remove declaration.
8554         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
8555         (widen_bitfield): Remove function.
8556         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
8557         code.
8558
8559 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8560
8561         PR target/31558
8562         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
8563         error_mark_node's.
8564
8565 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8566
8567         PR rtl-optimization/35232
8568         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
8569         (forget_old_reloads_1, forget_marked_reloads): Don't clear
8570         reg_reloaded_call_part_clobbered here.
8571         (reload_regs_reach_end_p): New function.
8572         (reload_reg_rtx_for_input): New variable.
8573         (reload_reg_rtx_for_output): Likewise.
8574         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
8575         when reassigning a pseudo register.  Load reloadreg from 
8576         reload_reg_rtx_for_input, moving the mode and register
8577         calculation to...
8578         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
8579         instead of the original when deciding whether an input reload
8580         would be a no-op or whether an output reload can be deleted.
8581         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
8582         when setting up new_spill_reg_store.  Load it from
8583         reload_reg_rtx_for_output, moving the mode and register
8584         calculation to...
8585         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
8586         instead of the original when deciding whether an output reload
8587         would be a no-op.  Do the same when modifying insn notes.
8588         Use rtx_equal_p instead of == to compare the registers.
8589         (inherit_piecemeal_p): Take a mode and two register numbers
8590         as argument.
8591         (emit_reload_insns): Clear new_spill_reg_store for every hard
8592         register in the reload register.  Remove spill registers
8593         from reg_reloaded_valid before considering whether to record
8594         inheritance information for them.  Use reload_reg_rtx_for_output
8595         instead of reg_rtx when recording output reloads.  Use
8596         reload_reg_rtx_for_input instead of reg_rtx when recording
8597         input reloads.  Set or clear reg_reloaded_call_part_clobbered
8598         at the same time as setting reg_reloaded_valid.
8599         (delete_output_reload): Add a new_reload_reg parameter and use it
8600         instead of rld[j].reg_rtx.
8601         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
8602         calls accordingly.
8603
8604 2008-03-25  Tom Tromey  <tromey@redhat.com>
8605
8606         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
8607         (build/genattr.o): Likewise.
8608         (build/genattrtab.o): Likewise.
8609         (build/gencodes.o): Likewise.
8610         (build/genconfig.o): Likewise.
8611         (build/genconstants.o): Likewise.
8612         (build/genemit.o): Likewise.
8613         (build/genextract.o): Likewise.
8614         (build/genflags.o): Likewise.
8615
8616 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
8617         
8618         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
8619         instead of size_int for integer types.
8620         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
8621         to match type of MINUS_EXPR.
8622         
8623 2008-03-25  Tom Tromey  <tromey@redhat.com>
8624
8625         * configure: Rebuilt.
8626         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
8627         Makefile.
8628
8629 2008-03-25  Tom Tromey  <tromey@redhat.com>
8630
8631         * config/x-solaris (host-solaris.o): Update.
8632         * config/x-linux (host-linux.o): Update.
8633         * config/x-hpux (host-hpux.o): Update.
8634         * config/x-darwin (host-darwin.o): Update.
8635         * config/v850/t-v850e (v850-c.o): Update.
8636         * config/v850/t-v850 (v850-c.o): Update.
8637         * config/t-vxworks (vxworks.o): Update.
8638         * config/t-sol2 (sol2-c.o, sol2.o): Update.
8639         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
8640         * config/spu/t-spu-elf (spu-c.o): Update.
8641         (spu.o): Remove.
8642         * config/sh/t-symbian (sh-c.o): Update.
8643         (symbian.o): Update.
8644         * config/sh/t-sh (sh-c.o): Update.
8645         * config/score/t-score-elf (score7.o, score3.o): Update.
8646         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
8647         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
8648         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
8649         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
8650         (rs6000.o): Remove.
8651         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
8652         * config/m32c/t-m32c (m32c-pragma.o): Update.
8653         * config/ia64/t-ia64 (ia64-c.o): Update.
8654         * config/i386/x-mingw32 (host-mingw32.o): Update.
8655         * config/i386/x-i386 (driver-i386.o): Update.
8656         * config/i386/x-darwin (host-i386-darwin.o): Update.
8657         * config/i386/x-cygwin (host-cygwin.o): Update.
8658         * config/i386/t-nwld (nwld.o): Update.
8659         * config/i386/t-netware (netware.o): Update.
8660         * config/i386/t-interix (winnt.o): Update.
8661         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
8662         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
8663         msformat-c.o): Update.
8664         * config/bfin/t-bfin-linux (generated_files): Add
8665         linux-sysroot-suffix.h.
8666         * config/arm/t-wince-pe (pe.o): Update.
8667         * config/arm/t-strongarm-pe (pe.o): Update.
8668         * config/arm/t-pe (pe.o): Update.
8669         * config/arm/t-arm (arm-c.o): Update.
8670         * doc/install.texi (Prerequisites): Require make 3.80.
8671         * Makefile.in: Remove .o targets.
8672         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
8673         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
8674         (simple_generated_h, simple_generated_c): Move earlier.
8675         (generated_files): New variable.
8676         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
8677         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
8678         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
8679         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
8680         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
8681         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
8682         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
8683         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
8684         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
8685         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
8686         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
8687         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
8688         (.c.o): Remove.
8689         (COMPILE.base, COMPILE): New variables.
8690         (%.o): New pattern rule.
8691         (ALL_HOST_OBJS): New variable.
8692         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
8693         (dummy-checksum.o, cc1-checksum.o): Remove.
8694         (DRIVER_SHLIB): New variable.
8695         (DRIVER_DEFINES): Use it.
8696         (gencondmd.c): Move out of build/.
8697         (s-conditions): Update.
8698         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
8699         (ALL_BUILD_OBJS): Likewise.
8700         (build/%.o): Use BUILDCOMPILE.
8701         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
8702         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
8703         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
8704         build/gencheck.o, build/gencodes.o, build/genconditions.o,
8705         build/genconfig.o, build/genconstants.o, build/genemit.o,
8706         build/genextract.o, build/genflags.o, build/genmddeps.o,
8707         build/genopinit.o, build/genoutput.o, build/genpeep.o,
8708         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
8709         build/gen-protos.o, build/scan.o, build/fix-header.o,
8710         build/scan-decls.o): Simplify.
8711         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
8712         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
8713         prefix.o, toplev.o): Reduce to variable setting.
8714         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
8715         ($(out_object_file), gcc-options.o): New targets.
8716         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
8717         * configure: Rebuilt.
8718         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
8719         * doc/sourcebuild.texi (Front End Directory): Document new variable.
8720
8721 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
8722
8723         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
8724         complain when we hit an error, return ERROR_MARK_NODE.
8725
8726 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8727
8728         * config/sh/constraints.md (Pso, Psz): New constraints.
8729         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
8730         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
8731
8732 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8733
8734         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
8735         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
8736
8737 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8738
8739         * config/sh/sh.md (prefetch): Add condition for SH2A target.
8740         (prefetch_sh2a): New.   
8741
8742 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8743             Naveen.H.S  <naveen.hs@kpitcummins.com>
8744
8745         * config/sh/constraints.md (I28): New constraint.
8746         * config/sh/sh.c (broken_move): Add support for movi20s.
8747         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
8748
8749 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
8750             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8751             Naveen.H.S  <naveen.hs@kpitcummins.com>
8752
8753         * config/sh/sh.c (SH_ATTRIBUTES): Define.
8754         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
8755         (print_operand): Handle resbank in %@ operand code.
8756         (sh_encode_section_info): New.
8757         (push_regs): Add conditions for resbank.
8758         (sh_expand_epilogue): Likewise.
8759         (sh_insert_attributes): Likewise.
8760         (sh_attribute_table): Likewise.
8761         (sh_handle_resbank_handler_attribute): New.
8762         (sh2a_handle_function_vector_handler_attribute): New.
8763         (sh2a_is_function_vector_call): New.
8764         (sh2a_get_function_vector_number): New.
8765         (sh2a_function_vector_p): New.
8766         (sh_cfun_resbank_handler_p): New.
8767         * config/sh/sh.md (calli): Emit jsr/n if possible.
8768         (calli_tbr_rel): New.
8769         (calli_pcrel): Emit jsr/n if possible.
8770         (return_i): Emit rts/n if possible.
8771         (call_valuei_tbr_rel): New.
8772         (call_valuei_pcrel): Add condition for SH2A target.
8773         (call_value): Likewise.
8774         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
8775         (sh2a_get_function_vector_number): Likewise.
8776         (sh2a_is_function_vector_call): Likewise.
8777         * doc/extend.texi: Document TBR relative addressing of SH2A.
8778         (resbank): Add description for SH2A.
8779
8780 2008-03-24  Richard Guenther  <rguenther@suse.de>
8781
8782         PR c/22371
8783         * gimplify.c (gimplify_modify_expr): For frontend type-correct
8784         pointer assignments change conversions according to middle-end rules.
8785         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
8786         * configure.ac: Include type checking in yes.
8787         * configure: Regenerate.
8788
8789 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8790
8791         * diagnostic.c (diagnostic_count_diagnostic): Delete.
8792         (diagnostic_report_diagnostic): Update. Handle ICEs here.
8793         
8794 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
8795
8796         * gthr-vxworks.h (UNUSED): Define.
8797
8798 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
8799
8800         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
8801
8802 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
8803
8804         * doc/extend.texi (Function Attributes): Add missing comma in the
8805         example of the "alloc_size" attribute.
8806         
8807 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
8808
8809         Revert:
8810         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8811
8812         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8813         32bit host.
8814
8815         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8816
8817         PR target/35496
8818         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8819         of the underlying type of a MS bitfield layout to the natural
8820         alignment of the type.
8821
8822         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8823
8824         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8825         to their natural alignment to avoid store forwarding stalls.
8826
8827 2008-03-22  Richard Guenther  <rguenther@suse.de>
8828
8829         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
8830         For PHI nodes verify the address is invariant.
8831         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
8832         (get_symbol_constant_value): Use is_gimple_min_invariant.
8833         (maybe_fold_stmt_indirect): Likewise.
8834
8835 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
8836
8837         PR rtl-optimization/33927
8838         * Makefile.in (dse.o): Depend on $(TM_P_H).
8839         * expr.h (extract_low_bits): Declare.
8840         * expmed.c (extract_low_bits): New function.
8841         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
8842         * dse.c: Include tm_p.h.
8843         (find_shift_sequence): Remove the read_reg argument and return the
8844         read value.  Emit the instructions instead of returning them.
8845         Iterate on new_mode rather than calculating it each time.
8846         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
8847         source to NEW_MODE and extract_low_bits to convert the shifted
8848         value to READ_MODE.
8849         (replace_read): Allow the load and store to have different mode
8850         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
8851         or extraction instructions before trying the replacement.  Update
8852         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
8853
8854 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8855
8856         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8857         to their natural alignment to avoid store forwarding stalls.
8858
8859 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8860
8861         PR target/27946
8862         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
8863         encouraging but not allowing gprs for input;
8864         change the input constraint to !f#r.
8865         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
8866         gprs for output;
8867         change the output constraint to !f#r.
8868
8869 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
8870
8871         PR target/13958
8872         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
8873         corresponding post-reload splitters.
8874         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
8875         when x87 FP math is selected.
8876         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
8877         New function prototype.
8878         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
8879         unreachable function to ease macroization of insn patterns.
8880
8881 2008-03-21  Martin Jambor  <mjambor@suse.cz>
8882
8883         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
8884         reference dumps if ddr is NULL or dependence is unknown.
8885
8886 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8887
8888         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
8889         unsigned extension into account.
8890         (ATOMIC_COMPARE_AND_SWAP): Likewise.
8891         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
8892         Do computations on a scratch register.
8893
8894 2008-03-21  Richard Guenther  <rguenther@suse.de>
8895
8896         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
8897         Use is_gimple_min_invariant instead of TREE_INVARIANT.
8898         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
8899         * tree-ssa-dom.c (record_equality): Likewise.
8900         * tree-inline.c (copy_body_r): Likewise.
8901         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
8902         TREE_INVARIANT.
8903
8904 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8905
8906         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
8907         as 'delete_unused' argument.
8908
8909 2008-03-20  Richard Guenther  <rguenther@suse.de>
8910
8911         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
8912         special casing of constant qualifiers.
8913         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
8914         care about them in general.
8915         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
8916         regardless of their type.
8917         (fold_stmt_r): Forcefully fold *& if we end up with that.
8918
8919 2008-03-20  Paul Brook  <paul@codesourcery.com>
8920
8921         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
8922         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
8923         linker flags.
8924         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
8925         definition.
8926         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
8927         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
8928
8929 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
8930
8931         * common.opt (Wmudflap): New option.
8932         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
8933         (mx_register_decls): Likewise.
8934         (mudflap_finish_file): Likewise.
8935         * doc/invoke.texi: Document -Wno-mudflap.
8936
8937 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
8938
8939         * c-format.c (replace_format_name_to_system_name): New.
8940         (cmp_attribs): New.
8941         (convert_format_name_to_system_name): New.
8942         (decode_format_attr): Add use of convert_format_name_to_system_name.
8943         (format_types_orig): Add gnu_ prefix to names.
8944         (check_format_info_main): Special treating of \0 escaped names for
8945         supporting multi-character format specifiers as I32, I64.
8946         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
8947         (gnu_target_overrides_format_attributes): New.
8948         * c-format.h: Add structure target_ovr_attr to hold
8949         system specific formatter names.
8950         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
8951         msformat-c.o file to c_target_objs and cxx_target_objs.
8952         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8953         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
8954         (TARGET_N_FORMAT_TYPES): New.
8955         * config/i386/msformat-c.c: New.
8956         * config/i386/t-cygming: Add build rule for msformat-c.o.
8957         * doc/extend.texi: Add new format names gnu_* and ms_* and
8958         further details.
8959         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8960
8961 2008-03-20  Ira Rosen  <irar@il.ibm.com>
8962
8963         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
8964         optimizations turned on under -O3.
8965         (ftree-vectorize): Add that the flag is turned on with -O3.
8966
8967 2008-03-20  Ben Elliston  <bje@au.ibm.com>
8968
8969         * regmove.c (try_auto_increment): Fix spelling error in comment.
8970         * final.c (final_scan_insn): Likewise.
8971
8972 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
8973
8974         PR target/14552
8975         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
8976         allocator preferences for "y" and "r" class registers.
8977         ("*mov<mode>_internal"): Ditto.
8978         ("*movv2sf_internal_rex64"): Ditto.
8979         ("*movv2sf_internal"): Ditto.
8980
8981 2008-03-19  Michael Matz  <matz@suse.de>
8982
8983         PR middle-end/35616
8984         * calls.c (expand_call): Check overlap of arguments with call
8985         address for sibcalls.
8986
8987 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8988
8989         PR target/35496
8990         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8991         of the underlying type of a MS bitfield layout to the natural
8992         alignment of the type.
8993
8994 2008-03-19  Jan Hubicka  <jh@suse.cz>
8995
8996         PR other/35094
8997         * toplev.c (decode_d_option): Handle all CPP flags.
8998         * tree-vrp.c: Update tree_pass descriptors.
8999         * regrename.c: Update tree_pass descriptors.
9000         * fwprop.c: Update tree_pass descriptors.
9001         * doc/invoke.texi: Remove documentation of dropped -d? flags.
9002         * tree-into-ssa.c: Update tree_pass descriptors.
9003         * tree-dump.c: Update tree_pass descriptors.
9004         * tree-complex.c: Update tree_pass descriptors.
9005         * tree-dump.h: Update tree_pass descriptors.
9006         * see.c: Update tree_pass descriptors.
9007         * cgraphbuild.c: Update tree_pass descriptors.
9008         * tracer.c: Update tree_pass descriptors.
9009         * tree-loop-distribution.c: Update tree_pass descriptors.
9010         * cgraph.c: Update tree_pass descriptors.
9011         * postreload-gcse.c: Update tree_pass descriptors.
9012         * postreload.c: Update tree_pass descriptors.
9013         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
9014         * tree-tailcall.c: Update tree_pass descriptors.
9015         * tree-pass.h (tree_opt_pass): Rename to ...
9016         (opt_pass) ... this one; add "type" field and remove letter field.
9017         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
9018         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
9019         all_lowering_passes): Update declaration.
9020         * ipa-cp.c: Update tree_pass descriptors.
9021         * final.c: Update tree_pass descriptors.
9022         * omp-low.c: Update tree_pass descriptors.
9023         * tree-ssa-dse.c: Update tree_pass descriptors.
9024         * ipa-reference.c: Update tree_pass descriptors.
9025         * tree-ssa-uncprop.c: Update tree_pass descriptors.
9026         * auto-inc-dec.c: Update tree_pass descriptors.
9027         * reorg.c: Update tree_pass descriptors.
9028         * cgraphunit.c: Update tree_pass descriptors.
9029         * tree-ssa-copyrename.c: Update tree_pass descriptors.
9030         * tree-ssa-ccp.c: Update tree_pass descriptors.
9031         * df-core.c: Update tree_pass descriptors.
9032         * mode-switching.c: Update tree_pass descriptors.
9033         * tree-nomudflap.c: Update tree_pass descriptors.
9034         * modulo-sched.c: Update tree_pass descriptors.
9035         * ipa-pure-const.c: Update tree_pass descriptors.
9036         * cse.c: Update tree_pass descriptors.
9037         * web.c: Update tree_pass descriptors.
9038         * tree-stdarg.c: Update tree_pass descriptors.
9039         * tree-ssa-math-opts.c: Update tree_pass descriptors.
9040         * tree-ssa-dom.c: Update tree_pass descriptors.
9041         * tree-nrv.c: Update tree_pass descriptors.
9042         * tree-ssa-alias.c: Update tree_pass descriptors.
9043         * loop-init.c: Update tree_pass descriptors.
9044         * gimple-low.c: Update tree_pass descriptors.
9045         * ipa-inline.c: Update tree_pass descriptors.
9046         * tree-ssa-sink.c: Update tree_pass descriptors.
9047         * global.c: Update tree_pass descriptors.
9048         * ifcvt.c: Update tree_pass descriptors.
9049         * jump.c: Update tree_pass descriptors.
9050         * predict.c: Update tree_pass descriptors.
9051         * tree-ssa-loop.c: Update tree_pass descriptors.
9052         * recog.c: Update tree_pass descriptors.
9053         * dse.c: Update tree_pass descriptors.
9054         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
9055         * tree-eh.c: Update tree_pass descriptors.
9056         * regmove.c: Update tree_pass descriptors.
9057         * local-alloc.c
9058         * function.c: Update tree_pass descriptors.
9059         * tree-vectorizer.c: Update tree_pass descriptors.
9060         * gcse.c: Update tree_pass descriptors.
9061         * ipa-type-escape.c: Update tree_pass descriptors.
9062         * tree-if-conv.c: Update tree_pass descriptors.
9063         * init-regs.c: Update tree_pass descriptors.
9064         * ipa.c: Update tree_pass descriptors.
9065         * tree-ssa-phiopt.c: Update tree_pass descriptors.
9066         * rtl-factoring.c: Update tree_pass descriptors.
9067         * lower-subreg.c: Update tree_pass descriptors.
9068         * bt-load.c: Update tree_pass descriptors.
9069         * tree-dfa.c: Update tree_pass descriptors.
9070         * except.c: Update tree_pass descriptors.
9071         * emit-rtl.c: Update tree_pass descriptors.
9072         * cfgexpand.c: Update tree_pass descriptors.
9073         * tree-cfgcleanup.c: Update tree_pass descriptors.
9074         * cfgcleanup.c: Update tree_pass descriptors.
9075         * tree-ssa-pre.c: Update tree_pass descriptors.
9076         * tree-sra.c: Update tree_pass descriptors.
9077         * tree-mudflap.c: Update tree_pass descriptors.
9078         * tree-ssa-copy.c: Update tree_pass descriptors.
9079         * cfglayout.c: Update tree_pass descriptors.
9080         * tree-ssa-forwprop.c: Update tree_pass descriptors.
9081         * tree-ssa-dce.c: Update tree_pass descriptors.
9082         * tree-ssa.c: Update tree_pass descriptors.
9083         * regclass.c: Update tree_pass descriptors.
9084         * integrate.c: Update tree_pass descriptors.
9085         * tree-optimize.c: Update tree_pass descriptors.
9086         * tree-ssa-phiprop.c: Update tree_pass descriptors.
9087         * tree-object-size.c: Update tree_pass descriptors.
9088         * combine.c: Update tree_pass descriptors.
9089         * tree-outof-ssa.c: Update tree_pass descriptors.
9090         * bb-reorder.c: Update tree_pass descriptors.
9091         * stack-ptr-mod.c: Update tree_pass descriptors.
9092         * var-tracking.c: Update tree_pass descriptors.
9093         * tree-profile.c: Update tree_pass descriptors.
9094         * tree-vect-generic.c: Update tree_pass descriptors.
9095         * reg-stack.c: Update tree_pass descriptors.
9096         * sched-rgn.c: Update tree_pass descriptors.
9097         * tree-ssa-structalias.c: Update tree_pass descriptors.
9098         * tree-cfg.c: Update tree_pass descriptors.
9099         * passes.c (current_pass): Update declaration.
9100         (finish_optimization_passes): Update.
9101         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
9102         (register_one_dump_file, register_dump_files_1, next_pass_1):
9103         Update arguments.
9104         (init_optimization_passes): Update handling of new types.
9105         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
9106         * ipa-struct-reorg.c: Update tree_pass descriptors.
9107         * tree-ssa-reassoc.c: Update tree_pass descriptors.
9108         * combine-stack-adj.c: Update tree_pass descriptors.
9109         * cfgrtl.c: Update tree_pass descriptors.
9110         * dce.c: Update tree_pass descriptors.
9111         * tree-ssanames.c: Update tree_pass descriptors.
9112
9113 2008-03-19  Richard Guenther  <rguenther@suse.de>
9114
9115         PR middle-end/35609
9116         * tree-ssa.c (walk_data): New structure.
9117         (warn_uninitialized_var): If not always_executed warn with "maybe"
9118         instead of "is".
9119         (execute_early_warn_uninitialized): Compute post-dominators.
9120         Initialize always_executed before processing each basic block.
9121
9122 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
9123
9124         PR target/35504
9125         * config/i386/i386.c (x86_this_parameter): Calculate correct location
9126         of "this" pointer when "regparm = N" or "fastcall" is in effect.
9127
9128 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9129
9130         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
9131
9132 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
9133
9134         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
9135         is true.
9136         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
9137         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
9138         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
9139         target after ignore has been set, and move there also the commputation
9140         of subtarget and original_target.
9141         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
9142         (LANG_HOOKS_INITIALIZER): Remove it.
9143         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
9144
9145 2008-03-18  Richard Guenther  <rguenther@suse.de>
9146
9147         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
9148         found an expression with constants, note that in the VN for the lhs.
9149         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
9150         fold them to constants if possible.  Run cleanup_cfg if done so.
9151         (execute_pre): Return todo.
9152         (do_pre): Likewise.
9153         (execute_fre): Likewise.
9154         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
9155         of constants.
9156         (get_prop_source_stmt): Look through pointer conversions.
9157
9158 2008-03-18  Jan Hubicka  <jh@suse.cz>
9159
9160         * tree-pretty-print.c: Include predict.h.
9161         (dump_generic_node): Dump predictor.
9162         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
9163         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
9164         * gimple-low.c (lower_stmt): Likewise.
9165         * expr.c (expand_expr_real): Likewise.
9166         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
9167         them.
9168         (build_predict_expr, build_predict_expr): New.
9169         * predict.h (predictor_name, build_predict_expr): Update.
9170         * c-typeck.c (c_finish_bc_stmt): Add prediction.
9171         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
9172         * predict.def (PRED_CONTINUE): Update hitrate.
9173         * tree.def (PREDICT_EXPR): Define.
9174         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
9175         do not handle BIND_EXPR.
9176         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
9177         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
9178         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
9179         operands.
9180
9181 2008-03-18  Michael Matz  <matz@suse.de>
9182
9183         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
9184
9185 2008-03-18  Richard Guenther  <rguenther@suse.de>
9186
9187         * tree-gimple.h (is_gimple_invariant_address): Declare.
9188         (is_gimple_constant): Likewise.
9189         * tree-gimple.c (is_gimple_constant): New function.
9190         (is_gimple_invariant_address): Likewise.
9191         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
9192         and is_gimple_invariant_address.
9193         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
9194         previous change.
9195         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
9196         an addressable base.
9197
9198 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
9199
9200         PR middle-end/35611
9201         * gimplify.c (gimplify_expr): Gimplify second operand of
9202         OMP_ATOMIC_LOAD.
9203
9204 2008-03-17  Richard Guenther  <rguenther@suse.de>
9205
9206         PR tree-optimization/19637
9207         * fold-const.c (fold_unary): Remove restrictions of removing
9208         intermediate pointer-conversions (P2)(P1)P0.
9209         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
9210         conversion to void pointer.
9211         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
9212
9213 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
9214
9215         PR debug/31510
9216         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
9217         emulated thread local variables.
9218
9219 2008-03-16  Richard Guenther  <rguenther@suse.de>
9220
9221         PR middle-end/35607
9222         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
9223         expand TREE_INVARIANT operations that are not gimple invariant.
9224
9225 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
9226
9227         * doc/extend.texi (Alignment): Say that the ABI controls
9228         the __alignof__ for non-strict-alignment targets rather
9229         than being a recommendation.
9230
9231 2008-03-15  Paul Brook  <paul@codesourcery.com>
9232
9233         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
9234         annotations.
9235         (arm_output_fn_unwind): Mark functions that can not be unwound.
9236
9237 2008-03-15  Paul Brook  <paul@codesourcery.com>
9238
9239         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
9240         extension instructions.
9241
9242 2008-03-15  Richard Guenther  <rguenther@suse.de>
9243
9244         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
9245         and fold constant aggregate refs.
9246         (fold_const_aggregate_ref): Handle string constants
9247         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
9248         (evaluate_stmt): Simplify now that ccp_fold folds constant
9249         aggregate refs.
9250
9251 2008-03-15  Paul Brook  <paul@codesourcery.com>
9252
9253         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
9254         (extzv): Use gen_extzv_t2.
9255         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
9256
9257 2008-03-15  Richard Guenther  <rguenther@suse.de>
9258
9259         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
9260         (fold_const_aggregate_ref): Likewise.
9261         (get_value): Return NULL if we don't have any values.
9262         (ccp_finalize): Set const_val to NULL after freeing it.
9263         * tree-flow.h (get_symbol_constant_value): Declare.
9264         (fold_const_aggregate_ref): Likewise.
9265         * tree-ssa-sccvn.c (try_to_simplify): Use them.
9266
9267 2008-03-15  Richard Guenther  <rguenther@suse.de>
9268
9269         PR middle-end/35593
9270         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
9271         to not produce negative array indices if not allowed.  Add
9272         parameter to indicate that.
9273         (maybe_fold_offset_to_component_ref): Allow negative array
9274         indices only for the first member of a structure.
9275         (maybe_fold_offset_to_reference): Allow negative array indices.
9276         (maybe_fold_stmt_addition): Likewise.
9277
9278 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
9279             Anatoly Sokolov <aesok@post.ru>
9280
9281         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
9282         (avr_arch): Add ARCH_AVR6.
9283         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
9284         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
9285         instead of fixed value 2.
9286         (print_operand_address): Use gs() asm specifier instead of pm().
9287         (avr_assemble_integer): (Ditto.).
9288         (avr_output_addr_vec_elt): (Ditto.).
9289         (print_operand): Handle "!" code.
9290         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
9291         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
9292         (AVR_HAVE_EIJMP_EICALL): Define.
9293         (AVR_3_BYTE_PC): Redefine.
9294         (AVR_2_BYTE_PC): (Ditto.).
9295         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
9296         (LINK_SPEC): Add atmega2560 and atmega2561.
9297         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
9298         (crtm2561.o).
9299         * config/avr/avr.md (call_insn): Use eicall instead of icall 
9300         for 3 byte PC devices.
9301         (call_value_insn): (Ditto.).
9302         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
9303         (indirect_jump): Use only for for 2 byte PC devices.
9304         (*tablejump): (Ditto.).
9305         (*indirect_jump_avr6): Add insn.
9306         (*tablejump_rjmp): Don't use for 3 byte PC devices.
9307         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
9308         instead of ijmp for 3 byte PC devices.
9309         (__tablejump2__): (Ditto.).
9310         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
9311         (MULITLIB_DIRNAMES): (Ditto.). 
9312         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
9313
9314 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
9315
9316         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
9317         "sse2_umulsidi3".  Use V1DI mode for operand 0.
9318         ("mmx_psadbw"): Use V1DI mode for operand 0.
9319         * config/i386/i386-modes.def (V1SI): New vector mode.
9320         * config/i386/i386.c (struct builtin_description)
9321         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
9322         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
9323         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
9324         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
9325         v1di_ftype_v8qi_v8qi type.
9326         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
9327
9328         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
9329         __builtin_ia32_pmuludq]: Fix the mode of return value.
9330
9331 2008-03-15  Richard Guenther  <rguenther@suse.de>
9332
9333         PR middle-end/35595
9334         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
9335         being a PHI_NODE.
9336
9337 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
9338         
9339         * doc/invoke.texi (Option Summary, Xtensa Options): Document
9340         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
9341         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
9342         unless TARGET_SERIALIZE_VOLATILE is enabled.
9343         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
9344         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
9345         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
9346
9347 2008-03-14  Richard Guenther  <rguenther@suse.de>
9348
9349         PR tree-optimization/34172
9350         * tree-flow.h (refs_may_alias_p): Declare.
9351         (get_single_def_stmt): Likewise.
9352         (get_single_def_stmt_from_phi): Likewise.
9353         (get_single_def_stmt_with_phi): Likewise.
9354         * tree-dfa.c (refs_may_alias_p): New function.
9355         (get_single_def_stmt): Likewise.
9356         (get_single_def_stmt_from_phi): Likewise.
9357         (get_single_def_stmt_with_phi): Likewise.
9358         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
9359         (vn_reference_lookup_1): New helper function.
9360         (vn_reference_lookup): Walk the virtual use-def chain to
9361         continue searching for a match if the def does not alias the
9362         reference we are looking for.
9363
9364 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
9365
9366         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
9367         archive and Perzl.  Update The Written Word listing.
9368
9369 2008-03-14  Richard Guenther  <rguenther@suse.de>
9370
9371         PR tree-optimization/34043
9372         PR tree-optimization/33989
9373         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
9374         when doing FRE.
9375         (bitmap_find_leader): Use extra argument to verify dominance
9376         relationship inside a basic-block.
9377         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
9378         (find_leader_in_sets): Adjust.
9379         (create_component_ref_by_pieces): Take extra argument for
9380         dominance check, handle lookup failures.
9381         (find_or_generate_expression): Likewise.
9382         (create_expression_by_pieces): Likewise.
9383         (insert_into_preds_of_block): Adjust.
9384         (create_value_expr_from): If asked for, verify all operands
9385         are in the blocks AVAIL_OUT set.
9386         (make_values_for_stmt): Check for SSA_NAMEs that are life
9387         over an abnormal edge.
9388         (compute_avail): Remove such check.
9389         (do_SCCVN_insertion): New function.
9390         (eliminate): If we do not find a leader suitable for replacement
9391         insert a replacement expression from SCCVN if available.
9392         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
9393         (struct vn_ssa_aux): Add needs_insertion flag.
9394         * tree-ssa-sccvn.c (may_insert): New global flag.
9395         (copy_reference_ops_from_ref): Value-number union member access
9396         based on its size, not type and member if insertion is allowed.
9397         (visit_reference_op_load): For a weak match from union type
9398         punning lookup a view-converted value and insert a SSA_NAME
9399         for that value if that is not found.
9400         (visit_use): Make dumps shorter.  Do not disallow value numbering
9401         SSA_NAMEs that are life over an abnormal edge to constants.
9402         (free_scc_vn): Release inserted SSA_NAMEs.
9403         (run_scc_vn): New flag to specify whether insertion is allowed.
9404         Process SSA_NAMEs in forward order.
9405         * tree-ssa-loop-im.c (for_each_index): Handle invariant
9406         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
9407         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
9408         pointer type to/from integral types that do not change the
9409         precision to regular conversions.
9410
9411 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9412
9413         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9414         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9415         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
9416         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
9417         input arguments and the mode of return value.  Built-in functions
9418         that operate on whole 64-bit MMX register now use V1DI mode.
9419
9420 2008-03-13  Alon Dayan  <alond@il.ibm.com>
9421             Olga Golovanevsky  <olga@il.ibm.com>
9422
9423         PR tree-optimization/35041
9424         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
9425         to locate the right position in a statement.
9426
9427 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9428
9429         PR target/34000
9430         PR target/35553
9431         * config/i386/xmmintrin.h:  Change all static inline functions to
9432         extern inline and add __gnu_inline__ attribute.
9433         * config/i386/bmintrin.h: Ditto.
9434         * config/i386/smmintrin.h: Ditto.
9435         * config/i386/tmmintrin.h: Ditto.
9436         * config/i386/mmintrin-common.h: Ditto.
9437         * config/i386/ammintrin.h: Ditto.
9438         * config/i386/emmintrin.h: Ditto.
9439         * config/i386/pmmintrin.h: Ditto.
9440         * config/i386/mmintrin.h: Ditto.
9441         * config/i386/mm3dnow.h: Ditto.
9442
9443 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
9444
9445         PR middle-end/35185
9446         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
9447         (lower_omp_2): New function.
9448         (lower_omp_1, lower_omp): Rewritten.
9449
9450 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
9451
9452         PR 35054
9453         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
9454         with the phrase "Microsoft Windows compilers".
9455         (Push/Pop Macro Pragmas): New subsection. Document
9456         #pragma push_macro and pragma pop_macro.
9457
9458 2008-03-12  Paul Brook  <paul@codesourcery.com>
9459
9460         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
9461
9462 2008-03-12  Paul Brook  <paul@codesourcery.com>
9463
9464         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
9465         (thumb2_alusi3_short): Exclude PLUS and MINUS.
9466         (thumb2_addsi_shortim): Rename ...
9467         (thumb2_addsi_short): ... to this.  Allow register operands.
9468         (thumb2_subsi_short): New pattern.
9469         (thumb2_one_cmplsi2_short,
9470         thumb2_negsi2_short): New patterns and peepholes.
9471
9472 2008-03-12  Paul Brook  <paul@codesourcery.com>
9473
9474         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
9475
9476 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
9477
9478         * config/i386/i386.md (int_cond): New code iterator.
9479         (fp_cond): Ditto.
9480         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
9481         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
9482         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
9483         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
9484         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
9485         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
9486         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
9487         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
9488
9489 2008-03-12  Paul Brook  <paul@codesourcery.com>
9490
9491         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
9492         instead of {arm,thumb}_compute_save_reg_mask.
9493         (output_return_instruction): Ditto.
9494         (thumb_unexpanded_epilogue): Ditto.
9495         (thumb1_expand_prologue): Ditto.
9496         (thumb1_output_function_prologue): Ditto.
9497         (arm_set_return_address): Ditto.
9498         (thumb_set_return_address): Ditto.
9499         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
9500         regs to achieve stack alignment.
9501         (thumb1_compute_save_reg_mask): Fix compiler warning.
9502         (arm_output_epilogue): Use offsets->saved_regs_mask.
9503         Adjust stack pointer by poping call clobered registers.
9504         (arm_expand_prologue): Use offsets->saved_regs_mask.
9505         Adjust stack pointer by pushing extra registers.
9506         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
9507
9508 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
9509
9510         PR tree-opt/35422
9511         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
9512         conversion to the operands of a multiplication.
9513
9514 2008-03-12  Richard Guenther  <rguenther@suse.de>
9515
9516         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
9517         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
9518         * timevar.def (TV_TREE_PHIPROP): Add.
9519         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
9520         pass description.  Use TV_TREE_PHIPROP.
9521         * tree-ssa-forwprop.c: Remove phiprop code.
9522
9523 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
9524
9525         PR middle-end/35549
9526         * omp-low.c (maybe_lookup_decl): Constify first argument.
9527         (use_pointer_for_field): Change last argument from bool to
9528         omp_context *.  Disallow shared copy-in/out in nested
9529         parallel if decl is shared in outer parallel too.
9530         (build_outer_var_ref, scan_sharing_clauses,
9531         lower_rec_input_clauses, lower_copyprivate_clauses,
9532         lower_send_clauses, lower_send_shared_vars): Adjust callers.
9533
9534 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
9535             Ira Rosen  <irar@il.ibm.com>
9536
9537         * tree-vectorizer.c (free_stmt_vec_info): New function.
9538         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
9539         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
9540         * tree-vectorizer.h (free_stmt_vec_info): Declare.
9541         * tree-vect-transform.c (vectorizable_conversion): Free
9542         vec_oprnds0 if it was allocated.
9543         (vect_permute_store_chain): Remove unused VECs.
9544         (vectorizable_store): Free VECs that are allocated in the..
9545         function.
9546         (vect_transform_strided_load, vectorizable_load): Likewise.
9547         (vect_remove_stores): Simplify the code.
9548         (vect_transform_loop): Move code to vect_remove_stores().
9549         Call vect_remove_stores() and free_stmt_vec_info().
9550
9551 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9552
9553         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
9554         TARGET_HPUX.  Revise comment.
9555         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
9556         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
9557         Use sr4 variant of `be' instruction when not generating PIC code.
9558         (attr_length_call): Adjust for above change.
9559
9560 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9561
9562         * ipa-reference.c (static_execute): Remove module_statics_const and
9563         associated setting code.
9564
9565 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9566
9567         PR target/35540
9568         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
9569         predicate for operand 1.
9570         (paritysi2_cmp): Use register_operand predicate for operand 2.
9571         Use earlyclobber modifier for operand 1.  Remove support for
9572         memory operands.
9573         (paritydi2_cmp): Use register_operand predicate for operand 3.
9574         Use earlyclobber modifier for operand 1.  Remove support for
9575         memory operands.
9576
9577 2008-03-11  Paul Brook  <paul@codesourcery.com>
9578             Vladimir Prus  <vladimir@codesourcery.com>
9579
9580         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
9581         (arm_compute_save_reg0_reg12_mask): Always
9582         check if register 11 must be saved.  Always safe hard frame pointer
9583         when frame_pointer_needeed.
9584         (arm_compute_save_reg_mask): Save IP and PC
9585         only with apcs frames.
9586         (arm_output_epilogue): Adjust Thumb2 codepath to
9587         be also invoked and work for ARM non-apcs frames.
9588         (arm_expand_prologue): Don't bother saving IP
9589         for non-apcs frame, since it's not clobbered by
9590         prologue code.  Implement non-apcs frame
9591         layout.
9592
9593 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9594
9595         PR rtl-optimization/35281
9596         * expr.c (convert_move): Use a new pseudo for the intermediate
9597         from_mode->word_mode result.
9598
9599 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9600
9601         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
9602         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
9603         * toplev.c (compile_file): Don't call it.
9604
9605 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9606
9607         PR middle-end/35526
9608         * expr.c (store_expr): Call emit_block_move if the mode
9609         of "temp" RTX is BLKmode.
9610
9611 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9612             Richard Guenther  <rguenther@suse.de>
9613
9614         PR tree-optimization/31358
9615         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
9616         the step with a NULL_TREE.
9617         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
9618         to sizetype if type is a pointer type.
9619         (add_candidate_1): Don't convert the base and step to
9620         the generic type if the orginal type is a pointer type.
9621         (add_iv_value_candidates): Use sizetype for the step
9622         if type is a pointer type.
9623         (cand_value_at): Likewise.
9624         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
9625         for pointer types.
9626         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
9627         Don't convert the tem affine to the type.
9628         (add_elt_to_tree): Use sizetype for the step if a pointer.
9629         Use POINTER_PLUS_EXPR for pointers.
9630         (aff_combination_to_tree): Use sizetype for the step if a
9631         pointer.
9632
9633 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
9634
9635         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
9636         Remove commutativity hint.
9637
9638 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
9639
9640         PR c/35438
9641         PR c/35439
9642         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
9643         errorneous type.  Check that v is a VAR_DECL.
9644
9645         PR middle-end/35099
9646         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
9647
9648 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
9649
9650         PR tree-optimization/35494
9651         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
9652         may be overriden at link and run time.
9653
9654 2008-03-10  Richard Guenther  <rguenther@suse.de>
9655
9656         PR tree-optimization/34677
9657         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
9658         (poolify_tree): Likewise.
9659         (modify_expr_template): Likewise.
9660         (poolify_modify_stmt): Likewise.
9661         (insert_fake_stores): Handle all component-ref style stores
9662         in addition to INDIRECT_REF.  Also handle complex types.
9663         Do not poolify the inserted load.
9664         (realify_fake_stores): Do not rebuild the tree but only
9665         make it a SSA_NAME copy.
9666         (init_pre): Remove initialzation of modify_expr_template.
9667         Do not allocate modify_expr_node_pool.
9668         (fini_pre): Do not free modify_expr_node_pool.
9669
9670 2008-03-10  Paul Brook  <paul@codesourcery.com>
9671
9672         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
9673         to avoid conflicts.
9674
9675 2008-03-10  Paul Brook  <paul@codesourcery.com>
9676             Mark Shinwell  <shinwell@codesourcery.com>
9677
9678         * config/arm/cortex-r4.md: New.
9679         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
9680         insn attributes.
9681         * config/arm/arm.md: Include cortex-r4.md.
9682         (insn): Add smmls, sdiv and udiv values.
9683         (generic_sched): Don't use generic scheduling for Cortex-R4.
9684         (arm_issue_rate): New function.
9685         (TARGET_SCHED_ISSUE_RATE): Define.
9686
9687 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
9688
9689         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
9690
9691 2008-03-10  Richard Guenther  <rguenther@suse.de>
9692
9693         * tree-ssa-pre.c (get_sccvn_value): Simplify.
9694         (compute_avail): Do not add stmt uses to AVAIL_OUT.
9695
9696 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
9697
9698         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
9699         Set default to true.
9700
9701 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9702
9703         * c.opt (Wsynth): Deprecate.
9704         * doc/invoke.texi (Option Summary, Warning Options): Document
9705         -Wno-format-contains-nul.
9706
9707 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
9708
9709         PR target/35496
9710         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
9711         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
9712
9713 2008-03-09  Ira Rosen  <irar@il.ibm.com>
9714
9715         * config/rs6000/rs6000.c (builtin_description): Rename vector
9716         left shift operations.
9717         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
9718         (altivec_vsl<VI_char>): Rename to ...
9719         (ashl<mode>3): ... new name.
9720         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
9721         gen_ashlv4si3.
9722         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
9723
9724 2008-03-08  Richard Guenther  <rguenther@suse.de>
9725
9726         * coverage.h (tree_coverage_counter_addr): Declare.
9727         * coverage.c (tree_coverage_counter_addr): New function.
9728         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
9729         before using again.
9730         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
9731         (tree_gen_one_value_profiler): Likewise.
9732         (tree_gen_ic_profiler): Likewise.
9733         (tree_gen_average_profiler): Likewise.
9734         (tree_gen_ior_profiler): Likewise.
9735
9736 2008-03-08  Richard Guenther  <rguenther@suse.de>
9737
9738         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
9739         (vn_binary_op_insert): Likewise.
9740         (vn_unary_op_lookup): Likewise.
9741         (vn_unary_op_insert): Likewise.
9742         (vn_nary_op_lookup): Declare.
9743         (vn_nary_op_insert): Likewise.
9744         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
9745         and binary hashes, use a single obstack for unary_op_pool
9746         and binary_op_pool.
9747         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
9748         a single struct vn_nary_op_s.  Store tree code length and
9749         a variable number of operands.
9750         (struct vn_reference_op_struct): Remove unused op2.
9751         (vn_reference_op_eq): Do not compare op2.
9752         (vn_reference_op_compute_hash): Do not compute hash of op2.
9753         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
9754         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
9755         with vn_nary_op_compute_hash.
9756         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
9757         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
9758         vn_nary_op_lookup.
9759         (vn_unary_op_insert, vn_binary_op_insert): Replace with
9760         vn_nary_op_insert.
9761         (visit_unary_op): Call nary functions.
9762         (visit_binary_op): Likewise.
9763         (process_scc): Adjust for struct vn_tables_s changes.
9764         (allocate_vn_table): Likewise.
9765         (free_vn_table): Likewise.
9766         * tree-vn.c (vn_add): Call nary functions.
9767         (vn_lookup): Likewise.
9768
9769 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
9770
9771         PR target/35498
9772         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
9773         wdst back after sync_compare_and_swapqhi_internal.
9774
9775 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
9776
9777         PR target/22152
9778         * config/i386/i386-modes.def (V1DI): New vector mode.
9779         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
9780         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
9781         (MMXMODE248): Ditto.
9782         (MMXMODE): Add V1DI mode.
9783         (mmxvecsize): Change DI mode to V1DI mode.
9784         ("mov<mode>): Use MMXMODEI8 mode iterator.
9785         ("*mov<mode>_internal_rex64"): Ditto.
9786         ("*mov<mode>_internal"): Ditto.
9787         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
9788         ("mmx_sub<mode>3"): Ditto.
9789         ("mmx_adddi3"): Remove insn pattern.
9790         ("mmx_subdi3"): Ditto.
9791         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
9792         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
9793         ("mmx_ashl<mode>3"): Ditto.
9794         ("mmx_lshrdi3"): Remove insn pattern.
9795         ("mmx_ashldi3"): Ditto.
9796         * config/i386/i386.c (classify_argument): Handle V1DImode.
9797         (function_arg_advance_32): Ditto.
9798         (function_arg_32): Ditto.
9799         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
9800         mmx_addv1di3 insn pattern.
9801         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
9802         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
9803         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
9804         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
9805         Remove definitions of built-in functions.
9806         (V1DI_type_node): New node.
9807         (v1di_ftype_v1di_int): Ditto.
9808         (v1di_ftype_v1di_v1di): Ditto.
9809         (v2si_ftype_v2si_si): Ditto.
9810         (v4hi_ftype_v4hi_di): Remove node.
9811         (v2si_ftype_v2si_di): Ditto.
9812         (ix86_init_mmx_sse_builtins): Handle V1DImode.
9813         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
9814         Redefine builtins using def_builtin_const with *_ftype_*_int node.
9815         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
9816         Add new builtins using def_builtin_const.
9817         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
9818         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
9819         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
9820         * config/i386/mmintrin.h (__v1di): New typedef.
9821         (_mm_add_si64): Cast arguments to __v1di type.
9822         (_mm_sub_si64): Ditto.
9823         (_mm_sll_pi16): Cast __count to __v4hi type.
9824         (_mm_sll_pi32): Cast __count to __v2si type.
9825         (_mm_sll_si64): Cast arguments to __v1di type.
9826         (_mm_srl_pi16): Cast __count to __v4hi type.
9827         (_mm_srl_pi32): Cast __count to __v2si type.
9828         (_mm_srl_si64): Cast arguments to __v1di type.
9829         (_mm_sra_pi16): Cast __count to __v4hi type.
9830         (_mm_sra_pi32): Cast __count to __v2si type.
9831         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
9832         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
9833         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
9834         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
9835         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
9836         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
9837         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
9838         (_mm_srai_pi32): Use __builtin_ia32_psradi.
9839         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
9840         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9841         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9842         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
9843
9844 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
9845
9846         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
9847
9848 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
9849
9850         PR target/35373
9851         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
9852         reg+const addressing for Altivec modes.  Don't generate reg+reg
9853         addressing for TFmode or TDmode quantities.
9854
9855 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
9856
9857         * c-common.c (vector_types_convertible_p): Call langhook
9858         instead of comptypes.
9859
9860 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9861
9862         PR tree-opt/35402
9863         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
9864         integral and scalar float variables which have a
9865         NULL DECL_INITIAL.
9866
9867 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
9868
9869         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
9870         dwarf_register_span hook when emitting unwind information for
9871         register-to-memory saves.
9872         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
9873         (rs6000_frame_related): Remove call to spe_synthesize_frame.
9874
9875 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
9876
9877         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
9878         for the same VAR_DECL.
9879
9880 2008-03-06  Tom Tromey  <tromey@redhat.com>
9881
9882         * treelang: Delete.
9883         * doc/standards.texi (Standards): Don't mention treelang.
9884         * doc/invoke.texi (Overall Options): Don't mention treelang.
9885         * doc/install.texi (Prerequisites): Don't mention bison or
9886         treelang.
9887         (Configuration): Don't mention treelang.
9888         (Building): Likewise.
9889         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
9890
9891 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
9892
9893         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
9894         word-extractions out of a multi-word object.
9895
9896 2008-03-06  Richard Guenther  <rguenther@suse.de>
9897
9898         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
9899         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
9900         result type and precision.
9901         * expr.c (get_inner_reference): Set unsignedp based on the result
9902         type of BIT_FIELD_REF.
9903         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
9904         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
9905         (try_instantiate_multiple_fields): Likewise.  Use the correct type
9906         for BIT_FIELD_REF.
9907         (sra_build_assignment): Likewise.
9908         (sra_build_elt_assignment): Likewise.
9909         (sra_explode_bitfield_assignment): Likewise.
9910         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
9911         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
9912         set BIT_FIELD_REF_UNSIGNED.
9913         (vectorizable_load): Likewise.
9914
9915 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
9916
9917         * cse.c (cse_extended_basic_block): Invalidate artificial defs
9918         at bb start.
9919
9920 2008-03-06  Richard Guenther  <rguenther@suse.de>
9921
9922         * alias.c (struct alias_set_entry): Move has_zero_child field
9923         to pack with alias_set.
9924
9925 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
9926
9927         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9928         32bit host.
9929
9930 2008-03-05  Ian Lance Taylor  <iant@google.com>
9931
9932         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
9933
9934 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
9935
9936         * fwprop.c (update_df): Support width and offset parameters of
9937         df_ref_create.
9938         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
9939         global_conflicts): Change DF_REF_EXTRACT to either
9940         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9941         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9942         * df-scan.c (df_ref_record, df_defs_record,
9943         df_ref_create_structure, df_def_record_1, df_uses_record,
9944         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
9945         df_bb_refs_collect, df_entry_block_defs_collect,
9946         df_exit_block_uses_collect): Support new width and offset fields.
9947         (ref_extract_pool): New storage pool.
9948         (df_free_ref): New function.
9949         (df_reg_chain_unlink, df_free_collection_rec,
9950         df_sort_and_compress_refs): Call df_free_ref.
9951         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
9952         of df_ref_extract.
9953         (df_ref_create_structure): Allocate df_ref_extract if offset and
9954         width fields are used.
9955         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
9956         (df_uses_record): Get offset and width from ZERO_EXTRACT 
9957         and SIGN_EXTRACT.
9958         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
9959         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9960         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9961         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
9962         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9963         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9964         (df_ref_extract): New structure.
9965         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
9966         (df_ref_create): Add width and offset parameters.
9967         
9968 2008-03-05  Richard Guenther  <rguenther@suse.de>
9969
9970         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9971         Use ranges_overlap_p.
9972         (offset_overlaps_with_access): Rename
9973         to ranges_overlap_p and move ...
9974         * tree-flow-inline.h (ranges_overlap_p): ... here.
9975
9976         * tree.h (get_inner_reference, handled_component_p): Update
9977         comments.
9978
9979         * tree.h (record_component_aliases, get_alias_set,
9980         alias_sets_conflict_p, alias_sets_must_conflict_p,
9981         objects_must_conflict_p): Move declarations ...
9982         * alias.h (record_component_aliases, get_alias_set,
9983         alias_sets_conflict_p, alias_sets_must_conflict_p,
9984         objects_must_conflict_p): ... here.
9985         Include coretypes.h.
9986         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
9987
9988 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
9989
9990         * cfg.c: Include tree-flow.h.
9991         (remove_edge_raw): Call redirect_edge_var_map_clear.
9992         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
9993         * tree-flow-inline.h (redirect_edge_var_map_def): New.
9994         (redirect_edge_var_map_result): New.
9995         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
9996         PENDING_STMT use with redirect_edge_var_map_*.
9997         * tree-ssa.c (edge_var_maps): New definition.
9998         (redirect_edge_var_map_add): New.
9999         (redirect_edge_var_map_clear): New.
10000         (redirect_edge_var_map_dup): New.
10001         (redirect_edge_var_map_vector): New.
10002         (redirect_edge_var_map_destroy): New.
10003         (ssa_redirect_edge): Replace PENDING_STMT use with
10004         redirect_edge_var_map_*.
10005         (flush_pending_stmts): Same.
10006         (delete_tree_ssa): Destroy edge var map.
10007         * tree-flow.h (struct _edge_var_map): New.
10008         Define edge_var_map vector type.
10009         Declare redirect_edge_var_map_* prototypes.
10010         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
10011         * tree-cfg.c (reinstall_phi_args): Replace
10012         PENDING_STMT use with redirect_edge_var_map_*.
10013
10014 2008-03-05  Richard Guenther  <rguenther@suse.de>
10015
10016         PR tree-optimization/35472
10017         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
10018         whose single use_stmt has a overlapping set of loaded and
10019         stored symbols as that use_stmt might be a noop assignment then.
10020
10021 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
10022
10023         * gthr-rtems.h: Implement __gthread_mutex_destroy.
10024
10025 2008-03-05  Richard Guenther  <rguenther@suse.de>
10026
10027         PR c++/35336
10028         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
10029         should be constants.
10030         * tree-cfg.c (verify_expr): Verify it.
10031         * fold-const.c (fold_truthop): Remove code generating
10032         BIT_FIELD_REFs of structure bases.
10033         (fold_binary): Likewise.
10034         (fold_ternary): Position and size of BIT_FIELD_REFs are
10035         always host integers.
10036         (make_bit_field_ref): Remove.
10037         (optimize_bit_field_compare): Remove.
10038         (all_ones_mask_p): Remove.
10039
10040 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
10041
10042         PR gcc/33009
10043         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
10044         (split_block_and_df_analyze): New. Split basic block and rebuild
10045         dataflow.
10046         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
10047         SPLIT_BLOCK.
10048         (split_pattern_seq): Likewise.
10049         (erase_matching_seqs): Likewise.
10050         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
10051
10052 2008-03-04  Geoff Keating  <geoffk@apple.com>
10053
10054         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
10055         declaration and code.
10056         (tree_invalid_nonnegative_warnv_p): Likewise.
10057
10058 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
10059
10060         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
10061         examples.  Truncate option-names then causing overfull hbox.
10062
10063 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10064
10065         PR target/35222
10066         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
10067         on hpux10.
10068         * configure: Rebuilt.
10069
10070 2008-03-04  Rafael Espindola  <espindola@google.com>
10071
10072         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
10073         (tree_unary_nonnegative_warnv_p): New.
10074         (tree_binary_nonnegative_warnv_p): New.
10075         (tree_single_nonnegative_warnv_p): New.
10076         (tree_invalid_nonnegative_warnv_p): New.
10077         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
10078
10079 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10080
10081         PR 28322
10082         * opts.c (handle_option): Postpone 'unknown option' errors only for
10083         warning options.
10084
10085 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
10086
10087         PR target/35453
10088         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
10089         (_SIDD_XXX): This.
10090
10091 2008-03-04  Rafael Espindola  <espindola@google.com>
10092
10093         * fold-const.c (tree_unary_nonzero_warnv_p): New.
10094         (tree_binary_nonzero_warnv_p): New.
10095         (tree_single_nonzero_warnv_p): New.
10096         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
10097
10098 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
10099
10100         PR middle-end/35456
10101         * fold-const.c (fold_cond_expr_with_comparison): Prevent
10102         transformations for modes that have signed zeros.
10103         * ifcvt.c (noce_try_abs): Ditto.
10104
10105 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
10106
10107         * config/i386/i386.c (override_options): Force
10108         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
10109
10110 2008-03-04  Jan Hubicka  <jh@suse.cz>
10111
10112         PR c++/35262
10113         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
10114         in last commit.
10115
10116 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10117
10118         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
10119         label to probe the stack.
10120
10121 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10122
10123         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
10124         (__gthr_win32_mutex_destroy): Declare.
10125         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
10126         __gthr_win32_mutex_destroy.
10127         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
10128
10129 2008-03-03  Jan Hubicka  <jh@suse.cz>
10130
10131         PR c++/35262
10132         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
10133         aggressive on inlining cold calls.
10134
10135 2008-03-03  Richard Guenther  <rguenther@suse.de>
10136
10137         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
10138         struct copies into the expression table.
10139         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
10140         (try_to_simplify): Likewise.
10141         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
10142         integral and pointer arguments which do not change the
10143         precision to NOP_EXPRs.
10144         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
10145         VIEW_CONVERT_EXPR case.
10146
10147 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
10148
10149         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
10150         defined in a loop at depth 0 is invariant.
10151         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
10152         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
10153         be called at loop depth 0.
10154
10155 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
10156
10157         PR driver/35420
10158         * gcc.c (process_command): Update copyright notice dates.
10159         * gcov.c (print_version): Likewise.
10160         * gcov-dump.c (print_version): Likewise.
10161         * mips-tfile.c (main): Likewise.
10162         * mips-tdump.c (main): Likewise.
10163
10164 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10165
10166         PR 24924
10167         * c-common.c (flag_permissive): Delete.
10168         (constant_expression_warnings): Check flags first.
10169         (constant_expression_error): New.
10170         * c-common.h (flag_permissive): Delete.
10171         (constant_expression_error): Declare.
10172         * flags.h (flag_permissive): Declare. Update description.
10173         * diagnostic.c (pedwarn): Update.
10174         (permerror): New.
10175         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
10176         (permissive_error_kind): New.
10177         * toplev.c (flag_permissive): Define. Update description.
10178         * toplev.h (permissive_error_kind): Declare.
10179         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
10180         (pedwarn_c90): Use pedantic_warning_kind.
10181         * c-opts.c (c_common_post_options): flag_permissive does not affect
10182         flag_pedantic_errors.
10183
10184 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
10185
10186         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
10187         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
10188         __absvsi2, __absvDI2): Use unsigned arithmetic.
10189
10190 2008-03-02  Andi Kleen  <ak@suse.de>
10191             Richard Guenther  <rguenther@suse.de>
10192
10193         * struct-equiv.c: Remove file.
10194         * cfg_cleanup.c (condjump_equiv_p): Remove.
10195         * Makefile.in (OBJS-common): Remove struct-equiv.o.
10196         (struct-equiv.o): Remove rule.
10197         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
10198         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
10199         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
10200
10201 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10202
10203         * ifcvt.c (noce_process_if_block): Try to handle only the then
10204         block if the else block exists but isn't suitable.
10205
10206 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
10207
10208         PR gcc/35063
10209         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
10210         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
10211         regression from previous patch.
10212
10213 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
10214
10215         PR gcc/35063
10216         * gthr.h: Add __gthread_mutex_destroy as a function that must be
10217         implemented.
10218         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
10219         * gthr-single.h (__gthread_mutex_destroy): Likewise.
10220         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
10221         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
10222         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
10223         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
10224         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
10225         (__gthread_mutex_destroy_function): Rename to
10226         __gthread_mutex_destroy.
10227         * gthr-dce.h (__gthread_mutex_destroy): Call
10228         pthread_mutex_destroy.
10229         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
10230         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
10231         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
10232
10233 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10234
10235         * df-scan.c (df_ref_chain_change_bb): Simplify.
10236         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
10237         set_block_for_insn if there's any change.
10238         * df.h ((df_insn_change_bb): Fix prototype.
10239         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
10240         df_insn_change_bb, don't call set_block_for_insn.
10241         * emit-rtl.c (reorder_insns): Likewise.
10242         * haifa-sched.c (move_insn): Likewise.
10243
10244 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10245
10246         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
10247
10248 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10249
10250         * tree-flow-inline.h (next_readonly_imm_use): Return
10251         NULL_USE_OPERAND_P after the end.
10252
10253 2008-03-01  Richard Guenther  <rguenther@suse.de>
10254
10255         PR tree-optimization/35411
10256         * tree-sra.c (sra_build_assignment): Split conversion to
10257         final type to a separate statement if we are not assigning
10258         to a register.
10259
10260 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10261
10262         * fold-const.c (fold_convertible_p): Correct the logic to follow
10263         that in fold_convert().
10264
10265 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
10266
10267         PR c++/35315
10268         * tree-inline.c (build_duplicate_type): When we make a
10269         duplicate type, make it unique in the canonical types system.
10270
10271 2008-02-29  Tom Tromey  <tromey@redhat.com>
10272
10273         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
10274         input_file_stack_history, input_file_stack_restored): Remove.
10275         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10276         * input.h (struct file_stack): Remove.
10277         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10278         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
10279         Likewise.
10280         * diagnostic.h (struct diagnostic_context) <last_module>: Change
10281         type.
10282         (diagnostic_last_module_changed): Add 'map' argument.
10283         (diagnostic_set_last_function): Likewise.
10284         * diagnostic.c (undiagnostic_report_current_module): Iterate using
10285         line map, not input_file_stack.
10286         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
10287
10288 2008-02-29  Paul Brook  <paul@codesourcery.com>
10289
10290         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
10291
10292 2008-02-29  Paul Brook  <paul@codesourcery.com>
10293
10294         * config/arm/ieee754-df.S (muldf3): Use RET macros.
10295
10296 2008-02-29  Richard Guenther  <rguenther@suse.de>
10297
10298         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
10299         vn_lookup_or_add.
10300         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
10301         value for comparing for a store match.
10302         (simplify_unary_expression): Do nothing for SSA_NAMEs.
10303         (try_to_simplify): Do not do a full-blown reference lookup.
10304
10305 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10306
10307         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
10308         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
10309
10310         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
10311
10312 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
10313
10314         * tree-loop-linear.c (try_interchange_loops): Compare memory access
10315         strides against cache sizes.
10316
10317 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10318
10319         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
10320         constant to fpul.
10321
10322 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
10323
10324         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
10325         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
10326         is smaller than the original promoted value.
10327         (simplify_subreg): If OP is a SUBREG, try to preserve its
10328         SUBREG_PROMOTED_VAR_P information.
10329
10330 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
10331
10332         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
10333         (VN_INFO_GET): Allocate new objects on the obstack.
10334         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
10335         for rpo_numbers_temp, for consistency.
10336         (free_scc_vn): Free the obstack.
10337
10338 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
10339
10340         * doc/invoke.texi: Document -ftree-loop-distribution.
10341         * tree-loop-distribution.c: New.
10342         * tree-pass.h (pass_loop_distribution): New.
10343         * graphds.h (struct graph): Add htab_t indices.
10344         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
10345         * tree-vectorizer.c (rename_variables_in_loop): Extern.
10346         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
10347         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
10348         * tree-data-ref.c (debug_data_dependence_relations): New.
10349         (dump_data_dependence_relation): Also print data references.
10350         (free_data_ref): Extern.
10351         (same_access_functions): Moved...
10352         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
10353         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10354         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
10355         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
10356         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
10357         (stmts_from_loop): Skip LABEL_EXPR.
10358         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
10359         New.
10360         (build_rdg): Initialize rdg->indices htab.
10361         (free_rdg, stores_from_loop, ref_base_address,
10362         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
10363         have_similar_memory_accesses_1, ref_base_address_1,
10364         remove_similar_memory_refs): New.
10365         * tree-data-ref.h: Depend on tree-chrec.h.
10366         (debug_data_dependence_relations, free_data_ref): Declared.
10367         (same_access_functions): ... here.
10368         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
10369         New.
10370         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
10371         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
10372         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
10373         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10374         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
10375         rdg_vertex_for_stmt): Declared.
10376         (struct rdg_edge): Add level.
10377         (RDGE_LEVEL): New.
10378         (free_rdg, stores_from_loop, remove_similar_memory_refs,
10379         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
10380         Declared.
10381         (rdg_has_similar_memory_accesses): New.
10382         * tree-vect-analyze.c: Remove unused static decls.
10383         * lambda.h (dependence_level): New.
10384         * common.opt (ftree-loop-distribution): New.
10385         * tree-flow.h (mark_virtual_ops_in_bb, 
10386         slpeel_tree_duplicate_loop_to_edge_cfg,
10387         rename_variables_in_loop): Declared.
10388         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
10389         (OBJS-common): Add tree-loop-distribution.o.
10390         (tree-loop-distribution.o): New rule.
10391         * tree-cfg.c (mark_virtual_ops_in_bb): New.
10392         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
10393         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
10394
10395 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
10396
10397         PR target/33963
10398         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
10399         other than structures and unions.
10400
10401 2008-02-28  Richard Guenther  <rguenther@suse.de>
10402
10403         Revert:
10404         2008-02-26  Richard Guenther  <rguenther@suse.de>
10405
10406         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10407         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10408         (lookup_decl_from_uid): Declare.
10409         (remove_decl_from_map): Likewise.
10410         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10411         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10412         (decl_for_uid_map): New global hashtable mapping DECL_UID
10413         to the decl tree.
10414         (init_ttree): Allocate it.
10415         (insert_decl_to_uid_decl_map): New helper function.
10416         (make_node_stat): Insert new decls into the map.
10417         (copy_node_stat): Likewise.
10418         (lookup_decl_from_uid): New function.
10419         (remove_decl_from_map): Likewise.
10420         (print_decl_for_uid_map_statistics): New helper.
10421         (dump_tree_statistics): Call it.
10422
10423         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10424         (referenced_var_iterator): Adjust.
10425         (FOR_EACH_REFERENCED_VAR): Adjust.
10426         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10427         (num_referenced_vars): Adjust.
10428         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10429         (first_referenced_var): Remove.
10430         (end_referenced_vars_p): Likewise.
10431         (next_referenced_var): Likewise.
10432         (referenced_var_iterator_set): New helper function.
10433         * tree-dfa.c (referenced_var_lookup): Adjust.
10434         (referenced_var_check_and_insert): Likewise.
10435         (remove_referenced_var): Likewise.
10436         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10437         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10438         (verify_call_clobbering): Likewise.
10439         (verify_memory_partitions): Likewise.
10440         (init_tree_ssa): Allocate bitmap instead of hashtable for
10441         referenced_vars.
10442         (delete_tree_ssa): Adjust.
10443         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10444         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10445         (compute_tag_properties): Likewise.
10446         (set_initial_properties): Likewise.
10447         (find_partition_for): Likewise.
10448         (update_reference_counts): Likewise.
10449         (dump_may_aliases_for): Likewise.
10450         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10451         (add_call_clobber_ops): Likewise.
10452         (add_call_read_ops): Likewise.
10453         (get_asm_expr_operands): Likewise.
10454         * tree-into-ssa.c (dump_decl_set): Likewise.
10455         (update_ssa): Likewise.
10456         * tree-sra.c (scan_function): Likewise.
10457         (decide_instantiations): Likewise.
10458         (scalarize_parms): Likewise.
10459         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10460         (dsa_named_for): Likewise.
10461         * tree-ssa-structalias.c (update_alias_info): Likewise.
10462         (merge_smts_into): Likewise.
10463
10464 2008-02-27  David Daney  <ddaney@avtrex.com>
10465
10466         PR target/34409
10467         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
10468         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
10469         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
10470         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
10471         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
10472
10473 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
10474
10475         PR target/25477
10476         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
10477         (BUILT_IN_NEXTTOWARD): Remove.
10478         (BUILT_IN_NEXTTOWARDF): Ditto.
10479         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
10480         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
10481
10482 2008-02-27  Tom Tromey  <tromey@redhat.com>
10483
10484         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
10485         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
10486
10487 2008-02-27  Jan Beulich  <jbeulich@novell.com>
10488
10489         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
10490         update the respective field on newdecl.
10491
10492 2008-02-27  Revital Eres  <eres@il.ibm.com>
10493
10494         PR rtl-optimization/34999
10495         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
10496         crossing edges that ends with a call insn.
10497         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
10498         call insn and clear the EDGE_CROSSING flag of the crossing edge
10499         when fixing fallthru edges.
10500
10501 2008-02-27  Richard Guenther  <rguenther@suse.de>
10502
10503         PR middle-end/35390
10504         * fold-const.c (fold_unary): Return the correct argument,
10505         converted to the result type.
10506
10507 2008-02-27  Richard Guenther  <rguenther@suse.de>
10508
10509         PR middle-end/34971
10510         * expr.c (expand_expr_real_1): Assert on rotates that operate
10511         on partial modes.
10512         * fold-const.c (fold_binary): Use the types precision, not the
10513         bitsize of the mode if folding rotate expressions.  Build rotates
10514         only for full modes.
10515
10516 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
10517
10518         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
10519         and CPP_PRAGMA_EOL.
10520         * c-pragma.c (pragma_ns_name): New typedef.
10521         (registered_pp_pragmas): New variable.
10522         (c_pp_lookup_pragma): New function.
10523         (c_register_pragma_1): If flag_preprocess_only, do nothing
10524         for non-expanded pragmas, for expanded ones push pragma's
10525         namespace and name into registered_pp_pragmas vector.
10526         (c_invoke_pragma_handler): Register OpenMP pragmas even when
10527         flag_preprocess_only, don't register GCC pch_preprocess
10528         pragma if flag_preprocess_only.
10529         * c-opts.c (c_common_init): Call init_pragma even if
10530         flag_preprocess_only.
10531         * c-pragma.c (c_pp_lookup_pragma): New prototype.
10532         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
10533         cpp_register_pragma if flag_preprocess_only.
10534
10535 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10536
10537         PR c/28800
10538         * c-parser.c (c_parser_translation_unit): Warn for empty
10539         translation unit, not empty source file.
10540
10541 2008-02-26  Paul Brook  <paul@codesourcery.com>
10542
10543         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
10544         operand for Thumb-2.
10545         * config/arm/arm.h (reg_class): Add CORE_REGS.
10546         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
10547         (BASE_REG_CLASS): Use CORE_REGS.
10548         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
10549         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
10550         (REGNO_OK_FOR_INDEX_P): Exclude SP.
10551         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
10552         ARM_REGNO_OK_FOR_INDEX_P.
10553         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
10554         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
10555         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
10556         (ldm/stm peepholes): Ditto.
10557         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
10558         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
10559         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
10560         * config/arm/constraints.md: Enable "k" constraint on ARM.
10561
10562 2008-02-27  Ben Elliston  <bje@au.ibm.com>
10563
10564         * config/rs6000/rs6000.c: Annotate cache line size field in all
10565         instances of struct processor_costs.
10566
10567 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
10568
10569         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
10570         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
10571         jump_bypass): New counters.
10572         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
10573         * dce.c (gate_ud_dce): Same.
10574         (gate_fast_dce): Same.
10575         * dse.c (gate_dse1): New function.
10576         (gate_dse2): New function.
10577         (gate_dse): Merge results of new gate functions.
10578         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
10579         (gate_handle_jump_bypass): Add dbg_cnt.
10580         (gate_handle_gcse): Add dbg_cnt.
10581         * ifcvt.c (gate_handle_if_conversion): Same.
10582         (gate_handle_if_after_combine): Same.
10583         (gate_handle_if_after_reload): Same.
10584         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
10585
10586 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
10587
10588         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
10589         line sizes.
10590         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
10591
10592 2008-02-26  Jason Merrill  <jason@redhat.com>
10593
10594         PR c++/35315
10595         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
10596         alone if it's the naming decl for the type's main variant.
10597
10598 2008-02-26  Tom Tromey  <tromey@redhat.com>
10599
10600         * system.h (USE_MAPPED_LOCATION): Poison.
10601         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
10602         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
10603         (make_goto_expr_edges): Likewise.
10604         (remove_bb): Likewise.
10605         (execute_warn_function_return): Likewise.
10606         * basic-block.h (struct edge_def) <goto_locus>: Change type to
10607         location_t.
10608         * c-common.c (fname_decl): Remove old location code.
10609         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
10610         location code.
10611         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
10612         variant.
10613         (ASM_INPUT_SOURCE_LOCATION): Likewise.
10614         (gen_rtx_ASM_INPUT): Likewise.
10615         (gen_rtx_ASM_INPUT_loc): Likewise.
10616         (get_rtx_asm_OPERANDS): Remove.
10617         * cfglayout.c (insn_locators_alloc): Remove old location code.
10618         (set_curr_insn_source_location): Likewise.
10619         (curr_insn_locator): Likewise.
10620         * print-tree.c (print_node): Remove old location code.
10621         * tree-mudflap.c (mf_varname_tree): Remove old location code.
10622         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
10623         * cfgexpand.c (expand_gimple_cond_expr): Don't use
10624         location_from_locus.
10625         (construct_exit_block): Remove old location code.
10626         * emit-rtl.c (force_next_line_note): Remove old location code.
10627         * profile.c (branch_prob): Remove old location code.
10628         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
10629         LOC_LINE): Remove old-location variants.
10630         * langhooks.c (lhd_print_error_function): Remove old location
10631         code.
10632         * configure, config.in: Rebuilt.
10633         * configure.ac (--enable-mapped-location): Remove.
10634         * c-decl.c (c_init_decl_processing): Remove old location code.
10635         (finish_function): Likewise.
10636         * recog.c (decode_asm_operands): Remove old location code.
10637         * c-pch.c (c_common_read_pch): Remove old location code.
10638         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
10639         variants.
10640         * gimple-low.c (lower_function_body): Remove old location code.
10641         * toplev.c (unknown_location): Remove.
10642         (push_srcloc): Remove old-location variant.
10643         (process_options): Remove old location code.
10644         (lang_dependent_init): Likewise.
10645         * input.h (UNKNOWN_LOCATION): Move definition.
10646         (location_t): Undeprecate.
10647         (source_locus): Remove.
10648         (location_from_locus): Remove.
10649         (struct location_s): Remove.
10650         Remove all old-location code.
10651         (input_line, input_filename): Remove.
10652         * final.c (final_scan_insn): Remove old location code.
10653         * diagnostic.c (diagnostic_build_prefix): Remove
10654         USE_MAPPED_LOCATION test.
10655         * tree.h (gimple_stmt) <locus>: Now a location_t.
10656         (tree_exp) <locus>: Likewise.
10657         (DECL_IS_BUILTIN): Remove old-location variant.
10658         (annotate_with_file_line, annotate_with_locus): Likewise.
10659         (expr_locus, set_expr_locus): Update.
10660         * tree.c (build1_stat): Remove old location code.
10661         (last_annotated_node): Remove.
10662         (annotate_with_file_line): Remove old-location variant.
10663         (annotate_with_locus): Likewise.
10664         (expr_location): Remove old location code.
10665         (set_expr_location): Likewise.
10666         (expr_has_location): Likewise.
10667         (expr_locus): Likewise.
10668         (set_expr_locus): Likewise.
10669         (expr_filename): Don't use location_from_locus.
10670         (expr_lineno): Likewise.
10671         * rtl-error.c (location_for_asm): Remove old location code.
10672         * c-lex.c (cb_line_change): Remove old location code.
10673         (fe_file_change): Likewise.
10674         (cb_def_pragma): Likewise.
10675         (c_lex_with_flags): Likewise.
10676         * gengtype.c (do_typedef): Don't special-case location types.
10677         (define_location_structures): Remove.
10678         (main): Don't call define_location_structures.
10679         * tree-pretty-print.c (dump_implicit_edges): Remove old location
10680         code.
10681
10682 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10683
10684         PR 26264
10685         * builtins.def (BUILT_IN_STDARG_START): Remove.
10686         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
10687         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10688         * tree-inline.c (inline_forbidden_p_1): Likewise.
10689         
10690 2008-02-26  Richard Guenther  <rguenther@suse.de>
10691
10692         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10693         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10694         (lookup_decl_from_uid): Declare.
10695         (remove_decl_from_map): Likewise.
10696         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10697         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10698         (decl_for_uid_map): New global hashtable mapping DECL_UID
10699         to the decl tree.
10700         (init_ttree): Allocate it.
10701         (insert_decl_to_uid_decl_map): New helper function.
10702         (make_node_stat): Insert new decls into the map.
10703         (copy_node_stat): Likewise.
10704         (lookup_decl_from_uid): New function.
10705         (remove_decl_from_map): Likewise.
10706         (print_decl_for_uid_map_statistics): New helper.
10707         (dump_tree_statistics): Call it.
10708
10709         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10710         (referenced_var_iterator): Adjust.
10711         (FOR_EACH_REFERENCED_VAR): Adjust.
10712         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10713         (num_referenced_vars): Adjust.
10714         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10715         (first_referenced_var): Remove.
10716         (end_referenced_vars_p): Likewise.
10717         (next_referenced_var): Likewise.
10718         (referenced_var_iterator_set): New helper function.
10719         * tree-dfa.c (referenced_var_lookup): Adjust.
10720         (referenced_var_check_and_insert): Likewise.
10721         (remove_referenced_var): Likewise.
10722         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10723         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10724         (verify_call_clobbering): Likewise.
10725         (verify_memory_partitions): Likewise.
10726         (init_tree_ssa): Allocate bitmap instead of hashtable for
10727         referenced_vars.
10728         (delete_tree_ssa): Adjust.
10729         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10730         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10731         (compute_tag_properties): Likewise.
10732         (set_initial_properties): Likewise.
10733         (find_partition_for): Likewise.
10734         (update_reference_counts): Likewise.
10735         (dump_may_aliases_for): Likewise.
10736         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10737         (add_call_clobber_ops): Likewise.
10738         (add_call_read_ops): Likewise.
10739         (get_asm_expr_operands): Likewise.
10740         * tree-into-ssa.c (dump_decl_set): Likewise.
10741         (update_ssa): Likewise.
10742         * tree-sra.c (scan_function): Likewise.
10743         (decide_instantiations): Likewise.
10744         (scalarize_parms): Likewise.
10745         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10746         (dsa_named_for): Likewise.
10747         * tree-ssa-structalias.c (update_alias_info): Likewise.
10748         (merge_smts_into): Likewise.
10749
10750 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10751
10752         PR 34351
10753         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
10754         * c-opts.c (c_common_handle_option): Wall enables
10755         Wvolatile-register-var.
10756         * common.opt: Move Wvolatile-register-var to...
10757         * c.opt: ...here.
10758         
10759 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10760
10761         * common.opt (Wlarger-than=): New.
10762         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
10763         -Wlarger-than=.
10764         * opts.c (common_handle_option): Handle -Wlarger-than=.
10765         * optc-gen.awk: Likewise.
10766         * opth-gen.awk: Likewise.
10767         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
10768         * tree-optimize.c (tree_rest_of_compilation): Likewise.
10769         
10770 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10771
10772         * c-common.c (match_case_to_enum_1): Add appropriate
10773         OPT_W* parameter to warning.
10774         (c_do_switch_warnings): Likewise.
10775         * c-typeck.c (warning_init): Add one more parameter following
10776         'warning' function.
10777         (push_init_level): Update call to warning_init.
10778         (pop_init_level): Likewise.
10779         (add_pending_init): Likewise.
10780         (output_init_element: Likewise.
10781
10782 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10783
10784         PR 28322
10785         * toplev.c (toplev_main): If there are warnings or error, print
10786         errors for ignored options.
10787         * opts.c (ignored_options): New static variable.
10788         (postpone_unknown_option_error): New.
10789         (print_ignored_options): New.
10790         (handle_option): Postpone errors for unknown -Wno-* options.
10791         * opts.h (print_ignored_options): Declare.
10792         
10793 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
10794
10795         * config/mips/mips.md (loadgp_blockage, blockage): Change type
10796         to "ghost".
10797
10798 2008-02-25  Richard Guenther  <rguenther@suse.de>
10799
10800         Revert:
10801         2008-02-25  Richard Guenther  <rguenther@suse.de>
10802
10803         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10804         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10805         (lookup_decl_from_uid): Declare.
10806         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10807         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10808         (decl_for_uid_map): New global hashtable mapping DECL_UID
10809         to the decl tree.
10810         (init_ttree): Allocate it.
10811         (insert_decl_to_uid_decl_map): New helper function.
10812         (make_node_stat): Insert new decls into the map.
10813         (copy_node_stat): Likewise.
10814         (lookup_decl_from_uid): New function.
10815         (print_decl_for_uid_map_statistics): New helper.
10816         (dump_tree_statistics): Call it.
10817
10818         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10819         (referenced_var_iterator): Adjust.
10820         (FOR_EACH_REFERENCED_VAR): Adjust.
10821         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10822         (num_referenced_vars): Adjust.
10823         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10824         (first_referenced_var): Remove.
10825         (end_referenced_vars_p): Likewise.
10826         (next_referenced_var): Likewise.
10827         (referenced_var_iterator_set): New helper function.
10828         * tree-dfa.c (referenced_var_lookup): Adjust.
10829         (referenced_var_check_and_insert): Likewise.
10830         (remove_referenced_var): Likewise.
10831         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10832         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10833         (verify_call_clobbering): Likewise.
10834         (verify_memory_partitions): Likewise.
10835         (init_tree_ssa): Allocate bitmap instead of hashtable for
10836         referenced_vars.
10837         (delete_tree_ssa): Adjust.
10838         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10839         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10840         (compute_tag_properties): Likewise.
10841         (set_initial_properties): Likewise.
10842         (find_partition_for): Likewise.
10843         (update_reference_counts): Likewise.
10844         (dump_may_aliases_for): Likewise.
10845         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10846         (add_call_clobber_ops): Likewise.
10847         (add_call_read_ops): Likewise.
10848         (get_asm_expr_operands): Likewise.
10849         * tree-into-ssa.c (dump_decl_set): Likewise.
10850         (update_ssa): Likewise.
10851         * tree-sra.c (scan_function): Likewise.
10852         (decide_instantiations): Likewise.
10853         (scalarize_parms): Likewise.
10854         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10855         (dsa_named_for): Likewise.
10856         * tree-ssa-structalias.c (update_alias_info): Likewise.
10857         (merge_smts_into): Likewise.
10858
10859 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
10860
10861         PR fortran/29549
10862         * doc/invoke.texi (-fcx-limited-range): Document new option.
10863         * toplev.c (process_options): Handle -fcx-fortran-rules.
10864         * common.opt: Add documentation for -fcx-fortran-rules.
10865
10866 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
10867
10868         PR c/35162
10869         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
10870         actual behaviour and C99.
10871         
10872 2008-02-26  Ben Elliston  <bje@au.ibm.com>
10873
10874         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
10875         (ASM_CPU_POWER6_SPEC): Likewise.
10876         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
10877         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
10878         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
10879
10880 2008-02-25  Richard Guenther  <rguenther@suse.de>
10881
10882         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10883         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10884         (lookup_decl_from_uid): Declare.
10885         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10886         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10887         (decl_for_uid_map): New global hashtable mapping DECL_UID
10888         to the decl tree.
10889         (init_ttree): Allocate it.
10890         (insert_decl_to_uid_decl_map): New helper function.
10891         (make_node_stat): Insert new decls into the map.
10892         (copy_node_stat): Likewise.
10893         (lookup_decl_from_uid): New function.
10894         (print_decl_for_uid_map_statistics): New helper.
10895         (dump_tree_statistics): Call it.
10896
10897         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10898         (referenced_var_iterator): Adjust.
10899         (FOR_EACH_REFERENCED_VAR): Adjust.
10900         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10901         (num_referenced_vars): Adjust.
10902         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10903         (first_referenced_var): Remove.
10904         (end_referenced_vars_p): Likewise.
10905         (next_referenced_var): Likewise.
10906         (referenced_var_iterator_set): New helper function.
10907         * tree-dfa.c (referenced_var_lookup): Adjust.
10908         (referenced_var_check_and_insert): Likewise.
10909         (remove_referenced_var): Likewise.
10910         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10911         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10912         (verify_call_clobbering): Likewise.
10913         (verify_memory_partitions): Likewise.
10914         (init_tree_ssa): Allocate bitmap instead of hashtable for
10915         referenced_vars.
10916         (delete_tree_ssa): Adjust.
10917         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10918         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10919         (compute_tag_properties): Likewise.
10920         (set_initial_properties): Likewise.
10921         (find_partition_for): Likewise.
10922         (update_reference_counts): Likewise.
10923         (dump_may_aliases_for): Likewise.
10924         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10925         (add_call_clobber_ops): Likewise.
10926         (add_call_read_ops): Likewise.
10927         (get_asm_expr_operands): Likewise.
10928         * tree-into-ssa.c (dump_decl_set): Likewise.
10929         (update_ssa): Likewise.
10930         * tree-sra.c (scan_function): Likewise.
10931         (decide_instantiations): Likewise.
10932         (scalarize_parms): Likewise.
10933         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10934         (dsa_named_for): Likewise.
10935         * tree-ssa-structalias.c (update_alias_info): Likewise.
10936         (merge_smts_into): Likewise.
10937
10938 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
10939
10940         PR target/35258
10941         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
10942         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
10943         * alias.h (nonoverlapping_memrefs_p): Likewise.
10944
10945 2008-02-25  Jan Beulich  <jbeulich@novell.com>
10946
10947         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
10948         * config/i386/netware-libgcc.exp: Add __bswap?i2,
10949         __emultls_get_address, __emultls_register_common,
10950         __floatundi?f, and _Unwind_GetIPInfo.
10951         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
10952         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
10953         (gen_regparm_prefix): Likewise.
10954         (i386_nlm_encode_section_info): Sync with
10955         config/i386/winnt.c:i386_pe_encode_section_info().
10956         (i386_nlm_maybe_mangle_decl_assembler_name): New.
10957         i386_nlm_mangle_decl_assembler_name): New.
10958         (netware_override_options): New.
10959         * config/i386/netware.h (netware_override_options): Declare.
10960         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
10961         (i386_nlm_mangle_decl_assembler_name): Declare.
10962         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
10963
10964 2008-02-25  Ben Elliston  <bje@au.ibm.com>
10965
10966         PR other/32948
10967         * c-decl.c (grokdeclarator): Remove unused local variables
10968         `typedef_type' and `type_as_written'.
10969         * bb-reorder.c
10970         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
10971         unused local variable `has_hot_blocks'.
10972         (fix_crossing_conditional_branches): Remove unused local variable
10973         `prev_bb'.
10974         
10975 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
10976
10977         PR middle-end/19984
10978         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
10979         using DEF_C99_BUILTIN.
10980         (BUILT_IN_NANF): Ditto.
10981         (BUILT_IN_NANL): Ditto.
10982
10983 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
10984             Revital Eres  <eres@il.ibm.com>
10985
10986         * modulo-sched.c (calculate_must_precede_follow): Address TODO
10987         regarding the order of two dependent insns in the same row.
10988
10989 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
10990
10991         * stor-layout.c (layout_decl): Do not bump the alignment of a
10992         bit-field to more than byte alignment if it is packed.
10993
10994 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
10995
10996         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
10997         e300c2 and e300c3.
10998
10999 2008-02-24  Diego Novillo  <dnovillo@google.com>
11000
11001         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
11002
11003         PR 33738
11004         * tree-vrp.c (vrp_evaluate_conditional): With
11005         -Wtype-limits, emit a warning when comparing against a
11006         constant outside the natural range of OP0's type.
11007         * c.opt (Wtype-limits): Move ...
11008         * common.opt (Wtype-limits): ... here.
11009
11010 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
11011
11012         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
11013         * config/rs6000/e300c2c3.md: New file.
11014         * config/rs6000/rs6000.c (processor_costs): Add new costs for
11015         e300c2 and e300c3.
11016         (rs6000_override_options): Add e300c2 and e300c3 cases to
11017         processor_target_table. Do not allow usage of Altivec or Spe
11018         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
11019         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
11020         * config/rs6000/rs6000.h (processor_type): Add
11021         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
11022         (ASM_CPU_SPEC): Add e300c2 and e300c3.
11023         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
11024         and ppce300c3. Include e300c2c3.md.
11025
11026 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
11027
11028         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
11029         instead of TARGET_STRICT_ALIGN.
11030
11031 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
11032
11033         * explow.c (memory_address): Assert that the generated address is
11034         valid.
11035
11036 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
11037
11038         PR target/25477
11039         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
11040         * config/darwin-ppc-ldouble-patch.def: New file.
11041         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
11042         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
11043         SUBTARGET_INIT_BUILTINS if defined.
11044         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
11045         New functions.
11046
11047 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11048
11049         PR rtl-opt/33512
11050         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
11051         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
11052
11053 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11054
11055         PR pch/35027
11056         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
11057         file" warning condtional on -Winvalid-PCH.
11058
11059 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
11060
11061         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
11062
11063 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
11064
11065         PR target/22076
11066         PR target/34256 
11067         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
11068         prevent reload from using MMX registers.
11069         (*mov<mode>_internal): Ditto.
11070         (*movv2sf_internal_rex64): Ditto.
11071         (*movv2sf_internal): Ditto.
11072
11073 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11074
11075         PR documentation/31569
11076         * doc/install.texi2html: Use makeinfo --no-number-sections.
11077
11078 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11079
11080         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
11081         ensure that we can address an entire entity > 8 bytes.  Don't
11082         generate reg+reg addressing for such data.
11083
11084 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11085
11086         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
11087         strings when optimizing for size, unless the target cares about
11088         alignment.
11089
11090 2008-02-22  Tom Tromey  <tromey@redhat.com>
11091
11092         * regclass.c (current_pass): Remove declaration.
11093
11094 2008-02-22  Anatoly Sokolov <aesok@post.ru>
11095
11096         * config/avr/libgcc.S (__RAMPZ__): Define.
11097         (__do_copy_data): Add for devices with 128KB code memory.
11098
11099 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11100
11101         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
11102         Use spe_abi.
11103         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
11104
11105 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
11106
11107         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
11108         GENNONACR_REGS.
11109
11110 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11111
11112         PR c/19999
11113         * c-typeck.c (build_binary_op): Warn about floating point
11114         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
11115
11116 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
11117
11118         PR target/34526
11119         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
11120         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
11121         add vrsave.
11122         (rs6000_override_options): Set altivec_abi as default, not override,
11123         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
11124         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
11125         is used; use new member spe_abi.
11126         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
11127         spe_abi and altivec_abi.
11128
11129 2008-02-22  Tomas Bily  <tbily@suse.cz>
11130
11131         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
11132
11133 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11134
11135         PR bootstrap/35273
11136         * config.build (build_file_translate): Set to `CMD //c' only if
11137         it works.
11138         * Makefile.in (build_file_translate): Improve comment.
11139
11140 2008-02-21  Jan Hubicka  <jh@suse.cz>
11141
11142         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
11143         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
11144         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
11145
11146 2008-02-21  Michael Matz  <matz@suse.de>
11147
11148         PR target/35264
11149         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
11150
11151 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
11152
11153         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
11154         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
11155         as insn constraint.
11156         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
11157         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
11158         SSE_VEC_FLOAT_MODE_P as insn constraint.
11159         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
11160         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
11161         sse4a_movntdf using MODEF mode iterator.
11162         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
11163         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
11164         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
11165         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
11166         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
11167         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
11168         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
11169
11170 2008-02-21  Richard Guenther  <rguenther@suse.de>
11171
11172         * tree.def (PAREN_EXPR): New tree code.
11173         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
11174         and PAREN_EXPR.
11175         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
11176         * expr.c (expand_expr_real_1): Likewise.
11177         * tree-inline.c (estimate_num_insns_1): Likewise.
11178         * tree-complex.c (expand_complex_move): Likewise.
11179         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
11180         as plain x.
11181
11182 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11183
11184         PR target/35225
11185         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
11186
11187 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11188
11189         PR target/35190
11190         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
11191
11192         * config/sh/sh.c (find_barrier): Don't go past
11193         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
11194
11195 2008-02-20  DJ Delorie  <dj@redhat.com>
11196
11197         * config/h8300/h8300.md (insv): Force source operand to be a register.
11198
11199         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
11200         as a jump, not as a plain insn.
11201         
11202 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
11203
11204         * doc/invoke.texi (Warning Options): Add new option
11205         -Wframe-larger-than=.
11206         (-Wframe-larger-than): Document.
11207
11208         * flags.h (warn_frame_larger_than, frame_larger_than_size):
11209         Add declarations for new option variables.
11210
11211         * final.c (final_start_function): Check the frame size
11212         before emission and issue a Wframe-larger-than warning.
11213
11214         * opts.c (warn_frame_larger_than, frame_larger_than_size):
11215         Add definitions for new option variables.
11216         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
11217
11218         * common.opt (Wframe-larger-than=): New option.
11219
11220 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11221
11222         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
11223         (<sse>_div<mode>3): Ditto.
11224         (<sse>_vmdiv<mode>3): Ditto.
11225         (<sse>_vmsqrt<mode>2): Ditto.
11226         (*smax<mode>3): Ditto.
11227         (sse5_frcz<mode>2): Ditto.
11228         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
11229         as insn constraint.
11230
11231 2008-02-20  Richard Guenther  <rguenther@suse.de>
11232
11233         PR middle-end/35265
11234         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
11235         be happy with INTEGRAL_TYPE_P.
11236
11237 2008-02-20  Richard Guenther  <rguenther@suse.de>
11238
11239         * fold-const.c (split_tree): Associate floatig-point expressions
11240         if flag_associative_math is set.
11241
11242 2008-02-20  Richard Guenther  <rguenther@suse.de>
11243
11244         * tree.h (fold_real_zero_addition_p): Declare.
11245         * fold-const.c (fold_real_zero_addition_p): Export.
11246         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
11247         floating-point operations with zero and one.
11248
11249 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
11250
11251         * doc/install.texi: Correct references to CFLAGS, replacing them
11252         with BOOT_CFLAGS.  Document flags used during bootstrap for
11253         target libraries.
11254                                 
11255 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11256
11257         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
11258         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
11259         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
11260         insn constraint.
11261         (smin<mode>3): Ditto from similar patterns.
11262         (smax<mode>3): Ditto.
11263         (*ieee_smin<mode>3): Ditto.
11264         (*ieee_smax<mode>3): Ditto.
11265         * config/i386/sse.md (sse): New mode attribute.
11266         (mov<mode>): Macroize expander from movv4sf and movv2df using
11267         SSEMODEF2P mode iterator.
11268         (<sse>_movnt<mode>): Ditto from similar patterns. Use
11269         SSE_VEC_FLOAT_MODE_P as insn constraint.
11270         (storent<mode>): Ditto.
11271         (storent<mode>): Macroize expander from storentsf and storentdf using
11272         MODEF mode iterator.
11273         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
11274         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
11275         (abs<mode>2): Ditto from similar patterns.
11276         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
11277         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
11278         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
11279         (<sse>_vmsqrt<mode>2): Ditto.
11280         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
11281         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
11282         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
11283         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
11284         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
11285         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
11286         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
11287         insn constraint.
11288         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
11289         iterator and SSE_FLOAT_MODE_P as insn constraint.
11290         (<sse>_ucomi): Ditto from similar patterns.
11291         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
11292         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
11293         SSE_VEC_FLOAT_MODE_P as insn constraint.
11294         (vcond<mode>): Ditto from similar patterns.
11295         (and<mode>3, *and<mode>3): Ditto.
11296         (<sse>_nand<mode>3): Ditto.
11297         (ior<mode>3, *ior<mode>3): Ditto.
11298         (xor<mode>3, *xor<mode>3): Ditto.
11299         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
11300         iterator and SSE_FLOAT_MODE_P as insn constraint.
11301         (*nand<mode>3): Ditto from similar patterns.
11302         (*ior<mode>3): Ditto.
11303         (*xor<mode>3): Ditto.
11304
11305 2008-02-20  Ira Rosen  <irar@il.ibm.com>
11306
11307         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
11308         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
11309         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
11310
11311 2008-02-19  Jan Hubicka  <jh@suse.cz>
11312
11313         * predict.c (tree_bb_level_predictions): Remove variable next
11314         mistakely introduced by previous commit.
11315
11316 2008-02-19  Jan Hubicka  <jh@suse.cz>
11317
11318         * predict.c (predict_paths_leading_to): Rewrite.
11319         (predict_paths_for_bb): New.
11320         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
11321
11322 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11323
11324         PR bootstrap/35218
11325         * Makefile.in (build_file_translate): New.
11326         (gcc-vers.texi): Use it for translating $(abs_srcdir).
11327         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
11328         * configure.ac (build_file_translate): Substitute it.
11329         * configure: Regenerate.
11330
11331 2008-02-19  Jan Hubicka  <jh@suse.cz>
11332
11333         PR rtl-optimization/34408
11334         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
11335         invalid sharing.
11336
11337 2008-02-19  Jan Hubicka  <jh@suse.cz>
11338
11339         PR middle-end/28779
11340         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
11341         call_expr.
11342
11343 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
11344
11345         PR Ada/35186
11346         * config/i386/i386-modes.def: Revert the last DI alignment
11347         change until Ada people can look into it.
11348
11349 2008-02-19  Nick Clifton  <nickc@redhat.com>
11350
11351         * opts.c (print_specific_help): Fix typo in --help text.
11352
11353 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
11354
11355         PR target/35239
11356         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
11357         32-bit inline asm without asm alternatives for host GCC < 3.0.
11358
11359 2008-02-19  Richard Guenther  <rguenther@suse.de>
11360
11361         PR tree-optimization/34989
11362         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
11363         Allow propagation to INDIRECT_REF if we can simplify only.
11364
11365 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11366
11367         * c-common.c (warn_for_collisions_1): Use appropriate option when
11368         warning.
11369
11370 2008-02-19  Nick Clifton  <nickc@redhat.com>
11371
11372         PR other/31349
11373         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
11374         (handle_options): Fix indentation.
11375         (print_filtered_help): If no language-specific options were
11376         displayed tell the user how to list all the options supported by
11377         the language's front-end.
11378         (print_specific_help): Fix indentation and remove duplicate line.
11379         (common_handle_option): Handle the -v option.
11380         For --help enable the display of undocumented options if the -v
11381         switch has been included on the command line.
11382         For --help= check for overlaps in the arguments between the option
11383         classes and the language names and issue a warning when they
11384         cannot be disambiguated.
11385         * c.opt (v): Pass on to the common option handler.
11386
11387 2008-02-19  Revital Eres  <eres@il.ibm.com> 
11388
11389         * modulo-sched.c (sms_schedule): Change dump message when
11390         create_ddg function fails.
11391         (try_scheduling_node_in_cycle): Rename row to cycle.
11392         (print_partial_schedule): Rename CYCLE to ROW.
11393
11394 2008-02-19  Christian Bruel  <christian.bruel@st.com>
11395             Zdenek Dvorak  <ook@ucw.cz>
11396
11397         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
11398
11399 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11400
11401         PR target/33555
11402         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
11403         (*x86_movdicc_0_m1_se): Ditto.
11404
11405 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11406
11407         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
11408         (CMPtype): Define as __gcc_CMPtype.
11409         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
11410         (CMPtype): Define as __gcc_CMPtype.
11411
11412 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
11413
11414         Support valgrind 3.3 for --enable-checking=valgrind.
11415         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
11416         here.
11417         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
11418         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
11419         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
11420         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
11421         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
11422         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
11423         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
11424         respectively.
11425         * ggc-zone.c: Similar.
11426         * ggc-page.c: Similar.
11427
11428 2008-02-19  Paul Brook  <paul@codesourcery.com>
11429
11430         PR target/35071
11431         * config/arm/ieee754-df.S: Fix do_it typo.
11432         * config/arm/ieee754-sf.S: Fix do_it typo.
11433
11434 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11435
11436         PR target/35189
11437         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
11438         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
11439         (OPTION_MASK_ISA_SSE_SET): Likewise.
11440         (OPTION_MASK_ISA_SSE2_SET): Likewise.
11441         (OPTION_MASK_ISA_SSE3_SET): Likewise.
11442         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
11443         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
11444         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
11445         (OPTION_MASK_ISA_SSE4_SET): Likewise.
11446         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
11447         (OPTION_MASK_ISA_SSE5_SET): Likewise.
11448         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
11449         (OPTION_MASK_ISA_MMX_UNSET): Updated.
11450         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
11451         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
11452         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
11453         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
11454         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
11455         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
11456         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
11457         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
11458         (OPTION_MASK_ISA_SSE4): Removed.
11459         (ix86_handle_option): Turn on bits in ix86_isa_flags and
11460         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
11461         (override_options): Don't turn on implied SSE/MMX bits in
11462         ix86_isa_flags.
11463
11464 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11465
11466         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11467         32bit host.
11468
11469 2008-02-18  Joey Ye  <joey.ye@intel.com>
11470
11471         PR middle-end/34921
11472         * tree-nested.c (insert_field_into_struct): Set type alignment
11473         to field alignment if the former is less than the latter.
11474
11475 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
11476
11477         * BASE-VER: Set to 4.4.0.
11478
11479 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11480
11481         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
11482         * doc/cfg.texi: Likewise.
11483         * doc/extend.texi: Likewise.
11484         * doc/gty.texi: Likewise.
11485         * doc/invoke.texi: Likewise.
11486         * doc/loop.texi: Likewise.
11487         * doc/md.texi: Likewise.
11488         * doc/passes.texi: Likewise.
11489         * doc/rtl.texi: Likewise.
11490         * doc/sourcebuild.texi: Likewise.
11491         * doc/tm.texi: Likewise.
11492         * doc/tree-ssa.texi: Likewise.
11493
11494 2008-02-17  Richard Guenther  <rguenther@suse.de>
11495
11496         PR middle-end/35227
11497         * tree-complex.c (init_parameter_lattice_values): Handle parameters
11498         without default definition.
11499
11500 2008-02-17  Richard Guenther  <rguenther@suse.de>
11501
11502         PR tree-optimization/35231
11503         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
11504         if A | B != 1.
11505
11506 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
11507
11508         Revert:
11509         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
11510         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11511         libgcc_cmp_return mode.
11512
11513 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11514
11515         PR c/28368
11516         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
11517
11518 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
11519
11520         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
11521         multilibs.
11522
11523 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11524
11525         * doc/c-tree.texi: Use `@.' where appropriate.
11526         * doc/extend.texi: Likewise.
11527         * doc/install.texi: Likewise.
11528         * doc/invoke.texi: Likewise.
11529         * doc/loop.texi: Likewise.
11530         * doc/makefile.texi: Likewise.
11531         * doc/md.texi: Likewise.
11532         * doc/passes.texi: Likewise.
11533         * doc/standards.texi: Likewise.
11534         * doc/tm.texi: Likewise.
11535
11536 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11537
11538         PR middle-end/35196
11539         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
11540         in entry_bb.
11541         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
11542         rather than in entry_bb.
11543
11544 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11545
11546         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11547         libgcc_cmp_return mode.
11548
11549 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11550
11551         PR middle-end/35130
11552         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
11553         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
11554
11555 2008-02-15  Richard Guenther  <rguenther@suse.de>
11556             Zdenek Dvorak  <ook@ucw.cz>
11557
11558         PR tree-optimization/35164
11559         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
11560         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
11561         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
11562         Only propagate addresses which do not have abnormal SSA_NAMEs
11563         in their operands.
11564
11565 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
11566
11567         PR target/35088
11568         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
11569
11570 2008-02-15  Jan Hubicka  <jh@suse.cz>
11571
11572         PR middle-end/35149
11573         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
11574
11575 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11576
11577         PR middle-end/34621
11578         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
11579         when calculating alignment_pad.
11580
11581 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11582
11583         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
11584         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
11585         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
11586         and STACK_BOUNDARY define.
11587
11588 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
11589
11590         PR preprocessor/35061
11591         * c-pragma.c (handle_pragma_pop_macro): Check that
11592         pushed_macro_table has been allocated.
11593
11594 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11595
11596         PR middle-end/35136
11597         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
11598         (force_gimple_operand): Likewise.
11599         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
11600         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
11601         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
11602         (find_interesting_uses_address): Check addressability and alignment
11603         of the base expression only after substituting bases of IVs into it.
11604
11605 2008-02-14  Michael Matz  <matz@suse.de>
11606
11607         PR target/34930
11608         * function.c (instantiate_virtual_regs_in_insn): Reload address
11609         before falling back to reloading the whole operand.
11610
11611 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11612
11613         * config/s390/s390.c (s390_mainpool_start): Emit the pool
11614         before the first section switch note.
11615
11616 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11617
11618         * doc/bugreport.texi: Update copyright years.
11619         * doc/c-tree.texi: Likewise.
11620         * doc/cfg.texi: Likewise.
11621         * doc/cpp.texi: Likewise.
11622         * doc/cppinternals.texi: Likewise.
11623         * doc/fragments.texi: Likewise.
11624         * doc/frontends.texi: Likewise.
11625         * doc/gcc.texi: Likewise.
11626         * doc/gty.texi: Likewise.
11627         * doc/hostconfig.texi: Likewise.
11628         * doc/implement-c.texi: Likewise.
11629         * doc/libgcc.texi: Likewise.
11630         * doc/loop.texi: Likewise.
11631         * doc/makefile.texi: Likewise.
11632         * doc/options.texi: Likewise.
11633         * doc/passes.texi: Likewise.
11634         * doc/rtl.texi: Likewise.
11635         * doc/sourcebuild.texi: Likewise.
11636         * doc/standards.texi: Likewise.
11637         * doc/tree-ssa.texi: Likewise.
11638         * doc/trouble.texi: Likewise.
11639
11640         * doc/extend.texi: Use @: or add comma where appropriate.
11641         * doc/invoke.texi: Likewise.
11642         * doc/tm.texi: Likewise.
11643
11644 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
11645
11646         PR target/34393
11647         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
11648         to a reg.
11649
11650 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
11651
11652         * doc/md.texi (clz, ctz): Add reference.
11653         * doc/rtl.texi (clz, ctz): Likewise.
11654
11655 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11656
11657         PR other/35148
11658         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
11659         srcdir.
11660
11661 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
11662
11663         * config/s390/s390.c (struct constant_pool): New field
11664         emit_pool_after added.
11665         (s390_mainpool_start): Set the emit_pool_after flag according
11666         to the section switch notes.
11667         (s390_mainpool_finish): Consider emit_pool_after when emitting
11668         the literal pool at the end of the function.
11669         (s390_chunkify_start): Force literal pool splits at section
11670         switch notes.
11671
11672 2008-02-13  Michael Matz  <matz@suse.de>
11673
11674         PR debug/35065
11675         * var-tracking.c (clobber_variable_part): Correctly traverse the
11676         list.
11677
11678 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11679
11680         PR 29673
11681         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
11682         Add -fdump-ipa-inline.
11683         * tree-dump.c (dump_files): Remove tree-inlined dump.
11684         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
11685         
11686 2008-02-12  Richard Guenther  <rguenther@suse.de>
11687
11688         PR tree-optimization/35171
11689         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
11690         default defs.
11691
11692 2008-02-12  Richard Guenther  <rguenther@suse.de>
11693
11694         PR middle-end/35163
11695         * fold-const.c (fold_widened_comparison): Use get_unwidened in
11696         value-preserving mode.  Disallow final truncation.
11697
11698 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
11699
11700         PR middle-end/35136
11701         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
11702         code from here to...
11703         (force_gimple_operand): ...here.
11704
11705 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
11706
11707         PR c++/35144
11708         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
11709         non-compatible pointers.
11710         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
11711         different FIELD_DECLs, try harder by comparing field offsets, sizes
11712         and types.
11713
11714         PR inline-asm/35160
11715         * function.c (match_asm_constraints_1): Don't replace the same input
11716         multiple times.
11717
11718 2008-02-12  Anatoly Sokolov <aesok@post.ru>
11719
11720         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
11721         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
11722         (expand_epilogue): Restore RAMPZ register.
11723         * config/avr/avr.md (RAMPZ_ADDR): New constant.
11724
11725 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
11726
11727         * config/i386/cygwin.asm: (__alloca): Correct calling
11728         convention and alignment.
11729         (__chkstk): Force 8 byte stack alignment.
11730
11731 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
11732             Richard Guenther  <rguenther@suse.de>
11733
11734         PR tree-optimization/33992
11735         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
11736         the zero we compare against.
11737
11738 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
11739
11740         PR libfortran/35063
11741         * gthr-win32.h (__gthread_mutex_destroy_function): New function
11742         to CloseHandle after unlocking to prevent accumulation of handle
11743         count.
11744
11745 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11746
11747         PR middle_end/34150
11748         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
11749         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
11750         and update LABEL_NUSES during and after reload.
11751
11752 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
11753
11754         PR middle-end/34627
11755         * combine.c (simplify_if_then_else): Make sure the comparison is
11756         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
11757
11758 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11759
11760         PR bootstrap/35051
11761         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
11762         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
11763         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
11764         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
11765         * tree.h (get_type_static_bounds): Likewise.
11766
11767 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11768
11769         * doc/invoke.texi (Option Summary, C++ Dialect Options)
11770         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11771         Make -Wfoo language annotations match what the compiler outputs.
11772
11773 2008-02-08  Sa Liu  <saliu@de.ibm.com>
11774
11775         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
11776         intrinsics spu_convts, spu_convtu, spu_convtf.
11777
11778 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
11779
11780         * doc/extend.texi (Function Attributes) <noinline>: Mention
11781         asm ("") as method to keep calls.
11782
11783 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11784
11785         PR other/32754
11786         * doc/options.texi (Options): Replace references to opts.sh with
11787         optc-gen.awk.
11788         * opts-common.c: Likewise.
11789         * optc-gen.awk: Likewise.
11790         
11791 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
11792
11793         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
11794
11795 2008-02-07  Richard Henderson  <rth@redhat.com>
11796
11797         PR rtl-opt/33410
11798         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
11799         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
11800         funny mode.
11801
11802 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
11803
11804         PR tree-optimization/35085
11805         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
11806         for operand entry oe2 in addition to operand entry oe3 in order to
11807         expose more opportunities for vectorizer sum reduction.
11808
11809 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11810
11811         PR other/35107
11812         * Makefile.in (LIBS): Remove $(GMPLIBS).
11813         (cc1-dummy, cc1): Add $(GMPLIBS).
11814
11815 2008-02-06  Jan Hubicka  <jh@suse.cz>
11816
11817         PR target/23322
11818         * i386.md (moddf_integer): Do not produce partial memory stalls for
11819         targets where it hurts.
11820
11821 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
11822
11823         PR target/35083
11824         * optabs.c (expand_float): Do not check for decimal modes when
11825         expanding unsigned integer through signed conversion.
11826
11827 2008-02-06  Nick Clifton  <nickc@redhat.com>
11828
11829         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
11830         inside the clobber with a match_operand and duplicated operand
11831         number in the constraint.
11832         (ineqbranchsi): Delete redundant comment.
11833
11834 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
11835
11836         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
11837         builtin_define ("__USE_INIT_FINI__").
11838         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
11839         -msx multilibs.
11840         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
11841
11842 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11843
11844         PR documentation/30330
11845         * doc/invoke.texi (C++ Dialect Options)
11846         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11847         For each warning option -Wfoo that allows -Wno-foo, ensure both
11848         -Wfoo and -Wno-foo are listed in the option index.  Fix index
11849         entry of -Wswitch-default, index -Wnormalized= including the
11850         `=', and -Wlarger-than-@var{len} including @var{len}.
11851
11852 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
11853
11854         * config/i386/i386.md (floatunssisf2): Use
11855         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
11856         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
11857         Macroize expander using MODEF mode iterator.
11858
11859 2008-02-05  Diego Novillo  <dnovillo@google.com>
11860
11861         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
11862
11863         PR 33738
11864         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
11865
11866 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11867
11868         PR other/35070
11869         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
11870
11871 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
11872
11873         PR target/35084
11874         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
11875         to indicate if a message should be generated.
11876         (init_cumulative_args): Updated.
11877         (function_value_32): Likewise.
11878
11879 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
11880
11881         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
11882
11883 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
11884
11885         PR target/35083
11886         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
11887         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
11888
11889 2008-02-04  Diego Novillo  <dnovillo@google.com>
11890
11891         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
11892
11893         PR 33738
11894         * tree-vrp.c (vrp_evaluate_conditional): With
11895         -Wtype-limits, emit a warning when comparing against a
11896         constant outside the natural range of OP0's type.
11897
11898 2008-02-04  Richard Guenther  <rguenther@suse.de>
11899
11900         PR middle-end/33631
11901         * expr.c (count_type_elements): Give for unions instead of
11902         guessing.
11903
11904 2008-02-04  Richard Guenther  <rguenther@suse.de>
11905
11906         PR middle-end/35043
11907         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
11908         to TYPE_DOMAINs base type instead of using bitsizetype here.
11909
11910 2008-02-03  Jason Merrill  <jason@redhat.com>
11911
11912         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
11913
11914 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11915
11916         PR other/29972
11917         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
11918         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
11919         (RS/6000 and PowerPC Options): Fix typos and markup.
11920         * doc/passes.texi (Tree-SSA passes): Likewise.
11921
11922 2008-02-02  Michael Matz  <matz@suse.de>
11923
11924         PR target/35045
11925         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
11926         from record_last_reg_set_info.
11927         (record_last_reg_set_info): Take an RTX argument, iterate over all
11928         constituent hardregs.
11929         (record_last_set_info, record_opr_changes): Change calls to
11930         new signature or to record_last_reg_set_info_regno.
11931
11932 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
11933
11934         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
11935
11936 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
11937
11938         PR rtl-optimization/34773
11939         * reg-notes.def (EQUAL): Mention significance of combination of
11940         REG_EQUAL and REG_RETVAL.
11941         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
11942         insn that has a REG_RETVAL.
11943
11944 2008-02-01  Roger Sayle  <roger@eyesopen.com>
11945
11946         PR bootstrap/33781
11947         * configure.ac (--enable-fixed-point): Disable unless explicitly
11948         requested on IRIX.
11949         * configure: Regenerate.
11950
11951 2008-02-01  Richard Guenther  <rguenther@suse.de>
11952
11953         PR other/35042
11954         * invoke.texi (-finline-limit): Remove no longer true parts
11955         of the documentation.  Note that there is no default value.
11956
11957 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
11958             Mark Mitchell  <mark@codesourcery.com>
11959             Ben Elliston  <bje@au.ibm.com>
11960
11961         PR c/29326
11962         * doc/extend.texi (Other Builtins): Document.
11963
11964 2008-01-31  Tom Browder <tom.browder@gmail.com>
11965
11966         * doc/c-tree.texi (Types): Fix grammar.
11967         (Expression trees): Ditto.
11968         * doc/passes.texi (Tree-SSA passes): Ditto.
11969         
11970         * doc/configterms.texi (Configure Terms): Fix typo.
11971         * doc/cpp.texi (Common Predefined Macros): Ditto.
11972         * doc/md.texi (Machine Constraints): Ditto.
11973         
11974         * doc/makefile.texi (Makefile): Add comma.
11975
11976 2008-01-31  Tom Browder  <tom.browder@gmail.com>
11977             Gerald Pfeifer  <gerald@pfeifer.com>
11978         
11979         * doc/sourcebuild.texi (Front End): Remove references to CVS
11980         and CVSROOT/modules.
11981         (Texinfo Manuals): Replace reference to CVS by one to SVN.
11982         (Back End): Remove reference to CVS.
11983
11984 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
11985
11986         PR target/34900
11987         * config/mips/mips.c (gen_load_const_gp): New function, taking a
11988         comment from...
11989         (mips16_gp_pseudo_reg): ...here.
11990         * config/mips/mips.md (load_const_gp): Replace with...
11991         (load_const_gp_<mode>): ...this :P-based insn.
11992
11993 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11994
11995         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
11996         options. Minor fixes.
11997         (-std): Move reference to standards closer to where language
11998         standards are first mentioned.
11999         
12000 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
12001
12002         PR rtl-optimization/34995
12003         * reload.c (alternative_allows_const_pool_ref): Take an rtx
12004         parameter and return a bool.  If the rtx parameter is nonnull,
12005         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
12006         (find_reloads): Update call accordingly.  Pass the new operand
12007         if it needed no address reloads, otherwise pass null.
12008
12009 2008-01-30  Richard Henderson  <rth@redhat.com>
12010
12011         PR c/34993
12012         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
12013         for unbounded arrays.
12014
12015 2008-01-30  Silvius Rus  <rus@google.com>
12016
12017         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
12018
12019 2008-01-30  Jan Hubicka  <jh@suse.cz>
12020
12021         PR target/34982
12022         * i386.c (init_cumulative_args): Use real function declaration when
12023         calling locally.
12024
12025 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
12026
12027         PR rtl-optimization/34998
12028         * global.c (build_insn_chain): Treat non-subreg_lowpart
12029         SUBREGs of pseudos as clobbering all the words covered by the
12030         SUBREG, not just all the bytes.
12031         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
12032         original df_ref rather than an extract parameter.
12033         (global_conflicts): Update call accordingly.
12034
12035 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
12036
12037         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
12038         the overflow check to make it easier to read.
12039         (__fixtfdi): Change the type of the ll member in union
12040         long_double to UDItype_x.
12041
12042 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
12043
12044         PR middle-end/34969
12045         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
12046         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
12047         * tree-inline.c (fold_marked_statements): Call
12048         cgraph_update_edges_for_call_stmt if folding a call statement.
12049         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
12050         debug_generic_stmt calls, reset it back afterwards.
12051
12052         PR c/35017
12053         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
12054         static decls.
12055         * c-typeck.c (build_external_ref): Don't pedwarn about
12056         static vars in current function's scope.
12057
12058 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
12059
12060         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
12061
12062 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
12063
12064         PR c/35002
12065         * ipa-struct-reorg.c: Fix spelling.
12066         * params.def: Ditto.
12067
12068 2008-01-29  Richard Guenther  <rguenther@suse.de>
12069
12070         PR middle-end/35006
12071         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
12072         field.
12073         * tree-inline.c (remap_type): Increment remapping_type_depth
12074         around remapping types.
12075         (copy_body_r): Only add referenced variables if they are referenced
12076         from code, not types.
12077
12078 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
12079
12080         PR c++/34055
12081         PR c++/34103
12082         PR c++/34219
12083         PR c++/34606
12084         PR c++/34753
12085         PR c++/34754
12086         PR c++/34755
12087         PR c++/34919
12088         PR c++/34961
12089         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
12090         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
12091
12092 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
12093
12094         PR target/34412
12095         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
12096         pointer for tiny stack.
12097
12098 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12099
12100         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
12101
12102 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12103
12104         * config/vx-common.h: Fix typo in comment.
12105
12106 2008-01-28  Ian Lance Taylor  <iant@google.com>
12107
12108         PR c++/34862
12109         PR c++/33407
12110         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12111         coalesce pointers if they have different DECL_NO_TBAA_P values.
12112         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
12113         between variables with different DECL_NO_TBAA_P values.
12114
12115 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
12116
12117         PR 31535
12118         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
12119         are not legitimate small data references on SPE targets.
12120
12121 2008-01-28  David Daney  <ddaney@avtrex.com>
12122
12123         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
12124
12125 2008-01-28  David Daney  <ddaney@avtrex.com>
12126
12127         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
12128
12129 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
12130
12131         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
12132         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
12133         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
12134         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
12135         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
12136         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
12137         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
12138         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
12139
12140 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12141
12142         * basic-block.h (condjump_equiv_p): Fix comment.
12143
12144 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12145
12146         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
12147         print_generic_stmt_indented): Fix comment.
12148
12149 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12150
12151         * configure.ac (__stack_chk_fail): Add detecion for availability
12152         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
12153         * configure: Regenerate.
12154
12155 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
12156
12157         PR middle-end/34688
12158         * final.c (output_addr_const): Handle TRUNCATE.
12159
12160 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
12161
12162         PR target/34711
12163         * tree-ssa-loop-ivopts.c (comp_cost): New type.
12164         (zero_cost, infinite_cost): New constants.
12165         (struct cost_pair): Change type of cost to comp_cost.
12166         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
12167         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
12168         New functions.
12169         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
12170         split_address_cost, ptr_difference_cost, difference_cost,
12171         get_computation_cost_at, get_computation_cost,
12172         determine_use_iv_cost_generic, determine_use_iv_cost_address,
12173         determine_use_iv_cost_condition, determine_use_iv_costs,
12174         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
12175         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
12176         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
12177         Change type of cost to comp_cost.
12178         (determine_iv_cost): Increase cost of non-original ivs, instead
12179         of decreasing the cost of original ones.
12180         (get_address_cost): Indicate the complexity of the addressing mode 
12181         in comp_cost.
12182         (try_add_cand_for): Prefer using ivs not specific to some object.
12183         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
12184
12185 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
12186             Janis Johnson  <janis187@us.ibm.com>
12187
12188         PR target/34814
12189         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
12190         (TARGET_INSTANTIATE_DECLS): Likewise.
12191         * target.h (expand_to_rtl_hook): New target hook.
12192         (instantiate_decls): Likewise.
12193         * function.c (instantiate_decl): Make non-static.  Rename to...
12194         (instantiate_decl_rtl): ... this.
12195         (instantiate_expr): Use instantiate_decl_rtl.
12196         (instantiate_decls_1): Likewise.
12197         (instantiate_decls): Likewise.
12198         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
12199         * function.h (instantiate_decl_rtl): Add prototype.
12200         * cfgexpand.c (target.h): New include.
12201         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
12202         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
12203         (TARGET_INSTANTIATE_DECLS): Likewise.
12204         (TARGET_INITIALIZER): New target hooks added.
12205         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
12206         New prototype.
12207         * config/rs6000/rs6000.c (tree-flow.h): New include.
12208         (machine_function): Add sdmode_stack_slot field.
12209         (rs6000_alloc_sdmode_stack_slot): New function.
12210         (rs6000_instantiate_decls): Likewise.
12211         (rs6000_secondary_memory_needed_rtx): Likewise.
12212         (rs6000_check_sdmode): Likewise.
12213         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
12214         (TARGET_INSTANTIATE_DECLS): Likewise.
12215         (rs6000_hard_regno_mode_ok): Allow SDmode.
12216         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
12217         (rs6000_emit_move): Handle SDmode.
12218         (function_arg_advance): Likewise.
12219         (function_arg): Likewise.
12220         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
12221         SDmode var args for 32-bit compiles.
12222         (rs6000_secondary_reload_class): Handle SDmode.
12223         (rs6000_output_function_epilogue): Likewise.
12224         (rs6000_function_value): Simplify if statement.
12225         (rs6000_libcall_value): Likewise.
12226         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
12227         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
12228         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
12229         (movsd_hardfloat): New define_insn.
12230         (movsd_softfloat): Likewise.
12231         (movsd_store): Likewise.
12232         (movsd_load): Likewise.
12233         (extendsddd2): Likewise.
12234         (extendsdtd2): Likewise.
12235         (truncddsd2): Likewise.
12236         (movdd_hardfloat64): Fixup comment.
12237         (UNSPEC_MOVSD_LOAD): New constant.
12238         (UNSPEC_MOVSD_STORE): Likewise.
12239
12240 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
12241
12242         PR c++/34965
12243         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
12244         TRUTH_XOR_EXPR.
12245         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
12246         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
12247         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
12248         and TRUTH_XOR_EXPR.
12249
12250 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
12251
12252         PR target/34794
12253         * config.gcc: Separate AIX 5.3 from AIX 6.1.
12254         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
12255         __LONGDOUBLE128 too.
12256         * config/rs6000/aix61.h: New file.
12257
12258 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12259
12260         PR rtl-optimization/34959
12261         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
12262         popcount and parity rtxes the same mode as their operand.
12263         Truncate or extend the result to the return value's mode
12264         if necessary.
12265
12266 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12267
12268         PR target/34981
12269         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
12270         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
12271         to GOT_VERSION_REGNUM.
12272         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
12273         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
12274         * config/mips/mips.c (mips_emit_call_insn): New function.
12275         (mips_call_tls_get_addr): Call mips_expand_call directly.
12276         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
12277         emit_call_insn.
12278         (mips16_build_call_stub): Likewise.  Return the call insn or null.
12279         (mips_expand_call): Update the call to mips16_build_call_stub
12280         accordingly and a remove redundant condition.  Assert that MIPS16
12281         stubs do not use lazy binding.  Use mips_emit_call_insn and return
12282         the call insn.
12283         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
12284         TARGET_USE_GOT.
12285         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
12286         (mips_avoid_hazard): Remove hazard_set handling.
12287         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
12288         (UNSPEC_RESTORE_GP): ...this.
12289         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
12290         (FAKE_CALL_REGNO): Rename to...
12291         (GOT_VERSION_REGNUM): ...this.
12292         (type): Add "ghost" value.  Add an associated insn reservation.
12293         (hazard_set): Remove.
12294         (exception_receiver): Rename to...
12295         (restore_gp): ...this and update the unspec identifier accordingly.
12296         (exception_receiver, nonlocal_got_receiver): New expanders.
12297         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
12298         FAKE_CALL_REGNO.  Remove hazard_set attribute.
12299         (set_got_version, update_got_version): New patterns.
12300
12301 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
12302
12303         PR target/34970
12304         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
12305
12306 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12307
12308         PR other/31955
12309         * doc/install.texi2html: Generate gcc-vers.texi.
12310
12311 2008-01-25  DJ Delorie  <dj@redhat.com>
12312
12313         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12314
12315 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12316
12317         * config/c4x: Remove directory.
12318         * config.gcc (crx-*, mt-*): Mark obsolete.
12319         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
12320         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
12321         sh-*-rtemscoff*): Remove cases.
12322         * defaults.h (C4X_FLOAT_FORMAT): Remove.
12323         * real.c (encode_c4x_single, decode_c4x_single,
12324         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
12325         c4x_extended_format): Remove.
12326         * real.h (c4x_single_format, c4x_extended_format): Remove.
12327         * doc/extend.texi (interrupt, naked): Remove mention of attributes
12328         on C4x.
12329         (Pragmas): Remove comment about c4x pragmas.
12330         * doc/install.texi (c4x): Remove target-specific instructions.
12331         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
12332         * doc/md.texi (Machine Constraints): Remove C4x documentation.
12333         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
12334         refer to C4x source files as examples.
12335         (C4X_FLOAT_FORMAT): Remove documentation.
12336
12337 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
12338
12339         * config/bfin/bfin.c (override_options): Reorder tests so that
12340         flag_pic gets enabled for -msep-data.
12341
12342 2008-01-25  Richard Guenther  <rguenther@suse.de>
12343
12344         PR middle-end/32244
12345         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
12346         to its bitfield precision if required.
12347
12348 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12349
12350         PR middle-end/33880
12351         * tree-nested.c (walk_omp_for): New function.
12352         (convert_nonlocal_reference, convert_local_reference): Call
12353         walk_omp_for on OMP_FOR.
12354         (convert_call_expr): Call walk_body on OMP_FOR's
12355         OMP_FOR_PRE_INIT_BODY.
12356
12357 2008-01-25  Richard Guenther  <rguenther@suse.de>
12358
12359         PR tree-optimization/34966
12360         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
12361         default defs and PHI_NODEs we have to insert after the
12362         defining statement.
12363
12364 2008-01-24  Nick Clifton  <nickc@redhat.com>
12365
12366         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
12367         Provide a default definition.
12368         (LIBGCC2_UNITS_PER_WORD): Likewise.
12369
12370         * config/stormy16/stormy16.c: Include df.h for the prototype
12371         for df_regs_ever_live_p.
12372         (xstormy16_expand_builtin_va_start): Convert the stack offset
12373         into a component_ref and then use POINTER_PLUS_EXPR to add it
12374         to the incoming_virtual_args_rtx.
12375         (xstormy16_gimplify_va_arg_expr): Rename to
12376         xstormy16_gimplify_va_arg_expr.
12377         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
12378         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
12379         xstormy16_gimplify_va_arg_expr.
12380         Fix up some formatting issues.
12381
12382         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
12383         Move to predicates.md.
12384         (xs_hi_general_operand): Likewise.
12385         (xs_hi_nonmemory_operand): Likewise.
12386         * config/stormy16/predicates.md:
12387         (xstormy16_carry_plus_operand): New predicate.
12388         (xs_hi_general_operand): New predicate.
12389         (xs_hi_nonmemory_operand): New predicate.
12390         * config/stormy16/stormy16-protos.h:
12391         (xstormy16_carry_plus_operand): Delete prototype.
12392         (xs_hi_general_operand): Likewise.
12393         (xs_hi_nonmemory_operand): Likewise.
12394
12395         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
12396         modifiers as they are no longer needed and they can trigger
12397         reload spill failures.
12398
12399         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
12400         with a match_operand in order to help reload.
12401
12402         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
12403         constraint with 'e' for the 8th alternative as this version of
12404         the mov.w instruction only accepts the lower 8 registers.
12405
12406 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
12407
12408         PR target/34856
12409         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
12410         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
12411         vector elements.
12412
12413 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12414
12415         PR middle-end/33333
12416         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
12417
12418 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12419
12420         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
12421         New functions.
12422         (remove_structure): Update allocations list before removing structure.
12423         
12424 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12425
12426         * ipa-struct-reorg.c (is_safe_cond_expr, 
12427         create_new_stmts_for_cond_expr): Use integer_zerop function,
12428         that recognize not only zero-pointer, but zero-integer too.
12429
12430 2008-01-25  Ben Elliston  <bje@au.ibm.com>
12431
12432         PR other/22232
12433         * fixproto: Escape "." in sed expression that strips leading "./".
12434
12435 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12436
12437         PR driver/34904
12438         * gcc.c (SWITCH_OK): Removed.
12439         (SWITCH_LIVE): Changed to bit.
12440         (SWITCH_FALSE): Likewise.
12441         (SWITCH_IGNORE): Likewise.
12442         (switchstr): Change live_cond to unsigned int.
12443         (process_command): Replace SWITCH_OK with 0.
12444         (do_self_spec): Likewise.
12445         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
12446         (give_switch): Likewise.
12447         (used_arg): Likewise.
12448         (do_spec_1): Set the SWITCH_IGNORE bit.
12449         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
12450         bits.  Set the SWITCH_LIVE bit.
12451
12452 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
12453
12454         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
12455
12456 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
12457
12458         PR tree-optimization/34472
12459         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
12460         parameter to a "bool *" and set *DATA to false if there is
12461         an unsafe access.  Do not delete the structure here.
12462         (check_cond_exprs): Delete it here instead.
12463         (check_cond_exprs, exclude_cold_structs): Do not increase
12464         I when removing a structure.
12465
12466 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
12467
12468         PR target/34856
12469         * config/i386/i386.c (ix86_expand_vector_init): Consider only
12470         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
12471
12472 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
12473
12474         PR middle-end/34934
12475         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
12476         a fixed vector for stack.
12477
12478 2008-01-24  Ben Elliston  <bje@au.ibm.com>
12479
12480         PR c++/25701
12481         * doc/gcc.texi (Software development): Add a direntry for g++.
12482         
12483 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
12484
12485         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
12486         stale and straggling -fforce-addr comments above.
12487
12488         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
12489         define.
12490         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
12491         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
12492
12493 2008-01-23  Michael Matz  <matz@suse.de>
12494
12495         PR debug/34895
12496         * dwarf2out.c (force_type_die): Use modified_type_die instead of
12497         gen_type_die.
12498
12499 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
12500
12501         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
12502         malloc result type.
12503
12504 2008-01-23 Anatoly Sokolov <aesok@post.ru>
12505
12506         * config/avr/avr.c (avr_current_arch): New variable.
12507         (avr_arch_types): Add 'avr31' and 'avr51' entries.
12508         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
12509         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
12510         (avr_override_options): Init 'avr_current_arch'. 
12511         (base_arch_s): Move from here...
12512         * config/avr/avr.h (base_arch_s): ... here. Add new members 
12513         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
12514         'mega' to 'have_jmp_call'.
12515         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
12516         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
12517         macros.
12518         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
12519         architectures.
12520         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
12521         MULTILIB_MATCHES): (Ditto.).
12522
12523 2008-01-23  Richard Guenther  <rguenther@suse.de>
12524
12525         PR middle-end/31529
12526         * cgraphunit.c (cgraph_reset_node): Always mark the node
12527         not reachable if it is not queued already.
12528
12529 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
12530
12531         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
12532         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
12533         (cputype_selected): New static variable.
12534         (bfin_handle_option): Set it if -mcpu is used.
12535         (override_option): Select default set of workarounds if no cpu type
12536         selected on the command line.
12537         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
12538
12539         From  Michael Frysinger  <michael.frysinger@analog.com>
12540         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
12541         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
12542
12543         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
12544         for bf547, bf523, bf524, and bf526.
12545         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
12546         bf526.
12547         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
12548         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
12549         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
12550         __ADSPBF547__ and __ADSPBF54x__ for bf547.
12551         * doc/invoke.texi (Blackfin Options): Document that
12552         -mcpu now accept bf547, bf523, bf524, and bf526.
12553
12554 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
12555
12556         PR rtl-optimization/34628
12557         * combine.c (try_combine): Stop and undo after the first combination
12558         if an autoincrement side-effect on the first insn has effectively
12559         been lost.
12560
12561 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
12562
12563         PR target/34529
12564         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
12565         Offset addresses are not valid for Altivec or paired float modes.
12566
12567 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
12568
12569         PR c++/34607
12570         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
12571         if DECL_INITIAL (decl) is error_mark_node.
12572
12573         PR c++/34914
12574         * c-common.c (handle_vector_size_attribute): Only allow
12575         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
12576         the same way as pointer, array etc. types.
12577         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
12578
12579         PR c++/34917
12580         * tree.c (build_type_attribute_qual_variant): Call
12581         build_qualified_type if attributes are equal, but quals are not.
12582
12583 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12584
12585         PR 32102
12586         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
12587         * flags.h (warn_strict_aliasing): Remove.
12588         (warn_strict_overflow): Remove.
12589         * opts.c (warn_strict_aliasing): Remove.
12590         (warn_strict_overflow): Remove.
12591         * c-opts.c (c_common_handle_option): -Wall only sets
12592         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
12593         (c_common_post_options): Give default values to -Wstrict-aliasing
12594         and -Wstrict-overflow if they are uninitialized.
12595         * common.opt (Wstrict-aliasing): Specify Var and Init.
12596         (Wstrict-overflow): Likewise.
12597
12598 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
12599
12600         PR rtl-optimization/26854
12601         PR rtl-optimization/34400
12602         PR rtl-optimization/34884
12603         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
12604         DF_RD->gen.
12605         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
12606         (df_rd_bb_info.expanded_lr_out): Deleted
12607         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
12608         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
12609         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12610         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12611         Removed code to allocate, initialize or free expanded_lr_out.
12612         (df_rd_bb_local_compute_process_def): Restructured to make more
12613         understandable.
12614         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
12615         sets if the sets are being trimmed.
12616
12617 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
12618
12619         PR bootstrap/32287
12620         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
12621         (as_vers): Likewise.
12622         * configure: Regenerated.
12623
12624 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12625
12626         PR middle-end/33092
12627         * tree-pass.h (pass_build_alias): New pass.
12628         * tree-ssa-alias.c (gate_build_alias): New.
12629         (pass_build_alias): New.
12630         * passes.c (init_optimization_passes): Add pass_build_alias after
12631         pass_create_structure_vars.
12632
12633 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
12634
12635         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
12636         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
12637         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
12638         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
12639         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
12640         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
12641         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
12642         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
12643         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
12644         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
12645         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
12646         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
12647         * config/s390/s390.md (FP_ALL): New mode iterator.
12648         (_d): New mode attribute.
12649         ("*signbit<mode>2>"): Changed mode of first operand.
12650         ("isinf<mode>2"): Changed mode of first operand.
12651         ("*TDC_insn"): Adaptation for DFP modes.
12652
12653 2008-01-22  Ben Elliston  <bje@au.ibm.com>
12654
12655         * tree.c (check_qualified_type): Improve function description.
12656
12657 2008-01-21  Jason Merrill  <jason@redhat.com>
12658
12659         PR c++/34196
12660         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
12661         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
12662         if it is set.
12663
12664 2008-01-21  DJ Delorie  <dj@redhat.com>
12665
12666         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
12667         return zero.
12668
12669 2008-01-21  Richard Guenther  <rguenther@suse.de>
12670
12671         PR middle-end/34856
12672         * tree-cfg.c (verify_expr): Allow all invariant expressions
12673         instead of just constant class ones as reference argument.
12674         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
12675         like any other constant.
12676         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12677
12678 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
12679
12680         * regmove.c (fixup_match_1): Update call crossed frequencies.
12681
12682 2008-01-21  Richard Guenther  <rguenther@suse.de>
12683
12684         PR c/34885
12685         * tree-inline.c (setup_one_parameter): Deal with mismatched
12686         types using a VIEW_CONVERT_EXPR.
12687
12688 2008-01-21  Alon Dayan  <alond@il.ibm.com>
12689             Olga Golovanevsky  <olga@il.ibm.com>
12690         
12691         PR tree-optimization/34701
12692         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
12693         when the structure size is not a power of 2.
12694
12695 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12696
12697         * doc/install.texi: Add doc for --enable-checking=df.
12698         
12699 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12700
12701         PR rtl-optimization/34808
12702         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
12703
12704 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12705
12706         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
12707         input.
12708
12709 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
12710
12711         PR rtl-optimization/26854
12712         PR rtl-optimization/34400
12713         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
12714         DF_RD->gen.
12715         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
12716         (df_rd_bb_info.expanded_lr_out): New.
12717         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
12718         * loop_iv.c (iv_analysis_loop_init): Ditto.
12719         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12720         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12721         Added code to allocate, initialize or free expanded_lr_out.
12722         (df_rd_bb_local_compute_process_def): Restructured to make
12723         more understandable.
12724         (df_rd_confluence_n): Add code to do nothing with fake edges and
12725         code to no apply invalidate_by_call sets if the sets are being trimmed.
12726         (df_lr_local_finalize): Renamed to df_lr_finalize.
12727         (df_live_local_finalize): Renamed to df_live_finalize.
12728
12729 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12730
12731         PR target/34831
12732         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
12733         deciding whether to use reciprocal instructions.
12734
12735 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
12736
12737         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
12738         dwarf2out_note_section_used if cold_text_section is NULL.
12739
12740 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
12741
12742         PR gcov-profile/34610
12743         * tree-cfg.c (make_edges): Mark both outgoing edges from
12744         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
12745         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
12746         from OMP_FOR and OMP_CONTINUE outgoing edges.
12747
12748         * tree-profile.c (tree_profiling): Return early if
12749         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
12750         at the end.
12751         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
12752         from cfun to child_cfun.
12753         * function.h (struct function): Add after_tree_profile bit.
12754
12755 2008-01-19 Anatoly Sokolov <aesok@post.ru>
12756
12757         * config/avr/avr.S (_exit): Disable interrupt.
12758
12759 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
12760             Steven Bosscher  <stevenb.gcc@gmail.com>
12761
12762         PR rtl-optimization/26854
12763         PR rtl-optimization/34400
12764         * df-problems.c (df_live_scratch): New scratch bitmap.
12765         (df_live_alloc): Allocate df_live_scratch when doing df_live.
12766         (df_live_reset): Clear the proper bitmaps.
12767         (df_live_bb_local_compute): Only process the artificial defs once
12768         since the order is not important.
12769         (df_live_init): Init the df_live sets only with the variables
12770         found live by df_lr.
12771         (df_live_transfer_function): Use the df_lr sets to prune the
12772         df_live sets as they are being computed.  
12773         (df_live_free): Free df_live_scratch.
12774
12775 2008-01-18  Ian Lance Taylor  <iant@google.com>
12776
12777         * common.opt: Add fmerge-debug-strings.
12778         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
12779         flag_merge_debug_strings rather than flag_merge_constants.
12780         * doc/invoke.texi (Option Summary): Mention
12781         -fmerge-debug-strings.
12782         (Debugging Options): Document -fmerge-debug-strings.
12783
12784 2008-01-18  Ian Lance Taylor  <iant@google.com>
12785
12786         PR c++/33407
12787         * tree.h (DECL_IS_OPERATOR_NEW): Define.
12788         (struct tree_function_decl): Add new field operator_new_flag.
12789         * tree-inline.c (expand_call_inline): When inlining a call to
12790         operator new, force the return value to go into a variable, and
12791         set DECL_NO_TBAA_P on that variable.
12792         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
12793
12794 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
12795
12796         PR debug/34484
12797         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
12798         DWARF2_DEBUGGING_INFO.
12799         (dwarf2out_note_section_used): Ditto.  Add prototype.
12800         (have_multiple_function_sections, text_section_used,
12801         cold_text_section_used, *cold_text_sections): Move declarations
12802         before their uses.
12803
12804 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
12805
12806         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
12807         field and add signal_ra.
12808         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
12809         assignments to frame state pc.  Move end of stack check after
12810         MD_FALLBACK_FRAME_STATE_FOR.
12811         (uw_update_context_1): Use frame state signal_regs if set, instead
12812         of checking signal_frame flag.
12813         (uw_update_context): Use frame state signal_ra if set.
12814         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
12815         * config/xtensa/linux-unwind.h: New file.
12816
12817 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
12818
12819         * modulo-sched.c (get_sched_window): Fix comment typo.
12820
12821 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
12822
12823         PR tree-optimization/34648
12824         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
12825
12826 2008-01-17  Anatoly Sokolov <aesok@post.ru>
12827
12828         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
12829         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
12830
12831 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
12832
12833         PR rtl-optimization/34400
12834         * df-core.c (df_worklist_dataflow_overeager,
12835         df_worklist_dataflow_doublequeue): New functions.
12836         (df_worklist_dataflow): Two different worklist solvers.
12837         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
12838         New param.
12839
12840 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12841
12842         PR testsuite/34821
12843         * doc/invoke.texi: Document the dependence on pthread for fopenmp
12844         and ftree-parallelize-loops.
12845
12846 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
12847
12848         PR rtl-optimization/34826
12849         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
12850
12851 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
12852
12853         * global.c (find_reg): Mark the eh regs as used if necessary.
12854         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
12855         * ra.h (struct allocno): no_eh_reg field added.  Changed
12856         no_stack_reg type to bitfield.
12857
12858 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
12859
12860         * tree.c (substitute_in_expr): Add missing 'break'.
12861
12862 2008-01-17  Richard Guenther  <rguenther@suse.de>
12863
12864         PR tree-optimization/34825
12865         * tree-ssa-math-opts.c (is_division_by): Do not recognize
12866         x / x as division to handle.
12867
12868 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12869
12870         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
12871         "-pthread" is specified.
12872         * pa-hpux11.h (LIB_SPEC): Likewise.
12873
12874 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
12875             Peter Bergner  <bergner@vnet.ibm.com>
12876
12877         PR rtl-optimization/33796
12878         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
12879
12880 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12881
12882         PR libgfortran/34699
12883         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
12884         static links.
12885         * pa-hpux10.h (LINK_SPEC): Likewise.
12886         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
12887
12888 2008-01-16  Richard Guenther  <rguenther@suse.de>
12889
12890         PR middle-end/32628
12891         * fold-const.c (fold_convert_const_int_from_int): Do not
12892         set overflow if that occured only because of a sign extension
12893         change when converting from/to a sizetype with the same
12894         precision and signedness.
12895
12896 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
12897
12898         PR debug/34249
12899         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
12900         location address to the correct place.  Update copyright year.
12901
12902 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12903
12904         * lambda-code.c (lambda_transform_legal_p): Handle the case of
12905         no dependences in the dependence_relations vector.
12906
12907 2008-01-16  Jan Hubicka  <jh@suse.cz>
12908
12909         PR rtl-optimization/31396
12910         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
12911         * cfg.c (dump_reg_info): Print it.
12912         * regs.h (struct reg_info_t): add freq_calls_crossed.
12913         (REG_FREQ_CALLS_CROSSED): New macro.
12914         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
12915         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
12916         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
12917         regmove_optimize): Update call crossed frequencies.
12918         * local-alloc.c (struct qty): Add freq_calls_crossed.
12919         (alloc_qty): Copute freq_calls_crossed.
12920         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
12921         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
12922         * ra.h (struct allocno): Add freq_calls_crossed.
12923
12924 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12925
12926         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
12927         libgomp when compiling with ftree-parallelize-loops.
12928         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
12929
12930 2008-01-16  Richard Guenther  <rguenther@suse.de>
12931
12932         PR tree-optimization/34769
12933         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
12934         * tree.c (int_cst_value): Instead make this function more
12935         permissive in what it accepts as valid input.  Document this
12936         function always sign-extends the value.
12937
12938 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
12939             Richard Guenther  <rguenther@suse.de>
12940
12941         PR c/34668
12942         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
12943         (gimple_fold_indirect_ref_rhs): ... this.
12944         (gimple_fold_indirect_ref): New function with foldings
12945         that preserve lvalueness.
12946         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
12947         * tree-flow.h (gimple_fold_indirect_ref): Declare.
12948         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
12949         to fold an INDIRECT_REF, fall back to the old use of
12950         fold_indirect_ref_1.
12951
12952 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12953
12954         * tree-data-ref.c (subscript_dependence_tester_1): Call 
12955         free_conflict_function.
12956         (compute_self_dependence): Same.
12957
12958 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
12959
12960         PR debug/34249
12961         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
12962         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
12963         function global.
12964         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
12965         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
12966         for DWARF2_UNWIND_INFO targets.
12967
12968 2008-01-16  Richard Guenther  <rguenther@suse.de>
12969
12970         PR c/34768
12971         * c-typeck.c (common_pointer_type): Do not merge inconsistent
12972         type qualifiers for function types.
12973
12974 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
12975
12976         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
12977         loop_iterator li from previous commit.
12978
12979 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
12980
12981         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
12982
12983 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
12984
12985         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
12986         (parallelize_loops): Don't parallelize irreducible components.
12987
12988 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12989
12990         PR c++/24924
12991         * c-opts (c_common_post_options): Do not enable CPP
12992         flag_pedantic_errors by default.
12993         
12994 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
12995
12996         PR rtl-optimization/31944
12997         * cse.c (remove_pseudo_from_table): New function.
12998         (merge_equiv_classes): Use above function to remove pseudo-registers.
12999         (invalidate): Likewise.
13000
13001 2008-01-13  Richard Guenther  <rguenther@suse.de>
13002
13003         PR middle-end/34601
13004         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
13005         instead of TYPE_MODE to deal with calls from expand_one_error_var.
13006
13007 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
13008
13009         * gcse.c (cprop_jump): Call validate_unshare_change instead of
13010         validate_change to unshare the source of the PC set.
13011
13012 2008-01-12  Jan Hubicka  <jh@suse.cz>
13013
13014         PR middle-end/32135
13015         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
13016         references above array bounds.  This might trigger bounds checks for
13017         pointers to arrays.
13018
13019 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
13020
13021         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
13022         new_replaceable_dependencies.
13023
13024 2008-01-12  Doug Kwan  <dougkwan@google.com>
13025
13026         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
13027         instead of OPT_Wreturn_type in warning due to ignored return type
13028         qualifiers.
13029         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
13030         options included in -Wextra.
13031         * c.opt: New option -Wignored_qualifiers.
13032         * doc/invoke.texi (Warning Options, -Wextra): Add new option
13033         -Wignore_qualifiers.
13034         (-Wignored-qualifiers): Document.
13035         (-Wreturn-type): Remove description of functionality now handled
13036         by -Wignored-qualifiers.
13037
13038 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
13039
13040         PR ada/33788
13041         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
13042         NOP_EXPR if it is between integral types with the same precision.
13043
13044 2008-01-12  Jan Hubicka  <jh@suse.cz>
13045
13046         PR other/28023
13047         * invoke.texi (max-inline-recursive-depth): Fix default value.
13048
13049 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
13050
13051         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
13052         correct type.
13053
13054 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
13055         
13056         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
13057         
13058 2008-01-11  James E. Wilson  <wilson@specifix.com>
13059
13060         PR target/26015
13061         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
13062
13063 2008-01-11  Anatoly Sokolov <aesok@post.ru>
13064
13065         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
13066         save/restore frame pointer register and don't use 'call-prologues' 
13067         optimization in function with "OS_task" attribute.
13068
13069 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
13070
13071         PR middle-end/31309
13072         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
13073         when copying to memory.
13074
13075 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
13076
13077         PR rtl-optimization/30905
13078         * cfgcleanup.c: Include dce.h
13079         (crossjumps_occured): New global variable.
13080         (try_crossjump_bb): Exit loop after finding a fallthru edge.
13081         If something changed, set crossjumps_occured to true.
13082         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
13083         Don't add/remove fake edges to exit here...
13084         (cleanup_cfg): ...but do it here, when crossjumping.
13085         Run a fast DCE when successful crossjumps occured in the latest
13086         iteration of try_optimize_cfg.
13087
13088 2008-01-11  Richard Guenther  <rguenther@suse.de>
13089
13090         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
13091         (struct vn_unary_op_s): Likewise.
13092         (vn_reference_insert): Free old reference on hash collision.
13093
13094 2008-01-10  Raksit Ashok  <raksit@google.com>
13095
13096         PR rtl-optimization/27971
13097         * combine.c (find_split_point): Split PLUS expressions which are
13098         inside a MEM rtx, and whose first operand is complex.
13099
13100 2008-01-10  DJ Delorie  <dj@redhat.com>
13101
13102         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
13103         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
13104         (m32c_hard_regno_ok): Call the underlying function.
13105
13106 2008-01-10  Richard Guenther  <rguenther@suse.de>
13107
13108         PR middle-end/34683
13109         * tree-cfg.c (tree_merge_blocks): Do not go through the
13110         full-blown folding and stmt updating path if we just deal
13111         with virtual operands.
13112         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
13113         test for abnormal SSA_NAMEs.
13114
13115 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
13116
13117         PR middle-end/34641
13118         * reload.c (push_reload): Add assertions.  All constants from
13119         reg_equiv_constant should have been used for replacing the respective
13120         pseudo earlier.
13121         (find_reloads_address): Invoke find_reloads_address_part for
13122         constant taken from the reg_equiv_constant array.
13123
13124 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
13125
13126         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
13127         field (valnum) the first in the struct.  Replace bools with
13128         unit bit fields.
13129
13130 2008-01-10  Richard Guenther  <rguenther@suse.de>
13131
13132         PR tree-optimization/34651
13133         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
13134         types and ordering for masking and converting.
13135
13136 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
13137
13138         PR tree-optimization/34017
13139         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
13140         also for PHI_NODE expressions.
13141
13142 2008-01-09  Jan Hubicka  <jh@suse.cz>
13143
13144         PR tree-optimization/34708
13145         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
13146         based on number of case labels.
13147         (init_inline_once): Remove switch_cost.
13148         * tree-inline.h (eni_weights_d): Remove switch_cost.
13149
13150 2008-01-09  Richard Guenther  <rguenther@suse.de>
13151         Andrew Pinski  <andrew_pinski@playstation.sony.com>
13152
13153         PR middle-end/30132
13154         * gimplify.c (gimplify_cond_expr): Do not create an addressable
13155         temporary if an rvalue is ok or an lvalue is not required.
13156
13157 2008-01-09  Richard Guenther  <rguenther@suse.de>
13158
13159         PR middle-end/34458
13160         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
13161         adjust return type.
13162
13163 2008-01-09  Richard Guenther  <rguenther@suse.de>
13164
13165         PR middle-end/34679
13166         * tree.c (host_integerp): Check for sizetype only if the
13167         type is an integer type.
13168
13169 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
13170
13171         PR debug/26364
13172         * opts.c (decode_options): Disable inlining of functions called
13173         once if not in unit-at-a-time mode.
13174
13175 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
13176
13177         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
13178
13179 2008-01-08  Richard Guenther  <rguenther@suse.de>
13180
13181         PR middle-end/31863
13182         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
13183         out early if the result will be unused.
13184
13185 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
13186
13187         PR target/34709
13188         Revert:
13189
13190         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13191         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13192         for TARGET_RECIP.       
13193         
13194 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
13195         
13196         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
13197         for vectorization tuned.
13198         
13199 2008-01-08  Richard Guenther  <rguenther@suse.de>
13200
13201         PR tree-optimization/34683
13202         * tree-ssa-operands.c (operand_build_cmp): Export.
13203         * tree-ssa-operands.h (operand_build_cmp): Declare.
13204         * tree-vn.c (vuses_compare): Remove.
13205         (sort_vuses): Use operand_build_cmp.
13206         (sort_vuses_heap): Likewise.
13207         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
13208         to re-use old VEC if available.  Do not sort already sorted VUSEs.
13209         (vdefs_to_vec): Do not sort already sorted VDEFs.
13210
13211 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
13212
13213         PR middle-end/34694
13214         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
13215
13216 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
13217
13218         PR target/34702
13219         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
13220         limitations of reciprocal sequences on x86 targets.
13221
13222 2008-01-08  Richard Guenther  <rguenther@suse.de>
13223
13224         PR tree-optimization/34683
13225         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
13226
13227 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
13228
13229         PR target/34622
13230         * config/darwin.c (darwin_mergeable_string_section): Don't use
13231         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
13232
13233 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
13234
13235         PR target/34682
13236         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
13237         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
13238         predicates of op0 and op1 to register_operand.
13239         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
13240         expander using X87MODEF mode iterator.  Change predicates of
13241         op0 and op1 to register_operand.
13242         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
13243         corresponding patterns and macroize using MODEF macro.  Change
13244         predicates of op0 and op1 to register_operand and remove
13245         "m" constraint. Disparage "r" alternative with "!".
13246         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
13247         macroize using X87MODEF macro.  Change predicates of op0 and op1
13248         to register_operand and remove "m" constraint.  Disparage "r"
13249         alternative with "!".
13250         (absneg splitter with memory operands): Remove.
13251         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
13252         patterns and macroize using X87MODEF mode iterator.
13253         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
13254         Change predicate of op1 to register_operand.
13255         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
13256         for memory operands.
13257
13258 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
13259
13260         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
13261
13262 2008-01-07  Richard Guenther  <rguenther@suse.de>
13263
13264         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
13265         fields.
13266
13267 2008-01-07  Richard Guenther  <rguenther@suse.de>
13268
13269         PR tree-optimization/34683
13270         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
13271         VOPs of the needed size to save memory.  Use VEC_quick_push
13272         to save compile-time.
13273         (vdefs_to_vec): Likewise.
13274
13275 2008-01-07  Sa Liu  <saliu@de.ibm.com>
13276
13277         * config/spu/spu.md (divdf3): Genetate inline code for double
13278         division.  The implementation doesn't handle INF or NAN, therefore it
13279         only applies when -ffinite-math-only is given.
13280
13281 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
13282
13283         PR libstdc++/34680
13284         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
13285         * doc/cpp.texi ([Common Predefined Macros]): Document.
13286
13287 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
13288
13289         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
13290         order to use commutative addition instead of subtraction.
13291
13292 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13293             Mircea Namolaru  <namolaru@il.ibm.com>
13294             Vladimir Yanovsky  <yanov@il.ibm.com>
13295             Revital Eres  <eres@il.ibm.com>
13296
13297         PR tree-optimization/34263
13298         * tree-outof-ssa.c (process_single_block_loop_latch,
13299         contains_tree_r): New functions.
13300         (analyze_edges_for_bb): Call process_single_block_loop_latch
13301         function to empty single-basic-block latch block if possible.
13302
13303 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13304
13305         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13306         for TARGET_RECIP.
13307         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
13308
13309 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13310
13311         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
13312
13313 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13314
13315         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
13316
13317 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
13318
13319         PR tree-optimization/34618
13320         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
13321         flag from T.
13322
13323 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13324
13325         PR target/34673
13326         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
13327         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
13328         Update copyright year.
13329
13330         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
13331         Update copyright year.
13332         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
13333         using NR fixup.
13334
13335 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
13336
13337         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
13338         edge does not point to current bb before changing need_assert.
13339
13340 2008-01-04  Richard Guenther  <rguenther@suse.de>
13341
13342         PR middle-end/34029
13343         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
13344         for verifying purposes if they are is_gimple_min_invariant.
13345
13346 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
13347
13348         PR tree-optimization/34448
13349         PR tree-optimization/34465
13350         * gimplify.c (gimplify_init_constructor): Add new parameter
13351         notify_temp_creation.  Use it.
13352         (gimplify_modify_expr_rhs): Take volatiles into account when
13353         optimizing constructors.
13354         Do not optimize constructors if gimplify_init_constructor will dump to
13355         memory.
13356         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
13357         * gcc.c-torture/compile/pr34448.c: New.
13358
13359 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
13360
13361         PR gcov-profile/34609
13362         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
13363         return_slot if result is TREE_ADDRESSABLE.
13364
13365 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
13366
13367         * config/mips/mips.md (sqrt_condition): Tweak comment.
13368         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
13369
13370 2008-01-03  Tom Tromey  <tromey@redhat.com>
13371
13372         PR c/34457
13373         * c-common.c (c_type_hash): Handle VLAs.
13374
13375 2008-01-03  Jan Hubicka  <jh@suse.cz>
13376
13377         PR tree-optimization/31081
13378         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
13379         0 when inlining and not inlining to first basic block.
13380         (remap_decl): When var is initialized to 0, don't set default_def.
13381         (expand_call_inline): Set entry_bb.
13382         * tree-inline.h (copy_body_data): Add entry_bb.
13383
13384 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13385
13386         PR c++/34619
13387         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
13388         before returning.
13389
13390         PR tree-optimization/29484
13391         * tree-inline.c (inline_forbidden_p_2): New function.
13392         (inline_forbidden_p): Disallow inlining if some static var
13393         has an address of a local LABEL_DECL in its initializer.
13394         * doc/extend.texi (Labels as Values): Document &&foo behaviour
13395         vs. inlining.
13396
13397 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
13398
13399         PR tree-optimization/34635
13400         * tree-data-ref.c (add_other_self_distances): Make sure that the
13401         evolution step is constant.
13402
13403 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13404
13405         PR middle-end/34608
13406         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
13407
13408 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
13409
13410         * tree-sra.c (scalarize_init): Insert the generate_element_init
13411         statements after the generate_element_zero statements.
13412
13413 2008-01-02  Richard Guenther  <rguenther@suse.de>
13414
13415         PR middle-end/34093
13416         PR middle-end/31976
13417         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
13418         for very large number of operands instead of ICEing.
13419
13420 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
13421
13422         PR target/34013
13423         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
13424         while stack probing.
13425
13426 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
13427
13428         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
13429         in C++0x mode.
13430
13431 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
13432
13433         PR libmudflap/26442
13434         * tree-mudflap.c (mx_register_decls): Guard warning by
13435         !DECL_ARTIFICIAL check.
13436
13437 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
13438
13439         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
13440         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
13441         sse5_perm<mode>): Fix constraints.