OSDN Git Service

* config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
2
3         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
4
5 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6
7         * alias.c (record_alias_subset, init_alias_analysis): Fix
8         -Wc++-compat and/or -Wcast-qual warnings.
9         * attribs.c (lookup_attribute_spec): Likewise.
10         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
11         copy_bb, connect_traces,
12         find_rarely_executed_basic_blocks_and_cr): Likewise.
13         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
14         note_btr_set, migrate_btr_defs): Likewise.
15         * builtins.c (result_vector, expand_builtin_memcpy,
16         expand_builtin_mempcpy_args, expand_builtin_strncpy,
17         builtin_memset_read_str, expand_builtin_printf,
18         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
19         Likewise.
20         * caller-save.c (mark_set_regs): Likewise.
21         * calls.c (expand_call, emit_library_call_value_1): Likewise.
22         * cgraph.c (cgraph_edge): Likewise.
23         * combine.c (likely_spilled_retval_1): Likewise.
24         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
25         htab_counts_entry_del, get_coverage_counts): Likewise.
26         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
27         new_cselib_val): Likewise.
28         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
29         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
30         Likewise.
31         * df-core.c (df_compact_blocks): Likewise.
32         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
33         * df-scan.c (df_grow_reg_info, df_ref_create,
34         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
35         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
36         df_record_entry_block_defs, df_record_exit_block_uses,
37         df_bb_verify): Likewise.
38         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
39         DF_REF_EXTRACT_MODE_CONST): New.
40         * dominance.c (get_immediate_dominator, get_dominated_by,
41         nearest_common_dominator, root_of_dom_tree,
42         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
43         -Wc++-compat and/or -Wcast-qual warnings.
44         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
45         record_store, replace_read, check_mem_read_rtx, scan_insn,
46         dse_step1, dse_record_singleton_alias_set): Likewise.
47         * dwarf2asm.c (dw2_force_const_mem): Likewise.
48
49 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
50
51         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
52         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
53         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
54         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
55         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
56         add_ranges_num, add_ranges_by_labels, file_info_cmp,
57         file_name_acquire, output_file_names, add_const_value_attribute,
58         premark_used_types_helper, file_table_eq, file_table_hash,
59         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
60         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
61         -Wcast-qual warnings.
62         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
63         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
64         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
65         gen_reg_rtx, start_sequence, init_emit): Likewise.
66         * et-forest.c (et_new_occ, et_new_tree): Likewise.
67         * except.c (init_eh_for_function, gen_eh_region,
68         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
69         arh_to_landing_pad, arh_to_label, add_action_record,
70         add_call_site, switch_to_exception_section): Likewise.
71         * expmed.c (synth_mult): Likewise.
72         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
73         store_expr): Likewise.
74         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
75         Likewise.
76         * function.c (assign_stack_temp_for_type,
77         allocate_struct_function, match_asm_constraints_1): Likewise.
78         * gcov-io.c (gcov_allocate): Likewise.
79         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
80         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
81         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
82         record_one_set, insert_expr_in_table, insert_set_in_table,
83         dump_hash_table, compute_hash_table_work, alloc_hash_table,
84         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
85         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
86         -Wcast-qual warnings.
87
88 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
89
90         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
91         -Wcast-qual warnings.
92         * gcc.c (process_command): Likewise.
93         * genattrtab.c (oballoc): Use XOBNEW.
94         (oballocvec): Define.
95         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
96         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
97         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
98         -Wc++-compat and/or -Wcast-qual warnings.
99         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
100         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
101         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
102         gen_presence_absence_set, gen_automaton, gen_regexp_el,
103         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
104         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
105         add_excls, process_presence_absence_names,
106         process_presence_absence_patterns, add_presence_absence,
107         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
108         get_free_state, add_arc, get_free_automata_list_el,
109         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
110         transform_3, cache_presence, create_ainsns, create_automata,
111         create_state_ainsn_table, dfa_insn_code_enlarge,
112         output_trans_func, output_min_issue_delay_func,
113         output_dead_lock_func, output_reset_func,
114         output_get_cpu_unit_code_func, output_dfa_start_func,
115         expand_automata): Likewise.
116         * genextract.c (gen_insn): Likewise.
117         * gengtype-lex.l: Likewise.
118         * gengtype.c (read_input_list, adjust_field_type,
119         process_gc_options): Likewise.
120         * genoutput.c (note_constraint): Likewise.
121         * genpreds.c (mangle, add_constraint): Likewise.
122         * genrecog.c (process_define_predicate, new_decision,
123         add_to_sequence): Likewise.
124         * gensupport.c (record_insn_name): Likewise.
125
126 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
127
128         * config/i386/driver-i386.c (detect_caches_amd,
129         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
130         and/or -Wcast-qual warnings.
131         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
132         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
133         gt_pch_save): Likewise.
134         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
135         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
136         * global.c (compute_regsets): Likewise.
137         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
138         finish_graph_dump_file): Likewise.
139         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
140         unlink_bb_notes): Likewise.
141         * integrate.c (get_hard_reg_initial_val): Likewise.
142         * ipa-prop.c (ipa_push_func_to_list): Likewise.
143         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
144         * local-alloc.c (update_equiv_regs): Likewise.
145         * loop-invariant.c (check_invariant_table_size,
146         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
147         Likewise.
148         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
149         altered_reg_used, mark_altered): Likewise.
150         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
151         insert_var_expansion_initialization,
152         combine_var_copies_in_loop_exit, apply_opt_in_copies,
153         release_var_copies): Likewise.
154         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
155         analyze_matrix_decl, add_allocation_site, analyze_transpose,
156         analyze_accesses_for_phi_node, check_var_notmodified_p,
157         check_allocation_function, find_sites_in_func,
158         record_all_accesses_in_func, transform_access_sites,
159         transform_allocation_sites): Likewise.
160         * omp-low.c (new_omp_region, create_omp_child_function_name,
161         check_omp_nesting_restrictions, check_combined_parallel,
162         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
163         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
164         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
165         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
166         Likewise.
167         * opts-common.c (prune_options): Likewise.
168         * opts.c (add_input_filename, print_filtered_help,
169         get_option_state): Likewise.
170         * params.c (add_params): Likewise.
171         * passes.c (set_pass_for_id, next_pass_1,
172         do_per_function_toporder, pass_fini_dump_file): Likewise.
173         * postreload.c (reload_cse_simplify_operands): Likewise.
174         * predict.c (tree_predicted_by_p, tree_predict_edge,
175         clear_bb_predictions, combine_predictions_for_bb): Likewise.
176
177 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
178
179         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
180         warnings.
181         * recog.c (check_asm_operands, validate_change_1): Likewise.
182         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
183         subst_asm_stack_regs): Likewise.
184         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
185         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
186         * regmove.c (reg_is_remote_constant_p): Likewise.
187         * regrename.c (regrename_optimize, scan_rtx_reg,
188         kill_clobbered_value, kill_set_value, kill_autoinc_value):
189         Likewise.
190         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
191         regstat_compute_calls_crossed): Likewise.
192         * reload1.c (init_reload, new_insn_chain,
193         has_nonexceptional_receiver, reload, copy_reloads,
194         calculate_needs_all_insns, init_elim_table): Likewise.
195         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
196         * rtl.c (shallow_copy_rtx_stat): Likewise.
197         * rtlanal.c (parms_set): Likewise.
198         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
199         sbitmap_resize, sbitmap_vector_alloc): Likewise.
200         * sched-ebb.c (earliest_block_with_similiar_load,
201         add_deps_for_risky_insns): Likewise.
202         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
203         schedule_region): Likewise.
204         * see.c (eq_descriptor_pre_extension,
205         hash_descriptor_pre_extension, hash_del_pre_extension,
206         eq_descriptor_properties, hash_descriptor_properties,
207         hash_del_properties, see_seek_pre_extension_expr,
208         see_initialize_data_structures, see_print_register_properties,
209         see_print_pre_extension_expr, see_delete_merged_def_extension,
210         see_delete_unmerged_def_extension, see_emit_use_extension,
211         see_pre_delete_extension, see_map_extension, see_commit_changes,
212         see_analyze_merged_def_local_prop,
213         see_analyze_merged_def_local_prop,
214         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
215         see_set_prop_merged_def, see_set_prop_unmerged_def,
216         see_set_prop_unmerged_use, see_print_one_extension,
217         see_merge_one_use_extension, see_merge_one_def_extension,
218         see_store_reference_and_extension, see_update_uses_relevancy,
219         see_update_defs_relevancy): Likewise.
220         * statistics.c (hash_statistics_hash, hash_statistics_eq,
221         hash_statistics_free, curr_statistics_hash): Likewise.
222         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
223         expand_asm_operands, expand_return, case_bit_test_cmp,
224         expand_case): Likewise.
225         * stor-layout.c (start_record_layout): Likewise.
226         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
227         gt_pch_save_stringpool): Likewise.
228         * tree-data-ref.c (hash_stmt_vertex_info,
229         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
230         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
231
232 2008-06-25 Uros Bizjak  <ubizjak@gmail.com>
233
234         PR target/36627
235         * config/i386/i386.md : Change constraints of HImode and QImode
236         immediate operands from "i" to "n".  Change SImode "ni" constraint to
237         "i" and SImode "rmi" constraint to "g".  Remove all constraints
238         from const0_operand and const1_operand predicated operands.
239         (i): Change QImode and HImode attribute from "i" to "n".
240         (*subqi_2): Change HImode operands to QImode.
241         (*subqi_3): Ditto.
242
243 2008-06-25  Olivier Hainque  <hainque@adacore.com>
244
245         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
246         sed substitutions.
247
248 2008-06-25  Richard Guenther  <rguenther@suse.de>
249
250         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
251         not overflow the result type.
252
253 2008-06-25  Richard Guenther  <rguenther@suse.de>
254
255         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
256         (vn_lookup): Likewise.
257
258 2008-06-25  Richard Guenther  <rguenther@suse.de>
259
260         PR tree-optimization/35518
261         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
262         * tree-sra.c (instantiate_element): Use fold_build3 to build
263         BIT_FIELD_REFs.
264         (try_instantiate_multiple_fields): Likewise.
265
266 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
267
268         * config/rs6000/rs6000.md: Change all string instruction's clobber to
269         be early clobbers.
270
271 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
272
273         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
274         use_backchain_to_restore_sp to true
275         if the offset of the link register save area would go over the 32k - 1
276         offset limit of the load
277         instructions.
278
279 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
280
281         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
282         anchor for the type-punning blurb.  Cross-reference "Structures
283         unions enumerations and bit-fields implementation".  Provide a
284         cast-through-pointer example.  Make final sentence self-contained.
285         * doc/implement-c.texi (Structures unions enumerations and
286         bit-fields implementation): Cross-reference the type-punning blurb
287         in the -fstrict-aliasing documentation.
288
289 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
290
291         PR middle-end/36594
292         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
293         the memory instead of the memory itself for the save area.
294
295 2008-06-24  Olivier Hainque  <hainque@adacore.com>
296             Nicolas Roche  <roche@adacore.com>
297
298         * gengtype.c (srcdir_len): size_t instead of int.
299         (get_file_realbasename): New function.  For F a filename, the real
300         basename of F, with all the path components stripped.
301         (get_file_srcdir_relative_path): New function.  For F a filename, the
302         relative path to F from $(srcdir).
303         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
304         get_file_realbasename.  Adjust the head comment.
305         (get_prefix_langdir_index): New function. For F a filename, return the
306         lang_dir_names[] relative index of the language directory that is
307         a prefix in F.
308         (get_file_langdir): For F a filename, return the name of the language
309         directory where F is located.
310         (get_file_gtfilename): New function. The gt- output file name for an
311         input filename F.
312         (get_output_file_with_visibility): Replace in-line computations with
313         uses of get_file_gtfilename and get_prefix_langdir_index.
314         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
315
316 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
317
318         PR tree-optimization/36504
319         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
320         references without base address.
321
322 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
323
324         PR middle-end/36584
325         * calls.c (expand_call): Increase alignment for recursive functions.
326
327 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
328
329         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
330         (TARGET_FUNCTION_VALUE): New define.
331         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
332         * config/avr/avr.h (FUNCTION_VALUE): Remove.
333
334 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
335
336         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
337         (fmod<mode>3): Ditto.
338         (remainderxf3): Ditto.
339         (remainder<mode>3): Ditto.
340
341 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
342
343         PR target/36533
344         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
345         REG is a hard register.
346
347         PR tree-optimization/36508
348         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
349         499, don't check it at all in release compilers.
350
351 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
352
353         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
354         together with SSE_TARGET_MATH to disable insn pattern.
355         (*fop_<MODEF:mode>_2_i387): Ditto.
356         (*fop_<MODEF:mode>_3_i387): Ditto.
357
358 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
359
360         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
361         
362 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
363
364         PR middle-end/34906
365         * gimplify.c (gimplify_asm_expr): Check the return code of
366         parse_output_constraint call, set function return and is_inout
367         value if it failed.
368
369 2008-06-22  Ian Lance Taylor  <iant@google.com>
370
371         * c-lex.c (narrowest_unsigned_type): Change itk to int.
372         (narrowest_signed_type): Likewise.
373         * c-typeck.c (c_common_type): Change local variable mclass to enum
374         mode_class, twice.
375         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
376         tcc_comparison, not the tree code itself.
377         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
378         (c_expand_expr): Cast modifier to enum expand_modifier.
379         * c-common.h (C_RID_CODE): Add casts.
380         (C_SET_RID_CODE): Define.
381         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
382         (c_lex_one_token): Add cast to avoid warning.
383         (c_parser_objc_type_name): Rename local typename to type_name.
384         (check_no_duplicate_clause): Change code parameter to enum
385         omp_clause_code.
386         (c_parser_omp_var_list_parens): Change kind parameter to enum
387         omp_clause_code.
388         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
389         c_parser_omp_list_var_parens.
390         (c_parser_omp_threadprivate): Likewise.
391         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
392         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
393         * c-format.c (NO_FMT): Define.
394         (printf_length_specs): Use NO_FMT.
395         (asm_fprintf_length_specs): Likewise.
396         (gcc_diag_length_specs): Likewise.
397         (scanf_length_specs): Likewise.
398         (strfmon_length_specs): Likewise.
399         (gcc_gfc_length_specs): Likewise.
400         (printf_flag_specs): Change 0 to STD_C89.
401         (asm_fprintf_flag_specs): Likewise.
402         (gcc_diag_flag_specs): Likewise.
403         (gcc_cxxdiag_flag_specs): Likewise.
404         (scanf_flag_specs): Likewise.
405         (strftime_flag_specs): Likewise.
406         (strfmon_flag_specs): Likewise.
407         (print_char_table): Likewise.
408         (asm_fprintf_char_table): Likewise.
409         (gcc_diag_char_table): Likewise.
410         (gcc_tdiag_char_table): Likewise.
411         (gcc_cdiag_char_table): Likewise.
412         (gcc_cxxdiag_char_table): Likewise.
413         (gcc_gfc_char_table): Likewise.
414         (scan_char_table): Likewise.
415         (time_char_table): Likewis.
416         (monetary_char_table): Likewise.
417         * c-format.h (BADLEN): Likewise.
418
419 2008-06-21  Ian Lance Taylor  <iant@google.com>
420
421         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
422         Define END_OF_BASE_TREE_CODES around inclusion.
423         * tree.c (tree_code_type): New global array.
424         (tree_code_length, tree_code_name): Likewise.
425         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
426         $(lang_tree_files).
427         (all-tree.def, s-alltree): New targets.
428         (gencheck.h, s-gencheck): Remove.
429         (tree.o): Depend upon all-tree.def.
430         (build/gencheck.o): Remove gencheck.h dependency.
431         (mostlyclean): Don't remove gencheck.h.
432         * c-common.h (enum c_tree_code): Remove.
433         * c-lang.c (tree_code_type): Remove.
434         (tree_code_length, tree_code_name): Remove.
435         * gencheck.c (tree_codes): Include all-tree.def, rather than
436         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
437         after it is used.
438         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
439         than tree.def.
440         * cp/cp-tree.h (enum cplus_tree_code): Remove.
441         (operator_name_info): Size to MAX_TREE_CODES.
442         (assignment_operator_name_info): Likewise.
443         * cp/cp-lang.c (tree_code_type): Remove.
444         (tree_code_length, tree_code_name): Remove.
445         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
446         (assignment_operator_name_info): Likewise.
447         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
448         MAX_TREE_CODES.
449         * cp/mangle.c (write_expression): Likewise.
450         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
451         * fortran/f95-lang.c (tree_code_type): Remove.
452         (tree_code_length, tree_code_name): Remove.
453         * java/java-tree.h (enum java_tree_code): Remove.
454         * java/lang.c (tree_code_type): Remove.
455         (tree_code_length, tree_code_name): Remove.
456         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
457         * objc/objc-act.h (enum objc_tree_code): Remove.
458         * objc/objc-lang.c (tree_code_type): Remove.
459         (tree_code_length, tree_code_name): Remove.
460         * objcp/objcp-lang.c (tree_code_type): Remove.
461         (tree_code_length, tree_code_name): Remove.
462         * ada/ada-tree.h (enum gnat_tree_code): Remove.
463         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
464         * ada/misc.c (tree_code_type): Remove.
465         (tree_code_length, tree_code_name): Remove.
466
467 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
468
469         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
470         the grand_bitmap_obstack.
471
472 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
473
474         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
475         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
476         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
477         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
478         move_stmt_r, new_label_mapper): Likewise.
479         * tree-complex.c (cvc_lookup): Likewise.
480         * tree-dfa.c (create_function_ann): Likewise.
481         * tree-dump.c (dump_register): Likewise.
482         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
483         find_phi_replacement_condition): Likewise.
484         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
485         tree_function_versioning): Likewise.
486         * tree-into-ssa.c (cmp_dfsnum): Likewise.
487         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
488         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
489         get_nonlocal_debug_decl, convert_nonlocal_reference,
490         convert_nonlocal_omp_clauses, get_local_debug_decl,
491         convert_local_reference, convert_local_omp_clauses,
492         convert_nl_goto_reference, convert_nl_goto_receiver,
493         convert_tramp_reference, convert_call_expr): Likewise.
494         * tree-outof-ssa.c (contains_tree_r): Likewise.
495         * tree-parloops.c (reduction_phi, initialize_reductions,
496         eliminate_local_variables_1, add_field_for_reduction,
497         add_field_for_name, create_phi_for_local_result,
498         create_call_for_reduction_1, create_loads_for_reductions,
499         create_stores_for_reduction, create_loads_and_stores_for_name):
500         Likewise.
501         * tree-phinodes.c (allocate_phi_node): Likewise.
502         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
503         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
504         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
505         * tree-ssa-coalesce.c (compare_pairs): Likewise.
506         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
507         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
508         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
509         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
510         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
511         vn_nary_op_insert): Likewise.
512         * tree-ssa.c (redirect_edge_var_map_add,
513         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
514         * tree-vectorizer.c (vectorize_loops): Likewise.
515         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
516         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
517         tree_cons_stat, build1_stat, build_variant_type_copy,
518         decl_init_priority_lookup, decl_fini_priority_lookup,
519         decl_priority_info, decl_restrict_base_lookup,
520         decl_restrict_base_insert, decl_debug_expr_lookup,
521         decl_debug_expr_insert, decl_value_expr_lookup,
522         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
523         type_hash_add, get_file_function_name, tree_check_failed,
524         tree_not_check_failed, tree_range_check_failed,
525         omp_clause_range_check_failed, build_omp_clause,
526         build_vl_exp_stat): Likewise.
527         * value-prof.c (gimple_histogram_value,
528         gimple_duplicate_stmt_histograms): Likewise.
529         * var-tracking.c (attrs_list_insert, attrs_list_copy,
530         unshare_variable, variable_union_info_cmp_pos, variable_union,
531         dataflow_set_different_1, dataflow_set_different_2,
532         vt_find_locations, variable_was_changed, set_variable_part,
533         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
534         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
535         section_entry_hash, object_block_entry_eq,
536         object_block_entry_hash, create_block_symbol,
537         initialize_cold_section_name, default_function_rodata_section,
538         strip_reg_name, set_user_assembler_name, const_desc_eq,
539         build_constant_desc, output_constant_def, lookup_constant_def,
540         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
541         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
542         default_internal_label): Likewise.
543         * varray.c (varray_init, varray_grow): Likewise.
544         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
545
546 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
547
548         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
549         operators for "test" insn.  Macroize insn using SWI mode macro.
550         (*jcc_fused_2): Ditto.
551         (*jcc_fused_3): Macroize insn using SWI mode macro.
552         (*jcc_fused_4): Ditto.
553
554 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
555
556         * tree-ssa-pre.c: Fix typo in comment.
557         (init_antic, fini_antic): Add explicit funtions for
558         initializing and deinitializing ANTIC and AVAIL sets.
559         (create_expression_by_pieces): Fix typo in comment.
560         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
561         (execute_pre): Eventually dump details about ANTIC_IN.
562
563 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
564
565         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
566         * gcc.c (translate_options, init_spec, store_arg, read_specs,
567         add_to_obstack, file_at_path, find_a_file, execute,
568         add_preprocessor_option, add_assembler_option, add_linker_option,
569         process_command, insert_wrapper, do_option_spec, do_self_spec,
570         spec_path, do_spec_1, is_directory, main, used_arg,
571         getenv_spec_function): Likewise.
572         * tlink.c (symbol_hash_lookup, file_hash_lookup,
573         demangled_hash_lookup, symbol_push, file_push, frob_extension):
574         Likewise.
575
576 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
577
578         * doc/rtl.texi: Updated subreg section.
579
580 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
581
582         PR c++/36523
583         * cgraphunit.c (cgraph_process_new_functions): Don't clear
584         node->needed and node->reachable.
585         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
586         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
587         (expand_task_call): Don't call expand_task_copyfn.
588         (expand_task_copyfn): Renamed to...
589         (finalize_task_copyfn): ... this.
590
591 2008-06-19  Jan Hubicka  <jh@suse.cz>
592
593         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
594         clobbering framepointer.
595
596 2008-06-19  Jan Hubicka  <jh@suse.cz>
597
598         * tree-optimize.c (execute_early_local_optimizations): Set
599         cgraph_state only at first invocation.
600
601 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
602
603         * system.h (-Wc++-compat): Activate as a warning, no an error.
604
605 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
606
607         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
608         instead of "#" in insn asm template.
609         (*jcc_fused_2): Ditto.
610
611 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
612
613         * config/i386/i386.h (ix86_tune_indices)
614         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
615         (TARGET_FUSE_CMP_AND_BRANCH): New define.
616         * config/i386/i386.md (*jcc_fused_1): New insn pattern
617         (*jcc_fused_2): Ditto.
618         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
619         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
620         (print operand): Handle 'E' and 'e' code.
621
622 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
623
624         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
625         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
626         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
627
628 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
629
630         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
631         node->decl.
632         (cgraph_expand_function): Use local copy of decl.
633         (cgraph_expand_all_functions): Remove redundant initialization of
634         order_pos.
635         (cgraph_optimize): Reword internal_error message.
636
637 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
638
639         * arm-protos.h (arm_return_in_memory): Remove public
640         arm_return_in_memory() prototype.
641         * arm.c (arm_return_in_memory): Add static prototype, add target
642         hook macro, change definition and comments.
643         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
644
645 2008-06-19  Ben Elliston  <bje@au.ibm.com>
646
647         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
648         real.c: Remove references to IEEE 754R.
649         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
650         * doc/libgcc.texi (Decimal float library routines): Likewise.
651
652 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
653
654         * targhooks.h (struct gcc_target): New member unwind_word_mode.
655         (default_unwind_word_mode): Add prototype.
656         * targhooks.c (default_unwind_word_mode): New function.
657         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
658         instead of word_mode.
659         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
660         (TARGET_INITIALIZER): Use it.
661
662         * c-common.c (handle_mode_attribute): Support "unwind_word"
663         mode attribute.
664         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
665
666         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
667         word_mode to access SjLj_Function_Context member "data".
668         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
669         conversion from targetm.eh_return_filter_mode () to
670         targetm.unwind_word_mode () if they differ.
671
672         * builtin-types.def (BT_UNWINDWORD): New primitive type.
673         (BT_FN_UNWINDWORD_PTR): New function type.
674         (BT_FN_WORD_PTR): Remove.
675         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
676         * except.c (expand_builtin_extend_pointer): Convert pointer to
677         targetm.unwind_word_mode () instead of word_mode.
678
679         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
680         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
681         (spu_unwind_word_mode): New function.
682         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
683         (TARGET_UNWIND_WORD_MODE): Define.
684         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
685
686 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
687
688         * config/spu/spu.c (reg_align): Remove.
689         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
690         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
691         (spu_split_store): Likewise.
692
693 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
694
695         * gcc/tree-vn.c: Fix typo in comment.
696
697 2008-06-18  Jan Hubicka  <jh@suse.cz>
698
699         * cgraphunit.c (cgraph_optimize): Output debug info when doing
700         toplevel reorder too.
701
702 2008-06-18  Jan Hubicka  <jh@suse.cz>
703
704         * c-opts.c (c_common_post_options): PCH is not compatible with
705         no-unit-at-a-time.
706         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
707         -fno-toplevel-reorder by default now.
708
709 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
710
711         PR documentation/30739
712         * doc/install.texi (Prerequisites): Document dependency on awk.
713
714 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
715             Ian Lance Taylor  <iant@google.com>
716
717         PR rtl-optimization/35604
718         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
719         only want to change jump destinations, not eventual label comparisons.
720
721 2008-06-16  Jan Hubicka  <jh@suse.cz>
722
723         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
724         syntax errors.
725         (cgraph_analyze_function): Likewise.
726
727 2008-06-16  Jan Hubicka  <jh@suse.cz>
728
729         * cgraph.h (cgraph_mark_if_needed): New function.
730         * cgraphunit.c (cgraph_mark_if_needed): New function.
731         * c-decl.c (duplicate_decl): Use it.
732
733 2008-06-16  Jan Hubicka  <jh@suse.cz>
734
735         * cgraph.c (cgraph_add_new_function): When in expansion state, do
736         lowering.
737
738 2008-06-16  Jan Hubicka  <jh@suse.cz>
739
740         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
741
742 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
743             Kazu Hirata  <kazu@codesourcery.com>
744             Maxim Kuvyrkov  <maxim@codesourcery.com
745
746         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
747         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
748         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
749         EXTRA_SPEC_FUNCTIONS.
750         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
751         (DRIVER_SELF_SPECS): Adjust.
752         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
753         * config/mips/st.h, config/mips/t-st: New.
754         * config/mips/driver-native.c, config/mips/x-native: New.
755         * doc/invoke.texi (MIPS): Document 'native' value for -march and
756         -mtune options.
757
758 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
759
760         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
761         from it.
762         (ISA_HAS_FP_CONDMOVE): New macro.
763         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
764         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
765         (ISA_HAS_NMADD3_NMSUB3): New macro.
766         * config/mips/mips.c (mips_rtx_costs): Update.
767         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
768         compiling for ST Loongson 2E/2F.
769         (madd<mode>): Rename to madd4<mode>.  Update.
770         (madd3<mode>): New pattern.
771         (msub<mode>): Rename to msub4<mode>.  Update.
772         (msub3<mode>): New pattern.
773         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
774         (nmadd3<mode>): New pattern.
775         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
776         (nmadd3<mode>_fastmath): New pattern.
777         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
778         (nmsub3<mode>): New pattern.
779         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
780         (nmsub3<mode>_fastmath): New pattern.
781         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
782
783 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
784
785         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
786         (DF_REF_INSN_INFO): New.
787         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
788         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
789         with a NULL DF_REF_INSN_INFO.
790         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
791         DF_INSN_SET.
792         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
793         DF_INSN_INFO_EQ_USES): New.
794         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
795         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
796         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
797         * df-core.c: Update comment for above changes.
798         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
799         DF_INSN_UID_* macros.
800         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
801         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
802         insn rtx.  Update all callers.
803         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
804         df_ref_create_structure, df_insn_refs_collect): Likewise.
805         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
806         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
807         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
808         macros to access the insn refs.
809         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
810         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
811         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
812         for accessing the refs.
813         (try_fwprop_subst): Likewise.
814         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
815         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
816         for accessing the refs.
817         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
818         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
819         to look at the insn refs.
820         (record_uses): Likewise.
821         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
822         function anymore.
823         (mark_artificial_uses): Don't mark_insn for artificial refs.
824         (mark_reg_rependencies): Likewise.
825
826         * doc/rtl.texi: Remove documentation of ADDRESSOF.
827
828 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
829
830         * configure: Regenerate.
831
832 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
833
834         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
835         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
836         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
837
838 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
839
840         * config/avr/avr.c (avr_mcu_t): Add attiny167.
841         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
842         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
843
844 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
845
846         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
847         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
848         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
849
850 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
851
852         * tree-ssa-sccvn.c: Fix format of comments.
853
854 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
855
856         * cgraph.c: Remove unneeded forward declarations of eq_node()
857         and hash_node().
858
859 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
860
861         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
862         REG_RETVAL notes.
863         (see_update_relevancy): Likewise.
864         * fwprop.c (try_fwprop_subst): Likewise.
865         * rtlanal.c (noop_move_p): Likewise.
866         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
867         notes to non-existing libcall blocks.
868         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
869         Remove orig_set.
870         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
871         (dead_libcall_p): Remove.
872         (delete_trivially_dead_insns): Don't use it.
873         * web.c (union_defs): Remove comment about keeping nops.
874         * gcse.c (hash_scan_insn): Don't take libcall pointers.
875         (compute_hash_table_work): Don't track libcall notes.
876         (do_local_cprop): Don't take libcall pointers.  Don't update
877         libcall notes.
878         (adjust_libcall_notes): Deleted.
879         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
880         ever have existed in the first place).
881         (replace_store_insn): Don't try to remove libcall notes.
882         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
883         (resolve_reg_notes): Don't call them.
884         (resolve_simple_move): Likewise.
885         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
886         Don't remove REG_RETVAL notes.
887         * emit-rtl.c (try_split): Don't update libcall notes.
888         (emit_copy_of_insn_after): Dito.
889         * cselib.c (cselib_current_insn_in_libcall): Remove.
890         (cselib_process_insn): Don't set/clear it.
891         (new_elt_loc_list): Don't record it.
892         (cselib_init): Don't initialize it.
893         * cselib.c (struct elt_loc_list): Remove in_libcall field.
894         * loop-invariant.c (find_invariant_insn): Don't look for libcall
895         notes.
896         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
897         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
898         (init_deps): Don't initialize it.
899         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
900         * combine.c (delete_noop_moves): Don't update libcall notes.
901         (can_combine_p): Remove now pointless #if 0 block.
902         (try_combine): Remove another obsolete #if 0 block.
903         (distribute_notes): Don't distribute libcall notes.
904         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
905         * dce.c (libcall_dead_p): Remove.
906         (delete_unmarked_insns): Don't handle libcall blocks.
907         (preserve_libcall_for_dce): Remove.
908         (prescan_insns_for_dce): Don't special-case libcall block insns.
909         * reload1 (reload): Don't handle libcall notes. 
910         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
911         documentation.
912
913 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
914
915         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
916         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
917         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
918
919 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
920
921         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
922         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
923         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
924
925 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
926
927         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
928
929 2008-06-16  Ira Rosen  <irar@il.ibm.com>
930
931         PR tree-optimization/36493
932         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
933         the arguments list. Use VECTYPE to create vector pointer.
934         (vectorizable_store): Fail if accesses through a pointer to vectype
935         do not alias the original memory reference operands.
936         Call vect_create_data_ref_ptr without the removed argument.
937         (vectorizable_load): Likewise.
938         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
939         removed argument.
940
941 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
942
943         PR target/36336
944         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
945         reg_equiv_constant.
946
947 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
948
949         * config/mips/loongson2ef.md: New file.
950         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
951         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
952         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
953         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
954         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
955         and loongson_2f.
956         (loongson2ef.md): New include.
957         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
958         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
959         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
960         (loongson_gt_<mode>, loongson_extract_halfword)
961         (loongson_insert_halfword_0, loongson_insert_halfword_2)
962         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
963         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
964         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
965         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
966         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
967         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
968         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
969         (vec_interleave_low<mode>): Define type attribute.
970         * config/mips/mips.c (mips_ls2): New static variable.
971         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
972         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
973         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
974         Implement target scheduling hooks.
975         (mips_multipass_dfa_lookahead): Update to handle tuning for
976         Loongson 2E/2F.
977         (mips_sched_init): Initialize data for Loongson scheduling.
978         (mips_ls2_variable_issue): New static function.
979         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
980         Add sanity check.
981         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
982         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
983         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
984         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
985         Handle ST Loongson 2E/2F cores.
986         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
987
988 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
989
990         * omp-low.c (extract_omp_for_data): Fix comment typo.
991         * c.opt: Fix typo.
992
993 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
994
995         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
996         FIXME note about gcc/config.guess.
997         * doc/options.texi (Option file format): Remove non-ASCII bytes.
998         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
999         * doc/cppopts.texi: Likewise.
1000         * doc/extend.texi: Likewise.
1001         * doc/gcc.texi: Likewise.
1002         * doc/gccint.texi: Likewise.
1003         * doc/gcov.texi: Likewise.
1004         * doc/gty.texi: Likewise.
1005         * doc/hostconfig.texi: Likewise.
1006         * doc/install.texi: Likewise.
1007         * doc/invoke.texi: Likewise.
1008         * doc/loop.texi: Likewise.
1009         * doc/makefile.texi: Likewise.
1010         * doc/md.texi: Likewise.
1011         * doc/passes.texi: Likewise.
1012         * doc/tm.texi: Likewise.
1013         * doc/tree-ssa.texi: Likewise.
1014         * doc/trouble.texi: Likewise.
1015
1016 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
1017             Nathan Sidwell  <nathan@codesourcery.com>
1018             Maxim Kuvyrkov  <maxim@codesourcery.com>
1019             Richard Sandiford  <rdsandiford@googlemail.com>
1020         
1021         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
1022         * config/mips/mips-protos.h (mips_expand_vector_init): New.
1023         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
1024         builtins.
1025         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
1026         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
1027         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
1028         V8QImode cases.
1029         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
1030         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
1031         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
1032         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
1033         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
1034         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
1035         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
1036         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
1037         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
1038         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
1039         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
1040         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
1041         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
1042         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
1043         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
1044         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
1045         (mips_builtins): Add Loongson builtins.
1046         (mips_loongson_2ef_bdesc): New.
1047         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
1048         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
1049         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
1050         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
1051         New.
1052         (mips_expand_vector_init): New.
1053         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
1054         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
1055         if appropriate.
1056         * config/mips/mips.md: Add unspec numbers for Loongson
1057         builtins.  Include loongson.md.
1058         (MOVE64): Include Loongson vector modes.
1059         (SPLITF): Include Loongson vector modes.
1060         (HALFMODE): Handle Loongson vector modes.
1061         * config/mips/loongson.md: New.
1062         * config/mips/loongson.h: New.
1063         * config.gcc: Add loongson.h header for mips*-*-* targets.
1064         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
1065
1066 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
1067
1068         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
1069         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
1070         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
1071         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
1072         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
1073         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
1074         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
1075         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
1076         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
1077         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
1078         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
1079         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
1080         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
1081         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
1082         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
1083         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
1084         Remove use_fixproto=yes.
1085         (ia64*-*-hpux*): Remove comment about using fixproto.
1086         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
1087
1088 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1089
1090         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
1091         library rebuilds.
1092         * configure: Regenerate.
1093
1094 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1095
1096         PR middle-end/36520
1097         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
1098         before evaluating it.
1099
1100 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
1101
1102         PR c/36507
1103         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
1104         nested inline functions.
1105         (start_decl, start_function): Don't invert DECL_EXTERNAL
1106         for nested inline functions.
1107
1108 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1109
1110         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
1111         splits that must be made for correctness.
1112
1113 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1114
1115         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
1116         (AVAIL_NON_MIPS16): Likewise.
1117         (mips_builtin_description): Replace target_flags with a predicate.
1118         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
1119         (dspr2_32): New availability predicates.
1120         (MIPS_BUILTIN): New macro.
1121         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
1122         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
1123         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
1124         Replace the TARGET_FLAGS parameters with AVAIL parameters.
1125         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
1126         (mips_dsp_32only_bdesc): Merge into...
1127         (mips_builtins): ...this new array.
1128         (mips_bdesc_map, mips_bdesc_arrays): Delete.
1129         (mips_init_builtins): Update after above changes.
1130         (mips_expand_builtin_1): Merge into...
1131         (mips_expand_builtin): ...here and update after above changes.
1132
1133 2008-06-12  Paul Brook  <paul@codesourcery.com>
1134
1135         * longlong.h (__arm__): Define count_leading_zeros.
1136         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
1137         (clzsi2, clzdi2): New functions.
1138         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
1139         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
1140         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
1141         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
1142         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
1143         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
1144         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
1145         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1146         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
1147         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
1148
1149 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
1150
1151         * config/m68k/m68k.c (m68k_tune_flags): New.
1152         (override_options): Compute m68k_tune_flags.
1153         (MULL_COST, MULW_COST): Update for various variants of CFV2.
1154         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
1155
1156 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1157
1158         PR middle-end/36506
1159         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
1160
1161 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1162
1163         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
1164         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
1165
1166 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1167
1168         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
1169         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
1170
1171 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1172
1173         PR middle-end/36506
1174         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
1175         reductions.
1176
1177 2008-06-12  Richard Guenther  <rguenther@suse.de>
1178
1179         PR tree-optimization/36345
1180         * tree-flow.h (struct ptr_info_def): Align escape_mask,
1181         add memory_tag_needed flag.
1182         (may_alias_p): Declare.
1183         * tree-ssa-alias.c (may_alias_p): Export.
1184         (set_initial_properties): Use memory_tag_needed flag.
1185         (update_reference_counts): Likewise.
1186         (reset_alias_info): Reset memory_tag_needed flag.
1187         (create_name_tags): Check memory_tag_needed flag.
1188         (dump_points_to_info_for): Dump it.
1189         * tree-ssa-structalias.c (struct variable_info): Remove
1190         directly_dereferenced flag.
1191         (new_var_info): Do not initialize it.
1192         (process_constraint_1): Do not set it.
1193         (update_alias_info): Set is_dereferenced flag.
1194         (set_uids_in_ptset): Use may_alias_p.
1195         (set_used_smts): Check memory_tag_needed flag.
1196         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
1197         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
1198         memory_tag_needed flag.
1199         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
1200         from broken design.
1201
1202 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
1203
1204         * config/i386/i386.c (ix86_compute_frame_layout): Disable
1205         red zone for w64 abi.
1206         (ix86_expand_prologue): Likewise.
1207         (ix86_force_to_memory): Likewise.
1208         (ix86_free_from_memory): Likewise.
1209
1210 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
1211
1212         PR target/36425
1213         * config/rs6000/rs6000.c (rs6000_override_options): Set
1214         rs6000_isel conditionally to the absence of comand line override.
1215         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
1216         Remove duplicate rs6000_isel setting.
1217         * config/rs6000/eabispe.h: Ditto.
1218
1219 2008-06-11  Richard Guenther  <rguenther@suse.de>
1220
1221         * alias.c (get_alias_set): Use the element alias-set for arrays.
1222         (record_component_aliases): For arrays and vectors do nothing.
1223         * c-common.c (strict_aliasing_warning): Handle the cases
1224         of alias set zero explicitly.
1225         * Makefile.in (dfp.o-warn): Add -Wno-error.
1226
1227 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1228
1229         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
1230         tune_32 tune_64.
1231         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
1232         tune_32 tune_64 to supported_defaults.  Allow values not
1233         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
1234         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
1235         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
1236         with_cpu_64 to generic for 64-bit-supporting configurations, not
1237         with_cpu.  Remove FIXMEs.
1238         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
1239         --with-arch-64, --with-tune-32, --with-tune-64): Document.
1240         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
1241         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
1242         arch_32 and arch_64.
1243
1244 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1245             Olivier Hainque  <hainque@adacore.com>
1246
1247         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
1248         Use DECL_SIZE_UNIT to retrieve the size of the field.
1249
1250 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1251
1252         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
1253         with function calls after declarations.  Lay out
1254         neon_float_type_node before further use.
1255
1256 2008-06-11  Richard Guenther  <rguenther@suse.de>
1257
1258         * tree-flow.h (may_point_to_global_var): Declare.
1259         * tree-ssa-alias.c (may_point_to_global_var): New function.
1260         * tree-ssa-sink.c (is_hidden_global_store): Use it.
1261
1262 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
1263
1264         * configure.ac: Teach that fido supports .debug_line.
1265         * configure: Regenerate.
1266
1267 2008-06-10  Tom Tromey  <tromey@redhat.com>
1268
1269         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
1270         debug hook.
1271
1272 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1273
1274         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
1275         (encode_decimal64, decode_decimal64, encode_decimal128,
1276         decode_decimal128): Reverse order of 32-bit parts of value if host
1277         and target endianness differ.
1278
1279 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
1280
1281         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
1282         Avoid division by 0.
1283         (tree_mod_pow2_value_transform): Likewise.
1284         (tree_ic_transform): Likewise.
1285         (tree_stringops_transform): Likewise.
1286         (tree_mod_subtract_transform): Likewise.
1287         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
1288         (copy_edges_for_bb): Likewise.
1289         (initialize_cfun): Likewise.
1290
1291 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1292
1293         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
1294         nonmemory_operand. Add "N" operand constraint.
1295         (*btsi): Ditto.
1296         (*jcc_btdi_mask_rex64): New instruction and split pattern.
1297         (*jcc_btsi_mask): Ditto.
1298         (*jcc_btsi_mask_1): Ditto.
1299
1300 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1301
1302         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
1303         TYPE_CANONICAL for copied element type.
1304
1305 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1306
1307         PR target/36473
1308         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
1309         Add m_CORE2 and m_GENERIC.
1310         * config/i386/predicates.md (bt_comparison_operator): New predicate.
1311         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
1312         (*btsi): Ditto.
1313         (*jcc_btdi_rex64): New instruction and split pattern.
1314         (*jcc_btsi): Ditto.
1315         (*jcc_btsi_1): Ditto.
1316         (*btsq): Fix Intel asm dialect operand order.
1317         (*btrq): Ditto.
1318         (*btcq): Ditto.
1319
1320 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
1321
1322         PR middle-end/36447
1323         * simplify-rtx.c (simplify_subreg): Add check for shift count 
1324         greater than size.
1325
1326 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
1327
1328         * doc/md.texi: Synchronize with later constraints.md change.
1329         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
1330         with a C implementation.
1331         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
1332         MFLO handling.
1333         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
1334         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
1335         when moving to and from MD_REGNUM.
1336         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
1337         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
1338         Handle byte and halfword moves.
1339         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
1340         separately.
1341         * config/mips/constraints.md (h): Turn into NO_REGS.
1342         (l, x): Update documentation.
1343         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
1344         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
1345         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
1346         (HILO): New mode iterator.
1347         (MOVE128): Add TI.
1348         (any_div): New code iterator.
1349         (u): Extend code attribute to div and udiv.
1350         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
1351         d_operand in the splitters.  Remove redundant CONST_INT checks.
1352         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
1353         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
1354         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
1355         accordingly, using normal moves instead of unspecs to move LO into
1356         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
1357         (<u>mulsidi3): Handle expansion in C code.
1358         (<u>mulsidi3_32bit_internal): Rename to...
1359         (<u>mulsidi3_32bit): ...this.
1360         (<u>mulsidi3_32bit_r4000): Fix insn separator.
1361         (*<u>mulsidi3_64bit): Rename to...
1362         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
1363         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
1364         to set LO and HI to the multiplication result.  Use a normal move
1365         for MFLO and an unspec for MFHI.
1366         (*<u>mulsidi3_64bit_parts): Replace with...
1367         (<u>mulsidi3_64bit_hilo): ...this new instruction.
1368         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
1369         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
1370         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
1371         instead of HI.  Split the instruction into a separate multiplication
1372         and MFHI if !TARGET_FIX_R4000.
1373         (<su>muldi3_highpart): Likewise.
1374         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
1375         and the "=h" clobber.
1376         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
1377         (<u>mulditi3): New expander.
1378         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
1379         (madsi): Remove "=h" clobber.
1380         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
1381         Force the modulus result to be a GPR and split the instruction into
1382         a division followed by an MFHI after reload.
1383         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
1384         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
1385         the MIPS16 HIGH define_split.
1386         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
1387         of acc<->gpr moves to "multi".
1388         (*movdi_64bit): Replace the single "x" alternative with
1389         alternatives for moving into and out of "a".
1390         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
1391         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
1392         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
1393         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
1394         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
1395         (movti): New expander.
1396         (*movti, *movti_mips16): New insns.
1397         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
1398         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
1399         (mthi<GPR:mode>_<HILO:mode>): Likewise.
1400         * config/mips/predicates.md (fpr_operand): Delete.
1401         (d_operand): New predicate.
1402
1403 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
1404
1405         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
1406         failure on some Bourne shells.
1407         (x86_64-*-*): Ditto.
1408
1409 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
1410
1411         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
1412
1413 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1414
1415         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
1416         (sparc-sun-solaris2*): Likewise.
1417
1418 2008-06-09  Arnaud Charlet  <charlet@adacore.com
1419
1420         * doc/install.texi: Update requirements to build the Ada compiler.
1421
1422 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
1423
1424         * df-scan.c (struct df_scan_problem_data): Remove the
1425         mw_link_pool alloc pool.
1426         (df_scan_free_internal): Don't free it.
1427         (df_scan_alloc): Don't allocate it.
1428         * df.h (struct df_link): Update comment.
1429
1430 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1431
1432         * except.h: Correct checks for when SJLJ exceptions must be used.
1433
1434 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1435
1436         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
1437         default.
1438         
1439 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
1440
1441         PR tree-optimization/36218
1442         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
1443         configure for the build system.
1444         (BUILD_LDFLAGS): Define.
1445         * configure: Regenerate.
1446         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
1447
1448 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
1449
1450         PR target/36424
1451         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
1452         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
1453         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
1454
1455 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
1456
1457         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
1458
1459 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
1460
1461         * config.gcc (Obsolete configurations): Remove list of
1462         configurations.
1463         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
1464         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
1465         targets matched by those patterns.
1466         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
1467         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
1468         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
1469         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
1470         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
1471         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1472         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
1473         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
1474         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
1475         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
1476         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
1477         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
1478         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
1479         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
1480         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
1481         Make code for Solaris 7 and greater unconditional for Solaris.
1482         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
1483         Remove --with-* handling.
1484         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
1485         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
1486         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
1487         LINK_OS_WINDISS_SPEC): Remove.
1488         * config/rs6000/sysv4.opt (mwindiss): Remove.
1489         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
1490         * configure: Regenerate.
1491         * doc/cpp.texi: Don't mention BeOS.
1492         * doc/extend.texi (interrupt): Don't mention MS1.
1493         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
1494         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
1495         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
1496         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
1497         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
1498         Remove.
1499         * doc/invoke.texi (MT Options): Remove.
1500         (-mwindiss): Remove.
1501         (CRIS Options): Remove cris-axis-aout references.
1502         (HPPA Options): Don't mention hppa1.1-*-pro.
1503         * doc/md.texi: (MorphoTech family): Remove.
1504         * libgcc2.c: Don't handle UWIN.
1505         * config/alpha/t-unicosmk: Remove.
1506         * config/alpha/unicosmk.h: Remove.
1507         * config/arm/kaos-arm.h: Remove.
1508         * config/arm/kaos-strongarm.h: Remove.
1509         * config/arm/strongarm-coff.h: Remove.
1510         * config/arm/strongarm-elf.h: Remove.
1511         * config/arm/strongarm-pe.h: Remove.
1512         * config/arm/t-strongarm-pe: Remove.
1513         * config/arm/t-xscale-coff: Remove.
1514         * config/arm/t-xscale-elf: Remove.
1515         * config/arm/xscale-coff.h: Remove.
1516         * config/arm/xscale-elf.h: Remove.
1517         * config/chorus.h: Remove.
1518         * config/cris/aout.h: Remove.
1519         * config/cris/aout.opt: Remove.
1520         * config/cris/t-aout: Remove.
1521         * config/i386/beos-elf.h: Remove.
1522         * config/i386/kaos-i386.h: Remove.
1523         * config/i386/ptx4-i.h: Remove.
1524         * config/i386/sco5.h: Remove.
1525         * config/i386/sco5.opt: Remove.
1526         * config/i386/sysv4-cpp.h: Remove.
1527         * config/i386/sysv5.h: Remove.
1528         * config/i386/t-beos: Remove.
1529         * config/i386/t-sco5: Remove.
1530         * config/i386/t-uwin: Remove.
1531         * config/i386/uwin.asm: Remove.
1532         * config/i386/uwin.h: Remove.
1533         * config/kaos.h: Remove.
1534         * config/mips/windiss.h: Remove.
1535         * config/mt: Remove directory.
1536         * config/pa/pa-osf.h: Remove.
1537         * config/pa/pa-pro-end.h: Remove.
1538         * config/pa/t-pro: Remove.
1539         * config/ptx4.h: Remove.
1540         * config/rs6000/beos.h: Remove.
1541         * config/rs6000/kaos-ppc.h: Remove.
1542         * config/rs6000/t-beos: Remove.
1543         * config/rs6000/windiss.h: Remove.
1544         * config/sh/kaos-sh.h: Remove.
1545         * config/sol2-6.h: Remove.
1546         * config/sparc/sol26-sld.h: Remove.
1547         * config/sparc/sysv4-only.h: Remove.
1548         * config/vax/bsd.h: Remove.
1549         * config/vax/t-memfuncs: Remove.
1550         * config/vax/ultrix.h: Remove.
1551         * config/vax/vaxv.h: Remove.
1552         * config/windiss.h: Remove.
1553
1554 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1555
1556         PR rtl-optimization/36438
1557         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
1558         for vector shifts with constant scalar shift operands.
1559
1560 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
1561
1562         * doc/invoke.texi: Document -march=xlr.
1563         * config/mips/xlr.md: New file.
1564         * config/mips/mips.md: Include it.
1565         (cpu): Add "xlr".
1566         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
1567         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
1568         (mips_rtx_cost_data): Likewise.
1569
1570 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
1571
1572         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
1573         PRE_INC and PRE_DEC cases.
1574
1575 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1576
1577         PR rtl-optimization/36419
1578         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
1579         the emitting jump insn.
1580
1581         PR target/36362
1582         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
1583         is not bool, boolify the whole *expr_p and convert to the desired type.
1584
1585 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1586
1587         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
1588         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
1589         Add omp_private_outer_ref hook, add another argument to
1590         omp_clause_default_ctor hook.
1591         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1592         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1593         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
1594         hook_tree_tree_tree_tree_null.
1595         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
1596         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
1597         * hooks.c (hook_tree_tree_tree_tree_null): New function.
1598         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
1599         * tree.def (OMP_TASK): New tree code.
1600         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
1601         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
1602         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
1603         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
1604         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
1605         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
1606         OMP_CLAUSE_COLLAPSE_EXPR): Define.
1607         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1608         (OMP_DIRECTIVE_P): Add OMP_TASK.
1609         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1610         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1611         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1612         and OMP_CLAUSE_UNTIED entries.
1613         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
1614         num_ops to 2.
1615         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1616         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1617         * tree-pretty-print.c (dump_omp_clause): Handle
1618         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1619         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1620         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1621         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
1622         warning about unsigned iterators.  Change decl/init/cond/incr
1623         arguments to TREE_VECs, check arguments for all collapsed loops.
1624         (c_finish_omp_taskwait): New function.
1625         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1626         ws_clauses.
1627         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
1628         default_function_array_conversion on init.  Add par_clauses argument.
1629         If decl is present in parallel's lastprivate clause, change it to
1630         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1631         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
1632         collapse count in clauses.
1633         (c_parser_omp_for, c_parser_omp_parallel): Adjust
1634         c_parser_omp_for_loop callers.
1635         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1636         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1637         (c_parser_omp_clause_name): Handle collapse and untied clauses.
1638         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1639         functions.
1640         (c_parser_omp_clause_schedule): Handle schedule(auto).
1641         Include correct location in the error message.
1642         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1643         and PRAGMA_OMP_CLAUSE_UNTIED.
1644         (OMP_TASK_CLAUSE_MASK): Define.
1645         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1646         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1647         * tree-nested.c (convert_nonlocal_omp_clauses,
1648         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1649         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1650         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1651         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1652         OMP_CLAUSE_DECL.
1653         (conver_nonlocal_reference, convert_local_reference,
1654         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
1655         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1656         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1657         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1658         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1659         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
1660         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
1661         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
1662         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1663         OMP_CLAUSE_UNTIED.
1664         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
1665         * c-common.h (c_finish_omp_taskwait): New prototype.
1666         * gimple-low.c (lower_stmt): Handle OMP_TASK.
1667         * tree-parloops.c (create_parallel_loop): Create 1 entry
1668         vectors for OMP_FOR_{INIT,COND,INCR}.
1669         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1670         (make_edges): Handle OMP_TASK.
1671         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
1672         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1673         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
1674         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
1675         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1676         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1677         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1678         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1679         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
1680         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
1681         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
1682         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
1683         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
1684         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
1685         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
1686         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
1687         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
1688         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
1689         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
1690         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
1691         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
1692         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
1693         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
1694         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
1695         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
1696         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
1697         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
1698         original iterator is present in lastprivate clause or if
1699         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
1700         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1701         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
1702         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
1703         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
1704         if it is set, lookup var in outer contexts too.  Handle
1705         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
1706         to be implicitly determined firstprivate for task regions.
1707         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
1708         if it is set, lookup var in outer contexts too.  Set
1709         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
1710         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
1711         OMP_CLAUSE_UNTIED.  Take region_type as last argument
1712         instead of in_parallel and in_combined_parallel.
1713         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1714         Adjust callers.
1715         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
1716         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
1717         (new_omp_context): Set default_kind to
1718         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
1719         (omp_region_type): New enum.
1720         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
1721         fields, add region_type.
1722         (new_omp_context): Take region_type as argument instead of is_parallel
1723         and is_combined_parallel.
1724         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
1725         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
1726         ctx->is_combined_parallel checks.
1727         (gimplify_omp_task): New function.
1728         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1729         OMP_CLAUSE_UNTIED.
1730         * omp-low.c (extract_omp_for_data): Use schedule(static)
1731         for schedule(auto).  Handle pointer and unsigned iterators.
1732         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
1733         Add loops argument.  Extract data for collapsed OMP_FOR loops.
1734         (expand_parallel_call): Assert sched_kind isn't auto,
1735         map runtime schedule to index 3.
1736         (struct omp_for_data_loop): New type.
1737         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
1738         Add loop, loops, collapse and iter_type fields.
1739         (workshare_safe_to_combine_p): Disallow combined for if
1740         iter_type is unsigned long long.  Don't combine collapse > 1 loops
1741         unless all bounds and steps are constant.  Adjust extract_omp_for_data
1742         caller.
1743         (expand_omp_for_generic): Handle pointer, unsigned and long long
1744         iterators.  Handle collapsed OMP_FOR loops.  Adjust
1745         for struct omp_for_data changes.  If libgomp function doesn't return
1746         boolean_type_node, add comparison of the return value with 0.
1747         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
1748         pointer, unsigned and long long iterators.  Adjust for struct
1749         omp_for_data changes.
1750         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
1751         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
1752         unsigned long long.  Allocate loops array, pass it to
1753         extract_omp_for_data.  For collapse > 1 loops use always
1754         expand_omp_for_generic.
1755         (omp_context): Add sfield_map and srecord_type fields.
1756         (is_task_ctx, lookup_sfield): New functions.
1757         (use_pointer_for_field): Use is_task_ctx helper.  Change first
1758         argument's type from const_tree to tree.  Clarify comment.
1759         In OMP_TASK disallow copy-in/out sharing.
1760         (build_sender_ref): Call lookup_sfield instead of lookup_field.
1761         (install_var_field): Add mask argument.  Populate both record_type
1762         and srecord_type if needed.
1763         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
1764         in srecord_type.
1765         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
1766         and DECL_FIELD_OFFSET.
1767         (scan_sharing_clauses): Adjust install_var_field callers.  For
1768         firstprivate clauses on explicit tasks allocate the var by value in
1769         record_type unconditionally, rather than by reference.
1770         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
1771         Use is_taskreg_ctx instead of is_parallel_ctx.
1772         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1773         (create_omp_child_function_name): Add task_copy argument, use
1774         *_omp_cpyfn* names if it is true.
1775         (create_omp_child_function): Add task_copy argument, if true create
1776         *_omp_cpyfn* helper function.
1777         (scan_omp_parallel): Adjust create_omp_child_function callers.
1778         Rename parallel_nesting_level to taskreg_nesting_level.
1779         (scan_omp_task): New function.
1780         (lower_rec_input_clauses): Don't run constructors for firstprivate
1781         explicit task vars which are initialized by *_omp_cpyfn*.  
1782         Pass outer var ref to omp_clause_default_ctor hook if
1783         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
1784         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
1785         OMP_CLAUSE_REDUCTION_INIT.
1786         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
1787         avoid duplicate setting of fields.  Handle
1788         OMP_CLAUSE_PRIVATE_OUTER_REF.
1789         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
1790         copy-out if TREE_READONLY, only copy-in.
1791         (expand_task_copyfn): New function.
1792         (expand_task_call): New function.
1793         (struct omp_taskcopy_context): New type.
1794         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
1795         New functions.
1796         (lower_omp_parallel): Rename to...
1797         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1798         Call create_task_copyfn if srecord_type is needed.  Adjust
1799         sender_decl type.
1800         (task_shared_vars): New variable.
1801         (check_omp_nesting_restrictions): Warn if work-sharing,
1802         barrier, master or ordered region is closely nested inside OMP_TASK.
1803         Add warnings for barrier if closely nested inside of work-sharing,
1804         ordered, or master region.
1805         (scan_omp_1): Call check_omp_nesting_restrictions even for
1806         GOMP_barrier calls.  Rename parallel_nesting_level to
1807         taskreg_nesting_level.  Handle OMP_TASK.
1808         (lower_lastprivate_clauses): Even if some lastprivate is found on a
1809         work-sharing construct, continue looking for them on parent parallel
1810         construct.
1811         (lower_omp_for_lastprivate): Add lastprivate clauses
1812         to the beginning of dlist rather than end.  Adjust for struct
1813         omp_for_data changes.
1814         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
1815         not after it.  Handle collapsed OMP_FOR loops, adjust for
1816         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
1817         (get_ws_args_for): Adjust extract_omp_for_data caller.
1818         (scan_omp_for): Handle collapsed OMP_FOR
1819         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1820         (lower_omp_single_simple): If libgomp function doesn't return
1821         boolean_type_node, add comparison of the return value with 0.
1822         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
1823         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
1824         (parallel_nesting_level): Rename to...
1825         (taskreg_nesting_level): ... this.
1826         (is_taskreg_ctx): New function.
1827         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
1828         of is_parallel_ctx.
1829         (execute_lower_omp): Rename parallel_nesting_level to
1830         taskreg_nesting_level.
1831         (expand_omp_parallel): Rename to...
1832         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1833         Call omp_task_call for OMP_TASK regions.
1834         (expand_omp): Adjust caller, handle OMP_TASK.
1835         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
1836
1837         * bitmap.c (bitmap_default_obstack_depth): New variable.
1838         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
1839         if argument is NULL and bitmap_default_obstack is already initialized.
1840         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
1841         at the end.
1842         * matrix-reorg.c (matrix_reorg): Likewise.
1843
1844 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
1845
1846         * config/i386/i386.md (*indirect_jump): Macroize using P
1847         mode iterator.  Remove !TARGET_64BIT from insn constraints.
1848         (*tablejump_1): Ditto.
1849         (*indirect_jump_rex64): Remove insn pattern.
1850         (*tablejump_1_rex64): Ditto.
1851         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
1852         and eh_return_si insn patterns.
1853
1854 2008-06-06  Richard Guenther  <rguenther@suse.de>
1855
1856         * tree-ssa-structalias.c (merge_smts_into): Remove.
1857         (find_what_p_points_to): Do not bother to compute the
1858         points-to set for pt_anything pointers.
1859         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1860         for pt_anything pointers is ok.
1861
1862 2008-06-06  Jan Hubicka  <jh@suse.cz>
1863
1864         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1865
1866 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1867
1868         * cgraph.c: Fix typos in comments.
1869         (cgraph_availability_names): Fix string typo.
1870         * fold-const.c: Fix typos in comments.
1871         (fold_binary): Fix typo in warning.
1872         * genautomata.c: Fix typos in comments.
1873         (check_presence_pattern_sets): Fix typo in local variable.
1874         (output_description): Fix typo in output.
1875         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1876         * hwint.h: Likewise.
1877         * matrix-reorg.c (check_allocation_function): Likewise.
1878         * omega.c (smooth_weird_equations): Likewise.
1879         * auto-inc-dec.c: Fix typos in comments.
1880         * bb-reorder.c: Likewise.
1881         * builtins.c: Likewise.
1882         * c-common.c: Likewise.
1883         * c-cppbuiltin.c: Likewise.
1884         * c-parser.c: Likewise.
1885         * c-pretty-print.c: Likewise.
1886         * cfgcleanup.c: Likewise.
1887         * cfgexpand.c: Likewise.
1888         * cfghooks.c: Likewise.
1889         * cfglayout.c: Likewise.
1890         * cfgloopmanip.c: Likewise.
1891         * cgraphunit.c: Likewise.
1892         * coverage.c: Likewise.
1893         * dbxout.c: Likewise.
1894         * df-byte-scan.c: Likewise.
1895         * df-core.c: Likewise.
1896         * df-problems.c: Likewise.
1897         * df-scan.c: Likewise.
1898         * dfp.c: Likewise.
1899         * dominance.c: Likewise.
1900         * domwalk.c: Likewise.
1901         * dse.c: Likewise.
1902         * dwarf2out.c: Likewise.
1903         * emit-rtl.c: Likewise.
1904         * et-forest.c: Likewise.
1905         * function.c: Likewise.
1906         * function.h: Likewise.
1907         * gcc.c: Likewise.
1908         * gcov-io.c: Likewise.
1909         * gcov.c: Likewise.
1910         * gcse.c: Likewise.
1911         * genattrtab.c: Likewise.
1912         * ggc-page.c: Likewise.
1913         * gimplify.c: Likewise.
1914         * gthr-lynx.h: Likewise.
1915         * haifa-sched.c: Likewise.
1916         * ipa-cp.c: Likewise.
1917         * ipa-inline.c: Likewise.
1918         * ipa-prop.h: Likewise.
1919         * ipa-pure-const.c: Likewise.
1920         * ipa-struct-reorg.c: Likewise.
1921         * ipa-struct-reorg.h: Likewise.
1922         * ipa-type-escape.c: Likewise.
1923         * ipa.c: Likewise.
1924         * loop-doloop.c: Likewise.
1925         * mips-tfile.c: Likewise.
1926         * mkmap-flat.awk: Likewise.
1927         * mkmap-symver.awk: Likewise.
1928         * modulo-sched.c: Likewise.
1929         * omp-low.c: Likewise.
1930         * optabs.c: Likewise.
1931         * optabs.h: Likewise.
1932         * opts.c: Likewise.
1933         * passes.c: Likewise.
1934         * postreload-gcse.c: Likewise.
1935         * postreload.c: Likewise.
1936         * predict.c: Likewise.
1937         * pretty-print.h: Likewise.
1938         * profile.c: Likewise.
1939         * protoize.c: Likewise.
1940         * ra-conflict.c: Likewise.
1941         * real.c: Likewise.
1942         * recog.c: Likewise.
1943         * regclass.c: Likewise.
1944         * regs.h: Likewise.
1945         * reload.c: Likewise.
1946         * rtl-error.c: Likewise.
1947         * rtlanal.c: Likewise.
1948         * scan.h: Likewise.
1949         * sched-rgn.c: Likewise.
1950         * see.c: Likewise.
1951         * stmt.c: Likewise.
1952         * target.h: Likewise.
1953         * tree-dfa.c: Likewise.
1954         * tree-eh.c: Likewise.
1955         * tree-flow-inline.h: Likewise.
1956         * tree-inline.c: Likewise.
1957         * tree-into-ssa.c: Likewise.
1958         * tree-loop-distribution.c: Likewise.
1959         * tree-nested.c: Likewise.
1960         * tree-parloops.c: Likewise.
1961         * tree-pass.h: Likewise.
1962         * tree-pretty-print.c: Likewise.
1963         * tree-profile.c: Likewise.
1964         * tree-scalar-evolution.c: Likewise.
1965         * tree-sra.c: Likewise.
1966         * tree-ssa-alias-warnings.c: Likewise.
1967         * tree-ssa-ccp.c: Likewise.
1968         * tree-ssa-coalesce.c: Likewise.
1969         * tree-ssa-dom.c: Likewise.
1970         * tree-ssa-dse.c: Likewise.
1971         * tree-ssa-forwprop.c: Likewise.
1972         * tree-ssa-live.c: Likewise.
1973         * tree-ssa-live.h: Likewise.
1974         * tree-ssa-loop-im.c: Likewise.
1975         * tree-ssa-loop-ivopts.c: Likewise.
1976         * tree-ssa-loop-niter.c: Likewise.
1977         * tree-ssa-loop-prefetch.c: Likewise.
1978         * tree-ssa-phiopt.c: Likewise.
1979         * tree-ssa-phiprop.c: Likewise.
1980         * tree-ssa-sccvn.c: Likewise.
1981         * tree-ssa-ter.c: Likewise.
1982         * tree-ssa-threadupdate.c: Likewise.
1983         * tree-ssa.c: Likewise.
1984         * tree-vect-analyze.c: Likewise.
1985         * tree-vect-transform.c: Likewise.
1986         * tree-vectorizer.c: Likewise.
1987         * tree-vn.c: Likewise.
1988         * tree-vrp.c: Likewise.
1989         * tree.c: Likewise.
1990         * tree.def: Likewise.
1991         * tree.h: Likewise.
1992         * unwind-dw2-fde.c: Likewise.
1993         * unwind.inc: Likewise.
1994         * value-prof.c: Likewise.
1995         * vmsdbgout.c: Likewise.
1996
1997 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
1998
1999         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
2000         always place FP constants in the TOC for TARGET_POWERPC64.
2001         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
2002
2003 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
2004
2005         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
2006         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
2007         enable for TARGET_E500_DOUBLE.
2008         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
2009         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
2010         floating-point modes like integer modes for E500 double.
2011         (rs6000_legitimate_offset_address_p): Likewise.
2012         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
2013         addressing for DDmode for E500 double.
2014         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
2015         modes as using 64-bits of registers for E500 double.
2016         (spe_build_register_parallel): Do not handle DDmode or TDmode.
2017         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
2018         specially for E500 double.
2019         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
2020         TDmode for E500 double.
2021         (rs6000_gimplify_va_arg): Only handle SDmode in registers
2022         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
2023         (rs6000_split_multireg_move): Do not handle TDmode specially for
2024         E500 double.
2025         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
2026         using 64-bit registers for E500 double.
2027         (emit_frame_save): Do not handle DDmode specially for E500 double.
2028         (gen_frame_mem_offset): Likewise.
2029         (rs6000_function_value): Do not call spe_build_register_parallel
2030         for DDmode or TDmode.
2031         (rs6000_libcall_value): Likewise.
2032         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
2033         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
2034         for E500 double.
2035
2036 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
2037
2038         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
2039         in comments.
2040
2041 2008-06-04  Junjie Gu <jgu@tensilica.com>
2042
2043         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
2044         comparison for frame pointers.
2045
2046 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2047
2048         PR target/27386
2049         * config/avr/avr.h (PUSH_ROUNDING): Remove.
2050
2051 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2052
2053         PR target/30243
2054         * builtins.c (expand_builtin_signbit): Don't take lowpart when
2055         register is already smaller or equal to required mode. 
2056
2057 2008-06-04  Xinliang David Li  <davidxl@google.com>
2058
2059         * tree-call-cdce.c: New file. 
2060         (cond_dead_built_in_calls): New static variable.
2061         (input_domain): New struct.
2062         (check_pow): New function.
2063         (check_builtin_call): Ditto.
2064         (check_target_format): Ditto.
2065         (is_call_dce_candidate): Ditto.
2066         (gen_one_condition): Ditto.
2067         (gen_conditions_for_domain): Ditto.
2068         (get_domain): Ditto.
2069         (gen_conditions_for_pow_cst_base): Ditto.
2070         (gen_conditions_for_pow_int_base): Ditto.
2071         (gen_conditions_for_pow): Ditto.
2072         (get_no_error_domain): Ditto.
2073         (gen_shrink_wrap_conditions): Ditto.
2074         (shrink_wrap_one_built_in_call): Ditto.
2075         (shink_wrap_conditional_dead_built_in_calls): Ditto.
2076         (tree_call_cdce): Ditto.
2077         (gate_call_cdce): Ditto.
2078         (pass_call_cdce): New gimple pass.
2079         * passes.c: (init_optimization_passes): New pass.
2080         * tree-pass.h: New pass declaration.
2081         * opts.c (decode_options): New flag setting.
2082         * common.opt: Add -ftree-builtin-call-dce flag.
2083         * Makefile.in: Add new source file.
2084         * tempvar.def: New tv_id.
2085         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
2086
2087 2008-06-04  Richard Guenther  <rguenther@suse.de>
2088
2089         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
2090         (is_call_clobbered): Always check var_ann->call_clobbered.
2091         (mark_call_clobbered): Always set var_ann->call_clobbered.
2092         (clear_call_clobbered): Always clear var_ann->call_clobbered.
2093         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
2094         (reset_alias_info): Clear call clobbering info on MTAGs and
2095         globals as well.
2096         (set_pt_anything): Set pt_global_mem.
2097         (create_tag_raw): Adjust comment.
2098         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
2099
2100 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
2101             Maxim Kuvyrkov  <maxim@codesourcery.com>
2102
2103         * config/m68k/m68k.opt (mxgot): New option.
2104         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
2105         (m68k_output_addr_const_extra): New.
2106         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
2107         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
2108         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
2109         * doc/invoke.texi (M680x0 Options): Document -mxgot.
2110
2111 2008-06-04  Richard Guenther  <rguenther@suse.de>
2112
2113         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
2114         negative or non-representable offsets.
2115
2116 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2117
2118         * config/i386/i386.c (ix86_gen_leave): New.
2119         (ix86_gen_pop1): Likewise.
2120         (ix86_gen_add3): Likewise.
2121         (ix86_gen_sub3): Likewise.
2122         (ix86_gen_sub3_carry): Likewise.
2123         (ix86_gen_one_cmpl2): Likewise.
2124         (ix86_gen_monitor): Likewise.
2125         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
2126         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
2127         ix86_gen_one_cmpl2 and ix86_gen_monitor.
2128         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
2129         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
2130         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
2131         (ix86_expand_epilogue): Updated.
2132         (print_operand): Handle integer register operand for 'z'.
2133         (ix86_expand_strlensi_unroll_1): Likewise.
2134         (ix86_expand_strlen): Likewise.
2135         (ix86_expand_builtin): Likewise.
2136         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
2137         mov{q}/mov{l} and add{q}/add{l}.
2138
2139 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2140
2141         * config/i386/i386.md (P): New mode iterator.
2142         (SFmode push_operand splitter): Macroize DImode and SImode pushes
2143         using P mode iterator.
2144         (DFmode push_operand splitter): Ditto.
2145         (XFmode push_operand splitter): Ditto.
2146         (DFmode float_extend SFmode push_operand splitter): Ditto.
2147         (XFmode float_extend SFmode push_operand splitter): Do not generate
2148         SImode pushes for 64bit target.  Macroize Dimode and SImode
2149         pushes using P mode iterator.
2150         (XFmode float_extend DFmode push_operand splitter): Ditto.
2151
2152 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2153
2154         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
2155         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
2156         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
2157         return type to int.
2158         (ix86_call_abi_override): Remove check for call_used_regs.
2159
2160 2008-06-03  Richard Guenther  <rguenther@suse.de>
2161
2162         * tree-ssa-structalias.c (find_func_aliases): Add constraints
2163         for the lhs of calls if the return type contains pointers.
2164
2165 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2166
2167         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
2168         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
2169         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
2170         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
2171         of cfun and DEFAULT_ABI to deceide abi mode.
2172         (DEFAULT_ABI): New.
2173         (REG_PARM_STACK_SPACE): Removed.
2174         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
2175         (STACK_BOUNDARY): Use default target to deceide stack boundary.
2176         * config/i386/i386-protos.h (ix86_cfun_abi): New.
2177         (ix86_function_abi): Likewise.
2178         (ix86_function_type_abi): Likewise.
2179         (ix86_call_abi_override): Likewise.
2180         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
2181         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
2182         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
2183         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
2184         specific defines.
2185         (X86_64_REGPARM_MAX): New.
2186         (X86_64_SSE_REGPARM_MAX): New.
2187         (X64_REGPARM_MAX): New.
2188         (X64_SSE_REGPARM_MAX): New.
2189         (X86_32_REGPARM_MAX): New.
2190         (X86_32_SSE_REGPARM_MAX): New.
2191         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
2192         (ix86_function_regparm): Handle user calling abi.
2193         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
2194         by DEFAULT_ABI versus SYSV_ABI check.
2195         (ix86_reg_parm_stack_space): New.
2196         (ix86_function_type_abi): New.
2197         (ix86_call_abi_override): New.
2198         (ix86_function_abi): New.
2199         (ix86_cfun_abi): New.
2200         (init_cumulative_args): Call abi specific initialization.
2201         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
2202         (function_arg_64): Extend SSE_REGPARM_MAX check.
2203         (function_arg (): Remove TARGET_64BIT_MS_ABI.
2204         (ix86_pass_by_reference): Likewise.
2205         (ix86_function_value_regno_p): Likewise.
2206         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
2207         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
2208         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
2209         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
2210         (setup_incoming_varargs_64): Adjust regparm for call abi.
2211         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
2212         (ix86_va_start): Likewise.
2213         (ix86_gimplify_va_arg): Likewise.
2214         (ix86_expand_prologue): Likewise.
2215         (output_pic_addr_const): Likewise.
2216         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
2217         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
2218         (x86_output_mi_thunk): Likewise.
2219         (x86_function_profiler): Likewise.
2220         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
2221         (SYSV_ABI, MS_ABI): New constants.
2222         (DEFAULT_ABI): New.
2223         (init_regs): Add prototype of function in regclass.c file.
2224         (OVERRIDE_ABI_FORMAT): New.
2225         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
2226         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
2227         (OUTGOING_REG_PARM_STACK_SPACE): New.
2228         (ix86_reg_parm_stack_space): New prototype.
2229         (CUMULATIVE_ARGS): Add call_abi member.
2230         (machine_function): Add call_abi member.
2231         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
2232         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
2233
2234 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
2235
2236         PR target/34879
2237         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
2238         (avr_builtin_setjmp_frame_value): New function.
2239         * config/avr/avr.md (nonlocal_goto_receiver): Define.
2240         (nonlocal_goto): Define.
2241
2242 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
2243
2244         * config/mips/mips.c (mips_emit_loadgp): Return early if
2245         there is nothing do to, otherwise emit a blockage if
2246         !TARGET_EXPLICIT_RELOCS || crtl->profile.
2247         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
2248
2249 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2250
2251         * configure.ac: Drop unneeded backslash ending up in config.in.
2252         * acinclude.m4: Likewise.
2253         * config.in: Regenerate.
2254
2255 2008-05-26  Jan Hubicka  <jh@suse.cz>
2256
2257         * predict.c (maybe_hot_frequency_p): Break out of...
2258         (maybe_hot_bb_p): ... here.
2259         (maybe_hot_edge_p): New.
2260         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
2261         * basic-block.h (maybe_hot_edge_p): Declare.
2262
2263 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2264
2265         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
2266         (*cmpfp_<mode>_cc): Ditto.
2267         (*fp_jcc_8<mode>_387): Ditto.
2268         (*fop_<MODEF:mode>_2_i387): Ditto.
2269         (*fop_<MODEF:mode>_3_i387): Ditto.
2270         (*fop_xf_2_i387): Ditto.
2271         (*fop_xf_3_i387): Ditto.
2272
2273 2008-06-02  Tomas Bily  <tbily@suse.cz>
2274
2275         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
2276
2277 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2278
2279         * config/mips/mips.c (mips_valid_offset_p): New function.
2280         (mips_valid_lo_sum_p): Likewise.
2281         (mips_classify_address): Use them.
2282         (mips_force_address): New function.
2283         (mips_legitimize_address): Use it.
2284         * config/mips/mips.md (MOVE128): New mode iterator.
2285         (movtf): Require TARGET_64BIT.  Remove empty strings.
2286         (*movtf_internal): Rename to...
2287         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
2288         of "R" and use {,fp}{load,store} attributes instead of "multi".
2289         Use a separate define_split.
2290         (*movtf_mips16): New pattern.
2291
2292 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2293
2294         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
2295         * config/mips/mips.c (mips_expand_before_return): New function.
2296         (mips_expand_epilogue): Call it.
2297         * config/mips/mips.md (return): Turn into a define_expand.
2298         (*return): New insn.
2299
2300 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2301
2302         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
2303         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
2304         functions.  Do not emit uses and clobbers of CONCATs; individually
2305         use and clobber their operands.
2306         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
2307         gen_clobber, emit_use and gen_use.
2308         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
2309         (expand_builtin_return): Likewise.
2310         * cfgbuild.c (count_basic_blocks): Likewise.
2311         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2312         * explow.c (emit_stack_restore): Likewise.
2313         * expmed.c (extract_bit_field_1): Likewise.
2314         * expr.c (convert_move, emit_move_complex_parts): Likewise.
2315         (emit_move_multi_word, store_constructor): Likewise.
2316         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
2317         (thread_prologue_and_epilogue_insns): Likewise.
2318         * lower-subreg.c (resolve_simple_move): Likewise.
2319         * optabs.c (widen_operand, expand_binop): Likewise.
2320         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
2321         * reload.c (find_reloads): Likewise.
2322         * reload1.c (eliminate_regs_in_insn): Likewise.
2323         * stmt.c (expand_nl_goto_receiver): Likewise.
2324         * config/alpha/alpha.md (builtin_longjmp): Likewise.
2325         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2326         * config/arm/arm.c (arm_load_pic_register): Likewise.
2327         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
2328         * config/arm/arm.md (untyped_return): Likewise.
2329         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
2330         * config/avr/avr.c (expand_prologue): Likewise.
2331         * config/bfin/bfin.c (do_unlink): Likewise.
2332         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
2333         * config/cris/cris.c (cris_expand_prologue): Likewise.
2334         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2335         (machopic_legitimize_pic_address): Likewise.
2336         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
2337         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
2338         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
2339         (ix86_expand_convert_uns_didf_sse): Likewise.
2340         (ix86_expand_vector_init_general): Likewise.
2341         * config/ia64/ia64.md (eh_epilogue): Likewise.
2342         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
2343         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
2344         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
2345         (config/iq2000/iq2000.c): Likewise.
2346         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2347         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2348         (builtin_longjmp): Likewise.
2349         * config/mn10300/mn10300.md (call, call_value): Likewise.
2350         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
2351         * config/pdp11/pdp11.md (abshi2): Likewise.
2352         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2353         * config/s390/s390.c (s390_emit_prologue): Likewise.
2354         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
2355         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
2356         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
2357         * config/sh/sh.c (prepare_move_operands): Likewise.
2358         (output_stack_adjust, sh_expand_epilogue): Likewise.
2359         (sh_set_return_address, sh_expand_t_scc): Likewise.
2360         * config/sparc/sparc.c (load_pic_register): Likewise.
2361         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
2362         * config/spu/spu.c (spu_expand_epilogue): Likewise.
2363         * config/v850/v850.c (expand_epilogue): Likewise.
2364
2365 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
2366
2367         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
2368         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
2369         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
2370         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
2371         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
2372         stack pointer register.
2373         (output_movhi): Remove code for interrupt specific writing to the 
2374         stack pointer register.
2375
2376 2008-05-31  Richard Guenther  <rguenther@suse.de>
2377
2378         PR tree-optimization/34244
2379         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
2380         (tree_expr_nonzero_warnv_p): Likewise.
2381         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
2382         ssa_name_nonnegative_p.
2383         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
2384         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
2385         not tree_expr_nonzero_warnv_p.
2386
2387         PR tree-optimization/36262
2388         Revert
2389         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
2390
2391         PR tree-optimization/34244
2392         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
2393         (record_numbers_of_iterations): New function.
2394         (execute_vrp): Cache the numbers of iterations of loops.
2395         * tree-scalar-evolution.c (scev_reset_except_niters):
2396         New function.
2397         (scev_reset): Use scev_reset_except_niters.
2398         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
2399
2400 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2401
2402         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2403         __WORKAROUND_RETS when appropriate.
2404
2405 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2406
2407         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
2408         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
2409         mode iterator.
2410         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
2411         *fop_df_comm_sse insn patterns using MODEF mode iterator.
2412         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
2413         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
2414         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
2415         *fop_df_1_mixed insn patterns using MODEF mode iterator.
2416         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
2417         *fop_df_1_sse insn patterns using MODEF mode iterator.
2418         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
2419         *fop_df_1_i387 insn patterns using MODEF mode iterator.
2420         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
2421         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
2422         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
2423         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
2424         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
2425         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
2426         (*fop_xf_4_i387): Use <MODE> for mode attribute.
2427         (*fop_xf_5_i387): Ditto.
2428         (*fop_xf_6_i387): Ditto.
2429
2430 2008-05-30  Richard Guenther  <rguenther@suse.de>
2431
2432         * builtins.c (build_string_literal): Avoid generating
2433         a non-gimple_val result.
2434
2435 2008-05-30  DJ Delorie  <dj@redhat.com>
2436
2437         * exec-tool.in: Use an environment variable (private) instead of a
2438         file (shared) as a semaphore, so as to not break parallel builds.
2439
2440 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2441
2442         * optabs.c (maybe_encapsulate_block): Remove.
2443         (emit_libcall_block): Adjust accordingly.
2444         * optabs.h (maybe_encapsulate_block): Remove prototype.
2445
2446         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
2447         Don't use maybe_encapsulate_block.
2448
2449 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2450
2451         * config/rs6000/rs6000.c (rs6000_legitimize_address,
2452         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
2453         rtx is a SYMBOL_REF before calling get_pool_constant.
2454
2455 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2456
2457         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
2458
2459 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
2460
2461         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
2462         rather than OS names to choose INO_T_EQ definition.
2463         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
2464         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
2465
2466 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
2467
2468         PR target/36348
2469         * config/darwin-f.c: New.
2470         * config/t-darwin: Added rule to build darwin-f.o.
2471         * config.gcc: Defined new variable, fortran_target_objs.
2472         (*-*-darwin*): Set fortran_target_objs.
2473         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
2474         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
2475         * configure: Regenerated.
2476
2477 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2478
2479         PR target/35771
2480         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
2481         canonical type if needed.
2482
2483 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2484
2485         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
2486
2487 2008-05-29  Richard Guenther  <rguenther@suse.de>
2488
2489         PR tree-optimization/36343
2490         PR tree-optimization/36346
2491         PR tree-optimization/36347
2492         * tree-flow.h (clobber_what_p_points_to): Declare.
2493         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
2494         pointed-to variable is dereferenced is irrelevant to whether
2495         the pointer can access the pointed-to variable.
2496         (clobber_what_p_points_to): New function.
2497         * tree-ssa-alias.c (set_initial_properties): Use it.
2498         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
2499         call clobber check for NMTs.
2500
2501 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2502         
2503         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
2504         for printing gcov_type.
2505
2506 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2507
2508         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
2509         and the eh region information.
2510         * value-prof.c (gimple_move_stmt_histograms): New function.
2511         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
2512
2513 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
2514
2515         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
2516
2517 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
2518
2519         * value-prof.c (tree_ic_transform): Print counts.
2520         * tree-profile.c (tree_gen_ic_func_profiler):
2521         Clear __gcov_indreict_call_callee variable to avoid misattribution
2522         of the profile.
2523
2524 2008-05-28  Rafael Espindola  <espindola@google.com>
2525
2526         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
2527         invalid sharing.
2528
2529 2008-05-28  Richard Guenther  <rguenther@suse.de>
2530
2531         PR tree-optimization/36339
2532         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
2533         and clobbering code out of the loop.
2534
2535 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2536
2537         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
2538         letters defined.
2539
2540         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
2541         s390_contiguous_bitmask_p, s390_symref_operand_p,
2542         s390_check_symref_alignment, s390_reload_larl_operand,
2543         s390_reload_symref_address): New functions.
2544         (s390_branch_condition_mnemonic): Support compare and branch
2545         instructions.
2546         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
2547         and 'W' constraints.
2548         (s390_secondary_reload): Add secondary reloads for unaligned
2549         symbol refs or symbol refs to floating point or QI/TI mode
2550         integer values.
2551         (legitimate_address_p): Accept symbol references as addresses.
2552         (s390_expand_insv): Use rotate and insert selected bits
2553         instruction for insv when building for z10.
2554         (print_operand_address): Handle symbol ref addresses.
2555         (print_operand): Output modifier 'c' added for signed byte values.
2556         (s390_encode_section_info): Mark symbol refs with
2557         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
2558
2559         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
2560         (length attribute): RRF, RRR have 4 byte length.
2561         (FPALL, INTALL): New mode iterators added.
2562         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
2563         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
2564         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
2565         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
2566         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
2567         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
2568         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
2569         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
2570         instructions.
2571         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
2572         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
2573         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
2574         reload<INTALL:mode><P:mode>_toreg_z10,
2575         reload<FPALL:mode><P:mode>_tomem_z10,
2576         reload<FPALL:mode><P:mode>_toreg_z10,
2577         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
2578         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
2579         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
2580         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
2581         definition.
2582         (movmem, clrmem, cmpmem): New splitters added.
2583
2584         * config/s390/predicates.md (larl_operand): Use
2585         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
2586         SYMBOL_REF_ALIGN1_P.
2587         (s390_signed_integer_comparison,
2588         s390_unsigned_integer_comparison): New predicates.
2589
2590         * config/s390/s390-protos.h (s390_check_symref_alignment,
2591         s390_contiguous_bitmask_p, s390_reload_larl_operand,
2592         s390_reload_symref_address,
2593         s390_compare_and_branch_condition_mask): Prototypes added.
2594
2595         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
2596         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
2597         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
2598
2599 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2600
2601         * config/s390/s390.c (z10_cost): New cost function for z10.
2602         (s390_handle_arch_option, override_options): Support -march=z10 switch.
2603         (s390_issue_rate): Adjust issue rate for z10.
2604         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
2605         (processor_flags): Add PF_Z10.
2606         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
2607         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
2608         * gcc/config.gcc: Add z10.
2609
2610 2008-05-28  Richard Guenther  <rguenther@suse.de>
2611
2612         PR tree-optimization/36291
2613         * tree-flow. h (struct gimple_df): Remove var_anns member.
2614         * tree-flow-inline.h (gimple_var_anns): Remove.
2615         (var_ann): Simplify.
2616         * tree-dfa.c (create_var_ann): Simplify.
2617         (remove_referenced_var): Clear alias info from var_anns of globals.
2618         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2619         (delete_tree_ssa): Clear alias info from var_anns of globals.
2620         Do not free var_anns.
2621         (var_ann_eq): Remove.
2622         (var_ann_hash): Likewise.
2623
2624 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
2625
2626         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2627         and loongson2f entries.
2628         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2629         * config/mips/mips.h (processor_type): Add Loongson-2E
2630         and Loongson-2F entries.
2631         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2632         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2633         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2634         * doc/invoke.texi (MIPS Options): Document loongson2e
2635         and loongson2f processor names.
2636
2637 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2638
2639         PR target/35767
2640         PR target/35771
2641         * config/i386/i386.c (ix86_function_arg_boundary): Use
2642         alignment of canonical type.
2643         (ix86_expand_vector_move): Check unaligned memory access for
2644         all SSE modes.
2645
2646 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2647
2648         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2649         Moved to the front of file.
2650
2651 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
2652             H.J. Lu  <hongjiu.lu@intel.com>
2653
2654         * dwarf2out.c (current_fde): New.
2655         (add_cfi): Use it.
2656         (lookup_cfa:): Likewise.
2657         (dwarf2out_end_epilogue): Likewise.
2658         (dwarf2out_note_section_used): Likewise.
2659
2660 2008-05-27  Michael Matz  <matz@suse.de>
2661
2662         PR c++/27975
2663         * c.opt (Wenum-compare): New warning option.
2664         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
2665
2666 2008-05-27  Michael Matz  <matz@suse.de>
2667
2668         PR middle-end/36326
2669         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
2670         non-BLKmode types.
2671         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
2672         into memory as tail calls.
2673
2674 2008-05-27  Richard Guenther  <rguenther@suse.de>
2675
2676         PR tree-optimization/36339
2677         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
2678         pointers cause all addressable variables to be call clobbered.
2679
2680 2008-05-27  Richard Guenther  <rguenther@suse.de>
2681
2682         PR tree-optimization/36245
2683         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
2684
2685 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2686
2687         * config/s390/s390.md: Replace all occurences of the 'm'
2688         constraint with 'RT'.
2689
2690 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2691
2692         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
2693         definitions added.
2694         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
2695         "*movdi_64".
2696         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
2697         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
2698         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
2699
2700 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2701
2702         * reload.c: (find_reloads): Skip alternatives according to the
2703         "enabled" attribute. Constify the constraint variable.
2704         * recog.c (get_attr_enabled): Add default implementation.
2705         (extract_insn): Set the alternative_enabled_p array
2706         in the recog_data struct.
2707         (preprocess_constraints, constrain_operands): Skip
2708         alternatives according to the "enabled" attribute
2709         * recog.h (struct recog_data): New field alternative_enabled_p.
2710         (skip_alternative): New inline function.
2711         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
2712         (record_reg_classes): Skip alternative according to the
2713         "enabled" attribute.
2714
2715         * doc/md.texi: Add documention for the "enabled" attribute.
2716
2717 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2718
2719         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
2720         * postreload.c (reload_cse_simplify_operands): Replace 'm'
2721         constraint with TARGET_MEM_CONSTRAINT.
2722         * recog.c (asm_operand_ok, preprocess_constraints,
2723         constrain_operands): Likewise.
2724         * regclass.c (record_reg_classes): Likewise.
2725         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
2726         * reload1.c (maybe_fix_stack_asms): Likewise.
2727         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
2728         * recog.h: Adjust comment.
2729         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
2730         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
2731         * doc/md.texi: Add a note to description of 'm' constraint.
2732         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
2733
2734 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2735
2736         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
2737         that the bitfield is of integral type before testing its precision.
2738
2739 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2740             Sa Liu  <saliu@de.ibm.com> 
2741
2742         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
2743         __modti3, __udivti3, __umodti3 and __udivmodti4.
2744         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
2745         that implement TImode mul and div functions.
2746         * config/spu/multi3.c: New. Implement __multi3.
2747         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
2748         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
2749         functions on SPU.
2750
2751 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
2752
2753         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
2754         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
2755         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
2756         tls_sysv_suffix): New mode and mode attribute iterators.
2757         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
2758         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
2759         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
2760         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
2761         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
2762         iterators.
2763
2764 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2765
2766         PR tree-optimization/36329
2767         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
2768         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
2769         * cgraphbuild.c (initialize_inline_failed): Use the latter
2770         macro in lieu of the former.
2771         * ipa-inline.c (cgraph_mark_inline): Likewise.
2772         (cgraph_decide_inlining_of_small_function): Likewise.
2773         (cgraph_decide_inlining): Likewise.
2774         (cgraph_decide_inlining_incrementally): Likewise.
2775
2776 2008-05-26  Tristan Gingold  <gingold@adacore.com>
2777             Anatoly Sokolov  <aesok@post.ru>
2778
2779         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
2780         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
2781         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
2782         optimization for 'avr6' architecture.
2783
2784 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
2785
2786         PR target/34932
2787         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
2788
2789 2008-05-26  Richard Guenther  <rguenther@suse.de>
2790
2791         * tree-ssa-sccvn.c (expr_has_constants): Declare.
2792         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
2793
2794 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
2795
2796         PR middle-end/36253
2797         * caller-save.c (insert_restore): Verify alignment of spill space.
2798         (insert_save): Likewise.
2799         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
2800         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
2801         (STACK_SLOT_ALIGNMENT): Likewise.
2802         * function.c (LOCAL_ALIGNMENT): Removed.
2803         (get_stack_local_alignment): New.
2804         (assign_stack_local): Use it.  Set alignment on stack slot.
2805         (assign_stack_temp_for_type): Use get_stack_local_alignment.
2806         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
2807         (STACK_SLOT_ALIGNMENT): New.
2808         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
2809         stack slot in XFmode.
2810
2811         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
2812
2813 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
2814
2815         PR/36321
2816         * config/i386/i386.md (allocate_stack_worker_64): Make sure
2817         argument operand in rax isn't removed.
2818
2819 2008-05-26  Richard Guenther  <rguenther@suse.de>
2820
2821         PR middle-end/36300
2822         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
2823         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
2824
2825 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2826
2827         PR bootstrap/36331
2828         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
2829
2830 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
2831
2832         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
2833         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
2834
2835 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2836
2837         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
2838         build a trampoline if we don't want one.
2839         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
2840         return zero for nested functions if we don't want a trampoline.
2841
2842 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2843
2844         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
2845
2846 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2847
2848         PR fortran/18428
2849         * c.opt: Removed undocumented option '-lang-fortran'.
2850         * c-common.h: Removed global variable 'lang_fortran'.
2851         * c-opts.c (c_common_handle_option): Removed code to handle
2852         option '-lang-fortran'. Updated includes.
2853         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
2854         definition of '__GFORTRAN__'.
2855         (define__GNUC__): Reimplemented to use BASEVER and
2856         cpp_define_formatted.
2857         (builtin_define_with_value_n): Removed.
2858         * c-incpath.h: Renamed to ...
2859         * incpath.h: ... this.
2860         * c-incpath.c: Renamed to ...
2861         * incpath.c: ... this. Updated includes.
2862         * fix-header.c: Updated includes.
2863         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2864         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2865         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2866
2867 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2868
2869         * tree.h: Update the table of flags used on tree nodes.
2870         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2871         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2872         (FORCED_LABEL): Add access check.
2873         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2874         (ASM_INPUT_P): Likewise.
2875         (ASM_VOLATILE_P): Likewise.
2876         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2877         (OMP_SECTION_LAST): Access private_flag directly.
2878         (OMP_RETURN_NOWAIT): Likewise.
2879         (OMP_PARALLEL_COMBINED): Likewise.
2880         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2881         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2882         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2883         deprecated_flag directly.
2884
2885 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
2886
2887         * final.c (frame_pointer_needed): Removed.
2888         * flags.h (frame_pointer_needed): Likewise.
2889
2890         * function.h (rtl_data): Add frame_pointer_needed.
2891         (frame_pointer_needed): New.
2892
2893 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
2894
2895         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2896
2897 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
2898
2899         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2900         SRC is a REG.
2901
2902 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
2903
2904         * c-common.c (strip_array_types): Move function to..
2905         * tree.c: ..here.
2906         (get_inner_array_type): Delete.
2907         * c-common.h (strip_array_types): Move declaration to..
2908         * tree.h: ..here.
2909         (get_inner_array_type): Delete.
2910         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2911         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2912         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2913         * config/pa/pa.c (emit_move_sequence): Likewise.
2914
2915 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2916
2917         * config/i386/i386.md (*sse_prologue_save_insn): Set length
2918         attribute to 34.
2919
2920 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
2921
2922         * function.c: Include target hook for nonlocal_goto frame value.
2923
2924 2008-05-24  Richard Guenther  <rguenther@suse.de>
2925
2926         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2927         variable can be only accessed through a pointer or a union.
2928
2929 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2930
2931         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
2932         * doc/extend.texi: Likewise.
2933
2934 2008-05-23  DJ Delorie  <dj@redhat.com>
2935
2936         * config/m32c/jump.md (untyped_call): Add.
2937
2938         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
2939         for A24 to PSImode.
2940         (m32c_address_cost): Detail costs for indirect offsets.
2941
2942 2008-05-23  Rafael Espindola  <espindola@google.com>
2943
2944         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
2945         if a node is a SUBREG.
2946         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
2947         is a SUBREG.
2948
2949 2008-05-23  Paul Brook  <paul@codesourcery.com>
2950             Carlos O'Donell  <carlos@codesourcery.com>
2951
2952         * doc/extend.texi: Clarify use of __attribute__((naked)).
2953         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2954         * target.h (gcc_target): Add allocate_stack_slots_for_args.
2955         * function.c (use_register_for_decl): Use
2956         targetm.calls.allocate_stack_slots_for_args.
2957         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2958         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
2959         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2960
2961 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2962
2963         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
2964
2965 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
2966
2967         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
2968         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
2969         is only rounded once.
2970
2971 2008-05-23  Richard Guenther  <rguenther@suse.de>
2972
2973         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
2974
2975 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
2976             Jakub Jelinek  <jakub@redhat.com>
2977
2978         PR target/36079
2979         * configure.ac: Handle --enable-cld.
2980         * configure: Regenerated.
2981         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
2982         * config/i386/i386.h (struct machine_function): Add needs_cld field.
2983         (ix86_current_function_needs_cld): New define.
2984         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
2985         (cld): New isns pattern.
2986         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
2987         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
2988         * config/i386/i386.opt (mcld): New option.
2989         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
2990         TARGET_CLD and ix86_current_function_needs_cld.
2991         (override_options): Use -mcld by default for 32-bit code if
2992         USE_IX86_CLD.
2993
2994         * doc/install.texi (Options specification): Document --enable-cld.
2995         * doc/invoke.texi (Machine Dependent Options)
2996         [i386 and x86-64 Options]: Add -mcld option.
2997         (Intel 386 and AMD x86-64 Options): Document -mcld option.
2998
2999 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
3000         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
3001         (return_in_memory_64): Likewise.
3002         (return_in_memory_ms_64): Likewise.
3003
3004 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3005
3006         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
3007         * builtins.c (fold_builtin_fpclassify): New.
3008         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
3009         * builtins.def (BUILT_IN_FPCLASSIFY): New.
3010         * c-common.c (handle_type_generic_attribute): Adjust to accept
3011         fixed arguments before an elipsis.
3012         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
3013         * doc/extend.texi: Document __builtin_fpclassify.
3014
3015 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
3016
3017         * omp-low.c (gate_expand_omp_ssa): Remove.
3018         (pass_expand_omp_ssa): Remove.
3019         (gate_expand_omp): Do not check for flag_openmp_ssa.
3020         * common.opt (-fopenmp-ssa): Remove.
3021         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
3022
3023 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3024
3025         * config/sh/sh.opt (mfixed-range): New option.
3026         * config/sh/sh-protos.h (sh_fix_range): Declare.
3027         * config/sh/sh.c (sh_fix_range): New function.
3028         * config/sh/sh.h (sh_fixed_range_str): Declare.
3029         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
3030         is not empty.
3031         * doc/invoke.texi (SH Options): Document -mfixed-range.
3032
3033 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
3034
3035         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
3036         it before the redeclaration.
3037
3038 2008-05-22  Anatoly Sokolov <aesok@post.ru>
3039
3040         * config/avr/avr.c (get_sequence_length): Add new function.
3041         (expand_prologue, expand_epilogue): Remove duplicate code.
3042
3043 2008-05-22  Rafael Espindola  <espindola@google.com>
3044
3045         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
3046         sharing.
3047
3048 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
3049
3050         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
3051         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
3052
3053         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
3054         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
3055         (vect_update_misalignment_for_peel): Likewise.
3056         (vector_alignment_reachable_p): Likewise.
3057         * tree-vect-transform.c (vectorizable_load): Likewise.
3058         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
3059         (get_vectype_for_scalar_type): Pass mode of scalar_type
3060         to UNITS_PER_SIMD_WORD.
3061
3062         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
3063         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
3064         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3065         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3066         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3067
3068 2008-05-22  Ira Rosen  <irar@il.ibm.com>
3069
3070         PR tree-optimization/36293
3071         * tree-vect-transform.c (vect_transform_strided_load): Don't check
3072         if the first load must be skipped because of a gap.
3073
3074 2008-05-22  Richard Guenther  <rguenther@suse.de>
3075
3076         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
3077         more cases of offset disambiguation that is possible if
3078         strict-aliasing rules apply.
3079         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
3080         for basic offset and type-based disambiguation.
3081
3082 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3083
3084         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
3085         ix86_expand_vector_set on V16QImode for SSE4.1.
3086
3087 2008-05-21  Tom Tromey  <tromey@redhat.com>
3088
3089         * c.opt (Wimport): Mark as undocumented.
3090         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
3091         -Wno-import.
3092         (Warning Options): Likewise.
3093         * doc/cppopts.texi: Don't mention -Wimport.
3094
3095 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
3096
3097         PR tree-optimization/36287
3098         PR tree-optimization/36286
3099         * lambda-code.c (build_access_matrix): Do not use the loop->num
3100         for computing the number of induction variables: use the loop depth
3101         instead.
3102
3103 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
3104
3105         PR/36280
3106         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
3107         option -f(no-)leading-underscore.
3108
3109 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3110
3111         * config/i386/i386.c (ix86_expand_vector_init_general): Use
3112         GET_MODE_NUNITS (mode).
3113
3114 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
3115
3116         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
3117         (-mmulhw): Add 464 to description.
3118         (-mdlmzb): Likewise.
3119         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
3120         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
3121         464fp entries.
3122         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
3123         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
3124         * config/rs6000/rs6000.md: Update comments for 464.
3125
3126 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
3127
3128         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
3129
3130 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3131
3132         * config/i386/sse.md (vec_extractv4sf): Removed.
3133         (vec_extractv2df): Likewise.
3134         (vec_extractv2di): Likewise.
3135         (vec_extractv4si): Likewise.
3136         (vec_extractv8hi): Likewise.
3137         (vec_extractv16qi): Likewise.
3138         (vec_extract<mode>): New.
3139
3140 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3141
3142         * config/i386/sse.md (vec_setv4sf): Removed.
3143         (vec_setv2df): Likewise.
3144         (vec_setv2di): Likewise.
3145         (vec_setv4si): Likewise.
3146         (vec_setv8hi): Likewise.
3147         (vec_setv16qi): Likewise.
3148         (vec_set<mode>): New.
3149
3150 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3151
3152         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
3153         goto for vec_concat and vec_interleave.
3154
3155 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3156
3157         * config/i386/sse.md (vec_initv4sf): Removed.
3158         (vec_initv2df): Likewise.
3159         (vec_initv2di): Likewise.
3160         (vec_initv4si): Likewise.
3161         (vec_initv8hi): Likewise.
3162         (vec_initv16qi): Likewise.
3163         (vec_init<mode>): New.
3164
3165 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
3166
3167         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
3168
3169 2008-05-21  Tom Tromey  <tromey@redhat.com>
3170
3171         * ggc-zone.c (lookup_page_table_if_allocated): New function.
3172         (zone_find_object_offset): Likewise.
3173         (gt_ggc_m_S): Likewise.
3174         (highest_bit): Likewise.
3175         * ggc-page.c (gt_ggc_m_S): New function.
3176         * stringpool.c (string_stack): Remove.
3177         (init_stringpool): Update.
3178         (ggc_alloc_string): Use ggc_alloc.
3179         (maybe_delete_ident): New function.
3180         (ggc_purge_stringpool): Likewise.
3181         (gt_ggc_m_S): Remove.
3182         * ggc-common.c (ggc_protect_identifiers): New global.
3183         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
3184         ggc_protect_identifiers.
3185         * ggc.h (ggc_protect_identifiers): Declare.
3186         (gt_ggc_m_S): Update.
3187         (ggc_purge_stringpool): Declare.
3188         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
3189         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
3190         special case.
3191         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
3192
3193 2008-05-21  David S. Miller  <davem@davemloft.net>
3194
3195         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
3196         tmake_file.
3197
3198 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
3199
3200         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
3201         once finished.
3202
3203 2008-05-20  David Daney  <ddaney@avtrex.com>
3204
3205         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
3206         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
3207         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3208         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3209         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
3210         (atomic_hiqi_op): New define_code_iterator.
3211         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
3212         mips_expand_compare_and_swap_12.
3213         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
3214         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
3215         (sync_<optab><mode>, sync_old_<optab><mode>,
3216         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
3217         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
3218         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
3219         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
3220         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
3221         (test_and_set_12): New insn.
3222         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
3223         sync_new_<optab><mode>, sync_old_nand<mode>,
3224         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
3225         clobber to operand 0 for SI and DI mode insns.
3226         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
3227         mips_gen_fn_4): New typedefs.
3228         (mips_gen_fn_ptrs): Define new union type.
3229         (mips_expand_compare_and_swap_12): Remove declaration.
3230         (mips_expand_atomic_qihi): Declare function.
3231         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
3232         (mips_expand_atomic_qihi): ... this.  Use new generator function
3233         parameter.
3234         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
3235         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
3236         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
3237         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
3238         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
3239         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
3240         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
3241         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
3242         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
3243         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
3244         New macros.
3245
3246 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
3247
3248         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
3249         the missing break.
3250
3251 2008-05-20  Anatoly Sokolov <aesok@post.ru>
3252
3253         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
3254         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
3255         (avr_attribute_table): Add 'OS_main' function attribute.
3256         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
3257         functions with 'OS_main' attribute.
3258
3259 2008-05-20  Richard Guenther  <rguenther@suse.de>
3260
3261         PR tree-optimization/35204
3262         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
3263         helper, split out from ...
3264         (DFS): ... here.  Make the DFS walk non-recursive.
3265
3266 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
3267             Jan Sjodin  <jan.sjodin@amd.com>
3268
3269         PR tree-optimization/36181
3270         * tree-parloops.c (loop_has_vector_phi_nodes): New.
3271         (parallelize_loops): Don't parallelize when the loop has vector
3272         phi nodes.
3273
3274 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3275             Sebastian Pop  <sebastian.pop@amd.com>
3276
3277         * tree-loop-linear.c (gather_interchange_stats): Look in the access
3278         matrix, and never look at the tree representation of the memory
3279         accesses.
3280         (linear_transform_loops): Computes parameters and access matrices.
3281         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
3282         when fails.
3283         (access_matrix_get_index_for_parameter): New.
3284         * tree-data-ref.h (struct access_matrix): New.
3285         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
3286         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
3287         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
3288         am_vector_index_for_loop): New.
3289         (struct data_reference): Add field access_matrix.
3290         (DR_ACCESS_MATRIX): New.
3291         (compute_data_dependences_for_loop): Update declaration.
3292         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
3293         * lambda.h (lambda_vector_vec_p): Declared.
3294         * lambda-code.c: Depend on pointer-set.h.
3295         (lambda_collect_parameters_from_af, lambda_collect_parameters,
3296         av_for_af_base, av_for_af, build_access_matrix,
3297         lambda_compute_access_matrices): New.
3298         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
3299
3300 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
3301
3302         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
3303         $SOURCEDIR/include.
3304
3305 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3306             Sebastian Pop  <sebastian.pop@amd.com>
3307
3308         PR tree-optimization/36206
3309         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
3310         FOLD_CONVERSIONS.
3311         (instantiate_scev_1): Rename flags to fold_conversions.
3312         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
3313         outeside instantiation_loop.
3314         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
3315         (evolution_function_is_affine_or_constant_p): Removed.
3316         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
3317         instantiate_scev.
3318         (analyze_siv_subscript): Pass in the loop nest number.
3319         Call evolution_function_is_affine_in_loop instead of 
3320         evolution_function_is_affine_p.
3321         (analyze_overlapping_iterations): Pass in the loop nest number.
3322
3323 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3324             Sebastian Pop  <sebastian.pop@amd.com>
3325
3326         PR tree-optimization/36206
3327         * tree-chrec.h (chrec_fold_op): New.
3328         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
3329         and other trees.
3330
3331 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
3332
3333         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
3334         (DIRS_EQ): New.
3335         (remove_duplicates): Do not set inode on non-inode systems.
3336         Use DIRS_EQ.
3337
3338 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3339
3340         * config.gcc (tm_file): Update comments about relative pathnames.
3341
3342 2008-05-20  Richard Guenther  <rguenther@suse.de>
3343
3344         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
3345         * tree-ssa-sccvn.c (process_scc): Likewise.
3346         * tree-ssa-sink.c (execute_sink_code): Likewise.
3347         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
3348         * tree-vrp.c (process_assert_insertions): Likewise.
3349         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3350         (perform_tree_ssa_dce): Likewise.
3351         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3352         (dump_dominator_optimization_stats): Likewise.
3353         * tree-vectorizer.c (vectorize_loops): Likewise.
3354
3355 2008-05-20  Richard Guenther  <rguenther@suse.de>
3356
3357         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
3358
3359 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
3360
3361         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
3362         (ix86_i386elf_return_in_memory): Likewise.
3363         (ix86_i386interix_return_in_memory): Likewise.
3364         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
3365         (SUBTARGET_RETURN_IN_MEMORY): New.
3366         * config/i386/i386elf.h: Likewise.
3367         * config/i386/ptx4-i.h: Likewise.
3368         * config/i386/sol2-10.h: Likewise.
3369         * config/i386/sysv4.h: Likewise.
3370         * config/i386/vx-common.h: Likewise.
3371         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
3372         * config/i386/i386.c (ix86_return_in_memory): Made static and
3373         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
3374         (ix86_i386elf_return_in_memory): Removed.
3375         (ix86_i386interix_return_in_memory): Removed.
3376         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
3377         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
3378
3379 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
3380
3381         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
3382
3383 2008-05-19  Xinliang David Li  <davidxl@google.com>
3384
3385         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
3386         * opts.c: Ditto.
3387         * common.opt: Ditto.
3388         * doc/invoke.texi: Ditto.
3389
3390 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3391
3392         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
3393         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
3394
3395 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3396
3397         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
3398         sizes of operand array from 8/4 to 4/2.
3399         (ix86_expand_vector_init_general): Change size of operand array
3400         from 32 to 16.  Remove op0, op1 and half_mode.
3401
3402 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3403
3404         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
3405         (ix86_expand_vector_init_interleave): Likewise.
3406         (ix86_expand_vector_init_general): Use them.  Assert
3407         word_mode == SImode when n_words == 4.
3408
3409 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
3410
3411         * config/i386/i386.c (ix86_secondary_reload): New static function.
3412         (TARGET_SECONDARY_RELOAD): New define.
3413         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
3414         * config/i386/i386.md (reload_outqi): Remove.
3415
3416 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3417
3418         PR middle-end/35509
3419         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
3420         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
3421         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
3422         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
3423         (fold_builtin_1): Likewise.
3424         * builtins.def (BUILT_IN_ISINF_SIGN): New.
3425         c-common.c (check_builtin_function_arguments): Handle
3426         BUILT_IN_ISINF_SIGN.
3427         * doc/extend.texi: Document __builtin_isinf_sign.
3428         * fold-const.c (operand_equal_p): Handle COND_EXPR.
3429
3430 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
3431
3432         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
3433         EH cleanup at the end of the pass, search for those that have been
3434         turned into forwarder blocks and do the cleanup on their successor.
3435
3436 2008-05-18  Richard Guenther  <rguenther@suse.de>
3437
3438         * tree-cfg.c (verify_gimple_expr): Allow conversions from
3439         pointers to sizetype and vice versa.
3440
3441 2008-05-18 Xinliang David Li   <davidxl@google.com>
3442
3443         * gcc/tree-ssa-dce.c: Coding style fix.
3444         (check_pow): Documentation comment. 
3445         (check_log): Documenation comment. Coding style fix.
3446         (is_unnecessary_except_errno_call): Ditto.
3447         (gen_conditions_for_pow): Ditto.
3448         (gen_conditions_for_log): Ditto.
3449         (gen_shrink_wrap_conditions): Ditto.
3450         (shrink_wrap_one_built_in_calls): Ditto.
3451         * gcc/doc/invoke.texi: Better documentation string.
3452         * ChangeLog: Fix wrong change log entries from 
3453         May 17 checkin on function call DCE.
3454
3455 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
3456
3457         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
3458
3459 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
3460
3461         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
3462         * df-problems.c (simulation routines): Fixed block comment to
3463         properly say how to add forwards scanning functions.
3464         
3465 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3466
3467         * tree-inline.c (setup_one_parameter): Remove dead code.
3468
3469 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3470
3471         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
3472         a BIT_AND_EXPR only for an INTEGER_TYPE.
3473
3474 2008-05-17 Xinliang David Li   <davidxl@google.com>
3475
3476         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
3477         (check_pow, check_log, is_unnecessary_except_errno_call): New 
3478         functions to check for eliminating math functions that are pure 
3479         except for setting errno.
3480         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
3481         general condition expressions for shrink-wrapping pow/log calls.
3482         (gen_shrink_wrap_conditions): Ditto.
3483         (shrink_wrap_one_built_in_call): Ditto.
3484         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
3485         (mark_operand_necessary): If debugging, output if OP is necessary.
3486         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
3487         unnecessary.
3488         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
3489         opt level >= 2.
3490         * gcc/common.opt: New user flag -ftree-builtin-dce.
3491         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
3492
3493 2008-05-16  David S. Miller  <davem@davemloft.net>
3494
3495         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
3496         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3497
3498 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
3499
3500         PR target/36246
3501         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
3502
3503 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3504
3505         * ifcvt.c (dead_or_predicable): Rename
3506         df_simulate_one_insn_backwards to df_simulate_one_insn.
3507         * recog.c (peephole2_optimize): Ditto.
3508         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
3509         Ditto.
3510         * df.h: Rename df_simulate_one_insn_backwards to
3511         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
3512         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
3513         scanning of defs and uses.
3514         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
3515         (df_simulate_one_insn_forwards): Removed.
3516
3517 2008-05-16  Doug Kwan  <dougkwan@google.com>
3518
3519         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
3520         QNaN & SNaN.
3521         (real_from_string): Handle NaNs and Inf as approriate.
3522
3523 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3524
3525         * doc/gty.texi (Source Files Containing Type Information): Note
3526         that headers should appear first in the gtfiles list.
3527
3528 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3529
3530         * tree.def (COND_EXEC): Properly documented this code.
3531
3532 2008-05-16  Diego Novillo  <dnovillo@google.com>
3533
3534         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
3535         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
3536         the new field.
3537
3538 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3539
3540         * tree-ssa-dse (max_stmt_uid): Removed.
3541         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
3542         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
3543         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
3544         * function.h (cfun.last_stmt_uid): New field.
3545         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
3546         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
3547         New functions.
3548         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
3549         (create_stmt_ann): Initialize the ann->uid field.
3550         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
3551         with new calls.
3552         * tree-flow.h (renumber_gimple_stmt_uids): New function.
3553
3554 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3555
3556         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
3557         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
3558         (init_empty_tree_cfg): Call it.
3559
3560 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3561
3562         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
3563         Update all users.
3564
3565 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3566
3567         * doc/invoke.text (-fdump-tree-*-verbose): New option.
3568         * tree-dump.c (dump_options): New verbose option.
3569         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
3570         Add verbose dump.
3571         * tree-pass.h (TDF_VERBOSE): New dump flag.
3572         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3573         (tree-flow.h): Added include.
3574         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
3575
3576 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3577
3578         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
3579
3580         From Jie Zhang  <jie.zhang@analog.com>
3581         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3582         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
3583         mcpu=bf561-none and mcpu=bf561-0.2.
3584         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3585         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3586         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3587         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3588         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
3589         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
3590         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
3591         option.
3592         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
3593         (cputype_selected): Remove.
3594         (bfin_handle_option): Don't use cputype_selected.
3595         (override_options): When no mcpu option, enable all workarounds.
3596         Don't use bfin_workarounds.
3597         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
3598         processor type.
3599         (DEFAULT_CPU_TYPE): Don't define.
3600
3601 2008-05-16  Richard Guenther  <rguenther@suse.de>
3602
3603         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
3604         on deletion of the last stmt.
3605
3606 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3607
3608         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
3609         V8HImode for SSE2 and V16QImode for SSE4.1.
3610
3611 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3612
3613         * cgraph.h (compute_inline_parameters): Made public.
3614         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
3615         variable_generate_summary, function_write_summary,
3616         variable_write_summary, variable_read_summary.  Added generate_summary,
3617         write_summary, read_summary.
3618         * cgraphunit.c (cgraph_process_new_functions): Changed call from
3619         pass_ipa_inline.function_generate_summary, to
3620         compute_inline_parameters. 
3621         * ipa-inline.c (compute_inline_parameters): Made public and added
3622         node parameter.
3623         (compute_inline_parameters_for_current): New function.
3624         (pass_inline_param): Now calls compute_inline_parameters_for_current.
3625         (inline_generate_summary): Removed parameter and made to loop over
3626         all cgraph nodes.
3627         (pass_ipa_inline): Updated for new IPA_PASS structure.
3628         * passes.c (execute_ipa_summary_passes): Now is called once per
3629         pass rather than once per node*pass.
3630         
3631 2008-05-15  Anatoly Sokolov <aesok@post.ru>
3632
3633         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
3634         avr_have_mul_p, avr_asm_only_p): Remove variables.
3635         (avr_override_options): Remove initialization of removed variables.
3636         (avr_file_start):  Convert removed variables to fields of 
3637         'struct base_arch_s *avr_current_arch'. 
3638         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3639         (AVR_HAVE_MUL): (Ditto.).
3640         (AVR_HAVE_MOVW): (Ditto.).
3641         (AVR_HAVE_LPMX): (Ditto.). 
3642         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
3643         avr_asm_only_p): Remove declaration.
3644
3645 2008-05-15  Diego Novillo  <dnovillo@google.com>
3646
3647         * config/arm/arm.c (arm_return_in_memory): Fix return type.
3648         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
3649
3650 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
3651
3652         PR middle-end/36194
3653         * combine.c (check_conversion): Rename back to check_promoted_subreg.
3654         Don't call record_truncated_value from here.
3655         (record_truncated_value): Turn it into a for_each_rtx callback.
3656         (record_truncated_values): New function.
3657         (combine_instructions): Call note_uses with record_truncated_values.
3658         Change name of check_conversion to check_promoted_subreg. 
3659
3660 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
3661
3662         * doc/sourcebuild.texi: Document support for torture tests.
3663
3664 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3665
3666         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
3667         to alternative 4 of operand 2.
3668
3669 2008-05-15  Richard Guenther  <rguenther@suse.de>
3670
3671         * tree-pass.h (current_pass): Declare.
3672         (get_pass_for_id): Likewise.
3673         * passes.c (passes_by_id, passes_by_id_size): New globals.
3674         (set_pass_for_id): New function.
3675         (get_pass_for_id): Likewise.
3676         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
3677         (execute_function_todo): Flush per function statistics.
3678         * toplev.c (compile_file): Init statistics.
3679         (general_init): Do early statistics initialization.
3680         (finalize): Finish statistics.
3681         * statistics.h (statistics_early_init): Declare.
3682         (statistics_init): Likewise.
3683         (statistics_fini): Likewise.
3684         (statistics_fini_pass): Likewise.
3685         (statistics_counter_event): Likewise.
3686         (statistics_histogram_event): Likewise.
3687         * statistics.c: New file.
3688         * Makefile.in (OBJS-common): Add statistics.o.
3689         (statistics.o): Add dependencies.
3690         * doc/invoke.texi (-fdump-statistics): Document.
3691
3692         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
3693         (insert): Likewise.
3694         (execute_pre): Use statistics_counter_event.
3695         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
3696         (substitute_and_fold): Increment it.  Use statistics_counter_event.
3697
3698 2008-05-15  Diego Novillo  <dnovillo@google.com>
3699
3700         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
3701
3702         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
3703         * tree-ssa-alias.c (new_type_alias): Remove references to
3704         sub-variables from comment.
3705         * tree-ssa-operands.c (swap_tree_operands): Likewise.
3706
3707 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3708
3709         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
3710         attribute to 1 only for insertps alternative.
3711
3712 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3713
3714         * config/bfin/bfin.md (loadbytes): New pattern.
3715         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
3716         (bfin_init_builtins): Initialize it.
3717         (bdesc_1arg): Add it.
3718
3719 2008-05-15  Sa Liu  <saliu@de.ibm.com>
3720
3721         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
3722         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
3723         * testsuite/lib/target-supports.exp: Add
3724         check_effective_target_fortran_integer_16.
3725
3726 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3727
3728         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
3729         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
3730         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
3731         (TARGET_RETURN_IN_MEMORY): Define.
3732
3733 2008-05-15  Richard Guenther  <rguenther@suse.de>
3734
3735         PR middle-end/36244
3736         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
3737         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
3738         represent unmodifiable vars.
3739
3740 2008-05-15  Richard Guenther  <rguenther@suse.de>
3741
3742         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
3743         INDIRECT_REF and TARGET_MEM_REF.
3744         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3745         TARGET_MEM_REF.
3746
3747 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3748             H.J. Lu  <hongjiu.lu@intel.com>
3749
3750         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
3751         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
3752         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
3753         insn alternatives.  Add missing alternatives.
3754         (*vec_concatv2di_rex64_sse4_1): Likewise.
3755         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
3756         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
3757         Require TARGET_SSE.
3758
3759 2008-05-15  Richard Guenther  <rguenther@suse.de>
3760
3761         PR tree-optimization/36009
3762         PR tree-optimization/36204
3763         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
3764         (determine_invariantness_stmt): Record the loop a store is
3765         always executed in.
3766         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
3767         dependency.
3768
3769 2008-05-15  Richard Guenther  <rguenther@suse.de>
3770
3771         PR tree-optimization/34330
3772         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
3773         through the pointer will alias the SMT.
3774
3775 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
3776
3777         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
3778
3779 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
3780
3781         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
3782
3783 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3784             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3785
3786         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
3787         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
3788         (vashl_optab): New optab for vector/vector shifts.
3789         (vashr_optab): Ditto.
3790         (vlshr_optab): Ditto.
3791         (vrotl_optab): Ditto.
3792         (vrotr_optab): Ditto.
3793         (optab_subtype): New enum for optab_for_tree_code call.
3794         (optab_for_tree_code): Add enum optab_subtype argument.
3795
3796         * optabs.c (optab_for_tree_code): Take an additional argument to
3797         distinguish between a vector shift by a scalar and vector shift by
3798         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
3799         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
3800         vector shift by a vector.
3801         (expand_widen_pattern_expr): Pass additional argument to
3802         optab_for_tree_code.
3803
3804         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
3805         vrotl_optab, vrotr_optab.
3806
3807         * expr.c (expand_expr_real_1): Update calls to
3808         optab_for_tree_code to distinguish between vector shifted by a
3809         scalar and vector shifted by a vector.
3810         * tree-vectorizer.c (supportable_widening_operation): Ditto.
3811         (supportable_narrowing_operation): Ditto.
3812         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
3813         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
3814         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
3815         (vect_create_epilog_for_reduction): Ditto.
3816         (vectorizable_reduction): Ditto.
3817         (vectorizable_operation): Ditto.
3818         (vect_strided_store_supported): Ditto.
3819         (vect_strided_load_supported): Ditto.
3820         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3821         * expmed.c (expand_shift): Ditto.
3822
3823         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
3824         scalar type.
3825         (ashr@var{m}3): Ditto.
3826         (vashl@var{m}3): Document new vector/vector shift standard name.
3827         (vashr@var{m}3): Ditto.
3828         (vlshr@var{m}3): Ditto.
3829         (vrotl@var{m}3): Ditto.
3830         (vrotr@var{m}3): Ditto.
3831
3832         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
3833         (PPERM_INVERT): Ditto.
3834         (PPERM_REVERSE): Ditto.
3835         (PPERM_REV_INV): Ditto.
3836         (PPERM_ZERO): Ditto.
3837         (PPERM_ONES): Ditto.
3838         (PPERM_SIGN): Ditto.
3839         (PPERM_INV_SIGN): Ditto.
3840         (PPERM_SRC1): Ditto.
3841         (PPERM_SRC2): Ditto.
3842
3843         * config/i386/sse.md (mulv2di3): Add SSE5 support.
3844         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
3845         allows a memory operand to be the value being added, and split it
3846         to improve vectorization.
3847         (sse5_pmacsdqh_mem): Ditto.
3848         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
3849         (sse5_mulv2div2di3_high): Ditto.
3850         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
3851         (vec_pack_trunc_v4si): Ditto.
3852         (vec_pack_trunc_v2di): Ditto.
3853         (sse5_pcmov_<mode>): Remove code that tried to use use
3854         andps/andnps instead of pcmov.
3855         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
3856         pmacsdqh instructions.
3857         (vec_widen_smult_lo_v4si): Ditto.
3858
3859         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
3860         (PPERM_INVERT): Ditto.
3861         (PPERM_REVERSE): Ditto.
3862         (PPERM_REV_INV): Ditto.
3863         (PPERM_ZERO): Ditto.
3864         (PPERM_ONES): Ditto.
3865         (PPERM_SIGN): Ditto.
3866         (PPERM_INV_SIGN): Ditto.
3867         (PPERM_SRC1): Ditto.
3868         (PPERM_SRC2): Ditto.
3869         (ix86_expand_sse_movcc): Move the SSE5 test after the if
3870         true/false tests.
3871         (ix86_expand_int_vcond): If SSE5 generate all possible integer
3872         comparisons.
3873         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
3874         says ignore whether the last reference is a memory operand.
3875
3876 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3877             Paolo Bonzini <bonzini at gnu dot org>
3878
3879         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
3880         shift patterns.
3881
3882         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
3883         (vlshr<mode>3): Rename from vlshr<mode>3.
3884         (vashr<mode>3): Rename from vashr<mode>3.
3885         (mulv4sf3): Change the names of vector shift patterns.
3886         (mulv4si3): Ditto.
3887         (negv4sf2): Ditt.
3888
3889         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
3890         shift insns.
3891
3892         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
3893         (SI_SHLHI): Ditto.
3894         (SI_SHL): Ditto.
3895         (SI_SHLI): Ditto.
3896         (SI_ROTH): Ditto.
3897         (SI_ROTHI): Ditto.
3898         (SI_ROT): Ditto.
3899         (SI_ROTI): Ditto.
3900         (SPU_RL_0): Ditto.
3901         (SPU_RL_1): Ditto.
3902         (SPU_RL_2): Ditto.
3903         (SPU_RL_3): Ditto.
3904         (SPU_RL_4): Ditto.
3905         (SPU_RL_5): Ditto.
3906         (SPU_RL_6): Ditto.
3907         (SPU_RL_7): Ditto.
3908         (SPU_SL_0): Ditto.
3909         (SPU_SL_1): Ditto.
3910         (SPU_SL_2): Ditto.
3911         (SPU_SL_3): Ditto.
3912         (SPU_SL_4): Ditto.
3913         (SPU_SL_5): Ditto.
3914         (SPU_SL_6): Ditto.
3915         (SPU_SL_7): Ditto.
3916
3917         * config/spu/spu.md (v): New iterator macro to add v for vector types.
3918         (floatunssidf2_internal): Change vector/vector shift names.
3919         (floatunsdidf2_internal): Ditto.
3920         (mulv8hi3): Ditto.
3921         (ashrdi3): Ditto.
3922         (ashrti3): Ditto.
3923         (cgt_df): Ditto.
3924         (cgt_v2df): Ditto.
3925         (dftsv): Ditto.
3926         (vashl<mode>3): Rename from ashl<mode>3.
3927         (vashr<mode>3): Rename from ashr<mode>3.
3928         (vlshr<mode>3): Rename from lshr<mode>3.
3929         (vrotl<mode>3): Rename from rotl<mode>3.
3930
3931 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3932
3933         PR target/36224
3934         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
3935         multiply gives the wrong value when doing widening multiplies.
3936         (vec_widen_smult_lo_v4si): Ditto.
3937
3938 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3939
3940         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
3941         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
3942         emit_library_call_value. 
3943         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
3944         * tree.h (ECF_LIBCALL_BLOCK): Removed.
3945         * calls.c (initialize_argument_information, precompute_arguments, 
3946         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
3947         (precompute_arguments): Removed flags parameter.
3948         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
3949         
3950 2008-05-14  Richard Guenther  <rguenther@suse.de>
3951
3952         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
3953         Make sure to register the store if the use is a PHI_NODE.
3954
3955 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3956
3957         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3958         memory if the component is to be referenced in BLKmode according
3959         to get_inner_reference.
3960
3961 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
3962
3963         * calls.c (emit_library_call_value_1): Restore code clearing
3964         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
3965
3966 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3967             Nicolas Roche  <roche@adacore.com>
3968
3969         * configure.ac: Add support for a "gcc_subdir" variable in
3970         config-lang.in, to denote a subdirectory where the language/GCC
3971         integration files are to be found.
3972         * configure: Regenerate.
3973
3974 2008-05-14  Ira Rosen  <irar@il.ibm.com>
3975
3976         PR tree-optimization/36098
3977         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
3978         value for the first load in the group in case of a gap.
3979         (vect_build_slp_tree): Check that there are no gaps in loads.
3980
3981 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3982
3983         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
3984         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
3985         expand_copysign_bit, ): Change call to emit_no_conflict_block to
3986         emit_insn and remove unneeded code to construct extra args.
3987         (emit_no_conflict_block): Removed.
3988         * optabls.h: (emit_no_conflict_block): Removed.
3989         * cse.c (cse_extended_basic_block): Remove search for
3990         REG_NO_CONFLICT note.
3991         * global.c: Removed incorrect comment added in revision 117.
3992         * expr.c (convert_move): Change call to emit_no_conflict_block to
3993         emit_insn.
3994         * recog.c: Change comments so that they do not mention
3995         REG_NO_CONFLICT.
3996         * local_alloc.c (combine_regs): Removed last parameter.
3997         (no_conflict_p): Removed.
3998         (block_alloc): Removed note, no_conflict_combined_regno and set
3999         local vars. Removed all code to process REG_NO_CONFLICT blocks.
4000         (combine_regs): Removed already_dead and code to look for
4001         REG_NO_CONFLICT notes.
4002         * lower_subreg (remove_retval_note): Removed code to look for
4003         REG_NO_CONFLICT block.
4004         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
4005         (resolve_clobber): Remove code to process libcalls that have
4006         REG_NO_CONFLICT notes.
4007         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
4008         case.
4009         * combine.c (can_combine_p, distribute_notes):  Removed
4010         REG_NO_CONFLICT case.
4011         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
4012         to emit_insns.
4013         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
4014         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
4015         Ditto.
4016         * reg-notes.def (NO_CONFLICT): Removed.
4017
4018 2008-05-14  David S. Miller  <davem@davemloft.net>
4019
4020         * config/sparc/sparc.c (sparc_profile_hook): If
4021         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
4022         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
4023         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
4024
4025 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
4026
4027         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
4028
4029 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
4030
4031         PR target/36222
4032         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
4033         and op1 expansion before vector concat to have less live pseudos.
4034
4035 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
4036
4037         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
4038         ix86_expand_vector_set if supported.
4039
4040 2008-05-13  Diego Novillo  <dnovillo@google.com>
4041             Kenneth Zadeck  <zadeck@naturalbridge.com>
4042
4043         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
4044
4045         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
4046         phinodes_print_statistics, init_ssanames, fini_ssanames,
4047         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
4048         release_ssa_name, release_defs, replace_ssa_name_symbol,
4049         ssanames_print_statistics): Move ...
4050         * tree-flow.h: ... here.
4051         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
4052         Use FN instead of cfun.
4053         (make_ssa_name_fn): Rename from make_ssa_name.
4054         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
4055         * tree-flow-inline.h (make_ssa_name): Move from
4056         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
4057         * omp-low.c (expand_omp_parallel):
4058         * tree-flow-inline.h (redirect_edge_var_map_result):
4059         * tree-ssa.c (init_tree_ssa): Add argument FN.
4060         Use it instead of cfun.  Update all users.
4061
4062 2008-05-13  Tom Tromey  <tromey@redhat.com>
4063
4064         PR preprocessor/22168:
4065         * doc/cpp.texi (Top): Update menu.
4066         (Alternatives to Wrapper #ifndef): New node.
4067         (Other Directives): Document deprecation.
4068         (Obsolete Features): Remove menu.
4069         (Assertions): Merge node into Obsolete Features.
4070         (Obsolete once-only headers): Move earlier; rename to Alternatives
4071         to Wrapper #ifndef.
4072         * doc/cppopts.texi: Update.
4073         * c.opt (Wdeprecated): Enable for C and ObjC.
4074         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
4075         (C++ Dialect Options): Move -Wno-deprecated from here to...
4076         (Warning Options): ... here.
4077
4078 2008-05-13  Richard Guenther  <rguenther@suse.de>
4079
4080         PR middle-end/36227
4081         * fold-const.c (fold_sign_changed_comparison): Do not allow
4082         changes in pointer-ness.
4083
4084 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4085
4086         PR target/24713
4087         * config/sh/sh.c (sh_expand_prologue): Don't clear
4088         RTX_FRAME_RELATED_P for push insns.
4089
4090 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
4091
4092         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
4093
4094 2008-05-12  Anatoly Sokolov <aesok@post.ru>
4095
4096         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
4097         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
4098         Use 'machine->is_leaf' instead of 'leaf_func_p'.
4099
4100 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
4101
4102         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
4103         (*vec_concatv4sf_sse): This.
4104         (*sse2_concatv2si): Renamed to ...
4105         (*vec_concatv2si_sse2): This.
4106         (*sse1_concatv2si): Renamed to ...
4107         (*vec_concatv2si_sse): This.
4108         (*vec_concatv2di_rex): Renamed to ...
4109         (*vec_concatv2di_rex64): This.
4110         (*vec_concatv2si_sse4_1): New.
4111         (*vec_concatv2di_rex64_sse4_1): Likewise.
4112
4113 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
4114
4115         PR rtl-optimization/36111
4116         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
4117         that was created for swappable operands.
4118
4119 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
4120
4121         PR ada/36001
4122         * Makefile.in: Substitute GNATMAKE and GNATBIND.
4123         * configure.ac: Add call to ACX_PROG_GNAT.
4124
4125 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
4126
4127         * optc-gen.awk: Fix comment typo.
4128
4129 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4130
4131         * pretty-print.c (pp_integer_with_precision): Use
4132         HOST_LONG_LONG_FORMAT.
4133
4134 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
4135
4136         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
4137                 
4138 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
4139
4140         * config/i386/i386.c (bdesc_ptest): Removed.
4141         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
4142         (bdesc_args): Add __builtin_ia32_ptestz128,
4143         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
4144         (ix86_init_mmx_sse_builtins): Updated.
4145         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
4146         (ix86_expand_builtin): Updated.
4147
4148 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
4149
4150         * tree-cfg.c (valid_fixed_convert_types_p): New function.
4151         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
4152
4153 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
4154
4155         * value-prof.c (interesting_stringop_to_profile): Do not
4156         return early for BUILT_IN_MEMPCPY.
4157
4158 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
4159
4160         * calls.c (expand_call): Don't use callgraph to increase
4161         preferred_stack_boundary.
4162
4163         * cgraph.h (cgraph_rtl_info): Use unsigned on
4164         preferred_incoming_stack_boundary.
4165
4166         * final.c (rest_of_clean_state): Use unsigned on
4167         preferred_stack_boundary.
4168
4169 2008-05-09  Tom Tromey  <tromey@redhat.com>
4170
4171         PR preprocessor/22231:
4172         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
4173         proceeding.
4174
4175 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
4176
4177         PR tree-optimization/36129
4178         * tree-ssa-ccp.c: Include value-prof.h.
4179         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
4180         built-in function was folded to a constant.
4181         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
4182
4183 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
4184             Sebastian Pop  <sebastian.pop@amd.com>
4185
4186         * tree-scalar-evolution.c: Document instantiate_scev.
4187         (instantiate_parameters_1): Renamed instantiate_scev_1.
4188         Don't use the same loop for instantiation_loop and evolution_loop.
4189         (instantiate_scev): New.
4190         (instantiate_parameters): Moved...
4191         (resolve_mixers): Update call to instantiate_scev_1 to pass the
4192         same loop twice.  Maintains the semantics for this function.
4193         * tree-scalar-evolution.h (instantiate_scev): Declare.
4194         (instantiate_parameters): ...here.  Now static inline.
4195         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
4196         instead of resolve_mixers.
4197
4198 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
4199
4200         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
4201
4202 2008-05-09  Tomas Bily  <tbily@suse.cz>
4203
4204         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
4205         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
4206         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4207         * c-common.c (c_common_truthvalue_conversion): Likewise.
4208         * tree-object-size.c (compute_object_offset): Likewise.
4209         * tree-inline.c (estimate_num_insns_1): Likewise.
4210         * varasm.c (const_hash_1, compare_constant, copy_constant)
4211         (compute_reloc_for_constant, output_addressed_constants)
4212         (initializer_constant_valid_p): Likewise.
4213         * c-omp.c (check_omp_for_incr_expr): Likewise.
4214         * gimplify.c (gimplify_expr): Likewise.
4215         * c-typeck.c (c_finish_return): Likewise.
4216         * tree-vectorizer.c (supportable_widening_operation)
4217         (supportable_narrowing_operation): Likewise.
4218         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
4219         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
4220         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
4221         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
4222         (descr_info_loc): Likewise.
4223         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4224         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
4225         (fold_unary): Likewise.
4226         * builtins.c (get_pointer_alignment): Likewise.
4227         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
4228         (instantiate_parameters_1): Likewise.
4229         * tree.c (expr_align, stabilize_reference): Likewise.
4230         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
4231         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
4232         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
4233         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4234         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
4235         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
4236         Likewise.
4237         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
4238         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
4239         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
4240         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
4241         (forward_propagate_comparison)
4242         (tree_ssa_forward_propagate_single_use_vars): Likewise.
4243         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
4244         * emit-rtl.c (component_ref_for_mem_expr)
4245         (set_mem_attributes_minus_bitpos): Likewise.
4246         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
4247         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
4248         Likewise.
4249         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
4250         (build_function_call, pointer_diff, build_compound_expr)
4251         (c_finish_return): Likewise.
4252         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
4253         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
4254         Likewise.
4255         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
4256         * expr.c (is_aligning_offset): Likewise.
4257         * tree-ssa-alias.c (is_escape_site): Likewise.
4258         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
4259         (check_all_va_list_escapes): Likewise.
4260         * tree-ssa-loop-ivopts.c (determine_base_object)
4261         (determine_common_wider_type): Likewise.
4262         * dojump.c (do_jump): Likewise.
4263         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
4264         * tree-gimple.c (is_gimple_cast): Likewise.
4265         * fold-const.c (decode_field_reference, )
4266         (fold_sign_changed_comparison, fold_unary, fold_comparison)
4267         (fold_binary): Likewise.
4268         * tree-ssa-alias-warnings.c (find_alias_site_helper)
4269         (already_warned_in_frontend_p): Likewise.
4270         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
4271         * tree.c (really_constant_p, get_unwidened): Likewise.
4272         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
4273         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
4274         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
4275         Likewise.
4276         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
4277         CONVERT_EXPR_P.
4278         (CONVERT_EXPR_P): Define.
4279         (CASE_CONVERT): Define.
4280         
4281 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
4282
4283         PR middle-end/36117
4284         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
4285         (delete_unmarked_insns): When deleting a call, call
4286         delete_unreachable_blocks.
4287         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4288         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
4289
4290 2008-05-08  Richard Guenther  <rguenther@suse.de>
4291
4292         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
4293         (-ftree-salias): Likewise.
4294         (salias-max-implicit-fields): Remove param documentation.
4295         (salias-max-array-elements): Likewise.
4296         * tree-pass.h (pass_create_structure_vars): Remove.
4297         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4298         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4299         * tree-ssa-alias.c (create_structure_vars): Remove.
4300         (gate_structure_vars): Likewise.
4301         (pass_create_structure_vars): Likewise.
4302         (gate_build_alias): Likewise.
4303         (pass_build_alias): Adjust to run always and dump the function.
4304         * common.opt (ftree-salias): Hide.
4305         * passes.c (init_optimization_passes): Remove
4306         pass_create_structure_vars, adjust comment.
4307         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4308         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4309         * opts.c (decode_options): Do not set flag_tree_salias.
4310         (common_handle_option): Add OPT_ftree_salias to the backward
4311         compatibility section.
4312
4313 2008-05-08  Richard Guenther  <rguenther@suse.de>
4314
4315         * tree-flow-inline.h (var_can_have_subvars): Move ...
4316         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
4317         * tree-flow.h (var_can_have_subvars): Remove.
4318         (push_fields_onto_fieldstack): Remove.
4319         (sort_fieldstack): Likewise.
4320         (struct fieldoff): Move ...
4321         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
4322         alias_set and base_for_components fields.
4323         (sort_fieldstack): Make static.
4324         (push_fields_onto_fieldstack): Likewise.  Remove code that
4325         handles anything but RECORD_TYPEs.  Remove alias_set and
4326         base_for_components handling.
4327         (create_variable_info_for): Adjust.
4328
4329 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
4330
4331         * common.opt (Wframe-larger-than=): Shorten the help message
4332         to one line.
4333         * doc/invoke.texi (Wframe-larger-than=): Add more description.
4334
4335 2008-05-08  Rafael Espindola  <espindola@google.com>
4336
4337         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
4338         trap.
4339         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
4340         trap and that both operands are gimple values.
4341         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
4342         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
4343         is a fp operation.
4344
4345 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4346
4347         * read-rtl.c (join_c_conditions): Return the first string if the
4348         two strings are equal.
4349
4350 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4351
4352         * gensupport.h (pred_data): Add a "num_codes" field.
4353         (add_predicate_code): Declare.
4354         * gensupport.c (add_predicate_code): New function.
4355         (std_pred_table): Add an "allows_const_p" field.
4356         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
4357         Remove the (incomplete) list of such codes from the codes field.
4358         (init_predicate_table): Use add_predicate_code.  Add all
4359         RTX_CONST_OBJs if allows_const_p is true.
4360         * genrecog.c (process_define_predicate): Use add_predicate_code.
4361
4362 2008-05-08  David Daney  <ddaney@avtrex.com>
4363             Richard Sandiford  <rsandifo@nildram.co.uk>
4364         
4365         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
4366         special case of constant zero operands.
4367         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
4368         old and new values.  Special case constant zero values.
4369         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
4370         fails.
4371         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
4372         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
4373
4374 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
4375
4376         PR target/36090
4377         * simplify-rtx.c (simplify_plus_minus): Create CONST of
4378         similar RTX_CONST_OBJ before CONST_INT.
4379
4380 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
4381
4382         * stmt.c (expand_stack_restore): Change sa mode if needed.
4383
4384 2008-05-08  Richard Guenther  <rguenther@suse.de>
4385
4386         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
4387         return type to bool.
4388         (ix86_sol10_return_in_memory): Likewise.
4389         (ix86_i386elf_return_in_memory): Likewise.
4390         (ix86_i386interix_return_in_memory): Likewise.
4391         * config/i386/i386.c (ix86_return_in_memory): Likewise.
4392         (ix86_sol10_return_in_memory): Likewise.
4393         (ix86_i386elf_return_in_memory): Likewise.
4394         (ix86_i386interix_return_in_memory): Likewise.
4395
4396 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4397
4398         PR bootstrap/36180
4399         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
4400         fndecl argument.
4401         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
4402         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
4403         declared in front.
4404
4405 2008-05-08  Richard Guenther  <rguenther@suse.de>
4406
4407         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
4408         * tree-data-ref.h (struct dr_alias): Remove subvars field.
4409         (DR_SUBVARS): Remove.
4410         * tree-dfa.c (dump_subvars_for): Remove.
4411         (debug_subvars_for): Likewise.
4412         (dump_variable): Do not dump subvars.
4413         (remove_referenced_var): Do not remove subvars.
4414         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
4415         (lookup_subvars_for_var): Remove.
4416         (get_subvars_for_var): Likewise.
4417         (get_subvars_at): Likewise.
4418         (get_first_overlapping_subvar): Likewise.
4419         (overlap_subvar): Likewise.
4420         * tree-flow.h (subvar_t): Remove.
4421         (struct var_ann_d): Remove subvars field.
4422         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
4423         argument.  Remove special handling of SFTs.
4424         (compute_tag_properties): Likewise.
4425         (set_initial_properties): Likewise.
4426         (compute_call_clobbered): Likewise.
4427         (count_mem_refs): Likewise.
4428         (compute_memory_partitions): Likewise.
4429         (compute_flow_insensitive_aliasing): Likewise.
4430         (setup_pointers_and_addressables): Likewise.
4431         (new_type_alias): Likewise.
4432         (struct used_part): Remove.
4433         (used_portions): Likewise.
4434         (struct used_part_map): Likewise.
4435         (used_part_map_eq): Likewise.
4436         (used_part_map_hash): Likewise.
4437         (free_used_part_map): Likewise.
4438         (up_lookup): Likewise.
4439         (up_insert): Likewise.
4440         (get_or_create_used_part_for): Likewise.
4441         (create_sft): Likewise.
4442         (create_overlap_variables_for): Likewise.
4443         (find_used_portions): Likewise.
4444         (create_structure_vars): Likewise.
4445         * tree.def (STRUCT_FIELD_TAG): Remove.
4446         * tree.h (MTAG_P): Adjust.
4447         (struct tree_memory_tag): Remove base_for_components and
4448         unpartitionable flags.
4449         (struct tree_struct_field_tag): Remove.
4450         (SFT_PARENT_VAR): Likewise.
4451         (SFT_OFFSET): Likewise.
4452         (SFT_SIZE): Likewise.
4453         (SFT_NONADDRESSABLE_P): Likewise.
4454         (SFT_ALIAS_SET): Likewise.
4455         (SFT_UNPARTITIONABLE_P): Likewise.
4456         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
4457         (union tree_node): Remove sft field.
4458         * alias.c (get_alias_set): Remove special handling of SFTs.
4459         * print-tree.c (print_node): Remove handling of SFTs.
4460         * tree-dump.c (dequeue_and_dump): Likewise.
4461         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
4462         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
4463         * tree-predcom.c (set_alias_info): Do not set subvars.
4464         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
4465         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
4466         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
4467         (add_vars_for_offset): Remove.
4468         (add_virtual_operand): Remove special handling of SFTs.
4469         (add_call_clobber_ops): Likewise.
4470         (add_call_read_ops): Likewise.
4471         (get_asm_expr_operands): Likewise.
4472         (get_modify_stmt_operands): Likewise.
4473         (get_expr_operands): Likewise.
4474         (add_to_addressable_set): Likewise.
4475         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
4476         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4477         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
4478         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
4479         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
4480         (tree_node_structure): Likewise.
4481         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
4482         handling of SFTs.
4483         (find_what_p_points_to): Likewise.
4484
4485 2008-05-08  Sa Liu  <saliu@de.ibm.com>
4486
4487         * config/spu/spu.md: Fixed subti3 pattern.
4488
4489 2008-05-08  Richard Guenther  <rguenther@suse.de>
4490
4491         PR middle-end/36154
4492         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
4493         sure to create a representative for trailing arrays for PTA.
4494
4495 2008-05-08  Richard Guenther  <rguenther@suse.de>
4496
4497         PR middle-end/36172
4498         * fold-const.c (operand_equal_p): Two objects which types
4499         differ in pointerness are not equal.
4500
4501 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4502
4503         * calls.c (compute_argument_block_size): Add argument tree fndecl.
4504         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
4505         (emit_library_call_value_1): Add new variable fndecl initialized by
4506         NULL_TREE. It should be the decl type of orgfun, but this information
4507         seems not to be available here, so it uses the default calling abi.
4508         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
4509         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
4510         by TARGET_RETURN_IN_MEMORY.
4511         * config/i386/i386-interix.h: Likewise.
4512         * config/i386/i386.h: Likewise.
4513         * config/i386/i386elf.h: Likewise.
4514         * config/i386/ptx4-i.h: Likewise.
4515         * config/i386/sol2-10.h: Likewise.
4516         * config/i386/sysv4.h: Likewise.
4517         * config/i386/vx-common.h: Likewise.
4518         * config/cris/cris.h: Removed #if 0 clause.
4519         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
4520         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
4521         argument.
4522         (ix86_sol10_return_in_memory): Likewise.
4523         (ix86_i386elf_return_in_memory): New.
4524         (ix86_i386interix_return_in_memory): New.
4525         * config/mt/mt-protos.h (mt_return_in_memory): New.
4526         * config/mt/mt.c: Likewise.
4527         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4528         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
4529         * config/bfin/bfin.h: Likewise.
4530         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
4531         argument.
4532         * config/bfin/bfin.c: Likewise.
4533         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4534         * config/alpha/unicosmk.h: Likewise.
4535         * config/i386/cygming.h: Likewise.
4536         * config/iq2000/iq2000.h: Likewise.
4537         * config/mips/mips.h: Likewise.
4538         * config/mn10300/mn10300.h: Likewise.
4539         * config/rs6000/rs6000.h: Likewise.
4540         * config/score/score.h: Likewise.
4541         * config/spu/spu.h: Likewise.
4542         * config/v850/v850.h: Likewise.
4543         * defaults.h: Likewise.
4544         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
4545         * expr.c (emit_block_move): Adjust use of
4546         OUTGOING_REG_PARM_STACK_SPACE.
4547         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
4548         OUTGOING_REG_PARM_STACK_SPACE.
4549         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
4550
4551 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
4552
4553         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
4554         on OMP_RETURN for OMP_FOR.
4555
4556         PR debug/35896
4557         * dwarf2out.c (dw_expand_expr, common_check): Removed.
4558         (fortran_common): New function.
4559         (gen_variable_die): Call fortran_common instead of common_check,
4560         adjust for it returning tree instead of rtx.  Formatting.
4561
4562 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4563
4564         PR rtl/7335
4565         PR rtl/33826
4566         * see.c (see_copy_insn): Copy new pure const attributes for new call.
4567         * c-decl.c (merge_decls): Ditto.
4568         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
4569         to RTL_CONST_OR_PURE_CALL_P.
4570         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
4571         Initialized DECL_LOOPING_CONST_PURE.
4572         (process_call_operands): Set tree_side_effects properly.
4573         * tree.h (TREE_READONLY_DECL_P): Removed.
4574         (DECL_IS_PURE): Renamed to DECL_PURE_P.
4575         (DECL_LOOPING_OR_CONST_P): New macro.
4576         (struct tree_function_decl): Added looping_const_or_pure_p.
4577         (ECF_*) Renumbered.
4578         (ECF_LOOPING_OR_CONST_P): New macro.
4579         * rtlanal.c (pure_const_p): Removed.
4580         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
4581         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
4582         to RTL_CONST_CALL_P.
4583         * ipa-pure-const.c (pure_const_state_e): Added looping field.
4584         (check_decl, check_tree, check_call, scan_function): Initialize
4585         looping.
4586         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
4587         (static_execute): Set looping true for recursive functions.
4588         Undo setting state to IPA_NEITHER for recursive functions.
4589         * cse.c (cse_insn): 
4590         * ifcvt.c (noce_can_store_speculate_p): Changed
4591         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
4592         RTL_CONST_OR_PURE_CALL_P.
4593         * dse.c (scan_insn): Ditto.
4594         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
4595         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
4596         RTL_CONST_OR_PURE_CALL_P.
4597         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
4598         pure_call_p to RTL_CONST_CALL_P.
4599         * gimplify.c (gimplify_call_expr): Clear side effects for
4600         non-looping pure and constant calls.
4601         * calls.c (emit_call_1): Set rtl flags from ecf flags.
4602         (flags_from_decl_or_type): Set ecf flags from decl flags.
4603         (initialize_argument_information): Turn off
4604         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
4605         Change const to pure if callee_copies is true rather than just
4606         turning off const.
4607         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
4608         way of marking pure calls.
4609         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
4610         Remove hack that was supposed to fix pr7335 and remove old
4611         way of marking pure calls.
4612         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
4613         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
4614         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
4615         RTL_CONST_OR_PURE_CALL_P.
4616         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
4617         * loop-invariant.c (find_exits, find_invariant_bb): Changed
4618         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
4619         * sched-deps.c (schedule_analyze): Ditto.
4620         * rtl.h (struct rtx_def): Use call field, unchanging field, and
4621         return_val field of calls to represent pure and const function info.
4622         (CONST_OR_PURE_CALL_P): Deleted macro.
4623         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4624         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
4625         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
4626         TREE_READONLY.
4627         * tree-optimize.c (execute_fixup_cfg): Added test for
4628         ECF_LOOPING_CONST_OR_PURE.
4629         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
4630         DECL_PURE_P.
4631         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
4632         effects for looping pure or const calls.
4633         (verify_gimple_expr): Added verification code. 
4634         * config/alpha/alpha.c (alpha_legitimize_address,
4635         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
4636         RTL_CONST_CALL_P.
4637         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
4638         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
4639         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
4640         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
4641         RTL_CONST_OR_PURE_CALL_P.
4642         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
4643         and const calls to be deleted.
4644
4645 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4646
4647         PR target/35714
4648         * config/i386/mmx.md (mmx_subv2sf3): New expander.
4649         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
4650         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
4651         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4652         to handle nonimmediate operands.
4653         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
4654         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
4655         to handle nonimmediate operands.
4656         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
4657         (mmx_pmulhrwv4hi3): New expander.  Use
4658         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4659         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
4660         (sse2_umulv1siv1di3): New expander.  Use
4661         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4662         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
4663         (mmx_eq<mode>3): New expander.  Use
4664         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4665         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
4666         (mmx_uavgv8qi3): New expander.  Use
4667         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4668         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
4669         (mmx_uavgv4hi3): New expander.  Use
4670         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4671
4672         * config/i386/sse.md
4673         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
4674         to handle nonimmediate operands.
4675         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
4676         to handle nonimmediate operands.
4677         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
4678         to handle nonimmediate operands.
4679         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
4680         to handle nonimmediate operands.
4681         (sse2_unpckhpd_exp): New expander.  Use
4682         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4683         (sse2_unpcklpd_exp): New expander.  Use
4684         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4685         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
4686         to handle nonimmediate operands.
4687         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
4688         to handle nonimmediate operands.
4689         (*sse2_<plusminus_insn><mode>3): Rename from
4690         sse2_<plusminus_insn><mode>3 insn pattern.
4691         (sse2_<plusminus_insn><mode>3): New expander.  Use
4692         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4693         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
4694         (sse2_umulv2siv2di3): New expander.  Use
4695         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4696         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
4697         (sse4_1_mulv2siv2di3): New expander.  Use
4698         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4699         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
4700         (sse2_pmaddwd): New expander.  Use
4701         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4702         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
4703         (sse2_eq<mode>3): New expander.  Use
4704         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4705         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
4706         (sse4_1_eqv2di3): New expander.  Use
4707         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4708         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4709         (sse2_uavgv16qi3): New expander.  Use
4710         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4711         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4712         (sse2_uavgv16qi3): New expander.  Use
4713         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4714         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
4715         (sse2_uavgv8hi3): New expander.  Use
4716         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4717         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
4718         (ssse3_pmulhrswv8hi3): New expander.  Use
4719         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4720         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
4721         (ssse3_pmulhrswv4hi3): New expander.  Use
4722         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4723
4724         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
4725         (<sse>_vmmul<mode>3): Ditto.
4726         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
4727         (divv2df3): Ditto.
4728         (ssse3_pmaddubsw128): Use register_operand for operand 1.
4729         (ssse3_pmaddubsw): Ditto.
4730
4731         * config/i386/i386.c (struct_builtin_description)
4732         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
4733         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
4734         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
4735         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
4736         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
4737         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
4738         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
4739         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
4740         (ix86_fixup_binary_operands): Assert that src1
4741         and src2 must have the same mode when swapped.
4742         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
4743         and ix86_binary_operator_ok.  Do not force operands in registers
4744         when optimizing.
4745
4746 2008-05-07  Jan Hubicka  <jh@suse.cz>
4747
4748         * cgraph.c (dump_cgraph_node): Update.
4749         * cgraph.h (cgraph_local_info): Break out inline summary.
4750         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
4751         hook.
4752         * ipa-inline (inline_summary): New accestor function.
4753         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
4754         cgraph_decide_inlining, compute_inline_parameters): Update.
4755         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
4756
4757 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4758
4759         Cleanup ColdFire scheduling support and add V4 pipeline model.
4760
4761         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
4762         (define_attr cpu): Add cfv4 value.
4763         (define_attr type, define_attr type1): Merge into a single 'type'
4764         attribute.  Update all uses.
4765         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
4766         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
4767         Update all uses.
4768         (define_attr opx_mem, define_attr opy_mem): Remove.
4769         (define_attr op_mem): Clean up, update comment.
4770         (define_attr size): Use specific values instead of general int.
4771         (define_attr guess, define_attr split): Remove.  Update all uses.
4772         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
4773         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
4774         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
4775         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
4776         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
4777         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
4778         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
4779         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
4780         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
4781         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
4782         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
4783         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
4784         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
4785         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
4786         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
4787         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
4788         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
4789         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
4790         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
4791         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
4792         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
4793         Update or set attributes.
4794         (stack_tie): New fake instruction.
4795
4796         * config/m68k/m68k.h (TUNE_CFV4): New macro.
4797         (m68k_sched_attr_size): Update declaration.
4798         (m68k_sched_attr_type2): Remove.
4799         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
4800         Declare new bypass predicates.
4801
4802         * config/m68k/m68k.c (m68k_sched_issue_rate,
4803         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
4804         implementations.
4805         (TARGET_SCHED_ISSUE_RATE,
4806         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
4807         (override_options): Handle scheduling for ColdFire V4 core.
4808         (m68k_expand_prologue): Emit stack_tie.
4809         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
4810         'OP_TYPE_FPN'.  Update all uses.
4811         (sched_guess_p): Remove.
4812         (sched_address_type): Handle symbolic addresses.
4813         (sched_get_operand): New static function.
4814         (sched_operand_type): Merge into sched_attr_op_type.
4815         (sched_attr_op_type): Handle FP registers, handle quick constants,
4816         update.
4817         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
4818         (m68k_sched_attr_size): Update.  Move logic to ...
4819         (sched_get_attr_size_int): New static function.
4820         (sched_get_opxy_mem_type): New static function.
4821         (m68k_sched_attr_op_mem): Update.
4822         (m68k_sched_attr_type2): Remove.
4823         (sched_cfv4_bypass_data): New static variable.
4824         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
4825         (m68k_sched_issue_rate): Implement scheduler hook.
4826         (struct _sched_ib: enabled_p): New field.
4827         (m68k_sched_variable_issue): Update.  Handle V4.
4828         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
4829         sched_dump_class_func_t, sched_dump_split_class,
4830         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
4831         sched_dump_dfa_class, m68k_sched_dump): Remove.
4832         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
4833         hook.
4834         (m68k_sched_init_global): Remove statisctics dumping, introduce
4835         sanity check that all instructions have pipeline reservations.  Handle
4836         ColdFire V4 core.
4837         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4838         Handle ColdFire V4 core.
4839         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
4840         New static functions.
4841         (m68k_sched_address_bypass_p): New bypass predicate.
4842         (sched_get_indexed_address_scale): New static function.
4843         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
4844
4845         * cf.md: Update comments.
4846         (define_attr type2): Remove.  Use 'type' attribute instead.
4847         Update all uses.
4848         (cf_ib): Rename to cfv123_ib.  Update all uses.
4849         (cf_oep): Rename to cfv123_oep.  Update all uses.
4850         (cf_chr): Rename to cfv123_chr.  Update all uses.
4851         (cf_mem): Rename to cfv123_mem.  Update all uses.
4852         (cf_mac): Move to more appropriate place.
4853         (cfv123_guess): New automaton and cpu_unit.
4854         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
4855         Update uses of 'size' attribute.  Handle before reload scheduling.
4856         (cfv123_guess): New dummy reservation for unhandled instructions.
4857         (cfv4_*): Pipeline description of ColdFire V4 core.
4858         (ignore): New reservation to handle 'ignore' type.
4859
4860 2008-05-07  Ian Lance Taylor  <iant@google.com>
4861
4862         PR middle-end/36013
4863         * gimplify.c (find_single_pointer_decl_1): Don't look through
4864         indirections.
4865         (find_single_pointer_decl): Adjust comments.
4866
4867 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
4868
4869         PR middle-end/36137
4870         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
4871         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
4872
4873         PR middle-end/36106
4874         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
4875         integral type rather than floating point, then VIEW_CONVERT_EXPR
4876         to the floating point type.
4877
4878 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4879
4880         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
4881         TFmode op0 to register.
4882
4883 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
4884
4885         * c-decl.c (grokdeclarator): Comment typo.
4886
4887 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
4888
4889         * tree-flow.h: Remove prototype for computed_goto_p.
4890         * tree-cfg.c (computed_goto_p): Make static.
4891
4892 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
4893
4894         PR target/35657
4895         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4896         (contains_aligned_value_p): This.  Handle _Decimal128.
4897         (ix86_function_arg_boundary): Only align _Decimal128 to its
4898         natural boundary and handle it properly.
4899
4900 2008-05-06  Martin Jambor  <mjambor@suse.cz>
4901
4902         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
4903         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
4904         (ipcp_method_set_orig_node): Removed.
4905         (ipcp_cval_get_cvalue_type): Removed.
4906         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
4907         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
4908         (ipcp_cval_set_cvalue_type): Removed.
4909         (ipcp_cval_get_cvalue): Removed.
4910         (ipcp_cval_set_cvalue): Removed.
4911         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
4912         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
4913         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
4914         (ipcp_cval_meet): Renamed to ipa_lattice_meet
4915         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
4916         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
4917         (ipcp_get_ith_lattice): Changed parameters.
4918         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
4919         (ipcp_lattice_from_jfunc): Changed parameters.
4920         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
4921         (ipcp_method_cval_print): Added temporary variable info.
4922         (ipcp_redirect): Removed already unused local variable caller.
4923         (ipcp_redirect): New temporary variable orig_callee_info
4924         (ipcp_redirect): Removed newly unused local variable callee.
4925         (ipcp_redirect): Removed (a bit confusing) local variable type.
4926         (ipcp_insert_stage): Added local variable info.
4927         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
4928         renamed too
4929         (ipcp_formal_create): Removed.
4930         (ipcp_method_cval_set): Removed.
4931         (ipcp_propagate_stage): Renamed lattice variables.
4932         (ipcp_method_cval_set_cvalue_type): Removed.
4933         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
4934         (ipcp_print_all_lattices): Changed printed strings to refer to 
4935         lattices rather than cvals.
4936         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
4937         (ipcp_propagate_const): Changed formal parameters.
4938         (build_const_val): Changed formal parameters.
4939         (ipcp_insert_stage): Removed useless variable cvalue
4940         (build_const_val): Changed formal parameters.
4941         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
4942         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
4943         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
4944         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
4945         (ipcp_print_func_profile_counts): Changed string from "method" to 
4946         "function"
4947         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
4948         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
4949         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
4950         (ipcp_structures_print): Renamed to ipcp_print_all_structures
4951         (ipcp_profile_print): Renamed to ipcp_print_profile_data
4952         (ipcp_lat_is_const): Changed parameters and made inline.
4953         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
4954         (ipcp_redirect): Renamed to ipcp_need_redirect_p
4955         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
4956         the predicate condition directly
4957         (ipcp_propagate_stage): Added local variable args. Removed local
4958         variable callee.  (Both are mere code simplifications.)
4959         (ipcp_method_dont_insert_const): Renamed to
4960         ipcp_node_not_modifiable_p.
4961         (ipcp_node_not_modifiable_p): Made inline.
4962         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
4963         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
4964         (ipcp_print_all_lattices): Removed variable cvalue
4965         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
4966         Updated comments.
4967
4968 2008-05-06  Olivier Hainque  <hainque@adacore.com>
4969
4970         * tree-sra.c (try_instantiate_multiple_fields): Early return
4971         if field has POINTER_TYPE.
4972
4973 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
4974
4975         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
4976         by using 'q' specifier for instruction.
4977         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
4978
4979 2008-05-06  Anatoly Sokolov <aesok@post.ru>
4980
4981         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4982         Change mode of zero_extract from QImode to HImode.
4983         (sign bit tests peepholes): (Ditto.).
4984
4985 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
4986
4987         * config/i386/mmx.md: Remove double backslashes from asm templates.
4988         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
4989         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4990         to handle nonimmediate operands.
4991         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
4992         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4993         to handle nonimmediate operands.
4994         (*mmx_<code>v2sf3_finite): New insn pattern.
4995         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
4996         (mmx_<code>v2sf3): New expander.  Use
4997         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4998         (mmx_<plusminus_insn><mode>3): New expander.  Use
4999         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5000         (*mmx_<plusminus_insn><mode>3): New insn pattern.
5001         (mmx_add<mode>3): Removed.
5002         (mmx_ssadd<mode>3): Ditto.
5003         (mmx_usadd<mode>3): Ditto.
5004         (mmx_sub<mode>3): Ditto.
5005         (mmx_sssub<mode>3): Ditto.
5006         (mmx_ussub<mode>3): Ditto.
5007         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
5008         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
5009         to handle nonimmediate operands.
5010         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
5011         insn pattern.
5012         (mmx_smulv4hi3_highpart): New expander.  Use
5013         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5014         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
5015         insn pattern.
5016         (mmx_umulv4hi3_highpart): New expander.  Use
5017         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5018         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
5019         (mmx_<code>v4hi3): New expander.  Use
5020         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5021         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
5022         (mmx_<code>v8qi3): New expander.  Use
5023         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5024         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
5025         (mmx_<code><mode>3): New expander.  Use
5026         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5027
5028 2008-05-05  Jan Hubicka  <jh@suse.cz>
5029
5030         PR tree-optimization/36118
5031         * passes.c (pass_init_dump_file): Fix dump header.
5032
5033 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5034
5035         PR middle-end/36141
5036         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
5037         VCE for function decls.
5038
5039 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5040
5041         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
5042
5043 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5044
5045         * config/i386/i386.md (sat_plusminus): New.
5046         (plusminus_insn): Likewise.
5047         (plusminus_mnemonic): Likewise.
5048         (addsub): Removed.
5049         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
5050         (*<addsub><mode>3_cc_overflow): Renamed to ...
5051         (*<plusminus_insn><mode>3_cc_overflow): This.
5052         (*<addsub>si3_zext_cc_overflow): Renamed to ...
5053         (*<plusminus_insn>si3_zext_cc_overflow): This.
5054
5055         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
5056         (<plusminus_insn><mode>3): This.
5057         (*<addsub><mode>3): Renamed to ...
5058         (*<plusminus_insn><mode>3): This.
5059         (<sse>_vm<addsub><mode>3): Renamed to ...
5060         (<sse>_vm<plusminus_insn><mode>3): This.
5061         (sse3_h<addsub>v4sf3): Renamed to ...
5062         (sse3_h<plusminus_insn>v4sf3): This.
5063         (sse3_h<addsub>v2df3): Renamed to ...
5064         (sse3_h<plusminus_insn>v2df3): This.
5065         (<plusminus_insn><mode>3): New.
5066         (*<plusminus_insn><mode>3): Likewise.
5067         (sse2_<plusminus_insn><mode>3): Likewise.
5068         (add<mode>): Removed.
5069         (*add<mode>3): Likewise.
5070         (sse2_ssadd<mode>3): Likewise.
5071         (sse2_usadd<mode>3): Likewise.
5072         (sub<mode>3): Likewise.
5073         (*sub<mode>3): Likewise.
5074         (sse2_sssub<mode>3): Likewise.
5075         (sse2_ussub<mode>3): Likewise.
5076
5077 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
5078
5079         * gthr-single.h: Add in required interface elements as per gthr.h.
5080         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
5081         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
5082         Generalize UNUSED macro. 
5083         (__gthread_once): Add.
5084         (__gthread_key_create): Add.
5085         (__gthread_key_delete): Add.
5086         (__gthread_getspecific): Add.
5087         (__gthread_setspecific): Add.
5088         
5089 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
5090
5091         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
5092         the same size types for the indirect reference on the rhs, then
5093         create a VCE.
5094
5095 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
5096
5097         * config/i386/i386.md
5098         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
5099         one insn template instead of template series.
5100         (*xordi_1_rex64): Ditto.
5101         (*xordi_2_rex64): Ditto.
5102
5103 2008-05-05  Ira Rosen  <irar@il.ibm.com>
5104
5105         PR tree-optimization/36119
5106         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
5107         in case of SLP.
5108
5109 2008-06-04  Jan Hubicka  <jh@suse.cz>
5110
5111         tree-optimization/36100
5112         * tree-pass.h (pass_O0_always_inline): Declare.
5113         * ipa-inline.c (inline_transform): Remove dead code.
5114         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
5115         pass_O0_always_inline): New.
5116         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
5117
5118 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
5119
5120         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
5121         mnemonic in this_param move for TARGET_64BIT.
5122
5123 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
5124
5125         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
5126         (*strmovsi_rex_1): Ditto.
5127         (*strsetsi_1): Ditto.
5128         (*strsetsi_rex_1): Ditto.
5129
5130         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
5131         adddicc expanders using SWI mode iterator.
5132
5133 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5134
5135         PR target/36121
5136         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
5137         argument handling.
5138
5139 2008-05-04  David S. Miller  <davem@davemloft.net>
5140
5141         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
5142         (sparc*-*-linux*): Use linux.h in tm_file.
5143         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
5144         compiler defaulting to 32-bit.
5145         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
5146         no longer needed.
5147         * config/sparc/linux.h: Remove definitions now obtained
5148         properly from linux.h
5149         * config/sparc/linux64.h: Likewise.
5150         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
5151         don't want this setting for 32-bit builds in a biarch compiler.
5152         * doc/install.texi: Add sparc-linux to list of targets
5153         supporting --enable-targets=all.
5154
5155 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
5156
5157         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
5158
5159 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
5160
5161         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
5162         after V4SI_FTYPE_V8HI.
5163         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
5164         case V4SI_FTYPE_V2DF.
5165
5166 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
5167
5168         * doc/invoke.texi (max-flow-memory-locations): Removed.
5169         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
5170         
5171 2008-05-03  Richard Guenther  <rguenther@suse.de>
5172
5173         PR middle-end/34973
5174         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
5175
5176 2008-05-02  David S. Miller  <davem@davemloft.net>
5177
5178         * config.gcc (need_64bit_hwint): Document libcpp dependency.
5179
5180 2008-05-02  Simon Baldwin <simonb@google.com>
5181
5182         PR bootstrap/36108
5183         * c-common.h (warn_array_subscript_range): Removed.
5184         * c-common.c (warn_array_subscript_range): Ditto.
5185         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
5186         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
5187
5188 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5189
5190         * config/i386/i386.c (ix86_special_builtin_type): New.
5191         (bdesc_special_args): Likewise.
5192         (ix86_expand_special_args_builtin): Likewise.
5193         (ix86_init_mmx_sse_builtins): Updated.
5194         (ix86_expand_builtin): Updated.
5195         (ix86_expand_store_builtin): Removed.
5196         (ix86_expand_unop_builtin): Likewise.
5197
5198         * config/i386/mm3dnow.h (__v2sf): Moved to ...
5199         * config/i386/mmintrin.h (__v2sf): Here.
5200
5201         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
5202         const __v2sf.
5203         (_mm_loadl_pi): Likewise.
5204         (_mm_storeh_pi): Replace __v2si with __v2sf.
5205         (_mm_storel_pi): Likewise.
5206
5207         * doc/extend.texi: Correct __builtin_ia32_loadhps,
5208         __builtin_ia32_loadlps, __builtin_ia32_storehps,
5209         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
5210         __builtin_ia32_loadlpd.
5211
5212 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5213
5214         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
5215         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
5216         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
5217         (ix86_init_mmx_sse_builtins): Updated.
5218         (ix86_expand_args_builtin): Likewise.
5219         (ix86_expand_builtin): Likewise.
5220         (ix86_expand_unop1_builtin): Renamed to ...
5221         (ix86_expand_unop_vec_merge_builtin): This.
5222
5223 2008-05-01  Jan Hubicka  <jh@suse.cz>
5224
5225         PR bootstrap/36100
5226         * ipa-inline.c (inline_generate_summary): Make static.
5227         (inline_transform): Do not call inlining at -O0; make static.
5228         * passes.c (execute_todo): Add sanity check.
5229         (execute_one_ipa_transform_pass): Execute proper flags.
5230
5231 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
5232
5233         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
5234         (DECL_NONADDRESSABLE_P): Likewise.
5235         * alias.c (record_component_aliases): Fix comment.
5236
5237 2008-05-01  Simon Baldwin <simonb@google.com>
5238
5239         * c-common.h (warn_array_subscript_range): New function.
5240         * c-common.c (warn_array_subscript_range): Ditto.
5241         * tree-vrp.c (check_array_ref): Corrected code to agree with
5242         comment, ignoring only arrays of size 0 or size 1.
5243         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
5244
5245 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5246
5247         * config/i386/i386.c (ix86_builtin_type): Replace
5248         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
5249         (bdesc_args): Updated.
5250         (ix86_init_mmx_sse_builtins): Likewise.
5251         (ix86_expand_args_builtin): Likewise.
5252
5253         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
5254         with __v1di.
5255
5256         * doc/extend.texi: Correct __builtin_ia32_palignr.
5257
5258 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5259
5260         PR target/36095
5261         * config/i386/i386.c (bdesc_crc32): Removed.
5262         (ix86_expand_crc32): Likewise.
5263         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
5264         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
5265         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
5266         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
5267         UINT_FTYPE_UINT_UCHAR.
5268         (bdesc_args): Updated. Add crc32 builtins.
5269         (ix86_init_mmx_sse_builtins): Updated.
5270         (ix86_expand_args_builtin): Updated to support subreg.
5271
5272         * doc/extend.texi: Correct __builtin_ia32_crc32di.
5273
5274 2008-05-01  Jan Hubicka  <jh@suse.cz>
5275
5276         * tree-pass.h (opt_pass): Add IPA_PASS.
5277         (varpool_node, cgraph_node): Forward declare.
5278         (ipa_opt_pass): Define.
5279         (pass_ipa_inline): Turn into ipa_opt_pass.
5280         (pass_apply_inline): Remove.
5281         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
5282         (apply_inline): Turn into ....
5283         (inline_transform): ... this one.
5284         (inline_generate_summary): New function.
5285         (pass_apply_inline): Remove.
5286         * function.h (ipa_opt_pass): Forward declare structure; typedef;
5287         vector.
5288         (struct function): Add ipa_transforms_to_apply.
5289         * passes.c (register_one_dump_file): Work on IPA_PASS.
5290         (init_optimization_passes): Remove pass_inline_parameters and
5291         pass_apply_inline.
5292         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
5293         (execute_one_pass) ... here; apply transforms when possible.
5294         (add_ipa_transform_pass, execute_ipa_summary_asses,
5295         execute_one_ipa_transform_pass): New.
5296         (execute_ipa_pass_list): Update for IPA_PASS type.
5297
5298 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5299
5300         * config/i386/i386.c (ix86_builtin_type): Add
5301         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
5302         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
5303         (bdesc_args): Add SSE4a builtins.
5304         (ix86_init_mmx_sse_builtins): Updated.
5305         (ix86_expand_args_builtin): Likewise.
5306         (ix86_expand_builtin): Likewise.
5307
5308 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5309
5310         * config/i386/i386.c (ix86_builtin_type): Add
5311         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
5312         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
5313         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
5314         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
5315         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
5316         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
5317         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
5318         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
5319         and DI_FTYPE_DI_DI_INT.
5320         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
5321         (ix86_init_mmx_sse_builtins): Updated.
5322         (ix86_expand_args_builtin): Likewise.
5323         (ix86_expand_builtin): Likewise.
5324         (ix86_expand_binop_imm_builtin): Removed.
5325
5326         * doc/extend.texi: Correct __builtin_ia32_palignr128.
5327
5328 2008-04-30  Richard Guenther  <rguenther@suse.de>
5329
5330         PR tree-optimization/32921
5331         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
5332
5333 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
5334
5335         * config/arm/arm.c (arm_unwind_emit): Use
5336         crtl->all_throwers_are_sibcalls instead of
5337         cfun->all_throwers_are_sibcalls.
5338         (arm_output_fn_unwind): Likewise.
5339         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
5340         instead of cfun->uses_pic_offset_table.
5341         (frv_expand_prologue): Likewise.
5342         (frv_frame_pointer_required): Likewise.
5343         (frv_expand_fdpic_call): Likewise.
5344         (frv_emit_movsi): Likewise.
5345         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
5346         cfun->returns_pcc_struct instead of
5347         current_function_returns_pcc_struct.
5348         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
5349         instead of cfun->calls_eh_return.
5350         (m32c_pushm_popm): Likewise.
5351         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
5352         "extern" declaration.
5353
5354 2008-04-30  Richard Guenther  <rguenther@suse.de>
5355
5356         PR tree-optimization/21636
5357         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
5358         constant address.
5359         (evaluate_stmt): Print the likely value.
5360         (ccp_visit_stmt): Avoid excessive vertical spacing.
5361
5362 2008-04-30  Rafael Espindola  <espindola@google.com>
5363
5364         * builtins.c (fold_call_expr): Return realret.
5365         * tree-ssa-threadedge.c
5366         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5367         __builtin_object_size.
5368
5369 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
5370
5371         * gcc.c (wrapper_string): New variable.
5372         (insert_wrapper): New function.
5373         (execute): New option -wrapper.
5374         * doc/invoke.texi (Overall Options): New driver option -wrapper.
5375
5376 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
5377
5378         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
5379         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
5380         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
5381         from...
5382         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
5383         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
5384         config/rs6000/e500crtres64gprctr.asm,
5385         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
5386         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
5387         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
5388         config/rs6000/e500crtsav64gprctr.asm,
5389         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
5390         config/rs6000/e500crtsavg64gprctr.asm: New files.
5391         * config/rs6000/t-ppccomm: Add build rules for new files.
5392         (LIB2FUNCS_STATIC_EXTRA): Add new files.
5393         * config/rs6000/t-netbsd: Add build rules for new files.
5394         (LIB2FUNCS_STATIC_EXTRA): New variable.
5395         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
5396         (CRTSAVRES_DEFAULT_SPEC): Likewise.
5397         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
5398
5399 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
5400
5401         * config/i386/i386.c (ix86_builtin_type): Add
5402         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
5403         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
5404         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
5405         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
5406         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
5407         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
5408         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
5409         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
5410         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
5411         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
5412         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
5413         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
5414         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
5415         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
5416         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
5417         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
5418         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
5419         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
5420         V1DI_FTYPE_V2SI_V2SI.
5421         (bdesc_2arg): Moved to ...
5422         (bdesc_args): Here.
5423         (ix86_init_mmx_sse_builtins): Updated.
5424         (ix86_expand_args_builtin): Updated.  Take a pointer
5425         to const struct builtin_description.  Handle comparison
5426         builtin functions.
5427         (ix86_expand_sse_compare): Take a new argument for swapping operands.
5428         (ix86_expand_builtin): Updated.
5429
5430         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
5431         (ssse3_pmaddubsw128): This.
5432         (ssse3_pmaddubswv4hi3): Renamed to ...
5433         (ssse3_pmaddubsw): This.
5434
5435         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
5436         (__builtin_ia32_packssdw128): Likewise.
5437         (__builtin_ia32_packuswb128): Likewise.
5438         (__builtin_ia32_pmaddubsw): Likewise.
5439         (__builtin_ia32_pmaddubsw128): Likewise.
5440
5441 2008-04-30  Richard Guenther  <rguenther@suse.de>
5442
5443         PR tree-optimization/14847
5444         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
5445         (recognize_bits_test): Use it.
5446         (recognize_single_bit_test): Likewise.
5447
5448 2008-04-30  Martin Jambor  <mjambor@suse.cz>
5449
5450         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
5451         instead of setting number of formal parameters to zero.
5452         (ipcp_init_stage): Do not set the number of actual parameters to zero 
5453         either.
5454         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
5455         which are called with variable number of arguments.
5456         (ipcp_insert_stage): Explicitely skipping all nodes which are
5457         called with variable number of arguments.
5458         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
5459         number of parameters.
5460
5461         * ipa-prop.h (struct ipa_node_params): Added flag
5462         called_with_var_arguments
5463         (ipa_set_param_count): Added.  Changed sole setter to use it.
5464         (ipa_get_param_count): Added.  All readers of param_count
5465         converted to use it instead.
5466         (ipa_set_called_with_variable_arg): Added.
5467         (ipa_is_called_with_var_arguments): Added.
5468         (ipa_get_ith_param): Added.  All readers of param_decls converted
5469         to use it instead.
5470         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
5471         changed to use it. 
5472         (ipa_get_cs_argument_count): Added, all readers of argument_count
5473         changed to cal it.
5474         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
5475         to use it.
5476         
5477         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
5478         (struct ipcp_lattice): Renamed cval_type to type
5479         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
5480
5481         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
5482         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
5483         (ipcp_insert_stage): Changed the type of variable cvalue to tree
5484         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
5485         (build_const_val): Changed the type of parameter cvalue to tree
5486         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
5487         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
5488         
5489         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
5490         constant 
5491
5492         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
5493         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
5494         (ipa_add_method): Renamed to ipa_push_func_to_list
5495         (ipa_remove_method): Renamed to ipa_pop_func_from_list
5496         (ipa_callsite_param_count): Removed.
5497         (ipa_callsite_param_count_set): Removed.
5498         (ipa_callsite_param): Removed.
5499         (ipa_callsite_callee): Removed.
5500         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
5501         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
5502         (ipa_method_formal_count): Removed.
5503         (ipa_method_formal_count_set): Removed.
5504         (ipa_method_get_tree): Removed.
5505         (ipa_method_tree_map_create): Removed.
5506         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
5507         (ipa_create_param_decls_array): Creates the array itself
5508         (ipa_create_param_decls_array): Temporary variable info instead of 
5509         a few dereferences.
5510         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
5511         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
5512         (get_type): Removed.
5513         (ipa_jf_get_info_type): Removed.
5514         (ipa_node_create): Renamed to ipa_create_node_params
5515         (ipa_free): Renamed to ipa_free_all_node_params
5516         (ipa_nodes_create): Renamed to ipa_create_all_node_params
5517         (ipa_edges_create): Renamed to ipa_create_all_edge_args
5518         (ipa_edges_free): Renamed to ipa_free_all_edge_args
5519         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
5520         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
5521         ipa_free_all_edge_args
5522         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
5523         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
5524         (ipa_create_methodlist_node): Removed.
5525         (ipa_methodlist_method): Removed.
5526         (ipa_methodlist_method_set): Removed.
5527         (ipa_methodlist_next_method): Removed.
5528         (ipa_methodlist_next_method_set): Removed.
5529         (ipa_method_is_modified): Removed.
5530         (ipa_method_modify_create): Removed.
5531         (ipa_method_modify_init): Temporary variable info instead of a few 
5532         dereferences.
5533         (ipa_detect_param_modifications): Temporary variable info instead of 
5534         a few dereferences.
5535         (ipa_compute_jump_functions): Temporary variable info instead of 
5536         a few dereferences.
5537         (ipa_method_modify_set): Removed.
5538         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
5539         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
5540         than craph_node as the first parameter.
5541         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
5542         (ipa_method_modify_init): Removed.
5543         (ipa_compute_jump_functions): Added a temp variable instead of 
5544         repeatadly dereferencing the cgraph_edge.aux pointer
5545         (ipa_callsite_param_set_type): Removed.
5546         (ipa_compute_jump_functions): i renamed to index and moved to 
5547         an inner block
5548         (ipa_callsite_param_set_info_type_formal): Removed.
5549         (ipa_callsite_param_set_info_type): Removed.
5550         (ipa_callsite_param_map_create): Removed.
5551         (ipa_callsite_tree): Removed.
5552         (ipa_callsite_caller): Removed.
5553         (ipa_pop_func_from_list): return_method removed to return_func
5554
5555         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
5556         prefixed all values with IPA_. Changed all users.
5557         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
5558         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
5559         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
5560         (union parameter_info): Renamed to jump_func_value.
5561         (union jump_func_value): Renamed value to constant
5562         (struct ipa_jump_func): Renamed info_type to value
5563         (struct ipa_node): Renamed to ipa_node_params
5564         (struct ipa_node_params): Renamed ipa_arg_num to param_count
5565         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
5566         (struct ipa_node_params): Renamed ipa_mod to modified_flags
5567         (struct ipa_edge): Renamed to ipa_edge_args
5568         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
5569         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
5570         (struct ipa_methodlist): Renamed to ipa_func_list
5571         (struct ipa_func_list): method_p renamed to node, next_method
5572         renamed to next
5573         (ipa_methodlist_p): Removed, switched all users to struct pointer
5574         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
5575
5576 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
5577
5578         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
5579         (rs6000_emit_epilogue): Use backchain to restore only when we
5580         have a large frame.  Make use of frame pointer to restore if we
5581         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
5582
5583 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
5584
5585         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5586         Add mode to zero_extract.
5587         (sign bit tests peepholes): (Ditto.).
5588
5589 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
5590
5591         * config/i386/i386.c (ix86_builtins): Replace Prescott New
5592         Instructions in comments with SSE3.
5593         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
5594         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
5595         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
5596         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
5597         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
5598         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
5599         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
5600         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
5601         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
5602         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
5603         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
5604         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
5605         (bdesc_sse_args): Renamed to ...
5606         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
5607         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
5608         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
5609         IX86_BUILTIN_FABSQ.
5610         (bdesc_1arg): Moved to ...
5611         (bdesc_args): Here.
5612         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
5613         Instructions in comments with SSE3.
5614         (ix86_expand_sse_operands_builtin): Renamed to ...
5615         (ix86_expand_args_builtin): This.  Updated.
5616         (ix86_expand_unop1_builtin): Update comments.
5617         (ix86_expand_builtin): Updated.
5618
5619 2008-04-29  Richard Guenther  <rguenther@suse.de>
5620
5621         PR tree-optimization/36078
5622         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
5623         Update virtual SSA form after cleaning up the CFG.
5624
5625 2008-04-29  Richard Guenther  <rguenther@suse.de>
5626
5627         PR middle-end/15255
5628         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
5629
5630 2008-04-29  Richard Guenther  <rguenther@suse.de>
5631
5632         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
5633         (compute_may_aliases): Do not call finalize_ref_all_pointers.
5634         (compute_flow_insensitive_aliasing): Do not treat
5635         PTR_IS_REF_ALL pointers special.
5636         (get_smt_for): Likewise.
5637         (may_alias_p): Re-structure.
5638         (is_escape_site): A ref-all pointer conversion is not an escape site.
5639         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
5640         PTR_IS_REF_ALL pointers special.
5641         * tree-ssa-structalias.h (struct alias_info): Remove
5642         ref_all_symbol_mem_tag field.
5643         (PTR_IS_REF_ALL): Remove.
5644
5645 2008-04-29  Richard Guenther  <rguenther@suse.de>
5646
5647         PR middle-end/36077
5648         * fold-const.c (extract_muldiv_1): In combining division constants
5649         make sure to never overflow.
5650
5651 2008-04-29  Nick Clifton  <nickc@redhat.com>
5652
5653         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
5654
5655 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5656
5657         PR bootstrap/35169
5658         * optc-gen.awk: Work around HP-UX/IA awk bug.
5659
5660 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
5661
5662         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
5663         2008-04-25 commit.
5664
5665 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5666
5667         PR target/36073
5668         * config/i386/i386.md
5669         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
5670         Change operand 1 predicate to nonimmediate_operand.
5671
5672 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
5673
5674         PR debug/36060
5675         * dwarf2out.c (struct die_struct): Mark as chain_circular through
5676         die_sub field.
5677         * gengtype.c (walk_type, write_func_for_structure): Handle
5678         chain_circular.
5679         * doc/gty.texi: Document chain_circular.
5680
5681 2008-04-28  Richard Guenther  <rguenther@suse.de>
5682
5683         PR tree-optimization/36066
5684         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
5685         SCEV and loop.
5686
5687 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5688
5689         PR target/36064
5690         * config/i386/i386.md
5691         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
5692         Use match_scratch instead of match_operand for operands 3 and 4.
5693
5694 2008-04-27  Richard Guenther  <rguenther@suse.de>
5695
5696         PR tree-optimization/18754
5697         PR tree-optimization/34223
5698         * tree-pass.h (pass_complete_unrolli): Declare.
5699         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
5700         loop size before and after unconditionally of UL_NO_GROWTH in effect.
5701         Rewrite loop into loop closed SSA form if it is not already.
5702         (tree_unroll_loops_completely): Re-structure to iterate over
5703         innermost loops with intermediate CFG cleanups.
5704         Unroll outermost loops only if requested or the code does not grow
5705         doing so.
5706         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
5707         loops are available.
5708         (tree_vectorize): Instead do so here.
5709         (tree_complete_unroll): Also unroll outermost loops.
5710         (tree_complete_unroll_inner): New function.
5711         (gate_tree_complete_unroll_inner): Likewise.
5712         (pass_complete_unrolli): New pass.
5713         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
5714         uses outside of the loop.
5715         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
5716         form if it is available.  
5717         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
5718         * passes.c (init_optimization_passes): Schedule complete inner
5719         loop unrolling pass before the first CCP pass after final inlining.
5720
5721 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
5722
5723         * targhooks.h (default_emutls_var_fields,
5724         default_emutls_var_init): Declare.
5725         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
5726         * target.h (struct gcc_target): Add struct emutls member.
5727         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
5728         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
5729         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
5730         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
5731         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
5732         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
5733         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
5734         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
5735         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
5736         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
5737         emit debug information.
5738         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
5739         * varasm.c: Include targhooks.h.
5740         (emutls_object_section, emutls_tmpl_section): New.
5741         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
5742         (EMUTLS_SEPARATOR): New.
5743         (prefix_name): New.
5744         (get_emutls_object_name): New.
5745         (default_emutls_var_fields): New, broken out of ...
5746         (get_emutls_object_type): ... here.  Adjust to use target hooks.
5747         (get_emutls_init_templ_addr): Adjust to use target hooks.
5748         (emutls_decl): Adjust to use target hooks.
5749         (emutls_finish): Likewise.
5750         (default_emutls_var_init): New, broken out of ...
5751         (assemble_variable): ... here.  Adjust to use target hooks.
5752         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
5753         SECCAT_EMUTLS_TMPL.
5754         * c-common.c (handle_section_attribute): Prevent overriding
5755         sections for emulated tls with special sections.
5756         * config/i386/i386.c (x86_64_elf_select_section): Add
5757         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
5758         (x86_64_elf_unique_section): Likewise.
5759         * config/vxworks.c: Include tree.h.
5760         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
5761         (vxworks_override_options): Set TLS scheme.
5762         * doc/tm.texi (Emulated TLS): New node.
5763
5764 2008-04-26  Simon Baldwin <simonb@google.com>
5765
5766         PR c/35652
5767         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
5768         with propagated string constants.
5769
5770 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
5771
5772         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
5773         constraint for operand 2 when operand 0 is memory operand.
5774         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
5775         operand 0 is memory operand.
5776         (fix_trunc<mode>_i387_with_temp): Ditto.
5777         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
5778         operand 2 when operand 1 is memory operand.
5779         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
5780         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
5781         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
5782         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5783         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
5784         operands 2,3 and 4 when operand 1 is memory operand.
5785         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
5786         is memory operand.
5787         (fistdi2_floor_with_temp): Ditto.
5788         (fist<mode>2_floor_with_temp): Ditto.
5789         (fistdi2_ceil_with_temp): Ditto.
5790         (fist<mode>2_ceil_with_temp): Ditto.
5791         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
5792
5793 2008-04-26  David Daney  <ddaney@avtrex.com>
5794
5795         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
5796         unspec_volitile.
5797         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
5798         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
5799         UNSPEC_UPDATE_GOT_VERSION): Renumber.
5800         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
5801         (compare_and_swap_12): New insn.
5802         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
5803         * config/mips/mips.c (mips_force_binary): New function.
5804         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
5805         (mips_expand_compare_and_swap_12): New function.
5806         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
5807
5808 2008-04-25  Jan Hubicka  <jh@suse.cz>
5809
5810         PR testsuite/35843
5811         * cfgexpand.c (pass_expand): Turn into RTL pass.
5812         * passes.c (execute_one_pass): Do pass typechecking after execution.
5813         * tree-pass.h (pass_expand): Turn into RTL pass.
5814
5815         * function.h (struct rtl_data): Move here fields
5816         accesses_prior_frames, calls_eh_return, saves_all_registers,
5817         has_nonlocal_goto, has_asm_statement, is_thunk,
5818         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
5819         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
5820         arg_pointer_save_area_init from struct function; turn into bool.
5821         (struct function): Move
5822         calls_eh_return, saves_all_registers, has_nonlocal_goto,
5823         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
5824         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
5825         tail_call_emit, arg_pointer_save_area_init
5826         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
5827         (current_function_returns_struct, current_function_returns_pcc_struct,
5828         current_function_calls_setjmp, current_function_calls_alloca,
5829         current_function_accesses_prior_frames,
5830         current_function_calls_eh_return, current_function_is_thunk,
5831         current_function_stdarg, current_function_profile,
5832         current_function_limit_stack, current_function_uses_pic_offset_table,
5833         current_function_uses_const_pool, current_function_has_nonlocal_label,
5834         current_function_saves_all_registers,
5835         current_function_has_nonlocal_goto,
5836         current_function_has_asm_statement): Remove accesor macros.
5837         * ra-conflict.c (global_conflicts): Update.
5838         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
5839         (suitable_for_tail_call_opt_p): Update.
5840         * builtins.c (expand_builtin_return_addr): Update.
5841         (expand_builtin_setjmp_setup): Update.
5842         (expand_builtin_nonlocal_goto): Update.
5843         * final.c (final_start_function): Update.
5844         (profile_function): Update.
5845         (leaf_function_p): Update.
5846         (only_leaf_regs_used): Update.
5847         * df-scan.c (df_get_exit_block_use_set): Update.
5848         * dojump.c (clear_pending_stack_adjust): Update.
5849         * tree-stdarg.c (gate_optimize_stdarg): Update.
5850         * gimple-low.c (lower_function_body): Update.
5851         * global.c (compute_regsets): Update.
5852         (global_alloc): Update.
5853         * dwarf2out.c (dwarf2out_begin_prologue): Update.
5854         * expr.c (expand_assignment): Update.
5855         * dse.c (dse_step0): Update.
5856         (dse_step1): Update.
5857         * c-decl.c (store_parm_decls): Update.
5858         * local-alloc.c (combine_regs): Update.
5859         (find_free_reg): Update.
5860         * function.c (assign_parms_augmented_arg_list): Update.
5861         (assign_parm_find_data_types): Update.
5862         (assign_parms): Update.
5863         (allocate_struct_function): Update.
5864         (expand_function_start): Update.
5865         (expand_function_end): Update.
5866         (get_arg_pointer_save_area): Update.
5867         (thread_prologue_and_epilogue_insns): Update.
5868         (rest_of_match_asm_constraints): Update.
5869         * stor-layout.c (variable_size): Update.
5870         * gcse.c (gcse_main): Update.
5871         (bypass_jumps): Update.
5872         * gimplify.c (gimplify_function_tree): Update.
5873         * calls.c (emit_call_1): Update.
5874         (expand_call): Update.
5875         * bt-load.c (compute_defs_uses_and_gen): Update.
5876         * except.c (sjlj_assign_call_site_values): Update.
5877         (sjlj_emit_function_enter): Update.
5878         (can_throw_external): Update.
5879         (set_nothrow_function_flags): Update.
5880         (expand_builtin_unwind_init): Update.
5881         (expand_eh_return): Update.
5882         (convert_to_eh_region_ranges): Update.
5883         (output_function_exception_table): Update.
5884         * emit-rtl.c (gen_tmp_stack_mem): Update.
5885         * cfgexpand.c (expand_used_vars): Update.
5886         (tree_expand_cfg): Update.
5887         * cfgcleanup.c (rest_of_handle_jump): Update.
5888         * explow.c (allocate_dynamic_stack_space): Update.
5889         * varasm.c (assemble_start_function): Update.
5890         (force_const_mem): Update.
5891         (mark_constant_pool): Update.
5892         * tree-optimize.c (tree_rest_of_compilation): Update.
5893         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
5894         * tree-cfg.c (notice_special_calls): Update.
5895         (is_ctrl_altering_stmt): Update.
5896         (tree_can_make_abnormal_goto): Update.
5897         (tree_purge_dead_abnormal_call_edges): Update.
5898         * config/alpha/predicates.md: Update.
5899         * config/alpha/alpha.c (alpha_sa_mask): Update.
5900         (alpha_sa_size): Update.
5901         (alpha_does_function_need_gp): Update.
5902         (alpha_expand_prologue): Update.
5903         (alpha_start_function): Update.
5904         (alpha_output_function_end_prologue): Update.
5905         (alpha_expand_epilogue): Update.
5906         * config/frv/frv.c (frv_stack_info): Update.
5907         (frv_expand_epilogue): Update.
5908         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
5909         (s390_register_info): Update.
5910         (s390_frame_info): Update.
5911         (s390_init_frame_layout): Update.
5912         (s390_can_eliminate): Update.
5913         (save_gprs): Update.
5914         * config/spu/spu.c (spu_split_immediate): Update.
5915         (need_to_save_reg): Update.
5916         (spu_expand_prologue): Update.
5917         (spu_expand_epilogue): Update.
5918         * config/sparc/sparc.md: Update.
5919         * config/sparc/sparc.c (eligible_for_return_delay): Update.
5920         (sparc_tls_got): Update.
5921         (legitimize_pic_address): Update.
5922         (sparc_emit_call_insn): Update.
5923         (sparc_expand_prologue): Update.
5924         (output_return): Update.
5925         (print_operand): Update.
5926         (sparc_function_ok_for_sibcall): Update.
5927         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
5928         * config/m32r/m32r.md: Update.
5929         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
5930         (m32r_compute_frame_size): Update.
5931         (m32r_expand_prologue): Update.
5932         (m32r_expand_epilogue): Update.
5933         (m32r_legitimize_pic_address): Update.
5934         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
5935         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5936         * config/i386/i386.c (ix86_frame_pointer_required): Update.
5937         (gen_push): Update.
5938         (ix86_save_reg): Update.
5939         (ix86_compute_frame_layout): Update.
5940         (ix86_expand_prologue): Update.
5941         (ix86_expand_epilogue): Update.
5942         * config/sh/sh.c (output_stack_adjust): Update.
5943         (calc_live_regs): Update.
5944         (sh5_schedule_saves): Update.
5945         (sh_expand_prologue): Update.
5946         (sh_expand_epilogue): Update.
5947         (sh_setup_incoming_varargs): Update.
5948         (sh_allocate_initial_value): Update.
5949         (sh_get_pr_initial_val): Update.
5950         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
5951         * config/sh/sh.md (label:): Update.
5952         * config/avr/avr.c (out_movhi_mr_r): Update.
5953         * config/crx/crx.h (enum): Update.
5954         * config/xtensa/xtensa.h (along): Update.
5955         * config/stormy16/stormy16.c Update.
5956         (xstormy16_compute_stack_layout): Update.
5957         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
5958         (fr30_expand_prologue): Update.
5959         * config/cris/cris.c (cris_conditional_register_usage): Update.
5960         (cris_reg_saved_in_regsave_area): Update.
5961         (cris_initial_frame_pointer_offset): Update.
5962         (cris_simple_epilogue): Update.
5963         (cris_expand_prologue): Update.
5964         (cris_expand_epilogue): Update.
5965         (cris_expand_pic_call_address): Update.
5966         (cris_asm_output_symbol_ref): Update.
5967         (cris_asm_output_label_ref): Update.
5968         * config/cris/cris.md Update.
5969         * config/iq2000/iq2000.c (compute_frame_size): Update.
5970         (iq2000_expand_epilogue): Update.
5971         * config/mt/mt.h (save_direction): Update.
5972         * config/mn10300/mn10300.c (mn10300_function_value): Update.
5973         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5974         (ia64_secondary_reload_class): Update.
5975         * config/m68k/m68k.c (m68k_save_reg): Update.
5976         (m68k_expand_prologue): Update.
5977         (m68k_expand_epilogue): Update.
5978         (legitimize_pic_address): Update.
5979         * config/rs6000/rs6000.c (rs6000_got_register): Update.
5980         (first_reg_to_save): Update.
5981         (first_altivec_reg_to_save): Update.
5982         (compute_vrsave_mask): Update.
5983         (compute_save_world_info): Update.
5984         (rs6000_stack_info): Update.
5985         (spe_func_has_64bit_regs_p): Update.
5986         (rs6000_ra_ever_killed): Update.
5987         (rs6000_emit_eh_reg_restore): Update.
5988         (rs6000_emit_allocate_stack): Update.
5989         (rs6000_emit_prologue): Update.
5990         (rs6000_emit_epilogue): Update.
5991         (rs6000_output_function_epilogue): Update.
5992         (output_profile_hook): Update.
5993         (rs6000_elf_declare_function_name): Update.
5994         * config/rs6000/rs6000.h (rs6000_args): Update.
5995         * config/rs6000/rs6000.md: Update.
5996         * config/mcore/mcore.c (mcore_expand_prolog): Update.
5997         * config/arc/arc.c (arc_output_function_epilogue): Update.
5998         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
5999         * config/darwin.c (machopic_function_base_name): Update.
6000         * config/score/score3.c (score3_compute_frame_size): Update.
6001         (rpush): Update.
6002         (rpop): Update.
6003         (score3_epilogue): Update.
6004         * config/score/score7.c (score7_compute_frame_size): Update.
6005         (score7_prologue): Update.
6006         (score7_epilogue): Update.
6007         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
6008         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6009         * config/arm/arm.c (use_return_insn): Update.
6010         (require_pic_register): Update.
6011         (arm_load_pic_register): Update.
6012         (arm_compute_save_reg0_reg12_mask): Update.
6013         (arm_compute_save_reg_mask): Update.
6014         (thumb1_compute_save_reg_mask): Update.
6015         (output_return_instruction): Update.
6016         (arm_output_function_prologue): Update.
6017         (arm_output_epilogue): Update.
6018         (arm_get_frame_offsets): Update.
6019         (arm_expand_prologue): Update.
6020         (thumb_pushpop): Update.
6021         (thumb_exit): Update.
6022         (thumb1_expand_prologue): Update.
6023         (thumb1_expand_epilogue): Update.
6024         (arm_unwind_emit): Update.
6025         (arm_output_fn_unwind): Update.
6026         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
6027         * config/arm/arm.md: Update.
6028         * config/pa/pa.md: Update.
6029         * config/pa/pa.c (legitimize_pic_address): Update.
6030         (compute_frame_size): Update.
6031         (hppa_expand_prologue): Update.
6032         (hppa_expand_epilogue): Update.
6033         (borx_reg_operand): Update.
6034         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
6035         (HARD_REGNO_RENAME_OK): Update.
6036         * config/mips/mips.c (mips_global_pointer): Update.
6037         (mips_save_reg_p): Update.
6038         (mips_compute_frame_info): Update.
6039         (mips_frame_pointer_required): Update.
6040         (mips_expand_prologue): Update.
6041         (mips_expand_epilogue): Update.
6042         (mips_can_use_return_insn): Update.
6043         (mips_reorg_process_insns): Update.
6044         * config/v850/v850.c (compute_register_save_size): Update.
6045         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
6046         * config/mmix/mmix.c (along): Update.
6047         (mmix_expand_epilogue): Update.
6048         * config/bfin/bfin.c (legitimize_pic_address): Update.
6049         (must_save_p): Update.
6050         (stack_frame_needed_p): Update.
6051         (add_to_reg): Update.
6052         (bfin_expand_prologue): Update.
6053         * stmt.c (expand_asm_operands): Update.
6054         * reload1.c (reload): Update.
6055         (init_elim_table): Update.
6056
6057 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
6058         
6059         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
6060         
6061 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
6062
6063         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
6064         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
6065         (mov<mode>): Removed.
6066         (*movv4sf_internal): Likewise.
6067         (*movv2df_internal): Likewise.
6068
6069 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
6070
6071         * config.gcc (crx-*-elf): Remove deprecation.
6072
6073 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
6074
6075         * config/i386/cygming-crtend.c (register_frame_ctor): Register
6076         __gcc_deregister_frame with atexit.
6077         (deregister_frame_dtor): Remove.
6078
6079 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
6080             Nathan Sidwell  <nathan@codesourcery.com>
6081
6082         * config/rs6000/rs6000.opt (mspe): Remove Var property.
6083         (misel): Likewise.
6084         * config/rs6000/rs6000.h (rs6000_spe): Declare.
6085         (rs6000_isel): Likewise.
6086         * config/rs6000/rs6000.c (rs6000_spe): New variable.
6087         (rs6000_isel): New variable.
6088         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
6089
6090 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6091
6092         PR c++/35758
6093         * c-common.c (handle_vector_size_attribute): Call
6094         lang_hooks.types.reconstruct_complex_type instead of
6095         reconstruct_complex_type.
6096         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
6097         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
6098         * langhooks.h (struct lang_hooks_for_types): Add
6099         reconstruct_complex_type hook.
6100         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
6101         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
6102
6103 2008-04-24  Richard Guenther  <rguenther@suse.de>
6104
6105         * c-common.h (check_builtin_function_arguments): Declare.
6106         * c-common.c (validate_nargs): New function.
6107         (check_builtin_function_arguments): Likewise.
6108         * c-typeck.c (build_function_call): Call
6109         check_builtin_function_arguments.
6110         * builtins.c (fold_builtin_classify): Remove error reporting code.
6111         (fold_builtin_unordered_cmp): Likewise.
6112         (fold_builtin_1): Likewise.
6113         (fold_builtin_n): Likewise.
6114
6115 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6116
6117         PR tree-optimization/36008
6118         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
6119         the original op1, rather than delta by step.
6120
6121 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
6122             Sebastian Pop  <sebastian.pop@amd.com>
6123
6124         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
6125         eliminate_local_variables_stmt, eliminate_local_variables,
6126         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
6127         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
6128         of code delimited by two edges in the CFG.
6129         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
6130         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
6131         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
6132         the case of parallelisation of reductions.
6133         (expr_invariant_in_region_p): New.
6134
6135         * tree-flow.h (gather_blocks_in_sese_region): Declared.
6136         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
6137
6138 2008-04-24  Ira Rosen  <irar@il.ibm.com>
6139             Richard Guenther  <rguenther@suse.de>
6140
6141         PR tree-optimization/36034
6142         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
6143         incapable of dealing with loads with gaps.
6144
6145 2008-04-24  Rafael Espindola  <espindola@google.com>
6146
6147         * tree-flow.h (vrp_evaluate_conditional): Change signature.
6148         * tree-ssa-propagate.c (fold_predicate_in): Update call to
6149         vrp_evaluate_conditional.
6150         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
6151         (vrp_evaluate_conditional): Split the cond argument.
6152         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
6153         (simplify_stmt_for_jump_threading): Update call to
6154         vrp_evaluate_conditional.
6155
6156 2008-04-24  Ira Rosen  <irar@il.ibm.com>
6157
6158         PR tree-optimization/35982
6159         * tree-vect-analyze.c (vect_check_interleaving): Check that the
6160         interleaved data-refs are of the same type.
6161
6162 2008-04-24  Danny Smith  <dannysmith@users.net>
6163
6164         * c-format.c (check_format_info_main): Use strncmp rather than a
6165         magic prefix to handle multichar length specs.
6166         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
6167         Don't prefix "I64" and "I32" with '\0'.
6168
6169 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6170
6171         PR target/36015
6172         * config/i386/i386.c (init_cumulative_args): Don't pass anything
6173         in registers for -m32 only if stdarg_p (fntype).
6174
6175 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
6176
6177         PR rtl-optimization/36006
6178         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
6179         temp to op0 in order to avoid invalid rtx sharing.
6180
6181 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
6182
6183         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
6184         check TREE_INVARIANT.
6185         * tree-gimple.c (is_gimple_address): New.
6186         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
6187         * tree-gimple.h (is_gimple_address): New.
6188         * tree.h (decl_address_invariant_p): New.
6189         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
6190         (build_string): Likewise.
6191         (decl_address_invariant_p): New, from is_gimple_invariant_address.
6192         (tree_invariant_p_1): Likewise.
6193         (save_expr): Use it.
6194         (tree_invariant_p): New.
6195         (skip_simple_arithmetic): Use it.
6196         (stabilize_reference_1): Use it.
6197         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
6198         simplify.
6199         (build1_stat): Drop code to compute TREE_INVARIANT.
6200         (build2_stat): Drop code to compute TREE_INVARIANT.
6201         (build3_stat): Drop code to compute TREE_INVARIANT.
6202         (build4_stat): Drop code to compute TREE_INVARIANT.
6203         (build5_stat): Drop code to compute TREE_INVARIANT.
6204         (build7_stat): Drop code to compute TREE_INVARIANT.
6205         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
6206         * tree.h (struct tree_base): Remove invariant_flag.
6207         (TREE_INVARIANT): Remove.
6208         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
6209         (fold_builtin_expect): Check TREE_CONSTANT.
6210         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
6211         * c-tree.h (c_expr_to_decl): Drop third parameter.
6212         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
6213         (build_c_cast): Don't set TREE_INVARIANT.
6214         (pop_init_level): Don't set TREE_INVARIANT.
6215         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
6216         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
6217         TREE_CONSTANT.
6218         (gimplify_init_constructor): Don't set TREE_INVARIANT.
6219         (gimplify_addr_expr): Adjust comment.
6220         * tree-mudflap.c (mf_build_string):
6221         * print-tree.c (print_node): Don't print TREE_INVARIANT.
6222         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
6223         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
6224         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
6225         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
6226         * langhooks.h (struct lang_hooks): Drop third parameter from
6227         expr_to_decl.
6228
6229 2008-04-23  Richard Guenther  <rguenther@suse.de>
6230
6231         PR tree-optimization/27799
6232         PR tree-optimization/32921
6233         PR tree-optimization/32624
6234         * tree-ssa-structalias.c (merge_smts_into): Only merge the
6235         SMTs aliases and the tag itself into the solution.
6236         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
6237         merge the points-to solution back into the SMT aliases.
6238         (may_alias_p): Use alias_set_subset_of instead of
6239         aliases_conflict_p.  A pointer which points to
6240         memory with alias set zero may access any variable.
6241
6242 2008-04-23  Richard Guenther  <rguenther@suse.de>
6243
6244         * alias.c (alias_set_subset_of): Correctly handle asking
6245         if zero is a subset of an alias set with zero child.
6246         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
6247         (compute_flow_insensitive_aliasing): Correctly walk all
6248         pointers.  Do not unnecessarily union sets.
6249
6250 2008-04-23  Richard Guenther  <rguenther@suse.de>
6251
6252         PR middle-end/36021
6253         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
6254
6255 2008-04-22  Tomas Bily  <tbily@suse.cz>
6256
6257         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
6258         unreachable case.
6259         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
6260         NON_LVALUE_EXPR.
6261         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
6262         * tree-ssa-structalias.c (get_constraint_for): Likewise.
6263         * tree-inline.c (estimate_num_insns_1): Likewise.
6264         * varasm.c (const_hash_1, compare_constant, copy_constant)
6265         (compute_reloc_for_constant, output_addressed_constants): Likewise.
6266         * emit-rtl.c (component_ref_for_mem_expr)
6267         (set_mem_attributes_minus_bitpos): Likewise.
6268         * expr.c (highest_pow2_factor, expand_expr_real_1, )
6269         (is_aligning_offset): Likewise.
6270         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
6271         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
6272         * dojump.c (do_jump): Likewise.
6273         * builtins.c (get_pointer_alignment, get_memory_rtx)
6274         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
6275         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
6276
6277 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
6278
6279         PR rtl-optimization/36017
6280         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
6281         expanding the library call.
6282
6283 2008-04-22  Ian Lance Taylor  <iant@google.com>
6284
6285         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
6286         than size_in_bytes.
6287
6288 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
6289
6290         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
6291         of LR/CTR moves for Power6.
6292
6293 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
6294
6295         PR middle-end/36003
6296         * passes.c (init_optimization_passes): Remove
6297         pass_fast_rtl_byte_dce.
6298         
6299 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
6300
6301         PR target/29096
6302         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
6303         builtin functions to generate faster code.
6304         (_mm_cvtpu16_ps): Ditto.
6305         (_mm_cvtpi32x2_ps): Ditto.
6306
6307 2008-04-22  Nick Clifton  <nickc@redhat.com>
6308
6309         * common.opt (ftree-loop-distribution): Add Optimization
6310         attribute.
6311
6312         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
6313         (frv_expand_builtin_va_start): Likewise.
6314
6315         * config/arm/arm.c (thumb_find_work_register): Fix location of
6316         argument register count.
6317
6318 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6319
6320         Support scheduling for ColdFire V1 and V3 microarchitecture.
6321         Improve scheduling of multiplication instructions.
6322
6323         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
6324         (mac): New instruction attribute.
6325         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
6326         (m68k_sched_mac): New variable.
6327         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
6328         Handle cfv1 and cfv3.
6329         (max_insn_size): New static variable.
6330         (struct _sched_ib): New type.
6331         (sched_ib): New static variable.
6332         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
6333         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
6334         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
6335         Update.
6336         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
6337         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
6338         new variables.  Update.
6339         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
6340         Add modeling of cfv3 instruction buffer.  Update.
6341         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
6342         * config/m68k/m68k.h (TUNE_CFV3): New macro.
6343         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
6344         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
6345         a particular reservation applies to.
6346         (type2): Reorganize attribute values.  Rename alu to alu_reg,
6347         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
6348         to mul_l and mul_w.
6349         (cf_ib_*): Simplify description of instruction buffer.
6350         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
6351         (cf_mem): Split into cf_mem1 and cf_mem2.
6352         (cf_v2_move_??): Rename to cfv12_alu_??.
6353         (cf_v2_move_l_??): Rename to cfv12_omove_??.
6354         (cf_v2_mul_??): Remove reservations.
6355         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
6356         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
6357         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
6358         appropriate place.
6359         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
6360         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
6361         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
6362         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
6363         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
6364         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
6365         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
6366         expansions of the above reservations for instructions of sizes
6367         1, 2 and 3 words.
6368
6369 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6370
6371         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
6372
6373 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
6374
6375         * coverage.c: Include tree-pass.h.
6376         (coverage_counter_alloc): Print da_file_name to the dump file.
6377
6378 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
6379
6380         * sbitmap.c (sbitmap_range_empty_p): New function.
6381         * sbitmap.h (sbitmap_range_empty_p): New function.
6382         * bitmap.h: Now includes obstack.h.
6383
6384 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
6385             Kenneth Zadeck  <zadeck@naturalbridge.com>
6386
6387         * dbgcnt.def (ra_byte_scan): Added.
6388         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
6389         when the last hit happens for a counter.  
6390         * timevar.def (TV_DF_BYTE_LR): New variable.
6391         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
6392         * passes.c (pass_fast_rtl_byte_dce): New pass.
6393         * fwprop.c (update_df): Added mode to call df_ref_create.
6394         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6395         DF_REF_EXTRACT_OFFSET.
6396         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
6397         DF_BYTE_LR_OUT, df_byte_lr): New macro.
6398         (df_mm): New enum.
6399         (df_ref_extract): Added mode field.
6400         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
6401         DF_REF_EXTRACT_OFFSET.
6402         (DF_REF_EXTRACT_MODE): New macro.
6403         (df_byte_lr_bb_info): New structure.
6404         (df_print_byte_regset, df_compute_accessed_bytes, 
6405         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
6406         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
6407         df_byte_lr_simulate_uses,
6408         df_byte_lr_simulate_artificial_refs_at_top,
6409         df_byte_lr_simulate_artificial_refs_at_end,
6410         df_compute_accessed_bytes): New function.
6411         (df_ref_create): Add parameter.
6412         (df_byte_lr_get_bb_info): New inline function.
6413         * df-scan.c (df_ref_record, df_uses_record,
6414         df_ref_create_structure): Added mode parameter.
6415         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
6416         df_defs_record, df_uses_record, df_get_conditional_uses,
6417         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
6418         df_entry_block_defs_collect, df_exit_block_uses_collect):
6419         Added mode parameter to calls to df_ref_record, df_uses_record,
6420         df_ref_create_structure.
6421         (df_ref_equal_p, df_ref_compare): Added test for modes.
6422         (df_ref_create_structure): Added code to set mode.  Renamed
6423         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6424         DF_REF_EXTRACT_OFFSET.
6425         * df-core.c (df_print_byte_regset): New function.
6426         * df-byte-scan.c: New file.
6427         * df-problems.c (df_rd_transfer_function): Removed unnecessary
6428         calls to BITMAP_FREE.  
6429         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
6430         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
6431         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
6432         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
6433         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
6434         df_byte_lr_local_compute, df_byte_lr_init,
6435         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
6436         df_byte_lr_transfer_function, df_byte_lr_free, 
6437         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
6438         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
6439         df_byte_lr_simulate_uses,
6440         df_byte_lr_simulate_artificial_refs_at_top,
6441         df_byte_lr_simulate_artificial_refs_at_end): New function.
6442         * dce.c (byte_dce_process_block): New function.
6443         (dce_process_block): au is now passed in rather than computed
6444         locally.  Changed loops that look at artificial defs to not look
6445         for conditional or partial ones, because there never are any.  
6446         (fast_dce): Now is able to drive byte_dce_process_block or 
6447         dce_process_block depending on the kind of dce being done.
6448         (rest_of_handle_fast_dce): Add parameter to fast_dce.
6449         (rest_of_handle_fast_byte_dce): New function.
6450         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
6451         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
6452
6453 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
6454
6455         PR fortran/35019
6456         * gcc.h: Added fortran options that take arguments to
6457         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
6458         macros.
6459
6460 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
6461
6462         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
6463         scalarization if on the LHS and not a full access.
6464
6465 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6466
6467         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
6468
6469 2008-04-18  Rafael Espindola  <espindola@google.com>
6470
6471         * tree-vrp.c (find_case_label_index): Fix the binary search.
6472         (find_case_label_range): New.
6473         (vrp_visit_switch_stmt): Use find_case_label_range.
6474         (simplify_switch_using_ranges): Use find_case_label_range.
6475
6476 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6477
6478         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
6479         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
6480
6481 2008-04-18  Tom Tromey  <tromey@redhat.com>
6482
6483         PR libcpp/15500:
6484         * doc/cpp.texi (Implementation-defined behavior): Mention
6485         -finput-charset.
6486
6487 2008-04-18  Ian Lance Taylor  <iant@google.com>
6488
6489         * fold-const.c (pointer_may_wrap_p): New static function.
6490         (fold_comparison): Add another test for pointer overflow.  Use
6491         pointer_may_wrap_p to disable some false positives.
6492
6493 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
6494           
6495         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
6496         (fname_as_string): Match updated cpp_interpret_string prototype.
6497         (fix_string_type): Support char16_t* and char32_t*.
6498         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
6499         derivative) nodes.  Register as builtin if C++0x.
6500         (c_parse_error): Support CPP_CHAR{16,32}.
6501         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
6502         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
6503         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
6504         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
6505         CTI_CHAR32_ARRAY_TYPE>: New elements.
6506         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
6507         char32_type_node, signed_char32_type_node, char16_array_type_node,
6508         char32_array_type_node): New defines.
6509         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
6510         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
6511         (lex_string): Support CPP_STRING{16,32}, match updated
6512         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
6513         (lex_charconst): Support CPP_CHAR{16,32}.
6514         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
6515         and CPP_STRING{16,32}.
6516
6517 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
6518
6519         PR bootstrap/35457
6520         * aclocal.m4: Regenerate.
6521         * configure: Regenerate.
6522
6523 2008-04-18  Jan Hubicka  <jh@suse.cz>
6524
6525         * except.c (dw2_size_of_call_site_table,
6526         sjlj_size_of_call_site_table): Use vector API for call_site_record.
6527
6528         * cgraphbuild.c (build_cgraph_edges): Update.
6529         * tree-pass.h: Update comment.
6530         * final.c (leaf_function_p): Update.
6531         (leaf_renumber_regs): Update.
6532         (rest_of_clean_state): Update.
6533         * omp-low.c (expand_omp_parallel): Update.
6534         * ipa-reference.c (analyze_function): Update.
6535         * reorg.c (find_end_label): Update.
6536         (optimize_skip): Update.
6537         (fill_simple_delay_slots): Update.
6538         (fill_simple_delay_slots): Update.
6539         (make_return_insns): Update.
6540         (dbr_schedule): Update.
6541         * gimple-low.c (record_vars_into): Update.
6542         * cfgbuild.c (make_edges): Update.
6543         * function.c (assign_stack_local): Update.
6544         (assign_parm_adjust_stack_rtl): Update.
6545         (locate_and_pad_parm): Update.
6546         (allocate_struct_function): Do not initialize stack_alignment_needed
6547         and preferred_stack_boundary here.
6548         (stack_protect_prologue): Update.
6549         (stack_protect_epilogue): Update.
6550         (expand_function_start): Initialize stack_alignment_needed,
6551         preferred_stack_boundary and max_jumptable_ents.
6552         (expand_function_end): Update.
6553         (free_after_compilation): Do not NULLify epilogue_delay_list.
6554         * function.h (struct rtl_data): Add stack_protect_guard,
6555         stack_alignment_needed,
6556         preferred_stack_boundary, epilogue_delay_list.
6557         (struct function): Remove value_histograms, stack_alignment_needed,
6558         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
6559         last_label_uid,
6560         unexpanded_var_list, stack_protect_guard.
6561         (current_function_epilogue_delay_list): Remove.
6562         * ipa-type-escape.c (analyze_function): Update.
6563         * gimplify.c (pop_gimplify_context): Update comment.
6564         * calls.c (expand_call): Update.
6565         (emit_library_call_value_1): Update.
6566         * except.c (set_nothrow_function_flags): Update.
6567         * cfgexpand.c (get_decl_align_unit): Update.
6568         (create_stack_guard): Update.
6569         (estimated_stack_frame_size): Update.
6570         (expand_used_vars): Update.
6571         (tree_expand_cfg): Free histogram earliers, init expansion variables.
6572         * explow.c (allocate_dynamic_stack_space): Update.
6573         * tree-ssa-live.c (remove_unused_locals): Update.
6574         * varasm.c (mark_constant_pool): Update.
6575         * tree-inline.c (remap_decls): Update.
6576         (initialize_cfun): Update.
6577         (declare_return_variable): Update.
6578         (inline_forbidden_p): Update.
6579         (expand_call_inline): Update.
6580         (declare_inline_vars): Update.
6581         (tree_function_versioning): Update.
6582         * tree-flow.h (value_histograms): New.
6583         (VALUE_HISTOGRAMS): New macro.
6584         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
6585         last_label_uid.
6586         * tree-cfg.c (set_bb_for_stmt): Update.
6587         (replace_by_duplicate_decl): Update.
6588         (move_block_to_fn): Update.
6589         (new_label_mapper): Update.
6590         (dump_function_to_file): Update.
6591         * ipa-struct-reorg.c (build_data_structure): Update.
6592         * cfgrtl.c (print_rtl_with_bb): Update.
6593         * reload1.c (reload): Update.
6594         (reload): Update.
6595         * config/i386/i386.c (setup_incoming_varargs_64,
6596         ix86_compute_frame_layout): Update.
6597         * config/arc/arc.c (arc_output_function_epilogue): Update.
6598
6599 2008-04-18  Marius Strobl <marius@FreeBSD.org>
6600
6601         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
6602         for FreeBSD as well.
6603         * gthr-posix95.h: Likewise.
6604
6605 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
6606
6607         PR rtl-optimization/35838
6608         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
6609         out the byte offset of the first subreg.
6610
6611 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
6612
6613         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
6614         to split_ti instead of three separate calls with single member arrays.
6615         (subti3 splitter): Ditto.
6616         (adddi3 splitter): Ditto with split_di.
6617         (subdi3 splitter): Ditto.
6618         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
6619         two separate calls with single member arrays.  Swap match_dup
6620         operands 1 and 2 to better fit into the array.
6621         (negdi2 splitter): Ditto with split_di.
6622         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
6623         two separate calls with single member arrays.  Swap match_dup operands
6624         6 and 7 to better fit into the array.
6625
6626 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
6627
6628         * config/i386/i386.c (sse_builtin_type): New.
6629         (bdesc_sse_args): Likewise.
6630         (bdesc_sse_3arg): Removed.
6631         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6632         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
6633         IX86_BUILTIN_ROUNDPS.
6634         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
6635         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
6636         IX86_BUILTIN_ROUNDPS.
6637         (ix86_expand_sse_4_operands_builtin): Removed.
6638         (ix86_expand_sse_operands_builtin): New.
6639         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
6640         and CODE_FOR_sse4_1_roundps.
6641         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6642         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
6643
6644 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
6645
6646         PR target/35907
6647         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
6648         regs before frame pop when needed.  If use_backchain_to_restore_sp
6649         then load backchain into a temp reg to restore vr and vrsave.  Add
6650         code to restore vr after frame pop if possible.
6651
6652 2008-04-17  Richard Guenther  <rguenther@suse.de>
6653
6654         * tree-vn.c (expressions_equal_p): Do not check type
6655         equality or compatibility before calling operand_equal_p.
6656         * fold-const.c (operand_equal_p): Check equivalence of
6657         integer constants before bailing out due to signedness or
6658         precision differences.
6659         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
6660         spurious differences in type qualification.  Ignore types
6661         for COMPONENT_REFs at all.
6662
6663 2008-04-17  Christian Bruel  <christian.bruel@st.com>
6664
6665         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
6666         msw_skip comparison.
6667         
6668 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
6669
6670         PR c/35739
6671         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
6672         reg type.
6673
6674         PR tree-optimization/35899
6675         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
6676         rather than TREE_OPERAND.
6677
6678 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
6679
6680         PR target/35944
6681         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
6682         temporary registers.  Change operand predicate to general_operand.
6683         (remainderxf3): Ditto.
6684
6685 2008-04-16  Richard Guenther  <rguenther@suse.de>
6686
6687         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
6688         * tree-affine.c (aff_combination_expand): Look through some
6689         conversions.
6690
6691 2008-04-15  Doug Kwan  <dougkwan@google.com>
6692
6693         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
6694         for hex printing.
6695         * tree-pretty-print.c (dump_generic_node): Ditto.
6696         * final.c (output_addr_const): Ditto.
6697         * dwarf2out.c (output_cfi): Ditto.
6698         * c-pretty-print.c (pp_c_integer_constant): Ditto.
6699         * print-rtl.c (print_rtx): Ditto.
6700         * print-tree.c (print_node_brief, print_node): Ditto.
6701         * c-common.c (match_case_to_enum_1): Ditto.
6702         * sched-vis.c (print_value): Ditto.
6703         * config/i386/i386.c (print_operand): Cast to long unsigned int
6704         for hex printing.
6705
6706 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
6707         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
6708         MS Windows VirtualProtect function.
6709
6710 2008-04-15  Jan Hubicka  <jh@suse.cz>
6711
6712         * gengtype.c (write_root): Param_is argument is OK.
6713         * expr.c (expand_expr_real_1): Update call of get_exception_*.
6714         * function.h: Include varray.h
6715         (rtl_eh): New stucture based on except.c one.
6716         (call_site_record): New forward declaration and vector type.
6717         * calls.c (emit_call_1): Do not call
6718         note_current_region_may_contain_throw.
6719         * except.c (eh_status): Remove cur_region, try_region since they are
6720         unused.
6721         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
6722         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
6723         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
6724         Remove call_site_data_used, call_site_data_size.
6725         Turn call_site_record into vector in function.h.
6726         (note_current_region_may_contain_throw): Remove.
6727         (get_exception_pointer, get_exception_filter): Do not take struct
6728         function argument; update.
6729         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
6730         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
6731         build_post_landing_pads, dw2_build_landing_pads,
6732         sjlj_assign_call_site_values, sjlj_mark_call_sites,
6733         sjlj_emit_function_enter, sjlj_emit_function_enter, 
6734         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
6735         sjlj_build_landing_pads, finish_eh_generation,
6736         remove_exception_handler_label, remove_eh_handler,
6737         maybe_remove_eh_handler, add_reachable_handler,
6738         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
6739         add_action_record, collect_one_action_chain, add_call_site,
6740         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
6741         sjlj_output_call_site_table, output_function_exception_table,
6742         * except.h (note_current_region_may_contain_throw): Remove
6743         (get_exception_pointer, get_exception_filter): Do not take struct
6744         function argument.
6745         * Makefile.in (GTFILES): Put varargs before struct function.
6746
6747 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6748
6749         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
6750         punt for STRING_CST.
6751         (get_constraint_for): Deal with STRING_CST here instead.
6752
6753 2008-04-15  Richard Guenther  <rguenther@suse.de>
6754
6755         * tree-ssa-propagate.c (substitute_and_fold): Substitute
6756         statements in a basic-block with a backward walk.  Do not
6757         substitute into dead statements but instead remove those.
6758
6759 2008-04-15  Richard Guenther  <rguenther@suse.de>
6760
6761         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
6762         to zero, thus disable creation of SFTs.
6763
6764 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6765
6766         * tree-predcom.c (suitable_reference_p): Return false if the
6767         reference can throw.
6768
6769 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
6770
6771         PR c/35751
6772         * c-decl.c (finish_decl): If extern or static var has variable
6773         size, set TREE_TYPE (decl) to error_mark_node.
6774
6775 2008-04-15  Rafael Espindola  <espindola@google.com>
6776
6777         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
6778         variable arg1.
6779
6780 2008-04-15  Richard Guenther  <rguenther@suse.de>
6781
6782         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
6783         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
6784         (visit_reference_op_load): Do walk vuse-vdef chains on
6785         vn_reference_lookup.
6786         (visit_reference_op_store): But do not here.
6787         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
6788         vn_reference_lookup.
6789         (vn_lookup_with_vuses): But do so here.
6790
6791 2008-04-14  Ian Lance Taylor  <iant@google.com>
6792
6793         * fold-const.c (fold_overflow_warning): Remove assertion.
6794
6795 2008-04-15  Ben Elliston  <bje@au.ibm.com>
6796
6797         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
6798         temp1 local variables.
6799
6800 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
6801
6802         PR target/35661
6803         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
6804         ".text.unlikely" section as executable.
6805
6806 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
6807
6808         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6809         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
6810         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
6811         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
6812         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
6813         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
6814         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
6815
6816 2008-04-14  Ian Lance Taylor  <iant@google.com>
6817
6818         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
6819         * fold-const.c (fold_comparison): If appropriate, test
6820         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
6821         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
6822         reassociating a pointer type.
6823         * doc/invoke.texi (Optimize Options): Document that
6824         -fstrict-overflow applies to pointer wraparound.
6825
6826 2008-04-13  Jan Hubicka  <jh@suse.cz>
6827
6828         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
6829
6830 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
6831
6832         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
6833         we are going to "save the world".
6834
6835 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
6836
6837         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
6838         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
6839         operand 0 constraint, not "=".
6840
6841 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
6842
6843         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
6844
6845 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6846
6847         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
6848         of size of positions_needed * CHAR_BIT.
6849
6850 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6851
6852         PR middle-end/35897
6853         * dse.c (store_info): Change positions_needed to unsigned
6854         HOST_WIDE_INT.
6855         (lowpart_bitmask): New.
6856         (record_store): Cast to unsigned HOST_WIDE_INT for
6857         positions_needed.  Assert width <= size of positions_needed *
6858         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
6859         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
6860         lowpart_bitmask to set mask.
6861
6862 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
6863
6864         * config/bfin/constraints.md: New file.
6865         * config/bfin/bfin.md: Include it.
6866         (adddi3): Use satisfies_constraint functions instead of the old macros.
6867         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
6868         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
6869         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
6870         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
6871         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
6872         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
6873         EXTRA_CONSTRAINT): Delete.
6874         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
6875         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
6876         of the old macros.
6877         * config/bfin/bfin.c: Include "tm-constrs.h".
6878         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
6879         Use satisfies_constraint functions instead of the old macros.
6880         * doc/md.texi (Blackfin Constraints): Update file name reference.
6881
6882 2008-04-11  Richard Guenther  <rguenther@suse.de>
6883
6884         PR tree-optimization/35869
6885         * tree-vrp.c (execute_vrp): Move switch statement update after
6886         jump threading.  Schedule another cfg cleanup run.
6887
6888 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
6889
6890         PR c/35744
6891         * attribs.c (decl_attributes): Return early on errorneous node.
6892
6893 2008-04-10  Oleg Ryjkov  <olegr@google.com>
6894
6895         * tree.h (struct tree_base): Added a new flag default_def_flag.
6896         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
6897
6898 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6899
6900         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
6901
6902 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6903
6904         PR target/35768
6905         * pa.md: Define mode iterator P.  Define mode attribute dwc.
6906         (dcacheflush): Update pattern to use iterator P and attribute dwc.
6907         (icacheflush): Likewise.
6908         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
6909         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
6910
6911 2008-04-11  Ben Elliston  <bje@au.ibm.com>
6912
6913         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
6914
6915 2008-04-10  Rafael Espindola  <espindola@google.com>
6916
6917         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
6918         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
6919         (extract_range_from_expr): The same.
6920
6921 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
6922
6923         * config/mips/mips.md (GPR2): New mode iterator.
6924         (seq): Add comment.
6925         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
6926         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
6927         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
6928         Rewrite these to take two modes, the mode of comparison and the
6929         mode of the destination.
6930         * config/mips/mips.c (mips_expand_scc): Instead of having
6931         paradoxical subreg as destination, expand "narrowing" scc if mode
6932         of comparison is SI and target is requested in DI mode.
6933         (mips_emit_int_order_test): Update comment.  Make mode of
6934         comparison match CMP0 rather than TARGET.  When creating inverse
6935         target use mode of TARGET.
6936
6937 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
6938
6939         * gcov-dump.c (tag_summary): Only print summaries for the first
6940         GCOV_COUNTERS_SUMMABLE counters.
6941
6942 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
6943
6944         * config/i386/i386.md (absneg): New code iterator.
6945         (absnegprefix): New code attribute.
6946         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
6947         patterns using absneg code iterator.
6948         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
6949         using absneg code iterator.
6950         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
6951         *neg<mode>2 patterns using absneg code iterator.
6952         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6953         *negextendsfdf2 patterns using absneg code iterator.
6954         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
6955         *negextendsfxf2 patterns using absneg code iterator.
6956         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6957         *negextendsfdf2 patterns using absneg code iterator.
6958         * config/i386/sse.md (<code><mode>2): Macroize expander from
6959         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
6960
6961 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
6962
6963         * config/s390/s390.h: Remove the remains of the recent search
6964         & replace action of current_function_outgoing_args_size.
6965
6966 2008-04-10  Ira Rosen  <irar@il.ibm.com>
6967
6968         PR tree-optimization/35821
6969         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
6970         NEW_STMT_LIST is not NULL.
6971
6972 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
6973
6974         PR libstdc++/35597
6975         * toplev.c (process_options): Remove -ffunction-sections debugging
6976         warning.
6977
6978 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
6979
6980         PR middle-end/PR28690
6981         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
6982         than gen_rtx_fmt_ee to perform more canonicalizations.
6983
6984 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6985
6986         PR driver/35665
6987         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
6988
6989 2008-04-09  Richard Guenther  <rguenther@suse.de>
6990
6991         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
6992         (dump_function_to_file): Dump function arguments with types.
6993
6994 2008-04-08  Richard Guenther  <rguenther@suse.de>
6995
6996         * fold-const.c (fold_widened_comparison): Do not allow
6997         sign-changes that change the result.
6998
6999 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
7000
7001         PR target/35839
7002         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
7003         kinds of indirect references.
7004
7005 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
7006
7007         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
7008         GNU Fortran language string.
7009
7010 2008-04-08  Rafael Espindola  <espindola@google.com>
7011
7012         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
7013         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
7014         * tree.h (tree_call_nonnegative_warnv_p): New.
7015
7016 2008-04-08  Jan Hubicka  <jh@suse.cz>
7017
7018         * function.c (free_after_compilation): Clear out regno_reg_rtx
7019         pointer.
7020
7021 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
7022
7023         Revert
7024         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7025
7026         PR middle-end/PR28690
7027         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
7028         same precedence as REG_POINTER and MEM_POINTER operands.
7029
7030 2008-04-08  Richard Guenther  <rguenther@suse.de>
7031
7032         PR middle-end/35834
7033         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
7034         for adding index to base.
7035
7036 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
7037
7038         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
7039         (MINGW_ENABLE_EXECUTE_STACK): New.
7040         (IN_LIBGCC2): For libgcc include windows.h file for
7041         function declarations.
7042
7043 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
7044
7045         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
7046         and tem2 if tem1 is not a REG or MULT.
7047
7048 2008-04-08  Jan Hubicka  <jh@suse.cz>
7049
7050         * function.h (incomming_args): Break out of struct function.
7051         (function_subsections): Break out of struct function.
7052         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
7053         return_rtx and hard_reg_initial_vals from struct function.
7054         Kill inl_max_label_num.
7055         (current_function_pops_args, current_function_args_info,
7056         current_function_args_size, current_function_args_size,
7057         current_function_pretend_args_size,
7058         current_function_outgoing_args_size,
7059         current_function_internal_arg_pointer, current_function_return_rtx):
7060         Kill compatibility accestor macros.
7061         * builtins.c (expand_builtin_apply_args_1): Update.
7062         (expand_builtin_next_arg): Update.
7063         * df-scan.c (df_get_call_refs): Update.
7064         * dbxout.c (dbxout_function_end): Update.
7065         * dwarf2out.c (dwarf2out_switch_text_section): Update.
7066         (output_line_info): Update.
7067         (secname_for_decl): Update.
7068         (dwarf2out_var_location): Update.
7069         * function.c (free_after_compilation): Update.
7070         (assign_parm_find_stack_rtl): Update.
7071         (assign_parms): Update.
7072         (expand_dummy_function_end): Update.
7073         (expand_function_end): Update.
7074         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
7075         (expand_call): Update.
7076         (emit_library_call_value_1): Update.
7077         (store_one_arg): Update.
7078         * varasm.c (initialize_cold_section_name): Update.
7079         (unlikely_text_section): Update.
7080         (unlikely_text_section_p): Update.
7081         (assemble_start_function): Update.
7082         (assemble_end_function): Update.
7083         (default_section_type_flags): Update.
7084         (switch_to_section): Update.
7085         * integrate.c (set_decl_abstract_flags): Update.
7086         (get_hard_reg_initial_val): Update.
7087         (has_hard_reg_initial_val): Update.
7088         (allocate_initial_values): Update.
7089         * resource.c (init_resource_info): Update.
7090         * config/alpha/alpha.c (NUM_ARGS): Update.
7091         (direct_return): Update.
7092         (alpha_va_start): Update.
7093         (alpha_sa_size): Update.
7094         (alpha_initial_elimination_offset): Update.
7095         (alpha_expand_prologue): Update.
7096         (alpha_start_function): Update.
7097         (alpha_expand_epilogue): Update.
7098         (unicosmk_initial_elimination_offset):
7099         * config/alpha/alpha.md (call expander): Update.
7100         * config/s390/s390.c (s390_register_info): Update.
7101         (s390_register_info): Update.
7102         (s390_frame_info): Update.
7103         (s390_initial_elimination_offset): Update.
7104         (s390_build_builtin_va_list): Update.
7105         (s390_va_start): Update.
7106         * config/spu/spu.c (direct_return): Update.
7107         (spu_expand_prologue): Update.
7108         (spu_initial_elimination_offset): Update.
7109         (spu_build_builtin_va_list): Update.
7110         (spu_va_start): Update.
7111         * config/sparc/sparc.c (sparc_init_modes): Update.
7112         (sparc_compute_frame_size): Update.
7113         (function_value): Update.
7114         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
7115         * config/i386/i386.md (return expander): Update.
7116         * config/i386/i386.c (ix86_va_start): Update.
7117         (ix86_can_use_return_insn_p): Update.
7118         (ix86_compute_frame_layout): Update.
7119         (ix86_expand_epilogue): Update.
7120         * config/sh/sh.c (output_stack_adjust): Update.
7121         (calc_live_regs): Update.
7122         (sh_expand_prologue): Update.
7123         (sh_builtin_saveregs): Update.
7124         (sh_va_start): Update.
7125         (initial_elimination_offset): Update.
7126         (sh_allocate_initial_value): Update.
7127         (sh_function_ok_for_sibcall): Update.
7128         (sh_get_pr_initial_val): Update.
7129         * config/sh/sh.md (return expander): Update.
7130         * config/avr/avr.c (frame_pointer_required_p): UPdate.
7131         * config/crx/crx.c (crx_compute_frame): UPdate.
7132         (crx_initial_elimination_offset): UPdate.
7133         * config/xtensa/xtensa.c (compute_frame_size): Update
7134         (xtensa_builtin_saveregs): Update.
7135         (xtensa_va_start): Update.
7136         (order_regs_for_local_alloc): Update.
7137         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
7138         (xstormy16_expand_builtin_va_start): Update.
7139         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
7140         * config/m68hc11/m68hc11.md (return expanders): Update.
7141         * config/m68hc11/m68hc11.c (expand_prologue): Update.
7142         (expand_epilogue): Update.
7143         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
7144         (cris_simple_epilogue): Update.
7145         (cris_expand_prologue): Update.
7146         (cris_expand_epilogue): Update.
7147         * config/iq2000/iq2000.c (iq2000_va_start): Update.
7148         (compute_frame_size): Update.
7149         * config/mt/mt.c (mt_compute_frame_size): Update.
7150         * config/mn10300/mn10300.c (expand_prologue): Update.
7151         (expand_epilogue): Update.
7152         (initial_offset): Update.
7153         (mn10300_builtin_saveregs):
7154         * config/mn10300/mn10300.md (return expander): Update.
7155         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
7156         (ia64_initial_elimination_offset): Update.
7157         (ia64_initial_elimination_offset): Update.
7158         (ia64_expand_prologue): Update.
7159         * config/m68k/m68k.md (return expander): Update.
7160         * config/rs6000/rs6000.c (rs6000_va_start): Update.
7161         (rs6000_stack_info): Update.
7162         * config/mcore/mcore.c (layout_mcore_frame): Update.
7163         (mcore_expand_prolog): Update.
7164         * config/arc/arc.c (arc_compute_frame_size): Update.
7165         * config/score/score3.c (score3_compute_frame_size): Update.
7166         * config/score/score7.c (score7_compute_frame_size): Update.
7167         * config/arm/arm.c (use_return_insn): Update.
7168         (thumb_find_work_register): Update.
7169         (arm_compute_save_reg_mask): Update.
7170         (arm_output_function_prologue): Update.
7171         (arm_output_epilogue): Update.
7172         (arm_size_return_regs): Update.
7173         (arm_get_frame_offsets): Update.
7174         (arm_expand_prologue): Update.
7175         (thumb_exit): Update.
7176         (thumb_unexpanded_epilogue): Update.
7177         (thumb1_output_function_prologue): Update.
7178         * config/pa/pa.md (return expander): Update.
7179         * config/pa/pa.c (compute_frame_size): Update.
7180         (hppa_builtin_saveregs): Update.
7181         * config/mips/mips.c (mips_va_start): Update.
7182         (mips16_build_function_stub): Update.
7183         (mips_compute_frame_info): Update.
7184         (mips_restore_gp): Update.
7185         (mips_output_function_prologue): Update.
7186         (mips_expand_prologue): Update.
7187         * config/v850/v850.c (compute_frame_size): Update.
7188         (expand_prologue): * config/mmix/mmix.c (along): update.
7189         (mmix_initial_elimination_offset): update.
7190         (mmix_reorg): update.
7191         (mmix_use_simple_return): update.
7192         (mmix_expand_prologue): update.
7193         (mmix_expand_epilogue): Update.
7194         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
7195         (emit_link_insn): Update.
7196
7197 2008-04-08  Anatoly Sokolov <aesok@post.ru>
7198
7199         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
7200         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
7201         instructions.
7202         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
7203         atmega103 device.
7204
7205 2008-04-07  Jan Hubicka  <jh@suse.cz>
7206
7207         * function.h (rtl): Rename to x_rtl.
7208         (crtl): New define.
7209         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7210         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7211         used_temp_slots avail_temp_slots, temp_slot_level,
7212         nonlocal_goto_handler_labels): Update accesstors.
7213         (rtl): New global variable.
7214         (struct function): Move some fileds to rtl_data.
7215         (get_arg_pointer_save_area): Update prototype.
7216         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7217         get_arg_pointer_save_area.
7218         * expr.c (init_expr): Update
7219         * function.c (get_frame_size): Update
7220         (assign_stack_local): Update
7221         (expand_function_end): Update.
7222         (get_art_pointer_save_area): Update
7223         * function.h 
7224         * emit-rtl.c (rtl): Declare.
7225         (regno_reg_rtx): Declare.
7226         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7227         Update.
7228         (gen_reg_rtx): Update.
7229         * varasm.c (n_deferred_constatns): Update accestor.
7230         (init_varasm_status): Do not allocate varasm_status.
7231         (force_const_mem, get_pool_size, output_constant_pool): Update.
7232         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7233         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7234         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
7235         * sparc/sparc.h (INIT_EXPANDERS): Update.
7236         * ia64/ia64.h (INIT_EXPANDERS): Update.
7237
7238 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
7239
7240         * reload.c (push_secondary_reload): Add missing break to for loop.
7241
7242 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7243
7244         PR middle-end/PR28690
7245         * rtlanal.c: Update copyright years.
7246         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
7247         as REG_POINTER and MEM_POINTER operands.
7248         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
7249         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
7250         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
7251         * gcse.c: Update copyright years.
7252         (pre_delete): Call gen_reg_rtx_and_attrs.
7253         (hoist_code): Likewise.
7254         (build_store_vectors): Likewise.
7255         (delete_store): Likewise.
7256         * loop-invariant.c (move_invariant_reg): Likewise.
7257         Update copyright years.
7258
7259 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
7260
7261         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
7262         control string instead of quoted.
7263
7264 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
7265
7266         * doc/rtl.texi: Rewrite of subreg section.
7267
7268 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
7269
7270         PR/35842
7271         * config/i386/i386.c (legitimize_pic_address): Add treating
7272         of dllimport SYM_REF's.
7273         (legitimize_dllimport_symbol): Add prototype.
7274
7275 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7276
7277         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
7278         reference in constructor with non self-referential type.
7279
7280 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7281
7282         Removal of Return with Depressed Stack Pointer support
7283         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
7284         (ECF_SP_DEPRESSED): Likewise.
7285         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
7286         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
7287         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7288         (expand_call): Do not test ECF_SP_DEPRESSED.
7289         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7290         * function.c (keep_stack_depressed): Delete.
7291         (handle_epilogue_set): Likewise.
7292         (update_epilogue_consts): Likewise.
7293         (emit_equiv_load): Likewise.
7294         (thread_prologue_and_epilogue_insns): Remove support for Return with
7295         Depressed Stack Pointer.
7296         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7297
7298 2008-04-06  Richard Guenther  <rguenther@suse.de>
7299
7300         PR tree-optimization/35400
7301         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
7302         information from SSA_NAMEs.
7303
7304 2008-04-06  Anatoly Sokolov <aesok@post.ru>
7305
7306         * config/avr/avr.h (avr_mega_p): Remove declaration.
7307         (AVR_MEGA): Remove macro.
7308         * config/avr/avr.c (avr_mega_p): Remove variable.
7309         (avr_override_options): Remove inicializion of avr_mega_p.
7310         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7311         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7312         (avr_jump_mode): (Ditto.).
7313         (avr_output_progmem_section_asm_op): (Ditto.).
7314         (avr_asm_init_sections): (Ditto.).
7315         (avr_asm_init_sections): (Ditto.).
7316         (avr_rtx_costs): (Ditto.).
7317         * config/avr/avr.md: (Ditto.).
7318         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
7319         '__AVR_MEGA__'.
7320
7321 2008-04-06  Richard Guenther  <rguenther@suse.de>
7322
7323         PR tree-optimization/35842
7324         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
7325         is_gimple_invariant_address.
7326
7327 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7328
7329         * gcc.c (default_compilers): Sync Fortran extensions list with
7330         that in fortran/lang-specs.h.
7331         * doc/invoke.texi: Likewise.
7332         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
7333         * dwarf2out.c (gen_compile_unit_die): Likewise.
7334
7335 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
7336
7337         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
7338
7339 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
7340
7341         PR target/12329
7342         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
7343         attribute is used for nested functions.
7344
7345 2008-04-05  Jan Hubicka  <jh@suse.cz>
7346
7347         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
7348
7349         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
7350         letter argument.
7351         (dump_files): Update.
7352         (enable_rtl_dump_file): Do not accept letter argument.
7353         * tree-pass.h (dump_file_info): Remove letter argument.
7354         * toplev.c (decode_d_option): Update -da handling.
7355         * toplev.h (enable_rtl_dump_file): Update prototype.
7356         * passes.c (register_one_dump_file): Do not accept IPA argument; work
7357         it out based on pass type.
7358         (register_dump_files_1): Likewise.
7359         (init_optimization_passes): Update register_one_dump_file calls.
7360         (execute_one_pass): Sanity check that IPA passes are called at IPA
7361         level and RTL passes at RTL level.
7362         (execute_pass_list): IPA pass can not be after or subpass of
7363         GIMPLE/RTL pass.
7364         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
7365         disallov RTL subpasses of IPA subpasses.
7366
7367 2008-04-05  Ben Elliston  <bje@au.ibm.com>
7368
7369         * tree-cfg.c (need_fake_edge_p): Return false for calls to
7370         builtins that return exactly once and do not throw. Cache call to
7371         call_expr_flags.
7372
7373 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
7374
7375         PR rtl-optimization/34916
7376         PR middle-end/35519
7377         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
7378         between instruction pairs.
7379
7380 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
7381
7382         * doc/invoke.texi: Document -mbitops for SH.
7383         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
7384         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
7385         * config/sh/sh.c (print_operand): Add %t operand code.
7386         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
7387         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
7388         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
7389         (extendqihi2): Likewise.
7390         (movqi_i): Likewise.
7391         (insv): Use bset, bclr and bst instructions for SH2A if possible.
7392         (extv): Use bld instruction for SH2A if possible.
7393         (extzv): Likewise.
7394         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
7395         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
7396         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
7397         (bset.b, bclr.b): Define peepholes.
7398         * config/sh/sh.opt (mbitops): New option.
7399
7400 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
7401
7402         PR target/35620
7403         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
7404         and view convert expression.
7405
7406 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7407
7408         PR target/35364
7409         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
7410
7411 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
7412
7413         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
7414
7415         * config/i386/cpuid.h (bit_AES): New.
7416         (bit_PCLMUL): Likewise.
7417
7418         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
7419         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
7420         SSE2 if AES or PCLMUL is enabled.
7421         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
7422         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7423         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
7424         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
7425         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
7426         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
7427         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7428         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
7429         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
7430         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
7431         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
7432         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
7433         __builtin_ia32_aeskeygenassist128 and
7434         __builtin_ia32_pclmulqdq128.
7435         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
7436         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
7437         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
7438
7439         * config/i386/i386.h (TARGET_AES): New.
7440         (TARGET_PCLMUL): Likewise.
7441         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
7442
7443         * config/i386/i386.md (UNSPEC_AESENC): New.
7444         (UNSPEC_AESENCLAST): Likewise.
7445         (UNSPEC_AESDEC): Likewise.
7446         (UNSPEC_AESDECLAST): Likewise.
7447         (UNSPEC_AESIMC): Likewise.
7448         (UNSPEC_AESKEYGENASSIST): Likewise.
7449         (UNSPEC_PCLMUL): Likewise.
7450
7451         * config/i386/i386.opt (maes): New.
7452         (mpclmul): Likewise.
7453
7454         * config/i386/sse.md (aesenc): New pattern.
7455         (aesenclast): Likewise.
7456         (aesdec): Likewise.
7457         (aesdeclast): Likewise.
7458         (aesimc): Likewise.
7459         (aeskeygenassist): Likewise.
7460         (pclmulqdq): Likewise.
7461
7462         * config/i386/wmmintrin.h: New.
7463
7464         * doc/extend.texi: Document AES and PCLMUL built-in function.
7465
7466         * doc/invoke.texi: Document -maes and -mpclmul.
7467
7468 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
7469
7470         * function.c (free_after_parsing): Replace with
7471         cxx_push_function_context from C++ front-end.
7472         (allocate_struct_function): Don't call langhook.
7473         * langhooks.h (struct lang_hooks_for_functions): Delete.
7474         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
7475         member "function".
7476         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
7477         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
7478         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
7479         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
7480         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
7481         remove LANG_HOOKS_FUNCTION_INITIALIZER.
7482         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
7483
7484         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
7485         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
7486         
7487 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7488
7489         PR c/35440
7490         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
7491         for all types.
7492
7493 2008-04-04  Richard Guenther  <rguenther@suse.de>
7494
7495         PR middle-end/35823
7496         * fold-const.c (optimize_minmax_comparison): Use the correct
7497         type for the constant in the simplified comparison.
7498
7499 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
7500
7501         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
7502         Pass L2 size as "--param l2-cache-size" to the compiler.
7503         (decode_l2_cache): New function to decode L2 cache parameters using
7504         0x8000006 extended cpuid function.
7505         (detect_caches_amd): Determine parameters of L2 cache using
7506         decode_l2_caches function.
7507         (decode_caches_intel): Decode L2 cache parameters.
7508         (detect_caches_intel): Determine L2 cache parameters using
7509         decode_caches_intel and decode_l2_caches functions.
7510
7511 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
7512
7513         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
7514         secondary input reload for subword loads from the constant pool.
7515
7516 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
7517
7518         PR target/35713
7519         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
7520           constants of the appropriate size for runtime calculations.
7521
7522         PR c/35712
7523         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
7524           decimal-float literal constant zero.
7525
7526 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
7527
7528         PR c/35738
7529         * c-parser.c (c_parser_omp_atomic): Call
7530         default_function_array_conversion on the RHS.
7531
7532         PR middle-end/35818
7533         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
7534         call is_variable_sized if decl has incomplete type.
7535
7536 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
7537
7538         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
7539
7540 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
7541
7542         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
7543         iterators.
7544         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
7545         (sgt<u>): Merge sgt and sgtu into new expander.
7546         (sgt, sgtu): Remove expanders.
7547         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
7548         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
7549         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
7550         *sgtu_<mode>_mips16 into new pattern.
7551         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
7552         (sge<u>): Merge sge and sgeu into new expander.
7553         (sge, sgeu): Remove expanders.
7554         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
7555         new pattern.
7556         (*sge_<mode>, second *sge_<mode>): Remove patterns.
7557         (slt<u>): Merge slt and sltu into new expander.
7558         (slt, sltu): Remove expanders.
7559         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
7560         (*slt_<mode>, *sltu_<mode>): Remove patterns.
7561         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
7562         *sltu_<mode>_mips16 into new pattern.
7563         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
7564         (sle<u>): Merge sle and sleu into new expander.
7565         (sle, sleu): Remove expanders.
7566         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
7567         (*sle_<mode>, *sleu_<mode>): Remove patterns.
7568         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
7569         *sleu_<mode>_mips16 into new pattern.
7570         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
7571
7572 2008-04-03  Jan Hubicka  <jh@suse.cz>
7573
7574         PR tree-optimization/35795
7575         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
7576         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
7577         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
7578         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
7579         * score/score3.c (score3_output_mi_thunk): Likewise.
7580         * score/score7.c (score7_output_mi_thunk): Likewise.
7581         * mips/mips.c (mips_output_mi_thunk): Likewise.
7582
7583 2008-04-03  Richard Guenther  <rguenther@suse.de>
7584
7585         * tree-vrp.c (extract_range_from_unary_expr): Handle all
7586         conversions.  Simplify code.
7587
7588 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
7589
7590         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
7591
7592 2008-04-03  Tom Tromey  <tromey@redhat.com>
7593             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7594
7595         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7596         * config/bfin/t-bfin-linux (generated_files): Add
7597         linux-sysroot-suffix.h.
7598         * doc/install.texi (Prerequisites): Require make 3.80.
7599         * doc/sourcebuild.texi (Front End Directory): Document new
7600         variable.
7601         * Makefile.in (generated_files): New variable.
7602         (ALL_HOST_OBJS): New variable.
7603         ($(ALL_HOST_OBJS)): New target.
7604
7605 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7606
7607         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
7608         (remap_block): Call id->transform_lang_insert_block instead
7609         of langhook.
7610         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
7611         Set id.transform_lang_insert_block to NULL.
7612         (clone_body): Move to cp/optimize.c
7613         * tree-inline.h (struct copy_body_data): Change
7614         transform_lang_insert_block to function pointer.
7615         (copy_generic_body, copy_decl_no_change): Export.
7616         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
7617         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
7618         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
7619
7620         * c-tree.h (insert_block): Kill.
7621         * c-decl.c (insert_block): Kill.
7622
7623 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7624
7625         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7626         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7627         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
7628         argument.
7629         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
7630         argument, call {push,pop}_function_context from here.
7631         * c-parser.c: Use c_{push,pop}_function_context.
7632
7633         * function.c (push_function_context_to): Move meat ...
7634         (push_function_context): ... here.  Simplify.
7635         * function.c (pop_function_context_from): Move meat ...
7636         (pop_function_context): ... here.  Simplify.
7637         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
7638         leave_nested).
7639         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7640         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7641         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
7642         * tree.h (push_function_context_to, pop_function_context_from): Remove.
7643
7644 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7645
7646         * expmed.c (extract_force_align_mem_bit_field): Remove.
7647
7648 2008-04-03  Richard Guenther  <rguenther@suse.de>
7649
7650         PR middle-end/35800
7651         * expr.h (try_casesi): Adjust prototype.
7652         * expr.c (try_casesi): Take fallback label as extra parameter.
7653         Use that for gen_casesi if default_label is NULL.
7654         * stmt.c (expand_case): Pass fallback label to try_casesi,
7655         make sure to fill gaps with a fallback label if default_label
7656         is not present.
7657
7658 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
7659
7660         PR target/35801
7661         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
7662
7663 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7664
7665         * expmed.c (extract_split_bit_field): Remove if (0) code.
7666         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
7667         (do_ds_constraint): Likewise.
7668
7669 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
7670
7671         * doc/cppopts.texi (-dU): Document.
7672         * c-common.h (flag_dump_macros): Update comment.
7673         * c-opts.c (handle_OPT_d): Handle -dU.
7674         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
7675         dump_queued_macros, cb_used_define, cb_used_undef): New.
7676         (init_pp_output): Handle -dU.
7677         (cb_line_change): Call dump_queued_macros.
7678         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
7679
7680 2008-04-02  Anatoly Sokolov <aesok@post.ru>
7681
7682         * config/avr/predicates.md (io_address_operand): New predicate. 
7683         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
7684         * config/avr/avr.c (avr_io_address_p): Remove function.
7685         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
7686         'avr_io_address_p' function.
7687         (out_movhi_r_mr): (Ditto.).
7688         (out_movqi_mr_r): (Ditto.).
7689         (out_movhi_mr_r): (Ditto.).
7690         (avr_address_cost): (Ditto.).
7691
7692 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
7693
7694         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
7695         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
7696         in 32bit mode when XMM registers are available to avoid store
7697         forwarding stalls.
7698         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
7699         corresponding post-reload splitters.
7700
7701 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7702
7703         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
7704         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
7705         __builtin_ia32_roundss.
7706         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
7707         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
7708         __builtin_ia32_roundss.
7709         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
7710         IX86_BUILTIN_SHUFPD here.
7711
7712 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7713
7714         * config/i386/i386.md (plogic): New.
7715         (plogicprefix): Likewise.
7716
7717         * config/i386/mmx.md (mmx_<code><mode>3): New.
7718         (mmx_and<mode>3): Removed.
7719         (mmx_ior<mode>3): Likewise.
7720         (mmx_xor<mode>3): Likewise.
7721
7722         * config/i386/sse.md (<code><mode>3): New.
7723         (*<code><mode>3): Likewise.
7724         (*<code><mode>3): Likewise.
7725         (<code><mode>3): Likewise.
7726         (*sse_<code><mode>3): Likewise.
7727         (*sse2_<code><mode>3): Likewise.
7728         (<code>tf3): Likewise.
7729         (*<code>tf3): Likewise.
7730         (and<mode>3): Likewise.
7731         (*and<mode>3): Likewise.
7732         (ior<mode>3): Removed.
7733         (*ior<mode>3): Likewise.
7734         (xor<mode>3): Likewise.
7735         (*xor<mode>3): Likewise.
7736         (*and<mode>3): Likewise.
7737         (*ior<mode>3): Likewise.
7738         (*xor<mode>3): Likewise.
7739         (and<mode>3): Likewise.
7740         (*sse_and<mode>3): Likewise.
7741         (*sse2_and<mode>3): Likewise.
7742         (andtf3): Likewise.
7743         (*andtf3): Likewise.
7744         (ior<mode>3): Likewise.
7745         (*sse_ior<mode>3): Likewise.
7746         (*sse2_ior<mode>3): Likewise.
7747         (iortf3): Likewise.
7748         (*iortf3): Likewise.
7749         (xor<mode>3): Likewise.
7750         (*sse_xor<mode>3): Likewise.
7751         (*sse2_xor<mode>3): Likewise.
7752         (xortf3): Likewise.
7753         (*xortf3): Likewise.
7754
7755 2008-04-02  Richard Guenther  <rguenther@suse.de>
7756
7757         PR tree-optimization/14495
7758         PR tree-optimization/34793
7759         * tree-vrp.c (struct switch_update): New structure.
7760         (to_remove_edges, to_update_switch_stmts): New VECs.
7761         (simplify_switch_using_ranges): New function.  Remove not taken
7762         case labels and edges.
7763         (simplify_stmt_using_ranges): Call it.
7764         (identify_jump_threads): Mark edges we have queued for removal
7765         so we don't thread them.
7766         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
7767         case label vector.
7768         * tree-cfg.c (group_case_labels): Deal with missing default label.
7769         (tree_verify_flow_info): Allow missing default label.
7770         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
7771         (emit_case_nodes): Likewise.
7772         (expand_case): Do not rely on the default label to be present.
7773         * expr.c (try_casesi): Deal with NULL default_label.
7774         (do_tablejump): Likewise.
7775
7776 2008-04-02  Richard Guenther  <rguenther@suse.de>
7777
7778         PR tree-optimization/14495
7779         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
7780         SWITCH_EXPR here ...
7781         (vrp_visit_switch_stmt): ... but here (new function).
7782         (find_case_label_index): New helper function.
7783         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
7784
7785 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7786
7787         * fwprop.c: Fix ISO-C99ism.
7788
7789 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7790
7791         PR bootstrap/35752
7792         * Makefile.in (objdir): Set it here.
7793         * configure.ac: Not here.  Find dynamic linker characteristics.
7794         * exec-tool.in: Use them.
7795         * aclocal.m4: Regenerate.
7796         * configure: Regenerate.
7797
7798 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7799
7800         * expr.c (expand_var): Delete it.
7801         * expr.h (expand_var): Delete prototype.
7802         * function.c (expand_function_start): Use expand_decl instead.
7803         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
7804         langhook.
7805
7806 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
7807
7808         PR rtl-optimization/35542
7809         * fwprop.c (forward_propagate_and_simplify): Replace
7810         loc_reg_mentioned_in_p with reg_mentioned_p.
7811
7812 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7813
7814         PR rtl-optimization/35281
7815         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
7816         (propagate_rtx_1): Handle PR_HANDLE_MEM.
7817         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
7818         (varying_mem_p): Move above propagate_rtx.
7819         (all_uses_available_at): Do not check MEMs.
7820
7821 2008-04-02  Rafael Espindola  <espindola@google.com>
7822
7823         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
7824         (register_edge_assert_for_2): Split the cond argument.
7825         (register_edge_assert_for_1): Adjust for the change in
7826         register_edge_assert_for_2.
7827         (register_edge_assert_for): Split the cond argument.
7828         (find_switch_asserts): Adjust for the change in
7829         register_edge_assert_for.
7830
7831 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
7832
7833         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
7834         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
7835         offsets for 64-bit mingw.
7836         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
7837         abi for x86_64-pc-mingw.
7838
7839 2008-04-02  Richard Guenther  <rguenther@suse.de>
7840
7841         * tree-vrp.c (extract_range_from_assert): Make sure to not
7842         produce range min/max with TREE_OVERFOW set.
7843         If merging a anti-range and a range keep the anti-range if
7844         the range covers all values of the type.
7845         (register_edge_assert_for_2): Only allow sign-changing
7846         conversions in detecting canonical range checks.  Also
7847         register an assert for the unsigned name if useful.
7848
7849         PR tree-optimization/35787
7850         * tree-vrp.c (vrp_val_max): New function.
7851         (vrp_val_min): Likewise.
7852         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
7853         (vrp_val_is_min): Likewise.
7854         (supports_overflow_infinity): Use vrp_val_{min,max}.
7855         (negative_overflow_infinity): Likewise.
7856         (positive_overflow_infinity): Likewise.
7857         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
7858         (is_positive_overflow_infinity): Likewise.
7859         (is_overflow_infinity): Likewise.
7860         (avoid_overflow_infinity): Use vrp_val_{min,max} and
7861         vrp_val_is_{min,max}.
7862         (set_and_canonicalize_value_range): Canonicalize anti-ranges
7863         to ranges if possible.  Avoid empty ranges.
7864
7865 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7866
7867         PR middle-end/35705
7868         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
7869         the expression is a function address.
7870
7871 2008-04-01  George Helffrich  <george@gcc.gnu.org>
7872
7873         PR fortran/35154, fortran/23057
7874         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
7875         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
7876         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
7877         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
7878         in common.
7879         (dbxout_syms): Check for COMMON-based symbol and wrap in
7880         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
7881         in bracket for efficiency.
7882
7883         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
7884         using DW_TAG_common_block + member offset.
7885         (add_pubname_string): New function.
7886         (dw_expand_expr): New function to find block name and offset for
7887         COMMON var.
7888         (common_check): New function to check whether symbol in Fortran COMMON.
7889         (gen_variable_die): If COMMON, use DW_TAG_common_block.
7890
7891 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
7892
7893         PR c/35436
7894         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
7895
7896 2008-04-02  Ben Elliston  <bje@au.ibm.com>
7897
7898         * config/v850/v850.md (casesi): Remove if (0) code.
7899         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7900         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
7901
7902 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
7903
7904         * config/i386/i386.md (rex64suffix): New mode attribute.
7905         (floathi<mode>2): Disable expander for SSE math.
7906         (*floathi<mode>2_1): New insn insn_and_split pattern.
7907         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
7908         corresponding post-reload splitters.
7909         (*floathi<mode>2_i387): New macroized insn pattern.
7910         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
7911         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
7912         insn_and_split pattern.
7913         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
7914         New macroized instruction patterns and corresponding post-reload
7915         splitters.
7916         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
7917         and corresponding post-reload splitters.
7918         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
7919         New macroized instruction patterns.
7920         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
7921         macroized instruction patterns and corresponding post-reload splitters.
7922         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
7923         corresponding post-reload splitters.
7924         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
7925         New macroized instruction patterns.
7926         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
7927         corresponding post-reload splitters.
7928         (*floatsi<mode>2_i387): New macroized instruction patterns.
7929
7930 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
7931
7932         * config/i386/i386.md (smaxmin): New.
7933         (umaxmin): Likewise.
7934         (maxminiprefix): Likewise.
7935         (maxminfprefix): Likewise.
7936         (<code><mode>3): Likewise.
7937         (smin<mode>3): Removed.
7938         (smax<mode>3): Likewise.
7939
7940         * config/i386/mmx.md (mmx_<code>v2sf3): New.
7941         (mmx_<code>v4hi3): Likewise.
7942         (mmx_<code>v8qi3): Likewise.
7943         (mmx_smaxv2sf3): Removed.
7944         (mmx_sminv2sf3): Likewise.
7945         (mmx_umaxv8qi3): Likewise.
7946         (mmx_smaxv4hi3): Likewise.
7947         (mmx_uminv8qi3): Likewise.
7948         (mmx_sminv4hi3): Likewise.
7949
7950         * config/i386/sse.md (<addsub><mode>3): New.
7951         (*<addsub><mode>3): Likewise.
7952         (<sse>_vm<addsub><mode>3): Likewise.
7953         (<maxmin><mode>3): Likewise.
7954         (*<maxmin><mode>3_finite): Likewise.
7955         (*<maxmin><mode>3): Likewise.
7956         (<sse>_vm<maxmin><mode>3): Likewise.
7957         (sse3_h<addsub>v4sf3): Likewise.
7958         (sse3_h<addsub>v2df3): Likewise.
7959         (<maxmin>v16qi3): Likewise.
7960         (*<maxmin>v16qi3): Likewise.
7961         (<maxmin>v8hi3): Likewise.
7962         (*<maxmin>v8hi3): Likewise.
7963         (*sse4_1_<maxmin><mode>3): Likewise.
7964         (*sse4_1_<maxmin><mode>3): Likewise.
7965         (add<mode>3): Removed.
7966         (*add<mode>3): Likewise.
7967         (<sse>_vmadd<mode>3): Likewise.
7968         (sub<mode>3): Likewise.
7969         (*sub<mode>3): Likewise.
7970         (<sse>_vmsub<mode>3): Likewise.
7971         (smin<mode>3): Likewise.
7972         (*smin<mode>3_finite): Likewise.
7973         (*smin<mode>3): Likewise.
7974         (<sse>_vmsmin<mode>3): Likewise.
7975         (smax<mode>3): Likewise.
7976         (*smax<mode>3_finite): Likewise.
7977         (*smax<mode>3): Likewise.
7978         (<sse>_vmsmax<mode>3): Likewise.
7979         (sse3_haddv4sf3): Likewise.
7980         (sse3_haddv2df3): Likewise.
7981         (sse3_hsubv4sf3): Likewise.
7982         (sse3_hsubv2df3): Likewise.
7983         (umaxv16qi3): Likewise.
7984         (*umaxv16qi3): Likewise.
7985         (smaxv8hi3): Likewise.
7986         (*smaxv8hi3): Likewise.
7987         (*sse4_1_smax<mode>3): Likewise.
7988         (*sse4_1_umax<mode>3): Likewise.
7989         (uminv16qi3): Likewise.
7990         (*uminv16qi3): Likewise.
7991         (sminv8hi3): Likewise.
7992         (*sminv8hi3): Likewise.
7993         (*sse4_1_smin<mode>3): Likewise.
7994         (*sse4_1_umin<mode>3): Likewise.
7995
7996 2008-04-01  Rafael Espindola  <espindola@google.com>
7997
7998         * tree-cfg.c (verify_expr): remove in_phi.
7999         (verify_stmt): Don't call walk_tree with verify_expr. Use
8000         is_gimple_min_invariant instead of is_gimple_val.
8001
8002 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
8003
8004         * doc/include/gpl_v3.texi: Update for manpage generation.
8005         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
8006         gpl.texi.
8007         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
8008         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
8009         gpl_v3.texi instead of gpl.texi.
8010         (gpl.pod): New.
8011
8012 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
8013
8014         PR pch/13675
8015         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
8016
8017 2008-04-01  Rafael Espindola  <espindola@google.com>
8018
8019         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
8020         (extract_code_and_val_from_cond): Use
8021         extract_code_and_val_from_cond_with_ops.
8022
8023 2008-04-01  Jan Hubicka  <jh@suse.cz>
8024
8025         * function.c (free_after_compilation): Free epilogue_delay_list.
8026         (prepare_function_start): Assert that previous compilation was freed.
8027
8028 2008-04-01  Jan Hubicka  <jh@suse.cz>
8029             Jim Wilson  <wilson@tuliptree.org>
8030             Andreas Tobler <andreast@gcc.gnu.org>
8031
8032         PR middle-end/35781
8033         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
8034         rtl.emit instead cfun->emit.
8035         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
8036         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
8037
8038 2008-04-01  Ben Elliston  <bje@au.ibm.com>
8039
8040         * doc/c-tree.texi (Function Basics): Fix grammatical error.
8041
8042 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
8043
8044         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
8045         New options
8046         (fprofile-use): Add var flag_profile_use
8047         * coverage.c (coverage_begin_output): Do not open a gcno file for
8048         output only if -ftest-coverage is set.
8049         Do not add getpwd() to gcda file path.
8050         (build_gcov_info): Check the new flag
8051         flag_profile_datafile_relative_path.
8052         (coverage_init): Use profile_data_prefix.
8053         Read profile counter only if flag_profile_use is set.
8054         * opts.c (common_handle_option): New option fprofile-use=,
8055         fprofile-dir=, fprofile-generate=.
8056         * toplev.c (profile_data_prefix): New variable definition.
8057         * toplev.h (profile_data_prefix): New declaration.
8058         * doc/invoke.tex (Option Summary, Optimization Options):
8059         Add new options.
8060
8061 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
8062
8063         * varasm.c (output_constant_pool_1): In LABEL_REF check,
8064         use tmp consistently.
8065
8066         PR target/35695
8067         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
8068         * config/ia64/ia64.c (rtx_needs_barrier): Handle
8069         UNSPEC_FR_RECIP_APPROX_RES.
8070         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
8071
8072 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
8073
8074         PR c/35750
8075         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
8076
8077 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8078
8079         PR middle-end/30186
8080         * fold-const.c (fold_indirect_ref_1): Support accessing non first
8081         element of the vector via a pointer.
8082
8083 2008-03-31  Ian Lance Taylor  <iant@google.com>
8084
8085         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
8086
8087 2008-03-31  Jan Hubicka  <jh@suse.cz>
8088
8089         * builtins.c (expand_builtin_setjmp_receiver): Update call of
8090         get_arg_pointer_save_area.
8091         * expr.c (init_expr): Just clear out rtl.expr.
8092         * function.c (free_after_compilation): Clear out whole RTL structure.
8093         (get_func_frame_size): Merge into ...
8094         (get_frame_size): ... this one.
8095         (assign_stack_local_1): Merge into ...
8096         (assign_stack_local): ... this one.
8097         (expand_function_end): Update call of get_arg_pointer_save_area.
8098         (get_art_pointer_save_area): Remove cfun argument.
8099         * function.h (emit_status): regno_pointer_align does not need length
8100         attribute. Move x_regno_reg_rtx to ...
8101         (regno_reg_rtx): ... new global array.
8102         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
8103         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
8104         apply_args_value, forced_labels, stack_pointer_delta):
8105         Update accestors.
8106         (struct varasm_status): Move here from varasm.c
8107         (struct rtl_data): New. Move here some fields from struct function.
8108         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
8109         frame_offset, stack_check_probe_note, arg_pointer_save_area,
8110         used_temp_slots avail_temp_slots, temp_slot_level,
8111         nonlocal_goto_handler_labels): Update accesstors.
8112         (rtl): New global variable.
8113         (struct function): Move some fileds to rtl_data.
8114         (get_arg_pointer_save_area): Update prototype.
8115         * emit-rtl.c (rtl): Declare.
8116         (regno_reg_rtx): Declare.
8117         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
8118         Update.
8119         (gen_reg_rtx): Update.
8120         (init_virtual_regs): Do not tate emit_status argument.
8121         (init_emit): Do not allocate emit.
8122         * varasm.c (varasm_statuc): Move to function.h.
8123         (n_deferred_constatns): Update accestor.
8124         (init_varasm_status): Do not allocate varasm_status.
8125         (force_const_mem, get_pool_size, output_constant_pool): Update.
8126         * stmt.c (force_label_rtx): Do not use x_ prefixes.
8127         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
8128
8129 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
8130
8131         PR rtl-optimization/35729
8132         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
8133         references.
8134
8135 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
8136
8137         PR target/32000
8138         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
8139         load/store if memory is unaligned.
8140         (*movti_rex64): Likewise.
8141
8142         * config/i386/predicates.md (misaligned_operand): New.
8143
8144 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
8145
8146         PR tree-opt/35431
8147         * tree-ssa-phiopt.c (conditional_replacement): Return early for
8148         complex types.
8149
8150 2008-03-31  Jan Beulich  <jbeulich@novell.com>
8151
8152         * config/ia64/constraints.md: Add 'j' constraint.
8153         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
8154         (movdi_internal): Likewise.
8155
8156 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
8157
8158         PR c/35748
8159         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
8160
8161 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
8162
8163         PR target/35757
8164         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
8165         proper error message for the third argument on blendpd and
8166         blendps.
8167
8168         * config/i386/sse.md (blendbits): New.
8169         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
8170
8171 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
8172
8173         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
8174
8175 2008-03-30  Richard Guenther  <rguenther@suse.de>
8176
8177         PR middle-end/31023
8178         * fold-const.c (fold_sign_changed_comparison): Do leave
8179         conversions to base-types alone.
8180
8181 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8182
8183         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
8184         the link register if one altivec register is be saved.
8185
8186 2008-03-30  Ben Elliston  <bje@au.ibm.com>
8187
8188         * final.c (final_scan_insn): Remove if (0) code.
8189
8190 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
8191
8192         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
8193
8194 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
8195
8196         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
8197         of V4SFmode to ix86_binary_operator_ok.
8198
8199 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
8200
8201         * config/i386/i386.c (override_options): Initialize
8202         ix86_veclib_handler to ix86_veclibabi_svml when
8203         -mveclibabi=svml is used.
8204         (ix86_veclibabi_svml): New function for SVML ABI style
8205         vectorization support.
8206         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
8207
8208 2008-03-28  Rafael Espindola  <espindola@google.com>
8209
8210         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
8211         (tree_binary_nonnegative_warnv_p): Make it public.
8212         (tree_single_nonnegative_warnv_p): Make it public.
8213         (tree_invalid_nonnegative_warnv_p): Make it public.
8214         (tree_unary_nonzero_warnv_p): Make it public.
8215         (tree_binary_nonzero_warnv_p): Make it public
8216         (tree_single_nonzero_warnv_p): Make it public.
8217         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
8218         (extract_range_from_binary_expr): Split the expr argument.
8219         (extract_range_from_unary_expr): Split the expr argument.
8220         (extract_range_from_comparison): Split the expr argument.
8221         (extract_range_from_expr): Use the new aux functions.
8222         (vrp_evaluate_conditional_warnv): Use
8223         vrp_evaluate_conditional_warnv_with_ops.
8224         * tree.h (tree_unary_nonzero_warnv_p): Declare.
8225         (tree_binary_nonzero_warnv_p): Declare.
8226         (tree_single_nonzero_warnv_p): Declare.
8227         (tree_expr_nonzero_warnv_p): Declare.
8228         (tree_unary_nonnegative_warnv_p): Declare.
8229         (tree_binary_nonnegative_warnv_p): Declare.
8230         (tree_single_nonnegative_warnv_p): Declare.
8231         (tree_invalid_nonnegative_warnv_p): Declare.
8232
8233 2008-03-28  Richard Guenther  <rguenther@suse.de>
8234
8235         PR tree-optimization/30317
8236         PR tree-optimization/30911
8237         PR tree-optimization/34793
8238         * tree-vrp.c (set_and_canonicalize_value_range): New function.
8239         (struct assert_locus_d): New member EXPR.
8240         (register_new_assert_for): Add EXPR parameter to support
8241         ASSERT_EXPR <name, expr OP limit>.
8242         (register_edge_assert_for_1): Adjust callers.
8243         (find_assert_locations): Likewise.
8244         (process_assert_insertions_for): Build condition from expression.
8245         (extract_range_from_assert): Handle ASSERT_EXPRs
8246         of the form ASSERT_EXPR <name, expr OP limit>.
8247         (register_edge_assert_for_2): New helper registering
8248         asserts for comparisons.  Recognize range tests of the form
8249         (unsigned)i - CST1 OP CST2.
8250         (register_edge_assert_for_1): Use it.
8251         (register_edge_assert_for): Likewise.
8252         (needs_overflow_infinity): Integer sub-types
8253         do not need overflow infinities.
8254         (vrp_val_is_max): The extreme values of integer sub-types
8255         are those of the base type.
8256         (vrp_val_is_min): Likewise.
8257         * tree.def (ASSERT_EXPR): Document extra allowed conditional
8258         expressions.
8259
8260 2008-03-28  Nick Clifton  <nickc@redhat.com>
8261
8262         PR target/31110
8263         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
8264         Return GENERAL_REGS for stack adjustment reloads.
8265
8266 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8267
8268         PR target/31334
8269         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
8270         const_vector when all the vectors are constant.
8271
8272 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
8273
8274         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
8275         comparisons.
8276         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
8277         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
8278         (scc_sf): New.
8279         (s<code>_sf): Use new scc_sf attribute for opcode names.
8280
8281 2008-03-27  Tom Tromey  <tromey@redhat.com>
8282
8283         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
8284         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
8285         config/spu/t-spu-elf, config/i386/t-interix,
8286         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
8287         config/i386/x-darwin, config/i386/x-mingw32,
8288         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
8289         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
8290         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
8291         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
8292         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
8293         config/rs6000/x-darwin, config/rs6000/t-rs6000,
8294         config/score/t-score-elf, config/arm/t-strongarm-pe,
8295         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
8296         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
8297         Revert automatic dependency patch.
8298
8299 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8300
8301         PR target/35657
8302         * config/i386/i386.c (ix86_function_arg_boundary): Align
8303         decimal floating point to its natural boundary.
8304
8305 2008-03-27  Richard Guenther  <rguenther@suse.de>
8306
8307         PR middle-end/35716
8308         * fold-const.c (fold_comparison): Restrict distinct decl
8309         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
8310         solely rely on operand_equal_p.
8311
8312 2008-03-27  Richard Guenther  <rguenther@suse.de>
8313
8314         PR c/32511
8315         * c-common.c (handle_weak_attribute): Reject combination of
8316         weak and inline.
8317
8318 2008-03-27  Richard Guenther  <rguenther@suse.de>
8319
8320         PR tree-optimization/32810
8321         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
8322         conversions from DECL_INITIAL.
8323         (fold_const_aggregate_ref): Likewise from constructor elements.
8324
8325 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
8326
8327         * tree-affine.h (aff_combination_expand): Declare.
8328         (get_inner_reference_aff): Likewise.
8329         * tree-affine.c (aff_combination_expand): Split out from
8330         tree_to_aff_combination_expand.
8331         (get_inner_reference_aff): New function.
8332         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
8333         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
8334         (struct lim_aux_data): sm_done field removed.
8335         (mem_ref_loc_p, mem_ref_locs_p): New types.
8336         (struct mem_ref): Added id, stored, accesses_in_loop,
8337         indep_loop, dep_loop, indep_ref, dep_ref fields.
8338         Removed is_stored, locs and next fields.
8339         (memory_accesses): New variable.
8340         (movement_possibility): Do not allow moving statements
8341         that store to memory.
8342         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
8343         New functions.
8344         (determine_max_movement): For statements with memory references,
8345         find the outermost loop in that the reference is independent.
8346         (move_computations_stmt): Mark the virtual operands for renaming.
8347         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
8348         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
8349         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
8350         add_vop_ref_mapping, create_vop_ref_mapping_loop,
8351         create_vop_ref_mapping, analyze_memory_references,
8352         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
8353         get_all_locs_in_loop, ref_always_accessed_p,
8354         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
8355         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
8356         store_motion_loop, store_motion): New functions.
8357         (struct vop_to_refs_elt): New type.
8358         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
8359         memref_hash, memref_eq, hoist_memory_references): Rewritten.
8360         (schedule_sm): Replaced by...
8361         (execute_sm): ... this.
8362         (determine_lsm_ref, hoist_memory_references,
8363         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
8364         find_more_ref_vops, free_mem_ref, free_mem_refs,
8365         determine_lsm_loop, determine_lsm): Removed.
8366         (tree_ssa_lim_finalize): Free data structures used by store motion.
8367         (tree_ssa_lim): Call analyze_memory_references.  Use
8368         store_motion instead of determine_lsm.
8369
8370 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8371
8372         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
8373         rename tmake_file to m68hc11/t-m68hc11.
8374         (mcore): Set inhibit_libc to true.
8375         * config.host (alpha*-dec-*vms*): Set extra_programs.
8376         (interix3*): Don't use host_xmake_file.
8377         * configure.ac: Let config.gcc override inhibit_libc.
8378         * configure: Regenerate.
8379
8380         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
8381         * config/t-openbsd-thread: Remove commented out lines.
8382         
8383         * config/x-interix: Remove.
8384
8385         * config/m68hc11/t-m68hc11-gas: Rename to...
8386         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
8387
8388         * config/mcore/t-mcore: Remove T_CFLAGS.
8389         * config/mcore/t-mcore-pe: Likewise.
8390
8391 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8392
8393         * configure.ac: Replace custom __GNU_SOURCE test with
8394         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
8395         * aclocal.m4: Regenerate.
8396         * configure: Regenerate.
8397         * config.in: Regenerate.
8398
8399 2008-03-27  Richard Guenther  <rguenther@suse.de>
8400
8401         * fold-const.c (target.h): Include.
8402         (fold_comparison): Fold comparison of addresses of decls
8403         that bind locally or of constants.  Consolidate address folding code.
8404         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
8405         results from fold_binary_to_constant.
8406         (compare_values_warnv): Likewise.
8407
8408 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
8409
8410         PR middle-end/35429
8411         * fold-const.c (fold_truthop): Check for integeral types when folding
8412         a == 0 && b == 0 and a != 0 || b != 0 .
8413
8414 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8415
8416         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
8417
8418 2008-03-26  Andreas Schwab  <schwab@suse.de>
8419
8420         * doc/invoke.texi: Fix use of @item vs. @itemx.
8421
8422 2008-03-26  Tom Tromey  <tromey@redhat.com>
8423
8424         * Makefile.in (build/gensupport.o, build/print-rtl.o,
8425         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
8426         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
8427         build/gencodes.o, build/genconditions.o, build/genconfig.o,
8428         build/genconstants.o, build/genemit.o, build/genextract.o,
8429         build/genflags.o, build/genmddeps.o, build/genopinit.o,
8430         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
8431         options.h.
8432
8433 2008-03-26  Richard Guenther  <rguenther@suse.de>
8434
8435         Revert
8436         2008-03-26  Richard Guenther  <rguenther@suse.de>
8437
8438         * fold-const.c (target.h): Include.
8439         (fold_comparison): Fold comparison of addresses of two decls
8440         that bind locally.  Consolidate address folding code.
8441
8442 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8443
8444         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
8445         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
8446         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
8447         dconstsqrt2, dconstthird, dconste and/or dconst10.
8448         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
8449         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
8450         dconstsqrt2, dconste): Delete.
8451         (init_emit_once): Likewise.  Simplify initializing dconstm1.
8452         Constify variable.
8453         * real.c (get_real_const): New.
8454         * real.h (dconst3, dconst10, dconstm2, dconstthird,
8455         dconstsqrt2, dconste): Delete.
8456         (real_value_const, get_real_const): New.
8457
8458 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
8459
8460         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
8461
8462         * config/i386/i386.c (ix86_function_arg_boundary): Check
8463         BIGGEST_ALIGNMENT instead of 128.
8464         (setup_incoming_varargs_64): Likewise.
8465
8466 2008-03-26  Tom Tromey  <tromey@redhat.com>
8467
8468         * Makefile.in (DEPFILES): Add missing '/'.
8469
8470 2008-03-26  Richard Guenther  <rguenther@suse.de>
8471
8472         * fold-const.c (target.h): Include.
8473         (fold_comparison): Fold comparison of addresses of two decls
8474         that bind locally.  Consolidate address folding code.
8475
8476 2008-03-26  Nick Clifton  <nickc@redhat.com>
8477
8478         PR target/31232
8479         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
8480         not allow INT+INT as a legitimate addressing mode.
8481
8482 2008-03-26  Richard Guenther  <rguenther@suse.de>
8483
8484         * tree-flow.h (widen_bitfield): Remove declaration.
8485         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
8486         (widen_bitfield): Remove function.
8487         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
8488         code.
8489
8490 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8491
8492         PR target/31558
8493         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
8494         error_mark_node's.
8495
8496 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8497
8498         PR rtl-optimization/35232
8499         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
8500         (forget_old_reloads_1, forget_marked_reloads): Don't clear
8501         reg_reloaded_call_part_clobbered here.
8502         (reload_regs_reach_end_p): New function.
8503         (reload_reg_rtx_for_input): New variable.
8504         (reload_reg_rtx_for_output): Likewise.
8505         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
8506         when reassigning a pseudo register.  Load reloadreg from 
8507         reload_reg_rtx_for_input, moving the mode and register
8508         calculation to...
8509         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
8510         instead of the original when deciding whether an input reload
8511         would be a no-op or whether an output reload can be deleted.
8512         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
8513         when setting up new_spill_reg_store.  Load it from
8514         reload_reg_rtx_for_output, moving the mode and register
8515         calculation to...
8516         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
8517         instead of the original when deciding whether an output reload
8518         would be a no-op.  Do the same when modifying insn notes.
8519         Use rtx_equal_p instead of == to compare the registers.
8520         (inherit_piecemeal_p): Take a mode and two register numbers
8521         as argument.
8522         (emit_reload_insns): Clear new_spill_reg_store for every hard
8523         register in the reload register.  Remove spill registers
8524         from reg_reloaded_valid before considering whether to record
8525         inheritance information for them.  Use reload_reg_rtx_for_output
8526         instead of reg_rtx when recording output reloads.  Use
8527         reload_reg_rtx_for_input instead of reg_rtx when recording
8528         input reloads.  Set or clear reg_reloaded_call_part_clobbered
8529         at the same time as setting reg_reloaded_valid.
8530         (delete_output_reload): Add a new_reload_reg parameter and use it
8531         instead of rld[j].reg_rtx.
8532         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
8533         calls accordingly.
8534
8535 2008-03-25  Tom Tromey  <tromey@redhat.com>
8536
8537         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
8538         (build/genattr.o): Likewise.
8539         (build/genattrtab.o): Likewise.
8540         (build/gencodes.o): Likewise.
8541         (build/genconfig.o): Likewise.
8542         (build/genconstants.o): Likewise.
8543         (build/genemit.o): Likewise.
8544         (build/genextract.o): Likewise.
8545         (build/genflags.o): Likewise.
8546
8547 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
8548         
8549         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
8550         instead of size_int for integer types.
8551         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
8552         to match type of MINUS_EXPR.
8553         
8554 2008-03-25  Tom Tromey  <tromey@redhat.com>
8555
8556         * configure: Rebuilt.
8557         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
8558         Makefile.
8559
8560 2008-03-25  Tom Tromey  <tromey@redhat.com>
8561
8562         * config/x-solaris (host-solaris.o): Update.
8563         * config/x-linux (host-linux.o): Update.
8564         * config/x-hpux (host-hpux.o): Update.
8565         * config/x-darwin (host-darwin.o): Update.
8566         * config/v850/t-v850e (v850-c.o): Update.
8567         * config/v850/t-v850 (v850-c.o): Update.
8568         * config/t-vxworks (vxworks.o): Update.
8569         * config/t-sol2 (sol2-c.o, sol2.o): Update.
8570         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
8571         * config/spu/t-spu-elf (spu-c.o): Update.
8572         (spu.o): Remove.
8573         * config/sh/t-symbian (sh-c.o): Update.
8574         (symbian.o): Update.
8575         * config/sh/t-sh (sh-c.o): Update.
8576         * config/score/t-score-elf (score7.o, score3.o): Update.
8577         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
8578         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
8579         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
8580         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
8581         (rs6000.o): Remove.
8582         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
8583         * config/m32c/t-m32c (m32c-pragma.o): Update.
8584         * config/ia64/t-ia64 (ia64-c.o): Update.
8585         * config/i386/x-mingw32 (host-mingw32.o): Update.
8586         * config/i386/x-i386 (driver-i386.o): Update.
8587         * config/i386/x-darwin (host-i386-darwin.o): Update.
8588         * config/i386/x-cygwin (host-cygwin.o): Update.
8589         * config/i386/t-nwld (nwld.o): Update.
8590         * config/i386/t-netware (netware.o): Update.
8591         * config/i386/t-interix (winnt.o): Update.
8592         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
8593         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
8594         msformat-c.o): Update.
8595         * config/bfin/t-bfin-linux (generated_files): Add
8596         linux-sysroot-suffix.h.
8597         * config/arm/t-wince-pe (pe.o): Update.
8598         * config/arm/t-strongarm-pe (pe.o): Update.
8599         * config/arm/t-pe (pe.o): Update.
8600         * config/arm/t-arm (arm-c.o): Update.
8601         * doc/install.texi (Prerequisites): Require make 3.80.
8602         * Makefile.in: Remove .o targets.
8603         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
8604         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
8605         (simple_generated_h, simple_generated_c): Move earlier.
8606         (generated_files): New variable.
8607         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
8608         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
8609         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
8610         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
8611         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
8612         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
8613         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
8614         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
8615         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
8616         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
8617         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
8618         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
8619         (.c.o): Remove.
8620         (COMPILE.base, COMPILE): New variables.
8621         (%.o): New pattern rule.
8622         (ALL_HOST_OBJS): New variable.
8623         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
8624         (dummy-checksum.o, cc1-checksum.o): Remove.
8625         (DRIVER_SHLIB): New variable.
8626         (DRIVER_DEFINES): Use it.
8627         (gencondmd.c): Move out of build/.
8628         (s-conditions): Update.
8629         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
8630         (ALL_BUILD_OBJS): Likewise.
8631         (build/%.o): Use BUILDCOMPILE.
8632         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
8633         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
8634         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
8635         build/gencheck.o, build/gencodes.o, build/genconditions.o,
8636         build/genconfig.o, build/genconstants.o, build/genemit.o,
8637         build/genextract.o, build/genflags.o, build/genmddeps.o,
8638         build/genopinit.o, build/genoutput.o, build/genpeep.o,
8639         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
8640         build/gen-protos.o, build/scan.o, build/fix-header.o,
8641         build/scan-decls.o): Simplify.
8642         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
8643         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
8644         prefix.o, toplev.o): Reduce to variable setting.
8645         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
8646         ($(out_object_file), gcc-options.o): New targets.
8647         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
8648         * configure: Rebuilt.
8649         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
8650         * doc/sourcebuild.texi (Front End Directory): Document new variable.
8651
8652 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
8653
8654         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
8655         complain when we hit an error, return ERROR_MARK_NODE.
8656
8657 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8658
8659         * config/sh/constraints.md (Pso, Psz): New constraints.
8660         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
8661         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
8662
8663 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8664
8665         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
8666         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
8667
8668 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8669
8670         * config/sh/sh.md (prefetch): Add condition for SH2A target.
8671         (prefetch_sh2a): New.   
8672
8673 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8674             Naveen.H.S  <naveen.hs@kpitcummins.com>
8675
8676         * config/sh/constraints.md (I28): New constraint.
8677         * config/sh/sh.c (broken_move): Add support for movi20s.
8678         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
8679
8680 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
8681             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8682             Naveen.H.S  <naveen.hs@kpitcummins.com>
8683
8684         * config/sh/sh.c (SH_ATTRIBUTES): Define.
8685         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
8686         (print_operand): Handle resbank in %@ operand code.
8687         (sh_encode_section_info): New.
8688         (push_regs): Add conditions for resbank.
8689         (sh_expand_epilogue): Likewise.
8690         (sh_insert_attributes): Likewise.
8691         (sh_attribute_table): Likewise.
8692         (sh_handle_resbank_handler_attribute): New.
8693         (sh2a_handle_function_vector_handler_attribute): New.
8694         (sh2a_is_function_vector_call): New.
8695         (sh2a_get_function_vector_number): New.
8696         (sh2a_function_vector_p): New.
8697         (sh_cfun_resbank_handler_p): New.
8698         * config/sh/sh.md (calli): Emit jsr/n if possible.
8699         (calli_tbr_rel): New.
8700         (calli_pcrel): Emit jsr/n if possible.
8701         (return_i): Emit rts/n if possible.
8702         (call_valuei_tbr_rel): New.
8703         (call_valuei_pcrel): Add condition for SH2A target.
8704         (call_value): Likewise.
8705         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
8706         (sh2a_get_function_vector_number): Likewise.
8707         (sh2a_is_function_vector_call): Likewise.
8708         * doc/extend.texi: Document TBR relative addressing of SH2A.
8709         (resbank): Add description for SH2A.
8710
8711 2008-03-24  Richard Guenther  <rguenther@suse.de>
8712
8713         PR c/22371
8714         * gimplify.c (gimplify_modify_expr): For frontend type-correct
8715         pointer assignments change conversions according to middle-end rules.
8716         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
8717         * configure.ac: Include type checking in yes.
8718         * configure: Regenerate.
8719
8720 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8721
8722         * diagnostic.c (diagnostic_count_diagnostic): Delete.
8723         (diagnostic_report_diagnostic): Update. Handle ICEs here.
8724         
8725 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
8726
8727         * gthr-vxworks.h (UNUSED): Define.
8728
8729 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
8730
8731         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
8732
8733 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
8734
8735         * doc/extend.texi (Function Attributes): Add missing comma in the
8736         example of the "alloc_size" attribute.
8737         
8738 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
8739
8740         Revert:
8741         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8742
8743         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8744         32bit host.
8745
8746         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8747
8748         PR target/35496
8749         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8750         of the underlying type of a MS bitfield layout to the natural
8751         alignment of the type.
8752
8753         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8754
8755         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8756         to their natural alignment to avoid store forwarding stalls.
8757
8758 2008-03-22  Richard Guenther  <rguenther@suse.de>
8759
8760         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
8761         For PHI nodes verify the address is invariant.
8762         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
8763         (get_symbol_constant_value): Use is_gimple_min_invariant.
8764         (maybe_fold_stmt_indirect): Likewise.
8765
8766 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
8767
8768         PR rtl-optimization/33927
8769         * Makefile.in (dse.o): Depend on $(TM_P_H).
8770         * expr.h (extract_low_bits): Declare.
8771         * expmed.c (extract_low_bits): New function.
8772         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
8773         * dse.c: Include tm_p.h.
8774         (find_shift_sequence): Remove the read_reg argument and return the
8775         read value.  Emit the instructions instead of returning them.
8776         Iterate on new_mode rather than calculating it each time.
8777         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
8778         source to NEW_MODE and extract_low_bits to convert the shifted
8779         value to READ_MODE.
8780         (replace_read): Allow the load and store to have different mode
8781         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
8782         or extraction instructions before trying the replacement.  Update
8783         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
8784
8785 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8786
8787         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8788         to their natural alignment to avoid store forwarding stalls.
8789
8790 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8791
8792         PR target/27946
8793         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
8794         encouraging but not allowing gprs for input;
8795         change the input constraint to !f#r.
8796         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
8797         gprs for output;
8798         change the output constraint to !f#r.
8799
8800 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
8801
8802         PR target/13958
8803         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
8804         corresponding post-reload splitters.
8805         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
8806         when x87 FP math is selected.
8807         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
8808         New function prototype.
8809         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
8810         unreachable function to ease macroization of insn patterns.
8811
8812 2008-03-21  Martin Jambor  <mjambor@suse.cz>
8813
8814         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
8815         reference dumps if ddr is NULL or dependence is unknown.
8816
8817 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8818
8819         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
8820         unsigned extension into account.
8821         (ATOMIC_COMPARE_AND_SWAP): Likewise.
8822         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
8823         Do computations on a scratch register.
8824
8825 2008-03-21  Richard Guenther  <rguenther@suse.de>
8826
8827         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
8828         Use is_gimple_min_invariant instead of TREE_INVARIANT.
8829         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
8830         * tree-ssa-dom.c (record_equality): Likewise.
8831         * tree-inline.c (copy_body_r): Likewise.
8832         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
8833         TREE_INVARIANT.
8834
8835 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8836
8837         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
8838         as 'delete_unused' argument.
8839
8840 2008-03-20  Richard Guenther  <rguenther@suse.de>
8841
8842         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
8843         special casing of constant qualifiers.
8844         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
8845         care about them in general.
8846         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
8847         regardless of their type.
8848         (fold_stmt_r): Forcefully fold *& if we end up with that.
8849
8850 2008-03-20  Paul Brook  <paul@codesourcery.com>
8851
8852         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
8853         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
8854         linker flags.
8855         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
8856         definition.
8857         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
8858         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
8859
8860 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
8861
8862         * common.opt (Wmudflap): New option.
8863         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
8864         (mx_register_decls): Likewise.
8865         (mudflap_finish_file): Likewise.
8866         * doc/invoke.texi: Document -Wno-mudflap.
8867
8868 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
8869
8870         * c-format.c (replace_format_name_to_system_name): New.
8871         (cmp_attribs): New.
8872         (convert_format_name_to_system_name): New.
8873         (decode_format_attr): Add use of convert_format_name_to_system_name.
8874         (format_types_orig): Add gnu_ prefix to names.
8875         (check_format_info_main): Special treating of \0 escaped names for
8876         supporting multi-character format specifiers as I32, I64.
8877         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
8878         (gnu_target_overrides_format_attributes): New.
8879         * c-format.h: Add structure target_ovr_attr to hold
8880         system specific formatter names.
8881         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
8882         msformat-c.o file to c_target_objs and cxx_target_objs.
8883         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8884         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
8885         (TARGET_N_FORMAT_TYPES): New.
8886         * config/i386/msformat-c.c: New.
8887         * config/i386/t-cygming: Add build rule for msformat-c.o.
8888         * doc/extend.texi: Add new format names gnu_* and ms_* and
8889         further details.
8890         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8891
8892 2008-03-20  Ira Rosen  <irar@il.ibm.com>
8893
8894         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
8895         optimizations turned on under -O3.
8896         (ftree-vectorize): Add that the flag is turned on with -O3.
8897
8898 2008-03-20  Ben Elliston  <bje@au.ibm.com>
8899
8900         * regmove.c (try_auto_increment): Fix spelling error in comment.
8901         * final.c (final_scan_insn): Likewise.
8902
8903 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
8904
8905         PR target/14552
8906         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
8907         allocator preferences for "y" and "r" class registers.
8908         ("*mov<mode>_internal"): Ditto.
8909         ("*movv2sf_internal_rex64"): Ditto.
8910         ("*movv2sf_internal"): Ditto.
8911
8912 2008-03-19  Michael Matz  <matz@suse.de>
8913
8914         PR middle-end/35616
8915         * calls.c (expand_call): Check overlap of arguments with call
8916         address for sibcalls.
8917
8918 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8919
8920         PR target/35496
8921         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8922         of the underlying type of a MS bitfield layout to the natural
8923         alignment of the type.
8924
8925 2008-03-19  Jan Hubicka  <jh@suse.cz>
8926
8927         PR other/35094
8928         * toplev.c (decode_d_option): Handle all CPP flags.
8929         * tree-vrp.c: Update tree_pass descriptors.
8930         * regrename.c: Update tree_pass descriptors.
8931         * fwprop.c: Update tree_pass descriptors.
8932         * doc/invoke.texi: Remove documentation of dropped -d? flags.
8933         * tree-into-ssa.c: Update tree_pass descriptors.
8934         * tree-dump.c: Update tree_pass descriptors.
8935         * tree-complex.c: Update tree_pass descriptors.
8936         * tree-dump.h: Update tree_pass descriptors.
8937         * see.c: Update tree_pass descriptors.
8938         * cgraphbuild.c: Update tree_pass descriptors.
8939         * tracer.c: Update tree_pass descriptors.
8940         * tree-loop-distribution.c: Update tree_pass descriptors.
8941         * cgraph.c: Update tree_pass descriptors.
8942         * postreload-gcse.c: Update tree_pass descriptors.
8943         * postreload.c: Update tree_pass descriptors.
8944         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
8945         * tree-tailcall.c: Update tree_pass descriptors.
8946         * tree-pass.h (tree_opt_pass): Rename to ...
8947         (opt_pass) ... this one; add "type" field and remove letter field.
8948         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
8949         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
8950         all_lowering_passes): Update declaration.
8951         * ipa-cp.c: Update tree_pass descriptors.
8952         * final.c: Update tree_pass descriptors.
8953         * omp-low.c: Update tree_pass descriptors.
8954         * tree-ssa-dse.c: Update tree_pass descriptors.
8955         * ipa-reference.c: Update tree_pass descriptors.
8956         * tree-ssa-uncprop.c: Update tree_pass descriptors.
8957         * auto-inc-dec.c: Update tree_pass descriptors.
8958         * reorg.c: Update tree_pass descriptors.
8959         * cgraphunit.c: Update tree_pass descriptors.
8960         * tree-ssa-copyrename.c: Update tree_pass descriptors.
8961         * tree-ssa-ccp.c: Update tree_pass descriptors.
8962         * df-core.c: Update tree_pass descriptors.
8963         * mode-switching.c: Update tree_pass descriptors.
8964         * tree-nomudflap.c: Update tree_pass descriptors.
8965         * modulo-sched.c: Update tree_pass descriptors.
8966         * ipa-pure-const.c: Update tree_pass descriptors.
8967         * cse.c: Update tree_pass descriptors.
8968         * web.c: Update tree_pass descriptors.
8969         * tree-stdarg.c: Update tree_pass descriptors.
8970         * tree-ssa-math-opts.c: Update tree_pass descriptors.
8971         * tree-ssa-dom.c: Update tree_pass descriptors.
8972         * tree-nrv.c: Update tree_pass descriptors.
8973         * tree-ssa-alias.c: Update tree_pass descriptors.
8974         * loop-init.c: Update tree_pass descriptors.
8975         * gimple-low.c: Update tree_pass descriptors.
8976         * ipa-inline.c: Update tree_pass descriptors.
8977         * tree-ssa-sink.c: Update tree_pass descriptors.
8978         * global.c: Update tree_pass descriptors.
8979         * ifcvt.c: Update tree_pass descriptors.
8980         * jump.c: Update tree_pass descriptors.
8981         * predict.c: Update tree_pass descriptors.
8982         * tree-ssa-loop.c: Update tree_pass descriptors.
8983         * recog.c: Update tree_pass descriptors.
8984         * dse.c: Update tree_pass descriptors.
8985         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
8986         * tree-eh.c: Update tree_pass descriptors.
8987         * regmove.c: Update tree_pass descriptors.
8988         * local-alloc.c
8989         * function.c: Update tree_pass descriptors.
8990         * tree-vectorizer.c: Update tree_pass descriptors.
8991         * gcse.c: Update tree_pass descriptors.
8992         * ipa-type-escape.c: Update tree_pass descriptors.
8993         * tree-if-conv.c: Update tree_pass descriptors.
8994         * init-regs.c: Update tree_pass descriptors.
8995         * ipa.c: Update tree_pass descriptors.
8996         * tree-ssa-phiopt.c: Update tree_pass descriptors.
8997         * rtl-factoring.c: Update tree_pass descriptors.
8998         * lower-subreg.c: Update tree_pass descriptors.
8999         * bt-load.c: Update tree_pass descriptors.
9000         * tree-dfa.c: Update tree_pass descriptors.
9001         * except.c: Update tree_pass descriptors.
9002         * emit-rtl.c: Update tree_pass descriptors.
9003         * cfgexpand.c: Update tree_pass descriptors.
9004         * tree-cfgcleanup.c: Update tree_pass descriptors.
9005         * cfgcleanup.c: Update tree_pass descriptors.
9006         * tree-ssa-pre.c: Update tree_pass descriptors.
9007         * tree-sra.c: Update tree_pass descriptors.
9008         * tree-mudflap.c: Update tree_pass descriptors.
9009         * tree-ssa-copy.c: Update tree_pass descriptors.
9010         * cfglayout.c: Update tree_pass descriptors.
9011         * tree-ssa-forwprop.c: Update tree_pass descriptors.
9012         * tree-ssa-dce.c: Update tree_pass descriptors.
9013         * tree-ssa.c: Update tree_pass descriptors.
9014         * regclass.c: Update tree_pass descriptors.
9015         * integrate.c: Update tree_pass descriptors.
9016         * tree-optimize.c: Update tree_pass descriptors.
9017         * tree-ssa-phiprop.c: Update tree_pass descriptors.
9018         * tree-object-size.c: Update tree_pass descriptors.
9019         * combine.c: Update tree_pass descriptors.
9020         * tree-outof-ssa.c: Update tree_pass descriptors.
9021         * bb-reorder.c: Update tree_pass descriptors.
9022         * stack-ptr-mod.c: Update tree_pass descriptors.
9023         * var-tracking.c: Update tree_pass descriptors.
9024         * tree-profile.c: Update tree_pass descriptors.
9025         * tree-vect-generic.c: Update tree_pass descriptors.
9026         * reg-stack.c: Update tree_pass descriptors.
9027         * sched-rgn.c: Update tree_pass descriptors.
9028         * tree-ssa-structalias.c: Update tree_pass descriptors.
9029         * tree-cfg.c: Update tree_pass descriptors.
9030         * passes.c (current_pass): Update declaration.
9031         (finish_optimization_passes): Update.
9032         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
9033         (register_one_dump_file, register_dump_files_1, next_pass_1):
9034         Update arguments.
9035         (init_optimization_passes): Update handling of new types.
9036         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
9037         * ipa-struct-reorg.c: Update tree_pass descriptors.
9038         * tree-ssa-reassoc.c: Update tree_pass descriptors.
9039         * combine-stack-adj.c: Update tree_pass descriptors.
9040         * cfgrtl.c: Update tree_pass descriptors.
9041         * dce.c: Update tree_pass descriptors.
9042         * tree-ssanames.c: Update tree_pass descriptors.
9043
9044 2008-03-19  Richard Guenther  <rguenther@suse.de>
9045
9046         PR middle-end/35609
9047         * tree-ssa.c (walk_data): New structure.
9048         (warn_uninitialized_var): If not always_executed warn with "maybe"
9049         instead of "is".
9050         (execute_early_warn_uninitialized): Compute post-dominators.
9051         Initialize always_executed before processing each basic block.
9052
9053 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
9054
9055         PR target/35504
9056         * config/i386/i386.c (x86_this_parameter): Calculate correct location
9057         of "this" pointer when "regparm = N" or "fastcall" is in effect.
9058
9059 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9060
9061         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
9062
9063 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
9064
9065         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
9066         is true.
9067         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
9068         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
9069         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
9070         target after ignore has been set, and move there also the commputation
9071         of subtarget and original_target.
9072         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
9073         (LANG_HOOKS_INITIALIZER): Remove it.
9074         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
9075
9076 2008-03-18  Richard Guenther  <rguenther@suse.de>
9077
9078         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
9079         found an expression with constants, note that in the VN for the lhs.
9080         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
9081         fold them to constants if possible.  Run cleanup_cfg if done so.
9082         (execute_pre): Return todo.
9083         (do_pre): Likewise.
9084         (execute_fre): Likewise.
9085         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
9086         of constants.
9087         (get_prop_source_stmt): Look through pointer conversions.
9088
9089 2008-03-18  Jan Hubicka  <jh@suse.cz>
9090
9091         * tree-pretty-print.c: Include predict.h.
9092         (dump_generic_node): Dump predictor.
9093         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
9094         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
9095         * gimple-low.c (lower_stmt): Likewise.
9096         * expr.c (expand_expr_real): Likewise.
9097         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
9098         them.
9099         (build_predict_expr, build_predict_expr): New.
9100         * predict.h (predictor_name, build_predict_expr): Update.
9101         * c-typeck.c (c_finish_bc_stmt): Add prediction.
9102         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
9103         * predict.def (PRED_CONTINUE): Update hitrate.
9104         * tree.def (PREDICT_EXPR): Define.
9105         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
9106         do not handle BIND_EXPR.
9107         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
9108         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
9109         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
9110         operands.
9111
9112 2008-03-18  Michael Matz  <matz@suse.de>
9113
9114         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
9115
9116 2008-03-18  Richard Guenther  <rguenther@suse.de>
9117
9118         * tree-gimple.h (is_gimple_invariant_address): Declare.
9119         (is_gimple_constant): Likewise.
9120         * tree-gimple.c (is_gimple_constant): New function.
9121         (is_gimple_invariant_address): Likewise.
9122         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
9123         and is_gimple_invariant_address.
9124         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
9125         previous change.
9126         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
9127         an addressable base.
9128
9129 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
9130
9131         PR middle-end/35611
9132         * gimplify.c (gimplify_expr): Gimplify second operand of
9133         OMP_ATOMIC_LOAD.
9134
9135 2008-03-17  Richard Guenther  <rguenther@suse.de>
9136
9137         PR tree-optimization/19637
9138         * fold-const.c (fold_unary): Remove restrictions of removing
9139         intermediate pointer-conversions (P2)(P1)P0.
9140         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
9141         conversion to void pointer.
9142         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
9143
9144 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
9145
9146         PR debug/31510
9147         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
9148         emulated thread local variables.
9149
9150 2008-03-16  Richard Guenther  <rguenther@suse.de>
9151
9152         PR middle-end/35607
9153         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
9154         expand TREE_INVARIANT operations that are not gimple invariant.
9155
9156 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
9157
9158         * doc/extend.texi (Alignment): Say that the ABI controls
9159         the __alignof__ for non-strict-alignment targets rather
9160         than being a recommendation.
9161
9162 2008-03-15  Paul Brook  <paul@codesourcery.com>
9163
9164         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
9165         annotations.
9166         (arm_output_fn_unwind): Mark functions that can not be unwound.
9167
9168 2008-03-15  Paul Brook  <paul@codesourcery.com>
9169
9170         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
9171         extension instructions.
9172
9173 2008-03-15  Richard Guenther  <rguenther@suse.de>
9174
9175         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
9176         and fold constant aggregate refs.
9177         (fold_const_aggregate_ref): Handle string constants
9178         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
9179         (evaluate_stmt): Simplify now that ccp_fold folds constant
9180         aggregate refs.
9181
9182 2008-03-15  Paul Brook  <paul@codesourcery.com>
9183
9184         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
9185         (extzv): Use gen_extzv_t2.
9186         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
9187
9188 2008-03-15  Richard Guenther  <rguenther@suse.de>
9189
9190         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
9191         (fold_const_aggregate_ref): Likewise.
9192         (get_value): Return NULL if we don't have any values.
9193         (ccp_finalize): Set const_val to NULL after freeing it.
9194         * tree-flow.h (get_symbol_constant_value): Declare.
9195         (fold_const_aggregate_ref): Likewise.
9196         * tree-ssa-sccvn.c (try_to_simplify): Use them.
9197
9198 2008-03-15  Richard Guenther  <rguenther@suse.de>
9199
9200         PR middle-end/35593
9201         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
9202         to not produce negative array indices if not allowed.  Add
9203         parameter to indicate that.
9204         (maybe_fold_offset_to_component_ref): Allow negative array
9205         indices only for the first member of a structure.
9206         (maybe_fold_offset_to_reference): Allow negative array indices.
9207         (maybe_fold_stmt_addition): Likewise.
9208
9209 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
9210             Anatoly Sokolov <aesok@post.ru>
9211
9212         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
9213         (avr_arch): Add ARCH_AVR6.
9214         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
9215         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
9216         instead of fixed value 2.
9217         (print_operand_address): Use gs() asm specifier instead of pm().
9218         (avr_assemble_integer): (Ditto.).
9219         (avr_output_addr_vec_elt): (Ditto.).
9220         (print_operand): Handle "!" code.
9221         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
9222         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
9223         (AVR_HAVE_EIJMP_EICALL): Define.
9224         (AVR_3_BYTE_PC): Redefine.
9225         (AVR_2_BYTE_PC): (Ditto.).
9226         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
9227         (LINK_SPEC): Add atmega2560 and atmega2561.
9228         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
9229         (crtm2561.o).
9230         * config/avr/avr.md (call_insn): Use eicall instead of icall 
9231         for 3 byte PC devices.
9232         (call_value_insn): (Ditto.).
9233         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
9234         (indirect_jump): Use only for for 2 byte PC devices.
9235         (*tablejump): (Ditto.).
9236         (*indirect_jump_avr6): Add insn.
9237         (*tablejump_rjmp): Don't use for 3 byte PC devices.
9238         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
9239         instead of ijmp for 3 byte PC devices.
9240         (__tablejump2__): (Ditto.).
9241         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
9242         (MULITLIB_DIRNAMES): (Ditto.). 
9243         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
9244
9245 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
9246
9247         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
9248         "sse2_umulsidi3".  Use V1DI mode for operand 0.
9249         ("mmx_psadbw"): Use V1DI mode for operand 0.
9250         * config/i386/i386-modes.def (V1SI): New vector mode.
9251         * config/i386/i386.c (struct builtin_description)
9252         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
9253         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
9254         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
9255         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
9256         v1di_ftype_v8qi_v8qi type.
9257         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
9258
9259         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
9260         __builtin_ia32_pmuludq]: Fix the mode of return value.
9261
9262 2008-03-15  Richard Guenther  <rguenther@suse.de>
9263
9264         PR middle-end/35595
9265         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
9266         being a PHI_NODE.
9267
9268 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
9269         
9270         * doc/invoke.texi (Option Summary, Xtensa Options): Document
9271         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
9272         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
9273         unless TARGET_SERIALIZE_VOLATILE is enabled.
9274         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
9275         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
9276         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
9277
9278 2008-03-14  Richard Guenther  <rguenther@suse.de>
9279
9280         PR tree-optimization/34172
9281         * tree-flow.h (refs_may_alias_p): Declare.
9282         (get_single_def_stmt): Likewise.
9283         (get_single_def_stmt_from_phi): Likewise.
9284         (get_single_def_stmt_with_phi): Likewise.
9285         * tree-dfa.c (refs_may_alias_p): New function.
9286         (get_single_def_stmt): Likewise.
9287         (get_single_def_stmt_from_phi): Likewise.
9288         (get_single_def_stmt_with_phi): Likewise.
9289         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
9290         (vn_reference_lookup_1): New helper function.
9291         (vn_reference_lookup): Walk the virtual use-def chain to
9292         continue searching for a match if the def does not alias the
9293         reference we are looking for.
9294
9295 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
9296
9297         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
9298         archive and Perzl.  Update The Written Word listing.
9299
9300 2008-03-14  Richard Guenther  <rguenther@suse.de>
9301
9302         PR tree-optimization/34043
9303         PR tree-optimization/33989
9304         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
9305         when doing FRE.
9306         (bitmap_find_leader): Use extra argument to verify dominance
9307         relationship inside a basic-block.
9308         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
9309         (find_leader_in_sets): Adjust.
9310         (create_component_ref_by_pieces): Take extra argument for
9311         dominance check, handle lookup failures.
9312         (find_or_generate_expression): Likewise.
9313         (create_expression_by_pieces): Likewise.
9314         (insert_into_preds_of_block): Adjust.
9315         (create_value_expr_from): If asked for, verify all operands
9316         are in the blocks AVAIL_OUT set.
9317         (make_values_for_stmt): Check for SSA_NAMEs that are life
9318         over an abnormal edge.
9319         (compute_avail): Remove such check.
9320         (do_SCCVN_insertion): New function.
9321         (eliminate): If we do not find a leader suitable for replacement
9322         insert a replacement expression from SCCVN if available.
9323         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
9324         (struct vn_ssa_aux): Add needs_insertion flag.
9325         * tree-ssa-sccvn.c (may_insert): New global flag.
9326         (copy_reference_ops_from_ref): Value-number union member access
9327         based on its size, not type and member if insertion is allowed.
9328         (visit_reference_op_load): For a weak match from union type
9329         punning lookup a view-converted value and insert a SSA_NAME
9330         for that value if that is not found.
9331         (visit_use): Make dumps shorter.  Do not disallow value numbering
9332         SSA_NAMEs that are life over an abnormal edge to constants.
9333         (free_scc_vn): Release inserted SSA_NAMEs.
9334         (run_scc_vn): New flag to specify whether insertion is allowed.
9335         Process SSA_NAMEs in forward order.
9336         * tree-ssa-loop-im.c (for_each_index): Handle invariant
9337         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
9338         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
9339         pointer type to/from integral types that do not change the
9340         precision to regular conversions.
9341
9342 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9343
9344         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9345         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9346         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
9347         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
9348         input arguments and the mode of return value.  Built-in functions
9349         that operate on whole 64-bit MMX register now use V1DI mode.
9350
9351 2008-03-13  Alon Dayan  <alond@il.ibm.com>
9352             Olga Golovanevsky  <olga@il.ibm.com>
9353
9354         PR tree-optimization/35041
9355         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
9356         to locate the right position in a statement.
9357
9358 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9359
9360         PR target/34000
9361         PR target/35553
9362         * config/i386/xmmintrin.h:  Change all static inline functions to
9363         extern inline and add __gnu_inline__ attribute.
9364         * config/i386/bmintrin.h: Ditto.
9365         * config/i386/smmintrin.h: Ditto.
9366         * config/i386/tmmintrin.h: Ditto.
9367         * config/i386/mmintrin-common.h: Ditto.
9368         * config/i386/ammintrin.h: Ditto.
9369         * config/i386/emmintrin.h: Ditto.
9370         * config/i386/pmmintrin.h: Ditto.
9371         * config/i386/mmintrin.h: Ditto.
9372         * config/i386/mm3dnow.h: Ditto.
9373
9374 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
9375
9376         PR middle-end/35185
9377         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
9378         (lower_omp_2): New function.
9379         (lower_omp_1, lower_omp): Rewritten.
9380
9381 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
9382
9383         PR 35054
9384         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
9385         with the phrase "Microsoft Windows compilers".
9386         (Push/Pop Macro Pragmas): New subsection. Document
9387         #pragma push_macro and pragma pop_macro.
9388
9389 2008-03-12  Paul Brook  <paul@codesourcery.com>
9390
9391         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
9392
9393 2008-03-12  Paul Brook  <paul@codesourcery.com>
9394
9395         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
9396         (thumb2_alusi3_short): Exclude PLUS and MINUS.
9397         (thumb2_addsi_shortim): Rename ...
9398         (thumb2_addsi_short): ... to this.  Allow register operands.
9399         (thumb2_subsi_short): New pattern.
9400         (thumb2_one_cmplsi2_short,
9401         thumb2_negsi2_short): New patterns and peepholes.
9402
9403 2008-03-12  Paul Brook  <paul@codesourcery.com>
9404
9405         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
9406
9407 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
9408
9409         * config/i386/i386.md (int_cond): New code iterator.
9410         (fp_cond): Ditto.
9411         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
9412         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
9413         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
9414         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
9415         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
9416         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
9417         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
9418         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
9419
9420 2008-03-12  Paul Brook  <paul@codesourcery.com>
9421
9422         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
9423         instead of {arm,thumb}_compute_save_reg_mask.
9424         (output_return_instruction): Ditto.
9425         (thumb_unexpanded_epilogue): Ditto.
9426         (thumb1_expand_prologue): Ditto.
9427         (thumb1_output_function_prologue): Ditto.
9428         (arm_set_return_address): Ditto.
9429         (thumb_set_return_address): Ditto.
9430         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
9431         regs to achieve stack alignment.
9432         (thumb1_compute_save_reg_mask): Fix compiler warning.
9433         (arm_output_epilogue): Use offsets->saved_regs_mask.
9434         Adjust stack pointer by poping call clobered registers.
9435         (arm_expand_prologue): Use offsets->saved_regs_mask.
9436         Adjust stack pointer by pushing extra registers.
9437         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
9438
9439 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
9440
9441         PR tree-opt/35422
9442         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
9443         conversion to the operands of a multiplication.
9444
9445 2008-03-12  Richard Guenther  <rguenther@suse.de>
9446
9447         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
9448         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
9449         * timevar.def (TV_TREE_PHIPROP): Add.
9450         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
9451         pass description.  Use TV_TREE_PHIPROP.
9452         * tree-ssa-forwprop.c: Remove phiprop code.
9453
9454 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
9455
9456         PR middle-end/35549
9457         * omp-low.c (maybe_lookup_decl): Constify first argument.
9458         (use_pointer_for_field): Change last argument from bool to
9459         omp_context *.  Disallow shared copy-in/out in nested
9460         parallel if decl is shared in outer parallel too.
9461         (build_outer_var_ref, scan_sharing_clauses,
9462         lower_rec_input_clauses, lower_copyprivate_clauses,
9463         lower_send_clauses, lower_send_shared_vars): Adjust callers.
9464
9465 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
9466             Ira Rosen  <irar@il.ibm.com>
9467
9468         * tree-vectorizer.c (free_stmt_vec_info): New function.
9469         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
9470         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
9471         * tree-vectorizer.h (free_stmt_vec_info): Declare.
9472         * tree-vect-transform.c (vectorizable_conversion): Free
9473         vec_oprnds0 if it was allocated.
9474         (vect_permute_store_chain): Remove unused VECs.
9475         (vectorizable_store): Free VECs that are allocated in the..
9476         function.
9477         (vect_transform_strided_load, vectorizable_load): Likewise.
9478         (vect_remove_stores): Simplify the code.
9479         (vect_transform_loop): Move code to vect_remove_stores().
9480         Call vect_remove_stores() and free_stmt_vec_info().
9481
9482 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9483
9484         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
9485         TARGET_HPUX.  Revise comment.
9486         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
9487         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
9488         Use sr4 variant of `be' instruction when not generating PIC code.
9489         (attr_length_call): Adjust for above change.
9490
9491 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9492
9493         * ipa-reference.c (static_execute): Remove module_statics_const and
9494         associated setting code.
9495
9496 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9497
9498         PR target/35540
9499         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
9500         predicate for operand 1.
9501         (paritysi2_cmp): Use register_operand predicate for operand 2.
9502         Use earlyclobber modifier for operand 1.  Remove support for
9503         memory operands.
9504         (paritydi2_cmp): Use register_operand predicate for operand 3.
9505         Use earlyclobber modifier for operand 1.  Remove support for
9506         memory operands.
9507
9508 2008-03-11  Paul Brook  <paul@codesourcery.com>
9509             Vladimir Prus  <vladimir@codesourcery.com>
9510
9511         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
9512         (arm_compute_save_reg0_reg12_mask): Always
9513         check if register 11 must be saved.  Always safe hard frame pointer
9514         when frame_pointer_needeed.
9515         (arm_compute_save_reg_mask): Save IP and PC
9516         only with apcs frames.
9517         (arm_output_epilogue): Adjust Thumb2 codepath to
9518         be also invoked and work for ARM non-apcs frames.
9519         (arm_expand_prologue): Don't bother saving IP
9520         for non-apcs frame, since it's not clobbered by
9521         prologue code.  Implement non-apcs frame
9522         layout.
9523
9524 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9525
9526         PR rtl-optimization/35281
9527         * expr.c (convert_move): Use a new pseudo for the intermediate
9528         from_mode->word_mode result.
9529
9530 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9531
9532         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
9533         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
9534         * toplev.c (compile_file): Don't call it.
9535
9536 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9537
9538         PR middle-end/35526
9539         * expr.c (store_expr): Call emit_block_move if the mode
9540         of "temp" RTX is BLKmode.
9541
9542 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9543             Richard Guenther  <rguenther@suse.de>
9544
9545         PR tree-optimization/31358
9546         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
9547         the step with a NULL_TREE.
9548         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
9549         to sizetype if type is a pointer type.
9550         (add_candidate_1): Don't convert the base and step to
9551         the generic type if the orginal type is a pointer type.
9552         (add_iv_value_candidates): Use sizetype for the step
9553         if type is a pointer type.
9554         (cand_value_at): Likewise.
9555         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
9556         for pointer types.
9557         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
9558         Don't convert the tem affine to the type.
9559         (add_elt_to_tree): Use sizetype for the step if a pointer.
9560         Use POINTER_PLUS_EXPR for pointers.
9561         (aff_combination_to_tree): Use sizetype for the step if a
9562         pointer.
9563
9564 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
9565
9566         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
9567         Remove commutativity hint.
9568
9569 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
9570
9571         PR c/35438
9572         PR c/35439
9573         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
9574         errorneous type.  Check that v is a VAR_DECL.
9575
9576         PR middle-end/35099
9577         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
9578
9579 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
9580
9581         PR tree-optimization/35494
9582         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
9583         may be overriden at link and run time.
9584
9585 2008-03-10  Richard Guenther  <rguenther@suse.de>
9586
9587         PR tree-optimization/34677
9588         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
9589         (poolify_tree): Likewise.
9590         (modify_expr_template): Likewise.
9591         (poolify_modify_stmt): Likewise.
9592         (insert_fake_stores): Handle all component-ref style stores
9593         in addition to INDIRECT_REF.  Also handle complex types.
9594         Do not poolify the inserted load.
9595         (realify_fake_stores): Do not rebuild the tree but only
9596         make it a SSA_NAME copy.
9597         (init_pre): Remove initialzation of modify_expr_template.
9598         Do not allocate modify_expr_node_pool.
9599         (fini_pre): Do not free modify_expr_node_pool.
9600
9601 2008-03-10  Paul Brook  <paul@codesourcery.com>
9602
9603         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
9604         to avoid conflicts.
9605
9606 2008-03-10  Paul Brook  <paul@codesourcery.com>
9607             Mark Shinwell  <shinwell@codesourcery.com>
9608
9609         * config/arm/cortex-r4.md: New.
9610         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
9611         insn attributes.
9612         * config/arm/arm.md: Include cortex-r4.md.
9613         (insn): Add smmls, sdiv and udiv values.
9614         (generic_sched): Don't use generic scheduling for Cortex-R4.
9615         (arm_issue_rate): New function.
9616         (TARGET_SCHED_ISSUE_RATE): Define.
9617
9618 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
9619
9620         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
9621
9622 2008-03-10  Richard Guenther  <rguenther@suse.de>
9623
9624         * tree-ssa-pre.c (get_sccvn_value): Simplify.
9625         (compute_avail): Do not add stmt uses to AVAIL_OUT.
9626
9627 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
9628
9629         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
9630         Set default to true.
9631
9632 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9633
9634         * c.opt (Wsynth): Deprecate.
9635         * doc/invoke.texi (Option Summary, Warning Options): Document
9636         -Wno-format-contains-nul.
9637
9638 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
9639
9640         PR target/35496
9641         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
9642         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
9643
9644 2008-03-09  Ira Rosen  <irar@il.ibm.com>
9645
9646         * config/rs6000/rs6000.c (builtin_description): Rename vector
9647         left shift operations.
9648         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
9649         (altivec_vsl<VI_char>): Rename to ...
9650         (ashl<mode>3): ... new name.
9651         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
9652         gen_ashlv4si3.
9653         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
9654
9655 2008-03-08  Richard Guenther  <rguenther@suse.de>
9656
9657         * coverage.h (tree_coverage_counter_addr): Declare.
9658         * coverage.c (tree_coverage_counter_addr): New function.
9659         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
9660         before using again.
9661         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
9662         (tree_gen_one_value_profiler): Likewise.
9663         (tree_gen_ic_profiler): Likewise.
9664         (tree_gen_average_profiler): Likewise.
9665         (tree_gen_ior_profiler): Likewise.
9666
9667 2008-03-08  Richard Guenther  <rguenther@suse.de>
9668
9669         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
9670         (vn_binary_op_insert): Likewise.
9671         (vn_unary_op_lookup): Likewise.
9672         (vn_unary_op_insert): Likewise.
9673         (vn_nary_op_lookup): Declare.
9674         (vn_nary_op_insert): Likewise.
9675         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
9676         and binary hashes, use a single obstack for unary_op_pool
9677         and binary_op_pool.
9678         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
9679         a single struct vn_nary_op_s.  Store tree code length and
9680         a variable number of operands.
9681         (struct vn_reference_op_struct): Remove unused op2.
9682         (vn_reference_op_eq): Do not compare op2.
9683         (vn_reference_op_compute_hash): Do not compute hash of op2.
9684         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
9685         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
9686         with vn_nary_op_compute_hash.
9687         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
9688         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
9689         vn_nary_op_lookup.
9690         (vn_unary_op_insert, vn_binary_op_insert): Replace with
9691         vn_nary_op_insert.
9692         (visit_unary_op): Call nary functions.
9693         (visit_binary_op): Likewise.
9694         (process_scc): Adjust for struct vn_tables_s changes.
9695         (allocate_vn_table): Likewise.
9696         (free_vn_table): Likewise.
9697         * tree-vn.c (vn_add): Call nary functions.
9698         (vn_lookup): Likewise.
9699
9700 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
9701
9702         PR target/35498
9703         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
9704         wdst back after sync_compare_and_swapqhi_internal.
9705
9706 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
9707
9708         PR target/22152
9709         * config/i386/i386-modes.def (V1DI): New vector mode.
9710         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
9711         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
9712         (MMXMODE248): Ditto.
9713         (MMXMODE): Add V1DI mode.
9714         (mmxvecsize): Change DI mode to V1DI mode.
9715         ("mov<mode>): Use MMXMODEI8 mode iterator.
9716         ("*mov<mode>_internal_rex64"): Ditto.
9717         ("*mov<mode>_internal"): Ditto.
9718         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
9719         ("mmx_sub<mode>3"): Ditto.
9720         ("mmx_adddi3"): Remove insn pattern.
9721         ("mmx_subdi3"): Ditto.
9722         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
9723         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
9724         ("mmx_ashl<mode>3"): Ditto.
9725         ("mmx_lshrdi3"): Remove insn pattern.
9726         ("mmx_ashldi3"): Ditto.
9727         * config/i386/i386.c (classify_argument): Handle V1DImode.
9728         (function_arg_advance_32): Ditto.
9729         (function_arg_32): Ditto.
9730         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
9731         mmx_addv1di3 insn pattern.
9732         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
9733         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
9734         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
9735         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
9736         Remove definitions of built-in functions.
9737         (V1DI_type_node): New node.
9738         (v1di_ftype_v1di_int): Ditto.
9739         (v1di_ftype_v1di_v1di): Ditto.
9740         (v2si_ftype_v2si_si): Ditto.
9741         (v4hi_ftype_v4hi_di): Remove node.
9742         (v2si_ftype_v2si_di): Ditto.
9743         (ix86_init_mmx_sse_builtins): Handle V1DImode.
9744         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
9745         Redefine builtins using def_builtin_const with *_ftype_*_int node.
9746         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
9747         Add new builtins using def_builtin_const.
9748         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
9749         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
9750         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
9751         * config/i386/mmintrin.h (__v1di): New typedef.
9752         (_mm_add_si64): Cast arguments to __v1di type.
9753         (_mm_sub_si64): Ditto.
9754         (_mm_sll_pi16): Cast __count to __v4hi type.
9755         (_mm_sll_pi32): Cast __count to __v2si type.
9756         (_mm_sll_si64): Cast arguments to __v1di type.
9757         (_mm_srl_pi16): Cast __count to __v4hi type.
9758         (_mm_srl_pi32): Cast __count to __v2si type.
9759         (_mm_srl_si64): Cast arguments to __v1di type.
9760         (_mm_sra_pi16): Cast __count to __v4hi type.
9761         (_mm_sra_pi32): Cast __count to __v2si type.
9762         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
9763         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
9764         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
9765         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
9766         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
9767         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
9768         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
9769         (_mm_srai_pi32): Use __builtin_ia32_psradi.
9770         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
9771         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9772         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9773         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
9774
9775 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
9776
9777         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
9778
9779 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
9780
9781         PR target/35373
9782         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
9783         reg+const addressing for Altivec modes.  Don't generate reg+reg
9784         addressing for TFmode or TDmode quantities.
9785
9786 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
9787
9788         * c-common.c (vector_types_convertible_p): Call langhook
9789         instead of comptypes.
9790
9791 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9792
9793         PR tree-opt/35402
9794         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
9795         integral and scalar float variables which have a
9796         NULL DECL_INITIAL.
9797
9798 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
9799
9800         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
9801         dwarf_register_span hook when emitting unwind information for
9802         register-to-memory saves.
9803         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
9804         (rs6000_frame_related): Remove call to spe_synthesize_frame.
9805
9806 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
9807
9808         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
9809         for the same VAR_DECL.
9810
9811 2008-03-06  Tom Tromey  <tromey@redhat.com>
9812
9813         * treelang: Delete.
9814         * doc/standards.texi (Standards): Don't mention treelang.
9815         * doc/invoke.texi (Overall Options): Don't mention treelang.
9816         * doc/install.texi (Prerequisites): Don't mention bison or
9817         treelang.
9818         (Configuration): Don't mention treelang.
9819         (Building): Likewise.
9820         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
9821
9822 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
9823
9824         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
9825         word-extractions out of a multi-word object.
9826
9827 2008-03-06  Richard Guenther  <rguenther@suse.de>
9828
9829         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
9830         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
9831         result type and precision.
9832         * expr.c (get_inner_reference): Set unsignedp based on the result
9833         type of BIT_FIELD_REF.
9834         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
9835         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
9836         (try_instantiate_multiple_fields): Likewise.  Use the correct type
9837         for BIT_FIELD_REF.
9838         (sra_build_assignment): Likewise.
9839         (sra_build_elt_assignment): Likewise.
9840         (sra_explode_bitfield_assignment): Likewise.
9841         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
9842         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
9843         set BIT_FIELD_REF_UNSIGNED.
9844         (vectorizable_load): Likewise.
9845
9846 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
9847
9848         * cse.c (cse_extended_basic_block): Invalidate artificial defs
9849         at bb start.
9850
9851 2008-03-06  Richard Guenther  <rguenther@suse.de>
9852
9853         * alias.c (struct alias_set_entry): Move has_zero_child field
9854         to pack with alias_set.
9855
9856 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
9857
9858         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9859         32bit host.
9860
9861 2008-03-05  Ian Lance Taylor  <iant@google.com>
9862
9863         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
9864
9865 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
9866
9867         * fwprop.c (update_df): Support width and offset parameters of
9868         df_ref_create.
9869         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
9870         global_conflicts): Change DF_REF_EXTRACT to either
9871         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9872         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9873         * df-scan.c (df_ref_record, df_defs_record,
9874         df_ref_create_structure, df_def_record_1, df_uses_record,
9875         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
9876         df_bb_refs_collect, df_entry_block_defs_collect,
9877         df_exit_block_uses_collect): Support new width and offset fields.
9878         (ref_extract_pool): New storage pool.
9879         (df_free_ref): New function.
9880         (df_reg_chain_unlink, df_free_collection_rec,
9881         df_sort_and_compress_refs): Call df_free_ref.
9882         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
9883         of df_ref_extract.
9884         (df_ref_create_structure): Allocate df_ref_extract if offset and
9885         width fields are used.
9886         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
9887         (df_uses_record): Get offset and width from ZERO_EXTRACT 
9888         and SIGN_EXTRACT.
9889         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
9890         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9891         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9892         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
9893         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9894         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9895         (df_ref_extract): New structure.
9896         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
9897         (df_ref_create): Add width and offset parameters.
9898         
9899 2008-03-05  Richard Guenther  <rguenther@suse.de>
9900
9901         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9902         Use ranges_overlap_p.
9903         (offset_overlaps_with_access): Rename
9904         to ranges_overlap_p and move ...
9905         * tree-flow-inline.h (ranges_overlap_p): ... here.
9906
9907         * tree.h (get_inner_reference, handled_component_p): Update
9908         comments.
9909
9910         * tree.h (record_component_aliases, get_alias_set,
9911         alias_sets_conflict_p, alias_sets_must_conflict_p,
9912         objects_must_conflict_p): Move declarations ...
9913         * alias.h (record_component_aliases, get_alias_set,
9914         alias_sets_conflict_p, alias_sets_must_conflict_p,
9915         objects_must_conflict_p): ... here.
9916         Include coretypes.h.
9917         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
9918
9919 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
9920
9921         * cfg.c: Include tree-flow.h.
9922         (remove_edge_raw): Call redirect_edge_var_map_clear.
9923         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
9924         * tree-flow-inline.h (redirect_edge_var_map_def): New.
9925         (redirect_edge_var_map_result): New.
9926         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
9927         PENDING_STMT use with redirect_edge_var_map_*.
9928         * tree-ssa.c (edge_var_maps): New definition.
9929         (redirect_edge_var_map_add): New.
9930         (redirect_edge_var_map_clear): New.
9931         (redirect_edge_var_map_dup): New.
9932         (redirect_edge_var_map_vector): New.
9933         (redirect_edge_var_map_destroy): New.
9934         (ssa_redirect_edge): Replace PENDING_STMT use with
9935         redirect_edge_var_map_*.
9936         (flush_pending_stmts): Same.
9937         (delete_tree_ssa): Destroy edge var map.
9938         * tree-flow.h (struct _edge_var_map): New.
9939         Define edge_var_map vector type.
9940         Declare redirect_edge_var_map_* prototypes.
9941         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
9942         * tree-cfg.c (reinstall_phi_args): Replace
9943         PENDING_STMT use with redirect_edge_var_map_*.
9944
9945 2008-03-05  Richard Guenther  <rguenther@suse.de>
9946
9947         PR tree-optimization/35472
9948         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
9949         whose single use_stmt has a overlapping set of loaded and
9950         stored symbols as that use_stmt might be a noop assignment then.
9951
9952 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
9953
9954         * gthr-rtems.h: Implement __gthread_mutex_destroy.
9955
9956 2008-03-05  Richard Guenther  <rguenther@suse.de>
9957
9958         PR c++/35336
9959         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
9960         should be constants.
9961         * tree-cfg.c (verify_expr): Verify it.
9962         * fold-const.c (fold_truthop): Remove code generating
9963         BIT_FIELD_REFs of structure bases.
9964         (fold_binary): Likewise.
9965         (fold_ternary): Position and size of BIT_FIELD_REFs are
9966         always host integers.
9967         (make_bit_field_ref): Remove.
9968         (optimize_bit_field_compare): Remove.
9969         (all_ones_mask_p): Remove.
9970
9971 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
9972
9973         PR gcc/33009
9974         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
9975         (split_block_and_df_analyze): New. Split basic block and rebuild
9976         dataflow.
9977         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
9978         SPLIT_BLOCK.
9979         (split_pattern_seq): Likewise.
9980         (erase_matching_seqs): Likewise.
9981         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
9982
9983 2008-03-04  Geoff Keating  <geoffk@apple.com>
9984
9985         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
9986         declaration and code.
9987         (tree_invalid_nonnegative_warnv_p): Likewise.
9988
9989 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
9990
9991         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
9992         examples.  Truncate option-names then causing overfull hbox.
9993
9994 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9995
9996         PR target/35222
9997         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
9998         on hpux10.
9999         * configure: Rebuilt.
10000
10001 2008-03-04  Rafael Espindola  <espindola@google.com>
10002
10003         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
10004         (tree_unary_nonnegative_warnv_p): New.
10005         (tree_binary_nonnegative_warnv_p): New.
10006         (tree_single_nonnegative_warnv_p): New.
10007         (tree_invalid_nonnegative_warnv_p): New.
10008         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
10009
10010 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10011
10012         PR 28322
10013         * opts.c (handle_option): Postpone 'unknown option' errors only for
10014         warning options.
10015
10016 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
10017
10018         PR target/35453
10019         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
10020         (_SIDD_XXX): This.
10021
10022 2008-03-04  Rafael Espindola  <espindola@google.com>
10023
10024         * fold-const.c (tree_unary_nonzero_warnv_p): New.
10025         (tree_binary_nonzero_warnv_p): New.
10026         (tree_single_nonzero_warnv_p): New.
10027         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
10028
10029 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
10030
10031         PR middle-end/35456
10032         * fold-const.c (fold_cond_expr_with_comparison): Prevent
10033         transformations for modes that have signed zeros.
10034         * ifcvt.c (noce_try_abs): Ditto.
10035
10036 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
10037
10038         * config/i386/i386.c (override_options): Force
10039         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
10040
10041 2008-03-04  Jan Hubicka  <jh@suse.cz>
10042
10043         PR c++/35262
10044         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
10045         in last commit.
10046
10047 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10048
10049         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
10050         label to probe the stack.
10051
10052 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10053
10054         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
10055         (__gthr_win32_mutex_destroy): Declare.
10056         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
10057         __gthr_win32_mutex_destroy.
10058         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
10059
10060 2008-03-03  Jan Hubicka  <jh@suse.cz>
10061
10062         PR c++/35262
10063         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
10064         aggressive on inlining cold calls.
10065
10066 2008-03-03  Richard Guenther  <rguenther@suse.de>
10067
10068         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
10069         struct copies into the expression table.
10070         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
10071         (try_to_simplify): Likewise.
10072         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
10073         integral and pointer arguments which do not change the
10074         precision to NOP_EXPRs.
10075         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
10076         VIEW_CONVERT_EXPR case.
10077
10078 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
10079
10080         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
10081         defined in a loop at depth 0 is invariant.
10082         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
10083         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
10084         be called at loop depth 0.
10085
10086 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
10087
10088         PR driver/35420
10089         * gcc.c (process_command): Update copyright notice dates.
10090         * gcov.c (print_version): Likewise.
10091         * gcov-dump.c (print_version): Likewise.
10092         * mips-tfile.c (main): Likewise.
10093         * mips-tdump.c (main): Likewise.
10094
10095 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10096
10097         PR 24924
10098         * c-common.c (flag_permissive): Delete.
10099         (constant_expression_warnings): Check flags first.
10100         (constant_expression_error): New.
10101         * c-common.h (flag_permissive): Delete.
10102         (constant_expression_error): Declare.
10103         * flags.h (flag_permissive): Declare. Update description.
10104         * diagnostic.c (pedwarn): Update.
10105         (permerror): New.
10106         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
10107         (permissive_error_kind): New.
10108         * toplev.c (flag_permissive): Define. Update description.
10109         * toplev.h (permissive_error_kind): Declare.
10110         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
10111         (pedwarn_c90): Use pedantic_warning_kind.
10112         * c-opts.c (c_common_post_options): flag_permissive does not affect
10113         flag_pedantic_errors.
10114
10115 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
10116
10117         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
10118         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
10119         __absvsi2, __absvDI2): Use unsigned arithmetic.
10120
10121 2008-03-02  Andi Kleen  <ak@suse.de>
10122             Richard Guenther  <rguenther@suse.de>
10123
10124         * struct-equiv.c: Remove file.
10125         * cfg_cleanup.c (condjump_equiv_p): Remove.
10126         * Makefile.in (OBJS-common): Remove struct-equiv.o.
10127         (struct-equiv.o): Remove rule.
10128         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
10129         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
10130         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
10131
10132 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10133
10134         * ifcvt.c (noce_process_if_block): Try to handle only the then
10135         block if the else block exists but isn't suitable.
10136
10137 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
10138
10139         PR gcc/35063
10140         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
10141         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
10142         regression from previous patch.
10143
10144 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
10145
10146         PR gcc/35063
10147         * gthr.h: Add __gthread_mutex_destroy as a function that must be
10148         implemented.
10149         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
10150         * gthr-single.h (__gthread_mutex_destroy): Likewise.
10151         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
10152         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
10153         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
10154         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
10155         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
10156         (__gthread_mutex_destroy_function): Rename to
10157         __gthread_mutex_destroy.
10158         * gthr-dce.h (__gthread_mutex_destroy): Call
10159         pthread_mutex_destroy.
10160         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
10161         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
10162         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
10163
10164 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10165
10166         * df-scan.c (df_ref_chain_change_bb): Simplify.
10167         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
10168         set_block_for_insn if there's any change.
10169         * df.h ((df_insn_change_bb): Fix prototype.
10170         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
10171         df_insn_change_bb, don't call set_block_for_insn.
10172         * emit-rtl.c (reorder_insns): Likewise.
10173         * haifa-sched.c (move_insn): Likewise.
10174
10175 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10176
10177         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
10178
10179 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10180
10181         * tree-flow-inline.h (next_readonly_imm_use): Return
10182         NULL_USE_OPERAND_P after the end.
10183
10184 2008-03-01  Richard Guenther  <rguenther@suse.de>
10185
10186         PR tree-optimization/35411
10187         * tree-sra.c (sra_build_assignment): Split conversion to
10188         final type to a separate statement if we are not assigning
10189         to a register.
10190
10191 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10192
10193         * fold-const.c (fold_convertible_p): Correct the logic to follow
10194         that in fold_convert().
10195
10196 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
10197
10198         PR c++/35315
10199         * tree-inline.c (build_duplicate_type): When we make a
10200         duplicate type, make it unique in the canonical types system.
10201
10202 2008-02-29  Tom Tromey  <tromey@redhat.com>
10203
10204         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
10205         input_file_stack_history, input_file_stack_restored): Remove.
10206         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10207         * input.h (struct file_stack): Remove.
10208         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10209         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
10210         Likewise.
10211         * diagnostic.h (struct diagnostic_context) <last_module>: Change
10212         type.
10213         (diagnostic_last_module_changed): Add 'map' argument.
10214         (diagnostic_set_last_function): Likewise.
10215         * diagnostic.c (undiagnostic_report_current_module): Iterate using
10216         line map, not input_file_stack.
10217         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
10218
10219 2008-02-29  Paul Brook  <paul@codesourcery.com>
10220
10221         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
10222
10223 2008-02-29  Paul Brook  <paul@codesourcery.com>
10224
10225         * config/arm/ieee754-df.S (muldf3): Use RET macros.
10226
10227 2008-02-29  Richard Guenther  <rguenther@suse.de>
10228
10229         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
10230         vn_lookup_or_add.
10231         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
10232         value for comparing for a store match.
10233         (simplify_unary_expression): Do nothing for SSA_NAMEs.
10234         (try_to_simplify): Do not do a full-blown reference lookup.
10235
10236 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10237
10238         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
10239         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
10240
10241         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
10242
10243 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
10244
10245         * tree-loop-linear.c (try_interchange_loops): Compare memory access
10246         strides against cache sizes.
10247
10248 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10249
10250         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
10251         constant to fpul.
10252
10253 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
10254
10255         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
10256         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
10257         is smaller than the original promoted value.
10258         (simplify_subreg): If OP is a SUBREG, try to preserve its
10259         SUBREG_PROMOTED_VAR_P information.
10260
10261 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
10262
10263         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
10264         (VN_INFO_GET): Allocate new objects on the obstack.
10265         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
10266         for rpo_numbers_temp, for consistency.
10267         (free_scc_vn): Free the obstack.
10268
10269 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
10270
10271         * doc/invoke.texi: Document -ftree-loop-distribution.
10272         * tree-loop-distribution.c: New.
10273         * tree-pass.h (pass_loop_distribution): New.
10274         * graphds.h (struct graph): Add htab_t indices.
10275         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
10276         * tree-vectorizer.c (rename_variables_in_loop): Extern.
10277         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
10278         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
10279         * tree-data-ref.c (debug_data_dependence_relations): New.
10280         (dump_data_dependence_relation): Also print data references.
10281         (free_data_ref): Extern.
10282         (same_access_functions): Moved...
10283         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
10284         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10285         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
10286         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
10287         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
10288         (stmts_from_loop): Skip LABEL_EXPR.
10289         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
10290         New.
10291         (build_rdg): Initialize rdg->indices htab.
10292         (free_rdg, stores_from_loop, ref_base_address,
10293         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
10294         have_similar_memory_accesses_1, ref_base_address_1,
10295         remove_similar_memory_refs): New.
10296         * tree-data-ref.h: Depend on tree-chrec.h.
10297         (debug_data_dependence_relations, free_data_ref): Declared.
10298         (same_access_functions): ... here.
10299         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
10300         New.
10301         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
10302         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
10303         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
10304         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10305         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
10306         rdg_vertex_for_stmt): Declared.
10307         (struct rdg_edge): Add level.
10308         (RDGE_LEVEL): New.
10309         (free_rdg, stores_from_loop, remove_similar_memory_refs,
10310         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
10311         Declared.
10312         (rdg_has_similar_memory_accesses): New.
10313         * tree-vect-analyze.c: Remove unused static decls.
10314         * lambda.h (dependence_level): New.
10315         * common.opt (ftree-loop-distribution): New.
10316         * tree-flow.h (mark_virtual_ops_in_bb, 
10317         slpeel_tree_duplicate_loop_to_edge_cfg,
10318         rename_variables_in_loop): Declared.
10319         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
10320         (OBJS-common): Add tree-loop-distribution.o.
10321         (tree-loop-distribution.o): New rule.
10322         * tree-cfg.c (mark_virtual_ops_in_bb): New.
10323         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
10324         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
10325
10326 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
10327
10328         PR target/33963
10329         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
10330         other than structures and unions.
10331
10332 2008-02-28  Richard Guenther  <rguenther@suse.de>
10333
10334         Revert:
10335         2008-02-26  Richard Guenther  <rguenther@suse.de>
10336
10337         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10338         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10339         (lookup_decl_from_uid): Declare.
10340         (remove_decl_from_map): Likewise.
10341         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10342         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10343         (decl_for_uid_map): New global hashtable mapping DECL_UID
10344         to the decl tree.
10345         (init_ttree): Allocate it.
10346         (insert_decl_to_uid_decl_map): New helper function.
10347         (make_node_stat): Insert new decls into the map.
10348         (copy_node_stat): Likewise.
10349         (lookup_decl_from_uid): New function.
10350         (remove_decl_from_map): Likewise.
10351         (print_decl_for_uid_map_statistics): New helper.
10352         (dump_tree_statistics): Call it.
10353
10354         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10355         (referenced_var_iterator): Adjust.
10356         (FOR_EACH_REFERENCED_VAR): Adjust.
10357         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10358         (num_referenced_vars): Adjust.
10359         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10360         (first_referenced_var): Remove.
10361         (end_referenced_vars_p): Likewise.
10362         (next_referenced_var): Likewise.
10363         (referenced_var_iterator_set): New helper function.
10364         * tree-dfa.c (referenced_var_lookup): Adjust.
10365         (referenced_var_check_and_insert): Likewise.
10366         (remove_referenced_var): Likewise.
10367         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10368         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10369         (verify_call_clobbering): Likewise.
10370         (verify_memory_partitions): Likewise.
10371         (init_tree_ssa): Allocate bitmap instead of hashtable for
10372         referenced_vars.
10373         (delete_tree_ssa): Adjust.
10374         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10375         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10376         (compute_tag_properties): Likewise.
10377         (set_initial_properties): Likewise.
10378         (find_partition_for): Likewise.
10379         (update_reference_counts): Likewise.
10380         (dump_may_aliases_for): Likewise.
10381         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10382         (add_call_clobber_ops): Likewise.
10383         (add_call_read_ops): Likewise.
10384         (get_asm_expr_operands): Likewise.
10385         * tree-into-ssa.c (dump_decl_set): Likewise.
10386         (update_ssa): Likewise.
10387         * tree-sra.c (scan_function): Likewise.
10388         (decide_instantiations): Likewise.
10389         (scalarize_parms): Likewise.
10390         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10391         (dsa_named_for): Likewise.
10392         * tree-ssa-structalias.c (update_alias_info): Likewise.
10393         (merge_smts_into): Likewise.
10394
10395 2008-02-27  David Daney  <ddaney@avtrex.com>
10396
10397         PR target/34409
10398         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
10399         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
10400         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
10401         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
10402         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
10403
10404 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
10405
10406         PR target/25477
10407         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
10408         (BUILT_IN_NEXTTOWARD): Remove.
10409         (BUILT_IN_NEXTTOWARDF): Ditto.
10410         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
10411         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
10412
10413 2008-02-27  Tom Tromey  <tromey@redhat.com>
10414
10415         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
10416         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
10417
10418 2008-02-27  Jan Beulich  <jbeulich@novell.com>
10419
10420         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
10421         update the respective field on newdecl.
10422
10423 2008-02-27  Revital Eres  <eres@il.ibm.com>
10424
10425         PR rtl-optimization/34999
10426         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
10427         crossing edges that ends with a call insn.
10428         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
10429         call insn and clear the EDGE_CROSSING flag of the crossing edge
10430         when fixing fallthru edges.
10431
10432 2008-02-27  Richard Guenther  <rguenther@suse.de>
10433
10434         PR middle-end/35390
10435         * fold-const.c (fold_unary): Return the correct argument,
10436         converted to the result type.
10437
10438 2008-02-27  Richard Guenther  <rguenther@suse.de>
10439
10440         PR middle-end/34971
10441         * expr.c (expand_expr_real_1): Assert on rotates that operate
10442         on partial modes.
10443         * fold-const.c (fold_binary): Use the types precision, not the
10444         bitsize of the mode if folding rotate expressions.  Build rotates
10445         only for full modes.
10446
10447 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
10448
10449         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
10450         and CPP_PRAGMA_EOL.
10451         * c-pragma.c (pragma_ns_name): New typedef.
10452         (registered_pp_pragmas): New variable.
10453         (c_pp_lookup_pragma): New function.
10454         (c_register_pragma_1): If flag_preprocess_only, do nothing
10455         for non-expanded pragmas, for expanded ones push pragma's
10456         namespace and name into registered_pp_pragmas vector.
10457         (c_invoke_pragma_handler): Register OpenMP pragmas even when
10458         flag_preprocess_only, don't register GCC pch_preprocess
10459         pragma if flag_preprocess_only.
10460         * c-opts.c (c_common_init): Call init_pragma even if
10461         flag_preprocess_only.
10462         * c-pragma.c (c_pp_lookup_pragma): New prototype.
10463         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
10464         cpp_register_pragma if flag_preprocess_only.
10465
10466 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10467
10468         PR c/28800
10469         * c-parser.c (c_parser_translation_unit): Warn for empty
10470         translation unit, not empty source file.
10471
10472 2008-02-26  Paul Brook  <paul@codesourcery.com>
10473
10474         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
10475         operand for Thumb-2.
10476         * config/arm/arm.h (reg_class): Add CORE_REGS.
10477         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
10478         (BASE_REG_CLASS): Use CORE_REGS.
10479         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
10480         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
10481         (REGNO_OK_FOR_INDEX_P): Exclude SP.
10482         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
10483         ARM_REGNO_OK_FOR_INDEX_P.
10484         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
10485         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
10486         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
10487         (ldm/stm peepholes): Ditto.
10488         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
10489         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
10490         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
10491         * config/arm/constraints.md: Enable "k" constraint on ARM.
10492
10493 2008-02-27  Ben Elliston  <bje@au.ibm.com>
10494
10495         * config/rs6000/rs6000.c: Annotate cache line size field in all
10496         instances of struct processor_costs.
10497
10498 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
10499
10500         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
10501         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
10502         jump_bypass): New counters.
10503         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
10504         * dce.c (gate_ud_dce): Same.
10505         (gate_fast_dce): Same.
10506         * dse.c (gate_dse1): New function.
10507         (gate_dse2): New function.
10508         (gate_dse): Merge results of new gate functions.
10509         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
10510         (gate_handle_jump_bypass): Add dbg_cnt.
10511         (gate_handle_gcse): Add dbg_cnt.
10512         * ifcvt.c (gate_handle_if_conversion): Same.
10513         (gate_handle_if_after_combine): Same.
10514         (gate_handle_if_after_reload): Same.
10515         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
10516
10517 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
10518
10519         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
10520         line sizes.
10521         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
10522
10523 2008-02-26  Jason Merrill  <jason@redhat.com>
10524
10525         PR c++/35315
10526         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
10527         alone if it's the naming decl for the type's main variant.
10528
10529 2008-02-26  Tom Tromey  <tromey@redhat.com>
10530
10531         * system.h (USE_MAPPED_LOCATION): Poison.
10532         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
10533         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
10534         (make_goto_expr_edges): Likewise.
10535         (remove_bb): Likewise.
10536         (execute_warn_function_return): Likewise.
10537         * basic-block.h (struct edge_def) <goto_locus>: Change type to
10538         location_t.
10539         * c-common.c (fname_decl): Remove old location code.
10540         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
10541         location code.
10542         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
10543         variant.
10544         (ASM_INPUT_SOURCE_LOCATION): Likewise.
10545         (gen_rtx_ASM_INPUT): Likewise.
10546         (gen_rtx_ASM_INPUT_loc): Likewise.
10547         (get_rtx_asm_OPERANDS): Remove.
10548         * cfglayout.c (insn_locators_alloc): Remove old location code.
10549         (set_curr_insn_source_location): Likewise.
10550         (curr_insn_locator): Likewise.
10551         * print-tree.c (print_node): Remove old location code.
10552         * tree-mudflap.c (mf_varname_tree): Remove old location code.
10553         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
10554         * cfgexpand.c (expand_gimple_cond_expr): Don't use
10555         location_from_locus.
10556         (construct_exit_block): Remove old location code.
10557         * emit-rtl.c (force_next_line_note): Remove old location code.
10558         * profile.c (branch_prob): Remove old location code.
10559         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
10560         LOC_LINE): Remove old-location variants.
10561         * langhooks.c (lhd_print_error_function): Remove old location
10562         code.
10563         * configure, config.in: Rebuilt.
10564         * configure.ac (--enable-mapped-location): Remove.
10565         * c-decl.c (c_init_decl_processing): Remove old location code.
10566         (finish_function): Likewise.
10567         * recog.c (decode_asm_operands): Remove old location code.
10568         * c-pch.c (c_common_read_pch): Remove old location code.
10569         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
10570         variants.
10571         * gimple-low.c (lower_function_body): Remove old location code.
10572         * toplev.c (unknown_location): Remove.
10573         (push_srcloc): Remove old-location variant.
10574         (process_options): Remove old location code.
10575         (lang_dependent_init): Likewise.
10576         * input.h (UNKNOWN_LOCATION): Move definition.
10577         (location_t): Undeprecate.
10578         (source_locus): Remove.
10579         (location_from_locus): Remove.
10580         (struct location_s): Remove.
10581         Remove all old-location code.
10582         (input_line, input_filename): Remove.
10583         * final.c (final_scan_insn): Remove old location code.
10584         * diagnostic.c (diagnostic_build_prefix): Remove
10585         USE_MAPPED_LOCATION test.
10586         * tree.h (gimple_stmt) <locus>: Now a location_t.
10587         (tree_exp) <locus>: Likewise.
10588         (DECL_IS_BUILTIN): Remove old-location variant.
10589         (annotate_with_file_line, annotate_with_locus): Likewise.
10590         (expr_locus, set_expr_locus): Update.
10591         * tree.c (build1_stat): Remove old location code.
10592         (last_annotated_node): Remove.
10593         (annotate_with_file_line): Remove old-location variant.
10594         (annotate_with_locus): Likewise.
10595         (expr_location): Remove old location code.
10596         (set_expr_location): Likewise.
10597         (expr_has_location): Likewise.
10598         (expr_locus): Likewise.
10599         (set_expr_locus): Likewise.
10600         (expr_filename): Don't use location_from_locus.
10601         (expr_lineno): Likewise.
10602         * rtl-error.c (location_for_asm): Remove old location code.
10603         * c-lex.c (cb_line_change): Remove old location code.
10604         (fe_file_change): Likewise.
10605         (cb_def_pragma): Likewise.
10606         (c_lex_with_flags): Likewise.
10607         * gengtype.c (do_typedef): Don't special-case location types.
10608         (define_location_structures): Remove.
10609         (main): Don't call define_location_structures.
10610         * tree-pretty-print.c (dump_implicit_edges): Remove old location
10611         code.
10612
10613 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10614
10615         PR 26264
10616         * builtins.def (BUILT_IN_STDARG_START): Remove.
10617         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
10618         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10619         * tree-inline.c (inline_forbidden_p_1): Likewise.
10620         
10621 2008-02-26  Richard Guenther  <rguenther@suse.de>
10622
10623         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10624         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10625         (lookup_decl_from_uid): Declare.
10626         (remove_decl_from_map): Likewise.
10627         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10628         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10629         (decl_for_uid_map): New global hashtable mapping DECL_UID
10630         to the decl tree.
10631         (init_ttree): Allocate it.
10632         (insert_decl_to_uid_decl_map): New helper function.
10633         (make_node_stat): Insert new decls into the map.
10634         (copy_node_stat): Likewise.
10635         (lookup_decl_from_uid): New function.
10636         (remove_decl_from_map): Likewise.
10637         (print_decl_for_uid_map_statistics): New helper.
10638         (dump_tree_statistics): Call it.
10639
10640         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10641         (referenced_var_iterator): Adjust.
10642         (FOR_EACH_REFERENCED_VAR): Adjust.
10643         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10644         (num_referenced_vars): Adjust.
10645         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10646         (first_referenced_var): Remove.
10647         (end_referenced_vars_p): Likewise.
10648         (next_referenced_var): Likewise.
10649         (referenced_var_iterator_set): New helper function.
10650         * tree-dfa.c (referenced_var_lookup): Adjust.
10651         (referenced_var_check_and_insert): Likewise.
10652         (remove_referenced_var): Likewise.
10653         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10654         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10655         (verify_call_clobbering): Likewise.
10656         (verify_memory_partitions): Likewise.
10657         (init_tree_ssa): Allocate bitmap instead of hashtable for
10658         referenced_vars.
10659         (delete_tree_ssa): Adjust.
10660         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10661         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10662         (compute_tag_properties): Likewise.
10663         (set_initial_properties): Likewise.
10664         (find_partition_for): Likewise.
10665         (update_reference_counts): Likewise.
10666         (dump_may_aliases_for): Likewise.
10667         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10668         (add_call_clobber_ops): Likewise.
10669         (add_call_read_ops): Likewise.
10670         (get_asm_expr_operands): Likewise.
10671         * tree-into-ssa.c (dump_decl_set): Likewise.
10672         (update_ssa): Likewise.
10673         * tree-sra.c (scan_function): Likewise.
10674         (decide_instantiations): Likewise.
10675         (scalarize_parms): Likewise.
10676         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10677         (dsa_named_for): Likewise.
10678         * tree-ssa-structalias.c (update_alias_info): Likewise.
10679         (merge_smts_into): Likewise.
10680
10681 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10682
10683         PR 34351
10684         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
10685         * c-opts.c (c_common_handle_option): Wall enables
10686         Wvolatile-register-var.
10687         * common.opt: Move Wvolatile-register-var to...
10688         * c.opt: ...here.
10689         
10690 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10691
10692         * common.opt (Wlarger-than=): New.
10693         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
10694         -Wlarger-than=.
10695         * opts.c (common_handle_option): Handle -Wlarger-than=.
10696         * optc-gen.awk: Likewise.
10697         * opth-gen.awk: Likewise.
10698         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
10699         * tree-optimize.c (tree_rest_of_compilation): Likewise.
10700         
10701 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10702
10703         * c-common.c (match_case_to_enum_1): Add appropriate
10704         OPT_W* parameter to warning.
10705         (c_do_switch_warnings): Likewise.
10706         * c-typeck.c (warning_init): Add one more parameter following
10707         'warning' function.
10708         (push_init_level): Update call to warning_init.
10709         (pop_init_level): Likewise.
10710         (add_pending_init): Likewise.
10711         (output_init_element: Likewise.
10712
10713 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10714
10715         PR 28322
10716         * toplev.c (toplev_main): If there are warnings or error, print
10717         errors for ignored options.
10718         * opts.c (ignored_options): New static variable.
10719         (postpone_unknown_option_error): New.
10720         (print_ignored_options): New.
10721         (handle_option): Postpone errors for unknown -Wno-* options.
10722         * opts.h (print_ignored_options): Declare.
10723         
10724 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
10725
10726         * config/mips/mips.md (loadgp_blockage, blockage): Change type
10727         to "ghost".
10728
10729 2008-02-25  Richard Guenther  <rguenther@suse.de>
10730
10731         Revert:
10732         2008-02-25  Richard Guenther  <rguenther@suse.de>
10733
10734         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10735         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10736         (lookup_decl_from_uid): Declare.
10737         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10738         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10739         (decl_for_uid_map): New global hashtable mapping DECL_UID
10740         to the decl tree.
10741         (init_ttree): Allocate it.
10742         (insert_decl_to_uid_decl_map): New helper function.
10743         (make_node_stat): Insert new decls into the map.
10744         (copy_node_stat): Likewise.
10745         (lookup_decl_from_uid): New function.
10746         (print_decl_for_uid_map_statistics): New helper.
10747         (dump_tree_statistics): Call it.
10748
10749         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10750         (referenced_var_iterator): Adjust.
10751         (FOR_EACH_REFERENCED_VAR): Adjust.
10752         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10753         (num_referenced_vars): Adjust.
10754         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10755         (first_referenced_var): Remove.
10756         (end_referenced_vars_p): Likewise.
10757         (next_referenced_var): Likewise.
10758         (referenced_var_iterator_set): New helper function.
10759         * tree-dfa.c (referenced_var_lookup): Adjust.
10760         (referenced_var_check_and_insert): Likewise.
10761         (remove_referenced_var): Likewise.
10762         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10763         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10764         (verify_call_clobbering): Likewise.
10765         (verify_memory_partitions): Likewise.
10766         (init_tree_ssa): Allocate bitmap instead of hashtable for
10767         referenced_vars.
10768         (delete_tree_ssa): Adjust.
10769         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10770         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10771         (compute_tag_properties): Likewise.
10772         (set_initial_properties): Likewise.
10773         (find_partition_for): Likewise.
10774         (update_reference_counts): Likewise.
10775         (dump_may_aliases_for): Likewise.
10776         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10777         (add_call_clobber_ops): Likewise.
10778         (add_call_read_ops): Likewise.
10779         (get_asm_expr_operands): Likewise.
10780         * tree-into-ssa.c (dump_decl_set): Likewise.
10781         (update_ssa): Likewise.
10782         * tree-sra.c (scan_function): Likewise.
10783         (decide_instantiations): Likewise.
10784         (scalarize_parms): Likewise.
10785         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10786         (dsa_named_for): Likewise.
10787         * tree-ssa-structalias.c (update_alias_info): Likewise.
10788         (merge_smts_into): Likewise.
10789
10790 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
10791
10792         PR fortran/29549
10793         * doc/invoke.texi (-fcx-limited-range): Document new option.
10794         * toplev.c (process_options): Handle -fcx-fortran-rules.
10795         * common.opt: Add documentation for -fcx-fortran-rules.
10796
10797 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
10798
10799         PR c/35162
10800         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
10801         actual behaviour and C99.
10802         
10803 2008-02-26  Ben Elliston  <bje@au.ibm.com>
10804
10805         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
10806         (ASM_CPU_POWER6_SPEC): Likewise.
10807         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
10808         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
10809         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
10810
10811 2008-02-25  Richard Guenther  <rguenther@suse.de>
10812
10813         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10814         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10815         (lookup_decl_from_uid): Declare.
10816         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10817         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10818         (decl_for_uid_map): New global hashtable mapping DECL_UID
10819         to the decl tree.
10820         (init_ttree): Allocate it.
10821         (insert_decl_to_uid_decl_map): New helper function.
10822         (make_node_stat): Insert new decls into the map.
10823         (copy_node_stat): Likewise.
10824         (lookup_decl_from_uid): New function.
10825         (print_decl_for_uid_map_statistics): New helper.
10826         (dump_tree_statistics): Call it.
10827
10828         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10829         (referenced_var_iterator): Adjust.
10830         (FOR_EACH_REFERENCED_VAR): Adjust.
10831         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10832         (num_referenced_vars): Adjust.
10833         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10834         (first_referenced_var): Remove.
10835         (end_referenced_vars_p): Likewise.
10836         (next_referenced_var): Likewise.
10837         (referenced_var_iterator_set): New helper function.
10838         * tree-dfa.c (referenced_var_lookup): Adjust.
10839         (referenced_var_check_and_insert): Likewise.
10840         (remove_referenced_var): Likewise.
10841         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10842         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10843         (verify_call_clobbering): Likewise.
10844         (verify_memory_partitions): Likewise.
10845         (init_tree_ssa): Allocate bitmap instead of hashtable for
10846         referenced_vars.
10847         (delete_tree_ssa): Adjust.
10848         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10849         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10850         (compute_tag_properties): Likewise.
10851         (set_initial_properties): Likewise.
10852         (find_partition_for): Likewise.
10853         (update_reference_counts): Likewise.
10854         (dump_may_aliases_for): Likewise.
10855         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10856         (add_call_clobber_ops): Likewise.
10857         (add_call_read_ops): Likewise.
10858         (get_asm_expr_operands): Likewise.
10859         * tree-into-ssa.c (dump_decl_set): Likewise.
10860         (update_ssa): Likewise.
10861         * tree-sra.c (scan_function): Likewise.
10862         (decide_instantiations): Likewise.
10863         (scalarize_parms): Likewise.
10864         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10865         (dsa_named_for): Likewise.
10866         * tree-ssa-structalias.c (update_alias_info): Likewise.
10867         (merge_smts_into): Likewise.
10868
10869 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
10870
10871         PR target/35258
10872         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
10873         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
10874         * alias.h (nonoverlapping_memrefs_p): Likewise.
10875
10876 2008-02-25  Jan Beulich  <jbeulich@novell.com>
10877
10878         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
10879         * config/i386/netware-libgcc.exp: Add __bswap?i2,
10880         __emultls_get_address, __emultls_register_common,
10881         __floatundi?f, and _Unwind_GetIPInfo.
10882         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
10883         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
10884         (gen_regparm_prefix): Likewise.
10885         (i386_nlm_encode_section_info): Sync with
10886         config/i386/winnt.c:i386_pe_encode_section_info().
10887         (i386_nlm_maybe_mangle_decl_assembler_name): New.
10888         i386_nlm_mangle_decl_assembler_name): New.
10889         (netware_override_options): New.
10890         * config/i386/netware.h (netware_override_options): Declare.
10891         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
10892         (i386_nlm_mangle_decl_assembler_name): Declare.
10893         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
10894
10895 2008-02-25  Ben Elliston  <bje@au.ibm.com>
10896
10897         PR other/32948
10898         * c-decl.c (grokdeclarator): Remove unused local variables
10899         `typedef_type' and `type_as_written'.
10900         * bb-reorder.c
10901         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
10902         unused local variable `has_hot_blocks'.
10903         (fix_crossing_conditional_branches): Remove unused local variable
10904         `prev_bb'.
10905         
10906 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
10907
10908         PR middle-end/19984
10909         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
10910         using DEF_C99_BUILTIN.
10911         (BUILT_IN_NANF): Ditto.
10912         (BUILT_IN_NANL): Ditto.
10913
10914 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
10915             Revital Eres  <eres@il.ibm.com>
10916
10917         * modulo-sched.c (calculate_must_precede_follow): Address TODO
10918         regarding the order of two dependent insns in the same row.
10919
10920 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
10921
10922         * stor-layout.c (layout_decl): Do not bump the alignment of a
10923         bit-field to more than byte alignment if it is packed.
10924
10925 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
10926
10927         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
10928         e300c2 and e300c3.
10929
10930 2008-02-24  Diego Novillo  <dnovillo@google.com>
10931
10932         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
10933
10934         PR 33738
10935         * tree-vrp.c (vrp_evaluate_conditional): With
10936         -Wtype-limits, emit a warning when comparing against a
10937         constant outside the natural range of OP0's type.
10938         * c.opt (Wtype-limits): Move ...
10939         * common.opt (Wtype-limits): ... here.
10940
10941 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
10942
10943         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
10944         * config/rs6000/e300c2c3.md: New file.
10945         * config/rs6000/rs6000.c (processor_costs): Add new costs for
10946         e300c2 and e300c3.
10947         (rs6000_override_options): Add e300c2 and e300c3 cases to
10948         processor_target_table. Do not allow usage of Altivec or Spe
10949         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
10950         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
10951         * config/rs6000/rs6000.h (processor_type): Add
10952         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
10953         (ASM_CPU_SPEC): Add e300c2 and e300c3.
10954         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
10955         and ppce300c3. Include e300c2c3.md.
10956
10957 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
10958
10959         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
10960         instead of TARGET_STRICT_ALIGN.
10961
10962 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
10963
10964         * explow.c (memory_address): Assert that the generated address is
10965         valid.
10966
10967 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10968
10969         PR target/25477
10970         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
10971         * config/darwin-ppc-ldouble-patch.def: New file.
10972         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
10973         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
10974         SUBTARGET_INIT_BUILTINS if defined.
10975         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
10976         New functions.
10977
10978 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10979
10980         PR rtl-opt/33512
10981         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
10982         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
10983
10984 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10985
10986         PR pch/35027
10987         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
10988         file" warning condtional on -Winvalid-PCH.
10989
10990 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
10991
10992         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
10993
10994 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
10995
10996         PR target/22076
10997         PR target/34256 
10998         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
10999         prevent reload from using MMX registers.
11000         (*mov<mode>_internal): Ditto.
11001         (*movv2sf_internal_rex64): Ditto.
11002         (*movv2sf_internal): Ditto.
11003
11004 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11005
11006         PR documentation/31569
11007         * doc/install.texi2html: Use makeinfo --no-number-sections.
11008
11009 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11010
11011         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
11012         ensure that we can address an entire entity > 8 bytes.  Don't
11013         generate reg+reg addressing for such data.
11014
11015 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11016
11017         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
11018         strings when optimizing for size, unless the target cares about
11019         alignment.
11020
11021 2008-02-22  Tom Tromey  <tromey@redhat.com>
11022
11023         * regclass.c (current_pass): Remove declaration.
11024
11025 2008-02-22  Anatoly Sokolov <aesok@post.ru>
11026
11027         * config/avr/libgcc.S (__RAMPZ__): Define.
11028         (__do_copy_data): Add for devices with 128KB code memory.
11029
11030 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11031
11032         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
11033         Use spe_abi.
11034         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
11035
11036 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
11037
11038         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
11039         GENNONACR_REGS.
11040
11041 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11042
11043         PR c/19999
11044         * c-typeck.c (build_binary_op): Warn about floating point
11045         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
11046
11047 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
11048
11049         PR target/34526
11050         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
11051         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
11052         add vrsave.
11053         (rs6000_override_options): Set altivec_abi as default, not override,
11054         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
11055         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
11056         is used; use new member spe_abi.
11057         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
11058         spe_abi and altivec_abi.
11059
11060 2008-02-22  Tomas Bily  <tbily@suse.cz>
11061
11062         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
11063
11064 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11065
11066         PR bootstrap/35273
11067         * config.build (build_file_translate): Set to `CMD //c' only if
11068         it works.
11069         * Makefile.in (build_file_translate): Improve comment.
11070
11071 2008-02-21  Jan Hubicka  <jh@suse.cz>
11072
11073         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
11074         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
11075         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
11076
11077 2008-02-21  Michael Matz  <matz@suse.de>
11078
11079         PR target/35264
11080         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
11081
11082 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
11083
11084         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
11085         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
11086         as insn constraint.
11087         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
11088         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
11089         SSE_VEC_FLOAT_MODE_P as insn constraint.
11090         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
11091         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
11092         sse4a_movntdf using MODEF mode iterator.
11093         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
11094         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
11095         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
11096         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
11097         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
11098         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
11099         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
11100
11101 2008-02-21  Richard Guenther  <rguenther@suse.de>
11102
11103         * tree.def (PAREN_EXPR): New tree code.
11104         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
11105         and PAREN_EXPR.
11106         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
11107         * expr.c (expand_expr_real_1): Likewise.
11108         * tree-inline.c (estimate_num_insns_1): Likewise.
11109         * tree-complex.c (expand_complex_move): Likewise.
11110         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
11111         as plain x.
11112
11113 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11114
11115         PR target/35225
11116         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
11117
11118 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11119
11120         PR target/35190
11121         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
11122
11123         * config/sh/sh.c (find_barrier): Don't go past
11124         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
11125
11126 2008-02-20  DJ Delorie  <dj@redhat.com>
11127
11128         * config/h8300/h8300.md (insv): Force source operand to be a register.
11129
11130         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
11131         as a jump, not as a plain insn.
11132         
11133 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
11134
11135         * doc/invoke.texi (Warning Options): Add new option
11136         -Wframe-larger-than=.
11137         (-Wframe-larger-than): Document.
11138
11139         * flags.h (warn_frame_larger_than, frame_larger_than_size):
11140         Add declarations for new option variables.
11141
11142         * final.c (final_start_function): Check the frame size
11143         before emission and issue a Wframe-larger-than warning.
11144
11145         * opts.c (warn_frame_larger_than, frame_larger_than_size):
11146         Add definitions for new option variables.
11147         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
11148
11149         * common.opt (Wframe-larger-than=): New option.
11150
11151 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11152
11153         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
11154         (<sse>_div<mode>3): Ditto.
11155         (<sse>_vmdiv<mode>3): Ditto.
11156         (<sse>_vmsqrt<mode>2): Ditto.
11157         (*smax<mode>3): Ditto.
11158         (sse5_frcz<mode>2): Ditto.
11159         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
11160         as insn constraint.
11161
11162 2008-02-20  Richard Guenther  <rguenther@suse.de>
11163
11164         PR middle-end/35265
11165         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
11166         be happy with INTEGRAL_TYPE_P.
11167
11168 2008-02-20  Richard Guenther  <rguenther@suse.de>
11169
11170         * fold-const.c (split_tree): Associate floatig-point expressions
11171         if flag_associative_math is set.
11172
11173 2008-02-20  Richard Guenther  <rguenther@suse.de>
11174
11175         * tree.h (fold_real_zero_addition_p): Declare.
11176         * fold-const.c (fold_real_zero_addition_p): Export.
11177         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
11178         floating-point operations with zero and one.
11179
11180 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
11181
11182         * doc/install.texi: Correct references to CFLAGS, replacing them
11183         with BOOT_CFLAGS.  Document flags used during bootstrap for
11184         target libraries.
11185                                 
11186 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11187
11188         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
11189         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
11190         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
11191         insn constraint.
11192         (smin<mode>3): Ditto from similar patterns.
11193         (smax<mode>3): Ditto.
11194         (*ieee_smin<mode>3): Ditto.
11195         (*ieee_smax<mode>3): Ditto.
11196         * config/i386/sse.md (sse): New mode attribute.
11197         (mov<mode>): Macroize expander from movv4sf and movv2df using
11198         SSEMODEF2P mode iterator.
11199         (<sse>_movnt<mode>): Ditto from similar patterns. Use
11200         SSE_VEC_FLOAT_MODE_P as insn constraint.
11201         (storent<mode>): Ditto.
11202         (storent<mode>): Macroize expander from storentsf and storentdf using
11203         MODEF mode iterator.
11204         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
11205         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
11206         (abs<mode>2): Ditto from similar patterns.
11207         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
11208         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
11209         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
11210         (<sse>_vmsqrt<mode>2): Ditto.
11211         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
11212         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
11213         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
11214         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
11215         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
11216         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
11217         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
11218         insn constraint.
11219         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
11220         iterator and SSE_FLOAT_MODE_P as insn constraint.
11221         (<sse>_ucomi): Ditto from similar patterns.
11222         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
11223         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
11224         SSE_VEC_FLOAT_MODE_P as insn constraint.
11225         (vcond<mode>): Ditto from similar patterns.
11226         (and<mode>3, *and<mode>3): Ditto.
11227         (<sse>_nand<mode>3): Ditto.
11228         (ior<mode>3, *ior<mode>3): Ditto.
11229         (xor<mode>3, *xor<mode>3): Ditto.
11230         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
11231         iterator and SSE_FLOAT_MODE_P as insn constraint.
11232         (*nand<mode>3): Ditto from similar patterns.
11233         (*ior<mode>3): Ditto.
11234         (*xor<mode>3): Ditto.
11235
11236 2008-02-20  Ira Rosen  <irar@il.ibm.com>
11237
11238         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
11239         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
11240         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
11241
11242 2008-02-19  Jan Hubicka  <jh@suse.cz>
11243
11244         * predict.c (tree_bb_level_predictions): Remove variable next
11245         mistakely introduced by previous commit.
11246
11247 2008-02-19  Jan Hubicka  <jh@suse.cz>
11248
11249         * predict.c (predict_paths_leading_to): Rewrite.
11250         (predict_paths_for_bb): New.
11251         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
11252
11253 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11254
11255         PR bootstrap/35218
11256         * Makefile.in (build_file_translate): New.
11257         (gcc-vers.texi): Use it for translating $(abs_srcdir).
11258         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
11259         * configure.ac (build_file_translate): Substitute it.
11260         * configure: Regenerate.
11261
11262 2008-02-19  Jan Hubicka  <jh@suse.cz>
11263
11264         PR rtl-optimization/34408
11265         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
11266         invalid sharing.
11267
11268 2008-02-19  Jan Hubicka  <jh@suse.cz>
11269
11270         PR middle-end/28779
11271         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
11272         call_expr.
11273
11274 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
11275
11276         PR Ada/35186
11277         * config/i386/i386-modes.def: Revert the last DI alignment
11278         change until Ada people can look into it.
11279
11280 2008-02-19  Nick Clifton  <nickc@redhat.com>
11281
11282         * opts.c (print_specific_help): Fix typo in --help text.
11283
11284 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
11285
11286         PR target/35239
11287         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
11288         32-bit inline asm without asm alternatives for host GCC < 3.0.
11289
11290 2008-02-19  Richard Guenther  <rguenther@suse.de>
11291
11292         PR tree-optimization/34989
11293         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
11294         Allow propagation to INDIRECT_REF if we can simplify only.
11295
11296 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11297
11298         * c-common.c (warn_for_collisions_1): Use appropriate option when
11299         warning.
11300
11301 2008-02-19  Nick Clifton  <nickc@redhat.com>
11302
11303         PR other/31349
11304         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
11305         (handle_options): Fix indentation.
11306         (print_filtered_help): If no language-specific options were
11307         displayed tell the user how to list all the options supported by
11308         the language's front-end.
11309         (print_specific_help): Fix indentation and remove duplicate line.
11310         (common_handle_option): Handle the -v option.
11311         For --help enable the display of undocumented options if the -v
11312         switch has been included on the command line.
11313         For --help= check for overlaps in the arguments between the option
11314         classes and the language names and issue a warning when they
11315         cannot be disambiguated.
11316         * c.opt (v): Pass on to the common option handler.
11317
11318 2008-02-19  Revital Eres  <eres@il.ibm.com> 
11319
11320         * modulo-sched.c (sms_schedule): Change dump message when
11321         create_ddg function fails.
11322         (try_scheduling_node_in_cycle): Rename row to cycle.
11323         (print_partial_schedule): Rename CYCLE to ROW.
11324
11325 2008-02-19  Christian Bruel  <christian.bruel@st.com>
11326             Zdenek Dvorak  <ook@ucw.cz>
11327
11328         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
11329
11330 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11331
11332         PR target/33555
11333         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
11334         (*x86_movdicc_0_m1_se): Ditto.
11335
11336 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11337
11338         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
11339         (CMPtype): Define as __gcc_CMPtype.
11340         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
11341         (CMPtype): Define as __gcc_CMPtype.
11342
11343 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
11344
11345         Support valgrind 3.3 for --enable-checking=valgrind.
11346         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
11347         here.
11348         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
11349         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
11350         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
11351         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
11352         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
11353         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
11354         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
11355         respectively.
11356         * ggc-zone.c: Similar.
11357         * ggc-page.c: Similar.
11358
11359 2008-02-19  Paul Brook  <paul@codesourcery.com>
11360
11361         PR target/35071
11362         * config/arm/ieee754-df.S: Fix do_it typo.
11363         * config/arm/ieee754-sf.S: Fix do_it typo.
11364
11365 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11366
11367         PR target/35189
11368         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
11369         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
11370         (OPTION_MASK_ISA_SSE_SET): Likewise.
11371         (OPTION_MASK_ISA_SSE2_SET): Likewise.
11372         (OPTION_MASK_ISA_SSE3_SET): Likewise.
11373         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
11374         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
11375         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
11376         (OPTION_MASK_ISA_SSE4_SET): Likewise.
11377         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
11378         (OPTION_MASK_ISA_SSE5_SET): Likewise.
11379         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
11380         (OPTION_MASK_ISA_MMX_UNSET): Updated.
11381         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
11382         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
11383         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
11384         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
11385         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
11386         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
11387         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
11388         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
11389         (OPTION_MASK_ISA_SSE4): Removed.
11390         (ix86_handle_option): Turn on bits in ix86_isa_flags and
11391         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
11392         (override_options): Don't turn on implied SSE/MMX bits in
11393         ix86_isa_flags.
11394
11395 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11396
11397         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11398         32bit host.
11399
11400 2008-02-18  Joey Ye  <joey.ye@intel.com>
11401
11402         PR middle-end/34921
11403         * tree-nested.c (insert_field_into_struct): Set type alignment
11404         to field alignment if the former is less than the latter.
11405
11406 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
11407
11408         * BASE-VER: Set to 4.4.0.
11409
11410 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11411
11412         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
11413         * doc/cfg.texi: Likewise.
11414         * doc/extend.texi: Likewise.
11415         * doc/gty.texi: Likewise.
11416         * doc/invoke.texi: Likewise.
11417         * doc/loop.texi: Likewise.
11418         * doc/md.texi: Likewise.
11419         * doc/passes.texi: Likewise.
11420         * doc/rtl.texi: Likewise.
11421         * doc/sourcebuild.texi: Likewise.
11422         * doc/tm.texi: Likewise.
11423         * doc/tree-ssa.texi: Likewise.
11424
11425 2008-02-17  Richard Guenther  <rguenther@suse.de>
11426
11427         PR middle-end/35227
11428         * tree-complex.c (init_parameter_lattice_values): Handle parameters
11429         without default definition.
11430
11431 2008-02-17  Richard Guenther  <rguenther@suse.de>
11432
11433         PR tree-optimization/35231
11434         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
11435         if A | B != 1.
11436
11437 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
11438
11439         Revert:
11440         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
11441         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11442         libgcc_cmp_return mode.
11443
11444 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11445
11446         PR c/28368
11447         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
11448
11449 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
11450
11451         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
11452         multilibs.
11453
11454 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11455
11456         * doc/c-tree.texi: Use `@.' where appropriate.
11457         * doc/extend.texi: Likewise.
11458         * doc/install.texi: Likewise.
11459         * doc/invoke.texi: Likewise.
11460         * doc/loop.texi: Likewise.
11461         * doc/makefile.texi: Likewise.
11462         * doc/md.texi: Likewise.
11463         * doc/passes.texi: Likewise.
11464         * doc/standards.texi: Likewise.
11465         * doc/tm.texi: Likewise.
11466
11467 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11468
11469         PR middle-end/35196
11470         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
11471         in entry_bb.
11472         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
11473         rather than in entry_bb.
11474
11475 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11476
11477         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11478         libgcc_cmp_return mode.
11479
11480 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11481
11482         PR middle-end/35130
11483         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
11484         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
11485
11486 2008-02-15  Richard Guenther  <rguenther@suse.de>
11487             Zdenek Dvorak  <ook@ucw.cz>
11488
11489         PR tree-optimization/35164
11490         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
11491         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
11492         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
11493         Only propagate addresses which do not have abnormal SSA_NAMEs
11494         in their operands.
11495
11496 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
11497
11498         PR target/35088
11499         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
11500
11501 2008-02-15  Jan Hubicka  <jh@suse.cz>
11502
11503         PR middle-end/35149
11504         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
11505
11506 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11507
11508         PR middle-end/34621
11509         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
11510         when calculating alignment_pad.
11511
11512 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11513
11514         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
11515         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
11516         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
11517         and STACK_BOUNDARY define.
11518
11519 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
11520
11521         PR preprocessor/35061
11522         * c-pragma.c (handle_pragma_pop_macro): Check that
11523         pushed_macro_table has been allocated.
11524
11525 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11526
11527         PR middle-end/35136
11528         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
11529         (force_gimple_operand): Likewise.
11530         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
11531         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
11532         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
11533         (find_interesting_uses_address): Check addressability and alignment
11534         of the base expression only after substituting bases of IVs into it.
11535
11536 2008-02-14  Michael Matz  <matz@suse.de>
11537
11538         PR target/34930
11539         * function.c (instantiate_virtual_regs_in_insn): Reload address
11540         before falling back to reloading the whole operand.
11541
11542 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11543
11544         * config/s390/s390.c (s390_mainpool_start): Emit the pool
11545         before the first section switch note.
11546
11547 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11548
11549         * doc/bugreport.texi: Update copyright years.
11550         * doc/c-tree.texi: Likewise.
11551         * doc/cfg.texi: Likewise.
11552         * doc/cpp.texi: Likewise.
11553         * doc/cppinternals.texi: Likewise.
11554         * doc/fragments.texi: Likewise.
11555         * doc/frontends.texi: Likewise.
11556         * doc/gcc.texi: Likewise.
11557         * doc/gty.texi: Likewise.
11558         * doc/hostconfig.texi: Likewise.
11559         * doc/implement-c.texi: Likewise.
11560         * doc/libgcc.texi: Likewise.
11561         * doc/loop.texi: Likewise.
11562         * doc/makefile.texi: Likewise.
11563         * doc/options.texi: Likewise.
11564         * doc/passes.texi: Likewise.
11565         * doc/rtl.texi: Likewise.
11566         * doc/sourcebuild.texi: Likewise.
11567         * doc/standards.texi: Likewise.
11568         * doc/tree-ssa.texi: Likewise.
11569         * doc/trouble.texi: Likewise.
11570
11571         * doc/extend.texi: Use @: or add comma where appropriate.
11572         * doc/invoke.texi: Likewise.
11573         * doc/tm.texi: Likewise.
11574
11575 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
11576
11577         PR target/34393
11578         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
11579         to a reg.
11580
11581 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
11582
11583         * doc/md.texi (clz, ctz): Add reference.
11584         * doc/rtl.texi (clz, ctz): Likewise.
11585
11586 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11587
11588         PR other/35148
11589         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
11590         srcdir.
11591
11592 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
11593
11594         * config/s390/s390.c (struct constant_pool): New field
11595         emit_pool_after added.
11596         (s390_mainpool_start): Set the emit_pool_after flag according
11597         to the section switch notes.
11598         (s390_mainpool_finish): Consider emit_pool_after when emitting
11599         the literal pool at the end of the function.
11600         (s390_chunkify_start): Force literal pool splits at section
11601         switch notes.
11602
11603 2008-02-13  Michael Matz  <matz@suse.de>
11604
11605         PR debug/35065
11606         * var-tracking.c (clobber_variable_part): Correctly traverse the
11607         list.
11608
11609 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11610
11611         PR 29673
11612         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
11613         Add -fdump-ipa-inline.
11614         * tree-dump.c (dump_files): Remove tree-inlined dump.
11615         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
11616         
11617 2008-02-12  Richard Guenther  <rguenther@suse.de>
11618
11619         PR tree-optimization/35171
11620         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
11621         default defs.
11622
11623 2008-02-12  Richard Guenther  <rguenther@suse.de>
11624
11625         PR middle-end/35163
11626         * fold-const.c (fold_widened_comparison): Use get_unwidened in
11627         value-preserving mode.  Disallow final truncation.
11628
11629 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
11630
11631         PR middle-end/35136
11632         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
11633         code from here to...
11634         (force_gimple_operand): ...here.
11635
11636 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
11637
11638         PR c++/35144
11639         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
11640         non-compatible pointers.
11641         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
11642         different FIELD_DECLs, try harder by comparing field offsets, sizes
11643         and types.
11644
11645         PR inline-asm/35160
11646         * function.c (match_asm_constraints_1): Don't replace the same input
11647         multiple times.
11648
11649 2008-02-12  Anatoly Sokolov <aesok@post.ru>
11650
11651         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
11652         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
11653         (expand_epilogue): Restore RAMPZ register.
11654         * config/avr/avr.md (RAMPZ_ADDR): New constant.
11655
11656 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
11657
11658         * config/i386/cygwin.asm: (__alloca): Correct calling
11659         convention and alignment.
11660         (__chkstk): Force 8 byte stack alignment.
11661
11662 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
11663             Richard Guenther  <rguenther@suse.de>
11664
11665         PR tree-optimization/33992
11666         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
11667         the zero we compare against.
11668
11669 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
11670
11671         PR libfortran/35063
11672         * gthr-win32.h (__gthread_mutex_destroy_function): New function
11673         to CloseHandle after unlocking to prevent accumulation of handle
11674         count.
11675
11676 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11677
11678         PR middle_end/34150
11679         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
11680         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
11681         and update LABEL_NUSES during and after reload.
11682
11683 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
11684
11685         PR middle-end/34627
11686         * combine.c (simplify_if_then_else): Make sure the comparison is
11687         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
11688
11689 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11690
11691         PR bootstrap/35051
11692         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
11693         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
11694         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
11695         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
11696         * tree.h (get_type_static_bounds): Likewise.
11697
11698 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11699
11700         * doc/invoke.texi (Option Summary, C++ Dialect Options)
11701         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11702         Make -Wfoo language annotations match what the compiler outputs.
11703
11704 2008-02-08  Sa Liu  <saliu@de.ibm.com>
11705
11706         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
11707         intrinsics spu_convts, spu_convtu, spu_convtf.
11708
11709 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
11710
11711         * doc/extend.texi (Function Attributes) <noinline>: Mention
11712         asm ("") as method to keep calls.
11713
11714 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11715
11716         PR other/32754
11717         * doc/options.texi (Options): Replace references to opts.sh with
11718         optc-gen.awk.
11719         * opts-common.c: Likewise.
11720         * optc-gen.awk: Likewise.
11721         
11722 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
11723
11724         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
11725
11726 2008-02-07  Richard Henderson  <rth@redhat.com>
11727
11728         PR rtl-opt/33410
11729         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
11730         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
11731         funny mode.
11732
11733 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
11734
11735         PR tree-optimization/35085
11736         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
11737         for operand entry oe2 in addition to operand entry oe3 in order to
11738         expose more opportunities for vectorizer sum reduction.
11739
11740 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11741
11742         PR other/35107
11743         * Makefile.in (LIBS): Remove $(GMPLIBS).
11744         (cc1-dummy, cc1): Add $(GMPLIBS).
11745
11746 2008-02-06  Jan Hubicka  <jh@suse.cz>
11747
11748         PR target/23322
11749         * i386.md (moddf_integer): Do not produce partial memory stalls for
11750         targets where it hurts.
11751
11752 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
11753
11754         PR target/35083
11755         * optabs.c (expand_float): Do not check for decimal modes when
11756         expanding unsigned integer through signed conversion.
11757
11758 2008-02-06  Nick Clifton  <nickc@redhat.com>
11759
11760         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
11761         inside the clobber with a match_operand and duplicated operand
11762         number in the constraint.
11763         (ineqbranchsi): Delete redundant comment.
11764
11765 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
11766
11767         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
11768         builtin_define ("__USE_INIT_FINI__").
11769         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
11770         -msx multilibs.
11771         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
11772
11773 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11774
11775         PR documentation/30330
11776         * doc/invoke.texi (C++ Dialect Options)
11777         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11778         For each warning option -Wfoo that allows -Wno-foo, ensure both
11779         -Wfoo and -Wno-foo are listed in the option index.  Fix index
11780         entry of -Wswitch-default, index -Wnormalized= including the
11781         `=', and -Wlarger-than-@var{len} including @var{len}.
11782
11783 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
11784
11785         * config/i386/i386.md (floatunssisf2): Use
11786         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
11787         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
11788         Macroize expander using MODEF mode iterator.
11789
11790 2008-02-05  Diego Novillo  <dnovillo@google.com>
11791
11792         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
11793
11794         PR 33738
11795         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
11796
11797 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11798
11799         PR other/35070
11800         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
11801
11802 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
11803
11804         PR target/35084
11805         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
11806         to indicate if a message should be generated.
11807         (init_cumulative_args): Updated.
11808         (function_value_32): Likewise.
11809
11810 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
11811
11812         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
11813
11814 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
11815
11816         PR target/35083
11817         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
11818         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
11819
11820 2008-02-04  Diego Novillo  <dnovillo@google.com>
11821
11822         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
11823
11824         PR 33738
11825         * tree-vrp.c (vrp_evaluate_conditional): With
11826         -Wtype-limits, emit a warning when comparing against a
11827         constant outside the natural range of OP0's type.
11828
11829 2008-02-04  Richard Guenther  <rguenther@suse.de>
11830
11831         PR middle-end/33631
11832         * expr.c (count_type_elements): Give for unions instead of
11833         guessing.
11834
11835 2008-02-04  Richard Guenther  <rguenther@suse.de>
11836
11837         PR middle-end/35043
11838         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
11839         to TYPE_DOMAINs base type instead of using bitsizetype here.
11840
11841 2008-02-03  Jason Merrill  <jason@redhat.com>
11842
11843         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
11844
11845 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11846
11847         PR other/29972
11848         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
11849         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
11850         (RS/6000 and PowerPC Options): Fix typos and markup.
11851         * doc/passes.texi (Tree-SSA passes): Likewise.
11852
11853 2008-02-02  Michael Matz  <matz@suse.de>
11854
11855         PR target/35045
11856         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
11857         from record_last_reg_set_info.
11858         (record_last_reg_set_info): Take an RTX argument, iterate over all
11859         constituent hardregs.
11860         (record_last_set_info, record_opr_changes): Change calls to
11861         new signature or to record_last_reg_set_info_regno.
11862
11863 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
11864
11865         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
11866
11867 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
11868
11869         PR rtl-optimization/34773
11870         * reg-notes.def (EQUAL): Mention significance of combination of
11871         REG_EQUAL and REG_RETVAL.
11872         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
11873         insn that has a REG_RETVAL.
11874
11875 2008-02-01  Roger Sayle  <roger@eyesopen.com>
11876
11877         PR bootstrap/33781
11878         * configure.ac (--enable-fixed-point): Disable unless explicitly
11879         requested on IRIX.
11880         * configure: Regenerate.
11881
11882 2008-02-01  Richard Guenther  <rguenther@suse.de>
11883
11884         PR other/35042
11885         * invoke.texi (-finline-limit): Remove no longer true parts
11886         of the documentation.  Note that there is no default value.
11887
11888 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
11889             Mark Mitchell  <mark@codesourcery.com>
11890             Ben Elliston  <bje@au.ibm.com>
11891
11892         PR c/29326
11893         * doc/extend.texi (Other Builtins): Document.
11894
11895 2008-01-31  Tom Browder <tom.browder@gmail.com>
11896
11897         * doc/c-tree.texi (Types): Fix grammar.
11898         (Expression trees): Ditto.
11899         * doc/passes.texi (Tree-SSA passes): Ditto.
11900         
11901         * doc/configterms.texi (Configure Terms): Fix typo.
11902         * doc/cpp.texi (Common Predefined Macros): Ditto.
11903         * doc/md.texi (Machine Constraints): Ditto.
11904         
11905         * doc/makefile.texi (Makefile): Add comma.
11906
11907 2008-01-31  Tom Browder  <tom.browder@gmail.com>
11908             Gerald Pfeifer  <gerald@pfeifer.com>
11909         
11910         * doc/sourcebuild.texi (Front End): Remove references to CVS
11911         and CVSROOT/modules.
11912         (Texinfo Manuals): Replace reference to CVS by one to SVN.
11913         (Back End): Remove reference to CVS.
11914
11915 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
11916
11917         PR target/34900
11918         * config/mips/mips.c (gen_load_const_gp): New function, taking a
11919         comment from...
11920         (mips16_gp_pseudo_reg): ...here.
11921         * config/mips/mips.md (load_const_gp): Replace with...
11922         (load_const_gp_<mode>): ...this :P-based insn.
11923
11924 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11925
11926         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
11927         options. Minor fixes.
11928         (-std): Move reference to standards closer to where language
11929         standards are first mentioned.
11930         
11931 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
11932
11933         PR rtl-optimization/34995
11934         * reload.c (alternative_allows_const_pool_ref): Take an rtx
11935         parameter and return a bool.  If the rtx parameter is nonnull,
11936         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
11937         (find_reloads): Update call accordingly.  Pass the new operand
11938         if it needed no address reloads, otherwise pass null.
11939
11940 2008-01-30  Richard Henderson  <rth@redhat.com>
11941
11942         PR c/34993
11943         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
11944         for unbounded arrays.
11945
11946 2008-01-30  Silvius Rus  <rus@google.com>
11947
11948         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
11949
11950 2008-01-30  Jan Hubicka  <jh@suse.cz>
11951
11952         PR target/34982
11953         * i386.c (init_cumulative_args): Use real function declaration when
11954         calling locally.
11955
11956 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
11957
11958         PR rtl-optimization/34998
11959         * global.c (build_insn_chain): Treat non-subreg_lowpart
11960         SUBREGs of pseudos as clobbering all the words covered by the
11961         SUBREG, not just all the bytes.
11962         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
11963         original df_ref rather than an extract parameter.
11964         (global_conflicts): Update call accordingly.
11965
11966 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
11967
11968         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
11969         the overflow check to make it easier to read.
11970         (__fixtfdi): Change the type of the ll member in union
11971         long_double to UDItype_x.
11972
11973 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
11974
11975         PR middle-end/34969
11976         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
11977         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
11978         * tree-inline.c (fold_marked_statements): Call
11979         cgraph_update_edges_for_call_stmt if folding a call statement.
11980         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
11981         debug_generic_stmt calls, reset it back afterwards.
11982
11983         PR c/35017
11984         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
11985         static decls.
11986         * c-typeck.c (build_external_ref): Don't pedwarn about
11987         static vars in current function's scope.
11988
11989 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
11990
11991         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
11992
11993 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
11994
11995         PR c/35002
11996         * ipa-struct-reorg.c: Fix spelling.
11997         * params.def: Ditto.
11998
11999 2008-01-29  Richard Guenther  <rguenther@suse.de>
12000
12001         PR middle-end/35006
12002         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
12003         field.
12004         * tree-inline.c (remap_type): Increment remapping_type_depth
12005         around remapping types.
12006         (copy_body_r): Only add referenced variables if they are referenced
12007         from code, not types.
12008
12009 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
12010
12011         PR c++/34055
12012         PR c++/34103
12013         PR c++/34219
12014         PR c++/34606
12015         PR c++/34753
12016         PR c++/34754
12017         PR c++/34755
12018         PR c++/34919
12019         PR c++/34961
12020         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
12021         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
12022
12023 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
12024
12025         PR target/34412
12026         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
12027         pointer for tiny stack.
12028
12029 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12030
12031         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
12032
12033 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12034
12035         * config/vx-common.h: Fix typo in comment.
12036
12037 2008-01-28  Ian Lance Taylor  <iant@google.com>
12038
12039         PR c++/34862
12040         PR c++/33407
12041         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12042         coalesce pointers if they have different DECL_NO_TBAA_P values.
12043         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
12044         between variables with different DECL_NO_TBAA_P values.
12045
12046 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
12047
12048         PR 31535
12049         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
12050         are not legitimate small data references on SPE targets.
12051
12052 2008-01-28  David Daney  <ddaney@avtrex.com>
12053
12054         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
12055
12056 2008-01-28  David Daney  <ddaney@avtrex.com>
12057
12058         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
12059
12060 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
12061
12062         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
12063         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
12064         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
12065         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
12066         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
12067         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
12068         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
12069         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
12070
12071 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12072
12073         * basic-block.h (condjump_equiv_p): Fix comment.
12074
12075 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12076
12077         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
12078         print_generic_stmt_indented): Fix comment.
12079
12080 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12081
12082         * configure.ac (__stack_chk_fail): Add detecion for availability
12083         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
12084         * configure: Regenerate.
12085
12086 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
12087
12088         PR middle-end/34688
12089         * final.c (output_addr_const): Handle TRUNCATE.
12090
12091 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
12092
12093         PR target/34711
12094         * tree-ssa-loop-ivopts.c (comp_cost): New type.
12095         (zero_cost, infinite_cost): New constants.
12096         (struct cost_pair): Change type of cost to comp_cost.
12097         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
12098         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
12099         New functions.
12100         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
12101         split_address_cost, ptr_difference_cost, difference_cost,
12102         get_computation_cost_at, get_computation_cost,
12103         determine_use_iv_cost_generic, determine_use_iv_cost_address,
12104         determine_use_iv_cost_condition, determine_use_iv_costs,
12105         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
12106         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
12107         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
12108         Change type of cost to comp_cost.
12109         (determine_iv_cost): Increase cost of non-original ivs, instead
12110         of decreasing the cost of original ones.
12111         (get_address_cost): Indicate the complexity of the addressing mode 
12112         in comp_cost.
12113         (try_add_cand_for): Prefer using ivs not specific to some object.
12114         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
12115
12116 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
12117             Janis Johnson  <janis187@us.ibm.com>
12118
12119         PR target/34814
12120         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
12121         (TARGET_INSTANTIATE_DECLS): Likewise.
12122         * target.h (expand_to_rtl_hook): New target hook.
12123         (instantiate_decls): Likewise.
12124         * function.c (instantiate_decl): Make non-static.  Rename to...
12125         (instantiate_decl_rtl): ... this.
12126         (instantiate_expr): Use instantiate_decl_rtl.
12127         (instantiate_decls_1): Likewise.
12128         (instantiate_decls): Likewise.
12129         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
12130         * function.h (instantiate_decl_rtl): Add prototype.
12131         * cfgexpand.c (target.h): New include.
12132         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
12133         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
12134         (TARGET_INSTANTIATE_DECLS): Likewise.
12135         (TARGET_INITIALIZER): New target hooks added.
12136         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
12137         New prototype.
12138         * config/rs6000/rs6000.c (tree-flow.h): New include.
12139         (machine_function): Add sdmode_stack_slot field.
12140         (rs6000_alloc_sdmode_stack_slot): New function.
12141         (rs6000_instantiate_decls): Likewise.
12142         (rs6000_secondary_memory_needed_rtx): Likewise.
12143         (rs6000_check_sdmode): Likewise.
12144         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
12145         (TARGET_INSTANTIATE_DECLS): Likewise.
12146         (rs6000_hard_regno_mode_ok): Allow SDmode.
12147         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
12148         (rs6000_emit_move): Handle SDmode.
12149         (function_arg_advance): Likewise.
12150         (function_arg): Likewise.
12151         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
12152         SDmode var args for 32-bit compiles.
12153         (rs6000_secondary_reload_class): Handle SDmode.
12154         (rs6000_output_function_epilogue): Likewise.
12155         (rs6000_function_value): Simplify if statement.
12156         (rs6000_libcall_value): Likewise.
12157         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
12158         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
12159         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
12160         (movsd_hardfloat): New define_insn.
12161         (movsd_softfloat): Likewise.
12162         (movsd_store): Likewise.
12163         (movsd_load): Likewise.
12164         (extendsddd2): Likewise.
12165         (extendsdtd2): Likewise.
12166         (truncddsd2): Likewise.
12167         (movdd_hardfloat64): Fixup comment.
12168         (UNSPEC_MOVSD_LOAD): New constant.
12169         (UNSPEC_MOVSD_STORE): Likewise.
12170
12171 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
12172
12173         PR c++/34965
12174         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
12175         TRUTH_XOR_EXPR.
12176         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
12177         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
12178         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
12179         and TRUTH_XOR_EXPR.
12180
12181 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
12182
12183         PR target/34794
12184         * config.gcc: Separate AIX 5.3 from AIX 6.1.
12185         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
12186         __LONGDOUBLE128 too.
12187         * config/rs6000/aix61.h: New file.
12188
12189 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12190
12191         PR rtl-optimization/34959
12192         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
12193         popcount and parity rtxes the same mode as their operand.
12194         Truncate or extend the result to the return value's mode
12195         if necessary.
12196
12197 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12198
12199         PR target/34981
12200         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
12201         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
12202         to GOT_VERSION_REGNUM.
12203         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
12204         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
12205         * config/mips/mips.c (mips_emit_call_insn): New function.
12206         (mips_call_tls_get_addr): Call mips_expand_call directly.
12207         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
12208         emit_call_insn.
12209         (mips16_build_call_stub): Likewise.  Return the call insn or null.
12210         (mips_expand_call): Update the call to mips16_build_call_stub
12211         accordingly and a remove redundant condition.  Assert that MIPS16
12212         stubs do not use lazy binding.  Use mips_emit_call_insn and return
12213         the call insn.
12214         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
12215         TARGET_USE_GOT.
12216         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
12217         (mips_avoid_hazard): Remove hazard_set handling.
12218         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
12219         (UNSPEC_RESTORE_GP): ...this.
12220         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
12221         (FAKE_CALL_REGNO): Rename to...
12222         (GOT_VERSION_REGNUM): ...this.
12223         (type): Add "ghost" value.  Add an associated insn reservation.
12224         (hazard_set): Remove.
12225         (exception_receiver): Rename to...
12226         (restore_gp): ...this and update the unspec identifier accordingly.
12227         (exception_receiver, nonlocal_got_receiver): New expanders.
12228         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
12229         FAKE_CALL_REGNO.  Remove hazard_set attribute.
12230         (set_got_version, update_got_version): New patterns.
12231
12232 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
12233
12234         PR target/34970
12235         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
12236
12237 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12238
12239         PR other/31955
12240         * doc/install.texi2html: Generate gcc-vers.texi.
12241
12242 2008-01-25  DJ Delorie  <dj@redhat.com>
12243
12244         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12245
12246 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12247
12248         * config/c4x: Remove directory.
12249         * config.gcc (crx-*, mt-*): Mark obsolete.
12250         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
12251         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
12252         sh-*-rtemscoff*): Remove cases.
12253         * defaults.h (C4X_FLOAT_FORMAT): Remove.
12254         * real.c (encode_c4x_single, decode_c4x_single,
12255         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
12256         c4x_extended_format): Remove.
12257         * real.h (c4x_single_format, c4x_extended_format): Remove.
12258         * doc/extend.texi (interrupt, naked): Remove mention of attributes
12259         on C4x.
12260         (Pragmas): Remove comment about c4x pragmas.
12261         * doc/install.texi (c4x): Remove target-specific instructions.
12262         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
12263         * doc/md.texi (Machine Constraints): Remove C4x documentation.
12264         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
12265         refer to C4x source files as examples.
12266         (C4X_FLOAT_FORMAT): Remove documentation.
12267
12268 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
12269
12270         * config/bfin/bfin.c (override_options): Reorder tests so that
12271         flag_pic gets enabled for -msep-data.
12272
12273 2008-01-25  Richard Guenther  <rguenther@suse.de>
12274
12275         PR middle-end/32244
12276         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
12277         to its bitfield precision if required.
12278
12279 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12280
12281         PR middle-end/33880
12282         * tree-nested.c (walk_omp_for): New function.
12283         (convert_nonlocal_reference, convert_local_reference): Call
12284         walk_omp_for on OMP_FOR.
12285         (convert_call_expr): Call walk_body on OMP_FOR's
12286         OMP_FOR_PRE_INIT_BODY.
12287
12288 2008-01-25  Richard Guenther  <rguenther@suse.de>
12289
12290         PR tree-optimization/34966
12291         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
12292         default defs and PHI_NODEs we have to insert after the
12293         defining statement.
12294
12295 2008-01-24  Nick Clifton  <nickc@redhat.com>
12296
12297         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
12298         Provide a default definition.
12299         (LIBGCC2_UNITS_PER_WORD): Likewise.
12300
12301         * config/stormy16/stormy16.c: Include df.h for the prototype
12302         for df_regs_ever_live_p.
12303         (xstormy16_expand_builtin_va_start): Convert the stack offset
12304         into a component_ref and then use POINTER_PLUS_EXPR to add it
12305         to the incoming_virtual_args_rtx.
12306         (xstormy16_gimplify_va_arg_expr): Rename to
12307         xstormy16_gimplify_va_arg_expr.
12308         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
12309         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
12310         xstormy16_gimplify_va_arg_expr.
12311         Fix up some formatting issues.
12312
12313         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
12314         Move to predicates.md.
12315         (xs_hi_general_operand): Likewise.
12316         (xs_hi_nonmemory_operand): Likewise.
12317         * config/stormy16/predicates.md:
12318         (xstormy16_carry_plus_operand): New predicate.
12319         (xs_hi_general_operand): New predicate.
12320         (xs_hi_nonmemory_operand): New predicate.
12321         * config/stormy16/stormy16-protos.h:
12322         (xstormy16_carry_plus_operand): Delete prototype.
12323         (xs_hi_general_operand): Likewise.
12324         (xs_hi_nonmemory_operand): Likewise.
12325
12326         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
12327         modifiers as they are no longer needed and they can trigger
12328         reload spill failures.
12329
12330         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
12331         with a match_operand in order to help reload.
12332
12333         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
12334         constraint with 'e' for the 8th alternative as this version of
12335         the mov.w instruction only accepts the lower 8 registers.
12336
12337 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
12338
12339         PR target/34856
12340         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
12341         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
12342         vector elements.
12343
12344 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12345
12346         PR middle-end/33333
12347         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
12348
12349 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12350
12351         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
12352         New functions.
12353         (remove_structure): Update allocations list before removing structure.
12354         
12355 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12356
12357         * ipa-struct-reorg.c (is_safe_cond_expr, 
12358         create_new_stmts_for_cond_expr): Use integer_zerop function,
12359         that recognize not only zero-pointer, but zero-integer too.
12360
12361 2008-01-25  Ben Elliston  <bje@au.ibm.com>
12362
12363         PR other/22232
12364         * fixproto: Escape "." in sed expression that strips leading "./".
12365
12366 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12367
12368         PR driver/34904
12369         * gcc.c (SWITCH_OK): Removed.
12370         (SWITCH_LIVE): Changed to bit.
12371         (SWITCH_FALSE): Likewise.
12372         (SWITCH_IGNORE): Likewise.
12373         (switchstr): Change live_cond to unsigned int.
12374         (process_command): Replace SWITCH_OK with 0.
12375         (do_self_spec): Likewise.
12376         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
12377         (give_switch): Likewise.
12378         (used_arg): Likewise.
12379         (do_spec_1): Set the SWITCH_IGNORE bit.
12380         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
12381         bits.  Set the SWITCH_LIVE bit.
12382
12383 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
12384
12385         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
12386
12387 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
12388
12389         PR tree-optimization/34472
12390         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
12391         parameter to a "bool *" and set *DATA to false if there is
12392         an unsafe access.  Do not delete the structure here.
12393         (check_cond_exprs): Delete it here instead.
12394         (check_cond_exprs, exclude_cold_structs): Do not increase
12395         I when removing a structure.
12396
12397 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
12398
12399         PR target/34856
12400         * config/i386/i386.c (ix86_expand_vector_init): Consider only
12401         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
12402
12403 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
12404
12405         PR middle-end/34934
12406         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
12407         a fixed vector for stack.
12408
12409 2008-01-24  Ben Elliston  <bje@au.ibm.com>
12410
12411         PR c++/25701
12412         * doc/gcc.texi (Software development): Add a direntry for g++.
12413         
12414 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
12415
12416         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
12417         stale and straggling -fforce-addr comments above.
12418
12419         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
12420         define.
12421         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
12422         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
12423
12424 2008-01-23  Michael Matz  <matz@suse.de>
12425
12426         PR debug/34895
12427         * dwarf2out.c (force_type_die): Use modified_type_die instead of
12428         gen_type_die.
12429
12430 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
12431
12432         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
12433         malloc result type.
12434
12435 2008-01-23 Anatoly Sokolov <aesok@post.ru>
12436
12437         * config/avr/avr.c (avr_current_arch): New variable.
12438         (avr_arch_types): Add 'avr31' and 'avr51' entries.
12439         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
12440         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
12441         (avr_override_options): Init 'avr_current_arch'. 
12442         (base_arch_s): Move from here...
12443         * config/avr/avr.h (base_arch_s): ... here. Add new members 
12444         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
12445         'mega' to 'have_jmp_call'.
12446         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
12447         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
12448         macros.
12449         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
12450         architectures.
12451         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
12452         MULTILIB_MATCHES): (Ditto.).
12453
12454 2008-01-23  Richard Guenther  <rguenther@suse.de>
12455
12456         PR middle-end/31529
12457         * cgraphunit.c (cgraph_reset_node): Always mark the node
12458         not reachable if it is not queued already.
12459
12460 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
12461
12462         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
12463         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
12464         (cputype_selected): New static variable.
12465         (bfin_handle_option): Set it if -mcpu is used.
12466         (override_option): Select default set of workarounds if no cpu type
12467         selected on the command line.
12468         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
12469
12470         From  Michael Frysinger  <michael.frysinger@analog.com>
12471         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
12472         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
12473
12474         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
12475         for bf547, bf523, bf524, and bf526.
12476         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
12477         bf526.
12478         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
12479         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
12480         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
12481         __ADSPBF547__ and __ADSPBF54x__ for bf547.
12482         * doc/invoke.texi (Blackfin Options): Document that
12483         -mcpu now accept bf547, bf523, bf524, and bf526.
12484
12485 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
12486
12487         PR rtl-optimization/34628
12488         * combine.c (try_combine): Stop and undo after the first combination
12489         if an autoincrement side-effect on the first insn has effectively
12490         been lost.
12491
12492 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
12493
12494         PR target/34529
12495         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
12496         Offset addresses are not valid for Altivec or paired float modes.
12497
12498 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
12499
12500         PR c++/34607
12501         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
12502         if DECL_INITIAL (decl) is error_mark_node.
12503
12504         PR c++/34914
12505         * c-common.c (handle_vector_size_attribute): Only allow
12506         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
12507         the same way as pointer, array etc. types.
12508         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
12509
12510         PR c++/34917
12511         * tree.c (build_type_attribute_qual_variant): Call
12512         build_qualified_type if attributes are equal, but quals are not.
12513
12514 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12515
12516         PR 32102
12517         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
12518         * flags.h (warn_strict_aliasing): Remove.
12519         (warn_strict_overflow): Remove.
12520         * opts.c (warn_strict_aliasing): Remove.
12521         (warn_strict_overflow): Remove.
12522         * c-opts.c (c_common_handle_option): -Wall only sets
12523         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
12524         (c_common_post_options): Give default values to -Wstrict-aliasing
12525         and -Wstrict-overflow if they are uninitialized.
12526         * common.opt (Wstrict-aliasing): Specify Var and Init.
12527         (Wstrict-overflow): Likewise.
12528
12529 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
12530
12531         PR rtl-optimization/26854
12532         PR rtl-optimization/34400
12533         PR rtl-optimization/34884
12534         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
12535         DF_RD->gen.
12536         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
12537         (df_rd_bb_info.expanded_lr_out): Deleted
12538         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
12539         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
12540         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12541         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12542         Removed code to allocate, initialize or free expanded_lr_out.
12543         (df_rd_bb_local_compute_process_def): Restructured to make more
12544         understandable.
12545         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
12546         sets if the sets are being trimmed.
12547
12548 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
12549
12550         PR bootstrap/32287
12551         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
12552         (as_vers): Likewise.
12553         * configure: Regenerated.
12554
12555 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12556
12557         PR middle-end/33092
12558         * tree-pass.h (pass_build_alias): New pass.
12559         * tree-ssa-alias.c (gate_build_alias): New.
12560         (pass_build_alias): New.
12561         * passes.c (init_optimization_passes): Add pass_build_alias after
12562         pass_create_structure_vars.
12563
12564 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
12565
12566         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
12567         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
12568         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
12569         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
12570         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
12571         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
12572         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
12573         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
12574         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
12575         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
12576         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
12577         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
12578         * config/s390/s390.md (FP_ALL): New mode iterator.
12579         (_d): New mode attribute.
12580         ("*signbit<mode>2>"): Changed mode of first operand.
12581         ("isinf<mode>2"): Changed mode of first operand.
12582         ("*TDC_insn"): Adaptation for DFP modes.
12583
12584 2008-01-22  Ben Elliston  <bje@au.ibm.com>
12585
12586         * tree.c (check_qualified_type): Improve function description.
12587
12588 2008-01-21  Jason Merrill  <jason@redhat.com>
12589
12590         PR c++/34196
12591         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
12592         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
12593         if it is set.
12594
12595 2008-01-21  DJ Delorie  <dj@redhat.com>
12596
12597         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
12598         return zero.
12599
12600 2008-01-21  Richard Guenther  <rguenther@suse.de>
12601
12602         PR middle-end/34856
12603         * tree-cfg.c (verify_expr): Allow all invariant expressions
12604         instead of just constant class ones as reference argument.
12605         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
12606         like any other constant.
12607         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12608
12609 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
12610
12611         * regmove.c (fixup_match_1): Update call crossed frequencies.
12612
12613 2008-01-21  Richard Guenther  <rguenther@suse.de>
12614
12615         PR c/34885
12616         * tree-inline.c (setup_one_parameter): Deal with mismatched
12617         types using a VIEW_CONVERT_EXPR.
12618
12619 2008-01-21  Alon Dayan  <alond@il.ibm.com>
12620             Olga Golovanevsky  <olga@il.ibm.com>
12621         
12622         PR tree-optimization/34701
12623         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
12624         when the structure size is not a power of 2.
12625
12626 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12627
12628         * doc/install.texi: Add doc for --enable-checking=df.
12629         
12630 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12631
12632         PR rtl-optimization/34808
12633         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
12634
12635 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12636
12637         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
12638         input.
12639
12640 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
12641
12642         PR rtl-optimization/26854
12643         PR rtl-optimization/34400
12644         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
12645         DF_RD->gen.
12646         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
12647         (df_rd_bb_info.expanded_lr_out): New.
12648         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
12649         * loop_iv.c (iv_analysis_loop_init): Ditto.
12650         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12651         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12652         Added code to allocate, initialize or free expanded_lr_out.
12653         (df_rd_bb_local_compute_process_def): Restructured to make
12654         more understandable.
12655         (df_rd_confluence_n): Add code to do nothing with fake edges and
12656         code to no apply invalidate_by_call sets if the sets are being trimmed.
12657         (df_lr_local_finalize): Renamed to df_lr_finalize.
12658         (df_live_local_finalize): Renamed to df_live_finalize.
12659
12660 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12661
12662         PR target/34831
12663         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
12664         deciding whether to use reciprocal instructions.
12665
12666 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
12667
12668         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
12669         dwarf2out_note_section_used if cold_text_section is NULL.
12670
12671 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
12672
12673         PR gcov-profile/34610
12674         * tree-cfg.c (make_edges): Mark both outgoing edges from
12675         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
12676         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
12677         from OMP_FOR and OMP_CONTINUE outgoing edges.
12678
12679         * tree-profile.c (tree_profiling): Return early if
12680         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
12681         at the end.
12682         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
12683         from cfun to child_cfun.
12684         * function.h (struct function): Add after_tree_profile bit.
12685
12686 2008-01-19 Anatoly Sokolov <aesok@post.ru>
12687
12688         * config/avr/avr.S (_exit): Disable interrupt.
12689
12690 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
12691             Steven Bosscher  <stevenb.gcc@gmail.com>
12692
12693         PR rtl-optimization/26854
12694         PR rtl-optimization/34400
12695         * df-problems.c (df_live_scratch): New scratch bitmap.
12696         (df_live_alloc): Allocate df_live_scratch when doing df_live.
12697         (df_live_reset): Clear the proper bitmaps.
12698         (df_live_bb_local_compute): Only process the artificial defs once
12699         since the order is not important.
12700         (df_live_init): Init the df_live sets only with the variables
12701         found live by df_lr.
12702         (df_live_transfer_function): Use the df_lr sets to prune the
12703         df_live sets as they are being computed.  
12704         (df_live_free): Free df_live_scratch.
12705
12706 2008-01-18  Ian Lance Taylor  <iant@google.com>
12707
12708         * common.opt: Add fmerge-debug-strings.
12709         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
12710         flag_merge_debug_strings rather than flag_merge_constants.
12711         * doc/invoke.texi (Option Summary): Mention
12712         -fmerge-debug-strings.
12713         (Debugging Options): Document -fmerge-debug-strings.
12714
12715 2008-01-18  Ian Lance Taylor  <iant@google.com>
12716
12717         PR c++/33407
12718         * tree.h (DECL_IS_OPERATOR_NEW): Define.
12719         (struct tree_function_decl): Add new field operator_new_flag.
12720         * tree-inline.c (expand_call_inline): When inlining a call to
12721         operator new, force the return value to go into a variable, and
12722         set DECL_NO_TBAA_P on that variable.
12723         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
12724
12725 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
12726
12727         PR debug/34484
12728         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
12729         DWARF2_DEBUGGING_INFO.
12730         (dwarf2out_note_section_used): Ditto.  Add prototype.
12731         (have_multiple_function_sections, text_section_used,
12732         cold_text_section_used, *cold_text_sections): Move declarations
12733         before their uses.
12734
12735 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
12736
12737         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
12738         field and add signal_ra.
12739         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
12740         assignments to frame state pc.  Move end of stack check after
12741         MD_FALLBACK_FRAME_STATE_FOR.
12742         (uw_update_context_1): Use frame state signal_regs if set, instead
12743         of checking signal_frame flag.
12744         (uw_update_context): Use frame state signal_ra if set.
12745         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
12746         * config/xtensa/linux-unwind.h: New file.
12747
12748 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
12749
12750         * modulo-sched.c (get_sched_window): Fix comment typo.
12751
12752 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
12753
12754         PR tree-optimization/34648
12755         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
12756
12757 2008-01-17  Anatoly Sokolov <aesok@post.ru>
12758
12759         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
12760         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
12761
12762 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
12763
12764         PR rtl-optimization/34400
12765         * df-core.c (df_worklist_dataflow_overeager,
12766         df_worklist_dataflow_doublequeue): New functions.
12767         (df_worklist_dataflow): Two different worklist solvers.
12768         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
12769         New param.
12770
12771 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12772
12773         PR testsuite/34821
12774         * doc/invoke.texi: Document the dependence on pthread for fopenmp
12775         and ftree-parallelize-loops.
12776
12777 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
12778
12779         PR rtl-optimization/34826
12780         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
12781
12782 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
12783
12784         * global.c (find_reg): Mark the eh regs as used if necessary.
12785         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
12786         * ra.h (struct allocno): no_eh_reg field added.  Changed
12787         no_stack_reg type to bitfield.
12788
12789 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
12790
12791         * tree.c (substitute_in_expr): Add missing 'break'.
12792
12793 2008-01-17  Richard Guenther  <rguenther@suse.de>
12794
12795         PR tree-optimization/34825
12796         * tree-ssa-math-opts.c (is_division_by): Do not recognize
12797         x / x as division to handle.
12798
12799 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12800
12801         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
12802         "-pthread" is specified.
12803         * pa-hpux11.h (LIB_SPEC): Likewise.
12804
12805 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
12806             Peter Bergner  <bergner@vnet.ibm.com>
12807
12808         PR rtl-optimization/33796
12809         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
12810
12811 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12812
12813         PR libgfortran/34699
12814         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
12815         static links.
12816         * pa-hpux10.h (LINK_SPEC): Likewise.
12817         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
12818
12819 2008-01-16  Richard Guenther  <rguenther@suse.de>
12820
12821         PR middle-end/32628
12822         * fold-const.c (fold_convert_const_int_from_int): Do not
12823         set overflow if that occured only because of a sign extension
12824         change when converting from/to a sizetype with the same
12825         precision and signedness.
12826
12827 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
12828
12829         PR debug/34249
12830         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
12831         location address to the correct place.  Update copyright year.
12832
12833 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12834
12835         * lambda-code.c (lambda_transform_legal_p): Handle the case of
12836         no dependences in the dependence_relations vector.
12837
12838 2008-01-16  Jan Hubicka  <jh@suse.cz>
12839
12840         PR rtl-optimization/31396
12841         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
12842         * cfg.c (dump_reg_info): Print it.
12843         * regs.h (struct reg_info_t): add freq_calls_crossed.
12844         (REG_FREQ_CALLS_CROSSED): New macro.
12845         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
12846         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
12847         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
12848         regmove_optimize): Update call crossed frequencies.
12849         * local-alloc.c (struct qty): Add freq_calls_crossed.
12850         (alloc_qty): Copute freq_calls_crossed.
12851         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
12852         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
12853         * ra.h (struct allocno): Add freq_calls_crossed.
12854
12855 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12856
12857         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
12858         libgomp when compiling with ftree-parallelize-loops.
12859         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
12860
12861 2008-01-16  Richard Guenther  <rguenther@suse.de>
12862
12863         PR tree-optimization/34769
12864         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
12865         * tree.c (int_cst_value): Instead make this function more
12866         permissive in what it accepts as valid input.  Document this
12867         function always sign-extends the value.
12868
12869 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
12870             Richard Guenther  <rguenther@suse.de>
12871
12872         PR c/34668
12873         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
12874         (gimple_fold_indirect_ref_rhs): ... this.
12875         (gimple_fold_indirect_ref): New function with foldings
12876         that preserve lvalueness.
12877         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
12878         * tree-flow.h (gimple_fold_indirect_ref): Declare.
12879         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
12880         to fold an INDIRECT_REF, fall back to the old use of
12881         fold_indirect_ref_1.
12882
12883 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12884
12885         * tree-data-ref.c (subscript_dependence_tester_1): Call 
12886         free_conflict_function.
12887         (compute_self_dependence): Same.
12888
12889 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
12890
12891         PR debug/34249
12892         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
12893         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
12894         function global.
12895         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
12896         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
12897         for DWARF2_UNWIND_INFO targets.
12898
12899 2008-01-16  Richard Guenther  <rguenther@suse.de>
12900
12901         PR c/34768
12902         * c-typeck.c (common_pointer_type): Do not merge inconsistent
12903         type qualifiers for function types.
12904
12905 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
12906
12907         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
12908         loop_iterator li from previous commit.
12909
12910 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
12911
12912         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
12913
12914 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
12915
12916         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
12917         (parallelize_loops): Don't parallelize irreducible components.
12918
12919 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12920
12921         PR c++/24924
12922         * c-opts (c_common_post_options): Do not enable CPP
12923         flag_pedantic_errors by default.
12924         
12925 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
12926
12927         PR rtl-optimization/31944
12928         * cse.c (remove_pseudo_from_table): New function.
12929         (merge_equiv_classes): Use above function to remove pseudo-registers.
12930         (invalidate): Likewise.
12931
12932 2008-01-13  Richard Guenther  <rguenther@suse.de>
12933
12934         PR middle-end/34601
12935         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
12936         instead of TYPE_MODE to deal with calls from expand_one_error_var.
12937
12938 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
12939
12940         * gcse.c (cprop_jump): Call validate_unshare_change instead of
12941         validate_change to unshare the source of the PC set.
12942
12943 2008-01-12  Jan Hubicka  <jh@suse.cz>
12944
12945         PR middle-end/32135
12946         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
12947         references above array bounds.  This might trigger bounds checks for
12948         pointers to arrays.
12949
12950 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
12951
12952         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
12953         new_replaceable_dependencies.
12954
12955 2008-01-12  Doug Kwan  <dougkwan@google.com>
12956
12957         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
12958         instead of OPT_Wreturn_type in warning due to ignored return type
12959         qualifiers.
12960         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
12961         options included in -Wextra.
12962         * c.opt: New option -Wignored_qualifiers.
12963         * doc/invoke.texi (Warning Options, -Wextra): Add new option
12964         -Wignore_qualifiers.
12965         (-Wignored-qualifiers): Document.
12966         (-Wreturn-type): Remove description of functionality now handled
12967         by -Wignored-qualifiers.
12968
12969 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
12970
12971         PR ada/33788
12972         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
12973         NOP_EXPR if it is between integral types with the same precision.
12974
12975 2008-01-12  Jan Hubicka  <jh@suse.cz>
12976
12977         PR other/28023
12978         * invoke.texi (max-inline-recursive-depth): Fix default value.
12979
12980 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
12981
12982         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
12983         correct type.
12984
12985 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
12986         
12987         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
12988         
12989 2008-01-11  James E. Wilson  <wilson@specifix.com>
12990
12991         PR target/26015
12992         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
12993
12994 2008-01-11  Anatoly Sokolov <aesok@post.ru>
12995
12996         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
12997         save/restore frame pointer register and don't use 'call-prologues' 
12998         optimization in function with "OS_task" attribute.
12999
13000 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
13001
13002         PR middle-end/31309
13003         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
13004         when copying to memory.
13005
13006 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
13007
13008         PR rtl-optimization/30905
13009         * cfgcleanup.c: Include dce.h
13010         (crossjumps_occured): New global variable.
13011         (try_crossjump_bb): Exit loop after finding a fallthru edge.
13012         If something changed, set crossjumps_occured to true.
13013         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
13014         Don't add/remove fake edges to exit here...
13015         (cleanup_cfg): ...but do it here, when crossjumping.
13016         Run a fast DCE when successful crossjumps occured in the latest
13017         iteration of try_optimize_cfg.
13018
13019 2008-01-11  Richard Guenther  <rguenther@suse.de>
13020
13021         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
13022         (struct vn_unary_op_s): Likewise.
13023         (vn_reference_insert): Free old reference on hash collision.
13024
13025 2008-01-10  Raksit Ashok  <raksit@google.com>
13026
13027         PR rtl-optimization/27971
13028         * combine.c (find_split_point): Split PLUS expressions which are
13029         inside a MEM rtx, and whose first operand is complex.
13030
13031 2008-01-10  DJ Delorie  <dj@redhat.com>
13032
13033         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
13034         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
13035         (m32c_hard_regno_ok): Call the underlying function.
13036
13037 2008-01-10  Richard Guenther  <rguenther@suse.de>
13038
13039         PR middle-end/34683
13040         * tree-cfg.c (tree_merge_blocks): Do not go through the
13041         full-blown folding and stmt updating path if we just deal
13042         with virtual operands.
13043         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
13044         test for abnormal SSA_NAMEs.
13045
13046 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
13047
13048         PR middle-end/34641
13049         * reload.c (push_reload): Add assertions.  All constants from
13050         reg_equiv_constant should have been used for replacing the respective
13051         pseudo earlier.
13052         (find_reloads_address): Invoke find_reloads_address_part for
13053         constant taken from the reg_equiv_constant array.
13054
13055 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
13056
13057         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
13058         field (valnum) the first in the struct.  Replace bools with
13059         unit bit fields.
13060
13061 2008-01-10  Richard Guenther  <rguenther@suse.de>
13062
13063         PR tree-optimization/34651
13064         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
13065         types and ordering for masking and converting.
13066
13067 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
13068
13069         PR tree-optimization/34017
13070         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
13071         also for PHI_NODE expressions.
13072
13073 2008-01-09  Jan Hubicka  <jh@suse.cz>
13074
13075         PR tree-optimization/34708
13076         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
13077         based on number of case labels.
13078         (init_inline_once): Remove switch_cost.
13079         * tree-inline.h (eni_weights_d): Remove switch_cost.
13080
13081 2008-01-09  Richard Guenther  <rguenther@suse.de>
13082         Andrew Pinski  <andrew_pinski@playstation.sony.com>
13083
13084         PR middle-end/30132
13085         * gimplify.c (gimplify_cond_expr): Do not create an addressable
13086         temporary if an rvalue is ok or an lvalue is not required.
13087
13088 2008-01-09  Richard Guenther  <rguenther@suse.de>
13089
13090         PR middle-end/34458
13091         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
13092         adjust return type.
13093
13094 2008-01-09  Richard Guenther  <rguenther@suse.de>
13095
13096         PR middle-end/34679
13097         * tree.c (host_integerp): Check for sizetype only if the
13098         type is an integer type.
13099
13100 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
13101
13102         PR debug/26364
13103         * opts.c (decode_options): Disable inlining of functions called
13104         once if not in unit-at-a-time mode.
13105
13106 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
13107
13108         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
13109
13110 2008-01-08  Richard Guenther  <rguenther@suse.de>
13111
13112         PR middle-end/31863
13113         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
13114         out early if the result will be unused.
13115
13116 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
13117
13118         PR target/34709
13119         Revert:
13120
13121         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13122         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13123         for TARGET_RECIP.       
13124         
13125 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
13126         
13127         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
13128         for vectorization tuned.
13129         
13130 2008-01-08  Richard Guenther  <rguenther@suse.de>
13131
13132         PR tree-optimization/34683
13133         * tree-ssa-operands.c (operand_build_cmp): Export.
13134         * tree-ssa-operands.h (operand_build_cmp): Declare.
13135         * tree-vn.c (vuses_compare): Remove.
13136         (sort_vuses): Use operand_build_cmp.
13137         (sort_vuses_heap): Likewise.
13138         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
13139         to re-use old VEC if available.  Do not sort already sorted VUSEs.
13140         (vdefs_to_vec): Do not sort already sorted VDEFs.
13141
13142 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
13143
13144         PR middle-end/34694
13145         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
13146
13147 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
13148
13149         PR target/34702
13150         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
13151         limitations of reciprocal sequences on x86 targets.
13152
13153 2008-01-08  Richard Guenther  <rguenther@suse.de>
13154
13155         PR tree-optimization/34683
13156         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
13157
13158 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
13159
13160         PR target/34622
13161         * config/darwin.c (darwin_mergeable_string_section): Don't use
13162         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
13163
13164 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
13165
13166         PR target/34682
13167         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
13168         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
13169         predicates of op0 and op1 to register_operand.
13170         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
13171         expander using X87MODEF mode iterator.  Change predicates of
13172         op0 and op1 to register_operand.
13173         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
13174         corresponding patterns and macroize using MODEF macro.  Change
13175         predicates of op0 and op1 to register_operand and remove
13176         "m" constraint. Disparage "r" alternative with "!".
13177         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
13178         macroize using X87MODEF macro.  Change predicates of op0 and op1
13179         to register_operand and remove "m" constraint.  Disparage "r"
13180         alternative with "!".
13181         (absneg splitter with memory operands): Remove.
13182         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
13183         patterns and macroize using X87MODEF mode iterator.
13184         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
13185         Change predicate of op1 to register_operand.
13186         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
13187         for memory operands.
13188
13189 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
13190
13191         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
13192
13193 2008-01-07  Richard Guenther  <rguenther@suse.de>
13194
13195         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
13196         fields.
13197
13198 2008-01-07  Richard Guenther  <rguenther@suse.de>
13199
13200         PR tree-optimization/34683
13201         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
13202         VOPs of the needed size to save memory.  Use VEC_quick_push
13203         to save compile-time.
13204         (vdefs_to_vec): Likewise.
13205
13206 2008-01-07  Sa Liu  <saliu@de.ibm.com>
13207
13208         * config/spu/spu.md (divdf3): Genetate inline code for double
13209         division.  The implementation doesn't handle INF or NAN, therefore it
13210         only applies when -ffinite-math-only is given.
13211
13212 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
13213
13214         PR libstdc++/34680
13215         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
13216         * doc/cpp.texi ([Common Predefined Macros]): Document.
13217
13218 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
13219
13220         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
13221         order to use commutative addition instead of subtraction.
13222
13223 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13224             Mircea Namolaru  <namolaru@il.ibm.com>
13225             Vladimir Yanovsky  <yanov@il.ibm.com>
13226             Revital Eres  <eres@il.ibm.com>
13227
13228         PR tree-optimization/34263
13229         * tree-outof-ssa.c (process_single_block_loop_latch,
13230         contains_tree_r): New functions.
13231         (analyze_edges_for_bb): Call process_single_block_loop_latch
13232         function to empty single-basic-block latch block if possible.
13233
13234 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13235
13236         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13237         for TARGET_RECIP.
13238         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
13239
13240 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13241
13242         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
13243
13244 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13245
13246         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
13247
13248 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
13249
13250         PR tree-optimization/34618
13251         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
13252         flag from T.
13253
13254 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13255
13256         PR target/34673
13257         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
13258         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
13259         Update copyright year.
13260
13261         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
13262         Update copyright year.
13263         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
13264         using NR fixup.
13265
13266 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
13267
13268         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
13269         edge does not point to current bb before changing need_assert.
13270
13271 2008-01-04  Richard Guenther  <rguenther@suse.de>
13272
13273         PR middle-end/34029
13274         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
13275         for verifying purposes if they are is_gimple_min_invariant.
13276
13277 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
13278
13279         PR tree-optimization/34448
13280         PR tree-optimization/34465
13281         * gimplify.c (gimplify_init_constructor): Add new parameter
13282         notify_temp_creation.  Use it.
13283         (gimplify_modify_expr_rhs): Take volatiles into account when
13284         optimizing constructors.
13285         Do not optimize constructors if gimplify_init_constructor will dump to
13286         memory.
13287         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
13288         * gcc.c-torture/compile/pr34448.c: New.
13289
13290 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
13291
13292         PR gcov-profile/34609
13293         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
13294         return_slot if result is TREE_ADDRESSABLE.
13295
13296 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
13297
13298         * config/mips/mips.md (sqrt_condition): Tweak comment.
13299         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
13300
13301 2008-01-03  Tom Tromey  <tromey@redhat.com>
13302
13303         PR c/34457
13304         * c-common.c (c_type_hash): Handle VLAs.
13305
13306 2008-01-03  Jan Hubicka  <jh@suse.cz>
13307
13308         PR tree-optimization/31081
13309         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
13310         0 when inlining and not inlining to first basic block.
13311         (remap_decl): When var is initialized to 0, don't set default_def.
13312         (expand_call_inline): Set entry_bb.
13313         * tree-inline.h (copy_body_data): Add entry_bb.
13314
13315 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13316
13317         PR c++/34619
13318         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
13319         before returning.
13320
13321         PR tree-optimization/29484
13322         * tree-inline.c (inline_forbidden_p_2): New function.
13323         (inline_forbidden_p): Disallow inlining if some static var
13324         has an address of a local LABEL_DECL in its initializer.
13325         * doc/extend.texi (Labels as Values): Document &&foo behaviour
13326         vs. inlining.
13327
13328 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
13329
13330         PR tree-optimization/34635
13331         * tree-data-ref.c (add_other_self_distances): Make sure that the
13332         evolution step is constant.
13333
13334 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13335
13336         PR middle-end/34608
13337         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
13338
13339 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
13340
13341         * tree-sra.c (scalarize_init): Insert the generate_element_init
13342         statements after the generate_element_zero statements.
13343
13344 2008-01-02  Richard Guenther  <rguenther@suse.de>
13345
13346         PR middle-end/34093
13347         PR middle-end/31976
13348         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
13349         for very large number of operands instead of ICEing.
13350
13351 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
13352
13353         PR target/34013
13354         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
13355         while stack probing.
13356
13357 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
13358
13359         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
13360         in C++0x mode.
13361
13362 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
13363
13364         PR libmudflap/26442
13365         * tree-mudflap.c (mx_register_decls): Guard warning by
13366         !DECL_ARTIFICIAL check.
13367
13368 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
13369
13370         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
13371         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
13372         sse5_perm<mode>): Fix constraints.