OSDN Git Service

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