OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
2
3         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
4         * config/mips/mips.c (mips_split_const_insns): New function.
5         * config/mips/mips.md (move_type): New attribute.
6         (mode): Move attribute definition earlier in file.  Add "TI"
7         and "TF".
8         (dword_mode): New attribute.
9         (type): Avoid long line.  Map "move_type"s to "type"s,
10         choosing "multi" for doubleword moves if appropriate.
11         Swap MTC/MFC comments to match their declaration order.
12         (extended_mips16): Default to "yes" if "move_type" is "sll0",
13         "type" is "branch" or "jal" is "direct".
14         (length): Handle "extended_mips16" first.  Make the default
15         "0" for "ghost" instructions.  Set the length from "move_type".
16         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
17         of "type", with "sll0" for the register alternative.  Remove the
18         "extended_mips16" attribute.
19         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
20         of "type", with "shift_shift" for the register alternative.
21         Remove the "length" attribute.
22         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
23         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
24         of "type", with "andi" for the register alternative.
25         (*zero_extendqihi2): Likewise.
26         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
27         of "andi" instead of a "type" of "arith".
28         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
29         instead of "type".
30         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
31         (mov_<store>r, *mov<mode>_ra): Likewise.
32         (extendsidi2): Use "move_type" instead of "type", with "move"
33         for the register alternative.
34         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
35         of "type", with "signext" for the register alternative.
36         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
37         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
38         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
39         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
40         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
41         (unnamed branch insn): Likewise.
42         (*movdi_gp32_fp64): Fold into...
43         (*movdi_32bit): ...here.
44         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
45         (*movdf_hardfloat): ...this new pattern.
46         (*movdf_softfloat): Remove redundant FPR alternatives.
47         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
48         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
49         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
50         the "move" attribute.
51         (*movdi_32bit): Use "move_type" instead of "type" and remove the
52         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
53         and "store" for COP loads and stores.
54         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
55         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
56         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
57         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
58         (*movtf_mips16, *movv2sf): Likewise.
59         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
60         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
61         (mfhc1<mode>): Use "move_type" instead of "move".
62         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
63         (loadgp_blockage): Remove the "length" attribute.
64         (blockage, set_got_version, update_got_version): Likewise.
65         (call_internal): Remove the "extended_mips16" attribute.
66         (call_value_internal, call_value_multiple_internal): Likewise.
67         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
68         instead of "move".
69         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
70         the "length" attribute.
71
72 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
73
74         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
75         -Wcast-qual warnings.
76         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
77         handle_pragma_pop_macro): Likewise.
78         * collect2.c (resolve_lib_name): Likewise.
79         * config/arc/arc.c (arc_init): Likewise.
80         * config/arm/arm.c (neon_builtin_compare,
81         locate_neon_builtin_icode): Likewise.
82         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section):
83         Likewise.
84         * config/bfin/bfin.c (bfin_init_machine_status,
85         bfin_optimize_loop): Likewise.
86         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
87         * config/cris/cris.c (cris_init_expanders): Likewise.
88         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
89         * config/darwin.c (machopic_indirection_eq,
90         machopic_indirection_name, machopic_output_indirection):
91         Likewise.
92         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
93         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
94         frv_optimize_membar): Likewise.
95         * config/i386/cygwin.h (mingw_scan,
96         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
97         * config/i386/cygwin1.c (mingw_scan): Likewise.
98         * config/i386/i386.c (machopic_output_stub): Likewise.
99         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
100         i386_pe_unique_section): Likewise.
101         * config/ia64/ia64.c (ia64_init_machine_status,
102         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
103         Likewise.
104         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
105         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
106         * config/m68k/m68k.c (m68k_handle_option,
107         m68k_sched_md_init_global): Likewise.
108         * config/mcore/mcore.c (mcore_mark_dllexport,
109         mcore_mark_dllimport, mcore_unique_section): Likewise.
110         * config/mips/mips.c (mips_block_move_straight,
111         mips16_rewrite_pool_refs, mips_sim_wait_regs_2,
112         mips_sim_record_set): Likewise.
113         * config/mmix/mmix.c (mmix_init_machine_status,
114         mmix_encode_section_info): Likewise.
115         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label):
116         Likewise.
117         * config/rs6000/rs6000.c (rs6000_init_machine_status,
118         print_operand_address, output_toc, redefine_groups,
119         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
120         * config/s390/s390.c (s390_init_machine_status): Likewise.
121         * config/score/score.c (score_block_move_straight,
122         score_block_move_loop_body): Likewise.
123         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
124         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
125         * emit-rtl.c (find_auto_inc): Likewise.
126         * gcc.c (translate_options, process_command): Likewise.
127         * reorg.c (dbr_schedule): Likewise.
128         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
129         * xcoffout.c (xcoffout_declare_function): Likewise.
130
131 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
132
133         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
134         ipa-pta working again.
135
136 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
137
138         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
139         genautomata.
140
141 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
142
143         * config.gcc (powerpc*-*-*): Add new core e500mc.
144         * config/rs6000/e500mc.md: New file.
145         * config/rs6000/rs6000.c (processor_costs): Add new costs for
146         e500mc.
147         (rs6000_override_options): Add e500mc case to
148         processor_target_table. Altivec and Spe options not allowed
149         with e500mc. Add isel instruction to e500mc by
150         default. Initialize rs6000_cost for e500mc.
151         (rs6000_issue_rate): Set issue rate for e500mc.
152         * config/rs6000/rs6000.h (processor_type): Add
153         PROCESSOR_PPCE500MC.
154         (ASM_CPU_SPEC): Add e500mc.
155         Set TARGET_ISEL to rs6000_isel.
156         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
157         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
158         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
159         Include e500mc.md.
160         * doc/invoke.texi: Add e500mc to list of cpus.
161
162 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
163
164         PR c/34867
165         * c-lex.c (lex_charconst): Initialize unsignedp.
166
167 2008-06-27  Olivier Hainque  <hainque@adacore.com>
168
169         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
170         documented assumptions.
171
172 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
173
174         * dwarf2out.c: Remove trailing white spaces.  Break long line
175         in comments.
176
177 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
178
179         * libfuncs.h (LTI_synchronize): New libfunc_index.
180         (synchronize_libfunc): Declare.
181         * builtins.c (expand_builtin_synchronize): Consider using
182         synchronize_libfunc before falling back on an asm blockage.
183         * config/mips/mips.c: Include libfuncs.h
184         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
185
186 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
187
188         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
189         parameter.  Copy stack_reg to r11 where appropriate.
190         (no_global_regs_above): Add gpr parameter.
191         (rs6000_stack_info): Only add padding for SPE save area if we
192         are saving SPE GPRs and CR.
193         (saveres_routine_syms): New variable.
194         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
195         Define.
196         (rs6000_savres_routine_sym): New function.
197         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
198         split out of...
199         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
200         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
201         Tweak FPR out-of-line saving.
202         (rs6000_make_savres_rtx): New function.
203         (rs6000_use_multiple_p): New function.
204         (rs6000_savres_strategy): New function.
205         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
206         out-of-line if appropriate.
207         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
208         if we are optimizing for size.
209         (GP_SAVE_INLINE): Define.
210         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
211         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
212         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
213         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
214         (*save_fpregs_<mode>): Add use of r11.
215         (*restore_gpregs_<mode>): New insn.
216         (*return_and_restore_gpregs_<mode>): New insn.
217         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
218         use r11.
219         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
220         (*restore_gpregs_spe): New insn.
221         (*return_and_restore_gpregs_spe): New insn.
222         * config/rs6000/predicates.md (save_world_operation): Fix check.
223
224 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
225
226         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
227         this point, so assert that.
228
229 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
230
231         * cfganal.c: Include vec.h and vecprim.h.
232         (compute_idf): Import from...
233         * tree-into-ssa (compute_idf): ...here.
234         * basic-block.h (compute_idf): Export.
235
236 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
237
238         * c-decl.c (merge_decls): Use !current_function_decl to check for
239         extern declaration of C99 inline function being at file scope.
240
241 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
242
243         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
244
245 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
246
247         * alias.c (record_alias_subset, init_alias_analysis): Fix
248         -Wc++-compat and/or -Wcast-qual warnings.
249         * attribs.c (lookup_attribute_spec): Likewise.
250         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
251         copy_bb, connect_traces,
252         find_rarely_executed_basic_blocks_and_cr): Likewise.
253         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
254         note_btr_set, migrate_btr_defs): Likewise.
255         * builtins.c (result_vector, expand_builtin_memcpy,
256         expand_builtin_mempcpy_args, expand_builtin_strncpy,
257         builtin_memset_read_str, expand_builtin_printf,
258         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
259         Likewise.
260         * caller-save.c (mark_set_regs): Likewise.
261         * calls.c (expand_call, emit_library_call_value_1): Likewise.
262         * cgraph.c (cgraph_edge): Likewise.
263         * combine.c (likely_spilled_retval_1): Likewise.
264         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
265         htab_counts_entry_del, get_coverage_counts): Likewise.
266         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
267         new_cselib_val): Likewise.
268         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
269         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
270         Likewise.
271         * df-core.c (df_compact_blocks): Likewise.
272         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
273         * df-scan.c (df_grow_reg_info, df_ref_create,
274         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
275         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
276         df_record_entry_block_defs, df_record_exit_block_uses,
277         df_bb_verify): Likewise.
278         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
279         DF_REF_EXTRACT_MODE_CONST): New.
280         * dominance.c (get_immediate_dominator, get_dominated_by,
281         nearest_common_dominator, root_of_dom_tree,
282         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
283         -Wc++-compat and/or -Wcast-qual warnings.
284         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
285         record_store, replace_read, check_mem_read_rtx, scan_insn,
286         dse_step1, dse_record_singleton_alias_set): Likewise.
287         * dwarf2asm.c (dw2_force_const_mem): Likewise.
288
289 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
290
291         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
292         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
293         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
294         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
295         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
296         add_ranges_num, add_ranges_by_labels, file_info_cmp,
297         file_name_acquire, output_file_names, add_const_value_attribute,
298         premark_used_types_helper, file_table_eq, file_table_hash,
299         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
300         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
301         -Wcast-qual warnings.
302         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
303         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
304         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
305         gen_reg_rtx, start_sequence, init_emit): Likewise.
306         * et-forest.c (et_new_occ, et_new_tree): Likewise.
307         * except.c (init_eh_for_function, gen_eh_region,
308         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
309         arh_to_landing_pad, arh_to_label, add_action_record,
310         add_call_site, switch_to_exception_section): Likewise.
311         * expmed.c (synth_mult): Likewise.
312         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
313         store_expr): Likewise.
314         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
315         Likewise.
316         * function.c (assign_stack_temp_for_type,
317         allocate_struct_function, match_asm_constraints_1): Likewise.
318         * gcov-io.c (gcov_allocate): Likewise.
319         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
320         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
321         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
322         record_one_set, insert_expr_in_table, insert_set_in_table,
323         dump_hash_table, compute_hash_table_work, alloc_hash_table,
324         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
325         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
326         -Wcast-qual warnings.
327
328 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
329
330         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
331         -Wcast-qual warnings.
332         * gcc.c (process_command): Likewise.
333         * genattrtab.c (oballoc): Use XOBNEW.
334         (oballocvec): Define.
335         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
336         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
337         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
338         -Wc++-compat and/or -Wcast-qual warnings.
339         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
340         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
341         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
342         gen_presence_absence_set, gen_automaton, gen_regexp_el,
343         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
344         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
345         add_excls, process_presence_absence_names,
346         process_presence_absence_patterns, add_presence_absence,
347         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
348         get_free_state, add_arc, get_free_automata_list_el,
349         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
350         transform_3, cache_presence, create_ainsns, create_automata,
351         create_state_ainsn_table, dfa_insn_code_enlarge,
352         output_trans_func, output_min_issue_delay_func,
353         output_dead_lock_func, output_reset_func,
354         output_get_cpu_unit_code_func, output_dfa_start_func,
355         expand_automata): Likewise.
356         * genextract.c (gen_insn): Likewise.
357         * gengtype-lex.l: Likewise.
358         * gengtype.c (read_input_list, adjust_field_type,
359         process_gc_options): Likewise.
360         * genoutput.c (note_constraint): Likewise.
361         * genpreds.c (mangle, add_constraint): Likewise.
362         * genrecog.c (process_define_predicate, new_decision,
363         add_to_sequence): Likewise.
364         * gensupport.c (record_insn_name): Likewise.
365
366 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
367
368         * config/i386/driver-i386.c (detect_caches_amd,
369         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
370         and/or -Wcast-qual warnings.
371         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
372         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
373         gt_pch_save): Likewise.
374         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
375         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
376         * global.c (compute_regsets): Likewise.
377         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
378         finish_graph_dump_file): Likewise.
379         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
380         unlink_bb_notes): Likewise.
381         * integrate.c (get_hard_reg_initial_val): Likewise.
382         * ipa-prop.c (ipa_push_func_to_list): Likewise.
383         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
384         * local-alloc.c (update_equiv_regs): Likewise.
385         * loop-invariant.c (check_invariant_table_size,
386         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
387         Likewise.
388         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
389         altered_reg_used, mark_altered): Likewise.
390         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
391         insert_var_expansion_initialization,
392         combine_var_copies_in_loop_exit, apply_opt_in_copies,
393         release_var_copies): Likewise.
394         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
395         analyze_matrix_decl, add_allocation_site, analyze_transpose,
396         analyze_accesses_for_phi_node, check_var_notmodified_p,
397         check_allocation_function, find_sites_in_func,
398         record_all_accesses_in_func, transform_access_sites,
399         transform_allocation_sites): Likewise.
400         * omp-low.c (new_omp_region, create_omp_child_function_name,
401         check_omp_nesting_restrictions, check_combined_parallel,
402         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
403         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
404         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
405         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
406         Likewise.
407         * opts-common.c (prune_options): Likewise.
408         * opts.c (add_input_filename, print_filtered_help,
409         get_option_state): Likewise.
410         * params.c (add_params): Likewise.
411         * passes.c (set_pass_for_id, next_pass_1,
412         do_per_function_toporder, pass_fini_dump_file): Likewise.
413         * postreload.c (reload_cse_simplify_operands): Likewise.
414         * predict.c (tree_predicted_by_p, tree_predict_edge,
415         clear_bb_predictions, combine_predictions_for_bb): Likewise.
416
417 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
418
419         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
420         warnings.
421         * recog.c (check_asm_operands, validate_change_1): Likewise.
422         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
423         subst_asm_stack_regs): Likewise.
424         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
425         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
426         * regmove.c (reg_is_remote_constant_p): Likewise.
427         * regrename.c (regrename_optimize, scan_rtx_reg,
428         kill_clobbered_value, kill_set_value, kill_autoinc_value):
429         Likewise.
430         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
431         regstat_compute_calls_crossed): Likewise.
432         * reload1.c (init_reload, new_insn_chain,
433         has_nonexceptional_receiver, reload, copy_reloads,
434         calculate_needs_all_insns, init_elim_table): Likewise.
435         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
436         * rtl.c (shallow_copy_rtx_stat): Likewise.
437         * rtlanal.c (parms_set): Likewise.
438         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
439         sbitmap_resize, sbitmap_vector_alloc): Likewise.
440         * sched-ebb.c (earliest_block_with_similiar_load,
441         add_deps_for_risky_insns): Likewise.
442         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
443         schedule_region): Likewise.
444         * see.c (eq_descriptor_pre_extension,
445         hash_descriptor_pre_extension, hash_del_pre_extension,
446         eq_descriptor_properties, hash_descriptor_properties,
447         hash_del_properties, see_seek_pre_extension_expr,
448         see_initialize_data_structures, see_print_register_properties,
449         see_print_pre_extension_expr, see_delete_merged_def_extension,
450         see_delete_unmerged_def_extension, see_emit_use_extension,
451         see_pre_delete_extension, see_map_extension, see_commit_changes,
452         see_analyze_merged_def_local_prop,
453         see_analyze_merged_def_local_prop,
454         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
455         see_set_prop_merged_def, see_set_prop_unmerged_def,
456         see_set_prop_unmerged_use, see_print_one_extension,
457         see_merge_one_use_extension, see_merge_one_def_extension,
458         see_store_reference_and_extension, see_update_uses_relevancy,
459         see_update_defs_relevancy): Likewise.
460         * statistics.c (hash_statistics_hash, hash_statistics_eq,
461         hash_statistics_free, curr_statistics_hash): Likewise.
462         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
463         expand_asm_operands, expand_return, case_bit_test_cmp,
464         expand_case): Likewise.
465         * stor-layout.c (start_record_layout): Likewise.
466         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
467         gt_pch_save_stringpool): Likewise.
468         * tree-data-ref.c (hash_stmt_vertex_info,
469         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
470         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
471
472 2008-06-25 Uros Bizjak  <ubizjak@gmail.com>
473
474         PR target/36627
475         * config/i386/i386.md : Change constraints of HImode and QImode
476         immediate operands from "i" to "n".  Change SImode "ni" constraint to
477         "i" and SImode "rmi" constraint to "g".  Remove all constraints
478         from const0_operand and const1_operand predicated operands.
479         (i): Change QImode and HImode attribute from "i" to "n".
480         (*subqi_2): Change HImode operands to QImode.
481         (*subqi_3): Ditto.
482
483 2008-06-25  Olivier Hainque  <hainque@adacore.com>
484
485         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
486         sed substitutions.
487
488 2008-06-25  Richard Guenther  <rguenther@suse.de>
489
490         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
491         not overflow the result type.
492
493 2008-06-25  Richard Guenther  <rguenther@suse.de>
494
495         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
496         (vn_lookup): Likewise.
497
498 2008-06-25  Richard Guenther  <rguenther@suse.de>
499
500         PR tree-optimization/35518
501         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
502         * tree-sra.c (instantiate_element): Use fold_build3 to build
503         BIT_FIELD_REFs.
504         (try_instantiate_multiple_fields): Likewise.
505
506 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
507
508         * config/rs6000/rs6000.md: Change all string instruction's clobber to
509         be early clobbers.
510
511 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
512
513         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
514         use_backchain_to_restore_sp to true
515         if the offset of the link register save area would go over the 32k - 1
516         offset limit of the load
517         instructions.
518
519 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
520
521         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
522         anchor for the type-punning blurb.  Cross-reference "Structures
523         unions enumerations and bit-fields implementation".  Provide a
524         cast-through-pointer example.  Make final sentence self-contained.
525         * doc/implement-c.texi (Structures unions enumerations and
526         bit-fields implementation): Cross-reference the type-punning blurb
527         in the -fstrict-aliasing documentation.
528
529 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
530
531         PR middle-end/36594
532         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
533         the memory instead of the memory itself for the save area.
534
535 2008-06-24  Olivier Hainque  <hainque@adacore.com>
536             Nicolas Roche  <roche@adacore.com>
537
538         * gengtype.c (srcdir_len): size_t instead of int.
539         (get_file_realbasename): New function.  For F a filename, the real
540         basename of F, with all the path components stripped.
541         (get_file_srcdir_relative_path): New function.  For F a filename, the
542         relative path to F from $(srcdir).
543         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
544         get_file_realbasename.  Adjust the head comment.
545         (get_prefix_langdir_index): New function. For F a filename, return the
546         lang_dir_names[] relative index of the language directory that is
547         a prefix in F.
548         (get_file_langdir): For F a filename, return the name of the language
549         directory where F is located.
550         (get_file_gtfilename): New function. The gt- output file name for an
551         input filename F.
552         (get_output_file_with_visibility): Replace in-line computations with
553         uses of get_file_gtfilename and get_prefix_langdir_index.
554         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
555
556 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
557
558         PR tree-optimization/36504
559         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
560         references without base address.
561
562 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
563
564         PR middle-end/36584
565         * calls.c (expand_call): Increase alignment for recursive functions.
566
567 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
568
569         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
570         (TARGET_FUNCTION_VALUE): New define.
571         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
572         * config/avr/avr.h (FUNCTION_VALUE): Remove.
573
574 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
575
576         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
577         (fmod<mode>3): Ditto.
578         (remainderxf3): Ditto.
579         (remainder<mode>3): Ditto.
580
581 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
582
583         PR target/36533
584         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
585         REG is a hard register.
586
587         PR tree-optimization/36508
588         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
589         499, don't check it at all in release compilers.
590
591 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
592
593         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
594         together with SSE_TARGET_MATH to disable insn pattern.
595         (*fop_<MODEF:mode>_2_i387): Ditto.
596         (*fop_<MODEF:mode>_3_i387): Ditto.
597
598 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
599
600         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
601         
602 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
603
604         PR middle-end/34906
605         * gimplify.c (gimplify_asm_expr): Check the return code of
606         parse_output_constraint call, set function return and is_inout
607         value if it failed.
608
609 2008-06-22  Ian Lance Taylor  <iant@google.com>
610
611         * c-lex.c (narrowest_unsigned_type): Change itk to int.
612         (narrowest_signed_type): Likewise.
613         * c-typeck.c (c_common_type): Change local variable mclass to enum
614         mode_class, twice.
615         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
616         tcc_comparison, not the tree code itself.
617         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
618         (c_expand_expr): Cast modifier to enum expand_modifier.
619         * c-common.h (C_RID_CODE): Add casts.
620         (C_SET_RID_CODE): Define.
621         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
622         (c_lex_one_token): Add cast to avoid warning.
623         (c_parser_objc_type_name): Rename local typename to type_name.
624         (check_no_duplicate_clause): Change code parameter to enum
625         omp_clause_code.
626         (c_parser_omp_var_list_parens): Change kind parameter to enum
627         omp_clause_code.
628         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
629         c_parser_omp_list_var_parens.
630         (c_parser_omp_threadprivate): Likewise.
631         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
632         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
633         * c-format.c (NO_FMT): Define.
634         (printf_length_specs): Use NO_FMT.
635         (asm_fprintf_length_specs): Likewise.
636         (gcc_diag_length_specs): Likewise.
637         (scanf_length_specs): Likewise.
638         (strfmon_length_specs): Likewise.
639         (gcc_gfc_length_specs): Likewise.
640         (printf_flag_specs): Change 0 to STD_C89.
641         (asm_fprintf_flag_specs): Likewise.
642         (gcc_diag_flag_specs): Likewise.
643         (gcc_cxxdiag_flag_specs): Likewise.
644         (scanf_flag_specs): Likewise.
645         (strftime_flag_specs): Likewise.
646         (strfmon_flag_specs): Likewise.
647         (print_char_table): Likewise.
648         (asm_fprintf_char_table): Likewise.
649         (gcc_diag_char_table): Likewise.
650         (gcc_tdiag_char_table): Likewise.
651         (gcc_cdiag_char_table): Likewise.
652         (gcc_cxxdiag_char_table): Likewise.
653         (gcc_gfc_char_table): Likewise.
654         (scan_char_table): Likewise.
655         (time_char_table): Likewis.
656         (monetary_char_table): Likewise.
657         * c-format.h (BADLEN): Likewise.
658
659 2008-06-21  Ian Lance Taylor  <iant@google.com>
660
661         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
662         Define END_OF_BASE_TREE_CODES around inclusion.
663         * tree.c (tree_code_type): New global array.
664         (tree_code_length, tree_code_name): Likewise.
665         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
666         $(lang_tree_files).
667         (all-tree.def, s-alltree): New targets.
668         (gencheck.h, s-gencheck): Remove.
669         (tree.o): Depend upon all-tree.def.
670         (build/gencheck.o): Remove gencheck.h dependency.
671         (mostlyclean): Don't remove gencheck.h.
672         * c-common.h (enum c_tree_code): Remove.
673         * c-lang.c (tree_code_type): Remove.
674         (tree_code_length, tree_code_name): Remove.
675         * gencheck.c (tree_codes): Include all-tree.def, rather than
676         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
677         after it is used.
678         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
679         than tree.def.
680         * cp/cp-tree.h (enum cplus_tree_code): Remove.
681         (operator_name_info): Size to MAX_TREE_CODES.
682         (assignment_operator_name_info): Likewise.
683         * cp/cp-lang.c (tree_code_type): Remove.
684         (tree_code_length, tree_code_name): Remove.
685         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
686         (assignment_operator_name_info): Likewise.
687         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
688         MAX_TREE_CODES.
689         * cp/mangle.c (write_expression): Likewise.
690         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
691         * fortran/f95-lang.c (tree_code_type): Remove.
692         (tree_code_length, tree_code_name): Remove.
693         * java/java-tree.h (enum java_tree_code): Remove.
694         * java/lang.c (tree_code_type): Remove.
695         (tree_code_length, tree_code_name): Remove.
696         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
697         * objc/objc-act.h (enum objc_tree_code): Remove.
698         * objc/objc-lang.c (tree_code_type): Remove.
699         (tree_code_length, tree_code_name): Remove.
700         * objcp/objcp-lang.c (tree_code_type): Remove.
701         (tree_code_length, tree_code_name): Remove.
702         * ada/ada-tree.h (enum gnat_tree_code): Remove.
703         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
704         * ada/misc.c (tree_code_type): Remove.
705         (tree_code_length, tree_code_name): Remove.
706
707 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
708
709         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
710         the grand_bitmap_obstack.
711
712 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
713
714         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
715         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
716         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
717         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
718         move_stmt_r, new_label_mapper): Likewise.
719         * tree-complex.c (cvc_lookup): Likewise.
720         * tree-dfa.c (create_function_ann): Likewise.
721         * tree-dump.c (dump_register): Likewise.
722         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
723         find_phi_replacement_condition): Likewise.
724         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
725         tree_function_versioning): Likewise.
726         * tree-into-ssa.c (cmp_dfsnum): Likewise.
727         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
728         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
729         get_nonlocal_debug_decl, convert_nonlocal_reference,
730         convert_nonlocal_omp_clauses, get_local_debug_decl,
731         convert_local_reference, convert_local_omp_clauses,
732         convert_nl_goto_reference, convert_nl_goto_receiver,
733         convert_tramp_reference, convert_call_expr): Likewise.
734         * tree-outof-ssa.c (contains_tree_r): Likewise.
735         * tree-parloops.c (reduction_phi, initialize_reductions,
736         eliminate_local_variables_1, add_field_for_reduction,
737         add_field_for_name, create_phi_for_local_result,
738         create_call_for_reduction_1, create_loads_for_reductions,
739         create_stores_for_reduction, create_loads_and_stores_for_name):
740         Likewise.
741         * tree-phinodes.c (allocate_phi_node): Likewise.
742         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
743         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
744         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
745         * tree-ssa-coalesce.c (compare_pairs): Likewise.
746         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
747         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
748         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
749         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
750         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
751         vn_nary_op_insert): Likewise.
752         * tree-ssa.c (redirect_edge_var_map_add,
753         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
754         * tree-vectorizer.c (vectorize_loops): Likewise.
755         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
756         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
757         tree_cons_stat, build1_stat, build_variant_type_copy,
758         decl_init_priority_lookup, decl_fini_priority_lookup,
759         decl_priority_info, decl_restrict_base_lookup,
760         decl_restrict_base_insert, decl_debug_expr_lookup,
761         decl_debug_expr_insert, decl_value_expr_lookup,
762         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
763         type_hash_add, get_file_function_name, tree_check_failed,
764         tree_not_check_failed, tree_range_check_failed,
765         omp_clause_range_check_failed, build_omp_clause,
766         build_vl_exp_stat): Likewise.
767         * value-prof.c (gimple_histogram_value,
768         gimple_duplicate_stmt_histograms): Likewise.
769         * var-tracking.c (attrs_list_insert, attrs_list_copy,
770         unshare_variable, variable_union_info_cmp_pos, variable_union,
771         dataflow_set_different_1, dataflow_set_different_2,
772         vt_find_locations, variable_was_changed, set_variable_part,
773         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
774         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
775         section_entry_hash, object_block_entry_eq,
776         object_block_entry_hash, create_block_symbol,
777         initialize_cold_section_name, default_function_rodata_section,
778         strip_reg_name, set_user_assembler_name, const_desc_eq,
779         build_constant_desc, output_constant_def, lookup_constant_def,
780         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
781         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
782         default_internal_label): Likewise.
783         * varray.c (varray_init, varray_grow): Likewise.
784         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
785
786 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
787
788         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
789         operators for "test" insn.  Macroize insn using SWI mode macro.
790         (*jcc_fused_2): Ditto.
791         (*jcc_fused_3): Macroize insn using SWI mode macro.
792         (*jcc_fused_4): Ditto.
793
794 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
795
796         * tree-ssa-pre.c: Fix typo in comment.
797         (init_antic, fini_antic): Add explicit funtions for
798         initializing and deinitializing ANTIC and AVAIL sets.
799         (create_expression_by_pieces): Fix typo in comment.
800         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
801         (execute_pre): Eventually dump details about ANTIC_IN.
802
803 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
804
805         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
806         * gcc.c (translate_options, init_spec, store_arg, read_specs,
807         add_to_obstack, file_at_path, find_a_file, execute,
808         add_preprocessor_option, add_assembler_option, add_linker_option,
809         process_command, insert_wrapper, do_option_spec, do_self_spec,
810         spec_path, do_spec_1, is_directory, main, used_arg,
811         getenv_spec_function): Likewise.
812         * tlink.c (symbol_hash_lookup, file_hash_lookup,
813         demangled_hash_lookup, symbol_push, file_push, frob_extension):
814         Likewise.
815
816 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
817
818         * doc/rtl.texi: Updated subreg section.
819
820 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
821
822         PR c++/36523
823         * cgraphunit.c (cgraph_process_new_functions): Don't clear
824         node->needed and node->reachable.
825         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
826         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
827         (expand_task_call): Don't call expand_task_copyfn.
828         (expand_task_copyfn): Renamed to...
829         (finalize_task_copyfn): ... this.
830
831 2008-06-19  Jan Hubicka  <jh@suse.cz>
832
833         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
834         clobbering framepointer.
835
836 2008-06-19  Jan Hubicka  <jh@suse.cz>
837
838         * tree-optimize.c (execute_early_local_optimizations): Set
839         cgraph_state only at first invocation.
840
841 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
842
843         * system.h (-Wc++-compat): Activate as a warning, no an error.
844
845 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
846
847         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
848         instead of "#" in insn asm template.
849         (*jcc_fused_2): Ditto.
850
851 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
852
853         * config/i386/i386.h (ix86_tune_indices)
854         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
855         (TARGET_FUSE_CMP_AND_BRANCH): New define.
856         * config/i386/i386.md (*jcc_fused_1): New insn pattern
857         (*jcc_fused_2): Ditto.
858         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
859         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
860         (print operand): Handle 'E' and 'e' code.
861
862 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
863
864         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
865         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
866         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
867
868 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
869
870         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
871         node->decl.
872         (cgraph_expand_function): Use local copy of decl.
873         (cgraph_expand_all_functions): Remove redundant initialization of
874         order_pos.
875         (cgraph_optimize): Reword internal_error message.
876
877 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
878
879         * arm-protos.h (arm_return_in_memory): Remove public
880         arm_return_in_memory() prototype.
881         * arm.c (arm_return_in_memory): Add static prototype, add target
882         hook macro, change definition and comments.
883         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
884
885 2008-06-19  Ben Elliston  <bje@au.ibm.com>
886
887         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
888         real.c: Remove references to IEEE 754R.
889         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
890         * doc/libgcc.texi (Decimal float library routines): Likewise.
891
892 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
893
894         * targhooks.h (struct gcc_target): New member unwind_word_mode.
895         (default_unwind_word_mode): Add prototype.
896         * targhooks.c (default_unwind_word_mode): New function.
897         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
898         instead of word_mode.
899         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
900         (TARGET_INITIALIZER): Use it.
901
902         * c-common.c (handle_mode_attribute): Support "unwind_word"
903         mode attribute.
904         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
905
906         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
907         word_mode to access SjLj_Function_Context member "data".
908         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
909         conversion from targetm.eh_return_filter_mode () to
910         targetm.unwind_word_mode () if they differ.
911
912         * builtin-types.def (BT_UNWINDWORD): New primitive type.
913         (BT_FN_UNWINDWORD_PTR): New function type.
914         (BT_FN_WORD_PTR): Remove.
915         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
916         * except.c (expand_builtin_extend_pointer): Convert pointer to
917         targetm.unwind_word_mode () instead of word_mode.
918
919         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
920         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
921         (spu_unwind_word_mode): New function.
922         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
923         (TARGET_UNWIND_WORD_MODE): Define.
924         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
925
926 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
927
928         * config/spu/spu.c (reg_align): Remove.
929         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
930         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
931         (spu_split_store): Likewise.
932
933 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
934
935         * gcc/tree-vn.c: Fix typo in comment.
936
937 2008-06-18  Jan Hubicka  <jh@suse.cz>
938
939         * cgraphunit.c (cgraph_optimize): Output debug info when doing
940         toplevel reorder too.
941
942 2008-06-18  Jan Hubicka  <jh@suse.cz>
943
944         * c-opts.c (c_common_post_options): PCH is not compatible with
945         no-unit-at-a-time.
946         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
947         -fno-toplevel-reorder by default now.
948
949 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
950
951         PR documentation/30739
952         * doc/install.texi (Prerequisites): Document dependency on awk.
953
954 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
955             Ian Lance Taylor  <iant@google.com>
956
957         PR rtl-optimization/35604
958         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
959         only want to change jump destinations, not eventual label comparisons.
960
961 2008-06-16  Jan Hubicka  <jh@suse.cz>
962
963         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
964         syntax errors.
965         (cgraph_analyze_function): Likewise.
966
967 2008-06-16  Jan Hubicka  <jh@suse.cz>
968
969         * cgraph.h (cgraph_mark_if_needed): New function.
970         * cgraphunit.c (cgraph_mark_if_needed): New function.
971         * c-decl.c (duplicate_decl): Use it.
972
973 2008-06-16  Jan Hubicka  <jh@suse.cz>
974
975         * cgraph.c (cgraph_add_new_function): When in expansion state, do
976         lowering.
977
978 2008-06-16  Jan Hubicka  <jh@suse.cz>
979
980         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
981
982 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
983             Kazu Hirata  <kazu@codesourcery.com>
984             Maxim Kuvyrkov  <maxim@codesourcery.com
985
986         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
987         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
988         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
989         EXTRA_SPEC_FUNCTIONS.
990         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
991         (DRIVER_SELF_SPECS): Adjust.
992         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
993         * config/mips/st.h, config/mips/t-st: New.
994         * config/mips/driver-native.c, config/mips/x-native: New.
995         * doc/invoke.texi (MIPS): Document 'native' value for -march and
996         -mtune options.
997
998 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
999
1000         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
1001         from it.
1002         (ISA_HAS_FP_CONDMOVE): New macro.
1003         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
1004         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
1005         (ISA_HAS_NMADD3_NMSUB3): New macro.
1006         * config/mips/mips.c (mips_rtx_costs): Update.
1007         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
1008         compiling for ST Loongson 2E/2F.
1009         (madd<mode>): Rename to madd4<mode>.  Update.
1010         (madd3<mode>): New pattern.
1011         (msub<mode>): Rename to msub4<mode>.  Update.
1012         (msub3<mode>): New pattern.
1013         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
1014         (nmadd3<mode>): New pattern.
1015         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
1016         (nmadd3<mode>_fastmath): New pattern.
1017         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
1018         (nmsub3<mode>): New pattern.
1019         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
1020         (nmsub3<mode>_fastmath): New pattern.
1021         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
1022
1023 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
1024
1025         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
1026         (DF_REF_INSN_INFO): New.
1027         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
1028         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
1029         with a NULL DF_REF_INSN_INFO.
1030         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
1031         DF_INSN_SET.
1032         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
1033         DF_INSN_INFO_EQ_USES): New.
1034         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
1035         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
1036         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
1037         * df-core.c: Update comment for above changes.
1038         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
1039         DF_INSN_UID_* macros.
1040         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
1041         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
1042         insn rtx.  Update all callers.
1043         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
1044         df_ref_create_structure, df_insn_refs_collect): Likewise.
1045         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
1046         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
1047         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
1048         macros to access the insn refs.
1049         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
1050         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
1051         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
1052         for accessing the refs.
1053         (try_fwprop_subst): Likewise.
1054         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
1055         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
1056         for accessing the refs.
1057         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
1058         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
1059         to look at the insn refs.
1060         (record_uses): Likewise.
1061         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
1062         function anymore.
1063         (mark_artificial_uses): Don't mark_insn for artificial refs.
1064         (mark_reg_rependencies): Likewise.
1065
1066         * doc/rtl.texi: Remove documentation of ADDRESSOF.
1067
1068 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1069
1070         * configure: Regenerate.
1071
1072 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1073
1074         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
1075         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1076         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1077
1078 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1079
1080         * config/avr/avr.c (avr_mcu_t): Add attiny167.
1081         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1082         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1083
1084 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1085
1086         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
1087         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1088         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1089
1090 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
1091
1092         * tree-ssa-sccvn.c: Fix format of comments.
1093
1094 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
1095
1096         * cgraph.c: Remove unneeded forward declarations of eq_node()
1097         and hash_node().
1098
1099 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
1100
1101         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
1102         REG_RETVAL notes.
1103         (see_update_relevancy): Likewise.
1104         * fwprop.c (try_fwprop_subst): Likewise.
1105         * rtlanal.c (noop_move_p): Likewise.
1106         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
1107         notes to non-existing libcall blocks.
1108         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
1109         Remove orig_set.
1110         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
1111         (dead_libcall_p): Remove.
1112         (delete_trivially_dead_insns): Don't use it.
1113         * web.c (union_defs): Remove comment about keeping nops.
1114         * gcse.c (hash_scan_insn): Don't take libcall pointers.
1115         (compute_hash_table_work): Don't track libcall notes.
1116         (do_local_cprop): Don't take libcall pointers.  Don't update
1117         libcall notes.
1118         (adjust_libcall_notes): Deleted.
1119         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
1120         ever have existed in the first place).
1121         (replace_store_insn): Don't try to remove libcall notes.
1122         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
1123         (resolve_reg_notes): Don't call them.
1124         (resolve_simple_move): Likewise.
1125         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
1126         Don't remove REG_RETVAL notes.
1127         * emit-rtl.c (try_split): Don't update libcall notes.
1128         (emit_copy_of_insn_after): Dito.
1129         * cselib.c (cselib_current_insn_in_libcall): Remove.
1130         (cselib_process_insn): Don't set/clear it.
1131         (new_elt_loc_list): Don't record it.
1132         (cselib_init): Don't initialize it.
1133         * cselib.c (struct elt_loc_list): Remove in_libcall field.
1134         * loop-invariant.c (find_invariant_insn): Don't look for libcall
1135         notes.
1136         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
1137         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
1138         (init_deps): Don't initialize it.
1139         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
1140         * combine.c (delete_noop_moves): Don't update libcall notes.
1141         (can_combine_p): Remove now pointless #if 0 block.
1142         (try_combine): Remove another obsolete #if 0 block.
1143         (distribute_notes): Don't distribute libcall notes.
1144         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
1145         * dce.c (libcall_dead_p): Remove.
1146         (delete_unmarked_insns): Don't handle libcall blocks.
1147         (preserve_libcall_for_dce): Remove.
1148         (prescan_insns_for_dce): Don't special-case libcall block insns.
1149         * reload1 (reload): Don't handle libcall notes. 
1150         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
1151         documentation.
1152
1153 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
1154
1155         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
1156         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1157         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1158
1159 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
1160
1161         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
1162         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1163         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1164
1165 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1166
1167         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
1168
1169 2008-06-16  Ira Rosen  <irar@il.ibm.com>
1170
1171         PR tree-optimization/36493
1172         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
1173         the arguments list. Use VECTYPE to create vector pointer.
1174         (vectorizable_store): Fail if accesses through a pointer to vectype
1175         do not alias the original memory reference operands.
1176         Call vect_create_data_ref_ptr without the removed argument.
1177         (vectorizable_load): Likewise.
1178         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
1179         removed argument.
1180
1181 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
1182
1183         PR target/36336
1184         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
1185         reg_equiv_constant.
1186
1187 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1188
1189         * config/mips/loongson2ef.md: New file.
1190         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1191         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1192         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1193         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
1194         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
1195         and loongson_2f.
1196         (loongson2ef.md): New include.
1197         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
1198         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
1199         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
1200         (loongson_gt_<mode>, loongson_extract_halfword)
1201         (loongson_insert_halfword_0, loongson_insert_halfword_2)
1202         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
1203         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
1204         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
1205         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
1206         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
1207         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
1208         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
1209         (vec_interleave_low<mode>): Define type attribute.
1210         * config/mips/mips.c (mips_ls2): New static variable.
1211         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
1212         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
1213         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
1214         Implement target scheduling hooks.
1215         (mips_multipass_dfa_lookahead): Update to handle tuning for
1216         Loongson 2E/2F.
1217         (mips_sched_init): Initialize data for Loongson scheduling.
1218         (mips_ls2_variable_issue): New static function.
1219         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
1220         Add sanity check.
1221         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
1222         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
1223         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
1224         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
1225         Handle ST Loongson 2E/2F cores.
1226         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
1227
1228 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1229
1230         * omp-low.c (extract_omp_for_data): Fix comment typo.
1231         * c.opt: Fix typo.
1232
1233 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1234
1235         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
1236         FIXME note about gcc/config.guess.
1237         * doc/options.texi (Option file format): Remove non-ASCII bytes.
1238         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
1239         * doc/cppopts.texi: Likewise.
1240         * doc/extend.texi: Likewise.
1241         * doc/gcc.texi: Likewise.
1242         * doc/gccint.texi: Likewise.
1243         * doc/gcov.texi: Likewise.
1244         * doc/gty.texi: Likewise.
1245         * doc/hostconfig.texi: Likewise.
1246         * doc/install.texi: Likewise.
1247         * doc/invoke.texi: Likewise.
1248         * doc/loop.texi: Likewise.
1249         * doc/makefile.texi: Likewise.
1250         * doc/md.texi: Likewise.
1251         * doc/passes.texi: Likewise.
1252         * doc/tm.texi: Likewise.
1253         * doc/tree-ssa.texi: Likewise.
1254         * doc/trouble.texi: Likewise.
1255
1256 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
1257             Nathan Sidwell  <nathan@codesourcery.com>
1258             Maxim Kuvyrkov  <maxim@codesourcery.com>
1259             Richard Sandiford  <rdsandiford@googlemail.com>
1260         
1261         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
1262         * config/mips/mips-protos.h (mips_expand_vector_init): New.
1263         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
1264         builtins.
1265         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
1266         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
1267         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
1268         V8QImode cases.
1269         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
1270         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
1271         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
1272         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
1273         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
1274         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
1275         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
1276         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
1277         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
1278         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
1279         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
1280         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
1281         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
1282         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
1283         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
1284         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
1285         (mips_builtins): Add Loongson builtins.
1286         (mips_loongson_2ef_bdesc): New.
1287         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
1288         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
1289         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
1290         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
1291         New.
1292         (mips_expand_vector_init): New.
1293         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
1294         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
1295         if appropriate.
1296         * config/mips/mips.md: Add unspec numbers for Loongson
1297         builtins.  Include loongson.md.
1298         (MOVE64): Include Loongson vector modes.
1299         (SPLITF): Include Loongson vector modes.
1300         (HALFMODE): Handle Loongson vector modes.
1301         * config/mips/loongson.md: New.
1302         * config/mips/loongson.h: New.
1303         * config.gcc: Add loongson.h header for mips*-*-* targets.
1304         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
1305
1306 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
1307
1308         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
1309         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
1310         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
1311         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
1312         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
1313         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
1314         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
1315         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
1316         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
1317         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
1318         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
1319         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
1320         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
1321         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
1322         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
1323         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
1324         Remove use_fixproto=yes.
1325         (ia64*-*-hpux*): Remove comment about using fixproto.
1326         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
1327
1328 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1329
1330         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
1331         library rebuilds.
1332         * configure: Regenerate.
1333
1334 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1335
1336         PR middle-end/36520
1337         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
1338         before evaluating it.
1339
1340 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
1341
1342         PR c/36507
1343         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
1344         nested inline functions.
1345         (start_decl, start_function): Don't invert DECL_EXTERNAL
1346         for nested inline functions.
1347
1348 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1349
1350         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
1351         splits that must be made for correctness.
1352
1353 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1354
1355         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
1356         (AVAIL_NON_MIPS16): Likewise.
1357         (mips_builtin_description): Replace target_flags with a predicate.
1358         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
1359         (dspr2_32): New availability predicates.
1360         (MIPS_BUILTIN): New macro.
1361         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
1362         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
1363         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
1364         Replace the TARGET_FLAGS parameters with AVAIL parameters.
1365         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
1366         (mips_dsp_32only_bdesc): Merge into...
1367         (mips_builtins): ...this new array.
1368         (mips_bdesc_map, mips_bdesc_arrays): Delete.
1369         (mips_init_builtins): Update after above changes.
1370         (mips_expand_builtin_1): Merge into...
1371         (mips_expand_builtin): ...here and update after above changes.
1372
1373 2008-06-12  Paul Brook  <paul@codesourcery.com>
1374
1375         * longlong.h (__arm__): Define count_leading_zeros.
1376         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
1377         (clzsi2, clzdi2): New functions.
1378         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
1379         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
1380         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
1381         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
1382         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
1383         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
1384         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
1385         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1386         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
1387         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
1388
1389 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
1390
1391         * config/m68k/m68k.c (m68k_tune_flags): New.
1392         (override_options): Compute m68k_tune_flags.
1393         (MULL_COST, MULW_COST): Update for various variants of CFV2.
1394         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
1395
1396 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1397
1398         PR middle-end/36506
1399         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
1400
1401 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1402
1403         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
1404         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
1405
1406 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1407
1408         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
1409         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
1410
1411 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1412
1413         PR middle-end/36506
1414         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
1415         reductions.
1416
1417 2008-06-12  Richard Guenther  <rguenther@suse.de>
1418
1419         PR tree-optimization/36345
1420         * tree-flow.h (struct ptr_info_def): Align escape_mask,
1421         add memory_tag_needed flag.
1422         (may_alias_p): Declare.
1423         * tree-ssa-alias.c (may_alias_p): Export.
1424         (set_initial_properties): Use memory_tag_needed flag.
1425         (update_reference_counts): Likewise.
1426         (reset_alias_info): Reset memory_tag_needed flag.
1427         (create_name_tags): Check memory_tag_needed flag.
1428         (dump_points_to_info_for): Dump it.
1429         * tree-ssa-structalias.c (struct variable_info): Remove
1430         directly_dereferenced flag.
1431         (new_var_info): Do not initialize it.
1432         (process_constraint_1): Do not set it.
1433         (update_alias_info): Set is_dereferenced flag.
1434         (set_uids_in_ptset): Use may_alias_p.
1435         (set_used_smts): Check memory_tag_needed flag.
1436         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
1437         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
1438         memory_tag_needed flag.
1439         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
1440         from broken design.
1441
1442 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
1443
1444         * config/i386/i386.c (ix86_compute_frame_layout): Disable
1445         red zone for w64 abi.
1446         (ix86_expand_prologue): Likewise.
1447         (ix86_force_to_memory): Likewise.
1448         (ix86_free_from_memory): Likewise.
1449
1450 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
1451
1452         PR target/36425
1453         * config/rs6000/rs6000.c (rs6000_override_options): Set
1454         rs6000_isel conditionally to the absence of comand line override.
1455         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
1456         Remove duplicate rs6000_isel setting.
1457         * config/rs6000/eabispe.h: Ditto.
1458
1459 2008-06-11  Richard Guenther  <rguenther@suse.de>
1460
1461         * alias.c (get_alias_set): Use the element alias-set for arrays.
1462         (record_component_aliases): For arrays and vectors do nothing.
1463         * c-common.c (strict_aliasing_warning): Handle the cases
1464         of alias set zero explicitly.
1465         * Makefile.in (dfp.o-warn): Add -Wno-error.
1466
1467 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1468
1469         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
1470         tune_32 tune_64.
1471         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
1472         tune_32 tune_64 to supported_defaults.  Allow values not
1473         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
1474         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
1475         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
1476         with_cpu_64 to generic for 64-bit-supporting configurations, not
1477         with_cpu.  Remove FIXMEs.
1478         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
1479         --with-arch-64, --with-tune-32, --with-tune-64): Document.
1480         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
1481         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
1482         arch_32 and arch_64.
1483
1484 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1485             Olivier Hainque  <hainque@adacore.com>
1486
1487         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
1488         Use DECL_SIZE_UNIT to retrieve the size of the field.
1489
1490 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1491
1492         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
1493         with function calls after declarations.  Lay out
1494         neon_float_type_node before further use.
1495
1496 2008-06-11  Richard Guenther  <rguenther@suse.de>
1497
1498         * tree-flow.h (may_point_to_global_var): Declare.
1499         * tree-ssa-alias.c (may_point_to_global_var): New function.
1500         * tree-ssa-sink.c (is_hidden_global_store): Use it.
1501
1502 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
1503
1504         * configure.ac: Teach that fido supports .debug_line.
1505         * configure: Regenerate.
1506
1507 2008-06-10  Tom Tromey  <tromey@redhat.com>
1508
1509         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
1510         debug hook.
1511
1512 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1513
1514         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
1515         (encode_decimal64, decode_decimal64, encode_decimal128,
1516         decode_decimal128): Reverse order of 32-bit parts of value if host
1517         and target endianness differ.
1518
1519 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
1520
1521         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
1522         Avoid division by 0.
1523         (tree_mod_pow2_value_transform): Likewise.
1524         (tree_ic_transform): Likewise.
1525         (tree_stringops_transform): Likewise.
1526         (tree_mod_subtract_transform): Likewise.
1527         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
1528         (copy_edges_for_bb): Likewise.
1529         (initialize_cfun): Likewise.
1530
1531 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1532
1533         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
1534         nonmemory_operand. Add "N" operand constraint.
1535         (*btsi): Ditto.
1536         (*jcc_btdi_mask_rex64): New instruction and split pattern.
1537         (*jcc_btsi_mask): Ditto.
1538         (*jcc_btsi_mask_1): Ditto.
1539
1540 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1541
1542         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
1543         TYPE_CANONICAL for copied element type.
1544
1545 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1546
1547         PR target/36473
1548         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
1549         Add m_CORE2 and m_GENERIC.
1550         * config/i386/predicates.md (bt_comparison_operator): New predicate.
1551         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
1552         (*btsi): Ditto.
1553         (*jcc_btdi_rex64): New instruction and split pattern.
1554         (*jcc_btsi): Ditto.
1555         (*jcc_btsi_1): Ditto.
1556         (*btsq): Fix Intel asm dialect operand order.
1557         (*btrq): Ditto.
1558         (*btcq): Ditto.
1559
1560 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
1561
1562         PR middle-end/36447
1563         * simplify-rtx.c (simplify_subreg): Add check for shift count 
1564         greater than size.
1565
1566 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
1567
1568         * doc/md.texi: Synchronize with later constraints.md change.
1569         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
1570         with a C implementation.
1571         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
1572         MFLO handling.
1573         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
1574         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
1575         when moving to and from MD_REGNUM.
1576         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
1577         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
1578         Handle byte and halfword moves.
1579         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
1580         separately.
1581         * config/mips/constraints.md (h): Turn into NO_REGS.
1582         (l, x): Update documentation.
1583         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
1584         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
1585         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
1586         (HILO): New mode iterator.
1587         (MOVE128): Add TI.
1588         (any_div): New code iterator.
1589         (u): Extend code attribute to div and udiv.
1590         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
1591         d_operand in the splitters.  Remove redundant CONST_INT checks.
1592         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
1593         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
1594         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
1595         accordingly, using normal moves instead of unspecs to move LO into
1596         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
1597         (<u>mulsidi3): Handle expansion in C code.
1598         (<u>mulsidi3_32bit_internal): Rename to...
1599         (<u>mulsidi3_32bit): ...this.
1600         (<u>mulsidi3_32bit_r4000): Fix insn separator.
1601         (*<u>mulsidi3_64bit): Rename to...
1602         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
1603         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
1604         to set LO and HI to the multiplication result.  Use a normal move
1605         for MFLO and an unspec for MFHI.
1606         (*<u>mulsidi3_64bit_parts): Replace with...
1607         (<u>mulsidi3_64bit_hilo): ...this new instruction.
1608         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
1609         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
1610         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
1611         instead of HI.  Split the instruction into a separate multiplication
1612         and MFHI if !TARGET_FIX_R4000.
1613         (<su>muldi3_highpart): Likewise.
1614         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
1615         and the "=h" clobber.
1616         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
1617         (<u>mulditi3): New expander.
1618         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
1619         (madsi): Remove "=h" clobber.
1620         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
1621         Force the modulus result to be a GPR and split the instruction into
1622         a division followed by an MFHI after reload.
1623         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
1624         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
1625         the MIPS16 HIGH define_split.
1626         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
1627         of acc<->gpr moves to "multi".
1628         (*movdi_64bit): Replace the single "x" alternative with
1629         alternatives for moving into and out of "a".
1630         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
1631         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
1632         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
1633         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
1634         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
1635         (movti): New expander.
1636         (*movti, *movti_mips16): New insns.
1637         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
1638         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
1639         (mthi<GPR:mode>_<HILO:mode>): Likewise.
1640         * config/mips/predicates.md (fpr_operand): Delete.
1641         (d_operand): New predicate.
1642
1643 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
1644
1645         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
1646         failure on some Bourne shells.
1647         (x86_64-*-*): Ditto.
1648
1649 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
1650
1651         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
1652
1653 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1654
1655         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
1656         (sparc-sun-solaris2*): Likewise.
1657
1658 2008-06-09  Arnaud Charlet  <charlet@adacore.com
1659
1660         * doc/install.texi: Update requirements to build the Ada compiler.
1661
1662 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
1663
1664         * df-scan.c (struct df_scan_problem_data): Remove the
1665         mw_link_pool alloc pool.
1666         (df_scan_free_internal): Don't free it.
1667         (df_scan_alloc): Don't allocate it.
1668         * df.h (struct df_link): Update comment.
1669
1670 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1671
1672         * except.h: Correct checks for when SJLJ exceptions must be used.
1673
1674 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1675
1676         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
1677         default.
1678         
1679 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
1680
1681         PR tree-optimization/36218
1682         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
1683         configure for the build system.
1684         (BUILD_LDFLAGS): Define.
1685         * configure: Regenerate.
1686         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
1687
1688 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
1689
1690         PR target/36424
1691         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
1692         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
1693         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
1694
1695 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
1696
1697         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
1698
1699 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
1700
1701         * config.gcc (Obsolete configurations): Remove list of
1702         configurations.
1703         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
1704         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
1705         targets matched by those patterns.
1706         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
1707         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
1708         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
1709         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
1710         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
1711         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1712         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
1713         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
1714         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
1715         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
1716         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
1717         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
1718         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
1719         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
1720         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
1721         Make code for Solaris 7 and greater unconditional for Solaris.
1722         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
1723         Remove --with-* handling.
1724         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
1725         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
1726         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
1727         LINK_OS_WINDISS_SPEC): Remove.
1728         * config/rs6000/sysv4.opt (mwindiss): Remove.
1729         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
1730         * configure: Regenerate.
1731         * doc/cpp.texi: Don't mention BeOS.
1732         * doc/extend.texi (interrupt): Don't mention MS1.
1733         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
1734         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
1735         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
1736         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
1737         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
1738         Remove.
1739         * doc/invoke.texi (MT Options): Remove.
1740         (-mwindiss): Remove.
1741         (CRIS Options): Remove cris-axis-aout references.
1742         (HPPA Options): Don't mention hppa1.1-*-pro.
1743         * doc/md.texi: (MorphoTech family): Remove.
1744         * libgcc2.c: Don't handle UWIN.
1745         * config/alpha/t-unicosmk: Remove.
1746         * config/alpha/unicosmk.h: Remove.
1747         * config/arm/kaos-arm.h: Remove.
1748         * config/arm/kaos-strongarm.h: Remove.
1749         * config/arm/strongarm-coff.h: Remove.
1750         * config/arm/strongarm-elf.h: Remove.
1751         * config/arm/strongarm-pe.h: Remove.
1752         * config/arm/t-strongarm-pe: Remove.
1753         * config/arm/t-xscale-coff: Remove.
1754         * config/arm/t-xscale-elf: Remove.
1755         * config/arm/xscale-coff.h: Remove.
1756         * config/arm/xscale-elf.h: Remove.
1757         * config/chorus.h: Remove.
1758         * config/cris/aout.h: Remove.
1759         * config/cris/aout.opt: Remove.
1760         * config/cris/t-aout: Remove.
1761         * config/i386/beos-elf.h: Remove.
1762         * config/i386/kaos-i386.h: Remove.
1763         * config/i386/ptx4-i.h: Remove.
1764         * config/i386/sco5.h: Remove.
1765         * config/i386/sco5.opt: Remove.
1766         * config/i386/sysv4-cpp.h: Remove.
1767         * config/i386/sysv5.h: Remove.
1768         * config/i386/t-beos: Remove.
1769         * config/i386/t-sco5: Remove.
1770         * config/i386/t-uwin: Remove.
1771         * config/i386/uwin.asm: Remove.
1772         * config/i386/uwin.h: Remove.
1773         * config/kaos.h: Remove.
1774         * config/mips/windiss.h: Remove.
1775         * config/mt: Remove directory.
1776         * config/pa/pa-osf.h: Remove.
1777         * config/pa/pa-pro-end.h: Remove.
1778         * config/pa/t-pro: Remove.
1779         * config/ptx4.h: Remove.
1780         * config/rs6000/beos.h: Remove.
1781         * config/rs6000/kaos-ppc.h: Remove.
1782         * config/rs6000/t-beos: Remove.
1783         * config/rs6000/windiss.h: Remove.
1784         * config/sh/kaos-sh.h: Remove.
1785         * config/sol2-6.h: Remove.
1786         * config/sparc/sol26-sld.h: Remove.
1787         * config/sparc/sysv4-only.h: Remove.
1788         * config/vax/bsd.h: Remove.
1789         * config/vax/t-memfuncs: Remove.
1790         * config/vax/ultrix.h: Remove.
1791         * config/vax/vaxv.h: Remove.
1792         * config/windiss.h: Remove.
1793
1794 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1795
1796         PR rtl-optimization/36438
1797         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
1798         for vector shifts with constant scalar shift operands.
1799
1800 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
1801
1802         * doc/invoke.texi: Document -march=xlr.
1803         * config/mips/xlr.md: New file.
1804         * config/mips/mips.md: Include it.
1805         (cpu): Add "xlr".
1806         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
1807         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
1808         (mips_rtx_cost_data): Likewise.
1809
1810 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
1811
1812         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
1813         PRE_INC and PRE_DEC cases.
1814
1815 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1816
1817         PR rtl-optimization/36419
1818         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
1819         the emitting jump insn.
1820
1821         PR target/36362
1822         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
1823         is not bool, boolify the whole *expr_p and convert to the desired type.
1824
1825 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1826
1827         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
1828         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
1829         Add omp_private_outer_ref hook, add another argument to
1830         omp_clause_default_ctor hook.
1831         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1832         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1833         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
1834         hook_tree_tree_tree_tree_null.
1835         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
1836         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
1837         * hooks.c (hook_tree_tree_tree_tree_null): New function.
1838         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
1839         * tree.def (OMP_TASK): New tree code.
1840         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
1841         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
1842         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
1843         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
1844         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
1845         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
1846         OMP_CLAUSE_COLLAPSE_EXPR): Define.
1847         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1848         (OMP_DIRECTIVE_P): Add OMP_TASK.
1849         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1850         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1851         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1852         and OMP_CLAUSE_UNTIED entries.
1853         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
1854         num_ops to 2.
1855         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1856         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1857         * tree-pretty-print.c (dump_omp_clause): Handle
1858         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1859         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1860         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1861         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
1862         warning about unsigned iterators.  Change decl/init/cond/incr
1863         arguments to TREE_VECs, check arguments for all collapsed loops.
1864         (c_finish_omp_taskwait): New function.
1865         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1866         ws_clauses.
1867         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
1868         default_function_array_conversion on init.  Add par_clauses argument.
1869         If decl is present in parallel's lastprivate clause, change it to
1870         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1871         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
1872         collapse count in clauses.
1873         (c_parser_omp_for, c_parser_omp_parallel): Adjust
1874         c_parser_omp_for_loop callers.
1875         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1876         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1877         (c_parser_omp_clause_name): Handle collapse and untied clauses.
1878         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1879         functions.
1880         (c_parser_omp_clause_schedule): Handle schedule(auto).
1881         Include correct location in the error message.
1882         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1883         and PRAGMA_OMP_CLAUSE_UNTIED.
1884         (OMP_TASK_CLAUSE_MASK): Define.
1885         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1886         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1887         * tree-nested.c (convert_nonlocal_omp_clauses,
1888         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1889         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1890         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1891         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1892         OMP_CLAUSE_DECL.
1893         (conver_nonlocal_reference, convert_local_reference,
1894         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
1895         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1896         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1897         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1898         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1899         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
1900         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
1901         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
1902         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1903         OMP_CLAUSE_UNTIED.
1904         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
1905         * c-common.h (c_finish_omp_taskwait): New prototype.
1906         * gimple-low.c (lower_stmt): Handle OMP_TASK.
1907         * tree-parloops.c (create_parallel_loop): Create 1 entry
1908         vectors for OMP_FOR_{INIT,COND,INCR}.
1909         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1910         (make_edges): Handle OMP_TASK.
1911         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
1912         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1913         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
1914         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
1915         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1916         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1917         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1918         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1919         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
1920         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
1921         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
1922         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
1923         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
1924         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
1925         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
1926         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
1927         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
1928         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
1929         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
1930         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
1931         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
1932         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
1933         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
1934         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
1935         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
1936         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
1937         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
1938         original iterator is present in lastprivate clause or if
1939         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
1940         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1941         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
1942         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
1943         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
1944         if it is set, lookup var in outer contexts too.  Handle
1945         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
1946         to be implicitly determined firstprivate for task regions.
1947         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
1948         if it is set, lookup var in outer contexts too.  Set
1949         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
1950         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
1951         OMP_CLAUSE_UNTIED.  Take region_type as last argument
1952         instead of in_parallel and in_combined_parallel.
1953         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1954         Adjust callers.
1955         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
1956         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
1957         (new_omp_context): Set default_kind to
1958         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
1959         (omp_region_type): New enum.
1960         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
1961         fields, add region_type.
1962         (new_omp_context): Take region_type as argument instead of is_parallel
1963         and is_combined_parallel.
1964         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
1965         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
1966         ctx->is_combined_parallel checks.
1967         (gimplify_omp_task): New function.
1968         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1969         OMP_CLAUSE_UNTIED.
1970         * omp-low.c (extract_omp_for_data): Use schedule(static)
1971         for schedule(auto).  Handle pointer and unsigned iterators.
1972         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
1973         Add loops argument.  Extract data for collapsed OMP_FOR loops.
1974         (expand_parallel_call): Assert sched_kind isn't auto,
1975         map runtime schedule to index 3.
1976         (struct omp_for_data_loop): New type.
1977         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
1978         Add loop, loops, collapse and iter_type fields.
1979         (workshare_safe_to_combine_p): Disallow combined for if
1980         iter_type is unsigned long long.  Don't combine collapse > 1 loops
1981         unless all bounds and steps are constant.  Adjust extract_omp_for_data
1982         caller.
1983         (expand_omp_for_generic): Handle pointer, unsigned and long long
1984         iterators.  Handle collapsed OMP_FOR loops.  Adjust
1985         for struct omp_for_data changes.  If libgomp function doesn't return
1986         boolean_type_node, add comparison of the return value with 0.
1987         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
1988         pointer, unsigned and long long iterators.  Adjust for struct
1989         omp_for_data changes.
1990         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
1991         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
1992         unsigned long long.  Allocate loops array, pass it to
1993         extract_omp_for_data.  For collapse > 1 loops use always
1994         expand_omp_for_generic.
1995         (omp_context): Add sfield_map and srecord_type fields.
1996         (is_task_ctx, lookup_sfield): New functions.
1997         (use_pointer_for_field): Use is_task_ctx helper.  Change first
1998         argument's type from const_tree to tree.  Clarify comment.
1999         In OMP_TASK disallow copy-in/out sharing.
2000         (build_sender_ref): Call lookup_sfield instead of lookup_field.
2001         (install_var_field): Add mask argument.  Populate both record_type
2002         and srecord_type if needed.
2003         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
2004         in srecord_type.
2005         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
2006         and DECL_FIELD_OFFSET.
2007         (scan_sharing_clauses): Adjust install_var_field callers.  For
2008         firstprivate clauses on explicit tasks allocate the var by value in
2009         record_type unconditionally, rather than by reference.
2010         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
2011         Use is_taskreg_ctx instead of is_parallel_ctx.
2012         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2013         (create_omp_child_function_name): Add task_copy argument, use
2014         *_omp_cpyfn* names if it is true.
2015         (create_omp_child_function): Add task_copy argument, if true create
2016         *_omp_cpyfn* helper function.
2017         (scan_omp_parallel): Adjust create_omp_child_function callers.
2018         Rename parallel_nesting_level to taskreg_nesting_level.
2019         (scan_omp_task): New function.
2020         (lower_rec_input_clauses): Don't run constructors for firstprivate
2021         explicit task vars which are initialized by *_omp_cpyfn*.  
2022         Pass outer var ref to omp_clause_default_ctor hook if
2023         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
2024         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
2025         OMP_CLAUSE_REDUCTION_INIT.
2026         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
2027         avoid duplicate setting of fields.  Handle
2028         OMP_CLAUSE_PRIVATE_OUTER_REF.
2029         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
2030         copy-out if TREE_READONLY, only copy-in.
2031         (expand_task_copyfn): New function.
2032         (expand_task_call): New function.
2033         (struct omp_taskcopy_context): New type.
2034         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
2035         New functions.
2036         (lower_omp_parallel): Rename to...
2037         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
2038         Call create_task_copyfn if srecord_type is needed.  Adjust
2039         sender_decl type.
2040         (task_shared_vars): New variable.
2041         (check_omp_nesting_restrictions): Warn if work-sharing,
2042         barrier, master or ordered region is closely nested inside OMP_TASK.
2043         Add warnings for barrier if closely nested inside of work-sharing,
2044         ordered, or master region.
2045         (scan_omp_1): Call check_omp_nesting_restrictions even for
2046         GOMP_barrier calls.  Rename parallel_nesting_level to
2047         taskreg_nesting_level.  Handle OMP_TASK.
2048         (lower_lastprivate_clauses): Even if some lastprivate is found on a
2049         work-sharing construct, continue looking for them on parent parallel
2050         construct.
2051         (lower_omp_for_lastprivate): Add lastprivate clauses
2052         to the beginning of dlist rather than end.  Adjust for struct
2053         omp_for_data changes.
2054         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
2055         not after it.  Handle collapsed OMP_FOR loops, adjust for
2056         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
2057         (get_ws_args_for): Adjust extract_omp_for_data caller.
2058         (scan_omp_for): Handle collapsed OMP_FOR
2059         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2060         (lower_omp_single_simple): If libgomp function doesn't return
2061         boolean_type_node, add comparison of the return value with 0.
2062         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
2063         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
2064         (parallel_nesting_level): Rename to...
2065         (taskreg_nesting_level): ... this.
2066         (is_taskreg_ctx): New function.
2067         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
2068         of is_parallel_ctx.
2069         (execute_lower_omp): Rename parallel_nesting_level to
2070         taskreg_nesting_level.
2071         (expand_omp_parallel): Rename to...
2072         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
2073         Call omp_task_call for OMP_TASK regions.
2074         (expand_omp): Adjust caller, handle OMP_TASK.
2075         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
2076
2077         * bitmap.c (bitmap_default_obstack_depth): New variable.
2078         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
2079         if argument is NULL and bitmap_default_obstack is already initialized.
2080         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
2081         at the end.
2082         * matrix-reorg.c (matrix_reorg): Likewise.
2083
2084 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
2085
2086         * config/i386/i386.md (*indirect_jump): Macroize using P
2087         mode iterator.  Remove !TARGET_64BIT from insn constraints.
2088         (*tablejump_1): Ditto.
2089         (*indirect_jump_rex64): Remove insn pattern.
2090         (*tablejump_1_rex64): Ditto.
2091         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
2092         and eh_return_si insn patterns.
2093
2094 2008-06-06  Richard Guenther  <rguenther@suse.de>
2095
2096         * tree-ssa-structalias.c (merge_smts_into): Remove.
2097         (find_what_p_points_to): Do not bother to compute the
2098         points-to set for pt_anything pointers.
2099         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
2100         for pt_anything pointers is ok.
2101
2102 2008-06-06  Jan Hubicka  <jh@suse.cz>
2103
2104         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
2105
2106 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2107
2108         * cgraph.c: Fix typos in comments.
2109         (cgraph_availability_names): Fix string typo.
2110         * fold-const.c: Fix typos in comments.
2111         (fold_binary): Fix typo in warning.
2112         * genautomata.c: Fix typos in comments.
2113         (check_presence_pattern_sets): Fix typo in local variable.
2114         (output_description): Fix typo in output.
2115         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
2116         * hwint.h: Likewise.
2117         * matrix-reorg.c (check_allocation_function): Likewise.
2118         * omega.c (smooth_weird_equations): Likewise.
2119         * auto-inc-dec.c: Fix typos in comments.
2120         * bb-reorder.c: Likewise.
2121         * builtins.c: Likewise.
2122         * c-common.c: Likewise.
2123         * c-cppbuiltin.c: Likewise.
2124         * c-parser.c: Likewise.
2125         * c-pretty-print.c: Likewise.
2126         * cfgcleanup.c: Likewise.
2127         * cfgexpand.c: Likewise.
2128         * cfghooks.c: Likewise.
2129         * cfglayout.c: Likewise.
2130         * cfgloopmanip.c: Likewise.
2131         * cgraphunit.c: Likewise.
2132         * coverage.c: Likewise.
2133         * dbxout.c: Likewise.
2134         * df-byte-scan.c: Likewise.
2135         * df-core.c: Likewise.
2136         * df-problems.c: Likewise.
2137         * df-scan.c: Likewise.
2138         * dfp.c: Likewise.
2139         * dominance.c: Likewise.
2140         * domwalk.c: Likewise.
2141         * dse.c: Likewise.
2142         * dwarf2out.c: Likewise.
2143         * emit-rtl.c: Likewise.
2144         * et-forest.c: Likewise.
2145         * function.c: Likewise.
2146         * function.h: Likewise.
2147         * gcc.c: Likewise.
2148         * gcov-io.c: Likewise.
2149         * gcov.c: Likewise.
2150         * gcse.c: Likewise.
2151         * genattrtab.c: Likewise.
2152         * ggc-page.c: Likewise.
2153         * gimplify.c: Likewise.
2154         * gthr-lynx.h: Likewise.
2155         * haifa-sched.c: Likewise.
2156         * ipa-cp.c: Likewise.
2157         * ipa-inline.c: Likewise.
2158         * ipa-prop.h: Likewise.
2159         * ipa-pure-const.c: Likewise.
2160         * ipa-struct-reorg.c: Likewise.
2161         * ipa-struct-reorg.h: Likewise.
2162         * ipa-type-escape.c: Likewise.
2163         * ipa.c: Likewise.
2164         * loop-doloop.c: Likewise.
2165         * mips-tfile.c: Likewise.
2166         * mkmap-flat.awk: Likewise.
2167         * mkmap-symver.awk: Likewise.
2168         * modulo-sched.c: Likewise.
2169         * omp-low.c: Likewise.
2170         * optabs.c: Likewise.
2171         * optabs.h: Likewise.
2172         * opts.c: Likewise.
2173         * passes.c: Likewise.
2174         * postreload-gcse.c: Likewise.
2175         * postreload.c: Likewise.
2176         * predict.c: Likewise.
2177         * pretty-print.h: Likewise.
2178         * profile.c: Likewise.
2179         * protoize.c: Likewise.
2180         * ra-conflict.c: Likewise.
2181         * real.c: Likewise.
2182         * recog.c: Likewise.
2183         * regclass.c: Likewise.
2184         * regs.h: Likewise.
2185         * reload.c: Likewise.
2186         * rtl-error.c: Likewise.
2187         * rtlanal.c: Likewise.
2188         * scan.h: Likewise.
2189         * sched-rgn.c: Likewise.
2190         * see.c: Likewise.
2191         * stmt.c: Likewise.
2192         * target.h: Likewise.
2193         * tree-dfa.c: Likewise.
2194         * tree-eh.c: Likewise.
2195         * tree-flow-inline.h: Likewise.
2196         * tree-inline.c: Likewise.
2197         * tree-into-ssa.c: Likewise.
2198         * tree-loop-distribution.c: Likewise.
2199         * tree-nested.c: Likewise.
2200         * tree-parloops.c: Likewise.
2201         * tree-pass.h: Likewise.
2202         * tree-pretty-print.c: Likewise.
2203         * tree-profile.c: Likewise.
2204         * tree-scalar-evolution.c: Likewise.
2205         * tree-sra.c: Likewise.
2206         * tree-ssa-alias-warnings.c: Likewise.
2207         * tree-ssa-ccp.c: Likewise.
2208         * tree-ssa-coalesce.c: Likewise.
2209         * tree-ssa-dom.c: Likewise.
2210         * tree-ssa-dse.c: Likewise.
2211         * tree-ssa-forwprop.c: Likewise.
2212         * tree-ssa-live.c: Likewise.
2213         * tree-ssa-live.h: Likewise.
2214         * tree-ssa-loop-im.c: Likewise.
2215         * tree-ssa-loop-ivopts.c: Likewise.
2216         * tree-ssa-loop-niter.c: Likewise.
2217         * tree-ssa-loop-prefetch.c: Likewise.
2218         * tree-ssa-phiopt.c: Likewise.
2219         * tree-ssa-phiprop.c: Likewise.
2220         * tree-ssa-sccvn.c: Likewise.
2221         * tree-ssa-ter.c: Likewise.
2222         * tree-ssa-threadupdate.c: Likewise.
2223         * tree-ssa.c: Likewise.
2224         * tree-vect-analyze.c: Likewise.
2225         * tree-vect-transform.c: Likewise.
2226         * tree-vectorizer.c: Likewise.
2227         * tree-vn.c: Likewise.
2228         * tree-vrp.c: Likewise.
2229         * tree.c: Likewise.
2230         * tree.def: Likewise.
2231         * tree.h: Likewise.
2232         * unwind-dw2-fde.c: Likewise.
2233         * unwind.inc: Likewise.
2234         * value-prof.c: Likewise.
2235         * vmsdbgout.c: Likewise.
2236
2237 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
2238
2239         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
2240         always place FP constants in the TOC for TARGET_POWERPC64.
2241         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
2242
2243 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
2244
2245         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
2246         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
2247         enable for TARGET_E500_DOUBLE.
2248         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
2249         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
2250         floating-point modes like integer modes for E500 double.
2251         (rs6000_legitimate_offset_address_p): Likewise.
2252         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
2253         addressing for DDmode for E500 double.
2254         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
2255         modes as using 64-bits of registers for E500 double.
2256         (spe_build_register_parallel): Do not handle DDmode or TDmode.
2257         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
2258         specially for E500 double.
2259         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
2260         TDmode for E500 double.
2261         (rs6000_gimplify_va_arg): Only handle SDmode in registers
2262         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
2263         (rs6000_split_multireg_move): Do not handle TDmode specially for
2264         E500 double.
2265         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
2266         using 64-bit registers for E500 double.
2267         (emit_frame_save): Do not handle DDmode specially for E500 double.
2268         (gen_frame_mem_offset): Likewise.
2269         (rs6000_function_value): Do not call spe_build_register_parallel
2270         for DDmode or TDmode.
2271         (rs6000_libcall_value): Likewise.
2272         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
2273         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
2274         for E500 double.
2275
2276 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
2277
2278         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
2279         in comments.
2280
2281 2008-06-04  Junjie Gu <jgu@tensilica.com>
2282
2283         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
2284         comparison for frame pointers.
2285
2286 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2287
2288         PR target/27386
2289         * config/avr/avr.h (PUSH_ROUNDING): Remove.
2290
2291 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2292
2293         PR target/30243
2294         * builtins.c (expand_builtin_signbit): Don't take lowpart when
2295         register is already smaller or equal to required mode. 
2296
2297 2008-06-04  Xinliang David Li  <davidxl@google.com>
2298
2299         * tree-call-cdce.c: New file. 
2300         (cond_dead_built_in_calls): New static variable.
2301         (input_domain): New struct.
2302         (check_pow): New function.
2303         (check_builtin_call): Ditto.
2304         (check_target_format): Ditto.
2305         (is_call_dce_candidate): Ditto.
2306         (gen_one_condition): Ditto.
2307         (gen_conditions_for_domain): Ditto.
2308         (get_domain): Ditto.
2309         (gen_conditions_for_pow_cst_base): Ditto.
2310         (gen_conditions_for_pow_int_base): Ditto.
2311         (gen_conditions_for_pow): Ditto.
2312         (get_no_error_domain): Ditto.
2313         (gen_shrink_wrap_conditions): Ditto.
2314         (shrink_wrap_one_built_in_call): Ditto.
2315         (shink_wrap_conditional_dead_built_in_calls): Ditto.
2316         (tree_call_cdce): Ditto.
2317         (gate_call_cdce): Ditto.
2318         (pass_call_cdce): New gimple pass.
2319         * passes.c: (init_optimization_passes): New pass.
2320         * tree-pass.h: New pass declaration.
2321         * opts.c (decode_options): New flag setting.
2322         * common.opt: Add -ftree-builtin-call-dce flag.
2323         * Makefile.in: Add new source file.
2324         * tempvar.def: New tv_id.
2325         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
2326
2327 2008-06-04  Richard Guenther  <rguenther@suse.de>
2328
2329         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
2330         (is_call_clobbered): Always check var_ann->call_clobbered.
2331         (mark_call_clobbered): Always set var_ann->call_clobbered.
2332         (clear_call_clobbered): Always clear var_ann->call_clobbered.
2333         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
2334         (reset_alias_info): Clear call clobbering info on MTAGs and
2335         globals as well.
2336         (set_pt_anything): Set pt_global_mem.
2337         (create_tag_raw): Adjust comment.
2338         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
2339
2340 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
2341             Maxim Kuvyrkov  <maxim@codesourcery.com>
2342
2343         * config/m68k/m68k.opt (mxgot): New option.
2344         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
2345         (m68k_output_addr_const_extra): New.
2346         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
2347         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
2348         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
2349         * doc/invoke.texi (M680x0 Options): Document -mxgot.
2350
2351 2008-06-04  Richard Guenther  <rguenther@suse.de>
2352
2353         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
2354         negative or non-representable offsets.
2355
2356 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2357
2358         * config/i386/i386.c (ix86_gen_leave): New.
2359         (ix86_gen_pop1): Likewise.
2360         (ix86_gen_add3): Likewise.
2361         (ix86_gen_sub3): Likewise.
2362         (ix86_gen_sub3_carry): Likewise.
2363         (ix86_gen_one_cmpl2): Likewise.
2364         (ix86_gen_monitor): Likewise.
2365         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
2366         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
2367         ix86_gen_one_cmpl2 and ix86_gen_monitor.
2368         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
2369         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
2370         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
2371         (ix86_expand_epilogue): Updated.
2372         (print_operand): Handle integer register operand for 'z'.
2373         (ix86_expand_strlensi_unroll_1): Likewise.
2374         (ix86_expand_strlen): Likewise.
2375         (ix86_expand_builtin): Likewise.
2376         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
2377         mov{q}/mov{l} and add{q}/add{l}.
2378
2379 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2380
2381         * config/i386/i386.md (P): New mode iterator.
2382         (SFmode push_operand splitter): Macroize DImode and SImode pushes
2383         using P mode iterator.
2384         (DFmode push_operand splitter): Ditto.
2385         (XFmode push_operand splitter): Ditto.
2386         (DFmode float_extend SFmode push_operand splitter): Ditto.
2387         (XFmode float_extend SFmode push_operand splitter): Do not generate
2388         SImode pushes for 64bit target.  Macroize Dimode and SImode
2389         pushes using P mode iterator.
2390         (XFmode float_extend DFmode push_operand splitter): Ditto.
2391
2392 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2393
2394         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
2395         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
2396         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
2397         return type to int.
2398         (ix86_call_abi_override): Remove check for call_used_regs.
2399
2400 2008-06-03  Richard Guenther  <rguenther@suse.de>
2401
2402         * tree-ssa-structalias.c (find_func_aliases): Add constraints
2403         for the lhs of calls if the return type contains pointers.
2404
2405 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2406
2407         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
2408         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
2409         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
2410         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
2411         of cfun and DEFAULT_ABI to deceide abi mode.
2412         (DEFAULT_ABI): New.
2413         (REG_PARM_STACK_SPACE): Removed.
2414         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
2415         (STACK_BOUNDARY): Use default target to deceide stack boundary.
2416         * config/i386/i386-protos.h (ix86_cfun_abi): New.
2417         (ix86_function_abi): Likewise.
2418         (ix86_function_type_abi): Likewise.
2419         (ix86_call_abi_override): Likewise.
2420         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
2421         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
2422         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
2423         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
2424         specific defines.
2425         (X86_64_REGPARM_MAX): New.
2426         (X86_64_SSE_REGPARM_MAX): New.
2427         (X64_REGPARM_MAX): New.
2428         (X64_SSE_REGPARM_MAX): New.
2429         (X86_32_REGPARM_MAX): New.
2430         (X86_32_SSE_REGPARM_MAX): New.
2431         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
2432         (ix86_function_regparm): Handle user calling abi.
2433         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
2434         by DEFAULT_ABI versus SYSV_ABI check.
2435         (ix86_reg_parm_stack_space): New.
2436         (ix86_function_type_abi): New.
2437         (ix86_call_abi_override): New.
2438         (ix86_function_abi): New.
2439         (ix86_cfun_abi): New.
2440         (init_cumulative_args): Call abi specific initialization.
2441         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
2442         (function_arg_64): Extend SSE_REGPARM_MAX check.
2443         (function_arg (): Remove TARGET_64BIT_MS_ABI.
2444         (ix86_pass_by_reference): Likewise.
2445         (ix86_function_value_regno_p): Likewise.
2446         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
2447         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
2448         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
2449         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
2450         (setup_incoming_varargs_64): Adjust regparm for call abi.
2451         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
2452         (ix86_va_start): Likewise.
2453         (ix86_gimplify_va_arg): Likewise.
2454         (ix86_expand_prologue): Likewise.
2455         (output_pic_addr_const): Likewise.
2456         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
2457         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
2458         (x86_output_mi_thunk): Likewise.
2459         (x86_function_profiler): Likewise.
2460         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
2461         (SYSV_ABI, MS_ABI): New constants.
2462         (DEFAULT_ABI): New.
2463         (init_regs): Add prototype of function in regclass.c file.
2464         (OVERRIDE_ABI_FORMAT): New.
2465         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
2466         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
2467         (OUTGOING_REG_PARM_STACK_SPACE): New.
2468         (ix86_reg_parm_stack_space): New prototype.
2469         (CUMULATIVE_ARGS): Add call_abi member.
2470         (machine_function): Add call_abi member.
2471         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
2472         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
2473
2474 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
2475
2476         PR target/34879
2477         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
2478         (avr_builtin_setjmp_frame_value): New function.
2479         * config/avr/avr.md (nonlocal_goto_receiver): Define.
2480         (nonlocal_goto): Define.
2481
2482 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
2483
2484         * config/mips/mips.c (mips_emit_loadgp): Return early if
2485         there is nothing do to, otherwise emit a blockage if
2486         !TARGET_EXPLICIT_RELOCS || crtl->profile.
2487         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
2488
2489 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2490
2491         * configure.ac: Drop unneeded backslash ending up in config.in.
2492         * acinclude.m4: Likewise.
2493         * config.in: Regenerate.
2494
2495 2008-05-26  Jan Hubicka  <jh@suse.cz>
2496
2497         * predict.c (maybe_hot_frequency_p): Break out of...
2498         (maybe_hot_bb_p): ... here.
2499         (maybe_hot_edge_p): New.
2500         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
2501         * basic-block.h (maybe_hot_edge_p): Declare.
2502
2503 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2504
2505         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
2506         (*cmpfp_<mode>_cc): Ditto.
2507         (*fp_jcc_8<mode>_387): Ditto.
2508         (*fop_<MODEF:mode>_2_i387): Ditto.
2509         (*fop_<MODEF:mode>_3_i387): Ditto.
2510         (*fop_xf_2_i387): Ditto.
2511         (*fop_xf_3_i387): Ditto.
2512
2513 2008-06-02  Tomas Bily  <tbily@suse.cz>
2514
2515         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
2516
2517 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2518
2519         * config/mips/mips.c (mips_valid_offset_p): New function.
2520         (mips_valid_lo_sum_p): Likewise.
2521         (mips_classify_address): Use them.
2522         (mips_force_address): New function.
2523         (mips_legitimize_address): Use it.
2524         * config/mips/mips.md (MOVE128): New mode iterator.
2525         (movtf): Require TARGET_64BIT.  Remove empty strings.
2526         (*movtf_internal): Rename to...
2527         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
2528         of "R" and use {,fp}{load,store} attributes instead of "multi".
2529         Use a separate define_split.
2530         (*movtf_mips16): New pattern.
2531
2532 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2533
2534         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
2535         * config/mips/mips.c (mips_expand_before_return): New function.
2536         (mips_expand_epilogue): Call it.
2537         * config/mips/mips.md (return): Turn into a define_expand.
2538         (*return): New insn.
2539
2540 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2541
2542         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
2543         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
2544         functions.  Do not emit uses and clobbers of CONCATs; individually
2545         use and clobber their operands.
2546         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
2547         gen_clobber, emit_use and gen_use.
2548         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
2549         (expand_builtin_return): Likewise.
2550         * cfgbuild.c (count_basic_blocks): Likewise.
2551         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2552         * explow.c (emit_stack_restore): Likewise.
2553         * expmed.c (extract_bit_field_1): Likewise.
2554         * expr.c (convert_move, emit_move_complex_parts): Likewise.
2555         (emit_move_multi_word, store_constructor): Likewise.
2556         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
2557         (thread_prologue_and_epilogue_insns): Likewise.
2558         * lower-subreg.c (resolve_simple_move): Likewise.
2559         * optabs.c (widen_operand, expand_binop): Likewise.
2560         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
2561         * reload.c (find_reloads): Likewise.
2562         * reload1.c (eliminate_regs_in_insn): Likewise.
2563         * stmt.c (expand_nl_goto_receiver): Likewise.
2564         * config/alpha/alpha.md (builtin_longjmp): Likewise.
2565         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2566         * config/arm/arm.c (arm_load_pic_register): Likewise.
2567         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
2568         * config/arm/arm.md (untyped_return): Likewise.
2569         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
2570         * config/avr/avr.c (expand_prologue): Likewise.
2571         * config/bfin/bfin.c (do_unlink): Likewise.
2572         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
2573         * config/cris/cris.c (cris_expand_prologue): Likewise.
2574         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2575         (machopic_legitimize_pic_address): Likewise.
2576         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
2577         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
2578         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
2579         (ix86_expand_convert_uns_didf_sse): Likewise.
2580         (ix86_expand_vector_init_general): Likewise.
2581         * config/ia64/ia64.md (eh_epilogue): Likewise.
2582         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
2583         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
2584         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
2585         (config/iq2000/iq2000.c): Likewise.
2586         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2587         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2588         (builtin_longjmp): Likewise.
2589         * config/mn10300/mn10300.md (call, call_value): Likewise.
2590         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
2591         * config/pdp11/pdp11.md (abshi2): Likewise.
2592         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2593         * config/s390/s390.c (s390_emit_prologue): Likewise.
2594         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
2595         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
2596         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
2597         * config/sh/sh.c (prepare_move_operands): Likewise.
2598         (output_stack_adjust, sh_expand_epilogue): Likewise.
2599         (sh_set_return_address, sh_expand_t_scc): Likewise.
2600         * config/sparc/sparc.c (load_pic_register): Likewise.
2601         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
2602         * config/spu/spu.c (spu_expand_epilogue): Likewise.
2603         * config/v850/v850.c (expand_epilogue): Likewise.
2604
2605 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
2606
2607         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
2608         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
2609         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
2610         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
2611         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
2612         stack pointer register.
2613         (output_movhi): Remove code for interrupt specific writing to the 
2614         stack pointer register.
2615
2616 2008-05-31  Richard Guenther  <rguenther@suse.de>
2617
2618         PR tree-optimization/34244
2619         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
2620         (tree_expr_nonzero_warnv_p): Likewise.
2621         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
2622         ssa_name_nonnegative_p.
2623         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
2624         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
2625         not tree_expr_nonzero_warnv_p.
2626
2627         PR tree-optimization/36262
2628         Revert
2629         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
2630
2631         PR tree-optimization/34244
2632         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
2633         (record_numbers_of_iterations): New function.
2634         (execute_vrp): Cache the numbers of iterations of loops.
2635         * tree-scalar-evolution.c (scev_reset_except_niters):
2636         New function.
2637         (scev_reset): Use scev_reset_except_niters.
2638         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
2639
2640 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2641
2642         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2643         __WORKAROUND_RETS when appropriate.
2644
2645 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2646
2647         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
2648         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
2649         mode iterator.
2650         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
2651         *fop_df_comm_sse insn patterns using MODEF mode iterator.
2652         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
2653         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
2654         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
2655         *fop_df_1_mixed insn patterns using MODEF mode iterator.
2656         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
2657         *fop_df_1_sse insn patterns using MODEF mode iterator.
2658         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
2659         *fop_df_1_i387 insn patterns using MODEF mode iterator.
2660         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
2661         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
2662         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
2663         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
2664         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
2665         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
2666         (*fop_xf_4_i387): Use <MODE> for mode attribute.
2667         (*fop_xf_5_i387): Ditto.
2668         (*fop_xf_6_i387): Ditto.
2669
2670 2008-05-30  Richard Guenther  <rguenther@suse.de>
2671
2672         * builtins.c (build_string_literal): Avoid generating
2673         a non-gimple_val result.
2674
2675 2008-05-30  DJ Delorie  <dj@redhat.com>
2676
2677         * exec-tool.in: Use an environment variable (private) instead of a
2678         file (shared) as a semaphore, so as to not break parallel builds.
2679
2680 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2681
2682         * optabs.c (maybe_encapsulate_block): Remove.
2683         (emit_libcall_block): Adjust accordingly.
2684         * optabs.h (maybe_encapsulate_block): Remove prototype.
2685
2686         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
2687         Don't use maybe_encapsulate_block.
2688
2689 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2690
2691         * config/rs6000/rs6000.c (rs6000_legitimize_address,
2692         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
2693         rtx is a SYMBOL_REF before calling get_pool_constant.
2694
2695 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2696
2697         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
2698
2699 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
2700
2701         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
2702         rather than OS names to choose INO_T_EQ definition.
2703         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
2704         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
2705
2706 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
2707
2708         PR target/36348
2709         * config/darwin-f.c: New.
2710         * config/t-darwin: Added rule to build darwin-f.o.
2711         * config.gcc: Defined new variable, fortran_target_objs.
2712         (*-*-darwin*): Set fortran_target_objs.
2713         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
2714         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
2715         * configure: Regenerated.
2716
2717 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2718
2719         PR target/35771
2720         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
2721         canonical type if needed.
2722
2723 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2724
2725         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
2726
2727 2008-05-29  Richard Guenther  <rguenther@suse.de>
2728
2729         PR tree-optimization/36343
2730         PR tree-optimization/36346
2731         PR tree-optimization/36347
2732         * tree-flow.h (clobber_what_p_points_to): Declare.
2733         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
2734         pointed-to variable is dereferenced is irrelevant to whether
2735         the pointer can access the pointed-to variable.
2736         (clobber_what_p_points_to): New function.
2737         * tree-ssa-alias.c (set_initial_properties): Use it.
2738         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
2739         call clobber check for NMTs.
2740
2741 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2742         
2743         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
2744         for printing gcov_type.
2745
2746 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2747
2748         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
2749         and the eh region information.
2750         * value-prof.c (gimple_move_stmt_histograms): New function.
2751         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
2752
2753 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
2754
2755         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
2756
2757 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
2758
2759         * value-prof.c (tree_ic_transform): Print counts.
2760         * tree-profile.c (tree_gen_ic_func_profiler):
2761         Clear __gcov_indreict_call_callee variable to avoid misattribution
2762         of the profile.
2763
2764 2008-05-28  Rafael Espindola  <espindola@google.com>
2765
2766         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
2767         invalid sharing.
2768
2769 2008-05-28  Richard Guenther  <rguenther@suse.de>
2770
2771         PR tree-optimization/36339
2772         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
2773         and clobbering code out of the loop.
2774
2775 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2776
2777         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
2778         letters defined.
2779
2780         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
2781         s390_contiguous_bitmask_p, s390_symref_operand_p,
2782         s390_check_symref_alignment, s390_reload_larl_operand,
2783         s390_reload_symref_address): New functions.
2784         (s390_branch_condition_mnemonic): Support compare and branch
2785         instructions.
2786         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
2787         and 'W' constraints.
2788         (s390_secondary_reload): Add secondary reloads for unaligned
2789         symbol refs or symbol refs to floating point or QI/TI mode
2790         integer values.
2791         (legitimate_address_p): Accept symbol references as addresses.
2792         (s390_expand_insv): Use rotate and insert selected bits
2793         instruction for insv when building for z10.
2794         (print_operand_address): Handle symbol ref addresses.
2795         (print_operand): Output modifier 'c' added for signed byte values.
2796         (s390_encode_section_info): Mark symbol refs with
2797         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
2798
2799         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
2800         (length attribute): RRF, RRR have 4 byte length.
2801         (FPALL, INTALL): New mode iterators added.
2802         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
2803         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
2804         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
2805         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
2806         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
2807         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
2808         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
2809         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
2810         instructions.
2811         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
2812         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
2813         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
2814         reload<INTALL:mode><P:mode>_toreg_z10,
2815         reload<FPALL:mode><P:mode>_tomem_z10,
2816         reload<FPALL:mode><P:mode>_toreg_z10,
2817         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
2818         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
2819         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
2820         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
2821         definition.
2822         (movmem, clrmem, cmpmem): New splitters added.
2823
2824         * config/s390/predicates.md (larl_operand): Use
2825         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
2826         SYMBOL_REF_ALIGN1_P.
2827         (s390_signed_integer_comparison,
2828         s390_unsigned_integer_comparison): New predicates.
2829
2830         * config/s390/s390-protos.h (s390_check_symref_alignment,
2831         s390_contiguous_bitmask_p, s390_reload_larl_operand,
2832         s390_reload_symref_address,
2833         s390_compare_and_branch_condition_mask): Prototypes added.
2834
2835         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
2836         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
2837         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
2838
2839 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2840
2841         * config/s390/s390.c (z10_cost): New cost function for z10.
2842         (s390_handle_arch_option, override_options): Support -march=z10 switch.
2843         (s390_issue_rate): Adjust issue rate for z10.
2844         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
2845         (processor_flags): Add PF_Z10.
2846         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
2847         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
2848         * gcc/config.gcc: Add z10.
2849
2850 2008-05-28  Richard Guenther  <rguenther@suse.de>
2851
2852         PR tree-optimization/36291
2853         * tree-flow. h (struct gimple_df): Remove var_anns member.
2854         * tree-flow-inline.h (gimple_var_anns): Remove.
2855         (var_ann): Simplify.
2856         * tree-dfa.c (create_var_ann): Simplify.
2857         (remove_referenced_var): Clear alias info from var_anns of globals.
2858         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2859         (delete_tree_ssa): Clear alias info from var_anns of globals.
2860         Do not free var_anns.
2861         (var_ann_eq): Remove.
2862         (var_ann_hash): Likewise.
2863
2864 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
2865
2866         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2867         and loongson2f entries.
2868         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2869         * config/mips/mips.h (processor_type): Add Loongson-2E
2870         and Loongson-2F entries.
2871         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2872         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2873         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2874         * doc/invoke.texi (MIPS Options): Document loongson2e
2875         and loongson2f processor names.
2876
2877 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2878
2879         PR target/35767
2880         PR target/35771
2881         * config/i386/i386.c (ix86_function_arg_boundary): Use
2882         alignment of canonical type.
2883         (ix86_expand_vector_move): Check unaligned memory access for
2884         all SSE modes.
2885
2886 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2887
2888         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2889         Moved to the front of file.
2890
2891 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
2892             H.J. Lu  <hongjiu.lu@intel.com>
2893
2894         * dwarf2out.c (current_fde): New.
2895         (add_cfi): Use it.
2896         (lookup_cfa:): Likewise.
2897         (dwarf2out_end_epilogue): Likewise.
2898         (dwarf2out_note_section_used): Likewise.
2899
2900 2008-05-27  Michael Matz  <matz@suse.de>
2901
2902         PR c++/27975
2903         * c.opt (Wenum-compare): New warning option.
2904         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
2905
2906 2008-05-27  Michael Matz  <matz@suse.de>
2907
2908         PR middle-end/36326
2909         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
2910         non-BLKmode types.
2911         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
2912         into memory as tail calls.
2913
2914 2008-05-27  Richard Guenther  <rguenther@suse.de>
2915
2916         PR tree-optimization/36339
2917         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
2918         pointers cause all addressable variables to be call clobbered.
2919
2920 2008-05-27  Richard Guenther  <rguenther@suse.de>
2921
2922         PR tree-optimization/36245
2923         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
2924
2925 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2926
2927         * config/s390/s390.md: Replace all occurences of the 'm'
2928         constraint with 'RT'.
2929
2930 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2931
2932         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
2933         definitions added.
2934         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
2935         "*movdi_64".
2936         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
2937         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
2938         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
2939
2940 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2941
2942         * reload.c: (find_reloads): Skip alternatives according to the
2943         "enabled" attribute. Constify the constraint variable.
2944         * recog.c (get_attr_enabled): Add default implementation.
2945         (extract_insn): Set the alternative_enabled_p array
2946         in the recog_data struct.
2947         (preprocess_constraints, constrain_operands): Skip
2948         alternatives according to the "enabled" attribute
2949         * recog.h (struct recog_data): New field alternative_enabled_p.
2950         (skip_alternative): New inline function.
2951         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
2952         (record_reg_classes): Skip alternative according to the
2953         "enabled" attribute.
2954
2955         * doc/md.texi: Add documention for the "enabled" attribute.
2956
2957 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2958
2959         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
2960         * postreload.c (reload_cse_simplify_operands): Replace 'm'
2961         constraint with TARGET_MEM_CONSTRAINT.
2962         * recog.c (asm_operand_ok, preprocess_constraints,
2963         constrain_operands): Likewise.
2964         * regclass.c (record_reg_classes): Likewise.
2965         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
2966         * reload1.c (maybe_fix_stack_asms): Likewise.
2967         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
2968         * recog.h: Adjust comment.
2969         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
2970         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
2971         * doc/md.texi: Add a note to description of 'm' constraint.
2972         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
2973
2974 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2975
2976         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
2977         that the bitfield is of integral type before testing its precision.
2978
2979 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2980             Sa Liu  <saliu@de.ibm.com> 
2981
2982         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
2983         __modti3, __udivti3, __umodti3 and __udivmodti4.
2984         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
2985         that implement TImode mul and div functions.
2986         * config/spu/multi3.c: New. Implement __multi3.
2987         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
2988         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
2989         functions on SPU.
2990
2991 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
2992
2993         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
2994         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
2995         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
2996         tls_sysv_suffix): New mode and mode attribute iterators.
2997         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
2998         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
2999         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
3000         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
3001         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
3002         iterators.
3003
3004 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3005
3006         PR tree-optimization/36329
3007         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
3008         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
3009         * cgraphbuild.c (initialize_inline_failed): Use the latter
3010         macro in lieu of the former.
3011         * ipa-inline.c (cgraph_mark_inline): Likewise.
3012         (cgraph_decide_inlining_of_small_function): Likewise.
3013         (cgraph_decide_inlining): Likewise.
3014         (cgraph_decide_inlining_incrementally): Likewise.
3015
3016 2008-05-26  Tristan Gingold  <gingold@adacore.com>
3017             Anatoly Sokolov  <aesok@post.ru>
3018
3019         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
3020         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
3021         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
3022         optimization for 'avr6' architecture.
3023
3024 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
3025
3026         PR target/34932
3027         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
3028
3029 2008-05-26  Richard Guenther  <rguenther@suse.de>
3030
3031         * tree-ssa-sccvn.c (expr_has_constants): Declare.
3032         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
3033
3034 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
3035
3036         PR middle-end/36253
3037         * caller-save.c (insert_restore): Verify alignment of spill space.
3038         (insert_save): Likewise.
3039         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
3040         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
3041         (STACK_SLOT_ALIGNMENT): Likewise.
3042         * function.c (LOCAL_ALIGNMENT): Removed.
3043         (get_stack_local_alignment): New.
3044         (assign_stack_local): Use it.  Set alignment on stack slot.
3045         (assign_stack_temp_for_type): Use get_stack_local_alignment.
3046         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
3047         (STACK_SLOT_ALIGNMENT): New.
3048         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
3049         stack slot in XFmode.
3050
3051         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
3052
3053 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
3054
3055         PR/36321
3056         * config/i386/i386.md (allocate_stack_worker_64): Make sure
3057         argument operand in rax isn't removed.
3058
3059 2008-05-26  Richard Guenther  <rguenther@suse.de>
3060
3061         PR middle-end/36300
3062         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
3063         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
3064
3065 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3066
3067         PR bootstrap/36331
3068         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
3069
3070 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
3071
3072         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
3073         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
3074
3075 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3076
3077         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
3078         build a trampoline if we don't want one.
3079         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
3080         return zero for nested functions if we don't want a trampoline.
3081
3082 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3083
3084         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
3085
3086 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3087
3088         PR fortran/18428
3089         * c.opt: Removed undocumented option '-lang-fortran'.
3090         * c-common.h: Removed global variable 'lang_fortran'.
3091         * c-opts.c (c_common_handle_option): Removed code to handle
3092         option '-lang-fortran'. Updated includes.
3093         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
3094         definition of '__GFORTRAN__'.
3095         (define__GNUC__): Reimplemented to use BASEVER and
3096         cpp_define_formatted.
3097         (builtin_define_with_value_n): Removed.
3098         * c-incpath.h: Renamed to ...
3099         * incpath.h: ... this.
3100         * c-incpath.c: Renamed to ...
3101         * incpath.c: ... this. Updated includes.
3102         * fix-header.c: Updated includes.
3103         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
3104         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
3105         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
3106
3107 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3108
3109         * tree.h: Update the table of flags used on tree nodes.
3110         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
3111         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
3112         (FORCED_LABEL): Add access check.
3113         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
3114         (ASM_INPUT_P): Likewise.
3115         (ASM_VOLATILE_P): Likewise.
3116         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
3117         (OMP_SECTION_LAST): Access private_flag directly.
3118         (OMP_RETURN_NOWAIT): Likewise.
3119         (OMP_PARALLEL_COMBINED): Likewise.
3120         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
3121         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
3122         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
3123         deprecated_flag directly.
3124
3125 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3126
3127         * final.c (frame_pointer_needed): Removed.
3128         * flags.h (frame_pointer_needed): Likewise.
3129
3130         * function.h (rtl_data): Add frame_pointer_needed.
3131         (frame_pointer_needed): New.
3132
3133 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
3134
3135         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
3136
3137 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
3138
3139         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
3140         SRC is a REG.
3141
3142 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
3143
3144         * c-common.c (strip_array_types): Move function to..
3145         * tree.c: ..here.
3146         (get_inner_array_type): Delete.
3147         * c-common.h (strip_array_types): Move declaration to..
3148         * tree.h: ..here.
3149         (get_inner_array_type): Delete.
3150         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
3151         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
3152         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
3153         * config/pa/pa.c (emit_move_sequence): Likewise.
3154
3155 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3156
3157         * config/i386/i386.md (*sse_prologue_save_insn): Set length
3158         attribute to 34.
3159
3160 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
3161
3162         * function.c: Include target hook for nonlocal_goto frame value.
3163
3164 2008-05-24  Richard Guenther  <rguenther@suse.de>
3165
3166         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
3167         variable can be only accessed through a pointer or a union.
3168
3169 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3170
3171         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
3172         * doc/extend.texi: Likewise.
3173
3174 2008-05-23  DJ Delorie  <dj@redhat.com>
3175
3176         * config/m32c/jump.md (untyped_call): Add.
3177
3178         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
3179         for A24 to PSImode.
3180         (m32c_address_cost): Detail costs for indirect offsets.
3181
3182 2008-05-23  Rafael Espindola  <espindola@google.com>
3183
3184         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
3185         if a node is a SUBREG.
3186         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
3187         is a SUBREG.
3188
3189 2008-05-23  Paul Brook  <paul@codesourcery.com>
3190             Carlos O'Donell  <carlos@codesourcery.com>
3191
3192         * doc/extend.texi: Clarify use of __attribute__((naked)).
3193         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3194         * target.h (gcc_target): Add allocate_stack_slots_for_args.
3195         * function.c (use_register_for_decl): Use
3196         targetm.calls.allocate_stack_slots_for_args.
3197         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3198         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
3199         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
3200
3201 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3202
3203         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
3204
3205 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
3206
3207         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
3208         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
3209         is only rounded once.
3210
3211 2008-05-23  Richard Guenther  <rguenther@suse.de>
3212
3213         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
3214
3215 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
3216             Jakub Jelinek  <jakub@redhat.com>
3217
3218         PR target/36079
3219         * configure.ac: Handle --enable-cld.
3220         * configure: Regenerated.
3221         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
3222         * config/i386/i386.h (struct machine_function): Add needs_cld field.
3223         (ix86_current_function_needs_cld): New define.
3224         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
3225         (cld): New isns pattern.
3226         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
3227         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
3228         * config/i386/i386.opt (mcld): New option.
3229         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
3230         TARGET_CLD and ix86_current_function_needs_cld.
3231         (override_options): Use -mcld by default for 32-bit code if
3232         USE_IX86_CLD.
3233
3234         * doc/install.texi (Options specification): Document --enable-cld.
3235         * doc/invoke.texi (Machine Dependent Options)
3236         [i386 and x86-64 Options]: Add -mcld option.
3237         (Intel 386 and AMD x86-64 Options): Document -mcld option.
3238
3239 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
3240         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
3241         (return_in_memory_64): Likewise.
3242         (return_in_memory_ms_64): Likewise.
3243
3244 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3245
3246         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
3247         * builtins.c (fold_builtin_fpclassify): New.
3248         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
3249         * builtins.def (BUILT_IN_FPCLASSIFY): New.
3250         * c-common.c (handle_type_generic_attribute): Adjust to accept
3251         fixed arguments before an elipsis.
3252         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
3253         * doc/extend.texi: Document __builtin_fpclassify.
3254
3255 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
3256
3257         * omp-low.c (gate_expand_omp_ssa): Remove.
3258         (pass_expand_omp_ssa): Remove.
3259         (gate_expand_omp): Do not check for flag_openmp_ssa.
3260         * common.opt (-fopenmp-ssa): Remove.
3261         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
3262
3263 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3264
3265         * config/sh/sh.opt (mfixed-range): New option.
3266         * config/sh/sh-protos.h (sh_fix_range): Declare.
3267         * config/sh/sh.c (sh_fix_range): New function.
3268         * config/sh/sh.h (sh_fixed_range_str): Declare.
3269         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
3270         is not empty.
3271         * doc/invoke.texi (SH Options): Document -mfixed-range.
3272
3273 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
3274
3275         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
3276         it before the redeclaration.
3277
3278 2008-05-22  Anatoly Sokolov <aesok@post.ru>
3279
3280         * config/avr/avr.c (get_sequence_length): Add new function.
3281         (expand_prologue, expand_epilogue): Remove duplicate code.
3282
3283 2008-05-22  Rafael Espindola  <espindola@google.com>
3284
3285         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
3286         sharing.
3287
3288 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
3289
3290         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
3291         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
3292
3293         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
3294         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
3295         (vect_update_misalignment_for_peel): Likewise.
3296         (vector_alignment_reachable_p): Likewise.
3297         * tree-vect-transform.c (vectorizable_load): Likewise.
3298         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
3299         (get_vectype_for_scalar_type): Pass mode of scalar_type
3300         to UNITS_PER_SIMD_WORD.
3301
3302         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
3303         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
3304         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3305         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3306         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3307
3308 2008-05-22  Ira Rosen  <irar@il.ibm.com>
3309
3310         PR tree-optimization/36293
3311         * tree-vect-transform.c (vect_transform_strided_load): Don't check
3312         if the first load must be skipped because of a gap.
3313
3314 2008-05-22  Richard Guenther  <rguenther@suse.de>
3315
3316         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
3317         more cases of offset disambiguation that is possible if
3318         strict-aliasing rules apply.
3319         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
3320         for basic offset and type-based disambiguation.
3321
3322 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3323
3324         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
3325         ix86_expand_vector_set on V16QImode for SSE4.1.
3326
3327 2008-05-21  Tom Tromey  <tromey@redhat.com>
3328
3329         * c.opt (Wimport): Mark as undocumented.
3330         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
3331         -Wno-import.
3332         (Warning Options): Likewise.
3333         * doc/cppopts.texi: Don't mention -Wimport.
3334
3335 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
3336
3337         PR tree-optimization/36287
3338         PR tree-optimization/36286
3339         * lambda-code.c (build_access_matrix): Do not use the loop->num
3340         for computing the number of induction variables: use the loop depth
3341         instead.
3342
3343 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
3344
3345         PR/36280
3346         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
3347         option -f(no-)leading-underscore.
3348
3349 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3350
3351         * config/i386/i386.c (ix86_expand_vector_init_general): Use
3352         GET_MODE_NUNITS (mode).
3353
3354 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
3355
3356         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
3357         (-mmulhw): Add 464 to description.
3358         (-mdlmzb): Likewise.
3359         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
3360         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
3361         464fp entries.
3362         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
3363         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
3364         * config/rs6000/rs6000.md: Update comments for 464.
3365
3366 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
3367
3368         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
3369
3370 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3371
3372         * config/i386/sse.md (vec_extractv4sf): Removed.
3373         (vec_extractv2df): Likewise.
3374         (vec_extractv2di): Likewise.
3375         (vec_extractv4si): Likewise.
3376         (vec_extractv8hi): Likewise.
3377         (vec_extractv16qi): Likewise.
3378         (vec_extract<mode>): New.
3379
3380 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3381
3382         * config/i386/sse.md (vec_setv4sf): Removed.
3383         (vec_setv2df): Likewise.
3384         (vec_setv2di): Likewise.
3385         (vec_setv4si): Likewise.
3386         (vec_setv8hi): Likewise.
3387         (vec_setv16qi): Likewise.
3388         (vec_set<mode>): New.
3389
3390 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3391
3392         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
3393         goto for vec_concat and vec_interleave.
3394
3395 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3396
3397         * config/i386/sse.md (vec_initv4sf): Removed.
3398         (vec_initv2df): Likewise.
3399         (vec_initv2di): Likewise.
3400         (vec_initv4si): Likewise.
3401         (vec_initv8hi): Likewise.
3402         (vec_initv16qi): Likewise.
3403         (vec_init<mode>): New.
3404
3405 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
3406
3407         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
3408
3409 2008-05-21  Tom Tromey  <tromey@redhat.com>
3410
3411         * ggc-zone.c (lookup_page_table_if_allocated): New function.
3412         (zone_find_object_offset): Likewise.
3413         (gt_ggc_m_S): Likewise.
3414         (highest_bit): Likewise.
3415         * ggc-page.c (gt_ggc_m_S): New function.
3416         * stringpool.c (string_stack): Remove.
3417         (init_stringpool): Update.
3418         (ggc_alloc_string): Use ggc_alloc.
3419         (maybe_delete_ident): New function.
3420         (ggc_purge_stringpool): Likewise.
3421         (gt_ggc_m_S): Remove.
3422         * ggc-common.c (ggc_protect_identifiers): New global.
3423         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
3424         ggc_protect_identifiers.
3425         * ggc.h (ggc_protect_identifiers): Declare.
3426         (gt_ggc_m_S): Update.
3427         (ggc_purge_stringpool): Declare.
3428         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
3429         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
3430         special case.
3431         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
3432
3433 2008-05-21  David S. Miller  <davem@davemloft.net>
3434
3435         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
3436         tmake_file.
3437
3438 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
3439
3440         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
3441         once finished.
3442
3443 2008-05-20  David Daney  <ddaney@avtrex.com>
3444
3445         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
3446         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
3447         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3448         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3449         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
3450         (atomic_hiqi_op): New define_code_iterator.
3451         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
3452         mips_expand_compare_and_swap_12.
3453         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
3454         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
3455         (sync_<optab><mode>, sync_old_<optab><mode>,
3456         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
3457         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
3458         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
3459         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
3460         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
3461         (test_and_set_12): New insn.
3462         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
3463         sync_new_<optab><mode>, sync_old_nand<mode>,
3464         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
3465         clobber to operand 0 for SI and DI mode insns.
3466         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
3467         mips_gen_fn_4): New typedefs.
3468         (mips_gen_fn_ptrs): Define new union type.
3469         (mips_expand_compare_and_swap_12): Remove declaration.
3470         (mips_expand_atomic_qihi): Declare function.
3471         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
3472         (mips_expand_atomic_qihi): ... this.  Use new generator function
3473         parameter.
3474         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
3475         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
3476         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
3477         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
3478         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
3479         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
3480         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
3481         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
3482         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
3483         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
3484         New macros.
3485
3486 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
3487
3488         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
3489         the missing break.
3490
3491 2008-05-20  Anatoly Sokolov <aesok@post.ru>
3492
3493         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
3494         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
3495         (avr_attribute_table): Add 'OS_main' function attribute.
3496         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
3497         functions with 'OS_main' attribute.
3498
3499 2008-05-20  Richard Guenther  <rguenther@suse.de>
3500
3501         PR tree-optimization/35204
3502         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
3503         helper, split out from ...
3504         (DFS): ... here.  Make the DFS walk non-recursive.
3505
3506 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
3507             Jan Sjodin  <jan.sjodin@amd.com>
3508
3509         PR tree-optimization/36181
3510         * tree-parloops.c (loop_has_vector_phi_nodes): New.
3511         (parallelize_loops): Don't parallelize when the loop has vector
3512         phi nodes.
3513
3514 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3515             Sebastian Pop  <sebastian.pop@amd.com>
3516
3517         * tree-loop-linear.c (gather_interchange_stats): Look in the access
3518         matrix, and never look at the tree representation of the memory
3519         accesses.
3520         (linear_transform_loops): Computes parameters and access matrices.
3521         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
3522         when fails.
3523         (access_matrix_get_index_for_parameter): New.
3524         * tree-data-ref.h (struct access_matrix): New.
3525         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
3526         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
3527         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
3528         am_vector_index_for_loop): New.
3529         (struct data_reference): Add field access_matrix.
3530         (DR_ACCESS_MATRIX): New.
3531         (compute_data_dependences_for_loop): Update declaration.
3532         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
3533         * lambda.h (lambda_vector_vec_p): Declared.
3534         * lambda-code.c: Depend on pointer-set.h.
3535         (lambda_collect_parameters_from_af, lambda_collect_parameters,
3536         av_for_af_base, av_for_af, build_access_matrix,
3537         lambda_compute_access_matrices): New.
3538         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
3539
3540 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
3541
3542         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
3543         $SOURCEDIR/include.
3544
3545 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3546             Sebastian Pop  <sebastian.pop@amd.com>
3547
3548         PR tree-optimization/36206
3549         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
3550         FOLD_CONVERSIONS.
3551         (instantiate_scev_1): Rename flags to fold_conversions.
3552         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
3553         outeside instantiation_loop.
3554         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
3555         (evolution_function_is_affine_or_constant_p): Removed.
3556         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
3557         instantiate_scev.
3558         (analyze_siv_subscript): Pass in the loop nest number.
3559         Call evolution_function_is_affine_in_loop instead of 
3560         evolution_function_is_affine_p.
3561         (analyze_overlapping_iterations): Pass in the loop nest number.
3562
3563 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3564             Sebastian Pop  <sebastian.pop@amd.com>
3565
3566         PR tree-optimization/36206
3567         * tree-chrec.h (chrec_fold_op): New.
3568         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
3569         and other trees.
3570
3571 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
3572
3573         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
3574         (DIRS_EQ): New.
3575         (remove_duplicates): Do not set inode on non-inode systems.
3576         Use DIRS_EQ.
3577
3578 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3579
3580         * config.gcc (tm_file): Update comments about relative pathnames.
3581
3582 2008-05-20  Richard Guenther  <rguenther@suse.de>
3583
3584         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
3585         * tree-ssa-sccvn.c (process_scc): Likewise.
3586         * tree-ssa-sink.c (execute_sink_code): Likewise.
3587         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
3588         * tree-vrp.c (process_assert_insertions): Likewise.
3589         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3590         (perform_tree_ssa_dce): Likewise.
3591         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3592         (dump_dominator_optimization_stats): Likewise.
3593         * tree-vectorizer.c (vectorize_loops): Likewise.
3594
3595 2008-05-20  Richard Guenther  <rguenther@suse.de>
3596
3597         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
3598
3599 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
3600
3601         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
3602         (ix86_i386elf_return_in_memory): Likewise.
3603         (ix86_i386interix_return_in_memory): Likewise.
3604         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
3605         (SUBTARGET_RETURN_IN_MEMORY): New.
3606         * config/i386/i386elf.h: Likewise.
3607         * config/i386/ptx4-i.h: Likewise.
3608         * config/i386/sol2-10.h: Likewise.
3609         * config/i386/sysv4.h: Likewise.
3610         * config/i386/vx-common.h: Likewise.
3611         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
3612         * config/i386/i386.c (ix86_return_in_memory): Made static and
3613         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
3614         (ix86_i386elf_return_in_memory): Removed.
3615         (ix86_i386interix_return_in_memory): Removed.
3616         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
3617         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
3618
3619 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
3620
3621         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
3622
3623 2008-05-19  Xinliang David Li  <davidxl@google.com>
3624
3625         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
3626         * opts.c: Ditto.
3627         * common.opt: Ditto.
3628         * doc/invoke.texi: Ditto.
3629
3630 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3631
3632         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
3633         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
3634
3635 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3636
3637         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
3638         sizes of operand array from 8/4 to 4/2.
3639         (ix86_expand_vector_init_general): Change size of operand array
3640         from 32 to 16.  Remove op0, op1 and half_mode.
3641
3642 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3643
3644         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
3645         (ix86_expand_vector_init_interleave): Likewise.
3646         (ix86_expand_vector_init_general): Use them.  Assert
3647         word_mode == SImode when n_words == 4.
3648
3649 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
3650
3651         * config/i386/i386.c (ix86_secondary_reload): New static function.
3652         (TARGET_SECONDARY_RELOAD): New define.
3653         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
3654         * config/i386/i386.md (reload_outqi): Remove.
3655
3656 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3657
3658         PR middle-end/35509
3659         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
3660         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
3661         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
3662         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
3663         (fold_builtin_1): Likewise.
3664         * builtins.def (BUILT_IN_ISINF_SIGN): New.
3665         c-common.c (check_builtin_function_arguments): Handle
3666         BUILT_IN_ISINF_SIGN.
3667         * doc/extend.texi: Document __builtin_isinf_sign.
3668         * fold-const.c (operand_equal_p): Handle COND_EXPR.
3669
3670 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
3671
3672         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
3673         EH cleanup at the end of the pass, search for those that have been
3674         turned into forwarder blocks and do the cleanup on their successor.
3675
3676 2008-05-18  Richard Guenther  <rguenther@suse.de>
3677
3678         * tree-cfg.c (verify_gimple_expr): Allow conversions from
3679         pointers to sizetype and vice versa.
3680
3681 2008-05-18 Xinliang David Li   <davidxl@google.com>
3682
3683         * gcc/tree-ssa-dce.c: Coding style fix.
3684         (check_pow): Documentation comment. 
3685         (check_log): Documenation comment. Coding style fix.
3686         (is_unnecessary_except_errno_call): Ditto.
3687         (gen_conditions_for_pow): Ditto.
3688         (gen_conditions_for_log): Ditto.
3689         (gen_shrink_wrap_conditions): Ditto.
3690         (shrink_wrap_one_built_in_calls): Ditto.
3691         * gcc/doc/invoke.texi: Better documentation string.
3692         * ChangeLog: Fix wrong change log entries from 
3693         May 17 checkin on function call DCE.
3694
3695 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
3696
3697         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
3698
3699 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
3700
3701         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
3702         * df-problems.c (simulation routines): Fixed block comment to
3703         properly say how to add forwards scanning functions.
3704         
3705 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3706
3707         * tree-inline.c (setup_one_parameter): Remove dead code.
3708
3709 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3710
3711         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
3712         a BIT_AND_EXPR only for an INTEGER_TYPE.
3713
3714 2008-05-17 Xinliang David Li   <davidxl@google.com>
3715
3716         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
3717         (check_pow, check_log, is_unnecessary_except_errno_call): New 
3718         functions to check for eliminating math functions that are pure 
3719         except for setting errno.
3720         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
3721         general condition expressions for shrink-wrapping pow/log calls.
3722         (gen_shrink_wrap_conditions): Ditto.
3723         (shrink_wrap_one_built_in_call): Ditto.
3724         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
3725         (mark_operand_necessary): If debugging, output if OP is necessary.
3726         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
3727         unnecessary.
3728         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
3729         opt level >= 2.
3730         * gcc/common.opt: New user flag -ftree-builtin-dce.
3731         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
3732
3733 2008-05-16  David S. Miller  <davem@davemloft.net>
3734
3735         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
3736         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3737
3738 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
3739
3740         PR target/36246
3741         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
3742
3743 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3744
3745         * ifcvt.c (dead_or_predicable): Rename
3746         df_simulate_one_insn_backwards to df_simulate_one_insn.
3747         * recog.c (peephole2_optimize): Ditto.
3748         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
3749         Ditto.
3750         * df.h: Rename df_simulate_one_insn_backwards to
3751         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
3752         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
3753         scanning of defs and uses.
3754         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
3755         (df_simulate_one_insn_forwards): Removed.
3756
3757 2008-05-16  Doug Kwan  <dougkwan@google.com>
3758
3759         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
3760         QNaN & SNaN.
3761         (real_from_string): Handle NaNs and Inf as approriate.
3762
3763 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3764
3765         * doc/gty.texi (Source Files Containing Type Information): Note
3766         that headers should appear first in the gtfiles list.
3767
3768 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3769
3770         * tree.def (COND_EXEC): Properly documented this code.
3771
3772 2008-05-16  Diego Novillo  <dnovillo@google.com>
3773
3774         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
3775         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
3776         the new field.
3777
3778 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3779
3780         * tree-ssa-dse (max_stmt_uid): Removed.
3781         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
3782         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
3783         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
3784         * function.h (cfun.last_stmt_uid): New field.
3785         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
3786         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
3787         New functions.
3788         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
3789         (create_stmt_ann): Initialize the ann->uid field.
3790         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
3791         with new calls.
3792         * tree-flow.h (renumber_gimple_stmt_uids): New function.
3793
3794 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3795
3796         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
3797         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
3798         (init_empty_tree_cfg): Call it.
3799
3800 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3801
3802         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
3803         Update all users.
3804
3805 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3806
3807         * doc/invoke.text (-fdump-tree-*-verbose): New option.
3808         * tree-dump.c (dump_options): New verbose option.
3809         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
3810         Add verbose dump.
3811         * tree-pass.h (TDF_VERBOSE): New dump flag.
3812         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3813         (tree-flow.h): Added include.
3814         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
3815
3816 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3817
3818         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
3819
3820         From Jie Zhang  <jie.zhang@analog.com>
3821         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3822         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
3823         mcpu=bf561-none and mcpu=bf561-0.2.
3824         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3825         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3826         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3827         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3828         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
3829         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
3830         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
3831         option.
3832         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
3833         (cputype_selected): Remove.
3834         (bfin_handle_option): Don't use cputype_selected.
3835         (override_options): When no mcpu option, enable all workarounds.
3836         Don't use bfin_workarounds.
3837         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
3838         processor type.
3839         (DEFAULT_CPU_TYPE): Don't define.
3840
3841 2008-05-16  Richard Guenther  <rguenther@suse.de>
3842
3843         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
3844         on deletion of the last stmt.
3845
3846 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3847
3848         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
3849         V8HImode for SSE2 and V16QImode for SSE4.1.
3850
3851 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3852
3853         * cgraph.h (compute_inline_parameters): Made public.
3854         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
3855         variable_generate_summary, function_write_summary,
3856         variable_write_summary, variable_read_summary.  Added generate_summary,
3857         write_summary, read_summary.
3858         * cgraphunit.c (cgraph_process_new_functions): Changed call from
3859         pass_ipa_inline.function_generate_summary, to
3860         compute_inline_parameters. 
3861         * ipa-inline.c (compute_inline_parameters): Made public and added
3862         node parameter.
3863         (compute_inline_parameters_for_current): New function.
3864         (pass_inline_param): Now calls compute_inline_parameters_for_current.
3865         (inline_generate_summary): Removed parameter and made to loop over
3866         all cgraph nodes.
3867         (pass_ipa_inline): Updated for new IPA_PASS structure.
3868         * passes.c (execute_ipa_summary_passes): Now is called once per
3869         pass rather than once per node*pass.
3870         
3871 2008-05-15  Anatoly Sokolov <aesok@post.ru>
3872
3873         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
3874         avr_have_mul_p, avr_asm_only_p): Remove variables.
3875         (avr_override_options): Remove initialization of removed variables.
3876         (avr_file_start):  Convert removed variables to fields of 
3877         'struct base_arch_s *avr_current_arch'. 
3878         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3879         (AVR_HAVE_MUL): (Ditto.).
3880         (AVR_HAVE_MOVW): (Ditto.).
3881         (AVR_HAVE_LPMX): (Ditto.). 
3882         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
3883         avr_asm_only_p): Remove declaration.
3884
3885 2008-05-15  Diego Novillo  <dnovillo@google.com>
3886
3887         * config/arm/arm.c (arm_return_in_memory): Fix return type.
3888         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
3889
3890 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
3891
3892         PR middle-end/36194
3893         * combine.c (check_conversion): Rename back to check_promoted_subreg.
3894         Don't call record_truncated_value from here.
3895         (record_truncated_value): Turn it into a for_each_rtx callback.
3896         (record_truncated_values): New function.
3897         (combine_instructions): Call note_uses with record_truncated_values.
3898         Change name of check_conversion to check_promoted_subreg. 
3899
3900 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
3901
3902         * doc/sourcebuild.texi: Document support for torture tests.
3903
3904 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3905
3906         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
3907         to alternative 4 of operand 2.
3908
3909 2008-05-15  Richard Guenther  <rguenther@suse.de>
3910
3911         * tree-pass.h (current_pass): Declare.
3912         (get_pass_for_id): Likewise.
3913         * passes.c (passes_by_id, passes_by_id_size): New globals.
3914         (set_pass_for_id): New function.
3915         (get_pass_for_id): Likewise.
3916         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
3917         (execute_function_todo): Flush per function statistics.
3918         * toplev.c (compile_file): Init statistics.
3919         (general_init): Do early statistics initialization.
3920         (finalize): Finish statistics.
3921         * statistics.h (statistics_early_init): Declare.
3922         (statistics_init): Likewise.
3923         (statistics_fini): Likewise.
3924         (statistics_fini_pass): Likewise.
3925         (statistics_counter_event): Likewise.
3926         (statistics_histogram_event): Likewise.
3927         * statistics.c: New file.
3928         * Makefile.in (OBJS-common): Add statistics.o.
3929         (statistics.o): Add dependencies.
3930         * doc/invoke.texi (-fdump-statistics): Document.
3931
3932         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
3933         (insert): Likewise.
3934         (execute_pre): Use statistics_counter_event.
3935         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
3936         (substitute_and_fold): Increment it.  Use statistics_counter_event.
3937
3938 2008-05-15  Diego Novillo  <dnovillo@google.com>
3939
3940         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
3941
3942         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
3943         * tree-ssa-alias.c (new_type_alias): Remove references to
3944         sub-variables from comment.
3945         * tree-ssa-operands.c (swap_tree_operands): Likewise.
3946
3947 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3948
3949         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
3950         attribute to 1 only for insertps alternative.
3951
3952 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3953
3954         * config/bfin/bfin.md (loadbytes): New pattern.
3955         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
3956         (bfin_init_builtins): Initialize it.
3957         (bdesc_1arg): Add it.
3958
3959 2008-05-15  Sa Liu  <saliu@de.ibm.com>
3960
3961         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
3962         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
3963         * testsuite/lib/target-supports.exp: Add
3964         check_effective_target_fortran_integer_16.
3965
3966 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3967
3968         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
3969         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
3970         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
3971         (TARGET_RETURN_IN_MEMORY): Define.
3972
3973 2008-05-15  Richard Guenther  <rguenther@suse.de>
3974
3975         PR middle-end/36244
3976         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
3977         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
3978         represent unmodifiable vars.
3979
3980 2008-05-15  Richard Guenther  <rguenther@suse.de>
3981
3982         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
3983         INDIRECT_REF and TARGET_MEM_REF.
3984         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3985         TARGET_MEM_REF.
3986
3987 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3988             H.J. Lu  <hongjiu.lu@intel.com>
3989
3990         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
3991         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
3992         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
3993         insn alternatives.  Add missing alternatives.
3994         (*vec_concatv2di_rex64_sse4_1): Likewise.
3995         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
3996         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
3997         Require TARGET_SSE.
3998
3999 2008-05-15  Richard Guenther  <rguenther@suse.de>
4000
4001         PR tree-optimization/36009
4002         PR tree-optimization/36204
4003         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
4004         (determine_invariantness_stmt): Record the loop a store is
4005         always executed in.
4006         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
4007         dependency.
4008
4009 2008-05-15  Richard Guenther  <rguenther@suse.de>
4010
4011         PR tree-optimization/34330
4012         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
4013         through the pointer will alias the SMT.
4014
4015 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
4016
4017         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
4018
4019 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
4020
4021         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
4022
4023 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4024             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4025
4026         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
4027         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
4028         (vashl_optab): New optab for vector/vector shifts.
4029         (vashr_optab): Ditto.
4030         (vlshr_optab): Ditto.
4031         (vrotl_optab): Ditto.
4032         (vrotr_optab): Ditto.
4033         (optab_subtype): New enum for optab_for_tree_code call.
4034         (optab_for_tree_code): Add enum optab_subtype argument.
4035
4036         * optabs.c (optab_for_tree_code): Take an additional argument to
4037         distinguish between a vector shift by a scalar and vector shift by
4038         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
4039         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
4040         vector shift by a vector.
4041         (expand_widen_pattern_expr): Pass additional argument to
4042         optab_for_tree_code.
4043
4044         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
4045         vrotl_optab, vrotr_optab.
4046
4047         * expr.c (expand_expr_real_1): Update calls to
4048         optab_for_tree_code to distinguish between vector shifted by a
4049         scalar and vector shifted by a vector.
4050         * tree-vectorizer.c (supportable_widening_operation): Ditto.
4051         (supportable_narrowing_operation): Ditto.
4052         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
4053         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
4054         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
4055         (vect_create_epilog_for_reduction): Ditto.
4056         (vectorizable_reduction): Ditto.
4057         (vectorizable_operation): Ditto.
4058         (vect_strided_store_supported): Ditto.
4059         (vect_strided_load_supported): Ditto.
4060         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
4061         * expmed.c (expand_shift): Ditto.
4062
4063         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
4064         scalar type.
4065         (ashr@var{m}3): Ditto.
4066         (vashl@var{m}3): Document new vector/vector shift standard name.
4067         (vashr@var{m}3): Ditto.
4068         (vlshr@var{m}3): Ditto.
4069         (vrotl@var{m}3): Ditto.
4070         (vrotr@var{m}3): Ditto.
4071
4072         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
4073         (PPERM_INVERT): Ditto.
4074         (PPERM_REVERSE): Ditto.
4075         (PPERM_REV_INV): Ditto.
4076         (PPERM_ZERO): Ditto.
4077         (PPERM_ONES): Ditto.
4078         (PPERM_SIGN): Ditto.
4079         (PPERM_INV_SIGN): Ditto.
4080         (PPERM_SRC1): Ditto.
4081         (PPERM_SRC2): Ditto.
4082
4083         * config/i386/sse.md (mulv2di3): Add SSE5 support.
4084         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
4085         allows a memory operand to be the value being added, and split it
4086         to improve vectorization.
4087         (sse5_pmacsdqh_mem): Ditto.
4088         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
4089         (sse5_mulv2div2di3_high): Ditto.
4090         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
4091         (vec_pack_trunc_v4si): Ditto.
4092         (vec_pack_trunc_v2di): Ditto.
4093         (sse5_pcmov_<mode>): Remove code that tried to use use
4094         andps/andnps instead of pcmov.
4095         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
4096         pmacsdqh instructions.
4097         (vec_widen_smult_lo_v4si): Ditto.
4098
4099         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
4100         (PPERM_INVERT): Ditto.
4101         (PPERM_REVERSE): Ditto.
4102         (PPERM_REV_INV): Ditto.
4103         (PPERM_ZERO): Ditto.
4104         (PPERM_ONES): Ditto.
4105         (PPERM_SIGN): Ditto.
4106         (PPERM_INV_SIGN): Ditto.
4107         (PPERM_SRC1): Ditto.
4108         (PPERM_SRC2): Ditto.
4109         (ix86_expand_sse_movcc): Move the SSE5 test after the if
4110         true/false tests.
4111         (ix86_expand_int_vcond): If SSE5 generate all possible integer
4112         comparisons.
4113         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
4114         says ignore whether the last reference is a memory operand.
4115
4116 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4117             Paolo Bonzini <bonzini at gnu dot org>
4118
4119         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
4120         shift patterns.
4121
4122         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
4123         (vlshr<mode>3): Rename from vlshr<mode>3.
4124         (vashr<mode>3): Rename from vashr<mode>3.
4125         (mulv4sf3): Change the names of vector shift patterns.
4126         (mulv4si3): Ditto.
4127         (negv4sf2): Ditt.
4128
4129         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
4130         shift insns.
4131
4132         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
4133         (SI_SHLHI): Ditto.
4134         (SI_SHL): Ditto.
4135         (SI_SHLI): Ditto.
4136         (SI_ROTH): Ditto.
4137         (SI_ROTHI): Ditto.
4138         (SI_ROT): Ditto.
4139         (SI_ROTI): Ditto.
4140         (SPU_RL_0): Ditto.
4141         (SPU_RL_1): Ditto.
4142         (SPU_RL_2): Ditto.
4143         (SPU_RL_3): Ditto.
4144         (SPU_RL_4): Ditto.
4145         (SPU_RL_5): Ditto.
4146         (SPU_RL_6): Ditto.
4147         (SPU_RL_7): Ditto.
4148         (SPU_SL_0): Ditto.
4149         (SPU_SL_1): Ditto.
4150         (SPU_SL_2): Ditto.
4151         (SPU_SL_3): Ditto.
4152         (SPU_SL_4): Ditto.
4153         (SPU_SL_5): Ditto.
4154         (SPU_SL_6): Ditto.
4155         (SPU_SL_7): Ditto.
4156
4157         * config/spu/spu.md (v): New iterator macro to add v for vector types.
4158         (floatunssidf2_internal): Change vector/vector shift names.
4159         (floatunsdidf2_internal): Ditto.
4160         (mulv8hi3): Ditto.
4161         (ashrdi3): Ditto.
4162         (ashrti3): Ditto.
4163         (cgt_df): Ditto.
4164         (cgt_v2df): Ditto.
4165         (dftsv): Ditto.
4166         (vashl<mode>3): Rename from ashl<mode>3.
4167         (vashr<mode>3): Rename from ashr<mode>3.
4168         (vlshr<mode>3): Rename from lshr<mode>3.
4169         (vrotl<mode>3): Rename from rotl<mode>3.
4170
4171 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4172
4173         PR target/36224
4174         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
4175         multiply gives the wrong value when doing widening multiplies.
4176         (vec_widen_smult_lo_v4si): Ditto.
4177
4178 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
4179
4180         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
4181         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
4182         emit_library_call_value. 
4183         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
4184         * tree.h (ECF_LIBCALL_BLOCK): Removed.
4185         * calls.c (initialize_argument_information, precompute_arguments, 
4186         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
4187         (precompute_arguments): Removed flags parameter.
4188         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
4189         
4190 2008-05-14  Richard Guenther  <rguenther@suse.de>
4191
4192         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
4193         Make sure to register the store if the use is a PHI_NODE.
4194
4195 2008-05-14  Olivier Hainque  <hainque@adacore.com>
4196
4197         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
4198         memory if the component is to be referenced in BLKmode according
4199         to get_inner_reference.
4200
4201 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
4202
4203         * calls.c (emit_library_call_value_1): Restore code clearing
4204         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
4205
4206 2008-05-14  Olivier Hainque  <hainque@adacore.com>
4207             Nicolas Roche  <roche@adacore.com>
4208
4209         * configure.ac: Add support for a "gcc_subdir" variable in
4210         config-lang.in, to denote a subdirectory where the language/GCC
4211         integration files are to be found.
4212         * configure: Regenerate.
4213
4214 2008-05-14  Ira Rosen  <irar@il.ibm.com>
4215
4216         PR tree-optimization/36098
4217         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
4218         value for the first load in the group in case of a gap.
4219         (vect_build_slp_tree): Check that there are no gaps in loads.
4220
4221 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
4222
4223         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
4224         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
4225         expand_copysign_bit, ): Change call to emit_no_conflict_block to
4226         emit_insn and remove unneeded code to construct extra args.
4227         (emit_no_conflict_block): Removed.
4228         * optabls.h: (emit_no_conflict_block): Removed.
4229         * cse.c (cse_extended_basic_block): Remove search for
4230         REG_NO_CONFLICT note.
4231         * global.c: Removed incorrect comment added in revision 117.
4232         * expr.c (convert_move): Change call to emit_no_conflict_block to
4233         emit_insn.
4234         * recog.c: Change comments so that they do not mention
4235         REG_NO_CONFLICT.
4236         * local_alloc.c (combine_regs): Removed last parameter.
4237         (no_conflict_p): Removed.
4238         (block_alloc): Removed note, no_conflict_combined_regno and set
4239         local vars. Removed all code to process REG_NO_CONFLICT blocks.
4240         (combine_regs): Removed already_dead and code to look for
4241         REG_NO_CONFLICT notes.
4242         * lower_subreg (remove_retval_note): Removed code to look for
4243         REG_NO_CONFLICT block.
4244         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
4245         (resolve_clobber): Remove code to process libcalls that have
4246         REG_NO_CONFLICT notes.
4247         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
4248         case.
4249         * combine.c (can_combine_p, distribute_notes):  Removed
4250         REG_NO_CONFLICT case.
4251         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
4252         to emit_insns.
4253         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
4254         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
4255         Ditto.
4256         * reg-notes.def (NO_CONFLICT): Removed.
4257
4258 2008-05-14  David S. Miller  <davem@davemloft.net>
4259
4260         * config/sparc/sparc.c (sparc_profile_hook): If
4261         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
4262         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
4263         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
4264
4265 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
4266
4267         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
4268
4269 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
4270
4271         PR target/36222
4272         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
4273         and op1 expansion before vector concat to have less live pseudos.
4274
4275 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
4276
4277         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
4278         ix86_expand_vector_set if supported.
4279
4280 2008-05-13  Diego Novillo  <dnovillo@google.com>
4281             Kenneth Zadeck  <zadeck@naturalbridge.com>
4282
4283         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
4284
4285         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
4286         phinodes_print_statistics, init_ssanames, fini_ssanames,
4287         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
4288         release_ssa_name, release_defs, replace_ssa_name_symbol,
4289         ssanames_print_statistics): Move ...
4290         * tree-flow.h: ... here.
4291         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
4292         Use FN instead of cfun.
4293         (make_ssa_name_fn): Rename from make_ssa_name.
4294         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
4295         * tree-flow-inline.h (make_ssa_name): Move from
4296         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
4297         * omp-low.c (expand_omp_parallel):
4298         * tree-flow-inline.h (redirect_edge_var_map_result):
4299         * tree-ssa.c (init_tree_ssa): Add argument FN.
4300         Use it instead of cfun.  Update all users.
4301
4302 2008-05-13  Tom Tromey  <tromey@redhat.com>
4303
4304         PR preprocessor/22168:
4305         * doc/cpp.texi (Top): Update menu.
4306         (Alternatives to Wrapper #ifndef): New node.
4307         (Other Directives): Document deprecation.
4308         (Obsolete Features): Remove menu.
4309         (Assertions): Merge node into Obsolete Features.
4310         (Obsolete once-only headers): Move earlier; rename to Alternatives
4311         to Wrapper #ifndef.
4312         * doc/cppopts.texi: Update.
4313         * c.opt (Wdeprecated): Enable for C and ObjC.
4314         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
4315         (C++ Dialect Options): Move -Wno-deprecated from here to...
4316         (Warning Options): ... here.
4317
4318 2008-05-13  Richard Guenther  <rguenther@suse.de>
4319
4320         PR middle-end/36227
4321         * fold-const.c (fold_sign_changed_comparison): Do not allow
4322         changes in pointer-ness.
4323
4324 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4325
4326         PR target/24713
4327         * config/sh/sh.c (sh_expand_prologue): Don't clear
4328         RTX_FRAME_RELATED_P for push insns.
4329
4330 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
4331
4332         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
4333
4334 2008-05-12  Anatoly Sokolov <aesok@post.ru>
4335
4336         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
4337         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
4338         Use 'machine->is_leaf' instead of 'leaf_func_p'.
4339
4340 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
4341
4342         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
4343         (*vec_concatv4sf_sse): This.
4344         (*sse2_concatv2si): Renamed to ...
4345         (*vec_concatv2si_sse2): This.
4346         (*sse1_concatv2si): Renamed to ...
4347         (*vec_concatv2si_sse): This.
4348         (*vec_concatv2di_rex): Renamed to ...
4349         (*vec_concatv2di_rex64): This.
4350         (*vec_concatv2si_sse4_1): New.
4351         (*vec_concatv2di_rex64_sse4_1): Likewise.
4352
4353 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
4354
4355         PR rtl-optimization/36111
4356         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
4357         that was created for swappable operands.
4358
4359 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
4360
4361         PR ada/36001
4362         * Makefile.in: Substitute GNATMAKE and GNATBIND.
4363         * configure.ac: Add call to ACX_PROG_GNAT.
4364
4365 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
4366
4367         * optc-gen.awk: Fix comment typo.
4368
4369 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4370
4371         * pretty-print.c (pp_integer_with_precision): Use
4372         HOST_LONG_LONG_FORMAT.
4373
4374 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
4375
4376         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
4377                 
4378 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
4379
4380         * config/i386/i386.c (bdesc_ptest): Removed.
4381         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
4382         (bdesc_args): Add __builtin_ia32_ptestz128,
4383         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
4384         (ix86_init_mmx_sse_builtins): Updated.
4385         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
4386         (ix86_expand_builtin): Updated.
4387
4388 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
4389
4390         * tree-cfg.c (valid_fixed_convert_types_p): New function.
4391         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
4392
4393 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
4394
4395         * value-prof.c (interesting_stringop_to_profile): Do not
4396         return early for BUILT_IN_MEMPCPY.
4397
4398 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
4399
4400         * calls.c (expand_call): Don't use callgraph to increase
4401         preferred_stack_boundary.
4402
4403         * cgraph.h (cgraph_rtl_info): Use unsigned on
4404         preferred_incoming_stack_boundary.
4405
4406         * final.c (rest_of_clean_state): Use unsigned on
4407         preferred_stack_boundary.
4408
4409 2008-05-09  Tom Tromey  <tromey@redhat.com>
4410
4411         PR preprocessor/22231:
4412         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
4413         proceeding.
4414
4415 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
4416
4417         PR tree-optimization/36129
4418         * tree-ssa-ccp.c: Include value-prof.h.
4419         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
4420         built-in function was folded to a constant.
4421         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
4422
4423 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
4424             Sebastian Pop  <sebastian.pop@amd.com>
4425
4426         * tree-scalar-evolution.c: Document instantiate_scev.
4427         (instantiate_parameters_1): Renamed instantiate_scev_1.
4428         Don't use the same loop for instantiation_loop and evolution_loop.
4429         (instantiate_scev): New.
4430         (instantiate_parameters): Moved...
4431         (resolve_mixers): Update call to instantiate_scev_1 to pass the
4432         same loop twice.  Maintains the semantics for this function.
4433         * tree-scalar-evolution.h (instantiate_scev): Declare.
4434         (instantiate_parameters): ...here.  Now static inline.
4435         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
4436         instead of resolve_mixers.
4437
4438 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
4439
4440         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
4441
4442 2008-05-09  Tomas Bily  <tbily@suse.cz>
4443
4444         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
4445         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
4446         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4447         * c-common.c (c_common_truthvalue_conversion): Likewise.
4448         * tree-object-size.c (compute_object_offset): Likewise.
4449         * tree-inline.c (estimate_num_insns_1): Likewise.
4450         * varasm.c (const_hash_1, compare_constant, copy_constant)
4451         (compute_reloc_for_constant, output_addressed_constants)
4452         (initializer_constant_valid_p): Likewise.
4453         * c-omp.c (check_omp_for_incr_expr): Likewise.
4454         * gimplify.c (gimplify_expr): Likewise.
4455         * c-typeck.c (c_finish_return): Likewise.
4456         * tree-vectorizer.c (supportable_widening_operation)
4457         (supportable_narrowing_operation): Likewise.
4458         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
4459         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
4460         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
4461         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
4462         (descr_info_loc): Likewise.
4463         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4464         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
4465         (fold_unary): Likewise.
4466         * builtins.c (get_pointer_alignment): Likewise.
4467         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
4468         (instantiate_parameters_1): Likewise.
4469         * tree.c (expr_align, stabilize_reference): Likewise.
4470         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
4471         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
4472         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
4473         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4474         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
4475         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
4476         Likewise.
4477         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
4478         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
4479         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
4480         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
4481         (forward_propagate_comparison)
4482         (tree_ssa_forward_propagate_single_use_vars): Likewise.
4483         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
4484         * emit-rtl.c (component_ref_for_mem_expr)
4485         (set_mem_attributes_minus_bitpos): Likewise.
4486         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
4487         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
4488         Likewise.
4489         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
4490         (build_function_call, pointer_diff, build_compound_expr)
4491         (c_finish_return): Likewise.
4492         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
4493         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
4494         Likewise.
4495         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
4496         * expr.c (is_aligning_offset): Likewise.
4497         * tree-ssa-alias.c (is_escape_site): Likewise.
4498         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
4499         (check_all_va_list_escapes): Likewise.
4500         * tree-ssa-loop-ivopts.c (determine_base_object)
4501         (determine_common_wider_type): Likewise.
4502         * dojump.c (do_jump): Likewise.
4503         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
4504         * tree-gimple.c (is_gimple_cast): Likewise.
4505         * fold-const.c (decode_field_reference, )
4506         (fold_sign_changed_comparison, fold_unary, fold_comparison)
4507         (fold_binary): Likewise.
4508         * tree-ssa-alias-warnings.c (find_alias_site_helper)
4509         (already_warned_in_frontend_p): Likewise.
4510         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
4511         * tree.c (really_constant_p, get_unwidened): Likewise.
4512         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
4513         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
4514         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
4515         Likewise.
4516         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
4517         CONVERT_EXPR_P.
4518         (CONVERT_EXPR_P): Define.
4519         (CASE_CONVERT): Define.
4520         
4521 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
4522
4523         PR middle-end/36117
4524         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
4525         (delete_unmarked_insns): When deleting a call, call
4526         delete_unreachable_blocks.
4527         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4528         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
4529
4530 2008-05-08  Richard Guenther  <rguenther@suse.de>
4531
4532         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
4533         (-ftree-salias): Likewise.
4534         (salias-max-implicit-fields): Remove param documentation.
4535         (salias-max-array-elements): Likewise.
4536         * tree-pass.h (pass_create_structure_vars): Remove.
4537         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4538         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4539         * tree-ssa-alias.c (create_structure_vars): Remove.
4540         (gate_structure_vars): Likewise.
4541         (pass_create_structure_vars): Likewise.
4542         (gate_build_alias): Likewise.
4543         (pass_build_alias): Adjust to run always and dump the function.
4544         * common.opt (ftree-salias): Hide.
4545         * passes.c (init_optimization_passes): Remove
4546         pass_create_structure_vars, adjust comment.
4547         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4548         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4549         * opts.c (decode_options): Do not set flag_tree_salias.
4550         (common_handle_option): Add OPT_ftree_salias to the backward
4551         compatibility section.
4552
4553 2008-05-08  Richard Guenther  <rguenther@suse.de>
4554
4555         * tree-flow-inline.h (var_can_have_subvars): Move ...
4556         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
4557         * tree-flow.h (var_can_have_subvars): Remove.
4558         (push_fields_onto_fieldstack): Remove.
4559         (sort_fieldstack): Likewise.
4560         (struct fieldoff): Move ...
4561         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
4562         alias_set and base_for_components fields.
4563         (sort_fieldstack): Make static.
4564         (push_fields_onto_fieldstack): Likewise.  Remove code that
4565         handles anything but RECORD_TYPEs.  Remove alias_set and
4566         base_for_components handling.
4567         (create_variable_info_for): Adjust.
4568
4569 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
4570
4571         * common.opt (Wframe-larger-than=): Shorten the help message
4572         to one line.
4573         * doc/invoke.texi (Wframe-larger-than=): Add more description.
4574
4575 2008-05-08  Rafael Espindola  <espindola@google.com>
4576
4577         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
4578         trap.
4579         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
4580         trap and that both operands are gimple values.
4581         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
4582         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
4583         is a fp operation.
4584
4585 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4586
4587         * read-rtl.c (join_c_conditions): Return the first string if the
4588         two strings are equal.
4589
4590 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4591
4592         * gensupport.h (pred_data): Add a "num_codes" field.
4593         (add_predicate_code): Declare.
4594         * gensupport.c (add_predicate_code): New function.
4595         (std_pred_table): Add an "allows_const_p" field.
4596         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
4597         Remove the (incomplete) list of such codes from the codes field.
4598         (init_predicate_table): Use add_predicate_code.  Add all
4599         RTX_CONST_OBJs if allows_const_p is true.
4600         * genrecog.c (process_define_predicate): Use add_predicate_code.
4601
4602 2008-05-08  David Daney  <ddaney@avtrex.com>
4603             Richard Sandiford  <rsandifo@nildram.co.uk>
4604         
4605         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
4606         special case of constant zero operands.
4607         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
4608         old and new values.  Special case constant zero values.
4609         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
4610         fails.
4611         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
4612         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
4613
4614 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
4615
4616         PR target/36090
4617         * simplify-rtx.c (simplify_plus_minus): Create CONST of
4618         similar RTX_CONST_OBJ before CONST_INT.
4619
4620 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
4621
4622         * stmt.c (expand_stack_restore): Change sa mode if needed.
4623
4624 2008-05-08  Richard Guenther  <rguenther@suse.de>
4625
4626         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
4627         return type to bool.
4628         (ix86_sol10_return_in_memory): Likewise.
4629         (ix86_i386elf_return_in_memory): Likewise.
4630         (ix86_i386interix_return_in_memory): Likewise.
4631         * config/i386/i386.c (ix86_return_in_memory): Likewise.
4632         (ix86_sol10_return_in_memory): Likewise.
4633         (ix86_i386elf_return_in_memory): Likewise.
4634         (ix86_i386interix_return_in_memory): Likewise.
4635
4636 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4637
4638         PR bootstrap/36180
4639         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
4640         fndecl argument.
4641         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
4642         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
4643         declared in front.
4644
4645 2008-05-08  Richard Guenther  <rguenther@suse.de>
4646
4647         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
4648         * tree-data-ref.h (struct dr_alias): Remove subvars field.
4649         (DR_SUBVARS): Remove.
4650         * tree-dfa.c (dump_subvars_for): Remove.
4651         (debug_subvars_for): Likewise.
4652         (dump_variable): Do not dump subvars.
4653         (remove_referenced_var): Do not remove subvars.
4654         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
4655         (lookup_subvars_for_var): Remove.
4656         (get_subvars_for_var): Likewise.
4657         (get_subvars_at): Likewise.
4658         (get_first_overlapping_subvar): Likewise.
4659         (overlap_subvar): Likewise.
4660         * tree-flow.h (subvar_t): Remove.
4661         (struct var_ann_d): Remove subvars field.
4662         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
4663         argument.  Remove special handling of SFTs.
4664         (compute_tag_properties): Likewise.
4665         (set_initial_properties): Likewise.
4666         (compute_call_clobbered): Likewise.
4667         (count_mem_refs): Likewise.
4668         (compute_memory_partitions): Likewise.
4669         (compute_flow_insensitive_aliasing): Likewise.
4670         (setup_pointers_and_addressables): Likewise.
4671         (new_type_alias): Likewise.
4672         (struct used_part): Remove.
4673         (used_portions): Likewise.
4674         (struct used_part_map): Likewise.
4675         (used_part_map_eq): Likewise.
4676         (used_part_map_hash): Likewise.
4677         (free_used_part_map): Likewise.
4678         (up_lookup): Likewise.
4679         (up_insert): Likewise.
4680         (get_or_create_used_part_for): Likewise.
4681         (create_sft): Likewise.
4682         (create_overlap_variables_for): Likewise.
4683         (find_used_portions): Likewise.
4684         (create_structure_vars): Likewise.
4685         * tree.def (STRUCT_FIELD_TAG): Remove.
4686         * tree.h (MTAG_P): Adjust.
4687         (struct tree_memory_tag): Remove base_for_components and
4688         unpartitionable flags.
4689         (struct tree_struct_field_tag): Remove.
4690         (SFT_PARENT_VAR): Likewise.
4691         (SFT_OFFSET): Likewise.
4692         (SFT_SIZE): Likewise.
4693         (SFT_NONADDRESSABLE_P): Likewise.
4694         (SFT_ALIAS_SET): Likewise.
4695         (SFT_UNPARTITIONABLE_P): Likewise.
4696         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
4697         (union tree_node): Remove sft field.
4698         * alias.c (get_alias_set): Remove special handling of SFTs.
4699         * print-tree.c (print_node): Remove handling of SFTs.
4700         * tree-dump.c (dequeue_and_dump): Likewise.
4701         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
4702         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
4703         * tree-predcom.c (set_alias_info): Do not set subvars.
4704         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
4705         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
4706         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
4707         (add_vars_for_offset): Remove.
4708         (add_virtual_operand): Remove special handling of SFTs.
4709         (add_call_clobber_ops): Likewise.
4710         (add_call_read_ops): Likewise.
4711         (get_asm_expr_operands): Likewise.
4712         (get_modify_stmt_operands): Likewise.
4713         (get_expr_operands): Likewise.
4714         (add_to_addressable_set): Likewise.
4715         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
4716         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4717         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
4718         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
4719         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
4720         (tree_node_structure): Likewise.
4721         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
4722         handling of SFTs.
4723         (find_what_p_points_to): Likewise.
4724
4725 2008-05-08  Sa Liu  <saliu@de.ibm.com>
4726
4727         * config/spu/spu.md: Fixed subti3 pattern.
4728
4729 2008-05-08  Richard Guenther  <rguenther@suse.de>
4730
4731         PR middle-end/36154
4732         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
4733         sure to create a representative for trailing arrays for PTA.
4734
4735 2008-05-08  Richard Guenther  <rguenther@suse.de>
4736
4737         PR middle-end/36172
4738         * fold-const.c (operand_equal_p): Two objects which types
4739         differ in pointerness are not equal.
4740
4741 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4742
4743         * calls.c (compute_argument_block_size): Add argument tree fndecl.
4744         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
4745         (emit_library_call_value_1): Add new variable fndecl initialized by
4746         NULL_TREE. It should be the decl type of orgfun, but this information
4747         seems not to be available here, so it uses the default calling abi.
4748         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
4749         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
4750         by TARGET_RETURN_IN_MEMORY.
4751         * config/i386/i386-interix.h: Likewise.
4752         * config/i386/i386.h: Likewise.
4753         * config/i386/i386elf.h: Likewise.
4754         * config/i386/ptx4-i.h: Likewise.
4755         * config/i386/sol2-10.h: Likewise.
4756         * config/i386/sysv4.h: Likewise.
4757         * config/i386/vx-common.h: Likewise.
4758         * config/cris/cris.h: Removed #if 0 clause.
4759         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
4760         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
4761         argument.
4762         (ix86_sol10_return_in_memory): Likewise.
4763         (ix86_i386elf_return_in_memory): New.
4764         (ix86_i386interix_return_in_memory): New.
4765         * config/mt/mt-protos.h (mt_return_in_memory): New.
4766         * config/mt/mt.c: Likewise.
4767         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4768         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
4769         * config/bfin/bfin.h: Likewise.
4770         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
4771         argument.
4772         * config/bfin/bfin.c: Likewise.
4773         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4774         * config/alpha/unicosmk.h: Likewise.
4775         * config/i386/cygming.h: Likewise.
4776         * config/iq2000/iq2000.h: Likewise.
4777         * config/mips/mips.h: Likewise.
4778         * config/mn10300/mn10300.h: Likewise.
4779         * config/rs6000/rs6000.h: Likewise.
4780         * config/score/score.h: Likewise.
4781         * config/spu/spu.h: Likewise.
4782         * config/v850/v850.h: Likewise.
4783         * defaults.h: Likewise.
4784         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
4785         * expr.c (emit_block_move): Adjust use of
4786         OUTGOING_REG_PARM_STACK_SPACE.
4787         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
4788         OUTGOING_REG_PARM_STACK_SPACE.
4789         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
4790
4791 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
4792
4793         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
4794         on OMP_RETURN for OMP_FOR.
4795
4796         PR debug/35896
4797         * dwarf2out.c (dw_expand_expr, common_check): Removed.
4798         (fortran_common): New function.
4799         (gen_variable_die): Call fortran_common instead of common_check,
4800         adjust for it returning tree instead of rtx.  Formatting.
4801
4802 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4803
4804         PR rtl/7335
4805         PR rtl/33826
4806         * see.c (see_copy_insn): Copy new pure const attributes for new call.
4807         * c-decl.c (merge_decls): Ditto.
4808         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
4809         to RTL_CONST_OR_PURE_CALL_P.
4810         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
4811         Initialized DECL_LOOPING_CONST_PURE.
4812         (process_call_operands): Set tree_side_effects properly.
4813         * tree.h (TREE_READONLY_DECL_P): Removed.
4814         (DECL_IS_PURE): Renamed to DECL_PURE_P.
4815         (DECL_LOOPING_OR_CONST_P): New macro.
4816         (struct tree_function_decl): Added looping_const_or_pure_p.
4817         (ECF_*) Renumbered.
4818         (ECF_LOOPING_OR_CONST_P): New macro.
4819         * rtlanal.c (pure_const_p): Removed.
4820         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
4821         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
4822         to RTL_CONST_CALL_P.
4823         * ipa-pure-const.c (pure_const_state_e): Added looping field.
4824         (check_decl, check_tree, check_call, scan_function): Initialize
4825         looping.
4826         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
4827         (static_execute): Set looping true for recursive functions.
4828         Undo setting state to IPA_NEITHER for recursive functions.
4829         * cse.c (cse_insn): 
4830         * ifcvt.c (noce_can_store_speculate_p): Changed
4831         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
4832         RTL_CONST_OR_PURE_CALL_P.
4833         * dse.c (scan_insn): Ditto.
4834         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
4835         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
4836         RTL_CONST_OR_PURE_CALL_P.
4837         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
4838         pure_call_p to RTL_CONST_CALL_P.
4839         * gimplify.c (gimplify_call_expr): Clear side effects for
4840         non-looping pure and constant calls.
4841         * calls.c (emit_call_1): Set rtl flags from ecf flags.
4842         (flags_from_decl_or_type): Set ecf flags from decl flags.
4843         (initialize_argument_information): Turn off
4844         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
4845         Change const to pure if callee_copies is true rather than just
4846         turning off const.
4847         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
4848         way of marking pure calls.
4849         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
4850         Remove hack that was supposed to fix pr7335 and remove old
4851         way of marking pure calls.
4852         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
4853         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
4854         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
4855         RTL_CONST_OR_PURE_CALL_P.
4856         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
4857         * loop-invariant.c (find_exits, find_invariant_bb): Changed
4858         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
4859         * sched-deps.c (schedule_analyze): Ditto.
4860         * rtl.h (struct rtx_def): Use call field, unchanging field, and
4861         return_val field of calls to represent pure and const function info.
4862         (CONST_OR_PURE_CALL_P): Deleted macro.
4863         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4864         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
4865         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
4866         TREE_READONLY.
4867         * tree-optimize.c (execute_fixup_cfg): Added test for
4868         ECF_LOOPING_CONST_OR_PURE.
4869         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
4870         DECL_PURE_P.
4871         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
4872         effects for looping pure or const calls.
4873         (verify_gimple_expr): Added verification code. 
4874         * config/alpha/alpha.c (alpha_legitimize_address,
4875         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
4876         RTL_CONST_CALL_P.
4877         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
4878         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
4879         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
4880         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
4881         RTL_CONST_OR_PURE_CALL_P.
4882         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
4883         and const calls to be deleted.
4884
4885 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4886
4887         PR target/35714
4888         * config/i386/mmx.md (mmx_subv2sf3): New expander.
4889         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
4890         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
4891         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4892         to handle nonimmediate operands.
4893         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
4894         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
4895         to handle nonimmediate operands.
4896         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
4897         (mmx_pmulhrwv4hi3): New expander.  Use
4898         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4899         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
4900         (sse2_umulv1siv1di3): New expander.  Use
4901         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4902         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
4903         (mmx_eq<mode>3): New expander.  Use
4904         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4905         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
4906         (mmx_uavgv8qi3): New expander.  Use
4907         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4908         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
4909         (mmx_uavgv4hi3): New expander.  Use
4910         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4911
4912         * config/i386/sse.md
4913         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
4914         to handle nonimmediate operands.
4915         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
4916         to handle nonimmediate operands.
4917         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
4918         to handle nonimmediate operands.
4919         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
4920         to handle nonimmediate operands.
4921         (sse2_unpckhpd_exp): New expander.  Use
4922         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4923         (sse2_unpcklpd_exp): New expander.  Use
4924         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4925         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
4926         to handle nonimmediate operands.
4927         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
4928         to handle nonimmediate operands.
4929         (*sse2_<plusminus_insn><mode>3): Rename from
4930         sse2_<plusminus_insn><mode>3 insn pattern.
4931         (sse2_<plusminus_insn><mode>3): New expander.  Use
4932         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4933         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
4934         (sse2_umulv2siv2di3): New expander.  Use
4935         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4936         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
4937         (sse4_1_mulv2siv2di3): New expander.  Use
4938         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4939         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
4940         (sse2_pmaddwd): New expander.  Use
4941         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4942         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
4943         (sse2_eq<mode>3): New expander.  Use
4944         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4945         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
4946         (sse4_1_eqv2di3): New expander.  Use
4947         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4948         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4949         (sse2_uavgv16qi3): New expander.  Use
4950         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4951         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4952         (sse2_uavgv16qi3): New expander.  Use
4953         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4954         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
4955         (sse2_uavgv8hi3): New expander.  Use
4956         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4957         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
4958         (ssse3_pmulhrswv8hi3): New expander.  Use
4959         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4960         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
4961         (ssse3_pmulhrswv4hi3): New expander.  Use
4962         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4963
4964         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
4965         (<sse>_vmmul<mode>3): Ditto.
4966         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
4967         (divv2df3): Ditto.
4968         (ssse3_pmaddubsw128): Use register_operand for operand 1.
4969         (ssse3_pmaddubsw): Ditto.
4970
4971         * config/i386/i386.c (struct_builtin_description)
4972         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
4973         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
4974         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
4975         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
4976         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
4977         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
4978         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
4979         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
4980         (ix86_fixup_binary_operands): Assert that src1
4981         and src2 must have the same mode when swapped.
4982         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
4983         and ix86_binary_operator_ok.  Do not force operands in registers
4984         when optimizing.
4985
4986 2008-05-07  Jan Hubicka  <jh@suse.cz>
4987
4988         * cgraph.c (dump_cgraph_node): Update.
4989         * cgraph.h (cgraph_local_info): Break out inline summary.
4990         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
4991         hook.
4992         * ipa-inline (inline_summary): New accestor function.
4993         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
4994         cgraph_decide_inlining, compute_inline_parameters): Update.
4995         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
4996
4997 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4998
4999         Cleanup ColdFire scheduling support and add V4 pipeline model.
5000
5001         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
5002         (define_attr cpu): Add cfv4 value.
5003         (define_attr type, define_attr type1): Merge into a single 'type'
5004         attribute.  Update all uses.
5005         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
5006         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
5007         Update all uses.
5008         (define_attr opx_mem, define_attr opy_mem): Remove.
5009         (define_attr op_mem): Clean up, update comment.
5010         (define_attr size): Use specific values instead of general int.
5011         (define_attr guess, define_attr split): Remove.  Update all uses.
5012         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
5013         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
5014         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
5015         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
5016         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
5017         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
5018         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
5019         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
5020         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
5021         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
5022         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
5023         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
5024         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
5025         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
5026         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
5027         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
5028         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
5029         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
5030         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
5031         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
5032         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
5033         Update or set attributes.
5034         (stack_tie): New fake instruction.
5035
5036         * config/m68k/m68k.h (TUNE_CFV4): New macro.
5037         (m68k_sched_attr_size): Update declaration.
5038         (m68k_sched_attr_type2): Remove.
5039         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
5040         Declare new bypass predicates.
5041
5042         * config/m68k/m68k.c (m68k_sched_issue_rate,
5043         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
5044         implementations.
5045         (TARGET_SCHED_ISSUE_RATE,
5046         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
5047         (override_options): Handle scheduling for ColdFire V4 core.
5048         (m68k_expand_prologue): Emit stack_tie.
5049         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
5050         'OP_TYPE_FPN'.  Update all uses.
5051         (sched_guess_p): Remove.
5052         (sched_address_type): Handle symbolic addresses.
5053         (sched_get_operand): New static function.
5054         (sched_operand_type): Merge into sched_attr_op_type.
5055         (sched_attr_op_type): Handle FP registers, handle quick constants,
5056         update.
5057         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
5058         (m68k_sched_attr_size): Update.  Move logic to ...
5059         (sched_get_attr_size_int): New static function.
5060         (sched_get_opxy_mem_type): New static function.
5061         (m68k_sched_attr_op_mem): Update.
5062         (m68k_sched_attr_type2): Remove.
5063         (sched_cfv4_bypass_data): New static variable.
5064         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
5065         (m68k_sched_issue_rate): Implement scheduler hook.
5066         (struct _sched_ib: enabled_p): New field.
5067         (m68k_sched_variable_issue): Update.  Handle V4.
5068         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
5069         sched_dump_class_func_t, sched_dump_split_class,
5070         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
5071         sched_dump_dfa_class, m68k_sched_dump): Remove.
5072         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
5073         hook.
5074         (m68k_sched_init_global): Remove statisctics dumping, introduce
5075         sanity check that all instructions have pipeline reservations.  Handle
5076         ColdFire V4 core.
5077         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5078         Handle ColdFire V4 core.
5079         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
5080         New static functions.
5081         (m68k_sched_address_bypass_p): New bypass predicate.
5082         (sched_get_indexed_address_scale): New static function.
5083         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
5084
5085         * cf.md: Update comments.
5086         (define_attr type2): Remove.  Use 'type' attribute instead.
5087         Update all uses.
5088         (cf_ib): Rename to cfv123_ib.  Update all uses.
5089         (cf_oep): Rename to cfv123_oep.  Update all uses.
5090         (cf_chr): Rename to cfv123_chr.  Update all uses.
5091         (cf_mem): Rename to cfv123_mem.  Update all uses.
5092         (cf_mac): Move to more appropriate place.
5093         (cfv123_guess): New automaton and cpu_unit.
5094         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
5095         Update uses of 'size' attribute.  Handle before reload scheduling.
5096         (cfv123_guess): New dummy reservation for unhandled instructions.
5097         (cfv4_*): Pipeline description of ColdFire V4 core.
5098         (ignore): New reservation to handle 'ignore' type.
5099
5100 2008-05-07  Ian Lance Taylor  <iant@google.com>
5101
5102         PR middle-end/36013
5103         * gimplify.c (find_single_pointer_decl_1): Don't look through
5104         indirections.
5105         (find_single_pointer_decl): Adjust comments.
5106
5107 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
5108
5109         PR middle-end/36137
5110         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
5111         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
5112
5113         PR middle-end/36106
5114         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
5115         integral type rather than floating point, then VIEW_CONVERT_EXPR
5116         to the floating point type.
5117
5118 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
5119
5120         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
5121         TFmode op0 to register.
5122
5123 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
5124
5125         * c-decl.c (grokdeclarator): Comment typo.
5126
5127 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
5128
5129         * tree-flow.h: Remove prototype for computed_goto_p.
5130         * tree-cfg.c (computed_goto_p): Make static.
5131
5132 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
5133
5134         PR target/35657
5135         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
5136         (contains_aligned_value_p): This.  Handle _Decimal128.
5137         (ix86_function_arg_boundary): Only align _Decimal128 to its
5138         natural boundary and handle it properly.
5139
5140 2008-05-06  Martin Jambor  <mjambor@suse.cz>
5141
5142         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
5143         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
5144         (ipcp_method_set_orig_node): Removed.
5145         (ipcp_cval_get_cvalue_type): Removed.
5146         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
5147         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
5148         (ipcp_cval_set_cvalue_type): Removed.
5149         (ipcp_cval_get_cvalue): Removed.
5150         (ipcp_cval_set_cvalue): Removed.
5151         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
5152         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
5153         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
5154         (ipcp_cval_meet): Renamed to ipa_lattice_meet
5155         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
5156         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
5157         (ipcp_get_ith_lattice): Changed parameters.
5158         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
5159         (ipcp_lattice_from_jfunc): Changed parameters.
5160         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
5161         (ipcp_method_cval_print): Added temporary variable info.
5162         (ipcp_redirect): Removed already unused local variable caller.
5163         (ipcp_redirect): New temporary variable orig_callee_info
5164         (ipcp_redirect): Removed newly unused local variable callee.
5165         (ipcp_redirect): Removed (a bit confusing) local variable type.
5166         (ipcp_insert_stage): Added local variable info.
5167         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
5168         renamed too
5169         (ipcp_formal_create): Removed.
5170         (ipcp_method_cval_set): Removed.
5171         (ipcp_propagate_stage): Renamed lattice variables.
5172         (ipcp_method_cval_set_cvalue_type): Removed.
5173         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
5174         (ipcp_print_all_lattices): Changed printed strings to refer to 
5175         lattices rather than cvals.
5176         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
5177         (ipcp_propagate_const): Changed formal parameters.
5178         (build_const_val): Changed formal parameters.
5179         (ipcp_insert_stage): Removed useless variable cvalue
5180         (build_const_val): Changed formal parameters.
5181         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
5182         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
5183         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
5184         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
5185         (ipcp_print_func_profile_counts): Changed string from "method" to 
5186         "function"
5187         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
5188         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
5189         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
5190         (ipcp_structures_print): Renamed to ipcp_print_all_structures
5191         (ipcp_profile_print): Renamed to ipcp_print_profile_data
5192         (ipcp_lat_is_const): Changed parameters and made inline.
5193         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
5194         (ipcp_redirect): Renamed to ipcp_need_redirect_p
5195         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
5196         the predicate condition directly
5197         (ipcp_propagate_stage): Added local variable args. Removed local
5198         variable callee.  (Both are mere code simplifications.)
5199         (ipcp_method_dont_insert_const): Renamed to
5200         ipcp_node_not_modifiable_p.
5201         (ipcp_node_not_modifiable_p): Made inline.
5202         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
5203         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
5204         (ipcp_print_all_lattices): Removed variable cvalue
5205         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
5206         Updated comments.
5207
5208 2008-05-06  Olivier Hainque  <hainque@adacore.com>
5209
5210         * tree-sra.c (try_instantiate_multiple_fields): Early return
5211         if field has POINTER_TYPE.
5212
5213 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
5214
5215         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
5216         by using 'q' specifier for instruction.
5217         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
5218
5219 2008-05-06  Anatoly Sokolov <aesok@post.ru>
5220
5221         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5222         Change mode of zero_extract from QImode to HImode.
5223         (sign bit tests peepholes): (Ditto.).
5224
5225 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
5226
5227         * config/i386/mmx.md: Remove double backslashes from asm templates.
5228         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
5229         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5230         to handle nonimmediate operands.
5231         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
5232         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5233         to handle nonimmediate operands.
5234         (*mmx_<code>v2sf3_finite): New insn pattern.
5235         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
5236         (mmx_<code>v2sf3): New expander.  Use
5237         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5238         (mmx_<plusminus_insn><mode>3): New expander.  Use
5239         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5240         (*mmx_<plusminus_insn><mode>3): New insn pattern.
5241         (mmx_add<mode>3): Removed.
5242         (mmx_ssadd<mode>3): Ditto.
5243         (mmx_usadd<mode>3): Ditto.
5244         (mmx_sub<mode>3): Ditto.
5245         (mmx_sssub<mode>3): Ditto.
5246         (mmx_ussub<mode>3): Ditto.
5247         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
5248         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
5249         to handle nonimmediate operands.
5250         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
5251         insn pattern.
5252         (mmx_smulv4hi3_highpart): New expander.  Use
5253         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5254         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
5255         insn pattern.
5256         (mmx_umulv4hi3_highpart): New expander.  Use
5257         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5258         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
5259         (mmx_<code>v4hi3): New expander.  Use
5260         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5261         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
5262         (mmx_<code>v8qi3): New expander.  Use
5263         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5264         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
5265         (mmx_<code><mode>3): New expander.  Use
5266         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5267
5268 2008-05-05  Jan Hubicka  <jh@suse.cz>
5269
5270         PR tree-optimization/36118
5271         * passes.c (pass_init_dump_file): Fix dump header.
5272
5273 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5274
5275         PR middle-end/36141
5276         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
5277         VCE for function decls.
5278
5279 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5280
5281         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
5282
5283 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5284
5285         * config/i386/i386.md (sat_plusminus): New.
5286         (plusminus_insn): Likewise.
5287         (plusminus_mnemonic): Likewise.
5288         (addsub): Removed.
5289         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
5290         (*<addsub><mode>3_cc_overflow): Renamed to ...
5291         (*<plusminus_insn><mode>3_cc_overflow): This.
5292         (*<addsub>si3_zext_cc_overflow): Renamed to ...
5293         (*<plusminus_insn>si3_zext_cc_overflow): This.
5294
5295         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
5296         (<plusminus_insn><mode>3): This.
5297         (*<addsub><mode>3): Renamed to ...
5298         (*<plusminus_insn><mode>3): This.
5299         (<sse>_vm<addsub><mode>3): Renamed to ...
5300         (<sse>_vm<plusminus_insn><mode>3): This.
5301         (sse3_h<addsub>v4sf3): Renamed to ...
5302         (sse3_h<plusminus_insn>v4sf3): This.
5303         (sse3_h<addsub>v2df3): Renamed to ...
5304         (sse3_h<plusminus_insn>v2df3): This.
5305         (<plusminus_insn><mode>3): New.
5306         (*<plusminus_insn><mode>3): Likewise.
5307         (sse2_<plusminus_insn><mode>3): Likewise.
5308         (add<mode>): Removed.
5309         (*add<mode>3): Likewise.
5310         (sse2_ssadd<mode>3): Likewise.
5311         (sse2_usadd<mode>3): Likewise.
5312         (sub<mode>3): Likewise.
5313         (*sub<mode>3): Likewise.
5314         (sse2_sssub<mode>3): Likewise.
5315         (sse2_ussub<mode>3): Likewise.
5316
5317 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
5318
5319         * gthr-single.h: Add in required interface elements as per gthr.h.
5320         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
5321         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
5322         Generalize UNUSED macro. 
5323         (__gthread_once): Add.
5324         (__gthread_key_create): Add.
5325         (__gthread_key_delete): Add.
5326         (__gthread_getspecific): Add.
5327         (__gthread_setspecific): Add.
5328         
5329 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
5330
5331         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
5332         the same size types for the indirect reference on the rhs, then
5333         create a VCE.
5334
5335 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
5336
5337         * config/i386/i386.md
5338         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
5339         one insn template instead of template series.
5340         (*xordi_1_rex64): Ditto.
5341         (*xordi_2_rex64): Ditto.
5342
5343 2008-05-05  Ira Rosen  <irar@il.ibm.com>
5344
5345         PR tree-optimization/36119
5346         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
5347         in case of SLP.
5348
5349 2008-06-04  Jan Hubicka  <jh@suse.cz>
5350
5351         tree-optimization/36100
5352         * tree-pass.h (pass_O0_always_inline): Declare.
5353         * ipa-inline.c (inline_transform): Remove dead code.
5354         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
5355         pass_O0_always_inline): New.
5356         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
5357
5358 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
5359
5360         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
5361         mnemonic in this_param move for TARGET_64BIT.
5362
5363 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
5364
5365         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
5366         (*strmovsi_rex_1): Ditto.
5367         (*strsetsi_1): Ditto.
5368         (*strsetsi_rex_1): Ditto.
5369
5370         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
5371         adddicc expanders using SWI mode iterator.
5372
5373 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5374
5375         PR target/36121
5376         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
5377         argument handling.
5378
5379 2008-05-04  David S. Miller  <davem@davemloft.net>
5380
5381         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
5382         (sparc*-*-linux*): Use linux.h in tm_file.
5383         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
5384         compiler defaulting to 32-bit.
5385         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
5386         no longer needed.
5387         * config/sparc/linux.h: Remove definitions now obtained
5388         properly from linux.h
5389         * config/sparc/linux64.h: Likewise.
5390         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
5391         don't want this setting for 32-bit builds in a biarch compiler.
5392         * doc/install.texi: Add sparc-linux to list of targets
5393         supporting --enable-targets=all.
5394
5395 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
5396
5397         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
5398
5399 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
5400
5401         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
5402         after V4SI_FTYPE_V8HI.
5403         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
5404         case V4SI_FTYPE_V2DF.
5405
5406 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
5407
5408         * doc/invoke.texi (max-flow-memory-locations): Removed.
5409         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
5410         
5411 2008-05-03  Richard Guenther  <rguenther@suse.de>
5412
5413         PR middle-end/34973
5414         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
5415
5416 2008-05-02  David S. Miller  <davem@davemloft.net>
5417
5418         * config.gcc (need_64bit_hwint): Document libcpp dependency.
5419
5420 2008-05-02  Simon Baldwin <simonb@google.com>
5421
5422         PR bootstrap/36108
5423         * c-common.h (warn_array_subscript_range): Removed.
5424         * c-common.c (warn_array_subscript_range): Ditto.
5425         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
5426         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
5427
5428 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5429
5430         * config/i386/i386.c (ix86_special_builtin_type): New.
5431         (bdesc_special_args): Likewise.
5432         (ix86_expand_special_args_builtin): Likewise.
5433         (ix86_init_mmx_sse_builtins): Updated.
5434         (ix86_expand_builtin): Updated.
5435         (ix86_expand_store_builtin): Removed.
5436         (ix86_expand_unop_builtin): Likewise.
5437
5438         * config/i386/mm3dnow.h (__v2sf): Moved to ...
5439         * config/i386/mmintrin.h (__v2sf): Here.
5440
5441         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
5442         const __v2sf.
5443         (_mm_loadl_pi): Likewise.
5444         (_mm_storeh_pi): Replace __v2si with __v2sf.
5445         (_mm_storel_pi): Likewise.
5446
5447         * doc/extend.texi: Correct __builtin_ia32_loadhps,
5448         __builtin_ia32_loadlps, __builtin_ia32_storehps,
5449         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
5450         __builtin_ia32_loadlpd.
5451
5452 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5453
5454         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
5455         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
5456         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
5457         (ix86_init_mmx_sse_builtins): Updated.
5458         (ix86_expand_args_builtin): Likewise.
5459         (ix86_expand_builtin): Likewise.
5460         (ix86_expand_unop1_builtin): Renamed to ...
5461         (ix86_expand_unop_vec_merge_builtin): This.
5462
5463 2008-05-01  Jan Hubicka  <jh@suse.cz>
5464
5465         PR bootstrap/36100
5466         * ipa-inline.c (inline_generate_summary): Make static.
5467         (inline_transform): Do not call inlining at -O0; make static.
5468         * passes.c (execute_todo): Add sanity check.
5469         (execute_one_ipa_transform_pass): Execute proper flags.
5470
5471 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
5472
5473         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
5474         (DECL_NONADDRESSABLE_P): Likewise.
5475         * alias.c (record_component_aliases): Fix comment.
5476
5477 2008-05-01  Simon Baldwin <simonb@google.com>
5478
5479         * c-common.h (warn_array_subscript_range): New function.
5480         * c-common.c (warn_array_subscript_range): Ditto.
5481         * tree-vrp.c (check_array_ref): Corrected code to agree with
5482         comment, ignoring only arrays of size 0 or size 1.
5483         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
5484
5485 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5486
5487         * config/i386/i386.c (ix86_builtin_type): Replace
5488         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
5489         (bdesc_args): Updated.
5490         (ix86_init_mmx_sse_builtins): Likewise.
5491         (ix86_expand_args_builtin): Likewise.
5492
5493         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
5494         with __v1di.
5495
5496         * doc/extend.texi: Correct __builtin_ia32_palignr.
5497
5498 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5499
5500         PR target/36095
5501         * config/i386/i386.c (bdesc_crc32): Removed.
5502         (ix86_expand_crc32): Likewise.
5503         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
5504         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
5505         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
5506         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
5507         UINT_FTYPE_UINT_UCHAR.
5508         (bdesc_args): Updated. Add crc32 builtins.
5509         (ix86_init_mmx_sse_builtins): Updated.
5510         (ix86_expand_args_builtin): Updated to support subreg.
5511
5512         * doc/extend.texi: Correct __builtin_ia32_crc32di.
5513
5514 2008-05-01  Jan Hubicka  <jh@suse.cz>
5515
5516         * tree-pass.h (opt_pass): Add IPA_PASS.
5517         (varpool_node, cgraph_node): Forward declare.
5518         (ipa_opt_pass): Define.
5519         (pass_ipa_inline): Turn into ipa_opt_pass.
5520         (pass_apply_inline): Remove.
5521         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
5522         (apply_inline): Turn into ....
5523         (inline_transform): ... this one.
5524         (inline_generate_summary): New function.
5525         (pass_apply_inline): Remove.
5526         * function.h (ipa_opt_pass): Forward declare structure; typedef;
5527         vector.
5528         (struct function): Add ipa_transforms_to_apply.
5529         * passes.c (register_one_dump_file): Work on IPA_PASS.
5530         (init_optimization_passes): Remove pass_inline_parameters and
5531         pass_apply_inline.
5532         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
5533         (execute_one_pass) ... here; apply transforms when possible.
5534         (add_ipa_transform_pass, execute_ipa_summary_asses,
5535         execute_one_ipa_transform_pass): New.
5536         (execute_ipa_pass_list): Update for IPA_PASS type.
5537
5538 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5539
5540         * config/i386/i386.c (ix86_builtin_type): Add
5541         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
5542         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
5543         (bdesc_args): Add SSE4a builtins.
5544         (ix86_init_mmx_sse_builtins): Updated.
5545         (ix86_expand_args_builtin): Likewise.
5546         (ix86_expand_builtin): Likewise.
5547
5548 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5549
5550         * config/i386/i386.c (ix86_builtin_type): Add
5551         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
5552         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
5553         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
5554         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
5555         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
5556         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
5557         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
5558         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
5559         and DI_FTYPE_DI_DI_INT.
5560         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
5561         (ix86_init_mmx_sse_builtins): Updated.
5562         (ix86_expand_args_builtin): Likewise.
5563         (ix86_expand_builtin): Likewise.
5564         (ix86_expand_binop_imm_builtin): Removed.
5565
5566         * doc/extend.texi: Correct __builtin_ia32_palignr128.
5567
5568 2008-04-30  Richard Guenther  <rguenther@suse.de>
5569
5570         PR tree-optimization/32921
5571         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
5572
5573 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
5574
5575         * config/arm/arm.c (arm_unwind_emit): Use
5576         crtl->all_throwers_are_sibcalls instead of
5577         cfun->all_throwers_are_sibcalls.
5578         (arm_output_fn_unwind): Likewise.
5579         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
5580         instead of cfun->uses_pic_offset_table.
5581         (frv_expand_prologue): Likewise.
5582         (frv_frame_pointer_required): Likewise.
5583         (frv_expand_fdpic_call): Likewise.
5584         (frv_emit_movsi): Likewise.
5585         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
5586         cfun->returns_pcc_struct instead of
5587         current_function_returns_pcc_struct.
5588         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
5589         instead of cfun->calls_eh_return.
5590         (m32c_pushm_popm): Likewise.
5591         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
5592         "extern" declaration.
5593
5594 2008-04-30  Richard Guenther  <rguenther@suse.de>
5595
5596         PR tree-optimization/21636
5597         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
5598         constant address.
5599         (evaluate_stmt): Print the likely value.
5600         (ccp_visit_stmt): Avoid excessive vertical spacing.
5601
5602 2008-04-30  Rafael Espindola  <espindola@google.com>
5603
5604         * builtins.c (fold_call_expr): Return realret.
5605         * tree-ssa-threadedge.c
5606         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5607         __builtin_object_size.
5608
5609 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
5610
5611         * gcc.c (wrapper_string): New variable.
5612         (insert_wrapper): New function.
5613         (execute): New option -wrapper.
5614         * doc/invoke.texi (Overall Options): New driver option -wrapper.
5615
5616 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
5617
5618         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
5619         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
5620         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
5621         from...
5622         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
5623         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
5624         config/rs6000/e500crtres64gprctr.asm,
5625         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
5626         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
5627         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
5628         config/rs6000/e500crtsav64gprctr.asm,
5629         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
5630         config/rs6000/e500crtsavg64gprctr.asm: New files.
5631         * config/rs6000/t-ppccomm: Add build rules for new files.
5632         (LIB2FUNCS_STATIC_EXTRA): Add new files.
5633         * config/rs6000/t-netbsd: Add build rules for new files.
5634         (LIB2FUNCS_STATIC_EXTRA): New variable.
5635         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
5636         (CRTSAVRES_DEFAULT_SPEC): Likewise.
5637         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
5638
5639 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
5640
5641         * config/i386/i386.c (ix86_builtin_type): Add
5642         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
5643         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
5644         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
5645         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
5646         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
5647         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
5648         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
5649         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
5650         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
5651         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
5652         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
5653         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
5654         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
5655         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
5656         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
5657         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
5658         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
5659         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
5660         V1DI_FTYPE_V2SI_V2SI.
5661         (bdesc_2arg): Moved to ...
5662         (bdesc_args): Here.
5663         (ix86_init_mmx_sse_builtins): Updated.
5664         (ix86_expand_args_builtin): Updated.  Take a pointer
5665         to const struct builtin_description.  Handle comparison
5666         builtin functions.
5667         (ix86_expand_sse_compare): Take a new argument for swapping operands.
5668         (ix86_expand_builtin): Updated.
5669
5670         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
5671         (ssse3_pmaddubsw128): This.
5672         (ssse3_pmaddubswv4hi3): Renamed to ...
5673         (ssse3_pmaddubsw): This.
5674
5675         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
5676         (__builtin_ia32_packssdw128): Likewise.
5677         (__builtin_ia32_packuswb128): Likewise.
5678         (__builtin_ia32_pmaddubsw): Likewise.
5679         (__builtin_ia32_pmaddubsw128): Likewise.
5680
5681 2008-04-30  Richard Guenther  <rguenther@suse.de>
5682
5683         PR tree-optimization/14847
5684         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
5685         (recognize_bits_test): Use it.
5686         (recognize_single_bit_test): Likewise.
5687
5688 2008-04-30  Martin Jambor  <mjambor@suse.cz>
5689
5690         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
5691         instead of setting number of formal parameters to zero.
5692         (ipcp_init_stage): Do not set the number of actual parameters to zero 
5693         either.
5694         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
5695         which are called with variable number of arguments.
5696         (ipcp_insert_stage): Explicitely skipping all nodes which are
5697         called with variable number of arguments.
5698         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
5699         number of parameters.
5700
5701         * ipa-prop.h (struct ipa_node_params): Added flag
5702         called_with_var_arguments
5703         (ipa_set_param_count): Added.  Changed sole setter to use it.
5704         (ipa_get_param_count): Added.  All readers of param_count
5705         converted to use it instead.
5706         (ipa_set_called_with_variable_arg): Added.
5707         (ipa_is_called_with_var_arguments): Added.
5708         (ipa_get_ith_param): Added.  All readers of param_decls converted
5709         to use it instead.
5710         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
5711         changed to use it. 
5712         (ipa_get_cs_argument_count): Added, all readers of argument_count
5713         changed to cal it.
5714         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
5715         to use it.
5716         
5717         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
5718         (struct ipcp_lattice): Renamed cval_type to type
5719         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
5720
5721         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
5722         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
5723         (ipcp_insert_stage): Changed the type of variable cvalue to tree
5724         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
5725         (build_const_val): Changed the type of parameter cvalue to tree
5726         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
5727         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
5728         
5729         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
5730         constant 
5731
5732         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
5733         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
5734         (ipa_add_method): Renamed to ipa_push_func_to_list
5735         (ipa_remove_method): Renamed to ipa_pop_func_from_list
5736         (ipa_callsite_param_count): Removed.
5737         (ipa_callsite_param_count_set): Removed.
5738         (ipa_callsite_param): Removed.
5739         (ipa_callsite_callee): Removed.
5740         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
5741         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
5742         (ipa_method_formal_count): Removed.
5743         (ipa_method_formal_count_set): Removed.
5744         (ipa_method_get_tree): Removed.
5745         (ipa_method_tree_map_create): Removed.
5746         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
5747         (ipa_create_param_decls_array): Creates the array itself
5748         (ipa_create_param_decls_array): Temporary variable info instead of 
5749         a few dereferences.
5750         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
5751         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
5752         (get_type): Removed.
5753         (ipa_jf_get_info_type): Removed.
5754         (ipa_node_create): Renamed to ipa_create_node_params
5755         (ipa_free): Renamed to ipa_free_all_node_params
5756         (ipa_nodes_create): Renamed to ipa_create_all_node_params
5757         (ipa_edges_create): Renamed to ipa_create_all_edge_args
5758         (ipa_edges_free): Renamed to ipa_free_all_edge_args
5759         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
5760         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
5761         ipa_free_all_edge_args
5762         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
5763         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
5764         (ipa_create_methodlist_node): Removed.
5765         (ipa_methodlist_method): Removed.
5766         (ipa_methodlist_method_set): Removed.
5767         (ipa_methodlist_next_method): Removed.
5768         (ipa_methodlist_next_method_set): Removed.
5769         (ipa_method_is_modified): Removed.
5770         (ipa_method_modify_create): Removed.
5771         (ipa_method_modify_init): Temporary variable info instead of a few 
5772         dereferences.
5773         (ipa_detect_param_modifications): Temporary variable info instead of 
5774         a few dereferences.
5775         (ipa_compute_jump_functions): Temporary variable info instead of 
5776         a few dereferences.
5777         (ipa_method_modify_set): Removed.
5778         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
5779         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
5780         than craph_node as the first parameter.
5781         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
5782         (ipa_method_modify_init): Removed.
5783         (ipa_compute_jump_functions): Added a temp variable instead of 
5784         repeatadly dereferencing the cgraph_edge.aux pointer
5785         (ipa_callsite_param_set_type): Removed.
5786         (ipa_compute_jump_functions): i renamed to index and moved to 
5787         an inner block
5788         (ipa_callsite_param_set_info_type_formal): Removed.
5789         (ipa_callsite_param_set_info_type): Removed.
5790         (ipa_callsite_param_map_create): Removed.
5791         (ipa_callsite_tree): Removed.
5792         (ipa_callsite_caller): Removed.
5793         (ipa_pop_func_from_list): return_method removed to return_func
5794
5795         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
5796         prefixed all values with IPA_. Changed all users.
5797         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
5798         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
5799         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
5800         (union parameter_info): Renamed to jump_func_value.
5801         (union jump_func_value): Renamed value to constant
5802         (struct ipa_jump_func): Renamed info_type to value
5803         (struct ipa_node): Renamed to ipa_node_params
5804         (struct ipa_node_params): Renamed ipa_arg_num to param_count
5805         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
5806         (struct ipa_node_params): Renamed ipa_mod to modified_flags
5807         (struct ipa_edge): Renamed to ipa_edge_args
5808         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
5809         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
5810         (struct ipa_methodlist): Renamed to ipa_func_list
5811         (struct ipa_func_list): method_p renamed to node, next_method
5812         renamed to next
5813         (ipa_methodlist_p): Removed, switched all users to struct pointer
5814         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
5815
5816 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
5817
5818         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
5819         (rs6000_emit_epilogue): Use backchain to restore only when we
5820         have a large frame.  Make use of frame pointer to restore if we
5821         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
5822
5823 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
5824
5825         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5826         Add mode to zero_extract.
5827         (sign bit tests peepholes): (Ditto.).
5828
5829 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
5830
5831         * config/i386/i386.c (ix86_builtins): Replace Prescott New
5832         Instructions in comments with SSE3.
5833         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
5834         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
5835         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
5836         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
5837         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
5838         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
5839         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
5840         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
5841         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
5842         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
5843         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
5844         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
5845         (bdesc_sse_args): Renamed to ...
5846         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
5847         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
5848         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
5849         IX86_BUILTIN_FABSQ.
5850         (bdesc_1arg): Moved to ...
5851         (bdesc_args): Here.
5852         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
5853         Instructions in comments with SSE3.
5854         (ix86_expand_sse_operands_builtin): Renamed to ...
5855         (ix86_expand_args_builtin): This.  Updated.
5856         (ix86_expand_unop1_builtin): Update comments.
5857         (ix86_expand_builtin): Updated.
5858
5859 2008-04-29  Richard Guenther  <rguenther@suse.de>
5860
5861         PR tree-optimization/36078
5862         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
5863         Update virtual SSA form after cleaning up the CFG.
5864
5865 2008-04-29  Richard Guenther  <rguenther@suse.de>
5866
5867         PR middle-end/15255
5868         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
5869
5870 2008-04-29  Richard Guenther  <rguenther@suse.de>
5871
5872         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
5873         (compute_may_aliases): Do not call finalize_ref_all_pointers.
5874         (compute_flow_insensitive_aliasing): Do not treat
5875         PTR_IS_REF_ALL pointers special.
5876         (get_smt_for): Likewise.
5877         (may_alias_p): Re-structure.
5878         (is_escape_site): A ref-all pointer conversion is not an escape site.
5879         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
5880         PTR_IS_REF_ALL pointers special.
5881         * tree-ssa-structalias.h (struct alias_info): Remove
5882         ref_all_symbol_mem_tag field.
5883         (PTR_IS_REF_ALL): Remove.
5884
5885 2008-04-29  Richard Guenther  <rguenther@suse.de>
5886
5887         PR middle-end/36077
5888         * fold-const.c (extract_muldiv_1): In combining division constants
5889         make sure to never overflow.
5890
5891 2008-04-29  Nick Clifton  <nickc@redhat.com>
5892
5893         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
5894
5895 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5896
5897         PR bootstrap/35169
5898         * optc-gen.awk: Work around HP-UX/IA awk bug.
5899
5900 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
5901
5902         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
5903         2008-04-25 commit.
5904
5905 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5906
5907         PR target/36073
5908         * config/i386/i386.md
5909         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
5910         Change operand 1 predicate to nonimmediate_operand.
5911
5912 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
5913
5914         PR debug/36060
5915         * dwarf2out.c (struct die_struct): Mark as chain_circular through
5916         die_sub field.
5917         * gengtype.c (walk_type, write_func_for_structure): Handle
5918         chain_circular.
5919         * doc/gty.texi: Document chain_circular.
5920
5921 2008-04-28  Richard Guenther  <rguenther@suse.de>
5922
5923         PR tree-optimization/36066
5924         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
5925         SCEV and loop.
5926
5927 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5928
5929         PR target/36064
5930         * config/i386/i386.md
5931         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
5932         Use match_scratch instead of match_operand for operands 3 and 4.
5933
5934 2008-04-27  Richard Guenther  <rguenther@suse.de>
5935
5936         PR tree-optimization/18754
5937         PR tree-optimization/34223
5938         * tree-pass.h (pass_complete_unrolli): Declare.
5939         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
5940         loop size before and after unconditionally of UL_NO_GROWTH in effect.
5941         Rewrite loop into loop closed SSA form if it is not already.
5942         (tree_unroll_loops_completely): Re-structure to iterate over
5943         innermost loops with intermediate CFG cleanups.
5944         Unroll outermost loops only if requested or the code does not grow
5945         doing so.
5946         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
5947         loops are available.
5948         (tree_vectorize): Instead do so here.
5949         (tree_complete_unroll): Also unroll outermost loops.
5950         (tree_complete_unroll_inner): New function.
5951         (gate_tree_complete_unroll_inner): Likewise.
5952         (pass_complete_unrolli): New pass.
5953         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
5954         uses outside of the loop.
5955         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
5956         form if it is available.  
5957         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
5958         * passes.c (init_optimization_passes): Schedule complete inner
5959         loop unrolling pass before the first CCP pass after final inlining.
5960
5961 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
5962
5963         * targhooks.h (default_emutls_var_fields,
5964         default_emutls_var_init): Declare.
5965         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
5966         * target.h (struct gcc_target): Add struct emutls member.
5967         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
5968         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
5969         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
5970         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
5971         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
5972         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
5973         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
5974         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
5975         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
5976         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
5977         emit debug information.
5978         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
5979         * varasm.c: Include targhooks.h.
5980         (emutls_object_section, emutls_tmpl_section): New.
5981         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
5982         (EMUTLS_SEPARATOR): New.
5983         (prefix_name): New.
5984         (get_emutls_object_name): New.
5985         (default_emutls_var_fields): New, broken out of ...
5986         (get_emutls_object_type): ... here.  Adjust to use target hooks.
5987         (get_emutls_init_templ_addr): Adjust to use target hooks.
5988         (emutls_decl): Adjust to use target hooks.
5989         (emutls_finish): Likewise.
5990         (default_emutls_var_init): New, broken out of ...
5991         (assemble_variable): ... here.  Adjust to use target hooks.
5992         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
5993         SECCAT_EMUTLS_TMPL.
5994         * c-common.c (handle_section_attribute): Prevent overriding
5995         sections for emulated tls with special sections.
5996         * config/i386/i386.c (x86_64_elf_select_section): Add
5997         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
5998         (x86_64_elf_unique_section): Likewise.
5999         * config/vxworks.c: Include tree.h.
6000         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
6001         (vxworks_override_options): Set TLS scheme.
6002         * doc/tm.texi (Emulated TLS): New node.
6003
6004 2008-04-26  Simon Baldwin <simonb@google.com>
6005
6006         PR c/35652
6007         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
6008         with propagated string constants.
6009
6010 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
6011
6012         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
6013         constraint for operand 2 when operand 0 is memory operand.
6014         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
6015         operand 0 is memory operand.
6016         (fix_trunc<mode>_i387_with_temp): Ditto.
6017         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
6018         operand 2 when operand 1 is memory operand.
6019         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
6020         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
6021         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
6022         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6023         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
6024         operands 2,3 and 4 when operand 1 is memory operand.
6025         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
6026         is memory operand.
6027         (fistdi2_floor_with_temp): Ditto.
6028         (fist<mode>2_floor_with_temp): Ditto.
6029         (fistdi2_ceil_with_temp): Ditto.
6030         (fist<mode>2_ceil_with_temp): Ditto.
6031         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
6032
6033 2008-04-26  David Daney  <ddaney@avtrex.com>
6034
6035         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
6036         unspec_volitile.
6037         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
6038         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
6039         UNSPEC_UPDATE_GOT_VERSION): Renumber.
6040         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
6041         (compare_and_swap_12): New insn.
6042         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
6043         * config/mips/mips.c (mips_force_binary): New function.
6044         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
6045         (mips_expand_compare_and_swap_12): New function.
6046         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
6047
6048 2008-04-25  Jan Hubicka  <jh@suse.cz>
6049
6050         PR testsuite/35843
6051         * cfgexpand.c (pass_expand): Turn into RTL pass.
6052         * passes.c (execute_one_pass): Do pass typechecking after execution.
6053         * tree-pass.h (pass_expand): Turn into RTL pass.
6054
6055         * function.h (struct rtl_data): Move here fields
6056         accesses_prior_frames, calls_eh_return, saves_all_registers,
6057         has_nonlocal_goto, has_asm_statement, is_thunk,
6058         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
6059         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
6060         arg_pointer_save_area_init from struct function; turn into bool.
6061         (struct function): Move
6062         calls_eh_return, saves_all_registers, has_nonlocal_goto,
6063         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
6064         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
6065         tail_call_emit, arg_pointer_save_area_init
6066         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
6067         (current_function_returns_struct, current_function_returns_pcc_struct,
6068         current_function_calls_setjmp, current_function_calls_alloca,
6069         current_function_accesses_prior_frames,
6070         current_function_calls_eh_return, current_function_is_thunk,
6071         current_function_stdarg, current_function_profile,
6072         current_function_limit_stack, current_function_uses_pic_offset_table,
6073         current_function_uses_const_pool, current_function_has_nonlocal_label,
6074         current_function_saves_all_registers,
6075         current_function_has_nonlocal_goto,
6076         current_function_has_asm_statement): Remove accesor macros.
6077         * ra-conflict.c (global_conflicts): Update.
6078         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
6079         (suitable_for_tail_call_opt_p): Update.
6080         * builtins.c (expand_builtin_return_addr): Update.
6081         (expand_builtin_setjmp_setup): Update.
6082         (expand_builtin_nonlocal_goto): Update.
6083         * final.c (final_start_function): Update.
6084         (profile_function): Update.
6085         (leaf_function_p): Update.
6086         (only_leaf_regs_used): Update.
6087         * df-scan.c (df_get_exit_block_use_set): Update.
6088         * dojump.c (clear_pending_stack_adjust): Update.
6089         * tree-stdarg.c (gate_optimize_stdarg): Update.
6090         * gimple-low.c (lower_function_body): Update.
6091         * global.c (compute_regsets): Update.
6092         (global_alloc): Update.
6093         * dwarf2out.c (dwarf2out_begin_prologue): Update.
6094         * expr.c (expand_assignment): Update.
6095         * dse.c (dse_step0): Update.
6096         (dse_step1): Update.
6097         * c-decl.c (store_parm_decls): Update.
6098         * local-alloc.c (combine_regs): Update.
6099         (find_free_reg): Update.
6100         * function.c (assign_parms_augmented_arg_list): Update.
6101         (assign_parm_find_data_types): Update.
6102         (assign_parms): Update.
6103         (allocate_struct_function): Update.
6104         (expand_function_start): Update.
6105         (expand_function_end): Update.
6106         (get_arg_pointer_save_area): Update.
6107         (thread_prologue_and_epilogue_insns): Update.
6108         (rest_of_match_asm_constraints): Update.
6109         * stor-layout.c (variable_size): Update.
6110         * gcse.c (gcse_main): Update.
6111         (bypass_jumps): Update.
6112         * gimplify.c (gimplify_function_tree): Update.
6113         * calls.c (emit_call_1): Update.
6114         (expand_call): Update.
6115         * bt-load.c (compute_defs_uses_and_gen): Update.
6116         * except.c (sjlj_assign_call_site_values): Update.
6117         (sjlj_emit_function_enter): Update.
6118         (can_throw_external): Update.
6119         (set_nothrow_function_flags): Update.
6120         (expand_builtin_unwind_init): Update.
6121         (expand_eh_return): Update.
6122         (convert_to_eh_region_ranges): Update.
6123         (output_function_exception_table): Update.
6124         * emit-rtl.c (gen_tmp_stack_mem): Update.
6125         * cfgexpand.c (expand_used_vars): Update.
6126         (tree_expand_cfg): Update.
6127         * cfgcleanup.c (rest_of_handle_jump): Update.
6128         * explow.c (allocate_dynamic_stack_space): Update.
6129         * varasm.c (assemble_start_function): Update.
6130         (force_const_mem): Update.
6131         (mark_constant_pool): Update.
6132         * tree-optimize.c (tree_rest_of_compilation): Update.
6133         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
6134         * tree-cfg.c (notice_special_calls): Update.
6135         (is_ctrl_altering_stmt): Update.
6136         (tree_can_make_abnormal_goto): Update.
6137         (tree_purge_dead_abnormal_call_edges): Update.
6138         * config/alpha/predicates.md: Update.
6139         * config/alpha/alpha.c (alpha_sa_mask): Update.
6140         (alpha_sa_size): Update.
6141         (alpha_does_function_need_gp): Update.
6142         (alpha_expand_prologue): Update.
6143         (alpha_start_function): Update.
6144         (alpha_output_function_end_prologue): Update.
6145         (alpha_expand_epilogue): Update.
6146         * config/frv/frv.c (frv_stack_info): Update.
6147         (frv_expand_epilogue): Update.
6148         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
6149         (s390_register_info): Update.
6150         (s390_frame_info): Update.
6151         (s390_init_frame_layout): Update.
6152         (s390_can_eliminate): Update.
6153         (save_gprs): Update.
6154         * config/spu/spu.c (spu_split_immediate): Update.
6155         (need_to_save_reg): Update.
6156         (spu_expand_prologue): Update.
6157         (spu_expand_epilogue): Update.
6158         * config/sparc/sparc.md: Update.
6159         * config/sparc/sparc.c (eligible_for_return_delay): Update.
6160         (sparc_tls_got): Update.
6161         (legitimize_pic_address): Update.
6162         (sparc_emit_call_insn): Update.
6163         (sparc_expand_prologue): Update.
6164         (output_return): Update.
6165         (print_operand): Update.
6166         (sparc_function_ok_for_sibcall): Update.
6167         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
6168         * config/m32r/m32r.md: Update.
6169         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
6170         (m32r_compute_frame_size): Update.
6171         (m32r_expand_prologue): Update.
6172         (m32r_expand_epilogue): Update.
6173         (m32r_legitimize_pic_address): Update.
6174         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
6175         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6176         * config/i386/i386.c (ix86_frame_pointer_required): Update.
6177         (gen_push): Update.
6178         (ix86_save_reg): Update.
6179         (ix86_compute_frame_layout): Update.
6180         (ix86_expand_prologue): Update.
6181         (ix86_expand_epilogue): Update.
6182         * config/sh/sh.c (output_stack_adjust): Update.
6183         (calc_live_regs): Update.
6184         (sh5_schedule_saves): Update.
6185         (sh_expand_prologue): Update.
6186         (sh_expand_epilogue): Update.
6187         (sh_setup_incoming_varargs): Update.
6188         (sh_allocate_initial_value): Update.
6189         (sh_get_pr_initial_val): Update.
6190         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
6191         * config/sh/sh.md (label:): Update.
6192         * config/avr/avr.c (out_movhi_mr_r): Update.
6193         * config/crx/crx.h (enum): Update.
6194         * config/xtensa/xtensa.h (along): Update.
6195         * config/stormy16/stormy16.c Update.
6196         (xstormy16_compute_stack_layout): Update.
6197         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
6198         (fr30_expand_prologue): Update.
6199         * config/cris/cris.c (cris_conditional_register_usage): Update.
6200         (cris_reg_saved_in_regsave_area): Update.
6201         (cris_initial_frame_pointer_offset): Update.
6202         (cris_simple_epilogue): Update.
6203         (cris_expand_prologue): Update.
6204         (cris_expand_epilogue): Update.
6205         (cris_expand_pic_call_address): Update.
6206         (cris_asm_output_symbol_ref): Update.
6207         (cris_asm_output_label_ref): Update.
6208         * config/cris/cris.md Update.
6209         * config/iq2000/iq2000.c (compute_frame_size): Update.
6210         (iq2000_expand_epilogue): Update.
6211         * config/mt/mt.h (save_direction): Update.
6212         * config/mn10300/mn10300.c (mn10300_function_value): Update.
6213         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6214         (ia64_secondary_reload_class): Update.
6215         * config/m68k/m68k.c (m68k_save_reg): Update.
6216         (m68k_expand_prologue): Update.
6217         (m68k_expand_epilogue): Update.
6218         (legitimize_pic_address): Update.
6219         * config/rs6000/rs6000.c (rs6000_got_register): Update.
6220         (first_reg_to_save): Update.
6221         (first_altivec_reg_to_save): Update.
6222         (compute_vrsave_mask): Update.
6223         (compute_save_world_info): Update.
6224         (rs6000_stack_info): Update.
6225         (spe_func_has_64bit_regs_p): Update.
6226         (rs6000_ra_ever_killed): Update.
6227         (rs6000_emit_eh_reg_restore): Update.
6228         (rs6000_emit_allocate_stack): Update.
6229         (rs6000_emit_prologue): Update.
6230         (rs6000_emit_epilogue): Update.
6231         (rs6000_output_function_epilogue): Update.
6232         (output_profile_hook): Update.
6233         (rs6000_elf_declare_function_name): Update.
6234         * config/rs6000/rs6000.h (rs6000_args): Update.
6235         * config/rs6000/rs6000.md: Update.
6236         * config/mcore/mcore.c (mcore_expand_prolog): Update.
6237         * config/arc/arc.c (arc_output_function_epilogue): Update.
6238         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
6239         * config/darwin.c (machopic_function_base_name): Update.
6240         * config/score/score3.c (score3_compute_frame_size): Update.
6241         (rpush): Update.
6242         (rpop): Update.
6243         (score3_epilogue): Update.
6244         * config/score/score7.c (score7_compute_frame_size): Update.
6245         (score7_prologue): Update.
6246         (score7_epilogue): Update.
6247         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
6248         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6249         * config/arm/arm.c (use_return_insn): Update.
6250         (require_pic_register): Update.
6251         (arm_load_pic_register): Update.
6252         (arm_compute_save_reg0_reg12_mask): Update.
6253         (arm_compute_save_reg_mask): Update.
6254         (thumb1_compute_save_reg_mask): Update.
6255         (output_return_instruction): Update.
6256         (arm_output_function_prologue): Update.
6257         (arm_output_epilogue): Update.
6258         (arm_get_frame_offsets): Update.
6259         (arm_expand_prologue): Update.
6260         (thumb_pushpop): Update.
6261         (thumb_exit): Update.
6262         (thumb1_expand_prologue): Update.
6263         (thumb1_expand_epilogue): Update.
6264         (arm_unwind_emit): Update.
6265         (arm_output_fn_unwind): Update.
6266         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
6267         * config/arm/arm.md: Update.
6268         * config/pa/pa.md: Update.
6269         * config/pa/pa.c (legitimize_pic_address): Update.
6270         (compute_frame_size): Update.
6271         (hppa_expand_prologue): Update.
6272         (hppa_expand_epilogue): Update.
6273         (borx_reg_operand): Update.
6274         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
6275         (HARD_REGNO_RENAME_OK): Update.
6276         * config/mips/mips.c (mips_global_pointer): Update.
6277         (mips_save_reg_p): Update.
6278         (mips_compute_frame_info): Update.
6279         (mips_frame_pointer_required): Update.
6280         (mips_expand_prologue): Update.
6281         (mips_expand_epilogue): Update.
6282         (mips_can_use_return_insn): Update.
6283         (mips_reorg_process_insns): Update.
6284         * config/v850/v850.c (compute_register_save_size): Update.
6285         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
6286         * config/mmix/mmix.c (along): Update.
6287         (mmix_expand_epilogue): Update.
6288         * config/bfin/bfin.c (legitimize_pic_address): Update.
6289         (must_save_p): Update.
6290         (stack_frame_needed_p): Update.
6291         (add_to_reg): Update.
6292         (bfin_expand_prologue): Update.
6293         * stmt.c (expand_asm_operands): Update.
6294         * reload1.c (reload): Update.
6295         (init_elim_table): Update.
6296
6297 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
6298         
6299         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
6300         
6301 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
6302
6303         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
6304         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
6305         (mov<mode>): Removed.
6306         (*movv4sf_internal): Likewise.
6307         (*movv2df_internal): Likewise.
6308
6309 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
6310
6311         * config.gcc (crx-*-elf): Remove deprecation.
6312
6313 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
6314
6315         * config/i386/cygming-crtend.c (register_frame_ctor): Register
6316         __gcc_deregister_frame with atexit.
6317         (deregister_frame_dtor): Remove.
6318
6319 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
6320             Nathan Sidwell  <nathan@codesourcery.com>
6321
6322         * config/rs6000/rs6000.opt (mspe): Remove Var property.
6323         (misel): Likewise.
6324         * config/rs6000/rs6000.h (rs6000_spe): Declare.
6325         (rs6000_isel): Likewise.
6326         * config/rs6000/rs6000.c (rs6000_spe): New variable.
6327         (rs6000_isel): New variable.
6328         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
6329
6330 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6331
6332         PR c++/35758
6333         * c-common.c (handle_vector_size_attribute): Call
6334         lang_hooks.types.reconstruct_complex_type instead of
6335         reconstruct_complex_type.
6336         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
6337         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
6338         * langhooks.h (struct lang_hooks_for_types): Add
6339         reconstruct_complex_type hook.
6340         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
6341         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
6342
6343 2008-04-24  Richard Guenther  <rguenther@suse.de>
6344
6345         * c-common.h (check_builtin_function_arguments): Declare.
6346         * c-common.c (validate_nargs): New function.
6347         (check_builtin_function_arguments): Likewise.
6348         * c-typeck.c (build_function_call): Call
6349         check_builtin_function_arguments.
6350         * builtins.c (fold_builtin_classify): Remove error reporting code.
6351         (fold_builtin_unordered_cmp): Likewise.
6352         (fold_builtin_1): Likewise.
6353         (fold_builtin_n): Likewise.
6354
6355 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6356
6357         PR tree-optimization/36008
6358         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
6359         the original op1, rather than delta by step.
6360
6361 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
6362             Sebastian Pop  <sebastian.pop@amd.com>
6363
6364         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
6365         eliminate_local_variables_stmt, eliminate_local_variables,
6366         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
6367         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
6368         of code delimited by two edges in the CFG.
6369         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
6370         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
6371         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
6372         the case of parallelisation of reductions.
6373         (expr_invariant_in_region_p): New.
6374
6375         * tree-flow.h (gather_blocks_in_sese_region): Declared.
6376         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
6377
6378 2008-04-24  Ira Rosen  <irar@il.ibm.com>
6379             Richard Guenther  <rguenther@suse.de>
6380
6381         PR tree-optimization/36034
6382         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
6383         incapable of dealing with loads with gaps.
6384
6385 2008-04-24  Rafael Espindola  <espindola@google.com>
6386
6387         * tree-flow.h (vrp_evaluate_conditional): Change signature.
6388         * tree-ssa-propagate.c (fold_predicate_in): Update call to
6389         vrp_evaluate_conditional.
6390         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
6391         (vrp_evaluate_conditional): Split the cond argument.
6392         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
6393         (simplify_stmt_for_jump_threading): Update call to
6394         vrp_evaluate_conditional.
6395
6396 2008-04-24  Ira Rosen  <irar@il.ibm.com>
6397
6398         PR tree-optimization/35982
6399         * tree-vect-analyze.c (vect_check_interleaving): Check that the
6400         interleaved data-refs are of the same type.
6401
6402 2008-04-24  Danny Smith  <dannysmith@users.net>
6403
6404         * c-format.c (check_format_info_main): Use strncmp rather than a
6405         magic prefix to handle multichar length specs.
6406         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
6407         Don't prefix "I64" and "I32" with '\0'.
6408
6409 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6410
6411         PR target/36015
6412         * config/i386/i386.c (init_cumulative_args): Don't pass anything
6413         in registers for -m32 only if stdarg_p (fntype).
6414
6415 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
6416
6417         PR rtl-optimization/36006
6418         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
6419         temp to op0 in order to avoid invalid rtx sharing.
6420
6421 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
6422
6423         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
6424         check TREE_INVARIANT.
6425         * tree-gimple.c (is_gimple_address): New.
6426         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
6427         * tree-gimple.h (is_gimple_address): New.
6428         * tree.h (decl_address_invariant_p): New.
6429         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
6430         (build_string): Likewise.
6431         (decl_address_invariant_p): New, from is_gimple_invariant_address.
6432         (tree_invariant_p_1): Likewise.
6433         (save_expr): Use it.
6434         (tree_invariant_p): New.
6435         (skip_simple_arithmetic): Use it.
6436         (stabilize_reference_1): Use it.
6437         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
6438         simplify.
6439         (build1_stat): Drop code to compute TREE_INVARIANT.
6440         (build2_stat): Drop code to compute TREE_INVARIANT.
6441         (build3_stat): Drop code to compute TREE_INVARIANT.
6442         (build4_stat): Drop code to compute TREE_INVARIANT.
6443         (build5_stat): Drop code to compute TREE_INVARIANT.
6444         (build7_stat): Drop code to compute TREE_INVARIANT.
6445         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
6446         * tree.h (struct tree_base): Remove invariant_flag.
6447         (TREE_INVARIANT): Remove.
6448         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
6449         (fold_builtin_expect): Check TREE_CONSTANT.
6450         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
6451         * c-tree.h (c_expr_to_decl): Drop third parameter.
6452         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
6453         (build_c_cast): Don't set TREE_INVARIANT.
6454         (pop_init_level): Don't set TREE_INVARIANT.
6455         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
6456         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
6457         TREE_CONSTANT.
6458         (gimplify_init_constructor): Don't set TREE_INVARIANT.
6459         (gimplify_addr_expr): Adjust comment.
6460         * tree-mudflap.c (mf_build_string):
6461         * print-tree.c (print_node): Don't print TREE_INVARIANT.
6462         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
6463         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
6464         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
6465         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
6466         * langhooks.h (struct lang_hooks): Drop third parameter from
6467         expr_to_decl.
6468
6469 2008-04-23  Richard Guenther  <rguenther@suse.de>
6470
6471         PR tree-optimization/27799
6472         PR tree-optimization/32921
6473         PR tree-optimization/32624
6474         * tree-ssa-structalias.c (merge_smts_into): Only merge the
6475         SMTs aliases and the tag itself into the solution.
6476         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
6477         merge the points-to solution back into the SMT aliases.
6478         (may_alias_p): Use alias_set_subset_of instead of
6479         aliases_conflict_p.  A pointer which points to
6480         memory with alias set zero may access any variable.
6481
6482 2008-04-23  Richard Guenther  <rguenther@suse.de>
6483
6484         * alias.c (alias_set_subset_of): Correctly handle asking
6485         if zero is a subset of an alias set with zero child.
6486         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
6487         (compute_flow_insensitive_aliasing): Correctly walk all
6488         pointers.  Do not unnecessarily union sets.
6489
6490 2008-04-23  Richard Guenther  <rguenther@suse.de>
6491
6492         PR middle-end/36021
6493         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
6494
6495 2008-04-22  Tomas Bily  <tbily@suse.cz>
6496
6497         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
6498         unreachable case.
6499         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
6500         NON_LVALUE_EXPR.
6501         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
6502         * tree-ssa-structalias.c (get_constraint_for): Likewise.
6503         * tree-inline.c (estimate_num_insns_1): Likewise.
6504         * varasm.c (const_hash_1, compare_constant, copy_constant)
6505         (compute_reloc_for_constant, output_addressed_constants): Likewise.
6506         * emit-rtl.c (component_ref_for_mem_expr)
6507         (set_mem_attributes_minus_bitpos): Likewise.
6508         * expr.c (highest_pow2_factor, expand_expr_real_1, )
6509         (is_aligning_offset): Likewise.
6510         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
6511         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
6512         * dojump.c (do_jump): Likewise.
6513         * builtins.c (get_pointer_alignment, get_memory_rtx)
6514         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
6515         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
6516
6517 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
6518
6519         PR rtl-optimization/36017
6520         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
6521         expanding the library call.
6522
6523 2008-04-22  Ian Lance Taylor  <iant@google.com>
6524
6525         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
6526         than size_in_bytes.
6527
6528 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
6529
6530         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
6531         of LR/CTR moves for Power6.
6532
6533 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
6534
6535         PR middle-end/36003
6536         * passes.c (init_optimization_passes): Remove
6537         pass_fast_rtl_byte_dce.
6538         
6539 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
6540
6541         PR target/29096
6542         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
6543         builtin functions to generate faster code.
6544         (_mm_cvtpu16_ps): Ditto.
6545         (_mm_cvtpi32x2_ps): Ditto.
6546
6547 2008-04-22  Nick Clifton  <nickc@redhat.com>
6548
6549         * common.opt (ftree-loop-distribution): Add Optimization
6550         attribute.
6551
6552         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
6553         (frv_expand_builtin_va_start): Likewise.
6554
6555         * config/arm/arm.c (thumb_find_work_register): Fix location of
6556         argument register count.
6557
6558 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6559
6560         Support scheduling for ColdFire V1 and V3 microarchitecture.
6561         Improve scheduling of multiplication instructions.
6562
6563         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
6564         (mac): New instruction attribute.
6565         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
6566         (m68k_sched_mac): New variable.
6567         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
6568         Handle cfv1 and cfv3.
6569         (max_insn_size): New static variable.
6570         (struct _sched_ib): New type.
6571         (sched_ib): New static variable.
6572         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
6573         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
6574         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
6575         Update.
6576         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
6577         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
6578         new variables.  Update.
6579         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
6580         Add modeling of cfv3 instruction buffer.  Update.
6581         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
6582         * config/m68k/m68k.h (TUNE_CFV3): New macro.
6583         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
6584         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
6585         a particular reservation applies to.
6586         (type2): Reorganize attribute values.  Rename alu to alu_reg,
6587         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
6588         to mul_l and mul_w.
6589         (cf_ib_*): Simplify description of instruction buffer.
6590         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
6591         (cf_mem): Split into cf_mem1 and cf_mem2.
6592         (cf_v2_move_??): Rename to cfv12_alu_??.
6593         (cf_v2_move_l_??): Rename to cfv12_omove_??.
6594         (cf_v2_mul_??): Remove reservations.
6595         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
6596         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
6597         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
6598         appropriate place.
6599         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
6600         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
6601         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
6602         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
6603         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
6604         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
6605         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
6606         expansions of the above reservations for instructions of sizes
6607         1, 2 and 3 words.
6608
6609 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6610
6611         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
6612
6613 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
6614
6615         * coverage.c: Include tree-pass.h.
6616         (coverage_counter_alloc): Print da_file_name to the dump file.
6617
6618 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
6619
6620         * sbitmap.c (sbitmap_range_empty_p): New function.
6621         * sbitmap.h (sbitmap_range_empty_p): New function.
6622         * bitmap.h: Now includes obstack.h.
6623
6624 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
6625             Kenneth Zadeck  <zadeck@naturalbridge.com>
6626
6627         * dbgcnt.def (ra_byte_scan): Added.
6628         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
6629         when the last hit happens for a counter.  
6630         * timevar.def (TV_DF_BYTE_LR): New variable.
6631         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
6632         * passes.c (pass_fast_rtl_byte_dce): New pass.
6633         * fwprop.c (update_df): Added mode to call df_ref_create.
6634         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6635         DF_REF_EXTRACT_OFFSET.
6636         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
6637         DF_BYTE_LR_OUT, df_byte_lr): New macro.
6638         (df_mm): New enum.
6639         (df_ref_extract): Added mode field.
6640         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
6641         DF_REF_EXTRACT_OFFSET.
6642         (DF_REF_EXTRACT_MODE): New macro.
6643         (df_byte_lr_bb_info): New structure.
6644         (df_print_byte_regset, df_compute_accessed_bytes, 
6645         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
6646         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
6647         df_byte_lr_simulate_uses,
6648         df_byte_lr_simulate_artificial_refs_at_top,
6649         df_byte_lr_simulate_artificial_refs_at_end,
6650         df_compute_accessed_bytes): New function.
6651         (df_ref_create): Add parameter.
6652         (df_byte_lr_get_bb_info): New inline function.
6653         * df-scan.c (df_ref_record, df_uses_record,
6654         df_ref_create_structure): Added mode parameter.
6655         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
6656         df_defs_record, df_uses_record, df_get_conditional_uses,
6657         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
6658         df_entry_block_defs_collect, df_exit_block_uses_collect):
6659         Added mode parameter to calls to df_ref_record, df_uses_record,
6660         df_ref_create_structure.
6661         (df_ref_equal_p, df_ref_compare): Added test for modes.
6662         (df_ref_create_structure): Added code to set mode.  Renamed
6663         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6664         DF_REF_EXTRACT_OFFSET.
6665         * df-core.c (df_print_byte_regset): New function.
6666         * df-byte-scan.c: New file.
6667         * df-problems.c (df_rd_transfer_function): Removed unnecessary
6668         calls to BITMAP_FREE.  
6669         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
6670         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
6671         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
6672         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
6673         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
6674         df_byte_lr_local_compute, df_byte_lr_init,
6675         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
6676         df_byte_lr_transfer_function, df_byte_lr_free, 
6677         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
6678         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
6679         df_byte_lr_simulate_uses,
6680         df_byte_lr_simulate_artificial_refs_at_top,
6681         df_byte_lr_simulate_artificial_refs_at_end): New function.
6682         * dce.c (byte_dce_process_block): New function.
6683         (dce_process_block): au is now passed in rather than computed
6684         locally.  Changed loops that look at artificial defs to not look
6685         for conditional or partial ones, because there never are any.  
6686         (fast_dce): Now is able to drive byte_dce_process_block or 
6687         dce_process_block depending on the kind of dce being done.
6688         (rest_of_handle_fast_dce): Add parameter to fast_dce.
6689         (rest_of_handle_fast_byte_dce): New function.
6690         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
6691         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
6692
6693 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
6694
6695         PR fortran/35019
6696         * gcc.h: Added fortran options that take arguments to
6697         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
6698         macros.
6699
6700 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
6701
6702         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
6703         scalarization if on the LHS and not a full access.
6704
6705 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6706
6707         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
6708
6709 2008-04-18  Rafael Espindola  <espindola@google.com>
6710
6711         * tree-vrp.c (find_case_label_index): Fix the binary search.
6712         (find_case_label_range): New.
6713         (vrp_visit_switch_stmt): Use find_case_label_range.
6714         (simplify_switch_using_ranges): Use find_case_label_range.
6715
6716 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6717
6718         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
6719         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
6720
6721 2008-04-18  Tom Tromey  <tromey@redhat.com>
6722
6723         PR libcpp/15500:
6724         * doc/cpp.texi (Implementation-defined behavior): Mention
6725         -finput-charset.
6726
6727 2008-04-18  Ian Lance Taylor  <iant@google.com>
6728
6729         * fold-const.c (pointer_may_wrap_p): New static function.
6730         (fold_comparison): Add another test for pointer overflow.  Use
6731         pointer_may_wrap_p to disable some false positives.
6732
6733 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
6734           
6735         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
6736         (fname_as_string): Match updated cpp_interpret_string prototype.
6737         (fix_string_type): Support char16_t* and char32_t*.
6738         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
6739         derivative) nodes.  Register as builtin if C++0x.
6740         (c_parse_error): Support CPP_CHAR{16,32}.
6741         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
6742         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
6743         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
6744         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
6745         CTI_CHAR32_ARRAY_TYPE>: New elements.
6746         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
6747         char32_type_node, signed_char32_type_node, char16_array_type_node,
6748         char32_array_type_node): New defines.
6749         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
6750         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
6751         (lex_string): Support CPP_STRING{16,32}, match updated
6752         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
6753         (lex_charconst): Support CPP_CHAR{16,32}.
6754         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
6755         and CPP_STRING{16,32}.
6756
6757 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
6758
6759         PR bootstrap/35457
6760         * aclocal.m4: Regenerate.
6761         * configure: Regenerate.
6762
6763 2008-04-18  Jan Hubicka  <jh@suse.cz>
6764
6765         * except.c (dw2_size_of_call_site_table,
6766         sjlj_size_of_call_site_table): Use vector API for call_site_record.
6767
6768         * cgraphbuild.c (build_cgraph_edges): Update.
6769         * tree-pass.h: Update comment.
6770         * final.c (leaf_function_p): Update.
6771         (leaf_renumber_regs): Update.
6772         (rest_of_clean_state): Update.
6773         * omp-low.c (expand_omp_parallel): Update.
6774         * ipa-reference.c (analyze_function): Update.
6775         * reorg.c (find_end_label): Update.
6776         (optimize_skip): Update.
6777         (fill_simple_delay_slots): Update.
6778         (fill_simple_delay_slots): Update.
6779         (make_return_insns): Update.
6780         (dbr_schedule): Update.
6781         * gimple-low.c (record_vars_into): Update.
6782         * cfgbuild.c (make_edges): Update.
6783         * function.c (assign_stack_local): Update.
6784         (assign_parm_adjust_stack_rtl): Update.
6785         (locate_and_pad_parm): Update.
6786         (allocate_struct_function): Do not initialize stack_alignment_needed
6787         and preferred_stack_boundary here.
6788         (stack_protect_prologue): Update.
6789         (stack_protect_epilogue): Update.
6790         (expand_function_start): Initialize stack_alignment_needed,
6791         preferred_stack_boundary and max_jumptable_ents.
6792         (expand_function_end): Update.
6793         (free_after_compilation): Do not NULLify epilogue_delay_list.
6794         * function.h (struct rtl_data): Add stack_protect_guard,
6795         stack_alignment_needed,
6796         preferred_stack_boundary, epilogue_delay_list.
6797         (struct function): Remove value_histograms, stack_alignment_needed,
6798         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
6799         last_label_uid,
6800         unexpanded_var_list, stack_protect_guard.
6801         (current_function_epilogue_delay_list): Remove.
6802         * ipa-type-escape.c (analyze_function): Update.
6803         * gimplify.c (pop_gimplify_context): Update comment.
6804         * calls.c (expand_call): Update.
6805         (emit_library_call_value_1): Update.
6806         * except.c (set_nothrow_function_flags): Update.
6807         * cfgexpand.c (get_decl_align_unit): Update.
6808         (create_stack_guard): Update.
6809         (estimated_stack_frame_size): Update.
6810         (expand_used_vars): Update.
6811         (tree_expand_cfg): Free histogram earliers, init expansion variables.
6812         * explow.c (allocate_dynamic_stack_space): Update.
6813         * tree-ssa-live.c (remove_unused_locals): Update.
6814         * varasm.c (mark_constant_pool): Update.
6815         * tree-inline.c (remap_decls): Update.
6816         (initialize_cfun): Update.
6817         (declare_return_variable): Update.
6818         (inline_forbidden_p): Update.
6819         (expand_call_inline): Update.
6820         (declare_inline_vars): Update.
6821         (tree_function_versioning): Update.
6822         * tree-flow.h (value_histograms): New.
6823         (VALUE_HISTOGRAMS): New macro.
6824         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
6825         last_label_uid.
6826         * tree-cfg.c (set_bb_for_stmt): Update.
6827         (replace_by_duplicate_decl): Update.
6828         (move_block_to_fn): Update.
6829         (new_label_mapper): Update.
6830         (dump_function_to_file): Update.
6831         * ipa-struct-reorg.c (build_data_structure): Update.
6832         * cfgrtl.c (print_rtl_with_bb): Update.
6833         * reload1.c (reload): Update.
6834         (reload): Update.
6835         * config/i386/i386.c (setup_incoming_varargs_64,
6836         ix86_compute_frame_layout): Update.
6837         * config/arc/arc.c (arc_output_function_epilogue): Update.
6838
6839 2008-04-18  Marius Strobl <marius@FreeBSD.org>
6840
6841         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
6842         for FreeBSD as well.
6843         * gthr-posix95.h: Likewise.
6844
6845 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
6846
6847         PR rtl-optimization/35838
6848         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
6849         out the byte offset of the first subreg.
6850
6851 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
6852
6853         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
6854         to split_ti instead of three separate calls with single member arrays.
6855         (subti3 splitter): Ditto.
6856         (adddi3 splitter): Ditto with split_di.
6857         (subdi3 splitter): Ditto.
6858         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
6859         two separate calls with single member arrays.  Swap match_dup
6860         operands 1 and 2 to better fit into the array.
6861         (negdi2 splitter): Ditto with split_di.
6862         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
6863         two separate calls with single member arrays.  Swap match_dup operands
6864         6 and 7 to better fit into the array.
6865
6866 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
6867
6868         * config/i386/i386.c (sse_builtin_type): New.
6869         (bdesc_sse_args): Likewise.
6870         (bdesc_sse_3arg): Removed.
6871         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6872         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
6873         IX86_BUILTIN_ROUNDPS.
6874         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
6875         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
6876         IX86_BUILTIN_ROUNDPS.
6877         (ix86_expand_sse_4_operands_builtin): Removed.
6878         (ix86_expand_sse_operands_builtin): New.
6879         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
6880         and CODE_FOR_sse4_1_roundps.
6881         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6882         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
6883
6884 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
6885
6886         PR target/35907
6887         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
6888         regs before frame pop when needed.  If use_backchain_to_restore_sp
6889         then load backchain into a temp reg to restore vr and vrsave.  Add
6890         code to restore vr after frame pop if possible.
6891
6892 2008-04-17  Richard Guenther  <rguenther@suse.de>
6893
6894         * tree-vn.c (expressions_equal_p): Do not check type
6895         equality or compatibility before calling operand_equal_p.
6896         * fold-const.c (operand_equal_p): Check equivalence of
6897         integer constants before bailing out due to signedness or
6898         precision differences.
6899         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
6900         spurious differences in type qualification.  Ignore types
6901         for COMPONENT_REFs at all.
6902
6903 2008-04-17  Christian Bruel  <christian.bruel@st.com>
6904
6905         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
6906         msw_skip comparison.
6907         
6908 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
6909
6910         PR c/35739
6911         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
6912         reg type.
6913
6914         PR tree-optimization/35899
6915         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
6916         rather than TREE_OPERAND.
6917
6918 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
6919
6920         PR target/35944
6921         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
6922         temporary registers.  Change operand predicate to general_operand.
6923         (remainderxf3): Ditto.
6924
6925 2008-04-16  Richard Guenther  <rguenther@suse.de>
6926
6927         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
6928         * tree-affine.c (aff_combination_expand): Look through some
6929         conversions.
6930
6931 2008-04-15  Doug Kwan  <dougkwan@google.com>
6932
6933         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
6934         for hex printing.
6935         * tree-pretty-print.c (dump_generic_node): Ditto.
6936         * final.c (output_addr_const): Ditto.
6937         * dwarf2out.c (output_cfi): Ditto.
6938         * c-pretty-print.c (pp_c_integer_constant): Ditto.
6939         * print-rtl.c (print_rtx): Ditto.
6940         * print-tree.c (print_node_brief, print_node): Ditto.
6941         * c-common.c (match_case_to_enum_1): Ditto.
6942         * sched-vis.c (print_value): Ditto.
6943         * config/i386/i386.c (print_operand): Cast to long unsigned int
6944         for hex printing.
6945
6946 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
6947         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
6948         MS Windows VirtualProtect function.
6949
6950 2008-04-15  Jan Hubicka  <jh@suse.cz>
6951
6952         * gengtype.c (write_root): Param_is argument is OK.
6953         * expr.c (expand_expr_real_1): Update call of get_exception_*.
6954         * function.h: Include varray.h
6955         (rtl_eh): New stucture based on except.c one.
6956         (call_site_record): New forward declaration and vector type.
6957         * calls.c (emit_call_1): Do not call
6958         note_current_region_may_contain_throw.
6959         * except.c (eh_status): Remove cur_region, try_region since they are
6960         unused.
6961         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
6962         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
6963         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
6964         Remove call_site_data_used, call_site_data_size.
6965         Turn call_site_record into vector in function.h.
6966         (note_current_region_may_contain_throw): Remove.
6967         (get_exception_pointer, get_exception_filter): Do not take struct
6968         function argument; update.
6969         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
6970         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
6971         build_post_landing_pads, dw2_build_landing_pads,
6972         sjlj_assign_call_site_values, sjlj_mark_call_sites,
6973         sjlj_emit_function_enter, sjlj_emit_function_enter, 
6974         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
6975         sjlj_build_landing_pads, finish_eh_generation,
6976         remove_exception_handler_label, remove_eh_handler,
6977         maybe_remove_eh_handler, add_reachable_handler,
6978         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
6979         add_action_record, collect_one_action_chain, add_call_site,
6980         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
6981         sjlj_output_call_site_table, output_function_exception_table,
6982         * except.h (note_current_region_may_contain_throw): Remove
6983         (get_exception_pointer, get_exception_filter): Do not take struct
6984         function argument.
6985         * Makefile.in (GTFILES): Put varargs before struct function.
6986
6987 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6988
6989         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
6990         punt for STRING_CST.
6991         (get_constraint_for): Deal with STRING_CST here instead.
6992
6993 2008-04-15  Richard Guenther  <rguenther@suse.de>
6994
6995         * tree-ssa-propagate.c (substitute_and_fold): Substitute
6996         statements in a basic-block with a backward walk.  Do not
6997         substitute into dead statements but instead remove those.
6998
6999 2008-04-15  Richard Guenther  <rguenther@suse.de>
7000
7001         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
7002         to zero, thus disable creation of SFTs.
7003
7004 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
7005
7006         * tree-predcom.c (suitable_reference_p): Return false if the
7007         reference can throw.
7008
7009 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
7010
7011         PR c/35751
7012         * c-decl.c (finish_decl): If extern or static var has variable
7013         size, set TREE_TYPE (decl) to error_mark_node.
7014
7015 2008-04-15  Rafael Espindola  <espindola@google.com>
7016
7017         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
7018         variable arg1.
7019
7020 2008-04-15  Richard Guenther  <rguenther@suse.de>
7021
7022         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
7023         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
7024         (visit_reference_op_load): Do walk vuse-vdef chains on
7025         vn_reference_lookup.
7026         (visit_reference_op_store): But do not here.
7027         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
7028         vn_reference_lookup.
7029         (vn_lookup_with_vuses): But do so here.
7030
7031 2008-04-14  Ian Lance Taylor  <iant@google.com>
7032
7033         * fold-const.c (fold_overflow_warning): Remove assertion.
7034
7035 2008-04-15  Ben Elliston  <bje@au.ibm.com>
7036
7037         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
7038         temp1 local variables.
7039
7040 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
7041
7042         PR target/35661
7043         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
7044         ".text.unlikely" section as executable.
7045
7046 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
7047
7048         * config/ia64/ia64.c (rtx_needs_barrier): Handle
7049         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
7050         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
7051         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
7052         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
7053         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
7054         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
7055
7056 2008-04-14  Ian Lance Taylor  <iant@google.com>
7057
7058         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
7059         * fold-const.c (fold_comparison): If appropriate, test
7060         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
7061         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
7062         reassociating a pointer type.
7063         * doc/invoke.texi (Optimize Options): Document that
7064         -fstrict-overflow applies to pointer wraparound.
7065
7066 2008-04-13  Jan Hubicka  <jh@suse.cz>
7067
7068         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
7069
7070 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
7071
7072         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
7073         we are going to "save the world".
7074
7075 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
7076
7077         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
7078         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
7079         operand 0 constraint, not "=".
7080
7081 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
7082
7083         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
7084
7085 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
7086
7087         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
7088         of size of positions_needed * CHAR_BIT.
7089
7090 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
7091
7092         PR middle-end/35897
7093         * dse.c (store_info): Change positions_needed to unsigned
7094         HOST_WIDE_INT.
7095         (lowpart_bitmask): New.
7096         (record_store): Cast to unsigned HOST_WIDE_INT for
7097         positions_needed.  Assert width <= size of positions_needed *
7098         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
7099         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
7100         lowpart_bitmask to set mask.
7101
7102 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
7103
7104         * config/bfin/constraints.md: New file.
7105         * config/bfin/bfin.md: Include it.
7106         (adddi3): Use satisfies_constraint functions instead of the old macros.
7107         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
7108         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
7109         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
7110         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
7111         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
7112         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
7113         EXTRA_CONSTRAINT): Delete.
7114         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
7115         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
7116         of the old macros.
7117         * config/bfin/bfin.c: Include "tm-constrs.h".
7118         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
7119         Use satisfies_constraint functions instead of the old macros.
7120         * doc/md.texi (Blackfin Constraints): Update file name reference.
7121
7122 2008-04-11  Richard Guenther  <rguenther@suse.de>
7123
7124         PR tree-optimization/35869
7125         * tree-vrp.c (execute_vrp): Move switch statement update after
7126         jump threading.  Schedule another cfg cleanup run.
7127
7128 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
7129
7130         PR c/35744
7131         * attribs.c (decl_attributes): Return early on errorneous node.
7132
7133 2008-04-10  Oleg Ryjkov  <olegr@google.com>
7134
7135         * tree.h (struct tree_base): Added a new flag default_def_flag.
7136         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
7137
7138 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
7139
7140         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
7141
7142 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7143
7144         PR target/35768
7145         * pa.md: Define mode iterator P.  Define mode attribute dwc.
7146         (dcacheflush): Update pattern to use iterator P and attribute dwc.
7147         (icacheflush): Likewise.
7148         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
7149         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
7150
7151 2008-04-11  Ben Elliston  <bje@au.ibm.com>
7152
7153         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
7154
7155 2008-04-10  Rafael Espindola  <espindola@google.com>
7156
7157         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
7158         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
7159         (extract_range_from_expr): The same.
7160
7161 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
7162
7163         * config/mips/mips.md (GPR2): New mode iterator.
7164         (seq): Add comment.
7165         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
7166         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
7167         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
7168         Rewrite these to take two modes, the mode of comparison and the
7169         mode of the destination.
7170         * config/mips/mips.c (mips_expand_scc): Instead of having
7171         paradoxical subreg as destination, expand "narrowing" scc if mode
7172         of comparison is SI and target is requested in DI mode.
7173         (mips_emit_int_order_test): Update comment.  Make mode of
7174         comparison match CMP0 rather than TARGET.  When creating inverse
7175         target use mode of TARGET.
7176
7177 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
7178
7179         * gcov-dump.c (tag_summary): Only print summaries for the first
7180         GCOV_COUNTERS_SUMMABLE counters.
7181
7182 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
7183
7184         * config/i386/i386.md (absneg): New code iterator.
7185         (absnegprefix): New code attribute.
7186         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
7187         patterns using absneg code iterator.
7188         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
7189         using absneg code iterator.
7190         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
7191         *neg<mode>2 patterns using absneg code iterator.
7192         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
7193         *negextendsfdf2 patterns using absneg code iterator.
7194         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
7195         *negextendsfxf2 patterns using absneg code iterator.
7196         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
7197         *negextendsfdf2 patterns using absneg code iterator.
7198         * config/i386/sse.md (<code><mode>2): Macroize expander from
7199         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
7200
7201 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
7202
7203         * config/s390/s390.h: Remove the remains of the recent search
7204         & replace action of current_function_outgoing_args_size.
7205
7206 2008-04-10  Ira Rosen  <irar@il.ibm.com>
7207
7208         PR tree-optimization/35821
7209         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
7210         NEW_STMT_LIST is not NULL.
7211
7212 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
7213
7214         PR libstdc++/35597
7215         * toplev.c (process_options): Remove -ffunction-sections debugging
7216         warning.
7217
7218 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
7219
7220         PR middle-end/PR28690
7221         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
7222         than gen_rtx_fmt_ee to perform more canonicalizations.
7223
7224 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7225
7226         PR driver/35665
7227         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
7228
7229 2008-04-09  Richard Guenther  <rguenther@suse.de>
7230
7231         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
7232         (dump_function_to_file): Dump function arguments with types.
7233
7234 2008-04-08  Richard Guenther  <rguenther@suse.de>
7235
7236         * fold-const.c (fold_widened_comparison): Do not allow
7237         sign-changes that change the result.
7238
7239 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
7240
7241         PR target/35839
7242         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
7243         kinds of indirect references.
7244
7245 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
7246
7247         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
7248         GNU Fortran language string.
7249
7250 2008-04-08  Rafael Espindola  <espindola@google.com>
7251
7252         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
7253         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
7254         * tree.h (tree_call_nonnegative_warnv_p): New.
7255
7256 2008-04-08  Jan Hubicka  <jh@suse.cz>
7257
7258         * function.c (free_after_compilation): Clear out regno_reg_rtx
7259         pointer.
7260
7261 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
7262
7263         Revert
7264         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7265
7266         PR middle-end/PR28690
7267         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
7268         same precedence as REG_POINTER and MEM_POINTER operands.
7269
7270 2008-04-08  Richard Guenther  <rguenther@suse.de>
7271
7272         PR middle-end/35834
7273         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
7274         for adding index to base.
7275
7276 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
7277
7278         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
7279         (MINGW_ENABLE_EXECUTE_STACK): New.
7280         (IN_LIBGCC2): For libgcc include windows.h file for
7281         function declarations.
7282
7283 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
7284
7285         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
7286         and tem2 if tem1 is not a REG or MULT.
7287
7288 2008-04-08  Jan Hubicka  <jh@suse.cz>
7289
7290         * function.h (incomming_args): Break out of struct function.
7291         (function_subsections): Break out of struct function.
7292         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
7293         return_rtx and hard_reg_initial_vals from struct function.
7294         Kill inl_max_label_num.
7295         (current_function_pops_args, current_function_args_info,
7296         current_function_args_size, current_function_args_size,
7297         current_function_pretend_args_size,
7298         current_function_outgoing_args_size,
7299         current_function_internal_arg_pointer, current_function_return_rtx):
7300         Kill compatibility accestor macros.
7301         * builtins.c (expand_builtin_apply_args_1): Update.
7302         (expand_builtin_next_arg): Update.
7303         * df-scan.c (df_get_call_refs): Update.
7304         * dbxout.c (dbxout_function_end): Update.
7305         * dwarf2out.c (dwarf2out_switch_text_section): Update.
7306         (output_line_info): Update.
7307         (secname_for_decl): Update.
7308         (dwarf2out_var_location): Update.
7309         * function.c (free_after_compilation): Update.
7310         (assign_parm_find_stack_rtl): Update.
7311         (assign_parms): Update.
7312         (expand_dummy_function_end): Update.
7313         (expand_function_end): Update.
7314         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
7315         (expand_call): Update.
7316         (emit_library_call_value_1): Update.
7317         (store_one_arg): Update.
7318         * varasm.c (initialize_cold_section_name): Update.
7319         (unlikely_text_section): Update.
7320         (unlikely_text_section_p): Update.
7321         (assemble_start_function): Update.
7322         (assemble_end_function): Update.
7323         (default_section_type_flags): Update.
7324         (switch_to_section): Update.
7325         * integrate.c (set_decl_abstract_flags): Update.
7326         (get_hard_reg_initial_val): Update.
7327         (has_hard_reg_initial_val): Update.
7328         (allocate_initial_values): Update.
7329         * resource.c (init_resource_info): Update.
7330         * config/alpha/alpha.c (NUM_ARGS): Update.
7331         (direct_return): Update.
7332         (alpha_va_start): Update.
7333         (alpha_sa_size): Update.
7334         (alpha_initial_elimination_offset): Update.
7335         (alpha_expand_prologue): Update.
7336         (alpha_start_function): Update.
7337         (alpha_expand_epilogue): Update.
7338         (unicosmk_initial_elimination_offset):
7339         * config/alpha/alpha.md (call expander): Update.
7340         * config/s390/s390.c (s390_register_info): Update.
7341         (s390_register_info): Update.
7342         (s390_frame_info): Update.
7343         (s390_initial_elimination_offset): Update.
7344         (s390_build_builtin_va_list): Update.
7345         (s390_va_start): Update.
7346         * config/spu/spu.c (direct_return): Update.
7347         (spu_expand_prologue): Update.
7348         (spu_initial_elimination_offset): Update.
7349         (spu_build_builtin_va_list): Update.
7350         (spu_va_start): Update.
7351         * config/sparc/sparc.c (sparc_init_modes): Update.
7352         (sparc_compute_frame_size): Update.
7353         (function_value): Update.
7354         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
7355         * config/i386/i386.md (return expander): Update.
7356         * config/i386/i386.c (ix86_va_start): Update.
7357         (ix86_can_use_return_insn_p): Update.
7358         (ix86_compute_frame_layout): Update.
7359         (ix86_expand_epilogue): Update.
7360         * config/sh/sh.c (output_stack_adjust): Update.
7361         (calc_live_regs): Update.
7362         (sh_expand_prologue): Update.
7363         (sh_builtin_saveregs): Update.
7364         (sh_va_start): Update.
7365         (initial_elimination_offset): Update.
7366         (sh_allocate_initial_value): Update.
7367         (sh_function_ok_for_sibcall): Update.
7368         (sh_get_pr_initial_val): Update.
7369         * config/sh/sh.md (return expander): Update.
7370         * config/avr/avr.c (frame_pointer_required_p): UPdate.
7371         * config/crx/crx.c (crx_compute_frame): UPdate.
7372         (crx_initial_elimination_offset): UPdate.
7373         * config/xtensa/xtensa.c (compute_frame_size): Update
7374         (xtensa_builtin_saveregs): Update.
7375         (xtensa_va_start): Update.
7376         (order_regs_for_local_alloc): Update.
7377         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
7378         (xstormy16_expand_builtin_va_start): Update.
7379         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
7380         * config/m68hc11/m68hc11.md (return expanders): Update.
7381         * config/m68hc11/m68hc11.c (expand_prologue): Update.
7382         (expand_epilogue): Update.
7383         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
7384         (cris_simple_epilogue): Update.
7385         (cris_expand_prologue): Update.
7386         (cris_expand_epilogue): Update.
7387         * config/iq2000/iq2000.c (iq2000_va_start): Update.
7388         (compute_frame_size): Update.
7389         * config/mt/mt.c (mt_compute_frame_size): Update.
7390         * config/mn10300/mn10300.c (expand_prologue): Update.
7391         (expand_epilogue): Update.
7392         (initial_offset): Update.
7393         (mn10300_builtin_saveregs):
7394         * config/mn10300/mn10300.md (return expander): Update.
7395         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
7396         (ia64_initial_elimination_offset): Update.
7397         (ia64_initial_elimination_offset): Update.
7398         (ia64_expand_prologue): Update.
7399         * config/m68k/m68k.md (return expander): Update.
7400         * config/rs6000/rs6000.c (rs6000_va_start): Update.
7401         (rs6000_stack_info): Update.
7402         * config/mcore/mcore.c (layout_mcore_frame): Update.
7403         (mcore_expand_prolog): Update.
7404         * config/arc/arc.c (arc_compute_frame_size): Update.
7405         * config/score/score3.c (score3_compute_frame_size): Update.
7406         * config/score/score7.c (score7_compute_frame_size): Update.
7407         * config/arm/arm.c (use_return_insn): Update.
7408         (thumb_find_work_register): Update.
7409         (arm_compute_save_reg_mask): Update.
7410         (arm_output_function_prologue): Update.
7411         (arm_output_epilogue): Update.
7412         (arm_size_return_regs): Update.
7413         (arm_get_frame_offsets): Update.
7414         (arm_expand_prologue): Update.
7415         (thumb_exit): Update.
7416         (thumb_unexpanded_epilogue): Update.
7417         (thumb1_output_function_prologue): Update.
7418         * config/pa/pa.md (return expander): Update.
7419         * config/pa/pa.c (compute_frame_size): Update.
7420         (hppa_builtin_saveregs): Update.
7421         * config/mips/mips.c (mips_va_start): Update.
7422         (mips16_build_function_stub): Update.
7423         (mips_compute_frame_info): Update.
7424         (mips_restore_gp): Update.
7425         (mips_output_function_prologue): Update.
7426         (mips_expand_prologue): Update.
7427         * config/v850/v850.c (compute_frame_size): Update.
7428         (expand_prologue): * config/mmix/mmix.c (along): update.
7429         (mmix_initial_elimination_offset): update.
7430         (mmix_reorg): update.
7431         (mmix_use_simple_return): update.
7432         (mmix_expand_prologue): update.
7433         (mmix_expand_epilogue): Update.
7434         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
7435         (emit_link_insn): Update.
7436
7437 2008-04-08  Anatoly Sokolov <aesok@post.ru>
7438
7439         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
7440         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
7441         instructions.
7442         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
7443         atmega103 device.
7444
7445 2008-04-07  Jan Hubicka  <jh@suse.cz>
7446
7447         * function.h (rtl): Rename to x_rtl.
7448         (crtl): New define.
7449         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7450         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7451         used_temp_slots avail_temp_slots, temp_slot_level,
7452         nonlocal_goto_handler_labels): Update accesstors.
7453         (rtl): New global variable.
7454         (struct function): Move some fileds to rtl_data.
7455         (get_arg_pointer_save_area): Update prototype.
7456         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7457         get_arg_pointer_save_area.
7458         * expr.c (init_expr): Update
7459         * function.c (get_frame_size): Update
7460         (assign_stack_local): Update
7461         (expand_function_end): Update.
7462         (get_art_pointer_save_area): Update
7463         * function.h 
7464         * emit-rtl.c (rtl): Declare.
7465         (regno_reg_rtx): Declare.
7466         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7467         Update.
7468         (gen_reg_rtx): Update.
7469         * varasm.c (n_deferred_constatns): Update accestor.
7470         (init_varasm_status): Do not allocate varasm_status.
7471         (force_const_mem, get_pool_size, output_constant_pool): Update.
7472         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7473         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7474         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
7475         * sparc/sparc.h (INIT_EXPANDERS): Update.
7476         * ia64/ia64.h (INIT_EXPANDERS): Update.
7477
7478 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
7479
7480         * reload.c (push_secondary_reload): Add missing break to for loop.
7481
7482 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7483
7484         PR middle-end/PR28690
7485         * rtlanal.c: Update copyright years.
7486         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
7487         as REG_POINTER and MEM_POINTER operands.
7488         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
7489         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
7490         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
7491         * gcse.c: Update copyright years.
7492         (pre_delete): Call gen_reg_rtx_and_attrs.
7493         (hoist_code): Likewise.
7494         (build_store_vectors): Likewise.
7495         (delete_store): Likewise.
7496         * loop-invariant.c (move_invariant_reg): Likewise.
7497         Update copyright years.
7498
7499 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
7500
7501         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
7502         control string instead of quoted.
7503
7504 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
7505
7506         * doc/rtl.texi: Rewrite of subreg section.
7507
7508 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
7509
7510         PR/35842
7511         * config/i386/i386.c (legitimize_pic_address): Add treating
7512         of dllimport SYM_REF's.
7513         (legitimize_dllimport_symbol): Add prototype.
7514
7515 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7516
7517         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
7518         reference in constructor with non self-referential type.
7519
7520 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7521
7522         Removal of Return with Depressed Stack Pointer support
7523         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
7524         (ECF_SP_DEPRESSED): Likewise.
7525         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
7526         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
7527         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7528         (expand_call): Do not test ECF_SP_DEPRESSED.
7529         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7530         * function.c (keep_stack_depressed): Delete.
7531         (handle_epilogue_set): Likewise.
7532         (update_epilogue_consts): Likewise.
7533         (emit_equiv_load): Likewise.
7534         (thread_prologue_and_epilogue_insns): Remove support for Return with
7535         Depressed Stack Pointer.
7536         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7537
7538 2008-04-06  Richard Guenther  <rguenther@suse.de>
7539
7540         PR tree-optimization/35400
7541         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
7542         information from SSA_NAMEs.
7543
7544 2008-04-06  Anatoly Sokolov <aesok@post.ru>
7545
7546         * config/avr/avr.h (avr_mega_p): Remove declaration.
7547         (AVR_MEGA): Remove macro.
7548         * config/avr/avr.c (avr_mega_p): Remove variable.
7549         (avr_override_options): Remove inicializion of avr_mega_p.
7550         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7551         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7552         (avr_jump_mode): (Ditto.).
7553         (avr_output_progmem_section_asm_op): (Ditto.).
7554         (avr_asm_init_sections): (Ditto.).
7555         (avr_asm_init_sections): (Ditto.).
7556         (avr_rtx_costs): (Ditto.).
7557         * config/avr/avr.md: (Ditto.).
7558         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
7559         '__AVR_MEGA__'.
7560
7561 2008-04-06  Richard Guenther  <rguenther@suse.de>
7562
7563         PR tree-optimization/35842
7564         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
7565         is_gimple_invariant_address.
7566
7567 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7568
7569         * gcc.c (default_compilers): Sync Fortran extensions list with
7570         that in fortran/lang-specs.h.
7571         * doc/invoke.texi: Likewise.
7572         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
7573         * dwarf2out.c (gen_compile_unit_die): Likewise.
7574
7575 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
7576
7577         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
7578
7579 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
7580
7581         PR target/12329
7582         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
7583         attribute is used for nested functions.
7584
7585 2008-04-05  Jan Hubicka  <jh@suse.cz>
7586
7587         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
7588
7589         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
7590         letter argument.
7591         (dump_files): Update.
7592         (enable_rtl_dump_file): Do not accept letter argument.
7593         * tree-pass.h (dump_file_info): Remove letter argument.
7594         * toplev.c (decode_d_option): Update -da handling.
7595         * toplev.h (enable_rtl_dump_file): Update prototype.
7596         * passes.c (register_one_dump_file): Do not accept IPA argument; work
7597         it out based on pass type.
7598         (register_dump_files_1): Likewise.
7599         (init_optimization_passes): Update register_one_dump_file calls.
7600         (execute_one_pass): Sanity check that IPA passes are called at IPA
7601         level and RTL passes at RTL level.
7602         (execute_pass_list): IPA pass can not be after or subpass of
7603         GIMPLE/RTL pass.
7604         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
7605         disallov RTL subpasses of IPA subpasses.
7606
7607 2008-04-05  Ben Elliston  <bje@au.ibm.com>
7608
7609         * tree-cfg.c (need_fake_edge_p): Return false for calls to
7610         builtins that return exactly once and do not throw. Cache call to
7611         call_expr_flags.
7612
7613 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
7614
7615         PR rtl-optimization/34916
7616         PR middle-end/35519
7617         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
7618         between instruction pairs.
7619
7620 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
7621
7622         * doc/invoke.texi: Document -mbitops for SH.
7623         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
7624         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
7625         * config/sh/sh.c (print_operand): Add %t operand code.
7626         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
7627         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
7628         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
7629         (extendqihi2): Likewise.
7630         (movqi_i): Likewise.
7631         (insv): Use bset, bclr and bst instructions for SH2A if possible.
7632         (extv): Use bld instruction for SH2A if possible.
7633         (extzv): Likewise.
7634         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
7635         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
7636         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
7637         (bset.b, bclr.b): Define peepholes.
7638         * config/sh/sh.opt (mbitops): New option.
7639
7640 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
7641
7642         PR target/35620
7643         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
7644         and view convert expression.
7645
7646 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7647
7648         PR target/35364
7649         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
7650
7651 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
7652
7653         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
7654
7655         * config/i386/cpuid.h (bit_AES): New.
7656         (bit_PCLMUL): Likewise.
7657
7658         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
7659         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
7660         SSE2 if AES or PCLMUL is enabled.
7661         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
7662         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7663         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
7664         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
7665         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
7666         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
7667         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7668         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
7669         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
7670         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
7671         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
7672         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
7673         __builtin_ia32_aeskeygenassist128 and
7674         __builtin_ia32_pclmulqdq128.
7675         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
7676         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
7677         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
7678
7679         * config/i386/i386.h (TARGET_AES): New.
7680         (TARGET_PCLMUL): Likewise.
7681         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
7682
7683         * config/i386/i386.md (UNSPEC_AESENC): New.
7684         (UNSPEC_AESENCLAST): Likewise.
7685         (UNSPEC_AESDEC): Likewise.
7686         (UNSPEC_AESDECLAST): Likewise.
7687         (UNSPEC_AESIMC): Likewise.
7688         (UNSPEC_AESKEYGENASSIST): Likewise.
7689         (UNSPEC_PCLMUL): Likewise.
7690
7691         * config/i386/i386.opt (maes): New.
7692         (mpclmul): Likewise.
7693
7694         * config/i386/sse.md (aesenc): New pattern.
7695         (aesenclast): Likewise.
7696         (aesdec): Likewise.
7697         (aesdeclast): Likewise.
7698         (aesimc): Likewise.
7699         (aeskeygenassist): Likewise.
7700         (pclmulqdq): Likewise.
7701
7702         * config/i386/wmmintrin.h: New.
7703
7704         * doc/extend.texi: Document AES and PCLMUL built-in function.
7705
7706         * doc/invoke.texi: Document -maes and -mpclmul.
7707
7708 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
7709
7710         * function.c (free_after_parsing): Replace with
7711         cxx_push_function_context from C++ front-end.
7712         (allocate_struct_function): Don't call langhook.
7713         * langhooks.h (struct lang_hooks_for_functions): Delete.
7714         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
7715         member "function".
7716         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
7717         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
7718         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
7719         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
7720         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
7721         remove LANG_HOOKS_FUNCTION_INITIALIZER.
7722         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
7723
7724         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
7725         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
7726         
7727 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7728
7729         PR c/35440
7730         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
7731         for all types.
7732
7733 2008-04-04  Richard Guenther  <rguenther@suse.de>
7734
7735         PR middle-end/35823
7736         * fold-const.c (optimize_minmax_comparison): Use the correct
7737         type for the constant in the simplified comparison.
7738
7739 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
7740
7741         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
7742         Pass L2 size as "--param l2-cache-size" to the compiler.
7743         (decode_l2_cache): New function to decode L2 cache parameters using
7744         0x8000006 extended cpuid function.
7745         (detect_caches_amd): Determine parameters of L2 cache using
7746         decode_l2_caches function.
7747         (decode_caches_intel): Decode L2 cache parameters.
7748         (detect_caches_intel): Determine L2 cache parameters using
7749         decode_caches_intel and decode_l2_caches functions.
7750
7751 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
7752
7753         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
7754         secondary input reload for subword loads from the constant pool.
7755
7756 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
7757
7758         PR target/35713
7759         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
7760           constants of the appropriate size for runtime calculations.
7761
7762         PR c/35712
7763         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
7764           decimal-float literal constant zero.
7765
7766 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
7767
7768         PR c/35738
7769         * c-parser.c (c_parser_omp_atomic): Call
7770         default_function_array_conversion on the RHS.
7771
7772         PR middle-end/35818
7773         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
7774         call is_variable_sized if decl has incomplete type.
7775
7776 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
7777
7778         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
7779
7780 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
7781
7782         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
7783         iterators.
7784         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
7785         (sgt<u>): Merge sgt and sgtu into new expander.
7786         (sgt, sgtu): Remove expanders.
7787         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
7788         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
7789         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
7790         *sgtu_<mode>_mips16 into new pattern.
7791         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
7792         (sge<u>): Merge sge and sgeu into new expander.
7793         (sge, sgeu): Remove expanders.
7794         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
7795         new pattern.
7796         (*sge_<mode>, second *sge_<mode>): Remove patterns.
7797         (slt<u>): Merge slt and sltu into new expander.
7798         (slt, sltu): Remove expanders.
7799         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
7800         (*slt_<mode>, *sltu_<mode>): Remove patterns.
7801         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
7802         *sltu_<mode>_mips16 into new pattern.
7803         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
7804         (sle<u>): Merge sle and sleu into new expander.
7805         (sle, sleu): Remove expanders.
7806         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
7807         (*sle_<mode>, *sleu_<mode>): Remove patterns.
7808         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
7809         *sleu_<mode>_mips16 into new pattern.
7810         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
7811
7812 2008-04-03  Jan Hubicka  <jh@suse.cz>
7813
7814         PR tree-optimization/35795
7815         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
7816         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
7817         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
7818         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
7819         * score/score3.c (score3_output_mi_thunk): Likewise.
7820         * score/score7.c (score7_output_mi_thunk): Likewise.
7821         * mips/mips.c (mips_output_mi_thunk): Likewise.
7822
7823 2008-04-03  Richard Guenther  <rguenther@suse.de>
7824
7825         * tree-vrp.c (extract_range_from_unary_expr): Handle all
7826         conversions.  Simplify code.
7827
7828 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
7829
7830         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
7831
7832 2008-04-03  Tom Tromey  <tromey@redhat.com>
7833             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7834
7835         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7836         * config/bfin/t-bfin-linux (generated_files): Add
7837         linux-sysroot-suffix.h.
7838         * doc/install.texi (Prerequisites): Require make 3.80.
7839         * doc/sourcebuild.texi (Front End Directory): Document new
7840         variable.
7841         * Makefile.in (generated_files): New variable.
7842         (ALL_HOST_OBJS): New variable.
7843         ($(ALL_HOST_OBJS)): New target.
7844
7845 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7846
7847         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
7848         (remap_block): Call id->transform_lang_insert_block instead
7849         of langhook.
7850         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
7851         Set id.transform_lang_insert_block to NULL.
7852         (clone_body): Move to cp/optimize.c
7853         * tree-inline.h (struct copy_body_data): Change
7854         transform_lang_insert_block to function pointer.
7855         (copy_generic_body, copy_decl_no_change): Export.
7856         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
7857         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
7858         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
7859
7860         * c-tree.h (insert_block): Kill.
7861         * c-decl.c (insert_block): Kill.
7862
7863 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7864
7865         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7866         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7867         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
7868         argument.
7869         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
7870         argument, call {push,pop}_function_context from here.
7871         * c-parser.c: Use c_{push,pop}_function_context.
7872
7873         * function.c (push_function_context_to): Move meat ...
7874         (push_function_context): ... here.  Simplify.
7875         * function.c (pop_function_context_from): Move meat ...
7876         (pop_function_context): ... here.  Simplify.
7877         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
7878         leave_nested).
7879         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7880         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7881         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
7882         * tree.h (push_function_context_to, pop_function_context_from): Remove.
7883
7884 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7885
7886         * expmed.c (extract_force_align_mem_bit_field): Remove.
7887
7888 2008-04-03  Richard Guenther  <rguenther@suse.de>
7889
7890         PR middle-end/35800
7891         * expr.h (try_casesi): Adjust prototype.
7892         * expr.c (try_casesi): Take fallback label as extra parameter.
7893         Use that for gen_casesi if default_label is NULL.
7894         * stmt.c (expand_case): Pass fallback label to try_casesi,
7895         make sure to fill gaps with a fallback label if default_label
7896         is not present.
7897
7898 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
7899
7900         PR target/35801
7901         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
7902
7903 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7904
7905         * expmed.c (extract_split_bit_field): Remove if (0) code.
7906         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
7907         (do_ds_constraint): Likewise.
7908
7909 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
7910
7911         * doc/cppopts.texi (-dU): Document.
7912         * c-common.h (flag_dump_macros): Update comment.
7913         * c-opts.c (handle_OPT_d): Handle -dU.
7914         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
7915         dump_queued_macros, cb_used_define, cb_used_undef): New.
7916         (init_pp_output): Handle -dU.
7917         (cb_line_change): Call dump_queued_macros.
7918         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
7919
7920 2008-04-02  Anatoly Sokolov <aesok@post.ru>
7921
7922         * config/avr/predicates.md (io_address_operand): New predicate. 
7923         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
7924         * config/avr/avr.c (avr_io_address_p): Remove function.
7925         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
7926         'avr_io_address_p' function.
7927         (out_movhi_r_mr): (Ditto.).
7928         (out_movqi_mr_r): (Ditto.).
7929         (out_movhi_mr_r): (Ditto.).
7930         (avr_address_cost): (Ditto.).
7931
7932 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
7933
7934         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
7935         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
7936         in 32bit mode when XMM registers are available to avoid store
7937         forwarding stalls.
7938         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
7939         corresponding post-reload splitters.
7940
7941 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7942
7943         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
7944         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
7945         __builtin_ia32_roundss.
7946         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
7947         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
7948         __builtin_ia32_roundss.
7949         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
7950         IX86_BUILTIN_SHUFPD here.
7951
7952 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7953
7954         * config/i386/i386.md (plogic): New.
7955         (plogicprefix): Likewise.
7956
7957         * config/i386/mmx.md (mmx_<code><mode>3): New.
7958         (mmx_and<mode>3): Removed.
7959         (mmx_ior<mode>3): Likewise.
7960         (mmx_xor<mode>3): Likewise.
7961
7962         * config/i386/sse.md (<code><mode>3): New.
7963         (*<code><mode>3): Likewise.
7964         (*<code><mode>3): Likewise.
7965         (<code><mode>3): Likewise.
7966         (*sse_<code><mode>3): Likewise.
7967         (*sse2_<code><mode>3): Likewise.
7968         (<code>tf3): Likewise.
7969         (*<code>tf3): Likewise.
7970         (and<mode>3): Likewise.
7971         (*and<mode>3): Likewise.
7972         (ior<mode>3): Removed.
7973         (*ior<mode>3): Likewise.
7974         (xor<mode>3): Likewise.
7975         (*xor<mode>3): Likewise.
7976         (*and<mode>3): Likewise.
7977         (*ior<mode>3): Likewise.
7978         (*xor<mode>3): Likewise.
7979         (and<mode>3): Likewise.
7980         (*sse_and<mode>3): Likewise.
7981         (*sse2_and<mode>3): Likewise.
7982         (andtf3): Likewise.
7983         (*andtf3): Likewise.
7984         (ior<mode>3): Likewise.
7985         (*sse_ior<mode>3): Likewise.
7986         (*sse2_ior<mode>3): Likewise.
7987         (iortf3): Likewise.
7988         (*iortf3): Likewise.
7989         (xor<mode>3): Likewise.
7990         (*sse_xor<mode>3): Likewise.
7991         (*sse2_xor<mode>3): Likewise.
7992         (xortf3): Likewise.
7993         (*xortf3): Likewise.
7994
7995 2008-04-02  Richard Guenther  <rguenther@suse.de>
7996
7997         PR tree-optimization/14495
7998         PR tree-optimization/34793
7999         * tree-vrp.c (struct switch_update): New structure.
8000         (to_remove_edges, to_update_switch_stmts): New VECs.
8001         (simplify_switch_using_ranges): New function.  Remove not taken
8002         case labels and edges.
8003         (simplify_stmt_using_ranges): Call it.
8004         (identify_jump_threads): Mark edges we have queued for removal
8005         so we don't thread them.
8006         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
8007         case label vector.
8008         * tree-cfg.c (group_case_labels): Deal with missing default label.
8009         (tree_verify_flow_info): Allow missing default label.
8010         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
8011         (emit_case_nodes): Likewise.
8012         (expand_case): Do not rely on the default label to be present.
8013         * expr.c (try_casesi): Deal with NULL default_label.
8014         (do_tablejump): Likewise.
8015
8016 2008-04-02  Richard Guenther  <rguenther@suse.de>
8017
8018         PR tree-optimization/14495
8019         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
8020         SWITCH_EXPR here ...
8021         (vrp_visit_switch_stmt): ... but here (new function).
8022         (find_case_label_index): New helper function.
8023         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
8024
8025 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8026
8027         * fwprop.c: Fix ISO-C99ism.
8028
8029 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8030
8031         PR bootstrap/35752
8032         * Makefile.in (objdir): Set it here.
8033         * configure.ac: Not here.  Find dynamic linker characteristics.
8034         * exec-tool.in: Use them.
8035         * aclocal.m4: Regenerate.
8036         * configure: Regenerate.
8037
8038 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8039
8040         * expr.c (expand_var): Delete it.
8041         * expr.h (expand_var): Delete prototype.
8042         * function.c (expand_function_start): Use expand_decl instead.
8043         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
8044         langhook.
8045
8046 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
8047
8048         PR rtl-optimization/35542
8049         * fwprop.c (forward_propagate_and_simplify): Replace
8050         loc_reg_mentioned_in_p with reg_mentioned_p.
8051
8052 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8053
8054         PR rtl-optimization/35281
8055         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
8056         (propagate_rtx_1): Handle PR_HANDLE_MEM.
8057         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
8058         (varying_mem_p): Move above propagate_rtx.
8059         (all_uses_available_at): Do not check MEMs.
8060
8061 2008-04-02  Rafael Espindola  <espindola@google.com>
8062
8063         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
8064         (register_edge_assert_for_2): Split the cond argument.
8065         (register_edge_assert_for_1): Adjust for the change in
8066         register_edge_assert_for_2.
8067         (register_edge_assert_for): Split the cond argument.
8068         (find_switch_asserts): Adjust for the change in
8069         register_edge_assert_for.
8070
8071 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
8072
8073         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
8074         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
8075         offsets for 64-bit mingw.
8076         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
8077         abi for x86_64-pc-mingw.
8078
8079 2008-04-02  Richard Guenther  <rguenther@suse.de>
8080
8081         * tree-vrp.c (extract_range_from_assert): Make sure to not
8082         produce range min/max with TREE_OVERFOW set.
8083         If merging a anti-range and a range keep the anti-range if
8084         the range covers all values of the type.
8085         (register_edge_assert_for_2): Only allow sign-changing
8086         conversions in detecting canonical range checks.  Also
8087         register an assert for the unsigned name if useful.
8088
8089         PR tree-optimization/35787
8090         * tree-vrp.c (vrp_val_max): New function.
8091         (vrp_val_min): Likewise.
8092         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
8093         (vrp_val_is_min): Likewise.
8094         (supports_overflow_infinity): Use vrp_val_{min,max}.
8095         (negative_overflow_infinity): Likewise.
8096         (positive_overflow_infinity): Likewise.
8097         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
8098         (is_positive_overflow_infinity): Likewise.
8099         (is_overflow_infinity): Likewise.
8100         (avoid_overflow_infinity): Use vrp_val_{min,max} and
8101         vrp_val_is_{min,max}.
8102         (set_and_canonicalize_value_range): Canonicalize anti-ranges
8103         to ranges if possible.  Avoid empty ranges.
8104
8105 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8106
8107         PR middle-end/35705
8108         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
8109         the expression is a function address.
8110
8111 2008-04-01  George Helffrich  <george@gcc.gnu.org>
8112
8113         PR fortran/35154, fortran/23057
8114         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
8115         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
8116         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
8117         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
8118         in common.
8119         (dbxout_syms): Check for COMMON-based symbol and wrap in
8120         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
8121         in bracket for efficiency.
8122
8123         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
8124         using DW_TAG_common_block + member offset.
8125         (add_pubname_string): New function.
8126         (dw_expand_expr): New function to find block name and offset for
8127         COMMON var.
8128         (common_check): New function to check whether symbol in Fortran COMMON.
8129         (gen_variable_die): If COMMON, use DW_TAG_common_block.
8130
8131 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
8132
8133         PR c/35436
8134         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
8135
8136 2008-04-02  Ben Elliston  <bje@au.ibm.com>
8137
8138         * config/v850/v850.md (casesi): Remove if (0) code.
8139         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8140         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
8141
8142 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
8143
8144         * config/i386/i386.md (rex64suffix): New mode attribute.
8145         (floathi<mode>2): Disable expander for SSE math.
8146         (*floathi<mode>2_1): New insn insn_and_split pattern.
8147         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
8148         corresponding post-reload splitters.
8149         (*floathi<mode>2_i387): New macroized insn pattern.
8150         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
8151         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
8152         insn_and_split pattern.
8153         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
8154         New macroized instruction patterns and corresponding post-reload
8155         splitters.
8156         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
8157         and corresponding post-reload splitters.
8158         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
8159         New macroized instruction patterns.
8160         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
8161         macroized instruction patterns and corresponding post-reload splitters.
8162         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
8163         corresponding post-reload splitters.
8164         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
8165         New macroized instruction patterns.
8166         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
8167         corresponding post-reload splitters.
8168         (*floatsi<mode>2_i387): New macroized instruction patterns.
8169
8170 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
8171
8172         * config/i386/i386.md (smaxmin): New.
8173         (umaxmin): Likewise.
8174         (maxminiprefix): Likewise.
8175         (maxminfprefix): Likewise.
8176         (<code><mode>3): Likewise.
8177         (smin<mode>3): Removed.
8178         (smax<mode>3): Likewise.
8179
8180         * config/i386/mmx.md (mmx_<code>v2sf3): New.
8181         (mmx_<code>v4hi3): Likewise.
8182         (mmx_<code>v8qi3): Likewise.
8183         (mmx_smaxv2sf3): Removed.
8184         (mmx_sminv2sf3): Likewise.
8185         (mmx_umaxv8qi3): Likewise.
8186         (mmx_smaxv4hi3): Likewise.
8187         (mmx_uminv8qi3): Likewise.
8188         (mmx_sminv4hi3): Likewise.
8189
8190         * config/i386/sse.md (<addsub><mode>3): New.
8191         (*<addsub><mode>3): Likewise.
8192         (<sse>_vm<addsub><mode>3): Likewise.
8193         (<maxmin><mode>3): Likewise.
8194         (*<maxmin><mode>3_finite): Likewise.
8195         (*<maxmin><mode>3): Likewise.
8196         (<sse>_vm<maxmin><mode>3): Likewise.
8197         (sse3_h<addsub>v4sf3): Likewise.
8198         (sse3_h<addsub>v2df3): Likewise.
8199         (<maxmin>v16qi3): Likewise.
8200         (*<maxmin>v16qi3): Likewise.
8201         (<maxmin>v8hi3): Likewise.
8202         (*<maxmin>v8hi3): Likewise.
8203         (*sse4_1_<maxmin><mode>3): Likewise.
8204         (*sse4_1_<maxmin><mode>3): Likewise.
8205         (add<mode>3): Removed.
8206         (*add<mode>3): Likewise.
8207         (<sse>_vmadd<mode>3): Likewise.
8208         (sub<mode>3): Likewise.
8209         (*sub<mode>3): Likewise.
8210         (<sse>_vmsub<mode>3): Likewise.
8211         (smin<mode>3): Likewise.
8212         (*smin<mode>3_finite): Likewise.
8213         (*smin<mode>3): Likewise.
8214         (<sse>_vmsmin<mode>3): Likewise.
8215         (smax<mode>3): Likewise.
8216         (*smax<mode>3_finite): Likewise.
8217         (*smax<mode>3): Likewise.
8218         (<sse>_vmsmax<mode>3): Likewise.
8219         (sse3_haddv4sf3): Likewise.
8220         (sse3_haddv2df3): Likewise.
8221         (sse3_hsubv4sf3): Likewise.
8222         (sse3_hsubv2df3): Likewise.
8223         (umaxv16qi3): Likewise.
8224         (*umaxv16qi3): Likewise.
8225         (smaxv8hi3): Likewise.
8226         (*smaxv8hi3): Likewise.
8227         (*sse4_1_smax<mode>3): Likewise.
8228         (*sse4_1_umax<mode>3): Likewise.
8229         (uminv16qi3): Likewise.
8230         (*uminv16qi3): Likewise.
8231         (sminv8hi3): Likewise.
8232         (*sminv8hi3): Likewise.
8233         (*sse4_1_smin<mode>3): Likewise.
8234         (*sse4_1_umin<mode>3): Likewise.
8235
8236 2008-04-01  Rafael Espindola  <espindola@google.com>
8237
8238         * tree-cfg.c (verify_expr): remove in_phi.
8239         (verify_stmt): Don't call walk_tree with verify_expr. Use
8240         is_gimple_min_invariant instead of is_gimple_val.
8241
8242 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
8243
8244         * doc/include/gpl_v3.texi: Update for manpage generation.
8245         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
8246         gpl.texi.
8247         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
8248         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
8249         gpl_v3.texi instead of gpl.texi.
8250         (gpl.pod): New.
8251
8252 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
8253
8254         PR pch/13675
8255         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
8256
8257 2008-04-01  Rafael Espindola  <espindola@google.com>
8258
8259         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
8260         (extract_code_and_val_from_cond): Use
8261         extract_code_and_val_from_cond_with_ops.
8262
8263 2008-04-01  Jan Hubicka  <jh@suse.cz>
8264
8265         * function.c (free_after_compilation): Free epilogue_delay_list.
8266         (prepare_function_start): Assert that previous compilation was freed.
8267
8268 2008-04-01  Jan Hubicka  <jh@suse.cz>
8269             Jim Wilson  <wilson@tuliptree.org>
8270             Andreas Tobler <andreast@gcc.gnu.org>
8271
8272         PR middle-end/35781
8273         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
8274         rtl.emit instead cfun->emit.
8275         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
8276         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
8277
8278 2008-04-01  Ben Elliston  <bje@au.ibm.com>
8279
8280         * doc/c-tree.texi (Function Basics): Fix grammatical error.
8281
8282 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
8283
8284         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
8285         New options
8286         (fprofile-use): Add var flag_profile_use
8287         * coverage.c (coverage_begin_output): Do not open a gcno file for
8288         output only if -ftest-coverage is set.
8289         Do not add getpwd() to gcda file path.
8290         (build_gcov_info): Check the new flag
8291         flag_profile_datafile_relative_path.
8292         (coverage_init): Use profile_data_prefix.
8293         Read profile counter only if flag_profile_use is set.
8294         * opts.c (common_handle_option): New option fprofile-use=,
8295         fprofile-dir=, fprofile-generate=.
8296         * toplev.c (profile_data_prefix): New variable definition.
8297         * toplev.h (profile_data_prefix): New declaration.
8298         * doc/invoke.tex (Option Summary, Optimization Options):
8299         Add new options.
8300
8301 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
8302
8303         * varasm.c (output_constant_pool_1): In LABEL_REF check,
8304         use tmp consistently.
8305
8306         PR target/35695
8307         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
8308         * config/ia64/ia64.c (rtx_needs_barrier): Handle
8309         UNSPEC_FR_RECIP_APPROX_RES.
8310         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
8311
8312 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
8313
8314         PR c/35750
8315         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
8316
8317 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8318
8319         PR middle-end/30186
8320         * fold-const.c (fold_indirect_ref_1): Support accessing non first
8321         element of the vector via a pointer.
8322
8323 2008-03-31  Ian Lance Taylor  <iant@google.com>
8324
8325         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
8326
8327 2008-03-31  Jan Hubicka  <jh@suse.cz>
8328
8329         * builtins.c (expand_builtin_setjmp_receiver): Update call of
8330         get_arg_pointer_save_area.
8331         * expr.c (init_expr): Just clear out rtl.expr.
8332         * function.c (free_after_compilation): Clear out whole RTL structure.
8333         (get_func_frame_size): Merge into ...
8334         (get_frame_size): ... this one.
8335         (assign_stack_local_1): Merge into ...
8336         (assign_stack_local): ... this one.
8337         (expand_function_end): Update call of get_arg_pointer_save_area.
8338         (get_art_pointer_save_area): Remove cfun argument.
8339         * function.h (emit_status): regno_pointer_align does not need length
8340         attribute. Move x_regno_reg_rtx to ...
8341         (regno_reg_rtx): ... new global array.
8342         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
8343         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
8344         apply_args_value, forced_labels, stack_pointer_delta):
8345         Update accestors.
8346         (struct varasm_status): Move here from varasm.c
8347         (struct rtl_data): New. Move here some fields from struct function.
8348         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
8349         frame_offset, stack_check_probe_note, arg_pointer_save_area,
8350         used_temp_slots avail_temp_slots, temp_slot_level,
8351         nonlocal_goto_handler_labels): Update accesstors.
8352         (rtl): New global variable.
8353         (struct function): Move some fileds to rtl_data.
8354         (get_arg_pointer_save_area): Update prototype.
8355         * emit-rtl.c (rtl): Declare.
8356         (regno_reg_rtx): Declare.
8357         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
8358         Update.
8359         (gen_reg_rtx): Update.
8360         (init_virtual_regs): Do not tate emit_status argument.
8361         (init_emit): Do not allocate emit.
8362         * varasm.c (varasm_statuc): Move to function.h.
8363         (n_deferred_constatns): Update accestor.
8364         (init_varasm_status): Do not allocate varasm_status.
8365         (force_const_mem, get_pool_size, output_constant_pool): Update.
8366         * stmt.c (force_label_rtx): Do not use x_ prefixes.
8367         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
8368
8369 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
8370
8371         PR rtl-optimization/35729
8372         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
8373         references.
8374
8375 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
8376
8377         PR target/32000
8378         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
8379         load/store if memory is unaligned.
8380         (*movti_rex64): Likewise.
8381
8382         * config/i386/predicates.md (misaligned_operand): New.
8383
8384 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
8385
8386         PR tree-opt/35431
8387         * tree-ssa-phiopt.c (conditional_replacement): Return early for
8388         complex types.
8389
8390 2008-03-31  Jan Beulich  <jbeulich@novell.com>
8391
8392         * config/ia64/constraints.md: Add 'j' constraint.
8393         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
8394         (movdi_internal): Likewise.
8395
8396 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
8397
8398         PR c/35748
8399         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
8400
8401 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
8402
8403         PR target/35757
8404         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
8405         proper error message for the third argument on blendpd and
8406         blendps.
8407
8408         * config/i386/sse.md (blendbits): New.
8409         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
8410
8411 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
8412
8413         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
8414
8415 2008-03-30  Richard Guenther  <rguenther@suse.de>
8416
8417         PR middle-end/31023
8418         * fold-const.c (fold_sign_changed_comparison): Do leave
8419         conversions to base-types alone.
8420
8421 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8422
8423         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
8424         the link register if one altivec register is be saved.
8425
8426 2008-03-30  Ben Elliston  <bje@au.ibm.com>
8427
8428         * final.c (final_scan_insn): Remove if (0) code.
8429
8430 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
8431
8432         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
8433
8434 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
8435
8436         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
8437         of V4SFmode to ix86_binary_operator_ok.
8438
8439 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
8440
8441         * config/i386/i386.c (override_options): Initialize
8442         ix86_veclib_handler to ix86_veclibabi_svml when
8443         -mveclibabi=svml is used.
8444         (ix86_veclibabi_svml): New function for SVML ABI style
8445         vectorization support.
8446         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
8447
8448 2008-03-28  Rafael Espindola  <espindola@google.com>
8449
8450         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
8451         (tree_binary_nonnegative_warnv_p): Make it public.
8452         (tree_single_nonnegative_warnv_p): Make it public.
8453         (tree_invalid_nonnegative_warnv_p): Make it public.
8454         (tree_unary_nonzero_warnv_p): Make it public.
8455         (tree_binary_nonzero_warnv_p): Make it public
8456         (tree_single_nonzero_warnv_p): Make it public.
8457         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
8458         (extract_range_from_binary_expr): Split the expr argument.
8459         (extract_range_from_unary_expr): Split the expr argument.
8460         (extract_range_from_comparison): Split the expr argument.
8461         (extract_range_from_expr): Use the new aux functions.
8462         (vrp_evaluate_conditional_warnv): Use
8463         vrp_evaluate_conditional_warnv_with_ops.
8464         * tree.h (tree_unary_nonzero_warnv_p): Declare.
8465         (tree_binary_nonzero_warnv_p): Declare.
8466         (tree_single_nonzero_warnv_p): Declare.
8467         (tree_expr_nonzero_warnv_p): Declare.
8468         (tree_unary_nonnegative_warnv_p): Declare.
8469         (tree_binary_nonnegative_warnv_p): Declare.
8470         (tree_single_nonnegative_warnv_p): Declare.
8471         (tree_invalid_nonnegative_warnv_p): Declare.
8472
8473 2008-03-28  Richard Guenther  <rguenther@suse.de>
8474
8475         PR tree-optimization/30317
8476         PR tree-optimization/30911
8477         PR tree-optimization/34793
8478         * tree-vrp.c (set_and_canonicalize_value_range): New function.
8479         (struct assert_locus_d): New member EXPR.
8480         (register_new_assert_for): Add EXPR parameter to support
8481         ASSERT_EXPR <name, expr OP limit>.
8482         (register_edge_assert_for_1): Adjust callers.
8483         (find_assert_locations): Likewise.
8484         (process_assert_insertions_for): Build condition from expression.
8485         (extract_range_from_assert): Handle ASSERT_EXPRs
8486         of the form ASSERT_EXPR <name, expr OP limit>.
8487         (register_edge_assert_for_2): New helper registering
8488         asserts for comparisons.  Recognize range tests of the form
8489         (unsigned)i - CST1 OP CST2.
8490         (register_edge_assert_for_1): Use it.
8491         (register_edge_assert_for): Likewise.
8492         (needs_overflow_infinity): Integer sub-types
8493         do not need overflow infinities.
8494         (vrp_val_is_max): The extreme values of integer sub-types
8495         are those of the base type.
8496         (vrp_val_is_min): Likewise.
8497         * tree.def (ASSERT_EXPR): Document extra allowed conditional
8498         expressions.
8499
8500 2008-03-28  Nick Clifton  <nickc@redhat.com>
8501
8502         PR target/31110
8503         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
8504         Return GENERAL_REGS for stack adjustment reloads.
8505
8506 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8507
8508         PR target/31334
8509         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
8510         const_vector when all the vectors are constant.
8511
8512 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
8513
8514         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
8515         comparisons.
8516         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
8517         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
8518         (scc_sf): New.
8519         (s<code>_sf): Use new scc_sf attribute for opcode names.
8520
8521 2008-03-27  Tom Tromey  <tromey@redhat.com>
8522
8523         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
8524         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
8525         config/spu/t-spu-elf, config/i386/t-interix,
8526         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
8527         config/i386/x-darwin, config/i386/x-mingw32,
8528         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
8529         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
8530         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
8531         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
8532         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
8533         config/rs6000/x-darwin, config/rs6000/t-rs6000,
8534         config/score/t-score-elf, config/arm/t-strongarm-pe,
8535         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
8536         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
8537         Revert automatic dependency patch.
8538
8539 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8540
8541         PR target/35657
8542         * config/i386/i386.c (ix86_function_arg_boundary): Align
8543         decimal floating point to its natural boundary.
8544
8545 2008-03-27  Richard Guenther  <rguenther@suse.de>
8546
8547         PR middle-end/35716
8548         * fold-const.c (fold_comparison): Restrict distinct decl
8549         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
8550         solely rely on operand_equal_p.
8551
8552 2008-03-27  Richard Guenther  <rguenther@suse.de>
8553
8554         PR c/32511
8555         * c-common.c (handle_weak_attribute): Reject combination of
8556         weak and inline.
8557
8558 2008-03-27  Richard Guenther  <rguenther@suse.de>
8559
8560         PR tree-optimization/32810
8561         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
8562         conversions from DECL_INITIAL.
8563         (fold_const_aggregate_ref): Likewise from constructor elements.
8564
8565 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
8566
8567         * tree-affine.h (aff_combination_expand): Declare.
8568         (get_inner_reference_aff): Likewise.
8569         * tree-affine.c (aff_combination_expand): Split out from
8570         tree_to_aff_combination_expand.
8571         (get_inner_reference_aff): New function.
8572         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
8573         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
8574         (struct lim_aux_data): sm_done field removed.
8575         (mem_ref_loc_p, mem_ref_locs_p): New types.
8576         (struct mem_ref): Added id, stored, accesses_in_loop,
8577         indep_loop, dep_loop, indep_ref, dep_ref fields.
8578         Removed is_stored, locs and next fields.
8579         (memory_accesses): New variable.
8580         (movement_possibility): Do not allow moving statements
8581         that store to memory.
8582         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
8583         New functions.
8584         (determine_max_movement): For statements with memory references,
8585         find the outermost loop in that the reference is independent.
8586         (move_computations_stmt): Mark the virtual operands for renaming.
8587         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
8588         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
8589         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
8590         add_vop_ref_mapping, create_vop_ref_mapping_loop,
8591         create_vop_ref_mapping, analyze_memory_references,
8592         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
8593         get_all_locs_in_loop, ref_always_accessed_p,
8594         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
8595         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
8596         store_motion_loop, store_motion): New functions.
8597         (struct vop_to_refs_elt): New type.
8598         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
8599         memref_hash, memref_eq, hoist_memory_references): Rewritten.
8600         (schedule_sm): Replaced by...
8601         (execute_sm): ... this.
8602         (determine_lsm_ref, hoist_memory_references,
8603         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
8604         find_more_ref_vops, free_mem_ref, free_mem_refs,
8605         determine_lsm_loop, determine_lsm): Removed.
8606         (tree_ssa_lim_finalize): Free data structures used by store motion.
8607         (tree_ssa_lim): Call analyze_memory_references.  Use
8608         store_motion instead of determine_lsm.
8609
8610 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8611
8612         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
8613         rename tmake_file to m68hc11/t-m68hc11.
8614         (mcore): Set inhibit_libc to true.
8615         * config.host (alpha*-dec-*vms*): Set extra_programs.
8616         (interix3*): Don't use host_xmake_file.
8617         * configure.ac: Let config.gcc override inhibit_libc.
8618         * configure: Regenerate.
8619
8620         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
8621         * config/t-openbsd-thread: Remove commented out lines.
8622         
8623         * config/x-interix: Remove.
8624
8625         * config/m68hc11/t-m68hc11-gas: Rename to...
8626         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
8627
8628         * config/mcore/t-mcore: Remove T_CFLAGS.
8629         * config/mcore/t-mcore-pe: Likewise.
8630
8631 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8632
8633         * configure.ac: Replace custom __GNU_SOURCE test with
8634         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
8635         * aclocal.m4: Regenerate.
8636         * configure: Regenerate.
8637         * config.in: Regenerate.
8638
8639 2008-03-27  Richard Guenther  <rguenther@suse.de>
8640
8641         * fold-const.c (target.h): Include.
8642         (fold_comparison): Fold comparison of addresses of decls
8643         that bind locally or of constants.  Consolidate address folding code.
8644         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
8645         results from fold_binary_to_constant.
8646         (compare_values_warnv): Likewise.
8647
8648 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
8649
8650         PR middle-end/35429
8651         * fold-const.c (fold_truthop): Check for integeral types when folding
8652         a == 0 && b == 0 and a != 0 || b != 0 .
8653
8654 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8655
8656         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
8657
8658 2008-03-26  Andreas Schwab  <schwab@suse.de>
8659
8660         * doc/invoke.texi: Fix use of @item vs. @itemx.
8661
8662 2008-03-26  Tom Tromey  <tromey@redhat.com>
8663
8664         * Makefile.in (build/gensupport.o, build/print-rtl.o,
8665         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
8666         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
8667         build/gencodes.o, build/genconditions.o, build/genconfig.o,
8668         build/genconstants.o, build/genemit.o, build/genextract.o,
8669         build/genflags.o, build/genmddeps.o, build/genopinit.o,
8670         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
8671         options.h.
8672
8673 2008-03-26  Richard Guenther  <rguenther@suse.de>
8674
8675         Revert
8676         2008-03-26  Richard Guenther  <rguenther@suse.de>
8677
8678         * fold-const.c (target.h): Include.
8679         (fold_comparison): Fold comparison of addresses of two decls
8680         that bind locally.  Consolidate address folding code.
8681
8682 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8683
8684         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
8685         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
8686         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
8687         dconstsqrt2, dconstthird, dconste and/or dconst10.
8688         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
8689         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
8690         dconstsqrt2, dconste): Delete.
8691         (init_emit_once): Likewise.  Simplify initializing dconstm1.
8692         Constify variable.
8693         * real.c (get_real_const): New.
8694         * real.h (dconst3, dconst10, dconstm2, dconstthird,
8695         dconstsqrt2, dconste): Delete.
8696         (real_value_const, get_real_const): New.
8697
8698 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
8699
8700         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
8701
8702         * config/i386/i386.c (ix86_function_arg_boundary): Check
8703         BIGGEST_ALIGNMENT instead of 128.
8704         (setup_incoming_varargs_64): Likewise.
8705
8706 2008-03-26  Tom Tromey  <tromey@redhat.com>
8707
8708         * Makefile.in (DEPFILES): Add missing '/'.
8709
8710 2008-03-26  Richard Guenther  <rguenther@suse.de>
8711
8712         * fold-const.c (target.h): Include.
8713         (fold_comparison): Fold comparison of addresses of two decls
8714         that bind locally.  Consolidate address folding code.
8715
8716 2008-03-26  Nick Clifton  <nickc@redhat.com>
8717
8718         PR target/31232
8719         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
8720         not allow INT+INT as a legitimate addressing mode.
8721
8722 2008-03-26  Richard Guenther  <rguenther@suse.de>
8723
8724         * tree-flow.h (widen_bitfield): Remove declaration.
8725         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
8726         (widen_bitfield): Remove function.
8727         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
8728         code.
8729
8730 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8731
8732         PR target/31558
8733         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
8734         error_mark_node's.
8735
8736 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8737
8738         PR rtl-optimization/35232
8739         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
8740         (forget_old_reloads_1, forget_marked_reloads): Don't clear
8741         reg_reloaded_call_part_clobbered here.
8742         (reload_regs_reach_end_p): New function.
8743         (reload_reg_rtx_for_input): New variable.
8744         (reload_reg_rtx_for_output): Likewise.
8745         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
8746         when reassigning a pseudo register.  Load reloadreg from 
8747         reload_reg_rtx_for_input, moving the mode and register
8748         calculation to...
8749         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
8750         instead of the original when deciding whether an input reload
8751         would be a no-op or whether an output reload can be deleted.
8752         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
8753         when setting up new_spill_reg_store.  Load it from
8754         reload_reg_rtx_for_output, moving the mode and register
8755         calculation to...
8756         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
8757         instead of the original when deciding whether an output reload
8758         would be a no-op.  Do the same when modifying insn notes.
8759         Use rtx_equal_p instead of == to compare the registers.
8760         (inherit_piecemeal_p): Take a mode and two register numbers
8761         as argument.
8762         (emit_reload_insns): Clear new_spill_reg_store for every hard
8763         register in the reload register.  Remove spill registers
8764         from reg_reloaded_valid before considering whether to record
8765         inheritance information for them.  Use reload_reg_rtx_for_output
8766         instead of reg_rtx when recording output reloads.  Use
8767         reload_reg_rtx_for_input instead of reg_rtx when recording
8768         input reloads.  Set or clear reg_reloaded_call_part_clobbered
8769         at the same time as setting reg_reloaded_valid.
8770         (delete_output_reload): Add a new_reload_reg parameter and use it
8771         instead of rld[j].reg_rtx.
8772         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
8773         calls accordingly.
8774
8775 2008-03-25  Tom Tromey  <tromey@redhat.com>
8776
8777         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
8778         (build/genattr.o): Likewise.
8779         (build/genattrtab.o): Likewise.
8780         (build/gencodes.o): Likewise.
8781         (build/genconfig.o): Likewise.
8782         (build/genconstants.o): Likewise.
8783         (build/genemit.o): Likewise.
8784         (build/genextract.o): Likewise.
8785         (build/genflags.o): Likewise.
8786
8787 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
8788         
8789         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
8790         instead of size_int for integer types.
8791         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
8792         to match type of MINUS_EXPR.
8793         
8794 2008-03-25  Tom Tromey  <tromey@redhat.com>
8795
8796         * configure: Rebuilt.
8797         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
8798         Makefile.
8799
8800 2008-03-25  Tom Tromey  <tromey@redhat.com>
8801
8802         * config/x-solaris (host-solaris.o): Update.
8803         * config/x-linux (host-linux.o): Update.
8804         * config/x-hpux (host-hpux.o): Update.
8805         * config/x-darwin (host-darwin.o): Update.
8806         * config/v850/t-v850e (v850-c.o): Update.
8807         * config/v850/t-v850 (v850-c.o): Update.
8808         * config/t-vxworks (vxworks.o): Update.
8809         * config/t-sol2 (sol2-c.o, sol2.o): Update.
8810         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
8811         * config/spu/t-spu-elf (spu-c.o): Update.
8812         (spu.o): Remove.
8813         * config/sh/t-symbian (sh-c.o): Update.
8814         (symbian.o): Update.
8815         * config/sh/t-sh (sh-c.o): Update.
8816         * config/score/t-score-elf (score7.o, score3.o): Update.
8817         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
8818         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
8819         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
8820         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
8821         (rs6000.o): Remove.
8822         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
8823         * config/m32c/t-m32c (m32c-pragma.o): Update.
8824         * config/ia64/t-ia64 (ia64-c.o): Update.
8825         * config/i386/x-mingw32 (host-mingw32.o): Update.
8826         * config/i386/x-i386 (driver-i386.o): Update.
8827         * config/i386/x-darwin (host-i386-darwin.o): Update.
8828         * config/i386/x-cygwin (host-cygwin.o): Update.
8829         * config/i386/t-nwld (nwld.o): Update.
8830         * config/i386/t-netware (netware.o): Update.
8831         * config/i386/t-interix (winnt.o): Update.
8832         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
8833         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
8834         msformat-c.o): Update.
8835         * config/bfin/t-bfin-linux (generated_files): Add
8836         linux-sysroot-suffix.h.
8837         * config/arm/t-wince-pe (pe.o): Update.
8838         * config/arm/t-strongarm-pe (pe.o): Update.
8839         * config/arm/t-pe (pe.o): Update.
8840         * config/arm/t-arm (arm-c.o): Update.
8841         * doc/install.texi (Prerequisites): Require make 3.80.
8842         * Makefile.in: Remove .o targets.
8843         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
8844         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
8845         (simple_generated_h, simple_generated_c): Move earlier.
8846         (generated_files): New variable.
8847         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
8848         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
8849         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
8850         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
8851         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
8852         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
8853         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
8854         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
8855         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
8856         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
8857         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
8858         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
8859         (.c.o): Remove.
8860         (COMPILE.base, COMPILE): New variables.
8861         (%.o): New pattern rule.
8862         (ALL_HOST_OBJS): New variable.
8863         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
8864         (dummy-checksum.o, cc1-checksum.o): Remove.
8865         (DRIVER_SHLIB): New variable.
8866         (DRIVER_DEFINES): Use it.
8867         (gencondmd.c): Move out of build/.
8868         (s-conditions): Update.
8869         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
8870         (ALL_BUILD_OBJS): Likewise.
8871         (build/%.o): Use BUILDCOMPILE.
8872         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
8873         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
8874         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
8875         build/gencheck.o, build/gencodes.o, build/genconditions.o,
8876         build/genconfig.o, build/genconstants.o, build/genemit.o,
8877         build/genextract.o, build/genflags.o, build/genmddeps.o,
8878         build/genopinit.o, build/genoutput.o, build/genpeep.o,
8879         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
8880         build/gen-protos.o, build/scan.o, build/fix-header.o,
8881         build/scan-decls.o): Simplify.
8882         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
8883         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
8884         prefix.o, toplev.o): Reduce to variable setting.
8885         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
8886         ($(out_object_file), gcc-options.o): New targets.
8887         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
8888         * configure: Rebuilt.
8889         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
8890         * doc/sourcebuild.texi (Front End Directory): Document new variable.
8891
8892 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
8893
8894         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
8895         complain when we hit an error, return ERROR_MARK_NODE.
8896
8897 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8898
8899         * config/sh/constraints.md (Pso, Psz): New constraints.
8900         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
8901         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
8902
8903 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8904
8905         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
8906         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
8907
8908 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8909
8910         * config/sh/sh.md (prefetch): Add condition for SH2A target.
8911         (prefetch_sh2a): New.   
8912
8913 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8914             Naveen.H.S  <naveen.hs@kpitcummins.com>
8915
8916         * config/sh/constraints.md (I28): New constraint.
8917         * config/sh/sh.c (broken_move): Add support for movi20s.
8918         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
8919
8920 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
8921             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8922             Naveen.H.S  <naveen.hs@kpitcummins.com>
8923
8924         * config/sh/sh.c (SH_ATTRIBUTES): Define.
8925         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
8926         (print_operand): Handle resbank in %@ operand code.
8927         (sh_encode_section_info): New.
8928         (push_regs): Add conditions for resbank.
8929         (sh_expand_epilogue): Likewise.
8930         (sh_insert_attributes): Likewise.
8931         (sh_attribute_table): Likewise.
8932         (sh_handle_resbank_handler_attribute): New.
8933         (sh2a_handle_function_vector_handler_attribute): New.
8934         (sh2a_is_function_vector_call): New.
8935         (sh2a_get_function_vector_number): New.
8936         (sh2a_function_vector_p): New.
8937         (sh_cfun_resbank_handler_p): New.
8938         * config/sh/sh.md (calli): Emit jsr/n if possible.
8939         (calli_tbr_rel): New.
8940         (calli_pcrel): Emit jsr/n if possible.
8941         (return_i): Emit rts/n if possible.
8942         (call_valuei_tbr_rel): New.
8943         (call_valuei_pcrel): Add condition for SH2A target.
8944         (call_value): Likewise.
8945         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
8946         (sh2a_get_function_vector_number): Likewise.
8947         (sh2a_is_function_vector_call): Likewise.
8948         * doc/extend.texi: Document TBR relative addressing of SH2A.
8949         (resbank): Add description for SH2A.
8950
8951 2008-03-24  Richard Guenther  <rguenther@suse.de>
8952
8953         PR c/22371
8954         * gimplify.c (gimplify_modify_expr): For frontend type-correct
8955         pointer assignments change conversions according to middle-end rules.
8956         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
8957         * configure.ac: Include type checking in yes.
8958         * configure: Regenerate.
8959
8960 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8961
8962         * diagnostic.c (diagnostic_count_diagnostic): Delete.
8963         (diagnostic_report_diagnostic): Update. Handle ICEs here.
8964         
8965 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
8966
8967         * gthr-vxworks.h (UNUSED): Define.
8968
8969 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
8970
8971         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
8972
8973 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
8974
8975         * doc/extend.texi (Function Attributes): Add missing comma in the
8976         example of the "alloc_size" attribute.
8977         
8978 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
8979
8980         Revert:
8981         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8982
8983         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8984         32bit host.
8985
8986         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8987
8988         PR target/35496
8989         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8990         of the underlying type of a MS bitfield layout to the natural
8991         alignment of the type.
8992
8993         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8994
8995         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8996         to their natural alignment to avoid store forwarding stalls.
8997
8998 2008-03-22  Richard Guenther  <rguenther@suse.de>
8999
9000         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
9001         For PHI nodes verify the address is invariant.
9002         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
9003         (get_symbol_constant_value): Use is_gimple_min_invariant.
9004         (maybe_fold_stmt_indirect): Likewise.
9005
9006 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
9007
9008         PR rtl-optimization/33927
9009         * Makefile.in (dse.o): Depend on $(TM_P_H).
9010         * expr.h (extract_low_bits): Declare.
9011         * expmed.c (extract_low_bits): New function.
9012         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
9013         * dse.c: Include tm_p.h.
9014         (find_shift_sequence): Remove the read_reg argument and return the
9015         read value.  Emit the instructions instead of returning them.
9016         Iterate on new_mode rather than calculating it each time.
9017         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
9018         source to NEW_MODE and extract_low_bits to convert the shifted
9019         value to READ_MODE.
9020         (replace_read): Allow the load and store to have different mode
9021         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
9022         or extraction instructions before trying the replacement.  Update
9023         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
9024
9025 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
9026
9027         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
9028         to their natural alignment to avoid store forwarding stalls.
9029
9030 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9031
9032         PR target/27946
9033         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
9034         encouraging but not allowing gprs for input;
9035         change the input constraint to !f#r.
9036         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
9037         gprs for output;
9038         change the output constraint to !f#r.
9039
9040 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
9041
9042         PR target/13958
9043         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
9044         corresponding post-reload splitters.
9045         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
9046         when x87 FP math is selected.
9047         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
9048         New function prototype.
9049         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
9050         unreachable function to ease macroization of insn patterns.
9051
9052 2008-03-21  Martin Jambor  <mjambor@suse.cz>
9053
9054         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
9055         reference dumps if ddr is NULL or dependence is unknown.
9056
9057 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9058
9059         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
9060         unsigned extension into account.
9061         (ATOMIC_COMPARE_AND_SWAP): Likewise.
9062         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
9063         Do computations on a scratch register.
9064
9065 2008-03-21  Richard Guenther  <rguenther@suse.de>
9066
9067         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9068         Use is_gimple_min_invariant instead of TREE_INVARIANT.
9069         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
9070         * tree-ssa-dom.c (record_equality): Likewise.
9071         * tree-inline.c (copy_body_r): Likewise.
9072         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
9073         TREE_INVARIANT.
9074
9075 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9076
9077         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
9078         as 'delete_unused' argument.
9079
9080 2008-03-20  Richard Guenther  <rguenther@suse.de>
9081
9082         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
9083         special casing of constant qualifiers.
9084         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
9085         care about them in general.
9086         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
9087         regardless of their type.
9088         (fold_stmt_r): Forcefully fold *& if we end up with that.
9089
9090 2008-03-20  Paul Brook  <paul@codesourcery.com>
9091
9092         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
9093         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
9094         linker flags.
9095         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
9096         definition.
9097         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
9098         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
9099
9100 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
9101
9102         * common.opt (Wmudflap): New option.
9103         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
9104         (mx_register_decls): Likewise.
9105         (mudflap_finish_file): Likewise.
9106         * doc/invoke.texi: Document -Wno-mudflap.
9107
9108 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
9109
9110         * c-format.c (replace_format_name_to_system_name): New.
9111         (cmp_attribs): New.
9112         (convert_format_name_to_system_name): New.
9113         (decode_format_attr): Add use of convert_format_name_to_system_name.
9114         (format_types_orig): Add gnu_ prefix to names.
9115         (check_format_info_main): Special treating of \0 escaped names for
9116         supporting multi-character format specifiers as I32, I64.
9117         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
9118         (gnu_target_overrides_format_attributes): New.
9119         * c-format.h: Add structure target_ovr_attr to hold
9120         system specific formatter names.
9121         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
9122         msformat-c.o file to c_target_objs and cxx_target_objs.
9123         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
9124         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
9125         (TARGET_N_FORMAT_TYPES): New.
9126         * config/i386/msformat-c.c: New.
9127         * config/i386/t-cygming: Add build rule for msformat-c.o.
9128         * doc/extend.texi: Add new format names gnu_* and ms_* and
9129         further details.
9130         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
9131
9132 2008-03-20  Ira Rosen  <irar@il.ibm.com>
9133
9134         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
9135         optimizations turned on under -O3.
9136         (ftree-vectorize): Add that the flag is turned on with -O3.
9137
9138 2008-03-20  Ben Elliston  <bje@au.ibm.com>
9139
9140         * regmove.c (try_auto_increment): Fix spelling error in comment.
9141         * final.c (final_scan_insn): Likewise.
9142
9143 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
9144
9145         PR target/14552
9146         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
9147         allocator preferences for "y" and "r" class registers.
9148         ("*mov<mode>_internal"): Ditto.
9149         ("*movv2sf_internal_rex64"): Ditto.
9150         ("*movv2sf_internal"): Ditto.
9151
9152 2008-03-19  Michael Matz  <matz@suse.de>
9153
9154         PR middle-end/35616
9155         * calls.c (expand_call): Check overlap of arguments with call
9156         address for sibcalls.
9157
9158 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
9159
9160         PR target/35496
9161         * stor-layout.c (update_alignment_for_field): Set minimum alignment
9162         of the underlying type of a MS bitfield layout to the natural
9163         alignment of the type.
9164
9165 2008-03-19  Jan Hubicka  <jh@suse.cz>
9166
9167         PR other/35094
9168         * toplev.c (decode_d_option): Handle all CPP flags.
9169         * tree-vrp.c: Update tree_pass descriptors.
9170         * regrename.c: Update tree_pass descriptors.
9171         * fwprop.c: Update tree_pass descriptors.
9172         * doc/invoke.texi: Remove documentation of dropped -d? flags.
9173         * tree-into-ssa.c: Update tree_pass descriptors.
9174         * tree-dump.c: Update tree_pass descriptors.
9175         * tree-complex.c: Update tree_pass descriptors.
9176         * tree-dump.h: Update tree_pass descriptors.
9177         * see.c: Update tree_pass descriptors.
9178         * cgraphbuild.c: Update tree_pass descriptors.
9179         * tracer.c: Update tree_pass descriptors.
9180         * tree-loop-distribution.c: Update tree_pass descriptors.
9181         * cgraph.c: Update tree_pass descriptors.
9182         * postreload-gcse.c: Update tree_pass descriptors.
9183         * postreload.c: Update tree_pass descriptors.
9184         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
9185         * tree-tailcall.c: Update tree_pass descriptors.
9186         * tree-pass.h (tree_opt_pass): Rename to ...
9187         (opt_pass) ... this one; add "type" field and remove letter field.
9188         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
9189         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
9190         all_lowering_passes): Update declaration.
9191         * ipa-cp.c: Update tree_pass descriptors.
9192         * final.c: Update tree_pass descriptors.
9193         * omp-low.c: Update tree_pass descriptors.
9194         * tree-ssa-dse.c: Update tree_pass descriptors.
9195         * ipa-reference.c: Update tree_pass descriptors.
9196         * tree-ssa-uncprop.c: Update tree_pass descriptors.
9197         * auto-inc-dec.c: Update tree_pass descriptors.
9198         * reorg.c: Update tree_pass descriptors.
9199         * cgraphunit.c: Update tree_pass descriptors.
9200         * tree-ssa-copyrename.c: Update tree_pass descriptors.
9201         * tree-ssa-ccp.c: Update tree_pass descriptors.
9202         * df-core.c: Update tree_pass descriptors.
9203         * mode-switching.c: Update tree_pass descriptors.
9204         * tree-nomudflap.c: Update tree_pass descriptors.
9205         * modulo-sched.c: Update tree_pass descriptors.
9206         * ipa-pure-const.c: Update tree_pass descriptors.
9207         * cse.c: Update tree_pass descriptors.
9208         * web.c: Update tree_pass descriptors.
9209         * tree-stdarg.c: Update tree_pass descriptors.
9210         * tree-ssa-math-opts.c: Update tree_pass descriptors.
9211         * tree-ssa-dom.c: Update tree_pass descriptors.
9212         * tree-nrv.c: Update tree_pass descriptors.
9213         * tree-ssa-alias.c: Update tree_pass descriptors.
9214         * loop-init.c: Update tree_pass descriptors.
9215         * gimple-low.c: Update tree_pass descriptors.
9216         * ipa-inline.c: Update tree_pass descriptors.
9217         * tree-ssa-sink.c: Update tree_pass descriptors.
9218         * global.c: Update tree_pass descriptors.
9219         * ifcvt.c: Update tree_pass descriptors.
9220         * jump.c: Update tree_pass descriptors.
9221         * predict.c: Update tree_pass descriptors.
9222         * tree-ssa-loop.c: Update tree_pass descriptors.
9223         * recog.c: Update tree_pass descriptors.
9224         * dse.c: Update tree_pass descriptors.
9225         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
9226         * tree-eh.c: Update tree_pass descriptors.
9227         * regmove.c: Update tree_pass descriptors.
9228         * local-alloc.c
9229         * function.c: Update tree_pass descriptors.
9230         * tree-vectorizer.c: Update tree_pass descriptors.
9231         * gcse.c: Update tree_pass descriptors.
9232         * ipa-type-escape.c: Update tree_pass descriptors.
9233         * tree-if-conv.c: Update tree_pass descriptors.
9234         * init-regs.c: Update tree_pass descriptors.
9235         * ipa.c: Update tree_pass descriptors.
9236         * tree-ssa-phiopt.c: Update tree_pass descriptors.
9237         * rtl-factoring.c: Update tree_pass descriptors.
9238         * lower-subreg.c: Update tree_pass descriptors.
9239         * bt-load.c: Update tree_pass descriptors.
9240         * tree-dfa.c: Update tree_pass descriptors.
9241         * except.c: Update tree_pass descriptors.
9242         * emit-rtl.c: Update tree_pass descriptors.
9243         * cfgexpand.c: Update tree_pass descriptors.
9244         * tree-cfgcleanup.c: Update tree_pass descriptors.
9245         * cfgcleanup.c: Update tree_pass descriptors.
9246         * tree-ssa-pre.c: Update tree_pass descriptors.
9247         * tree-sra.c: Update tree_pass descriptors.
9248         * tree-mudflap.c: Update tree_pass descriptors.
9249         * tree-ssa-copy.c: Update tree_pass descriptors.
9250         * cfglayout.c: Update tree_pass descriptors.
9251         * tree-ssa-forwprop.c: Update tree_pass descriptors.
9252         * tree-ssa-dce.c: Update tree_pass descriptors.
9253         * tree-ssa.c: Update tree_pass descriptors.
9254         * regclass.c: Update tree_pass descriptors.
9255         * integrate.c: Update tree_pass descriptors.
9256         * tree-optimize.c: Update tree_pass descriptors.
9257         * tree-ssa-phiprop.c: Update tree_pass descriptors.
9258         * tree-object-size.c: Update tree_pass descriptors.
9259         * combine.c: Update tree_pass descriptors.
9260         * tree-outof-ssa.c: Update tree_pass descriptors.
9261         * bb-reorder.c: Update tree_pass descriptors.
9262         * stack-ptr-mod.c: Update tree_pass descriptors.
9263         * var-tracking.c: Update tree_pass descriptors.
9264         * tree-profile.c: Update tree_pass descriptors.
9265         * tree-vect-generic.c: Update tree_pass descriptors.
9266         * reg-stack.c: Update tree_pass descriptors.
9267         * sched-rgn.c: Update tree_pass descriptors.
9268         * tree-ssa-structalias.c: Update tree_pass descriptors.
9269         * tree-cfg.c: Update tree_pass descriptors.
9270         * passes.c (current_pass): Update declaration.
9271         (finish_optimization_passes): Update.
9272         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
9273         (register_one_dump_file, register_dump_files_1, next_pass_1):
9274         Update arguments.
9275         (init_optimization_passes): Update handling of new types.
9276         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
9277         * ipa-struct-reorg.c: Update tree_pass descriptors.
9278         * tree-ssa-reassoc.c: Update tree_pass descriptors.
9279         * combine-stack-adj.c: Update tree_pass descriptors.
9280         * cfgrtl.c: Update tree_pass descriptors.
9281         * dce.c: Update tree_pass descriptors.
9282         * tree-ssanames.c: Update tree_pass descriptors.
9283
9284 2008-03-19  Richard Guenther  <rguenther@suse.de>
9285
9286         PR middle-end/35609
9287         * tree-ssa.c (walk_data): New structure.
9288         (warn_uninitialized_var): If not always_executed warn with "maybe"
9289         instead of "is".
9290         (execute_early_warn_uninitialized): Compute post-dominators.
9291         Initialize always_executed before processing each basic block.
9292
9293 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
9294
9295         PR target/35504
9296         * config/i386/i386.c (x86_this_parameter): Calculate correct location
9297         of "this" pointer when "regparm = N" or "fastcall" is in effect.
9298
9299 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9300
9301         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
9302
9303 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
9304
9305         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
9306         is true.
9307         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
9308         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
9309         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
9310         target after ignore has been set, and move there also the commputation
9311         of subtarget and original_target.
9312         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
9313         (LANG_HOOKS_INITIALIZER): Remove it.
9314         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
9315
9316 2008-03-18  Richard Guenther  <rguenther@suse.de>
9317
9318         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
9319         found an expression with constants, note that in the VN for the lhs.
9320         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
9321         fold them to constants if possible.  Run cleanup_cfg if done so.
9322         (execute_pre): Return todo.
9323         (do_pre): Likewise.
9324         (execute_fre): Likewise.
9325         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
9326         of constants.
9327         (get_prop_source_stmt): Look through pointer conversions.
9328
9329 2008-03-18  Jan Hubicka  <jh@suse.cz>
9330
9331         * tree-pretty-print.c: Include predict.h.
9332         (dump_generic_node): Dump predictor.
9333         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
9334         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
9335         * gimple-low.c (lower_stmt): Likewise.
9336         * expr.c (expand_expr_real): Likewise.
9337         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
9338         them.
9339         (build_predict_expr, build_predict_expr): New.
9340         * predict.h (predictor_name, build_predict_expr): Update.
9341         * c-typeck.c (c_finish_bc_stmt): Add prediction.
9342         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
9343         * predict.def (PRED_CONTINUE): Update hitrate.
9344         * tree.def (PREDICT_EXPR): Define.
9345         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
9346         do not handle BIND_EXPR.
9347         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
9348         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
9349         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
9350         operands.
9351
9352 2008-03-18  Michael Matz  <matz@suse.de>
9353
9354         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
9355
9356 2008-03-18  Richard Guenther  <rguenther@suse.de>
9357
9358         * tree-gimple.h (is_gimple_invariant_address): Declare.
9359         (is_gimple_constant): Likewise.
9360         * tree-gimple.c (is_gimple_constant): New function.
9361         (is_gimple_invariant_address): Likewise.
9362         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
9363         and is_gimple_invariant_address.
9364         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
9365         previous change.
9366         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
9367         an addressable base.
9368
9369 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
9370
9371         PR middle-end/35611
9372         * gimplify.c (gimplify_expr): Gimplify second operand of
9373         OMP_ATOMIC_LOAD.
9374
9375 2008-03-17  Richard Guenther  <rguenther@suse.de>
9376
9377         PR tree-optimization/19637
9378         * fold-const.c (fold_unary): Remove restrictions of removing
9379         intermediate pointer-conversions (P2)(P1)P0.
9380         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
9381         conversion to void pointer.
9382         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
9383
9384 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
9385
9386         PR debug/31510
9387         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
9388         emulated thread local variables.
9389
9390 2008-03-16  Richard Guenther  <rguenther@suse.de>
9391
9392         PR middle-end/35607
9393         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
9394         expand TREE_INVARIANT operations that are not gimple invariant.
9395
9396 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
9397
9398         * doc/extend.texi (Alignment): Say that the ABI controls
9399         the __alignof__ for non-strict-alignment targets rather
9400         than being a recommendation.
9401
9402 2008-03-15  Paul Brook  <paul@codesourcery.com>
9403
9404         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
9405         annotations.
9406         (arm_output_fn_unwind): Mark functions that can not be unwound.
9407
9408 2008-03-15  Paul Brook  <paul@codesourcery.com>
9409
9410         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
9411         extension instructions.
9412
9413 2008-03-15  Richard Guenther  <rguenther@suse.de>
9414
9415         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
9416         and fold constant aggregate refs.
9417         (fold_const_aggregate_ref): Handle string constants
9418         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
9419         (evaluate_stmt): Simplify now that ccp_fold folds constant
9420         aggregate refs.
9421
9422 2008-03-15  Paul Brook  <paul@codesourcery.com>
9423
9424         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
9425         (extzv): Use gen_extzv_t2.
9426         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
9427
9428 2008-03-15  Richard Guenther  <rguenther@suse.de>
9429
9430         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
9431         (fold_const_aggregate_ref): Likewise.
9432         (get_value): Return NULL if we don't have any values.
9433         (ccp_finalize): Set const_val to NULL after freeing it.
9434         * tree-flow.h (get_symbol_constant_value): Declare.
9435         (fold_const_aggregate_ref): Likewise.
9436         * tree-ssa-sccvn.c (try_to_simplify): Use them.
9437
9438 2008-03-15  Richard Guenther  <rguenther@suse.de>
9439
9440         PR middle-end/35593
9441         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
9442         to not produce negative array indices if not allowed.  Add
9443         parameter to indicate that.
9444         (maybe_fold_offset_to_component_ref): Allow negative array
9445         indices only for the first member of a structure.
9446         (maybe_fold_offset_to_reference): Allow negative array indices.
9447         (maybe_fold_stmt_addition): Likewise.
9448
9449 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
9450             Anatoly Sokolov <aesok@post.ru>
9451
9452         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
9453         (avr_arch): Add ARCH_AVR6.
9454         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
9455         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
9456         instead of fixed value 2.
9457         (print_operand_address): Use gs() asm specifier instead of pm().
9458         (avr_assemble_integer): (Ditto.).
9459         (avr_output_addr_vec_elt): (Ditto.).
9460         (print_operand): Handle "!" code.
9461         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
9462         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
9463         (AVR_HAVE_EIJMP_EICALL): Define.
9464         (AVR_3_BYTE_PC): Redefine.
9465         (AVR_2_BYTE_PC): (Ditto.).
9466         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
9467         (LINK_SPEC): Add atmega2560 and atmega2561.
9468         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
9469         (crtm2561.o).
9470         * config/avr/avr.md (call_insn): Use eicall instead of icall 
9471         for 3 byte PC devices.
9472         (call_value_insn): (Ditto.).
9473         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
9474         (indirect_jump): Use only for for 2 byte PC devices.
9475         (*tablejump): (Ditto.).
9476         (*indirect_jump_avr6): Add insn.
9477         (*tablejump_rjmp): Don't use for 3 byte PC devices.
9478         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
9479         instead of ijmp for 3 byte PC devices.
9480         (__tablejump2__): (Ditto.).
9481         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
9482         (MULITLIB_DIRNAMES): (Ditto.). 
9483         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
9484
9485 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
9486
9487         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
9488         "sse2_umulsidi3".  Use V1DI mode for operand 0.
9489         ("mmx_psadbw"): Use V1DI mode for operand 0.
9490         * config/i386/i386-modes.def (V1SI): New vector mode.
9491         * config/i386/i386.c (struct builtin_description)
9492         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
9493         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
9494         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
9495         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
9496         v1di_ftype_v8qi_v8qi type.
9497         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
9498
9499         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
9500         __builtin_ia32_pmuludq]: Fix the mode of return value.
9501
9502 2008-03-15  Richard Guenther  <rguenther@suse.de>
9503
9504         PR middle-end/35595
9505         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
9506         being a PHI_NODE.
9507
9508 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
9509         
9510         * doc/invoke.texi (Option Summary, Xtensa Options): Document
9511         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
9512         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
9513         unless TARGET_SERIALIZE_VOLATILE is enabled.
9514         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
9515         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
9516         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
9517
9518 2008-03-14  Richard Guenther  <rguenther@suse.de>
9519
9520         PR tree-optimization/34172
9521         * tree-flow.h (refs_may_alias_p): Declare.
9522         (get_single_def_stmt): Likewise.
9523         (get_single_def_stmt_from_phi): Likewise.
9524         (get_single_def_stmt_with_phi): Likewise.
9525         * tree-dfa.c (refs_may_alias_p): New function.
9526         (get_single_def_stmt): Likewise.
9527         (get_single_def_stmt_from_phi): Likewise.
9528         (get_single_def_stmt_with_phi): Likewise.
9529         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
9530         (vn_reference_lookup_1): New helper function.
9531         (vn_reference_lookup): Walk the virtual use-def chain to
9532         continue searching for a match if the def does not alias the
9533         reference we are looking for.
9534
9535 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
9536
9537         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
9538         archive and Perzl.  Update The Written Word listing.
9539
9540 2008-03-14  Richard Guenther  <rguenther@suse.de>
9541
9542         PR tree-optimization/34043
9543         PR tree-optimization/33989
9544         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
9545         when doing FRE.
9546         (bitmap_find_leader): Use extra argument to verify dominance
9547         relationship inside a basic-block.
9548         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
9549         (find_leader_in_sets): Adjust.
9550         (create_component_ref_by_pieces): Take extra argument for
9551         dominance check, handle lookup failures.
9552         (find_or_generate_expression): Likewise.
9553         (create_expression_by_pieces): Likewise.
9554         (insert_into_preds_of_block): Adjust.
9555         (create_value_expr_from): If asked for, verify all operands
9556         are in the blocks AVAIL_OUT set.
9557         (make_values_for_stmt): Check for SSA_NAMEs that are life
9558         over an abnormal edge.
9559         (compute_avail): Remove such check.
9560         (do_SCCVN_insertion): New function.
9561         (eliminate): If we do not find a leader suitable for replacement
9562         insert a replacement expression from SCCVN if available.
9563         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
9564         (struct vn_ssa_aux): Add needs_insertion flag.
9565         * tree-ssa-sccvn.c (may_insert): New global flag.
9566         (copy_reference_ops_from_ref): Value-number union member access
9567         based on its size, not type and member if insertion is allowed.
9568         (visit_reference_op_load): For a weak match from union type
9569         punning lookup a view-converted value and insert a SSA_NAME
9570         for that value if that is not found.
9571         (visit_use): Make dumps shorter.  Do not disallow value numbering
9572         SSA_NAMEs that are life over an abnormal edge to constants.
9573         (free_scc_vn): Release inserted SSA_NAMEs.
9574         (run_scc_vn): New flag to specify whether insertion is allowed.
9575         Process SSA_NAMEs in forward order.
9576         * tree-ssa-loop-im.c (for_each_index): Handle invariant
9577         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
9578         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
9579         pointer type to/from integral types that do not change the
9580         precision to regular conversions.
9581
9582 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9583
9584         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9585         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9586         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
9587         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
9588         input arguments and the mode of return value.  Built-in functions
9589         that operate on whole 64-bit MMX register now use V1DI mode.
9590
9591 2008-03-13  Alon Dayan  <alond@il.ibm.com>
9592             Olga Golovanevsky  <olga@il.ibm.com>
9593
9594         PR tree-optimization/35041
9595         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
9596         to locate the right position in a statement.
9597
9598 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9599
9600         PR target/34000
9601         PR target/35553
9602         * config/i386/xmmintrin.h:  Change all static inline functions to
9603         extern inline and add __gnu_inline__ attribute.
9604         * config/i386/bmintrin.h: Ditto.
9605         * config/i386/smmintrin.h: Ditto.
9606         * config/i386/tmmintrin.h: Ditto.
9607         * config/i386/mmintrin-common.h: Ditto.
9608         * config/i386/ammintrin.h: Ditto.
9609         * config/i386/emmintrin.h: Ditto.
9610         * config/i386/pmmintrin.h: Ditto.
9611         * config/i386/mmintrin.h: Ditto.
9612         * config/i386/mm3dnow.h: Ditto.
9613
9614 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
9615
9616         PR middle-end/35185
9617         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
9618         (lower_omp_2): New function.
9619         (lower_omp_1, lower_omp): Rewritten.
9620
9621 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
9622
9623         PR 35054
9624         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
9625         with the phrase "Microsoft Windows compilers".
9626         (Push/Pop Macro Pragmas): New subsection. Document
9627         #pragma push_macro and pragma pop_macro.
9628
9629 2008-03-12  Paul Brook  <paul@codesourcery.com>
9630
9631         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
9632
9633 2008-03-12  Paul Brook  <paul@codesourcery.com>
9634
9635         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
9636         (thumb2_alusi3_short): Exclude PLUS and MINUS.
9637         (thumb2_addsi_shortim): Rename ...
9638         (thumb2_addsi_short): ... to this.  Allow register operands.
9639         (thumb2_subsi_short): New pattern.
9640         (thumb2_one_cmplsi2_short,
9641         thumb2_negsi2_short): New patterns and peepholes.
9642
9643 2008-03-12  Paul Brook  <paul@codesourcery.com>
9644
9645         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
9646
9647 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
9648
9649         * config/i386/i386.md (int_cond): New code iterator.
9650         (fp_cond): Ditto.
9651         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
9652         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
9653         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
9654         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
9655         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
9656         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
9657         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
9658         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
9659
9660 2008-03-12  Paul Brook  <paul@codesourcery.com>
9661
9662         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
9663         instead of {arm,thumb}_compute_save_reg_mask.
9664         (output_return_instruction): Ditto.
9665         (thumb_unexpanded_epilogue): Ditto.
9666         (thumb1_expand_prologue): Ditto.
9667         (thumb1_output_function_prologue): Ditto.
9668         (arm_set_return_address): Ditto.
9669         (thumb_set_return_address): Ditto.
9670         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
9671         regs to achieve stack alignment.
9672         (thumb1_compute_save_reg_mask): Fix compiler warning.
9673         (arm_output_epilogue): Use offsets->saved_regs_mask.
9674         Adjust stack pointer by poping call clobered registers.
9675         (arm_expand_prologue): Use offsets->saved_regs_mask.
9676         Adjust stack pointer by pushing extra registers.
9677         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
9678
9679 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
9680
9681         PR tree-opt/35422
9682         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
9683         conversion to the operands of a multiplication.
9684
9685 2008-03-12  Richard Guenther  <rguenther@suse.de>
9686
9687         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
9688         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
9689         * timevar.def (TV_TREE_PHIPROP): Add.
9690         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
9691         pass description.  Use TV_TREE_PHIPROP.
9692         * tree-ssa-forwprop.c: Remove phiprop code.
9693
9694 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
9695
9696         PR middle-end/35549
9697         * omp-low.c (maybe_lookup_decl): Constify first argument.
9698         (use_pointer_for_field): Change last argument from bool to
9699         omp_context *.  Disallow shared copy-in/out in nested
9700         parallel if decl is shared in outer parallel too.
9701         (build_outer_var_ref, scan_sharing_clauses,
9702         lower_rec_input_clauses, lower_copyprivate_clauses,
9703         lower_send_clauses, lower_send_shared_vars): Adjust callers.
9704
9705 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
9706             Ira Rosen  <irar@il.ibm.com>
9707
9708         * tree-vectorizer.c (free_stmt_vec_info): New function.
9709         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
9710         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
9711         * tree-vectorizer.h (free_stmt_vec_info): Declare.
9712         * tree-vect-transform.c (vectorizable_conversion): Free
9713         vec_oprnds0 if it was allocated.
9714         (vect_permute_store_chain): Remove unused VECs.
9715         (vectorizable_store): Free VECs that are allocated in the..
9716         function.
9717         (vect_transform_strided_load, vectorizable_load): Likewise.
9718         (vect_remove_stores): Simplify the code.
9719         (vect_transform_loop): Move code to vect_remove_stores().
9720         Call vect_remove_stores() and free_stmt_vec_info().
9721
9722 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9723
9724         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
9725         TARGET_HPUX.  Revise comment.
9726         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
9727         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
9728         Use sr4 variant of `be' instruction when not generating PIC code.
9729         (attr_length_call): Adjust for above change.
9730
9731 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9732
9733         * ipa-reference.c (static_execute): Remove module_statics_const and
9734         associated setting code.
9735
9736 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9737
9738         PR target/35540
9739         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
9740         predicate for operand 1.
9741         (paritysi2_cmp): Use register_operand predicate for operand 2.
9742         Use earlyclobber modifier for operand 1.  Remove support for
9743         memory operands.
9744         (paritydi2_cmp): Use register_operand predicate for operand 3.
9745         Use earlyclobber modifier for operand 1.  Remove support for
9746         memory operands.
9747
9748 2008-03-11  Paul Brook  <paul@codesourcery.com>
9749             Vladimir Prus  <vladimir@codesourcery.com>
9750
9751         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
9752         (arm_compute_save_reg0_reg12_mask): Always
9753         check if register 11 must be saved.  Always safe hard frame pointer
9754         when frame_pointer_needeed.
9755         (arm_compute_save_reg_mask): Save IP and PC
9756         only with apcs frames.
9757         (arm_output_epilogue): Adjust Thumb2 codepath to
9758         be also invoked and work for ARM non-apcs frames.
9759         (arm_expand_prologue): Don't bother saving IP
9760         for non-apcs frame, since it's not clobbered by
9761         prologue code.  Implement non-apcs frame
9762         layout.
9763
9764 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9765
9766         PR rtl-optimization/35281
9767         * expr.c (convert_move): Use a new pseudo for the intermediate
9768         from_mode->word_mode result.
9769
9770 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9771
9772         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
9773         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
9774         * toplev.c (compile_file): Don't call it.
9775
9776 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9777
9778         PR middle-end/35526
9779         * expr.c (store_expr): Call emit_block_move if the mode
9780         of "temp" RTX is BLKmode.
9781
9782 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9783             Richard Guenther  <rguenther@suse.de>
9784
9785         PR tree-optimization/31358
9786         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
9787         the step with a NULL_TREE.
9788         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
9789         to sizetype if type is a pointer type.
9790         (add_candidate_1): Don't convert the base and step to
9791         the generic type if the orginal type is a pointer type.
9792         (add_iv_value_candidates): Use sizetype for the step
9793         if type is a pointer type.
9794         (cand_value_at): Likewise.
9795         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
9796         for pointer types.
9797         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
9798         Don't convert the tem affine to the type.
9799         (add_elt_to_tree): Use sizetype for the step if a pointer.
9800         Use POINTER_PLUS_EXPR for pointers.
9801         (aff_combination_to_tree): Use sizetype for the step if a
9802         pointer.
9803
9804 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
9805
9806         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
9807         Remove commutativity hint.
9808
9809 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
9810
9811         PR c/35438
9812         PR c/35439
9813         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
9814         errorneous type.  Check that v is a VAR_DECL.
9815
9816         PR middle-end/35099
9817         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
9818
9819 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
9820
9821         PR tree-optimization/35494
9822         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
9823         may be overriden at link and run time.
9824
9825 2008-03-10  Richard Guenther  <rguenther@suse.de>
9826
9827         PR tree-optimization/34677
9828         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
9829         (poolify_tree): Likewise.
9830         (modify_expr_template): Likewise.
9831         (poolify_modify_stmt): Likewise.
9832         (insert_fake_stores): Handle all component-ref style stores
9833         in addition to INDIRECT_REF.  Also handle complex types.
9834         Do not poolify the inserted load.
9835         (realify_fake_stores): Do not rebuild the tree but only
9836         make it a SSA_NAME copy.
9837         (init_pre): Remove initialzation of modify_expr_template.
9838         Do not allocate modify_expr_node_pool.
9839         (fini_pre): Do not free modify_expr_node_pool.
9840
9841 2008-03-10  Paul Brook  <paul@codesourcery.com>
9842
9843         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
9844         to avoid conflicts.
9845
9846 2008-03-10  Paul Brook  <paul@codesourcery.com>
9847             Mark Shinwell  <shinwell@codesourcery.com>
9848
9849         * config/arm/cortex-r4.md: New.
9850         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
9851         insn attributes.
9852         * config/arm/arm.md: Include cortex-r4.md.
9853         (insn): Add smmls, sdiv and udiv values.
9854         (generic_sched): Don't use generic scheduling for Cortex-R4.
9855         (arm_issue_rate): New function.
9856         (TARGET_SCHED_ISSUE_RATE): Define.
9857
9858 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
9859
9860         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
9861
9862 2008-03-10  Richard Guenther  <rguenther@suse.de>
9863
9864         * tree-ssa-pre.c (get_sccvn_value): Simplify.
9865         (compute_avail): Do not add stmt uses to AVAIL_OUT.
9866
9867 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
9868
9869         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
9870         Set default to true.
9871
9872 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9873
9874         * c.opt (Wsynth): Deprecate.
9875         * doc/invoke.texi (Option Summary, Warning Options): Document
9876         -Wno-format-contains-nul.
9877
9878 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
9879
9880         PR target/35496
9881         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
9882         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
9883
9884 2008-03-09  Ira Rosen  <irar@il.ibm.com>
9885
9886         * config/rs6000/rs6000.c (builtin_description): Rename vector
9887         left shift operations.
9888         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
9889         (altivec_vsl<VI_char>): Rename to ...
9890         (ashl<mode>3): ... new name.
9891         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
9892         gen_ashlv4si3.
9893         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
9894
9895 2008-03-08  Richard Guenther  <rguenther@suse.de>
9896
9897         * coverage.h (tree_coverage_counter_addr): Declare.
9898         * coverage.c (tree_coverage_counter_addr): New function.
9899         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
9900         before using again.
9901         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
9902         (tree_gen_one_value_profiler): Likewise.
9903         (tree_gen_ic_profiler): Likewise.
9904         (tree_gen_average_profiler): Likewise.
9905         (tree_gen_ior_profiler): Likewise.
9906
9907 2008-03-08  Richard Guenther  <rguenther@suse.de>
9908
9909         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
9910         (vn_binary_op_insert): Likewise.
9911         (vn_unary_op_lookup): Likewise.
9912         (vn_unary_op_insert): Likewise.
9913         (vn_nary_op_lookup): Declare.
9914         (vn_nary_op_insert): Likewise.
9915         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
9916         and binary hashes, use a single obstack for unary_op_pool
9917         and binary_op_pool.
9918         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
9919         a single struct vn_nary_op_s.  Store tree code length and
9920         a variable number of operands.
9921         (struct vn_reference_op_struct): Remove unused op2.
9922         (vn_reference_op_eq): Do not compare op2.
9923         (vn_reference_op_compute_hash): Do not compute hash of op2.
9924         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
9925         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
9926         with vn_nary_op_compute_hash.
9927         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
9928         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
9929         vn_nary_op_lookup.
9930         (vn_unary_op_insert, vn_binary_op_insert): Replace with
9931         vn_nary_op_insert.
9932         (visit_unary_op): Call nary functions.
9933         (visit_binary_op): Likewise.
9934         (process_scc): Adjust for struct vn_tables_s changes.
9935         (allocate_vn_table): Likewise.
9936         (free_vn_table): Likewise.
9937         * tree-vn.c (vn_add): Call nary functions.
9938         (vn_lookup): Likewise.
9939
9940 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
9941
9942         PR target/35498
9943         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
9944         wdst back after sync_compare_and_swapqhi_internal.
9945
9946 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
9947
9948         PR target/22152
9949         * config/i386/i386-modes.def (V1DI): New vector mode.
9950         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
9951         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
9952         (MMXMODE248): Ditto.
9953         (MMXMODE): Add V1DI mode.
9954         (mmxvecsize): Change DI mode to V1DI mode.
9955         ("mov<mode>): Use MMXMODEI8 mode iterator.
9956         ("*mov<mode>_internal_rex64"): Ditto.
9957         ("*mov<mode>_internal"): Ditto.
9958         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
9959         ("mmx_sub<mode>3"): Ditto.
9960         ("mmx_adddi3"): Remove insn pattern.
9961         ("mmx_subdi3"): Ditto.
9962         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
9963         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
9964         ("mmx_ashl<mode>3"): Ditto.
9965         ("mmx_lshrdi3"): Remove insn pattern.
9966         ("mmx_ashldi3"): Ditto.
9967         * config/i386/i386.c (classify_argument): Handle V1DImode.
9968         (function_arg_advance_32): Ditto.
9969         (function_arg_32): Ditto.
9970         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
9971         mmx_addv1di3 insn pattern.
9972         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
9973         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
9974         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
9975         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
9976         Remove definitions of built-in functions.
9977         (V1DI_type_node): New node.
9978         (v1di_ftype_v1di_int): Ditto.
9979         (v1di_ftype_v1di_v1di): Ditto.
9980         (v2si_ftype_v2si_si): Ditto.
9981         (v4hi_ftype_v4hi_di): Remove node.
9982         (v2si_ftype_v2si_di): Ditto.
9983         (ix86_init_mmx_sse_builtins): Handle V1DImode.
9984         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
9985         Redefine builtins using def_builtin_const with *_ftype_*_int node.
9986         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
9987         Add new builtins using def_builtin_const.
9988         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
9989         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
9990         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
9991         * config/i386/mmintrin.h (__v1di): New typedef.
9992         (_mm_add_si64): Cast arguments to __v1di type.
9993         (_mm_sub_si64): Ditto.
9994         (_mm_sll_pi16): Cast __count to __v4hi type.
9995         (_mm_sll_pi32): Cast __count to __v2si type.
9996         (_mm_sll_si64): Cast arguments to __v1di type.
9997         (_mm_srl_pi16): Cast __count to __v4hi type.
9998         (_mm_srl_pi32): Cast __count to __v2si type.
9999         (_mm_srl_si64): Cast arguments to __v1di type.
10000         (_mm_sra_pi16): Cast __count to __v4hi type.
10001         (_mm_sra_pi32): Cast __count to __v2si type.
10002         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
10003         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
10004         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
10005         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
10006         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
10007         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
10008         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
10009         (_mm_srai_pi32): Use __builtin_ia32_psradi.
10010         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
10011         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
10012         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
10013         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
10014
10015 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
10016
10017         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
10018
10019 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
10020
10021         PR target/35373
10022         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
10023         reg+const addressing for Altivec modes.  Don't generate reg+reg
10024         addressing for TFmode or TDmode quantities.
10025
10026 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
10027
10028         * c-common.c (vector_types_convertible_p): Call langhook
10029         instead of comptypes.
10030
10031 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10032
10033         PR tree-opt/35402
10034         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
10035         integral and scalar float variables which have a
10036         NULL DECL_INITIAL.
10037
10038 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
10039
10040         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
10041         dwarf_register_span hook when emitting unwind information for
10042         register-to-memory saves.
10043         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
10044         (rs6000_frame_related): Remove call to spe_synthesize_frame.
10045
10046 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
10047
10048         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
10049         for the same VAR_DECL.
10050
10051 2008-03-06  Tom Tromey  <tromey@redhat.com>
10052
10053         * treelang: Delete.
10054         * doc/standards.texi (Standards): Don't mention treelang.
10055         * doc/invoke.texi (Overall Options): Don't mention treelang.
10056         * doc/install.texi (Prerequisites): Don't mention bison or
10057         treelang.
10058         (Configuration): Don't mention treelang.
10059         (Building): Likewise.
10060         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
10061
10062 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
10063
10064         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
10065         word-extractions out of a multi-word object.
10066
10067 2008-03-06  Richard Guenther  <rguenther@suse.de>
10068
10069         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
10070         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
10071         result type and precision.
10072         * expr.c (get_inner_reference): Set unsignedp based on the result
10073         type of BIT_FIELD_REF.
10074         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
10075         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
10076         (try_instantiate_multiple_fields): Likewise.  Use the correct type
10077         for BIT_FIELD_REF.
10078         (sra_build_assignment): Likewise.
10079         (sra_build_elt_assignment): Likewise.
10080         (sra_explode_bitfield_assignment): Likewise.
10081         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
10082         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
10083         set BIT_FIELD_REF_UNSIGNED.
10084         (vectorizable_load): Likewise.
10085
10086 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
10087
10088         * cse.c (cse_extended_basic_block): Invalidate artificial defs
10089         at bb start.
10090
10091 2008-03-06  Richard Guenther  <rguenther@suse.de>
10092
10093         * alias.c (struct alias_set_entry): Move has_zero_child field
10094         to pack with alias_set.
10095
10096 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
10097
10098         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10099         32bit host.
10100
10101 2008-03-05  Ian Lance Taylor  <iant@google.com>
10102
10103         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
10104
10105 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
10106
10107         * fwprop.c (update_df): Support width and offset parameters of
10108         df_ref_create.
10109         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
10110         global_conflicts): Change DF_REF_EXTRACT to either
10111         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10112         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10113         * df-scan.c (df_ref_record, df_defs_record,
10114         df_ref_create_structure, df_def_record_1, df_uses_record,
10115         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
10116         df_bb_refs_collect, df_entry_block_defs_collect,
10117         df_exit_block_uses_collect): Support new width and offset fields.
10118         (ref_extract_pool): New storage pool.
10119         (df_free_ref): New function.
10120         (df_reg_chain_unlink, df_free_collection_rec,
10121         df_sort_and_compress_refs): Call df_free_ref.
10122         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
10123         of df_ref_extract.
10124         (df_ref_create_structure): Allocate df_ref_extract if offset and
10125         width fields are used.
10126         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
10127         (df_uses_record): Get offset and width from ZERO_EXTRACT 
10128         and SIGN_EXTRACT.
10129         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
10130         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10131         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10132         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
10133         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10134         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10135         (df_ref_extract): New structure.
10136         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
10137         (df_ref_create): Add width and offset parameters.
10138         
10139 2008-03-05  Richard Guenther  <rguenther@suse.de>
10140
10141         * tree-ssa-structalias.c (get_constraint_for_component_ref):
10142         Use ranges_overlap_p.
10143         (offset_overlaps_with_access): Rename
10144         to ranges_overlap_p and move ...
10145         * tree-flow-inline.h (ranges_overlap_p): ... here.
10146
10147         * tree.h (get_inner_reference, handled_component_p): Update
10148         comments.
10149
10150         * tree.h (record_component_aliases, get_alias_set,
10151         alias_sets_conflict_p, alias_sets_must_conflict_p,
10152         objects_must_conflict_p): Move declarations ...
10153         * alias.h (record_component_aliases, get_alias_set,
10154         alias_sets_conflict_p, alias_sets_must_conflict_p,
10155         objects_must_conflict_p): ... here.
10156         Include coretypes.h.
10157         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
10158
10159 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
10160
10161         * cfg.c: Include tree-flow.h.
10162         (remove_edge_raw): Call redirect_edge_var_map_clear.
10163         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
10164         * tree-flow-inline.h (redirect_edge_var_map_def): New.
10165         (redirect_edge_var_map_result): New.
10166         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
10167         PENDING_STMT use with redirect_edge_var_map_*.
10168         * tree-ssa.c (edge_var_maps): New definition.
10169         (redirect_edge_var_map_add): New.
10170         (redirect_edge_var_map_clear): New.
10171         (redirect_edge_var_map_dup): New.
10172         (redirect_edge_var_map_vector): New.
10173         (redirect_edge_var_map_destroy): New.
10174         (ssa_redirect_edge): Replace PENDING_STMT use with
10175         redirect_edge_var_map_*.
10176         (flush_pending_stmts): Same.
10177         (delete_tree_ssa): Destroy edge var map.
10178         * tree-flow.h (struct _edge_var_map): New.
10179         Define edge_var_map vector type.
10180         Declare redirect_edge_var_map_* prototypes.
10181         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
10182         * tree-cfg.c (reinstall_phi_args): Replace
10183         PENDING_STMT use with redirect_edge_var_map_*.
10184
10185 2008-03-05  Richard Guenther  <rguenther@suse.de>
10186
10187         PR tree-optimization/35472
10188         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
10189         whose single use_stmt has a overlapping set of loaded and
10190         stored symbols as that use_stmt might be a noop assignment then.
10191
10192 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
10193
10194         * gthr-rtems.h: Implement __gthread_mutex_destroy.
10195
10196 2008-03-05  Richard Guenther  <rguenther@suse.de>
10197
10198         PR c++/35336
10199         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
10200         should be constants.
10201         * tree-cfg.c (verify_expr): Verify it.
10202         * fold-const.c (fold_truthop): Remove code generating
10203         BIT_FIELD_REFs of structure bases.
10204         (fold_binary): Likewise.
10205         (fold_ternary): Position and size of BIT_FIELD_REFs are
10206         always host integers.
10207         (make_bit_field_ref): Remove.
10208         (optimize_bit_field_compare): Remove.
10209         (all_ones_mask_p): Remove.
10210
10211 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
10212
10213         PR gcc/33009
10214         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
10215         (split_block_and_df_analyze): New. Split basic block and rebuild
10216         dataflow.
10217         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
10218         SPLIT_BLOCK.
10219         (split_pattern_seq): Likewise.
10220         (erase_matching_seqs): Likewise.
10221         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
10222
10223 2008-03-04  Geoff Keating  <geoffk@apple.com>
10224
10225         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
10226         declaration and code.
10227         (tree_invalid_nonnegative_warnv_p): Likewise.
10228
10229 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
10230
10231         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
10232         examples.  Truncate option-names then causing overfull hbox.
10233
10234 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10235
10236         PR target/35222
10237         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
10238         on hpux10.
10239         * configure: Rebuilt.
10240
10241 2008-03-04  Rafael Espindola  <espindola@google.com>
10242
10243         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
10244         (tree_unary_nonnegative_warnv_p): New.
10245         (tree_binary_nonnegative_warnv_p): New.
10246         (tree_single_nonnegative_warnv_p): New.
10247         (tree_invalid_nonnegative_warnv_p): New.
10248         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
10249
10250 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10251
10252         PR 28322
10253         * opts.c (handle_option): Postpone 'unknown option' errors only for
10254         warning options.
10255
10256 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
10257
10258         PR target/35453
10259         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
10260         (_SIDD_XXX): This.
10261
10262 2008-03-04  Rafael Espindola  <espindola@google.com>
10263
10264         * fold-const.c (tree_unary_nonzero_warnv_p): New.
10265         (tree_binary_nonzero_warnv_p): New.
10266         (tree_single_nonzero_warnv_p): New.
10267         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
10268
10269 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
10270
10271         PR middle-end/35456
10272         * fold-const.c (fold_cond_expr_with_comparison): Prevent
10273         transformations for modes that have signed zeros.
10274         * ifcvt.c (noce_try_abs): Ditto.
10275
10276 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
10277
10278         * config/i386/i386.c (override_options): Force
10279         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
10280
10281 2008-03-04  Jan Hubicka  <jh@suse.cz>
10282
10283         PR c++/35262
10284         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
10285         in last commit.
10286
10287 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10288
10289         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
10290         label to probe the stack.
10291
10292 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10293
10294         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
10295         (__gthr_win32_mutex_destroy): Declare.
10296         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
10297         __gthr_win32_mutex_destroy.
10298         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
10299
10300 2008-03-03  Jan Hubicka  <jh@suse.cz>
10301
10302         PR c++/35262
10303         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
10304         aggressive on inlining cold calls.
10305
10306 2008-03-03  Richard Guenther  <rguenther@suse.de>
10307
10308         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
10309         struct copies into the expression table.
10310         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
10311         (try_to_simplify): Likewise.
10312         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
10313         integral and pointer arguments which do not change the
10314         precision to NOP_EXPRs.
10315         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
10316         VIEW_CONVERT_EXPR case.
10317
10318 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
10319
10320         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
10321         defined in a loop at depth 0 is invariant.
10322         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
10323         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
10324         be called at loop depth 0.
10325
10326 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
10327
10328         PR driver/35420
10329         * gcc.c (process_command): Update copyright notice dates.
10330         * gcov.c (print_version): Likewise.
10331         * gcov-dump.c (print_version): Likewise.
10332         * mips-tfile.c (main): Likewise.
10333         * mips-tdump.c (main): Likewise.
10334
10335 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10336
10337         PR 24924
10338         * c-common.c (flag_permissive): Delete.
10339         (constant_expression_warnings): Check flags first.
10340         (constant_expression_error): New.
10341         * c-common.h (flag_permissive): Delete.
10342         (constant_expression_error): Declare.
10343         * flags.h (flag_permissive): Declare. Update description.
10344         * diagnostic.c (pedwarn): Update.
10345         (permerror): New.
10346         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
10347         (permissive_error_kind): New.
10348         * toplev.c (flag_permissive): Define. Update description.
10349         * toplev.h (permissive_error_kind): Declare.
10350         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
10351         (pedwarn_c90): Use pedantic_warning_kind.
10352         * c-opts.c (c_common_post_options): flag_permissive does not affect
10353         flag_pedantic_errors.
10354
10355 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
10356
10357         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
10358         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
10359         __absvsi2, __absvDI2): Use unsigned arithmetic.
10360
10361 2008-03-02  Andi Kleen  <ak@suse.de>
10362             Richard Guenther  <rguenther@suse.de>
10363
10364         * struct-equiv.c: Remove file.
10365         * cfg_cleanup.c (condjump_equiv_p): Remove.
10366         * Makefile.in (OBJS-common): Remove struct-equiv.o.
10367         (struct-equiv.o): Remove rule.
10368         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
10369         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
10370         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
10371
10372 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10373
10374         * ifcvt.c (noce_process_if_block): Try to handle only the then
10375         block if the else block exists but isn't suitable.
10376
10377 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
10378
10379         PR gcc/35063
10380         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
10381         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
10382         regression from previous patch.
10383
10384 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
10385
10386         PR gcc/35063
10387         * gthr.h: Add __gthread_mutex_destroy as a function that must be
10388         implemented.
10389         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
10390         * gthr-single.h (__gthread_mutex_destroy): Likewise.
10391         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
10392         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
10393         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
10394         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
10395         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
10396         (__gthread_mutex_destroy_function): Rename to
10397         __gthread_mutex_destroy.
10398         * gthr-dce.h (__gthread_mutex_destroy): Call
10399         pthread_mutex_destroy.
10400         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
10401         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
10402         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
10403
10404 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10405
10406         * df-scan.c (df_ref_chain_change_bb): Simplify.
10407         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
10408         set_block_for_insn if there's any change.
10409         * df.h ((df_insn_change_bb): Fix prototype.
10410         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
10411         df_insn_change_bb, don't call set_block_for_insn.
10412         * emit-rtl.c (reorder_insns): Likewise.
10413         * haifa-sched.c (move_insn): Likewise.
10414
10415 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10416
10417         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
10418
10419 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10420
10421         * tree-flow-inline.h (next_readonly_imm_use): Return
10422         NULL_USE_OPERAND_P after the end.
10423
10424 2008-03-01  Richard Guenther  <rguenther@suse.de>
10425
10426         PR tree-optimization/35411
10427         * tree-sra.c (sra_build_assignment): Split conversion to
10428         final type to a separate statement if we are not assigning
10429         to a register.
10430
10431 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10432
10433         * fold-const.c (fold_convertible_p): Correct the logic to follow
10434         that in fold_convert().
10435
10436 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
10437
10438         PR c++/35315
10439         * tree-inline.c (build_duplicate_type): When we make a
10440         duplicate type, make it unique in the canonical types system.
10441
10442 2008-02-29  Tom Tromey  <tromey@redhat.com>
10443
10444         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
10445         input_file_stack_history, input_file_stack_restored): Remove.
10446         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10447         * input.h (struct file_stack): Remove.
10448         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10449         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
10450         Likewise.
10451         * diagnostic.h (struct diagnostic_context) <last_module>: Change
10452         type.
10453         (diagnostic_last_module_changed): Add 'map' argument.
10454         (diagnostic_set_last_function): Likewise.
10455         * diagnostic.c (undiagnostic_report_current_module): Iterate using
10456         line map, not input_file_stack.
10457         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
10458
10459 2008-02-29  Paul Brook  <paul@codesourcery.com>
10460
10461         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
10462
10463 2008-02-29  Paul Brook  <paul@codesourcery.com>
10464
10465         * config/arm/ieee754-df.S (muldf3): Use RET macros.
10466
10467 2008-02-29  Richard Guenther  <rguenther@suse.de>
10468
10469         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
10470         vn_lookup_or_add.
10471         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
10472         value for comparing for a store match.
10473         (simplify_unary_expression): Do nothing for SSA_NAMEs.
10474         (try_to_simplify): Do not do a full-blown reference lookup.
10475
10476 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10477
10478         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
10479         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
10480
10481         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
10482
10483 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
10484
10485         * tree-loop-linear.c (try_interchange_loops): Compare memory access
10486         strides against cache sizes.
10487
10488 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10489
10490         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
10491         constant to fpul.
10492
10493 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
10494
10495         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
10496         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
10497         is smaller than the original promoted value.
10498         (simplify_subreg): If OP is a SUBREG, try to preserve its
10499         SUBREG_PROMOTED_VAR_P information.
10500
10501 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
10502
10503         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
10504         (VN_INFO_GET): Allocate new objects on the obstack.
10505         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
10506         for rpo_numbers_temp, for consistency.
10507         (free_scc_vn): Free the obstack.
10508
10509 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
10510
10511         * doc/invoke.texi: Document -ftree-loop-distribution.
10512         * tree-loop-distribution.c: New.
10513         * tree-pass.h (pass_loop_distribution): New.
10514         * graphds.h (struct graph): Add htab_t indices.
10515         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
10516         * tree-vectorizer.c (rename_variables_in_loop): Extern.
10517         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
10518         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
10519         * tree-data-ref.c (debug_data_dependence_relations): New.
10520         (dump_data_dependence_relation): Also print data references.
10521         (free_data_ref): Extern.
10522         (same_access_functions): Moved...
10523         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
10524         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10525         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
10526         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
10527         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
10528         (stmts_from_loop): Skip LABEL_EXPR.
10529         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
10530         New.
10531         (build_rdg): Initialize rdg->indices htab.
10532         (free_rdg, stores_from_loop, ref_base_address,
10533         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
10534         have_similar_memory_accesses_1, ref_base_address_1,
10535         remove_similar_memory_refs): New.
10536         * tree-data-ref.h: Depend on tree-chrec.h.
10537         (debug_data_dependence_relations, free_data_ref): Declared.
10538         (same_access_functions): ... here.
10539         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
10540         New.
10541         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
10542         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
10543         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
10544         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10545         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
10546         rdg_vertex_for_stmt): Declared.
10547         (struct rdg_edge): Add level.
10548         (RDGE_LEVEL): New.
10549         (free_rdg, stores_from_loop, remove_similar_memory_refs,
10550         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
10551         Declared.
10552         (rdg_has_similar_memory_accesses): New.
10553         * tree-vect-analyze.c: Remove unused static decls.
10554         * lambda.h (dependence_level): New.
10555         * common.opt (ftree-loop-distribution): New.
10556         * tree-flow.h (mark_virtual_ops_in_bb, 
10557         slpeel_tree_duplicate_loop_to_edge_cfg,
10558         rename_variables_in_loop): Declared.
10559         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
10560         (OBJS-common): Add tree-loop-distribution.o.
10561         (tree-loop-distribution.o): New rule.
10562         * tree-cfg.c (mark_virtual_ops_in_bb): New.
10563         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
10564         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
10565
10566 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
10567
10568         PR target/33963
10569         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
10570         other than structures and unions.
10571
10572 2008-02-28  Richard Guenther  <rguenther@suse.de>
10573
10574         Revert:
10575         2008-02-26  Richard Guenther  <rguenther@suse.de>
10576
10577         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10578         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10579         (lookup_decl_from_uid): Declare.
10580         (remove_decl_from_map): Likewise.
10581         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10582         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10583         (decl_for_uid_map): New global hashtable mapping DECL_UID
10584         to the decl tree.
10585         (init_ttree): Allocate it.
10586         (insert_decl_to_uid_decl_map): New helper function.
10587         (make_node_stat): Insert new decls into the map.
10588         (copy_node_stat): Likewise.
10589         (lookup_decl_from_uid): New function.
10590         (remove_decl_from_map): Likewise.
10591         (print_decl_for_uid_map_statistics): New helper.
10592         (dump_tree_statistics): Call it.
10593
10594         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10595         (referenced_var_iterator): Adjust.
10596         (FOR_EACH_REFERENCED_VAR): Adjust.
10597         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10598         (num_referenced_vars): Adjust.
10599         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10600         (first_referenced_var): Remove.
10601         (end_referenced_vars_p): Likewise.
10602         (next_referenced_var): Likewise.
10603         (referenced_var_iterator_set): New helper function.
10604         * tree-dfa.c (referenced_var_lookup): Adjust.
10605         (referenced_var_check_and_insert): Likewise.
10606         (remove_referenced_var): Likewise.
10607         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10608         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10609         (verify_call_clobbering): Likewise.
10610         (verify_memory_partitions): Likewise.
10611         (init_tree_ssa): Allocate bitmap instead of hashtable for
10612         referenced_vars.
10613         (delete_tree_ssa): Adjust.
10614         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10615         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10616         (compute_tag_properties): Likewise.
10617         (set_initial_properties): Likewise.
10618         (find_partition_for): Likewise.
10619         (update_reference_counts): Likewise.
10620         (dump_may_aliases_for): Likewise.
10621         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10622         (add_call_clobber_ops): Likewise.
10623         (add_call_read_ops): Likewise.
10624         (get_asm_expr_operands): Likewise.
10625         * tree-into-ssa.c (dump_decl_set): Likewise.
10626         (update_ssa): Likewise.
10627         * tree-sra.c (scan_function): Likewise.
10628         (decide_instantiations): Likewise.
10629         (scalarize_parms): Likewise.
10630         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10631         (dsa_named_for): Likewise.
10632         * tree-ssa-structalias.c (update_alias_info): Likewise.
10633         (merge_smts_into): Likewise.
10634
10635 2008-02-27  David Daney  <ddaney@avtrex.com>
10636
10637         PR target/34409
10638         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
10639         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
10640         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
10641         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
10642         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
10643
10644 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
10645
10646         PR target/25477
10647         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
10648         (BUILT_IN_NEXTTOWARD): Remove.
10649         (BUILT_IN_NEXTTOWARDF): Ditto.
10650         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
10651         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
10652
10653 2008-02-27  Tom Tromey  <tromey@redhat.com>
10654
10655         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
10656         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
10657
10658 2008-02-27  Jan Beulich  <jbeulich@novell.com>
10659
10660         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
10661         update the respective field on newdecl.
10662
10663 2008-02-27  Revital Eres  <eres@il.ibm.com>
10664
10665         PR rtl-optimization/34999
10666         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
10667         crossing edges that ends with a call insn.
10668         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
10669         call insn and clear the EDGE_CROSSING flag of the crossing edge
10670         when fixing fallthru edges.
10671
10672 2008-02-27  Richard Guenther  <rguenther@suse.de>
10673
10674         PR middle-end/35390
10675         * fold-const.c (fold_unary): Return the correct argument,
10676         converted to the result type.
10677
10678 2008-02-27  Richard Guenther  <rguenther@suse.de>
10679
10680         PR middle-end/34971
10681         * expr.c (expand_expr_real_1): Assert on rotates that operate
10682         on partial modes.
10683         * fold-const.c (fold_binary): Use the types precision, not the
10684         bitsize of the mode if folding rotate expressions.  Build rotates
10685         only for full modes.
10686
10687 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
10688
10689         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
10690         and CPP_PRAGMA_EOL.
10691         * c-pragma.c (pragma_ns_name): New typedef.
10692         (registered_pp_pragmas): New variable.
10693         (c_pp_lookup_pragma): New function.
10694         (c_register_pragma_1): If flag_preprocess_only, do nothing
10695         for non-expanded pragmas, for expanded ones push pragma's
10696         namespace and name into registered_pp_pragmas vector.
10697         (c_invoke_pragma_handler): Register OpenMP pragmas even when
10698         flag_preprocess_only, don't register GCC pch_preprocess
10699         pragma if flag_preprocess_only.
10700         * c-opts.c (c_common_init): Call init_pragma even if
10701         flag_preprocess_only.
10702         * c-pragma.c (c_pp_lookup_pragma): New prototype.
10703         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
10704         cpp_register_pragma if flag_preprocess_only.
10705
10706 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10707
10708         PR c/28800
10709         * c-parser.c (c_parser_translation_unit): Warn for empty
10710         translation unit, not empty source file.
10711
10712 2008-02-26  Paul Brook  <paul@codesourcery.com>
10713
10714         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
10715         operand for Thumb-2.
10716         * config/arm/arm.h (reg_class): Add CORE_REGS.
10717         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
10718         (BASE_REG_CLASS): Use CORE_REGS.
10719         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
10720         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
10721         (REGNO_OK_FOR_INDEX_P): Exclude SP.
10722         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
10723         ARM_REGNO_OK_FOR_INDEX_P.
10724         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
10725         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
10726         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
10727         (ldm/stm peepholes): Ditto.
10728         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
10729         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
10730         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
10731         * config/arm/constraints.md: Enable "k" constraint on ARM.
10732
10733 2008-02-27  Ben Elliston  <bje@au.ibm.com>
10734
10735         * config/rs6000/rs6000.c: Annotate cache line size field in all
10736         instances of struct processor_costs.
10737
10738 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
10739
10740         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
10741         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
10742         jump_bypass): New counters.
10743         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
10744         * dce.c (gate_ud_dce): Same.
10745         (gate_fast_dce): Same.
10746         * dse.c (gate_dse1): New function.
10747         (gate_dse2): New function.
10748         (gate_dse): Merge results of new gate functions.
10749         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
10750         (gate_handle_jump_bypass): Add dbg_cnt.
10751         (gate_handle_gcse): Add dbg_cnt.
10752         * ifcvt.c (gate_handle_if_conversion): Same.
10753         (gate_handle_if_after_combine): Same.
10754         (gate_handle_if_after_reload): Same.
10755         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
10756
10757 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
10758
10759         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
10760         line sizes.
10761         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
10762
10763 2008-02-26  Jason Merrill  <jason@redhat.com>
10764
10765         PR c++/35315
10766         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
10767         alone if it's the naming decl for the type's main variant.
10768
10769 2008-02-26  Tom Tromey  <tromey@redhat.com>
10770
10771         * system.h (USE_MAPPED_LOCATION): Poison.
10772         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
10773         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
10774         (make_goto_expr_edges): Likewise.
10775         (remove_bb): Likewise.
10776         (execute_warn_function_return): Likewise.
10777         * basic-block.h (struct edge_def) <goto_locus>: Change type to
10778         location_t.
10779         * c-common.c (fname_decl): Remove old location code.
10780         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
10781         location code.
10782         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
10783         variant.
10784         (ASM_INPUT_SOURCE_LOCATION): Likewise.
10785         (gen_rtx_ASM_INPUT): Likewise.
10786         (gen_rtx_ASM_INPUT_loc): Likewise.
10787         (get_rtx_asm_OPERANDS): Remove.
10788         * cfglayout.c (insn_locators_alloc): Remove old location code.
10789         (set_curr_insn_source_location): Likewise.
10790         (curr_insn_locator): Likewise.
10791         * print-tree.c (print_node): Remove old location code.
10792         * tree-mudflap.c (mf_varname_tree): Remove old location code.
10793         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
10794         * cfgexpand.c (expand_gimple_cond_expr): Don't use
10795         location_from_locus.
10796         (construct_exit_block): Remove old location code.
10797         * emit-rtl.c (force_next_line_note): Remove old location code.
10798         * profile.c (branch_prob): Remove old location code.
10799         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
10800         LOC_LINE): Remove old-location variants.
10801         * langhooks.c (lhd_print_error_function): Remove old location
10802         code.
10803         * configure, config.in: Rebuilt.
10804         * configure.ac (--enable-mapped-location): Remove.
10805         * c-decl.c (c_init_decl_processing): Remove old location code.
10806         (finish_function): Likewise.
10807         * recog.c (decode_asm_operands): Remove old location code.
10808         * c-pch.c (c_common_read_pch): Remove old location code.
10809         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
10810         variants.
10811         * gimple-low.c (lower_function_body): Remove old location code.
10812         * toplev.c (unknown_location): Remove.
10813         (push_srcloc): Remove old-location variant.
10814         (process_options): Remove old location code.
10815         (lang_dependent_init): Likewise.
10816         * input.h (UNKNOWN_LOCATION): Move definition.
10817         (location_t): Undeprecate.
10818         (source_locus): Remove.
10819         (location_from_locus): Remove.
10820         (struct location_s): Remove.
10821         Remove all old-location code.
10822         (input_line, input_filename): Remove.
10823         * final.c (final_scan_insn): Remove old location code.
10824         * diagnostic.c (diagnostic_build_prefix): Remove
10825         USE_MAPPED_LOCATION test.
10826         * tree.h (gimple_stmt) <locus>: Now a location_t.
10827         (tree_exp) <locus>: Likewise.
10828         (DECL_IS_BUILTIN): Remove old-location variant.
10829         (annotate_with_file_line, annotate_with_locus): Likewise.
10830         (expr_locus, set_expr_locus): Update.
10831         * tree.c (build1_stat): Remove old location code.
10832         (last_annotated_node): Remove.
10833         (annotate_with_file_line): Remove old-location variant.
10834         (annotate_with_locus): Likewise.
10835         (expr_location): Remove old location code.
10836         (set_expr_location): Likewise.
10837         (expr_has_location): Likewise.
10838         (expr_locus): Likewise.
10839         (set_expr_locus): Likewise.
10840         (expr_filename): Don't use location_from_locus.
10841         (expr_lineno): Likewise.
10842         * rtl-error.c (location_for_asm): Remove old location code.
10843         * c-lex.c (cb_line_change): Remove old location code.
10844         (fe_file_change): Likewise.
10845         (cb_def_pragma): Likewise.
10846         (c_lex_with_flags): Likewise.
10847         * gengtype.c (do_typedef): Don't special-case location types.
10848         (define_location_structures): Remove.
10849         (main): Don't call define_location_structures.
10850         * tree-pretty-print.c (dump_implicit_edges): Remove old location
10851         code.
10852
10853 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10854
10855         PR 26264
10856         * builtins.def (BUILT_IN_STDARG_START): Remove.
10857         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
10858         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10859         * tree-inline.c (inline_forbidden_p_1): Likewise.
10860         
10861 2008-02-26  Richard Guenther  <rguenther@suse.de>
10862
10863         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10864         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10865         (lookup_decl_from_uid): Declare.
10866         (remove_decl_from_map): Likewise.
10867         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10868         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10869         (decl_for_uid_map): New global hashtable mapping DECL_UID
10870         to the decl tree.
10871         (init_ttree): Allocate it.
10872         (insert_decl_to_uid_decl_map): New helper function.
10873         (make_node_stat): Insert new decls into the map.
10874         (copy_node_stat): Likewise.
10875         (lookup_decl_from_uid): New function.
10876         (remove_decl_from_map): Likewise.
10877         (print_decl_for_uid_map_statistics): New helper.
10878         (dump_tree_statistics): Call it.
10879
10880         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10881         (referenced_var_iterator): Adjust.
10882         (FOR_EACH_REFERENCED_VAR): Adjust.
10883         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10884         (num_referenced_vars): Adjust.
10885         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10886         (first_referenced_var): Remove.
10887         (end_referenced_vars_p): Likewise.
10888         (next_referenced_var): Likewise.
10889         (referenced_var_iterator_set): New helper function.
10890         * tree-dfa.c (referenced_var_lookup): Adjust.
10891         (referenced_var_check_and_insert): Likewise.
10892         (remove_referenced_var): Likewise.
10893         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10894         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10895         (verify_call_clobbering): Likewise.
10896         (verify_memory_partitions): Likewise.
10897         (init_tree_ssa): Allocate bitmap instead of hashtable for
10898         referenced_vars.
10899         (delete_tree_ssa): Adjust.
10900         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10901         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10902         (compute_tag_properties): Likewise.
10903         (set_initial_properties): Likewise.
10904         (find_partition_for): Likewise.
10905         (update_reference_counts): Likewise.
10906         (dump_may_aliases_for): Likewise.
10907         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10908         (add_call_clobber_ops): Likewise.
10909         (add_call_read_ops): Likewise.
10910         (get_asm_expr_operands): Likewise.
10911         * tree-into-ssa.c (dump_decl_set): Likewise.
10912         (update_ssa): Likewise.
10913         * tree-sra.c (scan_function): Likewise.
10914         (decide_instantiations): Likewise.
10915         (scalarize_parms): Likewise.
10916         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10917         (dsa_named_for): Likewise.
10918         * tree-ssa-structalias.c (update_alias_info): Likewise.
10919         (merge_smts_into): Likewise.
10920
10921 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10922
10923         PR 34351
10924         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
10925         * c-opts.c (c_common_handle_option): Wall enables
10926         Wvolatile-register-var.
10927         * common.opt: Move Wvolatile-register-var to...
10928         * c.opt: ...here.
10929         
10930 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10931
10932         * common.opt (Wlarger-than=): New.
10933         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
10934         -Wlarger-than=.
10935         * opts.c (common_handle_option): Handle -Wlarger-than=.
10936         * optc-gen.awk: Likewise.
10937         * opth-gen.awk: Likewise.
10938         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
10939         * tree-optimize.c (tree_rest_of_compilation): Likewise.
10940         
10941 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10942
10943         * c-common.c (match_case_to_enum_1): Add appropriate
10944         OPT_W* parameter to warning.
10945         (c_do_switch_warnings): Likewise.
10946         * c-typeck.c (warning_init): Add one more parameter following
10947         'warning' function.
10948         (push_init_level): Update call to warning_init.
10949         (pop_init_level): Likewise.
10950         (add_pending_init): Likewise.
10951         (output_init_element: Likewise.
10952
10953 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10954
10955         PR 28322
10956         * toplev.c (toplev_main): If there are warnings or error, print
10957         errors for ignored options.
10958         * opts.c (ignored_options): New static variable.
10959         (postpone_unknown_option_error): New.
10960         (print_ignored_options): New.
10961         (handle_option): Postpone errors for unknown -Wno-* options.
10962         * opts.h (print_ignored_options): Declare.
10963         
10964 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
10965
10966         * config/mips/mips.md (loadgp_blockage, blockage): Change type
10967         to "ghost".
10968
10969 2008-02-25  Richard Guenther  <rguenther@suse.de>
10970
10971         Revert:
10972         2008-02-25  Richard Guenther  <rguenther@suse.de>
10973
10974         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10975         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10976         (lookup_decl_from_uid): Declare.
10977         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10978         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10979         (decl_for_uid_map): New global hashtable mapping DECL_UID
10980         to the decl tree.
10981         (init_ttree): Allocate it.
10982         (insert_decl_to_uid_decl_map): New helper function.
10983         (make_node_stat): Insert new decls into the map.
10984         (copy_node_stat): Likewise.
10985         (lookup_decl_from_uid): New function.
10986         (print_decl_for_uid_map_statistics): New helper.
10987         (dump_tree_statistics): Call it.
10988
10989         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10990         (referenced_var_iterator): Adjust.
10991         (FOR_EACH_REFERENCED_VAR): Adjust.
10992         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10993         (num_referenced_vars): Adjust.
10994         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10995         (first_referenced_var): Remove.
10996         (end_referenced_vars_p): Likewise.
10997         (next_referenced_var): Likewise.
10998         (referenced_var_iterator_set): New helper function.
10999         * tree-dfa.c (referenced_var_lookup): Adjust.
11000         (referenced_var_check_and_insert): Likewise.
11001         (remove_referenced_var): Likewise.
11002         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11003         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11004         (verify_call_clobbering): Likewise.
11005         (verify_memory_partitions): Likewise.
11006         (init_tree_ssa): Allocate bitmap instead of hashtable for
11007         referenced_vars.
11008         (delete_tree_ssa): Adjust.
11009         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11010         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11011         (compute_tag_properties): Likewise.
11012         (set_initial_properties): Likewise.
11013         (find_partition_for): Likewise.
11014         (update_reference_counts): Likewise.
11015         (dump_may_aliases_for): Likewise.
11016         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11017         (add_call_clobber_ops): Likewise.
11018         (add_call_read_ops): Likewise.
11019         (get_asm_expr_operands): Likewise.
11020         * tree-into-ssa.c (dump_decl_set): Likewise.
11021         (update_ssa): Likewise.
11022         * tree-sra.c (scan_function): Likewise.
11023         (decide_instantiations): Likewise.
11024         (scalarize_parms): Likewise.
11025         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11026         (dsa_named_for): Likewise.
11027         * tree-ssa-structalias.c (update_alias_info): Likewise.
11028         (merge_smts_into): Likewise.
11029
11030 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
11031
11032         PR fortran/29549
11033         * doc/invoke.texi (-fcx-limited-range): Document new option.
11034         * toplev.c (process_options): Handle -fcx-fortran-rules.
11035         * common.opt: Add documentation for -fcx-fortran-rules.
11036
11037 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
11038
11039         PR c/35162
11040         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
11041         actual behaviour and C99.
11042         
11043 2008-02-26  Ben Elliston  <bje@au.ibm.com>
11044
11045         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
11046         (ASM_CPU_POWER6_SPEC): Likewise.
11047         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
11048         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
11049         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
11050
11051 2008-02-25  Richard Guenther  <rguenther@suse.de>
11052
11053         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11054         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11055         (lookup_decl_from_uid): Declare.
11056         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11057         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11058         (decl_for_uid_map): New global hashtable mapping DECL_UID
11059         to the decl tree.
11060         (init_ttree): Allocate it.
11061         (insert_decl_to_uid_decl_map): New helper function.
11062         (make_node_stat): Insert new decls into the map.
11063         (copy_node_stat): Likewise.
11064         (lookup_decl_from_uid): New function.
11065         (print_decl_for_uid_map_statistics): New helper.
11066         (dump_tree_statistics): Call it.
11067
11068         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11069         (referenced_var_iterator): Adjust.
11070         (FOR_EACH_REFERENCED_VAR): Adjust.
11071         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11072         (num_referenced_vars): Adjust.
11073         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11074         (first_referenced_var): Remove.
11075         (end_referenced_vars_p): Likewise.
11076         (next_referenced_var): Likewise.
11077         (referenced_var_iterator_set): New helper function.
11078         * tree-dfa.c (referenced_var_lookup): Adjust.
11079         (referenced_var_check_and_insert): Likewise.
11080         (remove_referenced_var): Likewise.
11081         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11082         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11083         (verify_call_clobbering): Likewise.
11084         (verify_memory_partitions): Likewise.
11085         (init_tree_ssa): Allocate bitmap instead of hashtable for
11086         referenced_vars.
11087         (delete_tree_ssa): Adjust.
11088         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11089         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11090         (compute_tag_properties): Likewise.
11091         (set_initial_properties): Likewise.
11092         (find_partition_for): Likewise.
11093         (update_reference_counts): Likewise.
11094         (dump_may_aliases_for): Likewise.
11095         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11096         (add_call_clobber_ops): Likewise.
11097         (add_call_read_ops): Likewise.
11098         (get_asm_expr_operands): Likewise.
11099         * tree-into-ssa.c (dump_decl_set): Likewise.
11100         (update_ssa): Likewise.
11101         * tree-sra.c (scan_function): Likewise.
11102         (decide_instantiations): Likewise.
11103         (scalarize_parms): Likewise.
11104         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11105         (dsa_named_for): Likewise.
11106         * tree-ssa-structalias.c (update_alias_info): Likewise.
11107         (merge_smts_into): Likewise.
11108
11109 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
11110
11111         PR target/35258
11112         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
11113         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
11114         * alias.h (nonoverlapping_memrefs_p): Likewise.
11115
11116 2008-02-25  Jan Beulich  <jbeulich@novell.com>
11117
11118         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
11119         * config/i386/netware-libgcc.exp: Add __bswap?i2,
11120         __emultls_get_address, __emultls_register_common,
11121         __floatundi?f, and _Unwind_GetIPInfo.
11122         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
11123         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
11124         (gen_regparm_prefix): Likewise.
11125         (i386_nlm_encode_section_info): Sync with
11126         config/i386/winnt.c:i386_pe_encode_section_info().
11127         (i386_nlm_maybe_mangle_decl_assembler_name): New.
11128         i386_nlm_mangle_decl_assembler_name): New.
11129         (netware_override_options): New.
11130         * config/i386/netware.h (netware_override_options): Declare.
11131         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
11132         (i386_nlm_mangle_decl_assembler_name): Declare.
11133         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
11134
11135 2008-02-25  Ben Elliston  <bje@au.ibm.com>
11136
11137         PR other/32948
11138         * c-decl.c (grokdeclarator): Remove unused local variables
11139         `typedef_type' and `type_as_written'.
11140         * bb-reorder.c
11141         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
11142         unused local variable `has_hot_blocks'.
11143         (fix_crossing_conditional_branches): Remove unused local variable
11144         `prev_bb'.
11145         
11146 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
11147
11148         PR middle-end/19984
11149         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
11150         using DEF_C99_BUILTIN.
11151         (BUILT_IN_NANF): Ditto.
11152         (BUILT_IN_NANL): Ditto.
11153
11154 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
11155             Revital Eres  <eres@il.ibm.com>
11156
11157         * modulo-sched.c (calculate_must_precede_follow): Address TODO
11158         regarding the order of two dependent insns in the same row.
11159
11160 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
11161
11162         * stor-layout.c (layout_decl): Do not bump the alignment of a
11163         bit-field to more than byte alignment if it is packed.
11164
11165 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
11166
11167         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
11168         e300c2 and e300c3.
11169
11170 2008-02-24  Diego Novillo  <dnovillo@google.com>
11171
11172         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
11173
11174         PR 33738
11175         * tree-vrp.c (vrp_evaluate_conditional): With
11176         -Wtype-limits, emit a warning when comparing against a
11177         constant outside the natural range of OP0's type.
11178         * c.opt (Wtype-limits): Move ...
11179         * common.opt (Wtype-limits): ... here.
11180
11181 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
11182
11183         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
11184         * config/rs6000/e300c2c3.md: New file.
11185         * config/rs6000/rs6000.c (processor_costs): Add new costs for
11186         e300c2 and e300c3.
11187         (rs6000_override_options): Add e300c2 and e300c3 cases to
11188         processor_target_table. Do not allow usage of Altivec or Spe
11189         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
11190         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
11191         * config/rs6000/rs6000.h (processor_type): Add
11192         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
11193         (ASM_CPU_SPEC): Add e300c2 and e300c3.
11194         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
11195         and ppce300c3. Include e300c2c3.md.
11196
11197 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
11198
11199         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
11200         instead of TARGET_STRICT_ALIGN.
11201
11202 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
11203
11204         * explow.c (memory_address): Assert that the generated address is
11205         valid.
11206
11207 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
11208
11209         PR target/25477
11210         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
11211         * config/darwin-ppc-ldouble-patch.def: New file.
11212         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
11213         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
11214         SUBTARGET_INIT_BUILTINS if defined.
11215         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
11216         New functions.
11217
11218 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11219
11220         PR rtl-opt/33512
11221         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
11222         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
11223
11224 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11225
11226         PR pch/35027
11227         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
11228         file" warning condtional on -Winvalid-PCH.
11229
11230 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
11231
11232         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
11233
11234 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
11235
11236         PR target/22076
11237         PR target/34256 
11238         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
11239         prevent reload from using MMX registers.
11240         (*mov<mode>_internal): Ditto.
11241         (*movv2sf_internal_rex64): Ditto.
11242         (*movv2sf_internal): Ditto.
11243
11244 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11245
11246         PR documentation/31569
11247         * doc/install.texi2html: Use makeinfo --no-number-sections.
11248
11249 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11250
11251         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
11252         ensure that we can address an entire entity > 8 bytes.  Don't
11253         generate reg+reg addressing for such data.
11254
11255 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11256
11257         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
11258         strings when optimizing for size, unless the target cares about
11259         alignment.
11260
11261 2008-02-22  Tom Tromey  <tromey@redhat.com>
11262
11263         * regclass.c (current_pass): Remove declaration.
11264
11265 2008-02-22  Anatoly Sokolov <aesok@post.ru>
11266
11267         * config/avr/libgcc.S (__RAMPZ__): Define.
11268         (__do_copy_data): Add for devices with 128KB code memory.
11269
11270 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11271
11272         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
11273         Use spe_abi.
11274         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
11275
11276 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
11277
11278         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
11279         GENNONACR_REGS.
11280
11281 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11282
11283         PR c/19999
11284         * c-typeck.c (build_binary_op): Warn about floating point
11285         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
11286
11287 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
11288
11289         PR target/34526
11290         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
11291         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
11292         add vrsave.
11293         (rs6000_override_options): Set altivec_abi as default, not override,
11294         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
11295         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
11296         is used; use new member spe_abi.
11297         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
11298         spe_abi and altivec_abi.
11299
11300 2008-02-22  Tomas Bily  <tbily@suse.cz>
11301
11302         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
11303
11304 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11305
11306         PR bootstrap/35273
11307         * config.build (build_file_translate): Set to `CMD //c' only if
11308         it works.
11309         * Makefile.in (build_file_translate): Improve comment.
11310
11311 2008-02-21  Jan Hubicka  <jh@suse.cz>
11312
11313         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
11314         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
11315         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
11316
11317 2008-02-21  Michael Matz  <matz@suse.de>
11318
11319         PR target/35264
11320         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
11321
11322 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
11323
11324         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
11325         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
11326         as insn constraint.
11327         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
11328         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
11329         SSE_VEC_FLOAT_MODE_P as insn constraint.
11330         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
11331         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
11332         sse4a_movntdf using MODEF mode iterator.
11333         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
11334         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
11335         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
11336         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
11337         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
11338         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
11339         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
11340
11341 2008-02-21  Richard Guenther  <rguenther@suse.de>
11342
11343         * tree.def (PAREN_EXPR): New tree code.
11344         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
11345         and PAREN_EXPR.
11346         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
11347         * expr.c (expand_expr_real_1): Likewise.
11348         * tree-inline.c (estimate_num_insns_1): Likewise.
11349         * tree-complex.c (expand_complex_move): Likewise.
11350         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
11351         as plain x.
11352
11353 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11354
11355         PR target/35225
11356         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
11357
11358 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11359
11360         PR target/35190
11361         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
11362
11363         * config/sh/sh.c (find_barrier): Don't go past
11364         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
11365
11366 2008-02-20  DJ Delorie  <dj@redhat.com>
11367
11368         * config/h8300/h8300.md (insv): Force source operand to be a register.
11369
11370         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
11371         as a jump, not as a plain insn.
11372         
11373 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
11374
11375         * doc/invoke.texi (Warning Options): Add new option
11376         -Wframe-larger-than=.
11377         (-Wframe-larger-than): Document.
11378
11379         * flags.h (warn_frame_larger_than, frame_larger_than_size):
11380         Add declarations for new option variables.
11381
11382         * final.c (final_start_function): Check the frame size
11383         before emission and issue a Wframe-larger-than warning.
11384
11385         * opts.c (warn_frame_larger_than, frame_larger_than_size):
11386         Add definitions for new option variables.
11387         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
11388
11389         * common.opt (Wframe-larger-than=): New option.
11390
11391 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11392
11393         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
11394         (<sse>_div<mode>3): Ditto.
11395         (<sse>_vmdiv<mode>3): Ditto.
11396         (<sse>_vmsqrt<mode>2): Ditto.
11397         (*smax<mode>3): Ditto.
11398         (sse5_frcz<mode>2): Ditto.
11399         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
11400         as insn constraint.
11401
11402 2008-02-20  Richard Guenther  <rguenther@suse.de>
11403
11404         PR middle-end/35265
11405         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
11406         be happy with INTEGRAL_TYPE_P.
11407
11408 2008-02-20  Richard Guenther  <rguenther@suse.de>
11409
11410         * fold-const.c (split_tree): Associate floatig-point expressions
11411         if flag_associative_math is set.
11412
11413 2008-02-20  Richard Guenther  <rguenther@suse.de>
11414
11415         * tree.h (fold_real_zero_addition_p): Declare.
11416         * fold-const.c (fold_real_zero_addition_p): Export.
11417         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
11418         floating-point operations with zero and one.
11419
11420 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
11421
11422         * doc/install.texi: Correct references to CFLAGS, replacing them
11423         with BOOT_CFLAGS.  Document flags used during bootstrap for
11424         target libraries.
11425                                 
11426 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11427
11428         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
11429         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
11430         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
11431         insn constraint.
11432         (smin<mode>3): Ditto from similar patterns.
11433         (smax<mode>3): Ditto.
11434         (*ieee_smin<mode>3): Ditto.
11435         (*ieee_smax<mode>3): Ditto.
11436         * config/i386/sse.md (sse): New mode attribute.
11437         (mov<mode>): Macroize expander from movv4sf and movv2df using
11438         SSEMODEF2P mode iterator.
11439         (<sse>_movnt<mode>): Ditto from similar patterns. Use
11440         SSE_VEC_FLOAT_MODE_P as insn constraint.
11441         (storent<mode>): Ditto.
11442         (storent<mode>): Macroize expander from storentsf and storentdf using
11443         MODEF mode iterator.
11444         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
11445         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
11446         (abs<mode>2): Ditto from similar patterns.
11447         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
11448         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
11449         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
11450         (<sse>_vmsqrt<mode>2): Ditto.
11451         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
11452         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
11453         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
11454         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
11455         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
11456         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
11457         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
11458         insn constraint.
11459         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
11460         iterator and SSE_FLOAT_MODE_P as insn constraint.
11461         (<sse>_ucomi): Ditto from similar patterns.
11462         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
11463         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
11464         SSE_VEC_FLOAT_MODE_P as insn constraint.
11465         (vcond<mode>): Ditto from similar patterns.
11466         (and<mode>3, *and<mode>3): Ditto.
11467         (<sse>_nand<mode>3): Ditto.
11468         (ior<mode>3, *ior<mode>3): Ditto.
11469         (xor<mode>3, *xor<mode>3): Ditto.
11470         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
11471         iterator and SSE_FLOAT_MODE_P as insn constraint.
11472         (*nand<mode>3): Ditto from similar patterns.
11473         (*ior<mode>3): Ditto.
11474         (*xor<mode>3): Ditto.
11475
11476 2008-02-20  Ira Rosen  <irar@il.ibm.com>
11477
11478         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
11479         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
11480         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
11481
11482 2008-02-19  Jan Hubicka  <jh@suse.cz>
11483
11484         * predict.c (tree_bb_level_predictions): Remove variable next
11485         mistakely introduced by previous commit.
11486
11487 2008-02-19  Jan Hubicka  <jh@suse.cz>
11488
11489         * predict.c (predict_paths_leading_to): Rewrite.
11490         (predict_paths_for_bb): New.
11491         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
11492
11493 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11494
11495         PR bootstrap/35218
11496         * Makefile.in (build_file_translate): New.
11497         (gcc-vers.texi): Use it for translating $(abs_srcdir).
11498         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
11499         * configure.ac (build_file_translate): Substitute it.
11500         * configure: Regenerate.
11501
11502 2008-02-19  Jan Hubicka  <jh@suse.cz>
11503
11504         PR rtl-optimization/34408
11505         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
11506         invalid sharing.
11507
11508 2008-02-19  Jan Hubicka  <jh@suse.cz>
11509
11510         PR middle-end/28779
11511         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
11512         call_expr.
11513
11514 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
11515
11516         PR Ada/35186
11517         * config/i386/i386-modes.def: Revert the last DI alignment
11518         change until Ada people can look into it.
11519
11520 2008-02-19  Nick Clifton  <nickc@redhat.com>
11521
11522         * opts.c (print_specific_help): Fix typo in --help text.
11523
11524 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
11525
11526         PR target/35239
11527         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
11528         32-bit inline asm without asm alternatives for host GCC < 3.0.
11529
11530 2008-02-19  Richard Guenther  <rguenther@suse.de>
11531
11532         PR tree-optimization/34989
11533         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
11534         Allow propagation to INDIRECT_REF if we can simplify only.
11535
11536 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11537
11538         * c-common.c (warn_for_collisions_1): Use appropriate option when
11539         warning.
11540
11541 2008-02-19  Nick Clifton  <nickc@redhat.com>
11542
11543         PR other/31349
11544         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
11545         (handle_options): Fix indentation.
11546         (print_filtered_help): If no language-specific options were
11547         displayed tell the user how to list all the options supported by
11548         the language's front-end.
11549         (print_specific_help): Fix indentation and remove duplicate line.
11550         (common_handle_option): Handle the -v option.
11551         For --help enable the display of undocumented options if the -v
11552         switch has been included on the command line.
11553         For --help= check for overlaps in the arguments between the option
11554         classes and the language names and issue a warning when they
11555         cannot be disambiguated.
11556         * c.opt (v): Pass on to the common option handler.
11557
11558 2008-02-19  Revital Eres  <eres@il.ibm.com> 
11559
11560         * modulo-sched.c (sms_schedule): Change dump message when
11561         create_ddg function fails.
11562         (try_scheduling_node_in_cycle): Rename row to cycle.
11563         (print_partial_schedule): Rename CYCLE to ROW.
11564
11565 2008-02-19  Christian Bruel  <christian.bruel@st.com>
11566             Zdenek Dvorak  <ook@ucw.cz>
11567
11568         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
11569
11570 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11571
11572         PR target/33555
11573         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
11574         (*x86_movdicc_0_m1_se): Ditto.
11575
11576 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11577
11578         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
11579         (CMPtype): Define as __gcc_CMPtype.
11580         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
11581         (CMPtype): Define as __gcc_CMPtype.
11582
11583 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
11584
11585         Support valgrind 3.3 for --enable-checking=valgrind.
11586         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
11587         here.
11588         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
11589         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
11590         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
11591         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
11592         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
11593         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
11594         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
11595         respectively.
11596         * ggc-zone.c: Similar.
11597         * ggc-page.c: Similar.
11598
11599 2008-02-19  Paul Brook  <paul@codesourcery.com>
11600
11601         PR target/35071
11602         * config/arm/ieee754-df.S: Fix do_it typo.
11603         * config/arm/ieee754-sf.S: Fix do_it typo.
11604
11605 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11606
11607         PR target/35189
11608         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
11609         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
11610         (OPTION_MASK_ISA_SSE_SET): Likewise.
11611         (OPTION_MASK_ISA_SSE2_SET): Likewise.
11612         (OPTION_MASK_ISA_SSE3_SET): Likewise.
11613         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
11614         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
11615         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
11616         (OPTION_MASK_ISA_SSE4_SET): Likewise.
11617         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
11618         (OPTION_MASK_ISA_SSE5_SET): Likewise.
11619         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
11620         (OPTION_MASK_ISA_MMX_UNSET): Updated.
11621         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
11622         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
11623         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
11624         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
11625         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
11626         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
11627         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
11628         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
11629         (OPTION_MASK_ISA_SSE4): Removed.
11630         (ix86_handle_option): Turn on bits in ix86_isa_flags and
11631         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
11632         (override_options): Don't turn on implied SSE/MMX bits in
11633         ix86_isa_flags.
11634
11635 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11636
11637         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11638         32bit host.
11639
11640 2008-02-18  Joey Ye  <joey.ye@intel.com>
11641
11642         PR middle-end/34921
11643         * tree-nested.c (insert_field_into_struct): Set type alignment
11644         to field alignment if the former is less than the latter.
11645
11646 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
11647
11648         * BASE-VER: Set to 4.4.0.
11649
11650 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11651
11652         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
11653         * doc/cfg.texi: Likewise.
11654         * doc/extend.texi: Likewise.
11655         * doc/gty.texi: Likewise.
11656         * doc/invoke.texi: Likewise.
11657         * doc/loop.texi: Likewise.
11658         * doc/md.texi: Likewise.
11659         * doc/passes.texi: Likewise.
11660         * doc/rtl.texi: Likewise.
11661         * doc/sourcebuild.texi: Likewise.
11662         * doc/tm.texi: Likewise.
11663         * doc/tree-ssa.texi: Likewise.
11664
11665 2008-02-17  Richard Guenther  <rguenther@suse.de>
11666
11667         PR middle-end/35227
11668         * tree-complex.c (init_parameter_lattice_values): Handle parameters
11669         without default definition.
11670
11671 2008-02-17  Richard Guenther  <rguenther@suse.de>
11672
11673         PR tree-optimization/35231
11674         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
11675         if A | B != 1.
11676
11677 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
11678
11679         Revert:
11680         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
11681         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11682         libgcc_cmp_return mode.
11683
11684 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11685
11686         PR c/28368
11687         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
11688
11689 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
11690
11691         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
11692         multilibs.
11693
11694 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11695
11696         * doc/c-tree.texi: Use `@.' where appropriate.
11697         * doc/extend.texi: Likewise.
11698         * doc/install.texi: Likewise.
11699         * doc/invoke.texi: Likewise.
11700         * doc/loop.texi: Likewise.
11701         * doc/makefile.texi: Likewise.
11702         * doc/md.texi: Likewise.
11703         * doc/passes.texi: Likewise.
11704         * doc/standards.texi: Likewise.
11705         * doc/tm.texi: Likewise.
11706
11707 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11708
11709         PR middle-end/35196
11710         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
11711         in entry_bb.
11712         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
11713         rather than in entry_bb.
11714
11715 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11716
11717         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11718         libgcc_cmp_return mode.
11719
11720 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11721
11722         PR middle-end/35130
11723         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
11724         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
11725
11726 2008-02-15  Richard Guenther  <rguenther@suse.de>
11727             Zdenek Dvorak  <ook@ucw.cz>
11728
11729         PR tree-optimization/35164
11730         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
11731         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
11732         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
11733         Only propagate addresses which do not have abnormal SSA_NAMEs
11734         in their operands.
11735
11736 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
11737
11738         PR target/35088
11739         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
11740
11741 2008-02-15  Jan Hubicka  <jh@suse.cz>
11742
11743         PR middle-end/35149
11744         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
11745
11746 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11747
11748         PR middle-end/34621
11749         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
11750         when calculating alignment_pad.
11751
11752 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11753
11754         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
11755         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
11756         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
11757         and STACK_BOUNDARY define.
11758
11759 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
11760
11761         PR preprocessor/35061
11762         * c-pragma.c (handle_pragma_pop_macro): Check that
11763         pushed_macro_table has been allocated.
11764
11765 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11766
11767         PR middle-end/35136
11768         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
11769         (force_gimple_operand): Likewise.
11770         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
11771         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
11772         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
11773         (find_interesting_uses_address): Check addressability and alignment
11774         of the base expression only after substituting bases of IVs into it.
11775
11776 2008-02-14  Michael Matz  <matz@suse.de>
11777
11778         PR target/34930
11779         * function.c (instantiate_virtual_regs_in_insn): Reload address
11780         before falling back to reloading the whole operand.
11781
11782 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11783
11784         * config/s390/s390.c (s390_mainpool_start): Emit the pool
11785         before the first section switch note.
11786
11787 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11788
11789         * doc/bugreport.texi: Update copyright years.
11790         * doc/c-tree.texi: Likewise.
11791         * doc/cfg.texi: Likewise.
11792         * doc/cpp.texi: Likewise.
11793         * doc/cppinternals.texi: Likewise.
11794         * doc/fragments.texi: Likewise.
11795         * doc/frontends.texi: Likewise.
11796         * doc/gcc.texi: Likewise.
11797         * doc/gty.texi: Likewise.
11798         * doc/hostconfig.texi: Likewise.
11799         * doc/implement-c.texi: Likewise.
11800         * doc/libgcc.texi: Likewise.
11801         * doc/loop.texi: Likewise.
11802         * doc/makefile.texi: Likewise.
11803         * doc/options.texi: Likewise.
11804         * doc/passes.texi: Likewise.
11805         * doc/rtl.texi: Likewise.
11806         * doc/sourcebuild.texi: Likewise.
11807         * doc/standards.texi: Likewise.
11808         * doc/tree-ssa.texi: Likewise.
11809         * doc/trouble.texi: Likewise.
11810
11811         * doc/extend.texi: Use @: or add comma where appropriate.
11812         * doc/invoke.texi: Likewise.
11813         * doc/tm.texi: Likewise.
11814
11815 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
11816
11817         PR target/34393
11818         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
11819         to a reg.
11820
11821 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
11822
11823         * doc/md.texi (clz, ctz): Add reference.
11824         * doc/rtl.texi (clz, ctz): Likewise.
11825
11826 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11827
11828         PR other/35148
11829         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
11830         srcdir.
11831
11832 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
11833
11834         * config/s390/s390.c (struct constant_pool): New field
11835         emit_pool_after added.
11836         (s390_mainpool_start): Set the emit_pool_after flag according
11837         to the section switch notes.
11838         (s390_mainpool_finish): Consider emit_pool_after when emitting
11839         the literal pool at the end of the function.
11840         (s390_chunkify_start): Force literal pool splits at section
11841         switch notes.
11842
11843 2008-02-13  Michael Matz  <matz@suse.de>
11844
11845         PR debug/35065
11846         * var-tracking.c (clobber_variable_part): Correctly traverse the
11847         list.
11848
11849 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11850
11851         PR 29673
11852         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
11853         Add -fdump-ipa-inline.
11854         * tree-dump.c (dump_files): Remove tree-inlined dump.
11855         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
11856         
11857 2008-02-12  Richard Guenther  <rguenther@suse.de>
11858
11859         PR tree-optimization/35171
11860         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
11861         default defs.
11862
11863 2008-02-12  Richard Guenther  <rguenther@suse.de>
11864
11865         PR middle-end/35163
11866         * fold-const.c (fold_widened_comparison): Use get_unwidened in
11867         value-preserving mode.  Disallow final truncation.
11868
11869 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
11870
11871         PR middle-end/35136
11872         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
11873         code from here to...
11874         (force_gimple_operand): ...here.
11875
11876 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
11877
11878         PR c++/35144
11879         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
11880         non-compatible pointers.
11881         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
11882         different FIELD_DECLs, try harder by comparing field offsets, sizes
11883         and types.
11884
11885         PR inline-asm/35160
11886         * function.c (match_asm_constraints_1): Don't replace the same input
11887         multiple times.
11888
11889 2008-02-12  Anatoly Sokolov <aesok@post.ru>
11890
11891         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
11892         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
11893         (expand_epilogue): Restore RAMPZ register.
11894         * config/avr/avr.md (RAMPZ_ADDR): New constant.
11895
11896 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
11897
11898         * config/i386/cygwin.asm: (__alloca): Correct calling
11899         convention and alignment.
11900         (__chkstk): Force 8 byte stack alignment.
11901
11902 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
11903             Richard Guenther  <rguenther@suse.de>
11904
11905         PR tree-optimization/33992
11906         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
11907         the zero we compare against.
11908
11909 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
11910
11911         PR libfortran/35063
11912         * gthr-win32.h (__gthread_mutex_destroy_function): New function
11913         to CloseHandle after unlocking to prevent accumulation of handle
11914         count.
11915
11916 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11917
11918         PR middle_end/34150
11919         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
11920         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
11921         and update LABEL_NUSES during and after reload.
11922
11923 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
11924
11925         PR middle-end/34627
11926         * combine.c (simplify_if_then_else): Make sure the comparison is
11927         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
11928
11929 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11930
11931         PR bootstrap/35051
11932         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
11933         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
11934         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
11935         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
11936         * tree.h (get_type_static_bounds): Likewise.
11937
11938 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11939
11940         * doc/invoke.texi (Option Summary, C++ Dialect Options)
11941         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11942         Make -Wfoo language annotations match what the compiler outputs.
11943
11944 2008-02-08  Sa Liu  <saliu@de.ibm.com>
11945
11946         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
11947         intrinsics spu_convts, spu_convtu, spu_convtf.
11948
11949 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
11950
11951         * doc/extend.texi (Function Attributes) <noinline>: Mention
11952         asm ("") as method to keep calls.
11953
11954 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11955
11956         PR other/32754
11957         * doc/options.texi (Options): Replace references to opts.sh with
11958         optc-gen.awk.
11959         * opts-common.c: Likewise.
11960         * optc-gen.awk: Likewise.
11961         
11962 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
11963
11964         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
11965
11966 2008-02-07  Richard Henderson  <rth@redhat.com>
11967
11968         PR rtl-opt/33410
11969         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
11970         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
11971         funny mode.
11972
11973 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
11974
11975         PR tree-optimization/35085
11976         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
11977         for operand entry oe2 in addition to operand entry oe3 in order to
11978         expose more opportunities for vectorizer sum reduction.
11979
11980 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11981
11982         PR other/35107
11983         * Makefile.in (LIBS): Remove $(GMPLIBS).
11984         (cc1-dummy, cc1): Add $(GMPLIBS).
11985
11986 2008-02-06  Jan Hubicka  <jh@suse.cz>
11987
11988         PR target/23322
11989         * i386.md (moddf_integer): Do not produce partial memory stalls for
11990         targets where it hurts.
11991
11992 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
11993
11994         PR target/35083
11995         * optabs.c (expand_float): Do not check for decimal modes when
11996         expanding unsigned integer through signed conversion.
11997
11998 2008-02-06  Nick Clifton  <nickc@redhat.com>
11999
12000         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
12001         inside the clobber with a match_operand and duplicated operand
12002         number in the constraint.
12003         (ineqbranchsi): Delete redundant comment.
12004
12005 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
12006
12007         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
12008         builtin_define ("__USE_INIT_FINI__").
12009         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
12010         -msx multilibs.
12011         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
12012
12013 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12014
12015         PR documentation/30330
12016         * doc/invoke.texi (C++ Dialect Options)
12017         (Objective-C and Objective-C++ Dialect Options, Warning Options):
12018         For each warning option -Wfoo that allows -Wno-foo, ensure both
12019         -Wfoo and -Wno-foo are listed in the option index.  Fix index
12020         entry of -Wswitch-default, index -Wnormalized= including the
12021         `=', and -Wlarger-than-@var{len} including @var{len}.
12022
12023 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
12024
12025         * config/i386/i386.md (floatunssisf2): Use
12026         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
12027         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
12028         Macroize expander using MODEF mode iterator.
12029
12030 2008-02-05  Diego Novillo  <dnovillo@google.com>
12031
12032         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
12033
12034         PR 33738
12035         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
12036
12037 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12038
12039         PR other/35070
12040         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
12041
12042 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
12043
12044         PR target/35084
12045         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
12046         to indicate if a message should be generated.
12047         (init_cumulative_args): Updated.
12048         (function_value_32): Likewise.
12049
12050 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
12051
12052         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
12053
12054 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
12055
12056         PR target/35083
12057         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
12058         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
12059
12060 2008-02-04  Diego Novillo  <dnovillo@google.com>
12061
12062         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
12063
12064         PR 33738
12065         * tree-vrp.c (vrp_evaluate_conditional): With
12066         -Wtype-limits, emit a warning when comparing against a
12067         constant outside the natural range of OP0's type.
12068
12069 2008-02-04  Richard Guenther  <rguenther@suse.de>
12070
12071         PR middle-end/33631
12072         * expr.c (count_type_elements): Give for unions instead of
12073         guessing.
12074
12075 2008-02-04  Richard Guenther  <rguenther@suse.de>
12076
12077         PR middle-end/35043
12078         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
12079         to TYPE_DOMAINs base type instead of using bitsizetype here.
12080
12081 2008-02-03  Jason Merrill  <jason@redhat.com>
12082
12083         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
12084
12085 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12086
12087         PR other/29972
12088         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
12089         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
12090         (RS/6000 and PowerPC Options): Fix typos and markup.
12091         * doc/passes.texi (Tree-SSA passes): Likewise.
12092
12093 2008-02-02  Michael Matz  <matz@suse.de>
12094
12095         PR target/35045
12096         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
12097         from record_last_reg_set_info.
12098         (record_last_reg_set_info): Take an RTX argument, iterate over all
12099         constituent hardregs.
12100         (record_last_set_info, record_opr_changes): Change calls to
12101         new signature or to record_last_reg_set_info_regno.
12102
12103 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
12104
12105         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
12106
12107 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
12108
12109         PR rtl-optimization/34773
12110         * reg-notes.def (EQUAL): Mention significance of combination of
12111         REG_EQUAL and REG_RETVAL.
12112         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
12113         insn that has a REG_RETVAL.
12114
12115 2008-02-01  Roger Sayle  <roger@eyesopen.com>
12116
12117         PR bootstrap/33781
12118         * configure.ac (--enable-fixed-point): Disable unless explicitly
12119         requested on IRIX.
12120         * configure: Regenerate.
12121
12122 2008-02-01  Richard Guenther  <rguenther@suse.de>
12123
12124         PR other/35042
12125         * invoke.texi (-finline-limit): Remove no longer true parts
12126         of the documentation.  Note that there is no default value.
12127
12128 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
12129             Mark Mitchell  <mark@codesourcery.com>
12130             Ben Elliston  <bje@au.ibm.com>
12131
12132         PR c/29326
12133         * doc/extend.texi (Other Builtins): Document.
12134
12135 2008-01-31  Tom Browder <tom.browder@gmail.com>
12136
12137         * doc/c-tree.texi (Types): Fix grammar.
12138         (Expression trees): Ditto.
12139         * doc/passes.texi (Tree-SSA passes): Ditto.
12140         
12141         * doc/configterms.texi (Configure Terms): Fix typo.
12142         * doc/cpp.texi (Common Predefined Macros): Ditto.
12143         * doc/md.texi (Machine Constraints): Ditto.
12144         
12145         * doc/makefile.texi (Makefile): Add comma.
12146
12147 2008-01-31  Tom Browder  <tom.browder@gmail.com>
12148             Gerald Pfeifer  <gerald@pfeifer.com>
12149         
12150         * doc/sourcebuild.texi (Front End): Remove references to CVS
12151         and CVSROOT/modules.
12152         (Texinfo Manuals): Replace reference to CVS by one to SVN.
12153         (Back End): Remove reference to CVS.
12154
12155 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
12156
12157         PR target/34900
12158         * config/mips/mips.c (gen_load_const_gp): New function, taking a
12159         comment from...
12160         (mips16_gp_pseudo_reg): ...here.
12161         * config/mips/mips.md (load_const_gp): Replace with...
12162         (load_const_gp_<mode>): ...this :P-based insn.
12163
12164 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12165
12166         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
12167         options. Minor fixes.
12168         (-std): Move reference to standards closer to where language
12169         standards are first mentioned.
12170         
12171 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
12172
12173         PR rtl-optimization/34995
12174         * reload.c (alternative_allows_const_pool_ref): Take an rtx
12175         parameter and return a bool.  If the rtx parameter is nonnull,
12176         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
12177         (find_reloads): Update call accordingly.  Pass the new operand
12178         if it needed no address reloads, otherwise pass null.
12179
12180 2008-01-30  Richard Henderson  <rth@redhat.com>
12181
12182         PR c/34993
12183         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
12184         for unbounded arrays.
12185
12186 2008-01-30  Silvius Rus  <rus@google.com>
12187
12188         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
12189
12190 2008-01-30  Jan Hubicka  <jh@suse.cz>
12191
12192         PR target/34982
12193         * i386.c (init_cumulative_args): Use real function declaration when
12194         calling locally.
12195
12196 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
12197
12198         PR rtl-optimization/34998
12199         * global.c (build_insn_chain): Treat non-subreg_lowpart
12200         SUBREGs of pseudos as clobbering all the words covered by the
12201         SUBREG, not just all the bytes.
12202         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
12203         original df_ref rather than an extract parameter.
12204         (global_conflicts): Update call accordingly.
12205
12206 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
12207
12208         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
12209         the overflow check to make it easier to read.
12210         (__fixtfdi): Change the type of the ll member in union
12211         long_double to UDItype_x.
12212
12213 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
12214
12215         PR middle-end/34969
12216         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
12217         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
12218         * tree-inline.c (fold_marked_statements): Call
12219         cgraph_update_edges_for_call_stmt if folding a call statement.
12220         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
12221         debug_generic_stmt calls, reset it back afterwards.
12222
12223         PR c/35017
12224         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
12225         static decls.
12226         * c-typeck.c (build_external_ref): Don't pedwarn about
12227         static vars in current function's scope.
12228
12229 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
12230
12231         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
12232
12233 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
12234
12235         PR c/35002
12236         * ipa-struct-reorg.c: Fix spelling.
12237         * params.def: Ditto.
12238
12239 2008-01-29  Richard Guenther  <rguenther@suse.de>
12240
12241         PR middle-end/35006
12242         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
12243         field.
12244         * tree-inline.c (remap_type): Increment remapping_type_depth
12245         around remapping types.
12246         (copy_body_r): Only add referenced variables if they are referenced
12247         from code, not types.
12248
12249 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
12250
12251         PR c++/34055
12252         PR c++/34103
12253         PR c++/34219
12254         PR c++/34606
12255         PR c++/34753
12256         PR c++/34754
12257         PR c++/34755
12258         PR c++/34919
12259         PR c++/34961
12260         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
12261         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
12262
12263 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
12264
12265         PR target/34412
12266         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
12267         pointer for tiny stack.
12268
12269 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12270
12271         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
12272
12273 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12274
12275         * config/vx-common.h: Fix typo in comment.
12276
12277 2008-01-28  Ian Lance Taylor  <iant@google.com>
12278
12279         PR c++/34862
12280         PR c++/33407
12281         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12282         coalesce pointers if they have different DECL_NO_TBAA_P values.
12283         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
12284         between variables with different DECL_NO_TBAA_P values.
12285
12286 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
12287
12288         PR 31535
12289         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
12290         are not legitimate small data references on SPE targets.
12291
12292 2008-01-28  David Daney  <ddaney@avtrex.com>
12293
12294         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
12295
12296 2008-01-28  David Daney  <ddaney@avtrex.com>
12297
12298         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
12299
12300 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
12301
12302         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
12303         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
12304         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
12305         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
12306         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
12307         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
12308         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
12309         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
12310
12311 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12312
12313         * basic-block.h (condjump_equiv_p): Fix comment.
12314
12315 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12316
12317         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
12318         print_generic_stmt_indented): Fix comment.
12319
12320 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12321
12322         * configure.ac (__stack_chk_fail): Add detecion for availability
12323         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
12324         * configure: Regenerate.
12325
12326 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
12327
12328         PR middle-end/34688
12329         * final.c (output_addr_const): Handle TRUNCATE.
12330
12331 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
12332
12333         PR target/34711
12334         * tree-ssa-loop-ivopts.c (comp_cost): New type.
12335         (zero_cost, infinite_cost): New constants.
12336         (struct cost_pair): Change type of cost to comp_cost.
12337         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
12338         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
12339         New functions.
12340         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
12341         split_address_cost, ptr_difference_cost, difference_cost,
12342         get_computation_cost_at, get_computation_cost,
12343         determine_use_iv_cost_generic, determine_use_iv_cost_address,
12344         determine_use_iv_cost_condition, determine_use_iv_costs,
12345         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
12346         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
12347         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
12348         Change type of cost to comp_cost.
12349         (determine_iv_cost): Increase cost of non-original ivs, instead
12350         of decreasing the cost of original ones.
12351         (get_address_cost): Indicate the complexity of the addressing mode 
12352         in comp_cost.
12353         (try_add_cand_for): Prefer using ivs not specific to some object.
12354         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
12355
12356 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
12357             Janis Johnson  <janis187@us.ibm.com>
12358
12359         PR target/34814
12360         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
12361         (TARGET_INSTANTIATE_DECLS): Likewise.
12362         * target.h (expand_to_rtl_hook): New target hook.
12363         (instantiate_decls): Likewise.
12364         * function.c (instantiate_decl): Make non-static.  Rename to...
12365         (instantiate_decl_rtl): ... this.
12366         (instantiate_expr): Use instantiate_decl_rtl.
12367         (instantiate_decls_1): Likewise.
12368         (instantiate_decls): Likewise.
12369         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
12370         * function.h (instantiate_decl_rtl): Add prototype.
12371         * cfgexpand.c (target.h): New include.
12372         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
12373         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
12374         (TARGET_INSTANTIATE_DECLS): Likewise.
12375         (TARGET_INITIALIZER): New target hooks added.
12376         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
12377         New prototype.
12378         * config/rs6000/rs6000.c (tree-flow.h): New include.
12379         (machine_function): Add sdmode_stack_slot field.
12380         (rs6000_alloc_sdmode_stack_slot): New function.
12381         (rs6000_instantiate_decls): Likewise.
12382         (rs6000_secondary_memory_needed_rtx): Likewise.
12383         (rs6000_check_sdmode): Likewise.
12384         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
12385         (TARGET_INSTANTIATE_DECLS): Likewise.
12386         (rs6000_hard_regno_mode_ok): Allow SDmode.
12387         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
12388         (rs6000_emit_move): Handle SDmode.
12389         (function_arg_advance): Likewise.
12390         (function_arg): Likewise.
12391         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
12392         SDmode var args for 32-bit compiles.
12393         (rs6000_secondary_reload_class): Handle SDmode.
12394         (rs6000_output_function_epilogue): Likewise.
12395         (rs6000_function_value): Simplify if statement.
12396         (rs6000_libcall_value): Likewise.
12397         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
12398         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
12399         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
12400         (movsd_hardfloat): New define_insn.
12401         (movsd_softfloat): Likewise.
12402         (movsd_store): Likewise.
12403         (movsd_load): Likewise.
12404         (extendsddd2): Likewise.
12405         (extendsdtd2): Likewise.
12406         (truncddsd2): Likewise.
12407         (movdd_hardfloat64): Fixup comment.
12408         (UNSPEC_MOVSD_LOAD): New constant.
12409         (UNSPEC_MOVSD_STORE): Likewise.
12410
12411 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
12412
12413         PR c++/34965
12414         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
12415         TRUTH_XOR_EXPR.
12416         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
12417         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
12418         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
12419         and TRUTH_XOR_EXPR.
12420
12421 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
12422
12423         PR target/34794
12424         * config.gcc: Separate AIX 5.3 from AIX 6.1.
12425         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
12426         __LONGDOUBLE128 too.
12427         * config/rs6000/aix61.h: New file.
12428
12429 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12430
12431         PR rtl-optimization/34959
12432         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
12433         popcount and parity rtxes the same mode as their operand.
12434         Truncate or extend the result to the return value's mode
12435         if necessary.
12436
12437 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12438
12439         PR target/34981
12440         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
12441         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
12442         to GOT_VERSION_REGNUM.
12443         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
12444         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
12445         * config/mips/mips.c (mips_emit_call_insn): New function.
12446         (mips_call_tls_get_addr): Call mips_expand_call directly.
12447         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
12448         emit_call_insn.
12449         (mips16_build_call_stub): Likewise.  Return the call insn or null.
12450         (mips_expand_call): Update the call to mips16_build_call_stub
12451         accordingly and a remove redundant condition.  Assert that MIPS16
12452         stubs do not use lazy binding.  Use mips_emit_call_insn and return
12453         the call insn.
12454         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
12455         TARGET_USE_GOT.
12456         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
12457         (mips_avoid_hazard): Remove hazard_set handling.
12458         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
12459         (UNSPEC_RESTORE_GP): ...this.
12460         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
12461         (FAKE_CALL_REGNO): Rename to...
12462         (GOT_VERSION_REGNUM): ...this.
12463         (type): Add "ghost" value.  Add an associated insn reservation.
12464         (hazard_set): Remove.
12465         (exception_receiver): Rename to...
12466         (restore_gp): ...this and update the unspec identifier accordingly.
12467         (exception_receiver, nonlocal_got_receiver): New expanders.
12468         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
12469         FAKE_CALL_REGNO.  Remove hazard_set attribute.
12470         (set_got_version, update_got_version): New patterns.
12471
12472 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
12473
12474         PR target/34970
12475         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
12476
12477 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12478
12479         PR other/31955
12480         * doc/install.texi2html: Generate gcc-vers.texi.
12481
12482 2008-01-25  DJ Delorie  <dj@redhat.com>
12483
12484         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12485
12486 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12487
12488         * config/c4x: Remove directory.
12489         * config.gcc (crx-*, mt-*): Mark obsolete.
12490         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
12491         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
12492         sh-*-rtemscoff*): Remove cases.
12493         * defaults.h (C4X_FLOAT_FORMAT): Remove.
12494         * real.c (encode_c4x_single, decode_c4x_single,
12495         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
12496         c4x_extended_format): Remove.
12497         * real.h (c4x_single_format, c4x_extended_format): Remove.
12498         * doc/extend.texi (interrupt, naked): Remove mention of attributes
12499         on C4x.
12500         (Pragmas): Remove comment about c4x pragmas.
12501         * doc/install.texi (c4x): Remove target-specific instructions.
12502         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
12503         * doc/md.texi (Machine Constraints): Remove C4x documentation.
12504         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
12505         refer to C4x source files as examples.
12506         (C4X_FLOAT_FORMAT): Remove documentation.
12507
12508 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
12509
12510         * config/bfin/bfin.c (override_options): Reorder tests so that
12511         flag_pic gets enabled for -msep-data.
12512
12513 2008-01-25  Richard Guenther  <rguenther@suse.de>
12514
12515         PR middle-end/32244
12516         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
12517         to its bitfield precision if required.
12518
12519 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12520
12521         PR middle-end/33880
12522         * tree-nested.c (walk_omp_for): New function.
12523         (convert_nonlocal_reference, convert_local_reference): Call
12524         walk_omp_for on OMP_FOR.
12525         (convert_call_expr): Call walk_body on OMP_FOR's
12526         OMP_FOR_PRE_INIT_BODY.
12527
12528 2008-01-25  Richard Guenther  <rguenther@suse.de>
12529
12530         PR tree-optimization/34966
12531         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
12532         default defs and PHI_NODEs we have to insert after the
12533         defining statement.
12534
12535 2008-01-24  Nick Clifton  <nickc@redhat.com>
12536
12537         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
12538         Provide a default definition.
12539         (LIBGCC2_UNITS_PER_WORD): Likewise.
12540
12541         * config/stormy16/stormy16.c: Include df.h for the prototype
12542         for df_regs_ever_live_p.
12543         (xstormy16_expand_builtin_va_start): Convert the stack offset
12544         into a component_ref and then use POINTER_PLUS_EXPR to add it
12545         to the incoming_virtual_args_rtx.
12546         (xstormy16_gimplify_va_arg_expr): Rename to
12547         xstormy16_gimplify_va_arg_expr.
12548         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
12549         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
12550         xstormy16_gimplify_va_arg_expr.
12551         Fix up some formatting issues.
12552
12553         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
12554         Move to predicates.md.
12555         (xs_hi_general_operand): Likewise.
12556         (xs_hi_nonmemory_operand): Likewise.
12557         * config/stormy16/predicates.md:
12558         (xstormy16_carry_plus_operand): New predicate.
12559         (xs_hi_general_operand): New predicate.
12560         (xs_hi_nonmemory_operand): New predicate.
12561         * config/stormy16/stormy16-protos.h:
12562         (xstormy16_carry_plus_operand): Delete prototype.
12563         (xs_hi_general_operand): Likewise.
12564         (xs_hi_nonmemory_operand): Likewise.
12565
12566         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
12567         modifiers as they are no longer needed and they can trigger
12568         reload spill failures.
12569
12570         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
12571         with a match_operand in order to help reload.
12572
12573         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
12574         constraint with 'e' for the 8th alternative as this version of
12575         the mov.w instruction only accepts the lower 8 registers.
12576
12577 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
12578
12579         PR target/34856
12580         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
12581         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
12582         vector elements.
12583
12584 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12585
12586         PR middle-end/33333
12587         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
12588
12589 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12590
12591         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
12592         New functions.
12593         (remove_structure): Update allocations list before removing structure.
12594         
12595 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12596
12597         * ipa-struct-reorg.c (is_safe_cond_expr, 
12598         create_new_stmts_for_cond_expr): Use integer_zerop function,
12599         that recognize not only zero-pointer, but zero-integer too.
12600
12601 2008-01-25  Ben Elliston  <bje@au.ibm.com>
12602
12603         PR other/22232
12604         * fixproto: Escape "." in sed expression that strips leading "./".
12605
12606 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12607
12608         PR driver/34904
12609         * gcc.c (SWITCH_OK): Removed.
12610         (SWITCH_LIVE): Changed to bit.
12611         (SWITCH_FALSE): Likewise.
12612         (SWITCH_IGNORE): Likewise.
12613         (switchstr): Change live_cond to unsigned int.
12614         (process_command): Replace SWITCH_OK with 0.
12615         (do_self_spec): Likewise.
12616         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
12617         (give_switch): Likewise.
12618         (used_arg): Likewise.
12619         (do_spec_1): Set the SWITCH_IGNORE bit.
12620         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
12621         bits.  Set the SWITCH_LIVE bit.
12622
12623 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
12624
12625         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
12626
12627 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
12628
12629         PR tree-optimization/34472
12630         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
12631         parameter to a "bool *" and set *DATA to false if there is
12632         an unsafe access.  Do not delete the structure here.
12633         (check_cond_exprs): Delete it here instead.
12634         (check_cond_exprs, exclude_cold_structs): Do not increase
12635         I when removing a structure.
12636
12637 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
12638
12639         PR target/34856
12640         * config/i386/i386.c (ix86_expand_vector_init): Consider only
12641         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
12642
12643 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
12644
12645         PR middle-end/34934
12646         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
12647         a fixed vector for stack.
12648
12649 2008-01-24  Ben Elliston  <bje@au.ibm.com>
12650
12651         PR c++/25701
12652         * doc/gcc.texi (Software development): Add a direntry for g++.
12653         
12654 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
12655
12656         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
12657         stale and straggling -fforce-addr comments above.
12658
12659         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
12660         define.
12661         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
12662         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
12663
12664 2008-01-23  Michael Matz  <matz@suse.de>
12665
12666         PR debug/34895
12667         * dwarf2out.c (force_type_die): Use modified_type_die instead of
12668         gen_type_die.
12669
12670 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
12671
12672         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
12673         malloc result type.
12674
12675 2008-01-23 Anatoly Sokolov <aesok@post.ru>
12676
12677         * config/avr/avr.c (avr_current_arch): New variable.
12678         (avr_arch_types): Add 'avr31' and 'avr51' entries.
12679         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
12680         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
12681         (avr_override_options): Init 'avr_current_arch'. 
12682         (base_arch_s): Move from here...
12683         * config/avr/avr.h (base_arch_s): ... here. Add new members 
12684         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
12685         'mega' to 'have_jmp_call'.
12686         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
12687         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
12688         macros.
12689         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
12690         architectures.
12691         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
12692         MULTILIB_MATCHES): (Ditto.).
12693
12694 2008-01-23  Richard Guenther  <rguenther@suse.de>
12695
12696         PR middle-end/31529
12697         * cgraphunit.c (cgraph_reset_node): Always mark the node
12698         not reachable if it is not queued already.
12699
12700 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
12701
12702         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
12703         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
12704         (cputype_selected): New static variable.
12705         (bfin_handle_option): Set it if -mcpu is used.
12706         (override_option): Select default set of workarounds if no cpu type
12707         selected on the command line.
12708         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
12709
12710         From  Michael Frysinger  <michael.frysinger@analog.com>
12711         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
12712         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
12713
12714         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
12715         for bf547, bf523, bf524, and bf526.
12716         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
12717         bf526.
12718         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
12719         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
12720         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
12721         __ADSPBF547__ and __ADSPBF54x__ for bf547.
12722         * doc/invoke.texi (Blackfin Options): Document that
12723         -mcpu now accept bf547, bf523, bf524, and bf526.
12724
12725 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
12726
12727         PR rtl-optimization/34628
12728         * combine.c (try_combine): Stop and undo after the first combination
12729         if an autoincrement side-effect on the first insn has effectively
12730         been lost.
12731
12732 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
12733
12734         PR target/34529
12735         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
12736         Offset addresses are not valid for Altivec or paired float modes.
12737
12738 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
12739
12740         PR c++/34607
12741         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
12742         if DECL_INITIAL (decl) is error_mark_node.
12743
12744         PR c++/34914
12745         * c-common.c (handle_vector_size_attribute): Only allow
12746         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
12747         the same way as pointer, array etc. types.
12748         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
12749
12750         PR c++/34917
12751         * tree.c (build_type_attribute_qual_variant): Call
12752         build_qualified_type if attributes are equal, but quals are not.
12753
12754 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12755
12756         PR 32102
12757         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
12758         * flags.h (warn_strict_aliasing): Remove.
12759         (warn_strict_overflow): Remove.
12760         * opts.c (warn_strict_aliasing): Remove.
12761         (warn_strict_overflow): Remove.
12762         * c-opts.c (c_common_handle_option): -Wall only sets
12763         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
12764         (c_common_post_options): Give default values to -Wstrict-aliasing
12765         and -Wstrict-overflow if they are uninitialized.
12766         * common.opt (Wstrict-aliasing): Specify Var and Init.
12767         (Wstrict-overflow): Likewise.
12768
12769 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
12770
12771         PR rtl-optimization/26854
12772         PR rtl-optimization/34400
12773         PR rtl-optimization/34884
12774         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
12775         DF_RD->gen.
12776         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
12777         (df_rd_bb_info.expanded_lr_out): Deleted
12778         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
12779         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
12780         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12781         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12782         Removed code to allocate, initialize or free expanded_lr_out.
12783         (df_rd_bb_local_compute_process_def): Restructured to make more
12784         understandable.
12785         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
12786         sets if the sets are being trimmed.
12787
12788 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
12789
12790         PR bootstrap/32287
12791         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
12792         (as_vers): Likewise.
12793         * configure: Regenerated.
12794
12795 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12796
12797         PR middle-end/33092
12798         * tree-pass.h (pass_build_alias): New pass.
12799         * tree-ssa-alias.c (gate_build_alias): New.
12800         (pass_build_alias): New.
12801         * passes.c (init_optimization_passes): Add pass_build_alias after
12802         pass_create_structure_vars.
12803
12804 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
12805
12806         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
12807         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
12808         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
12809         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
12810         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
12811         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
12812         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
12813         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
12814         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
12815         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
12816         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
12817         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
12818         * config/s390/s390.md (FP_ALL): New mode iterator.
12819         (_d): New mode attribute.
12820         ("*signbit<mode>2>"): Changed mode of first operand.
12821         ("isinf<mode>2"): Changed mode of first operand.
12822         ("*TDC_insn"): Adaptation for DFP modes.
12823
12824 2008-01-22  Ben Elliston  <bje@au.ibm.com>
12825
12826         * tree.c (check_qualified_type): Improve function description.
12827
12828 2008-01-21  Jason Merrill  <jason@redhat.com>
12829
12830         PR c++/34196
12831         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
12832         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
12833         if it is set.
12834
12835 2008-01-21  DJ Delorie  <dj@redhat.com>
12836
12837         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
12838         return zero.
12839
12840 2008-01-21  Richard Guenther  <rguenther@suse.de>
12841
12842         PR middle-end/34856
12843         * tree-cfg.c (verify_expr): Allow all invariant expressions
12844         instead of just constant class ones as reference argument.
12845         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
12846         like any other constant.
12847         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12848
12849 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
12850
12851         * regmove.c (fixup_match_1): Update call crossed frequencies.
12852
12853 2008-01-21  Richard Guenther  <rguenther@suse.de>
12854
12855         PR c/34885
12856         * tree-inline.c (setup_one_parameter): Deal with mismatched
12857         types using a VIEW_CONVERT_EXPR.
12858
12859 2008-01-21  Alon Dayan  <alond@il.ibm.com>
12860             Olga Golovanevsky  <olga@il.ibm.com>
12861         
12862         PR tree-optimization/34701
12863         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
12864         when the structure size is not a power of 2.
12865
12866 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12867
12868         * doc/install.texi: Add doc for --enable-checking=df.
12869         
12870 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12871
12872         PR rtl-optimization/34808
12873         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
12874
12875 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12876
12877         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
12878         input.
12879
12880 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
12881
12882         PR rtl-optimization/26854
12883         PR rtl-optimization/34400
12884         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
12885         DF_RD->gen.
12886         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
12887         (df_rd_bb_info.expanded_lr_out): New.
12888         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
12889         * loop_iv.c (iv_analysis_loop_init): Ditto.
12890         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12891         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12892         Added code to allocate, initialize or free expanded_lr_out.
12893         (df_rd_bb_local_compute_process_def): Restructured to make
12894         more understandable.
12895         (df_rd_confluence_n): Add code to do nothing with fake edges and
12896         code to no apply invalidate_by_call sets if the sets are being trimmed.
12897         (df_lr_local_finalize): Renamed to df_lr_finalize.
12898         (df_live_local_finalize): Renamed to df_live_finalize.
12899
12900 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12901
12902         PR target/34831
12903         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
12904         deciding whether to use reciprocal instructions.
12905
12906 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
12907
12908         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
12909         dwarf2out_note_section_used if cold_text_section is NULL.
12910
12911 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
12912
12913         PR gcov-profile/34610
12914         * tree-cfg.c (make_edges): Mark both outgoing edges from
12915         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
12916         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
12917         from OMP_FOR and OMP_CONTINUE outgoing edges.
12918
12919         * tree-profile.c (tree_profiling): Return early if
12920         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
12921         at the end.
12922         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
12923         from cfun to child_cfun.
12924         * function.h (struct function): Add after_tree_profile bit.
12925
12926 2008-01-19 Anatoly Sokolov <aesok@post.ru>
12927
12928         * config/avr/avr.S (_exit): Disable interrupt.
12929
12930 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
12931             Steven Bosscher  <stevenb.gcc@gmail.com>
12932
12933         PR rtl-optimization/26854
12934         PR rtl-optimization/34400
12935         * df-problems.c (df_live_scratch): New scratch bitmap.
12936         (df_live_alloc): Allocate df_live_scratch when doing df_live.
12937         (df_live_reset): Clear the proper bitmaps.
12938         (df_live_bb_local_compute): Only process the artificial defs once
12939         since the order is not important.
12940         (df_live_init): Init the df_live sets only with the variables
12941         found live by df_lr.
12942         (df_live_transfer_function): Use the df_lr sets to prune the
12943         df_live sets as they are being computed.  
12944         (df_live_free): Free df_live_scratch.
12945
12946 2008-01-18  Ian Lance Taylor  <iant@google.com>
12947
12948         * common.opt: Add fmerge-debug-strings.
12949         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
12950         flag_merge_debug_strings rather than flag_merge_constants.
12951         * doc/invoke.texi (Option Summary): Mention
12952         -fmerge-debug-strings.
12953         (Debugging Options): Document -fmerge-debug-strings.
12954
12955 2008-01-18  Ian Lance Taylor  <iant@google.com>
12956
12957         PR c++/33407
12958         * tree.h (DECL_IS_OPERATOR_NEW): Define.
12959         (struct tree_function_decl): Add new field operator_new_flag.
12960         * tree-inline.c (expand_call_inline): When inlining a call to
12961         operator new, force the return value to go into a variable, and
12962         set DECL_NO_TBAA_P on that variable.
12963         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
12964
12965 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
12966
12967         PR debug/34484
12968         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
12969         DWARF2_DEBUGGING_INFO.
12970         (dwarf2out_note_section_used): Ditto.  Add prototype.
12971         (have_multiple_function_sections, text_section_used,
12972         cold_text_section_used, *cold_text_sections): Move declarations
12973         before their uses.
12974
12975 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
12976
12977         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
12978         field and add signal_ra.
12979         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
12980         assignments to frame state pc.  Move end of stack check after
12981         MD_FALLBACK_FRAME_STATE_FOR.
12982         (uw_update_context_1): Use frame state signal_regs if set, instead
12983         of checking signal_frame flag.
12984         (uw_update_context): Use frame state signal_ra if set.
12985         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
12986         * config/xtensa/linux-unwind.h: New file.
12987
12988 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
12989
12990         * modulo-sched.c (get_sched_window): Fix comment typo.
12991
12992 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
12993
12994         PR tree-optimization/34648
12995         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
12996
12997 2008-01-17  Anatoly Sokolov <aesok@post.ru>
12998
12999         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
13000         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
13001
13002 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
13003
13004         PR rtl-optimization/34400
13005         * df-core.c (df_worklist_dataflow_overeager,
13006         df_worklist_dataflow_doublequeue): New functions.
13007         (df_worklist_dataflow): Two different worklist solvers.
13008         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
13009         New param.
13010
13011 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13012
13013         PR testsuite/34821
13014         * doc/invoke.texi: Document the dependence on pthread for fopenmp
13015         and ftree-parallelize-loops.
13016
13017 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
13018
13019         PR rtl-optimization/34826
13020         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
13021
13022 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
13023
13024         * global.c (find_reg): Mark the eh regs as used if necessary.
13025         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
13026         * ra.h (struct allocno): no_eh_reg field added.  Changed
13027         no_stack_reg type to bitfield.
13028
13029 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
13030
13031         * tree.c (substitute_in_expr): Add missing 'break'.
13032
13033 2008-01-17  Richard Guenther  <rguenther@suse.de>
13034
13035         PR tree-optimization/34825
13036         * tree-ssa-math-opts.c (is_division_by): Do not recognize
13037         x / x as division to handle.
13038
13039 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13040
13041         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
13042         "-pthread" is specified.
13043         * pa-hpux11.h (LIB_SPEC): Likewise.
13044
13045 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
13046             Peter Bergner  <bergner@vnet.ibm.com>
13047
13048         PR rtl-optimization/33796
13049         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
13050
13051 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13052
13053         PR libgfortran/34699
13054         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
13055         static links.
13056         * pa-hpux10.h (LINK_SPEC): Likewise.
13057         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
13058
13059 2008-01-16  Richard Guenther  <rguenther@suse.de>
13060
13061         PR middle-end/32628
13062         * fold-const.c (fold_convert_const_int_from_int): Do not
13063         set overflow if that occured only because of a sign extension
13064         change when converting from/to a sizetype with the same
13065         precision and signedness.
13066
13067 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
13068
13069         PR debug/34249
13070         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
13071         location address to the correct place.  Update copyright year.
13072
13073 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13074
13075         * lambda-code.c (lambda_transform_legal_p): Handle the case of
13076         no dependences in the dependence_relations vector.
13077
13078 2008-01-16  Jan Hubicka  <jh@suse.cz>
13079
13080         PR rtl-optimization/31396
13081         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
13082         * cfg.c (dump_reg_info): Print it.
13083         * regs.h (struct reg_info_t): add freq_calls_crossed.
13084         (REG_FREQ_CALLS_CROSSED): New macro.
13085         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
13086         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
13087         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
13088         regmove_optimize): Update call crossed frequencies.
13089         * local-alloc.c (struct qty): Add freq_calls_crossed.
13090         (alloc_qty): Copute freq_calls_crossed.
13091         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
13092         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
13093         * ra.h (struct allocno): Add freq_calls_crossed.
13094
13095 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13096
13097         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
13098         libgomp when compiling with ftree-parallelize-loops.
13099         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
13100
13101 2008-01-16  Richard Guenther  <rguenther@suse.de>
13102
13103         PR tree-optimization/34769
13104         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
13105         * tree.c (int_cst_value): Instead make this function more
13106         permissive in what it accepts as valid input.  Document this
13107         function always sign-extends the value.
13108
13109 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
13110             Richard Guenther  <rguenther@suse.de>
13111
13112         PR c/34668
13113         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
13114         (gimple_fold_indirect_ref_rhs): ... this.
13115         (gimple_fold_indirect_ref): New function with foldings
13116         that preserve lvalueness.
13117         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
13118         * tree-flow.h (gimple_fold_indirect_ref): Declare.
13119         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
13120         to fold an INDIRECT_REF, fall back to the old use of
13121         fold_indirect_ref_1.
13122
13123 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13124
13125         * tree-data-ref.c (subscript_dependence_tester_1): Call 
13126         free_conflict_function.
13127         (compute_self_dependence): Same.
13128
13129 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
13130
13131         PR debug/34249
13132         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
13133         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
13134         function global.
13135         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
13136         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
13137         for DWARF2_UNWIND_INFO targets.
13138
13139 2008-01-16  Richard Guenther  <rguenther@suse.de>
13140
13141         PR c/34768
13142         * c-typeck.c (common_pointer_type): Do not merge inconsistent
13143         type qualifiers for function types.
13144
13145 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
13146
13147         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
13148         loop_iterator li from previous commit.
13149
13150 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
13151
13152         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
13153
13154 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
13155
13156         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
13157         (parallelize_loops): Don't parallelize irreducible components.
13158
13159 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13160
13161         PR c++/24924
13162         * c-opts (c_common_post_options): Do not enable CPP
13163         flag_pedantic_errors by default.
13164         
13165 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
13166
13167         PR rtl-optimization/31944
13168         * cse.c (remove_pseudo_from_table): New function.
13169         (merge_equiv_classes): Use above function to remove pseudo-registers.
13170         (invalidate): Likewise.
13171
13172 2008-01-13  Richard Guenther  <rguenther@suse.de>
13173
13174         PR middle-end/34601
13175         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
13176         instead of TYPE_MODE to deal with calls from expand_one_error_var.
13177
13178 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
13179
13180         * gcse.c (cprop_jump): Call validate_unshare_change instead of
13181         validate_change to unshare the source of the PC set.
13182
13183 2008-01-12  Jan Hubicka  <jh@suse.cz>
13184
13185         PR middle-end/32135
13186         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
13187         references above array bounds.  This might trigger bounds checks for
13188         pointers to arrays.
13189
13190 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
13191
13192         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
13193         new_replaceable_dependencies.
13194
13195 2008-01-12  Doug Kwan  <dougkwan@google.com>
13196
13197         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
13198         instead of OPT_Wreturn_type in warning due to ignored return type
13199         qualifiers.
13200         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
13201         options included in -Wextra.
13202         * c.opt: New option -Wignored_qualifiers.
13203         * doc/invoke.texi (Warning Options, -Wextra): Add new option
13204         -Wignore_qualifiers.
13205         (-Wignored-qualifiers): Document.
13206         (-Wreturn-type): Remove description of functionality now handled
13207         by -Wignored-qualifiers.
13208
13209 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
13210
13211         PR ada/33788
13212         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
13213         NOP_EXPR if it is between integral types with the same precision.
13214
13215 2008-01-12  Jan Hubicka  <jh@suse.cz>
13216
13217         PR other/28023
13218         * invoke.texi (max-inline-recursive-depth): Fix default value.
13219
13220 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
13221
13222         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
13223         correct type.
13224
13225 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
13226         
13227         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
13228         
13229 2008-01-11  James E. Wilson  <wilson@specifix.com>
13230
13231         PR target/26015
13232         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
13233
13234 2008-01-11  Anatoly Sokolov <aesok@post.ru>
13235
13236         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
13237         save/restore frame pointer register and don't use 'call-prologues' 
13238         optimization in function with "OS_task" attribute.
13239
13240 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
13241
13242         PR middle-end/31309
13243         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
13244         when copying to memory.
13245
13246 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
13247
13248         PR rtl-optimization/30905
13249         * cfgcleanup.c: Include dce.h
13250         (crossjumps_occured): New global variable.
13251         (try_crossjump_bb): Exit loop after finding a fallthru edge.
13252         If something changed, set crossjumps_occured to true.
13253         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
13254         Don't add/remove fake edges to exit here...
13255         (cleanup_cfg): ...but do it here, when crossjumping.
13256         Run a fast DCE when successful crossjumps occured in the latest
13257         iteration of try_optimize_cfg.
13258
13259 2008-01-11  Richard Guenther  <rguenther@suse.de>
13260
13261         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
13262         (struct vn_unary_op_s): Likewise.
13263         (vn_reference_insert): Free old reference on hash collision.
13264
13265 2008-01-10  Raksit Ashok  <raksit@google.com>
13266
13267         PR rtl-optimization/27971
13268         * combine.c (find_split_point): Split PLUS expressions which are
13269         inside a MEM rtx, and whose first operand is complex.
13270
13271 2008-01-10  DJ Delorie  <dj@redhat.com>
13272
13273         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
13274         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
13275         (m32c_hard_regno_ok): Call the underlying function.
13276
13277 2008-01-10  Richard Guenther  <rguenther@suse.de>
13278
13279         PR middle-end/34683
13280         * tree-cfg.c (tree_merge_blocks): Do not go through the
13281         full-blown folding and stmt updating path if we just deal
13282         with virtual operands.
13283         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
13284         test for abnormal SSA_NAMEs.
13285
13286 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
13287
13288         PR middle-end/34641
13289         * reload.c (push_reload): Add assertions.  All constants from
13290         reg_equiv_constant should have been used for replacing the respective
13291         pseudo earlier.
13292         (find_reloads_address): Invoke find_reloads_address_part for
13293         constant taken from the reg_equiv_constant array.
13294
13295 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
13296
13297         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
13298         field (valnum) the first in the struct.  Replace bools with
13299         unit bit fields.
13300
13301 2008-01-10  Richard Guenther  <rguenther@suse.de>
13302
13303         PR tree-optimization/34651
13304         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
13305         types and ordering for masking and converting.
13306
13307 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
13308
13309         PR tree-optimization/34017
13310         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
13311         also for PHI_NODE expressions.
13312
13313 2008-01-09  Jan Hubicka  <jh@suse.cz>
13314
13315         PR tree-optimization/34708
13316         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
13317         based on number of case labels.
13318         (init_inline_once): Remove switch_cost.
13319         * tree-inline.h (eni_weights_d): Remove switch_cost.
13320
13321 2008-01-09  Richard Guenther  <rguenther@suse.de>
13322         Andrew Pinski  <andrew_pinski@playstation.sony.com>
13323
13324         PR middle-end/30132
13325         * gimplify.c (gimplify_cond_expr): Do not create an addressable
13326         temporary if an rvalue is ok or an lvalue is not required.
13327
13328 2008-01-09  Richard Guenther  <rguenther@suse.de>
13329
13330         PR middle-end/34458
13331         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
13332         adjust return type.
13333
13334 2008-01-09  Richard Guenther  <rguenther@suse.de>
13335
13336         PR middle-end/34679
13337         * tree.c (host_integerp): Check for sizetype only if the
13338         type is an integer type.
13339
13340 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
13341
13342         PR debug/26364
13343         * opts.c (decode_options): Disable inlining of functions called
13344         once if not in unit-at-a-time mode.
13345
13346 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
13347
13348         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
13349
13350 2008-01-08  Richard Guenther  <rguenther@suse.de>
13351
13352         PR middle-end/31863
13353         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
13354         out early if the result will be unused.
13355
13356 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
13357
13358         PR target/34709
13359         Revert:
13360
13361         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13362         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13363         for TARGET_RECIP.       
13364         
13365 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
13366         
13367         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
13368         for vectorization tuned.
13369         
13370 2008-01-08  Richard Guenther  <rguenther@suse.de>
13371
13372         PR tree-optimization/34683
13373         * tree-ssa-operands.c (operand_build_cmp): Export.
13374         * tree-ssa-operands.h (operand_build_cmp): Declare.
13375         * tree-vn.c (vuses_compare): Remove.
13376         (sort_vuses): Use operand_build_cmp.
13377         (sort_vuses_heap): Likewise.
13378         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
13379         to re-use old VEC if available.  Do not sort already sorted VUSEs.
13380         (vdefs_to_vec): Do not sort already sorted VDEFs.
13381
13382 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
13383
13384         PR middle-end/34694
13385         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
13386
13387 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
13388
13389         PR target/34702
13390         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
13391         limitations of reciprocal sequences on x86 targets.
13392
13393 2008-01-08  Richard Guenther  <rguenther@suse.de>
13394
13395         PR tree-optimization/34683
13396         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
13397
13398 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
13399
13400         PR target/34622
13401         * config/darwin.c (darwin_mergeable_string_section): Don't use
13402         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
13403
13404 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
13405
13406         PR target/34682
13407         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
13408         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
13409         predicates of op0 and op1 to register_operand.
13410         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
13411         expander using X87MODEF mode iterator.  Change predicates of
13412         op0 and op1 to register_operand.
13413         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
13414         corresponding patterns and macroize using MODEF macro.  Change
13415         predicates of op0 and op1 to register_operand and remove
13416         "m" constraint. Disparage "r" alternative with "!".
13417         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
13418         macroize using X87MODEF macro.  Change predicates of op0 and op1
13419         to register_operand and remove "m" constraint.  Disparage "r"
13420         alternative with "!".
13421         (absneg splitter with memory operands): Remove.
13422         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
13423         patterns and macroize using X87MODEF mode iterator.
13424         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
13425         Change predicate of op1 to register_operand.
13426         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
13427         for memory operands.
13428
13429 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
13430
13431         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
13432
13433 2008-01-07  Richard Guenther  <rguenther@suse.de>
13434
13435         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
13436         fields.
13437
13438 2008-01-07  Richard Guenther  <rguenther@suse.de>
13439
13440         PR tree-optimization/34683
13441         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
13442         VOPs of the needed size to save memory.  Use VEC_quick_push
13443         to save compile-time.
13444         (vdefs_to_vec): Likewise.
13445
13446 2008-01-07  Sa Liu  <saliu@de.ibm.com>
13447
13448         * config/spu/spu.md (divdf3): Genetate inline code for double
13449         division.  The implementation doesn't handle INF or NAN, therefore it
13450         only applies when -ffinite-math-only is given.
13451
13452 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
13453
13454         PR libstdc++/34680
13455         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
13456         * doc/cpp.texi ([Common Predefined Macros]): Document.
13457
13458 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
13459
13460         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
13461         order to use commutative addition instead of subtraction.
13462
13463 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13464             Mircea Namolaru  <namolaru@il.ibm.com>
13465             Vladimir Yanovsky  <yanov@il.ibm.com>
13466             Revital Eres  <eres@il.ibm.com>
13467
13468         PR tree-optimization/34263
13469         * tree-outof-ssa.c (process_single_block_loop_latch,
13470         contains_tree_r): New functions.
13471         (analyze_edges_for_bb): Call process_single_block_loop_latch
13472         function to empty single-basic-block latch block if possible.
13473
13474 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13475
13476         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13477         for TARGET_RECIP.
13478         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
13479
13480 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13481
13482         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
13483
13484 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13485
13486         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
13487
13488 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
13489
13490         PR tree-optimization/34618
13491         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
13492         flag from T.
13493
13494 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13495
13496         PR target/34673
13497         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
13498         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
13499         Update copyright year.
13500
13501         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
13502         Update copyright year.
13503         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
13504         using NR fixup.
13505
13506 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
13507
13508         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
13509         edge does not point to current bb before changing need_assert.
13510
13511 2008-01-04  Richard Guenther  <rguenther@suse.de>
13512
13513         PR middle-end/34029
13514         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
13515         for verifying purposes if they are is_gimple_min_invariant.
13516
13517 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
13518
13519         PR tree-optimization/34448
13520         PR tree-optimization/34465
13521         * gimplify.c (gimplify_init_constructor): Add new parameter
13522         notify_temp_creation.  Use it.
13523         (gimplify_modify_expr_rhs): Take volatiles into account when
13524         optimizing constructors.
13525         Do not optimize constructors if gimplify_init_constructor will dump to
13526         memory.
13527         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
13528         * gcc.c-torture/compile/pr34448.c: New.
13529
13530 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
13531
13532         PR gcov-profile/34609
13533         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
13534         return_slot if result is TREE_ADDRESSABLE.
13535
13536 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
13537
13538         * config/mips/mips.md (sqrt_condition): Tweak comment.
13539         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
13540
13541 2008-01-03  Tom Tromey  <tromey@redhat.com>
13542
13543         PR c/34457
13544         * c-common.c (c_type_hash): Handle VLAs.
13545
13546 2008-01-03  Jan Hubicka  <jh@suse.cz>
13547
13548         PR tree-optimization/31081
13549         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
13550         0 when inlining and not inlining to first basic block.
13551         (remap_decl): When var is initialized to 0, don't set default_def.
13552         (expand_call_inline): Set entry_bb.
13553         * tree-inline.h (copy_body_data): Add entry_bb.
13554
13555 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13556
13557         PR c++/34619
13558         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
13559         before returning.
13560
13561         PR tree-optimization/29484
13562         * tree-inline.c (inline_forbidden_p_2): New function.
13563         (inline_forbidden_p): Disallow inlining if some static var
13564         has an address of a local LABEL_DECL in its initializer.
13565         * doc/extend.texi (Labels as Values): Document &&foo behaviour
13566         vs. inlining.
13567
13568 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
13569
13570         PR tree-optimization/34635
13571         * tree-data-ref.c (add_other_self_distances): Make sure that the
13572         evolution step is constant.
13573
13574 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13575
13576         PR middle-end/34608
13577         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
13578
13579 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
13580
13581         * tree-sra.c (scalarize_init): Insert the generate_element_init
13582         statements after the generate_element_zero statements.
13583
13584 2008-01-02  Richard Guenther  <rguenther@suse.de>
13585
13586         PR middle-end/34093
13587         PR middle-end/31976
13588         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
13589         for very large number of operands instead of ICEing.
13590
13591 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
13592
13593         PR target/34013
13594         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
13595         while stack probing.
13596
13597 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
13598
13599         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
13600         in C++0x mode.
13601
13602 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
13603
13604         PR libmudflap/26442
13605         * tree-mudflap.c (mx_register_decls): Guard warning by
13606         !DECL_ARTIFICIAL check.
13607
13608 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
13609
13610         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
13611         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
13612         sse5_perm<mode>): Fix constraints.