OSDN Git Service

PR target/34856
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2
3         PR target/34856
4         * config/spu/spu.c (spu_builtin_splats): Do not generate
5         invalid CONST_VECTOR expressions.
6         (spu_expand_vector_init): Likewise.
7
8 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
9
10         * optabs.c (libfunc_decls): New variable.
11         (libfunc_decl_hash, libfunc_decl_eq): New functions.
12         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
13         for the same function twice.
14
15 2008-06-27 Uros Bizjak  <ubizjak@gmail.com>
16
17         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
18         ix86_expand_binary_operator directly.
19         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
20         for operand 2.
21         (*ashrti3_1): Ditto.
22         (*lshrti3_1): Ditto.
23         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
24         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
25         using only one splitter.  Conditionaly execute splitter before or
26         after peephole2 pass.
27         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
28         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
29         Use only one alternative in asm template.
30         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
31         in asm template.
32         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
33         "J" operand constraint for operand 2.
34         (*ashldi3_cconly_rex64): Ditto.
35         (*ashrdi3_cmp_rex64): Ditto.
36         (*ashrdi3_cconly_rex64): Ditto.
37         (*lshrdi3_cmp_rex64): Ditto.
38         (*lshrdi3_cconly_rex64): Ditto.
39         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
40         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
41         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
42         gen_x86_shrd_1.
43
44 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
45
46         * gimplify.c (omp_is_private): Don't return true if decl
47         is not already private on #pragma omp for or #pragma omp parallel for.
48
49         PR debug/36617
50         * tree-cfg.c (struct move_stmt_d): Replace block field with
51         orig_block and new_block fields.
52         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
53         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
54         (move_block_to_fn): Replace vars_map and new_label_map arguments
55         with struct move_stmt_d pointer.
56         (replace_block_vars_by_duplicates): New function.
57         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
58         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
59         all subblocks of ORIG_BLOCK to the new function.  Call
60         replace_block_vars_by_duplicates.
61         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
62         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
63         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
64         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
65         (expand_omp): Temporarily set input_location to the location of
66         region's controlling stmt.
67         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
68         BIND_EXPR, push ctx->block_vars and gimplification vars into
69         the BIND_EXPR and its block's BLOCK_VARS instead of directly
70         into dest function.
71         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
72         there are any BLOCK_VARS.
73         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
74         OMP_PARALLEL or OMP_TASK stmt.
75         (lower_omp): Save and restore input_location around the lower_omp_1
76         call.
77
78 2008-06-27  Richard Guenther  <rguenther@suse.de>
79
80         PR tree-optimization/36400
81         PR tree-optimization/36373
82         PR tree-optimization/36344
83         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
84         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
85         (update_alias_info): Remove call clobbering code.
86         (make_constraint_to): New helper function.
87         (make_escape_constraint): Likewise.
88         (handle_rhs_call): Use it on all pointer containing arguments.
89         Also mark the static chain escaped.
90         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
91         instead of ANYTHING.
92         (make_constraint_from): New helper split out from ...
93         (make_constraint_from_anything): ... here.
94         (find_func_aliases): Add constraints for escape sites.
95         (intra_create_variable_infos): Make constraints from NONLOCAL
96         for parameters.
97         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
98         as ANYTHING.
99         (clobber_what_p_points_to): Remove.
100         (clobber_what_escaped): New function.
101         (init_base_vars): Init NONLOCAL and ESCAPED.
102         (do_sd_constraint): Do not propagate the solution from ESCAPED
103         but use ESCAPED as a placeholder.
104         (solve_graph): Likewise.
105         * tree-flow.h (clobber_what_p_points_to): Remove.
106         (clobber_what_escaped): Declare.
107         * tree-ssa-alias.c (set_initial_properties): Call it.
108         Remove code clobbering escaped pointers.
109
110 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
111
112         * function.c (allocate_struct_function): Only allocate a unique
113         funcdef_no if the decl is nonzero.
114
115 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
116
117         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
118         * config/mips/mips.c (mips_split_const_insns): New function.
119         * config/mips/mips.md (move_type): New attribute.
120         (mode): Move attribute definition earlier in file.  Add "TI"
121         and "TF".
122         (dword_mode): New attribute.
123         (type): Avoid long line.  Map "move_type"s to "type"s,
124         choosing "multi" for doubleword moves if appropriate.
125         Swap MTC/MFC comments to match their declaration order.
126         (extended_mips16): Default to "yes" if "move_type" is "sll0",
127         "type" is "branch" or "jal" is "direct".
128         (length): Handle "extended_mips16" first.  Make the default
129         "0" for "ghost" instructions.  Set the length from "move_type".
130         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
131         of "type", with "sll0" for the register alternative.  Remove the
132         "extended_mips16" attribute.
133         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
134         of "type", with "shift_shift" for the register alternative.
135         Remove the "length" attribute.
136         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
137         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
138         of "type", with "andi" for the register alternative.
139         (*zero_extendqihi2): Likewise.
140         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
141         of "andi" instead of a "type" of "arith".
142         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
143         instead of "type".
144         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
145         (mov_<store>r, *mov<mode>_ra): Likewise.
146         (extendsidi2): Use "move_type" instead of "type", with "move"
147         for the register alternative.
148         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
149         of "type", with "signext" for the register alternative.
150         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
151         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
152         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
153         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
154         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
155         (unnamed branch insn): Likewise.
156         (*movdi_gp32_fp64): Fold into...
157         (*movdi_32bit): ...here.
158         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
159         (*movdf_hardfloat): ...this new pattern.
160         (*movdf_softfloat): Remove redundant FPR alternatives.
161         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
162         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
163         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
164         the "move" attribute.
165         (*movdi_32bit): Use "move_type" instead of "type" and remove the
166         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
167         and "store" for COP loads and stores.
168         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
169         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
170         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
171         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
172         (*movtf_mips16, *movv2sf): Likewise.
173         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
174         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
175         (mfhc1<mode>): Use "move_type" instead of "move".
176         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
177         (loadgp_blockage): Remove the "length" attribute.
178         (blockage, set_got_version, update_got_version): Likewise.
179         (call_internal): Remove the "extended_mips16" attribute.
180         (call_value_internal, call_value_multiple_internal): Likewise.
181         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
182         instead of "move".
183         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
184         the "length" attribute.
185
186 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
187
188         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
189         -Wcast-qual warnings.
190         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
191         handle_pragma_pop_macro): Likewise.
192         * collect2.c (resolve_lib_name): Likewise.
193         * config/arc/arc.c (arc_init): Likewise.
194         * config/arm/arm.c (neon_builtin_compare,
195         locate_neon_builtin_icode): Likewise.
196         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section):
197         Likewise.
198         * config/bfin/bfin.c (bfin_init_machine_status,
199         bfin_optimize_loop): Likewise.
200         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
201         * config/cris/cris.c (cris_init_expanders): Likewise.
202         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
203         * config/darwin.c (machopic_indirection_eq,
204         machopic_indirection_name, machopic_output_indirection):
205         Likewise.
206         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
207         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
208         frv_optimize_membar): Likewise.
209         * config/i386/cygwin.h (mingw_scan,
210         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
211         * config/i386/cygwin1.c (mingw_scan): Likewise.
212         * config/i386/i386.c (machopic_output_stub): Likewise.
213         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
214         i386_pe_unique_section): Likewise.
215         * config/ia64/ia64.c (ia64_init_machine_status,
216         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
217         Likewise.
218         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
219         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
220         * config/m68k/m68k.c (m68k_handle_option,
221         m68k_sched_md_init_global): Likewise.
222         * config/mcore/mcore.c (mcore_mark_dllexport,
223         mcore_mark_dllimport, mcore_unique_section): Likewise.
224         * config/mips/mips.c (mips_block_move_straight,
225         mips16_rewrite_pool_refs, mips_sim_wait_regs_2,
226         mips_sim_record_set): Likewise.
227         * config/mmix/mmix.c (mmix_init_machine_status,
228         mmix_encode_section_info): Likewise.
229         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label):
230         Likewise.
231         * config/rs6000/rs6000.c (rs6000_init_machine_status,
232         print_operand_address, output_toc, redefine_groups,
233         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
234         * config/s390/s390.c (s390_init_machine_status): Likewise.
235         * config/score/score.c (score_block_move_straight,
236         score_block_move_loop_body): Likewise.
237         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
238         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
239         * emit-rtl.c (find_auto_inc): Likewise.
240         * gcc.c (translate_options, process_command): Likewise.
241         * reorg.c (dbr_schedule): Likewise.
242         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
243         * xcoffout.c (xcoffout_declare_function): Likewise.
244
245 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
246
247         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
248         ipa-pta working again.
249
250 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
251
252         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
253         genautomata.
254
255 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
256
257         * config.gcc (powerpc*-*-*): Add new core e500mc.
258         * config/rs6000/e500mc.md: New file.
259         * config/rs6000/rs6000.c (processor_costs): Add new costs for
260         e500mc.
261         (rs6000_override_options): Add e500mc case to
262         processor_target_table. Altivec and Spe options not allowed
263         with e500mc. Add isel instruction to e500mc by
264         default. Initialize rs6000_cost for e500mc.
265         (rs6000_issue_rate): Set issue rate for e500mc.
266         * config/rs6000/rs6000.h (processor_type): Add
267         PROCESSOR_PPCE500MC.
268         (ASM_CPU_SPEC): Add e500mc.
269         Set TARGET_ISEL to rs6000_isel.
270         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
271         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
272         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
273         Include e500mc.md.
274         * doc/invoke.texi: Add e500mc to list of cpus.
275
276 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
277
278         PR c/34867
279         * c-lex.c (lex_charconst): Initialize unsignedp.
280
281 2008-06-27  Olivier Hainque  <hainque@adacore.com>
282
283         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
284         documented assumptions.
285
286 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
287
288         * dwarf2out.c: Remove trailing white spaces.  Break long line
289         in comments.
290
291 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
292
293         * libfuncs.h (LTI_synchronize): New libfunc_index.
294         (synchronize_libfunc): Declare.
295         * builtins.c (expand_builtin_synchronize): Consider using
296         synchronize_libfunc before falling back on an asm blockage.
297         * config/mips/mips.c: Include libfuncs.h
298         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
299
300 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
301
302         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
303         parameter.  Copy stack_reg to r11 where appropriate.
304         (no_global_regs_above): Add gpr parameter.
305         (rs6000_stack_info): Only add padding for SPE save area if we
306         are saving SPE GPRs and CR.
307         (saveres_routine_syms): New variable.
308         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
309         Define.
310         (rs6000_savres_routine_sym): New function.
311         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
312         split out of...
313         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
314         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
315         Tweak FPR out-of-line saving.
316         (rs6000_make_savres_rtx): New function.
317         (rs6000_use_multiple_p): New function.
318         (rs6000_savres_strategy): New function.
319         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
320         out-of-line if appropriate.
321         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
322         if we are optimizing for size.
323         (GP_SAVE_INLINE): Define.
324         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
325         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
326         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
327         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
328         (*save_fpregs_<mode>): Add use of r11.
329         (*restore_gpregs_<mode>): New insn.
330         (*return_and_restore_gpregs_<mode>): New insn.
331         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
332         use r11.
333         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
334         (*restore_gpregs_spe): New insn.
335         (*return_and_restore_gpregs_spe): New insn.
336         * config/rs6000/predicates.md (save_world_operation): Fix check.
337
338 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
339
340         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
341         this point, so assert that.
342
343 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
344
345         * cfganal.c: Include vec.h and vecprim.h.
346         (compute_idf): Import from...
347         * tree-into-ssa (compute_idf): ...here.
348         * basic-block.h (compute_idf): Export.
349
350 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
351
352         * c-decl.c (merge_decls): Use !current_function_decl to check for
353         extern declaration of C99 inline function being at file scope.
354
355 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
356
357         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
358
359 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
360
361         * alias.c (record_alias_subset, init_alias_analysis): Fix
362         -Wc++-compat and/or -Wcast-qual warnings.
363         * attribs.c (lookup_attribute_spec): Likewise.
364         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
365         copy_bb, connect_traces,
366         find_rarely_executed_basic_blocks_and_cr): Likewise.
367         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
368         note_btr_set, migrate_btr_defs): Likewise.
369         * builtins.c (result_vector, expand_builtin_memcpy,
370         expand_builtin_mempcpy_args, expand_builtin_strncpy,
371         builtin_memset_read_str, expand_builtin_printf,
372         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
373         Likewise.
374         * caller-save.c (mark_set_regs): Likewise.
375         * calls.c (expand_call, emit_library_call_value_1): Likewise.
376         * cgraph.c (cgraph_edge): Likewise.
377         * combine.c (likely_spilled_retval_1): Likewise.
378         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
379         htab_counts_entry_del, get_coverage_counts): Likewise.
380         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
381         new_cselib_val): Likewise.
382         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
383         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
384         Likewise.
385         * df-core.c (df_compact_blocks): Likewise.
386         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
387         * df-scan.c (df_grow_reg_info, df_ref_create,
388         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
389         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
390         df_record_entry_block_defs, df_record_exit_block_uses,
391         df_bb_verify): Likewise.
392         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
393         DF_REF_EXTRACT_MODE_CONST): New.
394         * dominance.c (get_immediate_dominator, get_dominated_by,
395         nearest_common_dominator, root_of_dom_tree,
396         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
397         -Wc++-compat and/or -Wcast-qual warnings.
398         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
399         record_store, replace_read, check_mem_read_rtx, scan_insn,
400         dse_step1, dse_record_singleton_alias_set): Likewise.
401         * dwarf2asm.c (dw2_force_const_mem): Likewise.
402
403 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
404
405         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
406         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
407         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
408         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
409         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
410         add_ranges_num, add_ranges_by_labels, file_info_cmp,
411         file_name_acquire, output_file_names, add_const_value_attribute,
412         premark_used_types_helper, file_table_eq, file_table_hash,
413         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
414         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
415         -Wcast-qual warnings.
416         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
417         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
418         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
419         gen_reg_rtx, start_sequence, init_emit): Likewise.
420         * et-forest.c (et_new_occ, et_new_tree): Likewise.
421         * except.c (init_eh_for_function, gen_eh_region,
422         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
423         arh_to_landing_pad, arh_to_label, add_action_record,
424         add_call_site, switch_to_exception_section): Likewise.
425         * expmed.c (synth_mult): Likewise.
426         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
427         store_expr): Likewise.
428         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
429         Likewise.
430         * function.c (assign_stack_temp_for_type,
431         allocate_struct_function, match_asm_constraints_1): Likewise.
432         * gcov-io.c (gcov_allocate): Likewise.
433         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
434         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
435         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
436         record_one_set, insert_expr_in_table, insert_set_in_table,
437         dump_hash_table, compute_hash_table_work, alloc_hash_table,
438         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
439         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
440         -Wcast-qual warnings.
441
442 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
443
444         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
445         -Wcast-qual warnings.
446         * gcc.c (process_command): Likewise.
447         * genattrtab.c (oballoc): Use XOBNEW.
448         (oballocvec): Define.
449         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
450         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
451         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
452         -Wc++-compat and/or -Wcast-qual warnings.
453         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
454         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
455         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
456         gen_presence_absence_set, gen_automaton, gen_regexp_el,
457         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
458         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
459         add_excls, process_presence_absence_names,
460         process_presence_absence_patterns, add_presence_absence,
461         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
462         get_free_state, add_arc, get_free_automata_list_el,
463         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
464         transform_3, cache_presence, create_ainsns, create_automata,
465         create_state_ainsn_table, dfa_insn_code_enlarge,
466         output_trans_func, output_min_issue_delay_func,
467         output_dead_lock_func, output_reset_func,
468         output_get_cpu_unit_code_func, output_dfa_start_func,
469         expand_automata): Likewise.
470         * genextract.c (gen_insn): Likewise.
471         * gengtype-lex.l: Likewise.
472         * gengtype.c (read_input_list, adjust_field_type,
473         process_gc_options): Likewise.
474         * genoutput.c (note_constraint): Likewise.
475         * genpreds.c (mangle, add_constraint): Likewise.
476         * genrecog.c (process_define_predicate, new_decision,
477         add_to_sequence): Likewise.
478         * gensupport.c (record_insn_name): Likewise.
479
480 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
481
482         * config/i386/driver-i386.c (detect_caches_amd,
483         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
484         and/or -Wcast-qual warnings.
485         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
486         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
487         gt_pch_save): Likewise.
488         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
489         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
490         * global.c (compute_regsets): Likewise.
491         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
492         finish_graph_dump_file): Likewise.
493         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
494         unlink_bb_notes): Likewise.
495         * integrate.c (get_hard_reg_initial_val): Likewise.
496         * ipa-prop.c (ipa_push_func_to_list): Likewise.
497         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
498         * local-alloc.c (update_equiv_regs): Likewise.
499         * loop-invariant.c (check_invariant_table_size,
500         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
501         Likewise.
502         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
503         altered_reg_used, mark_altered): Likewise.
504         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
505         insert_var_expansion_initialization,
506         combine_var_copies_in_loop_exit, apply_opt_in_copies,
507         release_var_copies): Likewise.
508         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
509         analyze_matrix_decl, add_allocation_site, analyze_transpose,
510         analyze_accesses_for_phi_node, check_var_notmodified_p,
511         check_allocation_function, find_sites_in_func,
512         record_all_accesses_in_func, transform_access_sites,
513         transform_allocation_sites): Likewise.
514         * omp-low.c (new_omp_region, create_omp_child_function_name,
515         check_omp_nesting_restrictions, check_combined_parallel,
516         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
517         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
518         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
519         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
520         Likewise.
521         * opts-common.c (prune_options): Likewise.
522         * opts.c (add_input_filename, print_filtered_help,
523         get_option_state): Likewise.
524         * params.c (add_params): Likewise.
525         * passes.c (set_pass_for_id, next_pass_1,
526         do_per_function_toporder, pass_fini_dump_file): Likewise.
527         * postreload.c (reload_cse_simplify_operands): Likewise.
528         * predict.c (tree_predicted_by_p, tree_predict_edge,
529         clear_bb_predictions, combine_predictions_for_bb): Likewise.
530
531 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
532
533         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
534         warnings.
535         * recog.c (check_asm_operands, validate_change_1): Likewise.
536         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
537         subst_asm_stack_regs): Likewise.
538         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
539         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
540         * regmove.c (reg_is_remote_constant_p): Likewise.
541         * regrename.c (regrename_optimize, scan_rtx_reg,
542         kill_clobbered_value, kill_set_value, kill_autoinc_value):
543         Likewise.
544         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
545         regstat_compute_calls_crossed): Likewise.
546         * reload1.c (init_reload, new_insn_chain,
547         has_nonexceptional_receiver, reload, copy_reloads,
548         calculate_needs_all_insns, init_elim_table): Likewise.
549         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
550         * rtl.c (shallow_copy_rtx_stat): Likewise.
551         * rtlanal.c (parms_set): Likewise.
552         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
553         sbitmap_resize, sbitmap_vector_alloc): Likewise.
554         * sched-ebb.c (earliest_block_with_similiar_load,
555         add_deps_for_risky_insns): Likewise.
556         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
557         schedule_region): Likewise.
558         * see.c (eq_descriptor_pre_extension,
559         hash_descriptor_pre_extension, hash_del_pre_extension,
560         eq_descriptor_properties, hash_descriptor_properties,
561         hash_del_properties, see_seek_pre_extension_expr,
562         see_initialize_data_structures, see_print_register_properties,
563         see_print_pre_extension_expr, see_delete_merged_def_extension,
564         see_delete_unmerged_def_extension, see_emit_use_extension,
565         see_pre_delete_extension, see_map_extension, see_commit_changes,
566         see_analyze_merged_def_local_prop,
567         see_analyze_merged_def_local_prop,
568         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
569         see_set_prop_merged_def, see_set_prop_unmerged_def,
570         see_set_prop_unmerged_use, see_print_one_extension,
571         see_merge_one_use_extension, see_merge_one_def_extension,
572         see_store_reference_and_extension, see_update_uses_relevancy,
573         see_update_defs_relevancy): Likewise.
574         * statistics.c (hash_statistics_hash, hash_statistics_eq,
575         hash_statistics_free, curr_statistics_hash): Likewise.
576         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
577         expand_asm_operands, expand_return, case_bit_test_cmp,
578         expand_case): Likewise.
579         * stor-layout.c (start_record_layout): Likewise.
580         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
581         gt_pch_save_stringpool): Likewise.
582         * tree-data-ref.c (hash_stmt_vertex_info,
583         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
584         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
585
586 2008-06-25 Uros Bizjak  <ubizjak@gmail.com>
587
588         PR target/36627
589         * config/i386/i386.md : Change constraints of HImode and QImode
590         immediate operands from "i" to "n".  Change SImode "ni" constraint to
591         "i" and SImode "rmi" constraint to "g".  Remove all constraints
592         from const0_operand and const1_operand predicated operands.
593         (i): Change QImode and HImode attribute from "i" to "n".
594         (*subqi_2): Change HImode operands to QImode.
595         (*subqi_3): Ditto.
596
597 2008-06-25  Olivier Hainque  <hainque@adacore.com>
598
599         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
600         sed substitutions.
601
602 2008-06-25  Richard Guenther  <rguenther@suse.de>
603
604         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
605         not overflow the result type.
606
607 2008-06-25  Richard Guenther  <rguenther@suse.de>
608
609         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
610         (vn_lookup): Likewise.
611
612 2008-06-25  Richard Guenther  <rguenther@suse.de>
613
614         PR tree-optimization/35518
615         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
616         * tree-sra.c (instantiate_element): Use fold_build3 to build
617         BIT_FIELD_REFs.
618         (try_instantiate_multiple_fields): Likewise.
619
620 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
621
622         * config/rs6000/rs6000.md: Change all string instruction's clobber to
623         be early clobbers.
624
625 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
626
627         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
628         use_backchain_to_restore_sp to true
629         if the offset of the link register save area would go over the 32k - 1
630         offset limit of the load
631         instructions.
632
633 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
634
635         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
636         anchor for the type-punning blurb.  Cross-reference "Structures
637         unions enumerations and bit-fields implementation".  Provide a
638         cast-through-pointer example.  Make final sentence self-contained.
639         * doc/implement-c.texi (Structures unions enumerations and
640         bit-fields implementation): Cross-reference the type-punning blurb
641         in the -fstrict-aliasing documentation.
642
643 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
644
645         PR middle-end/36594
646         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
647         the memory instead of the memory itself for the save area.
648
649 2008-06-24  Olivier Hainque  <hainque@adacore.com>
650             Nicolas Roche  <roche@adacore.com>
651
652         * gengtype.c (srcdir_len): size_t instead of int.
653         (get_file_realbasename): New function.  For F a filename, the real
654         basename of F, with all the path components stripped.
655         (get_file_srcdir_relative_path): New function.  For F a filename, the
656         relative path to F from $(srcdir).
657         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
658         get_file_realbasename.  Adjust the head comment.
659         (get_prefix_langdir_index): New function. For F a filename, return the
660         lang_dir_names[] relative index of the language directory that is
661         a prefix in F.
662         (get_file_langdir): For F a filename, return the name of the language
663         directory where F is located.
664         (get_file_gtfilename): New function. The gt- output file name for an
665         input filename F.
666         (get_output_file_with_visibility): Replace in-line computations with
667         uses of get_file_gtfilename and get_prefix_langdir_index.
668         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
669
670 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
671
672         PR tree-optimization/36504
673         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
674         references without base address.
675
676 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
677
678         PR middle-end/36584
679         * calls.c (expand_call): Increase alignment for recursive functions.
680
681 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
682
683         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
684         (TARGET_FUNCTION_VALUE): New define.
685         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
686         * config/avr/avr.h (FUNCTION_VALUE): Remove.
687
688 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
689
690         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
691         (fmod<mode>3): Ditto.
692         (remainderxf3): Ditto.
693         (remainder<mode>3): Ditto.
694
695 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
696
697         PR target/36533
698         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
699         REG is a hard register.
700
701         PR tree-optimization/36508
702         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
703         499, don't check it at all in release compilers.
704
705 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
706
707         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
708         together with SSE_TARGET_MATH to disable insn pattern.
709         (*fop_<MODEF:mode>_2_i387): Ditto.
710         (*fop_<MODEF:mode>_3_i387): Ditto.
711
712 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
713
714         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
715         
716 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
717
718         PR middle-end/34906
719         * gimplify.c (gimplify_asm_expr): Check the return code of
720         parse_output_constraint call, set function return and is_inout
721         value if it failed.
722
723 2008-06-22  Ian Lance Taylor  <iant@google.com>
724
725         * c-lex.c (narrowest_unsigned_type): Change itk to int.
726         (narrowest_signed_type): Likewise.
727         * c-typeck.c (c_common_type): Change local variable mclass to enum
728         mode_class, twice.
729         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
730         tcc_comparison, not the tree code itself.
731         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
732         (c_expand_expr): Cast modifier to enum expand_modifier.
733         * c-common.h (C_RID_CODE): Add casts.
734         (C_SET_RID_CODE): Define.
735         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
736         (c_lex_one_token): Add cast to avoid warning.
737         (c_parser_objc_type_name): Rename local typename to type_name.
738         (check_no_duplicate_clause): Change code parameter to enum
739         omp_clause_code.
740         (c_parser_omp_var_list_parens): Change kind parameter to enum
741         omp_clause_code.
742         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
743         c_parser_omp_list_var_parens.
744         (c_parser_omp_threadprivate): Likewise.
745         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
746         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
747         * c-format.c (NO_FMT): Define.
748         (printf_length_specs): Use NO_FMT.
749         (asm_fprintf_length_specs): Likewise.
750         (gcc_diag_length_specs): Likewise.
751         (scanf_length_specs): Likewise.
752         (strfmon_length_specs): Likewise.
753         (gcc_gfc_length_specs): Likewise.
754         (printf_flag_specs): Change 0 to STD_C89.
755         (asm_fprintf_flag_specs): Likewise.
756         (gcc_diag_flag_specs): Likewise.
757         (gcc_cxxdiag_flag_specs): Likewise.
758         (scanf_flag_specs): Likewise.
759         (strftime_flag_specs): Likewise.
760         (strfmon_flag_specs): Likewise.
761         (print_char_table): Likewise.
762         (asm_fprintf_char_table): Likewise.
763         (gcc_diag_char_table): Likewise.
764         (gcc_tdiag_char_table): Likewise.
765         (gcc_cdiag_char_table): Likewise.
766         (gcc_cxxdiag_char_table): Likewise.
767         (gcc_gfc_char_table): Likewise.
768         (scan_char_table): Likewise.
769         (time_char_table): Likewis.
770         (monetary_char_table): Likewise.
771         * c-format.h (BADLEN): Likewise.
772
773 2008-06-21  Ian Lance Taylor  <iant@google.com>
774
775         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
776         Define END_OF_BASE_TREE_CODES around inclusion.
777         * tree.c (tree_code_type): New global array.
778         (tree_code_length, tree_code_name): Likewise.
779         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
780         $(lang_tree_files).
781         (all-tree.def, s-alltree): New targets.
782         (gencheck.h, s-gencheck): Remove.
783         (tree.o): Depend upon all-tree.def.
784         (build/gencheck.o): Remove gencheck.h dependency.
785         (mostlyclean): Don't remove gencheck.h.
786         * c-common.h (enum c_tree_code): Remove.
787         * c-lang.c (tree_code_type): Remove.
788         (tree_code_length, tree_code_name): Remove.
789         * gencheck.c (tree_codes): Include all-tree.def, rather than
790         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
791         after it is used.
792         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
793         than tree.def.
794         * cp/cp-tree.h (enum cplus_tree_code): Remove.
795         (operator_name_info): Size to MAX_TREE_CODES.
796         (assignment_operator_name_info): Likewise.
797         * cp/cp-lang.c (tree_code_type): Remove.
798         (tree_code_length, tree_code_name): Remove.
799         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
800         (assignment_operator_name_info): Likewise.
801         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
802         MAX_TREE_CODES.
803         * cp/mangle.c (write_expression): Likewise.
804         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
805         * fortran/f95-lang.c (tree_code_type): Remove.
806         (tree_code_length, tree_code_name): Remove.
807         * java/java-tree.h (enum java_tree_code): Remove.
808         * java/lang.c (tree_code_type): Remove.
809         (tree_code_length, tree_code_name): Remove.
810         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
811         * objc/objc-act.h (enum objc_tree_code): Remove.
812         * objc/objc-lang.c (tree_code_type): Remove.
813         (tree_code_length, tree_code_name): Remove.
814         * objcp/objcp-lang.c (tree_code_type): Remove.
815         (tree_code_length, tree_code_name): Remove.
816         * ada/ada-tree.h (enum gnat_tree_code): Remove.
817         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
818         * ada/misc.c (tree_code_type): Remove.
819         (tree_code_length, tree_code_name): Remove.
820
821 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
822
823         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
824         the grand_bitmap_obstack.
825
826 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
827
828         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
829         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
830         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
831         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
832         move_stmt_r, new_label_mapper): Likewise.
833         * tree-complex.c (cvc_lookup): Likewise.
834         * tree-dfa.c (create_function_ann): Likewise.
835         * tree-dump.c (dump_register): Likewise.
836         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
837         find_phi_replacement_condition): Likewise.
838         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
839         tree_function_versioning): Likewise.
840         * tree-into-ssa.c (cmp_dfsnum): Likewise.
841         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
842         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
843         get_nonlocal_debug_decl, convert_nonlocal_reference,
844         convert_nonlocal_omp_clauses, get_local_debug_decl,
845         convert_local_reference, convert_local_omp_clauses,
846         convert_nl_goto_reference, convert_nl_goto_receiver,
847         convert_tramp_reference, convert_call_expr): Likewise.
848         * tree-outof-ssa.c (contains_tree_r): Likewise.
849         * tree-parloops.c (reduction_phi, initialize_reductions,
850         eliminate_local_variables_1, add_field_for_reduction,
851         add_field_for_name, create_phi_for_local_result,
852         create_call_for_reduction_1, create_loads_for_reductions,
853         create_stores_for_reduction, create_loads_and_stores_for_name):
854         Likewise.
855         * tree-phinodes.c (allocate_phi_node): Likewise.
856         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
857         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
858         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
859         * tree-ssa-coalesce.c (compare_pairs): Likewise.
860         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
861         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
862         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
863         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
864         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
865         vn_nary_op_insert): Likewise.
866         * tree-ssa.c (redirect_edge_var_map_add,
867         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
868         * tree-vectorizer.c (vectorize_loops): Likewise.
869         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
870         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
871         tree_cons_stat, build1_stat, build_variant_type_copy,
872         decl_init_priority_lookup, decl_fini_priority_lookup,
873         decl_priority_info, decl_restrict_base_lookup,
874         decl_restrict_base_insert, decl_debug_expr_lookup,
875         decl_debug_expr_insert, decl_value_expr_lookup,
876         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
877         type_hash_add, get_file_function_name, tree_check_failed,
878         tree_not_check_failed, tree_range_check_failed,
879         omp_clause_range_check_failed, build_omp_clause,
880         build_vl_exp_stat): Likewise.
881         * value-prof.c (gimple_histogram_value,
882         gimple_duplicate_stmt_histograms): Likewise.
883         * var-tracking.c (attrs_list_insert, attrs_list_copy,
884         unshare_variable, variable_union_info_cmp_pos, variable_union,
885         dataflow_set_different_1, dataflow_set_different_2,
886         vt_find_locations, variable_was_changed, set_variable_part,
887         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
888         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
889         section_entry_hash, object_block_entry_eq,
890         object_block_entry_hash, create_block_symbol,
891         initialize_cold_section_name, default_function_rodata_section,
892         strip_reg_name, set_user_assembler_name, const_desc_eq,
893         build_constant_desc, output_constant_def, lookup_constant_def,
894         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
895         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
896         default_internal_label): Likewise.
897         * varray.c (varray_init, varray_grow): Likewise.
898         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
899
900 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
901
902         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
903         operators for "test" insn.  Macroize insn using SWI mode macro.
904         (*jcc_fused_2): Ditto.
905         (*jcc_fused_3): Macroize insn using SWI mode macro.
906         (*jcc_fused_4): Ditto.
907
908 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
909
910         * tree-ssa-pre.c: Fix typo in comment.
911         (init_antic, fini_antic): Add explicit funtions for
912         initializing and deinitializing ANTIC and AVAIL sets.
913         (create_expression_by_pieces): Fix typo in comment.
914         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
915         (execute_pre): Eventually dump details about ANTIC_IN.
916
917 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
918
919         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
920         * gcc.c (translate_options, init_spec, store_arg, read_specs,
921         add_to_obstack, file_at_path, find_a_file, execute,
922         add_preprocessor_option, add_assembler_option, add_linker_option,
923         process_command, insert_wrapper, do_option_spec, do_self_spec,
924         spec_path, do_spec_1, is_directory, main, used_arg,
925         getenv_spec_function): Likewise.
926         * tlink.c (symbol_hash_lookup, file_hash_lookup,
927         demangled_hash_lookup, symbol_push, file_push, frob_extension):
928         Likewise.
929
930 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
931
932         * doc/rtl.texi: Updated subreg section.
933
934 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
935
936         PR c++/36523
937         * cgraphunit.c (cgraph_process_new_functions): Don't clear
938         node->needed and node->reachable.
939         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
940         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
941         (expand_task_call): Don't call expand_task_copyfn.
942         (expand_task_copyfn): Renamed to...
943         (finalize_task_copyfn): ... this.
944
945 2008-06-19  Jan Hubicka  <jh@suse.cz>
946
947         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
948         clobbering framepointer.
949
950 2008-06-19  Jan Hubicka  <jh@suse.cz>
951
952         * tree-optimize.c (execute_early_local_optimizations): Set
953         cgraph_state only at first invocation.
954
955 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
956
957         * system.h (-Wc++-compat): Activate as a warning, no an error.
958
959 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
960
961         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
962         instead of "#" in insn asm template.
963         (*jcc_fused_2): Ditto.
964
965 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
966
967         * config/i386/i386.h (ix86_tune_indices)
968         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
969         (TARGET_FUSE_CMP_AND_BRANCH): New define.
970         * config/i386/i386.md (*jcc_fused_1): New insn pattern
971         (*jcc_fused_2): Ditto.
972         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
973         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
974         (print operand): Handle 'E' and 'e' code.
975
976 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
977
978         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
979         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
980         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
981
982 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
983
984         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
985         node->decl.
986         (cgraph_expand_function): Use local copy of decl.
987         (cgraph_expand_all_functions): Remove redundant initialization of
988         order_pos.
989         (cgraph_optimize): Reword internal_error message.
990
991 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
992
993         * arm-protos.h (arm_return_in_memory): Remove public
994         arm_return_in_memory() prototype.
995         * arm.c (arm_return_in_memory): Add static prototype, add target
996         hook macro, change definition and comments.
997         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
998
999 2008-06-19  Ben Elliston  <bje@au.ibm.com>
1000
1001         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
1002         real.c: Remove references to IEEE 754R.
1003         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
1004         * doc/libgcc.texi (Decimal float library routines): Likewise.
1005
1006 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1007
1008         * targhooks.h (struct gcc_target): New member unwind_word_mode.
1009         (default_unwind_word_mode): Add prototype.
1010         * targhooks.c (default_unwind_word_mode): New function.
1011         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
1012         instead of word_mode.
1013         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
1014         (TARGET_INITIALIZER): Use it.
1015
1016         * c-common.c (handle_mode_attribute): Support "unwind_word"
1017         mode attribute.
1018         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
1019
1020         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
1021         word_mode to access SjLj_Function_Context member "data".
1022         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
1023         conversion from targetm.eh_return_filter_mode () to
1024         targetm.unwind_word_mode () if they differ.
1025
1026         * builtin-types.def (BT_UNWINDWORD): New primitive type.
1027         (BT_FN_UNWINDWORD_PTR): New function type.
1028         (BT_FN_WORD_PTR): Remove.
1029         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
1030         * except.c (expand_builtin_extend_pointer): Convert pointer to
1031         targetm.unwind_word_mode () instead of word_mode.
1032
1033         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
1034         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
1035         (spu_unwind_word_mode): New function.
1036         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
1037         (TARGET_UNWIND_WORD_MODE): Define.
1038         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
1039
1040 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1041
1042         * config/spu/spu.c (reg_align): Remove.
1043         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
1044         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
1045         (spu_split_store): Likewise.
1046
1047 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
1048
1049         * gcc/tree-vn.c: Fix typo in comment.
1050
1051 2008-06-18  Jan Hubicka  <jh@suse.cz>
1052
1053         * cgraphunit.c (cgraph_optimize): Output debug info when doing
1054         toplevel reorder too.
1055
1056 2008-06-18  Jan Hubicka  <jh@suse.cz>
1057
1058         * c-opts.c (c_common_post_options): PCH is not compatible with
1059         no-unit-at-a-time.
1060         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
1061         -fno-toplevel-reorder by default now.
1062
1063 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1064
1065         PR documentation/30739
1066         * doc/install.texi (Prerequisites): Document dependency on awk.
1067
1068 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
1069             Ian Lance Taylor  <iant@google.com>
1070
1071         PR rtl-optimization/35604
1072         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
1073         only want to change jump destinations, not eventual label comparisons.
1074
1075 2008-06-16  Jan Hubicka  <jh@suse.cz>
1076
1077         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
1078         syntax errors.
1079         (cgraph_analyze_function): Likewise.
1080
1081 2008-06-16  Jan Hubicka  <jh@suse.cz>
1082
1083         * cgraph.h (cgraph_mark_if_needed): New function.
1084         * cgraphunit.c (cgraph_mark_if_needed): New function.
1085         * c-decl.c (duplicate_decl): Use it.
1086
1087 2008-06-16  Jan Hubicka  <jh@suse.cz>
1088
1089         * cgraph.c (cgraph_add_new_function): When in expansion state, do
1090         lowering.
1091
1092 2008-06-16  Jan Hubicka  <jh@suse.cz>
1093
1094         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
1095
1096 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
1097             Kazu Hirata  <kazu@codesourcery.com>
1098             Maxim Kuvyrkov  <maxim@codesourcery.com
1099
1100         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
1101         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
1102         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
1103         EXTRA_SPEC_FUNCTIONS.
1104         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
1105         (DRIVER_SELF_SPECS): Adjust.
1106         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
1107         * config/mips/st.h, config/mips/t-st: New.
1108         * config/mips/driver-native.c, config/mips/x-native: New.
1109         * doc/invoke.texi (MIPS): Document 'native' value for -march and
1110         -mtune options.
1111
1112 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
1113
1114         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
1115         from it.
1116         (ISA_HAS_FP_CONDMOVE): New macro.
1117         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
1118         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
1119         (ISA_HAS_NMADD3_NMSUB3): New macro.
1120         * config/mips/mips.c (mips_rtx_costs): Update.
1121         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
1122         compiling for ST Loongson 2E/2F.
1123         (madd<mode>): Rename to madd4<mode>.  Update.
1124         (madd3<mode>): New pattern.
1125         (msub<mode>): Rename to msub4<mode>.  Update.
1126         (msub3<mode>): New pattern.
1127         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
1128         (nmadd3<mode>): New pattern.
1129         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
1130         (nmadd3<mode>_fastmath): New pattern.
1131         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
1132         (nmsub3<mode>): New pattern.
1133         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
1134         (nmsub3<mode>_fastmath): New pattern.
1135         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
1136
1137 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
1138
1139         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
1140         (DF_REF_INSN_INFO): New.
1141         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
1142         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
1143         with a NULL DF_REF_INSN_INFO.
1144         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
1145         DF_INSN_SET.
1146         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
1147         DF_INSN_INFO_EQ_USES): New.
1148         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
1149         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
1150         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
1151         * df-core.c: Update comment for above changes.
1152         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
1153         DF_INSN_UID_* macros.
1154         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
1155         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
1156         insn rtx.  Update all callers.
1157         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
1158         df_ref_create_structure, df_insn_refs_collect): Likewise.
1159         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
1160         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
1161         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
1162         macros to access the insn refs.
1163         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
1164         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
1165         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
1166         for accessing the refs.
1167         (try_fwprop_subst): Likewise.
1168         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
1169         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
1170         for accessing the refs.
1171         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
1172         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
1173         to look at the insn refs.
1174         (record_uses): Likewise.
1175         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
1176         function anymore.
1177         (mark_artificial_uses): Don't mark_insn for artificial refs.
1178         (mark_reg_rependencies): Likewise.
1179
1180         * doc/rtl.texi: Remove documentation of ADDRESSOF.
1181
1182 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1183
1184         * configure: Regenerate.
1185
1186 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1187
1188         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
1189         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1190         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1191
1192 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1193
1194         * config/avr/avr.c (avr_mcu_t): Add attiny167.
1195         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1196         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1197
1198 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1199
1200         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
1201         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1202         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1203
1204 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
1205
1206         * tree-ssa-sccvn.c: Fix format of comments.
1207
1208 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
1209
1210         * cgraph.c: Remove unneeded forward declarations of eq_node()
1211         and hash_node().
1212
1213 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
1214
1215         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
1216         REG_RETVAL notes.
1217         (see_update_relevancy): Likewise.
1218         * fwprop.c (try_fwprop_subst): Likewise.
1219         * rtlanal.c (noop_move_p): Likewise.
1220         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
1221         notes to non-existing libcall blocks.
1222         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
1223         Remove orig_set.
1224         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
1225         (dead_libcall_p): Remove.
1226         (delete_trivially_dead_insns): Don't use it.
1227         * web.c (union_defs): Remove comment about keeping nops.
1228         * gcse.c (hash_scan_insn): Don't take libcall pointers.
1229         (compute_hash_table_work): Don't track libcall notes.
1230         (do_local_cprop): Don't take libcall pointers.  Don't update
1231         libcall notes.
1232         (adjust_libcall_notes): Deleted.
1233         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
1234         ever have existed in the first place).
1235         (replace_store_insn): Don't try to remove libcall notes.
1236         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
1237         (resolve_reg_notes): Don't call them.
1238         (resolve_simple_move): Likewise.
1239         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
1240         Don't remove REG_RETVAL notes.
1241         * emit-rtl.c (try_split): Don't update libcall notes.
1242         (emit_copy_of_insn_after): Dito.
1243         * cselib.c (cselib_current_insn_in_libcall): Remove.
1244         (cselib_process_insn): Don't set/clear it.
1245         (new_elt_loc_list): Don't record it.
1246         (cselib_init): Don't initialize it.
1247         * cselib.c (struct elt_loc_list): Remove in_libcall field.
1248         * loop-invariant.c (find_invariant_insn): Don't look for libcall
1249         notes.
1250         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
1251         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
1252         (init_deps): Don't initialize it.
1253         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
1254         * combine.c (delete_noop_moves): Don't update libcall notes.
1255         (can_combine_p): Remove now pointless #if 0 block.
1256         (try_combine): Remove another obsolete #if 0 block.
1257         (distribute_notes): Don't distribute libcall notes.
1258         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
1259         * dce.c (libcall_dead_p): Remove.
1260         (delete_unmarked_insns): Don't handle libcall blocks.
1261         (preserve_libcall_for_dce): Remove.
1262         (prescan_insns_for_dce): Don't special-case libcall block insns.
1263         * reload1 (reload): Don't handle libcall notes. 
1264         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
1265         documentation.
1266
1267 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
1268
1269         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
1270         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1271         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1272
1273 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
1274
1275         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
1276         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1277         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1278
1279 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1280
1281         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
1282
1283 2008-06-16  Ira Rosen  <irar@il.ibm.com>
1284
1285         PR tree-optimization/36493
1286         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
1287         the arguments list. Use VECTYPE to create vector pointer.
1288         (vectorizable_store): Fail if accesses through a pointer to vectype
1289         do not alias the original memory reference operands.
1290         Call vect_create_data_ref_ptr without the removed argument.
1291         (vectorizable_load): Likewise.
1292         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
1293         removed argument.
1294
1295 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
1296
1297         PR target/36336
1298         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
1299         reg_equiv_constant.
1300
1301 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1302
1303         * config/mips/loongson2ef.md: New file.
1304         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1305         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1306         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1307         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
1308         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
1309         and loongson_2f.
1310         (loongson2ef.md): New include.
1311         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
1312         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
1313         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
1314         (loongson_gt_<mode>, loongson_extract_halfword)
1315         (loongson_insert_halfword_0, loongson_insert_halfword_2)
1316         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
1317         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
1318         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
1319         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
1320         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
1321         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
1322         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
1323         (vec_interleave_low<mode>): Define type attribute.
1324         * config/mips/mips.c (mips_ls2): New static variable.
1325         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
1326         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
1327         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
1328         Implement target scheduling hooks.
1329         (mips_multipass_dfa_lookahead): Update to handle tuning for
1330         Loongson 2E/2F.
1331         (mips_sched_init): Initialize data for Loongson scheduling.
1332         (mips_ls2_variable_issue): New static function.
1333         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
1334         Add sanity check.
1335         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
1336         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
1337         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
1338         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
1339         Handle ST Loongson 2E/2F cores.
1340         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
1341
1342 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1343
1344         * omp-low.c (extract_omp_for_data): Fix comment typo.
1345         * c.opt: Fix typo.
1346
1347 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1348
1349         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
1350         FIXME note about gcc/config.guess.
1351         * doc/options.texi (Option file format): Remove non-ASCII bytes.
1352         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
1353         * doc/cppopts.texi: Likewise.
1354         * doc/extend.texi: Likewise.
1355         * doc/gcc.texi: Likewise.
1356         * doc/gccint.texi: Likewise.
1357         * doc/gcov.texi: Likewise.
1358         * doc/gty.texi: Likewise.
1359         * doc/hostconfig.texi: Likewise.
1360         * doc/install.texi: Likewise.
1361         * doc/invoke.texi: Likewise.
1362         * doc/loop.texi: Likewise.
1363         * doc/makefile.texi: Likewise.
1364         * doc/md.texi: Likewise.
1365         * doc/passes.texi: Likewise.
1366         * doc/tm.texi: Likewise.
1367         * doc/tree-ssa.texi: Likewise.
1368         * doc/trouble.texi: Likewise.
1369
1370 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
1371             Nathan Sidwell  <nathan@codesourcery.com>
1372             Maxim Kuvyrkov  <maxim@codesourcery.com>
1373             Richard Sandiford  <rdsandiford@googlemail.com>
1374         
1375         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
1376         * config/mips/mips-protos.h (mips_expand_vector_init): New.
1377         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
1378         builtins.
1379         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
1380         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
1381         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
1382         V8QImode cases.
1383         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
1384         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
1385         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
1386         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
1387         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
1388         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
1389         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
1390         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
1391         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
1392         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
1393         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
1394         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
1395         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
1396         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
1397         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
1398         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
1399         (mips_builtins): Add Loongson builtins.
1400         (mips_loongson_2ef_bdesc): New.
1401         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
1402         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
1403         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
1404         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
1405         New.
1406         (mips_expand_vector_init): New.
1407         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
1408         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
1409         if appropriate.
1410         * config/mips/mips.md: Add unspec numbers for Loongson
1411         builtins.  Include loongson.md.
1412         (MOVE64): Include Loongson vector modes.
1413         (SPLITF): Include Loongson vector modes.
1414         (HALFMODE): Handle Loongson vector modes.
1415         * config/mips/loongson.md: New.
1416         * config/mips/loongson.h: New.
1417         * config.gcc: Add loongson.h header for mips*-*-* targets.
1418         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
1419
1420 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
1421
1422         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
1423         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
1424         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
1425         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
1426         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
1427         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
1428         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
1429         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
1430         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
1431         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
1432         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
1433         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
1434         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
1435         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
1436         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
1437         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
1438         Remove use_fixproto=yes.
1439         (ia64*-*-hpux*): Remove comment about using fixproto.
1440         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
1441
1442 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1443
1444         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
1445         library rebuilds.
1446         * configure: Regenerate.
1447
1448 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1449
1450         PR middle-end/36520
1451         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
1452         before evaluating it.
1453
1454 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
1455
1456         PR c/36507
1457         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
1458         nested inline functions.
1459         (start_decl, start_function): Don't invert DECL_EXTERNAL
1460         for nested inline functions.
1461
1462 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1463
1464         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
1465         splits that must be made for correctness.
1466
1467 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1468
1469         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
1470         (AVAIL_NON_MIPS16): Likewise.
1471         (mips_builtin_description): Replace target_flags with a predicate.
1472         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
1473         (dspr2_32): New availability predicates.
1474         (MIPS_BUILTIN): New macro.
1475         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
1476         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
1477         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
1478         Replace the TARGET_FLAGS parameters with AVAIL parameters.
1479         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
1480         (mips_dsp_32only_bdesc): Merge into...
1481         (mips_builtins): ...this new array.
1482         (mips_bdesc_map, mips_bdesc_arrays): Delete.
1483         (mips_init_builtins): Update after above changes.
1484         (mips_expand_builtin_1): Merge into...
1485         (mips_expand_builtin): ...here and update after above changes.
1486
1487 2008-06-12  Paul Brook  <paul@codesourcery.com>
1488
1489         * longlong.h (__arm__): Define count_leading_zeros.
1490         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
1491         (clzsi2, clzdi2): New functions.
1492         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
1493         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
1494         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
1495         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
1496         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
1497         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
1498         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
1499         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1500         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
1501         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
1502
1503 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
1504
1505         * config/m68k/m68k.c (m68k_tune_flags): New.
1506         (override_options): Compute m68k_tune_flags.
1507         (MULL_COST, MULW_COST): Update for various variants of CFV2.
1508         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
1509
1510 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1511
1512         PR middle-end/36506
1513         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
1514
1515 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1516
1517         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
1518         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
1519
1520 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1521
1522         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
1523         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
1524
1525 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1526
1527         PR middle-end/36506
1528         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
1529         reductions.
1530
1531 2008-06-12  Richard Guenther  <rguenther@suse.de>
1532
1533         PR tree-optimization/36345
1534         * tree-flow.h (struct ptr_info_def): Align escape_mask,
1535         add memory_tag_needed flag.
1536         (may_alias_p): Declare.
1537         * tree-ssa-alias.c (may_alias_p): Export.
1538         (set_initial_properties): Use memory_tag_needed flag.
1539         (update_reference_counts): Likewise.
1540         (reset_alias_info): Reset memory_tag_needed flag.
1541         (create_name_tags): Check memory_tag_needed flag.
1542         (dump_points_to_info_for): Dump it.
1543         * tree-ssa-structalias.c (struct variable_info): Remove
1544         directly_dereferenced flag.
1545         (new_var_info): Do not initialize it.
1546         (process_constraint_1): Do not set it.
1547         (update_alias_info): Set is_dereferenced flag.
1548         (set_uids_in_ptset): Use may_alias_p.
1549         (set_used_smts): Check memory_tag_needed flag.
1550         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
1551         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
1552         memory_tag_needed flag.
1553         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
1554         from broken design.
1555
1556 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
1557
1558         * config/i386/i386.c (ix86_compute_frame_layout): Disable
1559         red zone for w64 abi.
1560         (ix86_expand_prologue): Likewise.
1561         (ix86_force_to_memory): Likewise.
1562         (ix86_free_from_memory): Likewise.
1563
1564 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
1565
1566         PR target/36425
1567         * config/rs6000/rs6000.c (rs6000_override_options): Set
1568         rs6000_isel conditionally to the absence of comand line override.
1569         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
1570         Remove duplicate rs6000_isel setting.
1571         * config/rs6000/eabispe.h: Ditto.
1572
1573 2008-06-11  Richard Guenther  <rguenther@suse.de>
1574
1575         * alias.c (get_alias_set): Use the element alias-set for arrays.
1576         (record_component_aliases): For arrays and vectors do nothing.
1577         * c-common.c (strict_aliasing_warning): Handle the cases
1578         of alias set zero explicitly.
1579         * Makefile.in (dfp.o-warn): Add -Wno-error.
1580
1581 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1582
1583         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
1584         tune_32 tune_64.
1585         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
1586         tune_32 tune_64 to supported_defaults.  Allow values not
1587         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
1588         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
1589         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
1590         with_cpu_64 to generic for 64-bit-supporting configurations, not
1591         with_cpu.  Remove FIXMEs.
1592         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
1593         --with-arch-64, --with-tune-32, --with-tune-64): Document.
1594         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
1595         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
1596         arch_32 and arch_64.
1597
1598 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1599             Olivier Hainque  <hainque@adacore.com>
1600
1601         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
1602         Use DECL_SIZE_UNIT to retrieve the size of the field.
1603
1604 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1605
1606         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
1607         with function calls after declarations.  Lay out
1608         neon_float_type_node before further use.
1609
1610 2008-06-11  Richard Guenther  <rguenther@suse.de>
1611
1612         * tree-flow.h (may_point_to_global_var): Declare.
1613         * tree-ssa-alias.c (may_point_to_global_var): New function.
1614         * tree-ssa-sink.c (is_hidden_global_store): Use it.
1615
1616 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
1617
1618         * configure.ac: Teach that fido supports .debug_line.
1619         * configure: Regenerate.
1620
1621 2008-06-10  Tom Tromey  <tromey@redhat.com>
1622
1623         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
1624         debug hook.
1625
1626 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1627
1628         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
1629         (encode_decimal64, decode_decimal64, encode_decimal128,
1630         decode_decimal128): Reverse order of 32-bit parts of value if host
1631         and target endianness differ.
1632
1633 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
1634
1635         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
1636         Avoid division by 0.
1637         (tree_mod_pow2_value_transform): Likewise.
1638         (tree_ic_transform): Likewise.
1639         (tree_stringops_transform): Likewise.
1640         (tree_mod_subtract_transform): Likewise.
1641         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
1642         (copy_edges_for_bb): Likewise.
1643         (initialize_cfun): Likewise.
1644
1645 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1646
1647         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
1648         nonmemory_operand. Add "N" operand constraint.
1649         (*btsi): Ditto.
1650         (*jcc_btdi_mask_rex64): New instruction and split pattern.
1651         (*jcc_btsi_mask): Ditto.
1652         (*jcc_btsi_mask_1): Ditto.
1653
1654 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1655
1656         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
1657         TYPE_CANONICAL for copied element type.
1658
1659 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1660
1661         PR target/36473
1662         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
1663         Add m_CORE2 and m_GENERIC.
1664         * config/i386/predicates.md (bt_comparison_operator): New predicate.
1665         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
1666         (*btsi): Ditto.
1667         (*jcc_btdi_rex64): New instruction and split pattern.
1668         (*jcc_btsi): Ditto.
1669         (*jcc_btsi_1): Ditto.
1670         (*btsq): Fix Intel asm dialect operand order.
1671         (*btrq): Ditto.
1672         (*btcq): Ditto.
1673
1674 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
1675
1676         PR middle-end/36447
1677         * simplify-rtx.c (simplify_subreg): Add check for shift count 
1678         greater than size.
1679
1680 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
1681
1682         * doc/md.texi: Synchronize with later constraints.md change.
1683         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
1684         with a C implementation.
1685         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
1686         MFLO handling.
1687         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
1688         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
1689         when moving to and from MD_REGNUM.
1690         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
1691         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
1692         Handle byte and halfword moves.
1693         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
1694         separately.
1695         * config/mips/constraints.md (h): Turn into NO_REGS.
1696         (l, x): Update documentation.
1697         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
1698         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
1699         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
1700         (HILO): New mode iterator.
1701         (MOVE128): Add TI.
1702         (any_div): New code iterator.
1703         (u): Extend code attribute to div and udiv.
1704         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
1705         d_operand in the splitters.  Remove redundant CONST_INT checks.
1706         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
1707         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
1708         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
1709         accordingly, using normal moves instead of unspecs to move LO into
1710         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
1711         (<u>mulsidi3): Handle expansion in C code.
1712         (<u>mulsidi3_32bit_internal): Rename to...
1713         (<u>mulsidi3_32bit): ...this.
1714         (<u>mulsidi3_32bit_r4000): Fix insn separator.
1715         (*<u>mulsidi3_64bit): Rename to...
1716         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
1717         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
1718         to set LO and HI to the multiplication result.  Use a normal move
1719         for MFLO and an unspec for MFHI.
1720         (*<u>mulsidi3_64bit_parts): Replace with...
1721         (<u>mulsidi3_64bit_hilo): ...this new instruction.
1722         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
1723         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
1724         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
1725         instead of HI.  Split the instruction into a separate multiplication
1726         and MFHI if !TARGET_FIX_R4000.
1727         (<su>muldi3_highpart): Likewise.
1728         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
1729         and the "=h" clobber.
1730         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
1731         (<u>mulditi3): New expander.
1732         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
1733         (madsi): Remove "=h" clobber.
1734         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
1735         Force the modulus result to be a GPR and split the instruction into
1736         a division followed by an MFHI after reload.
1737         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
1738         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
1739         the MIPS16 HIGH define_split.
1740         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
1741         of acc<->gpr moves to "multi".
1742         (*movdi_64bit): Replace the single "x" alternative with
1743         alternatives for moving into and out of "a".
1744         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
1745         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
1746         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
1747         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
1748         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
1749         (movti): New expander.
1750         (*movti, *movti_mips16): New insns.
1751         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
1752         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
1753         (mthi<GPR:mode>_<HILO:mode>): Likewise.
1754         * config/mips/predicates.md (fpr_operand): Delete.
1755         (d_operand): New predicate.
1756
1757 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
1758
1759         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
1760         failure on some Bourne shells.
1761         (x86_64-*-*): Ditto.
1762
1763 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
1764
1765         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
1766
1767 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1768
1769         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
1770         (sparc-sun-solaris2*): Likewise.
1771
1772 2008-06-09  Arnaud Charlet  <charlet@adacore.com
1773
1774         * doc/install.texi: Update requirements to build the Ada compiler.
1775
1776 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
1777
1778         * df-scan.c (struct df_scan_problem_data): Remove the
1779         mw_link_pool alloc pool.
1780         (df_scan_free_internal): Don't free it.
1781         (df_scan_alloc): Don't allocate it.
1782         * df.h (struct df_link): Update comment.
1783
1784 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1785
1786         * except.h: Correct checks for when SJLJ exceptions must be used.
1787
1788 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1789
1790         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
1791         default.
1792         
1793 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
1794
1795         PR tree-optimization/36218
1796         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
1797         configure for the build system.
1798         (BUILD_LDFLAGS): Define.
1799         * configure: Regenerate.
1800         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
1801
1802 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
1803
1804         PR target/36424
1805         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
1806         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
1807         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
1808
1809 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
1810
1811         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
1812
1813 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
1814
1815         * config.gcc (Obsolete configurations): Remove list of
1816         configurations.
1817         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
1818         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
1819         targets matched by those patterns.
1820         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
1821         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
1822         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
1823         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
1824         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
1825         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1826         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
1827         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
1828         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
1829         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
1830         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
1831         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
1832         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
1833         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
1834         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
1835         Make code for Solaris 7 and greater unconditional for Solaris.
1836         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
1837         Remove --with-* handling.
1838         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
1839         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
1840         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
1841         LINK_OS_WINDISS_SPEC): Remove.
1842         * config/rs6000/sysv4.opt (mwindiss): Remove.
1843         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
1844         * configure: Regenerate.
1845         * doc/cpp.texi: Don't mention BeOS.
1846         * doc/extend.texi (interrupt): Don't mention MS1.
1847         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
1848         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
1849         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
1850         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
1851         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
1852         Remove.
1853         * doc/invoke.texi (MT Options): Remove.
1854         (-mwindiss): Remove.
1855         (CRIS Options): Remove cris-axis-aout references.
1856         (HPPA Options): Don't mention hppa1.1-*-pro.
1857         * doc/md.texi: (MorphoTech family): Remove.
1858         * libgcc2.c: Don't handle UWIN.
1859         * config/alpha/t-unicosmk: Remove.
1860         * config/alpha/unicosmk.h: Remove.
1861         * config/arm/kaos-arm.h: Remove.
1862         * config/arm/kaos-strongarm.h: Remove.
1863         * config/arm/strongarm-coff.h: Remove.
1864         * config/arm/strongarm-elf.h: Remove.
1865         * config/arm/strongarm-pe.h: Remove.
1866         * config/arm/t-strongarm-pe: Remove.
1867         * config/arm/t-xscale-coff: Remove.
1868         * config/arm/t-xscale-elf: Remove.
1869         * config/arm/xscale-coff.h: Remove.
1870         * config/arm/xscale-elf.h: Remove.
1871         * config/chorus.h: Remove.
1872         * config/cris/aout.h: Remove.
1873         * config/cris/aout.opt: Remove.
1874         * config/cris/t-aout: Remove.
1875         * config/i386/beos-elf.h: Remove.
1876         * config/i386/kaos-i386.h: Remove.
1877         * config/i386/ptx4-i.h: Remove.
1878         * config/i386/sco5.h: Remove.
1879         * config/i386/sco5.opt: Remove.
1880         * config/i386/sysv4-cpp.h: Remove.
1881         * config/i386/sysv5.h: Remove.
1882         * config/i386/t-beos: Remove.
1883         * config/i386/t-sco5: Remove.
1884         * config/i386/t-uwin: Remove.
1885         * config/i386/uwin.asm: Remove.
1886         * config/i386/uwin.h: Remove.
1887         * config/kaos.h: Remove.
1888         * config/mips/windiss.h: Remove.
1889         * config/mt: Remove directory.
1890         * config/pa/pa-osf.h: Remove.
1891         * config/pa/pa-pro-end.h: Remove.
1892         * config/pa/t-pro: Remove.
1893         * config/ptx4.h: Remove.
1894         * config/rs6000/beos.h: Remove.
1895         * config/rs6000/kaos-ppc.h: Remove.
1896         * config/rs6000/t-beos: Remove.
1897         * config/rs6000/windiss.h: Remove.
1898         * config/sh/kaos-sh.h: Remove.
1899         * config/sol2-6.h: Remove.
1900         * config/sparc/sol26-sld.h: Remove.
1901         * config/sparc/sysv4-only.h: Remove.
1902         * config/vax/bsd.h: Remove.
1903         * config/vax/t-memfuncs: Remove.
1904         * config/vax/ultrix.h: Remove.
1905         * config/vax/vaxv.h: Remove.
1906         * config/windiss.h: Remove.
1907
1908 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1909
1910         PR rtl-optimization/36438
1911         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
1912         for vector shifts with constant scalar shift operands.
1913
1914 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
1915
1916         * doc/invoke.texi: Document -march=xlr.
1917         * config/mips/xlr.md: New file.
1918         * config/mips/mips.md: Include it.
1919         (cpu): Add "xlr".
1920         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
1921         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
1922         (mips_rtx_cost_data): Likewise.
1923
1924 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
1925
1926         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
1927         PRE_INC and PRE_DEC cases.
1928
1929 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1930
1931         PR rtl-optimization/36419
1932         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
1933         the emitting jump insn.
1934
1935         PR target/36362
1936         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
1937         is not bool, boolify the whole *expr_p and convert to the desired type.
1938
1939 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1940
1941         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
1942         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
1943         Add omp_private_outer_ref hook, add another argument to
1944         omp_clause_default_ctor hook.
1945         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1946         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1947         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
1948         hook_tree_tree_tree_tree_null.
1949         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
1950         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
1951         * hooks.c (hook_tree_tree_tree_tree_null): New function.
1952         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
1953         * tree.def (OMP_TASK): New tree code.
1954         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
1955         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
1956         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
1957         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
1958         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
1959         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
1960         OMP_CLAUSE_COLLAPSE_EXPR): Define.
1961         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1962         (OMP_DIRECTIVE_P): Add OMP_TASK.
1963         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1964         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1965         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1966         and OMP_CLAUSE_UNTIED entries.
1967         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
1968         num_ops to 2.
1969         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1970         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1971         * tree-pretty-print.c (dump_omp_clause): Handle
1972         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1973         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1974         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1975         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
1976         warning about unsigned iterators.  Change decl/init/cond/incr
1977         arguments to TREE_VECs, check arguments for all collapsed loops.
1978         (c_finish_omp_taskwait): New function.
1979         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1980         ws_clauses.
1981         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
1982         default_function_array_conversion on init.  Add par_clauses argument.
1983         If decl is present in parallel's lastprivate clause, change it to
1984         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1985         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
1986         collapse count in clauses.
1987         (c_parser_omp_for, c_parser_omp_parallel): Adjust
1988         c_parser_omp_for_loop callers.
1989         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1990         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1991         (c_parser_omp_clause_name): Handle collapse and untied clauses.
1992         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1993         functions.
1994         (c_parser_omp_clause_schedule): Handle schedule(auto).
1995         Include correct location in the error message.
1996         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1997         and PRAGMA_OMP_CLAUSE_UNTIED.
1998         (OMP_TASK_CLAUSE_MASK): Define.
1999         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
2000         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
2001         * tree-nested.c (convert_nonlocal_omp_clauses,
2002         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
2003         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
2004         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2005         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
2006         OMP_CLAUSE_DECL.
2007         (conver_nonlocal_reference, convert_local_reference,
2008         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
2009         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
2010         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
2011         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
2012         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
2013         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
2014         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
2015         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
2016         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
2017         OMP_CLAUSE_UNTIED.
2018         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
2019         * c-common.h (c_finish_omp_taskwait): New prototype.
2020         * gimple-low.c (lower_stmt): Handle OMP_TASK.
2021         * tree-parloops.c (create_parallel_loop): Create 1 entry
2022         vectors for OMP_FOR_{INIT,COND,INCR}.
2023         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
2024         (make_edges): Handle OMP_TASK.
2025         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
2026         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2027         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
2028         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
2029         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
2030         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
2031         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
2032         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
2033         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
2034         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
2035         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
2036         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
2037         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
2038         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
2039         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
2040         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
2041         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
2042         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
2043         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
2044         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
2045         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
2046         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
2047         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
2048         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
2049         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
2050         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
2051         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
2052         original iterator is present in lastprivate clause or if
2053         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
2054         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2055         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
2056         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
2057         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
2058         if it is set, lookup var in outer contexts too.  Handle
2059         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
2060         to be implicitly determined firstprivate for task regions.
2061         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
2062         if it is set, lookup var in outer contexts too.  Set
2063         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
2064         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
2065         OMP_CLAUSE_UNTIED.  Take region_type as last argument
2066         instead of in_parallel and in_combined_parallel.
2067         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
2068         Adjust callers.
2069         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
2070         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
2071         (new_omp_context): Set default_kind to
2072         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
2073         (omp_region_type): New enum.
2074         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
2075         fields, add region_type.
2076         (new_omp_context): Take region_type as argument instead of is_parallel
2077         and is_combined_parallel.
2078         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
2079         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
2080         ctx->is_combined_parallel checks.
2081         (gimplify_omp_task): New function.
2082         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
2083         OMP_CLAUSE_UNTIED.
2084         * omp-low.c (extract_omp_for_data): Use schedule(static)
2085         for schedule(auto).  Handle pointer and unsigned iterators.
2086         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
2087         Add loops argument.  Extract data for collapsed OMP_FOR loops.
2088         (expand_parallel_call): Assert sched_kind isn't auto,
2089         map runtime schedule to index 3.
2090         (struct omp_for_data_loop): New type.
2091         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
2092         Add loop, loops, collapse and iter_type fields.
2093         (workshare_safe_to_combine_p): Disallow combined for if
2094         iter_type is unsigned long long.  Don't combine collapse > 1 loops
2095         unless all bounds and steps are constant.  Adjust extract_omp_for_data
2096         caller.
2097         (expand_omp_for_generic): Handle pointer, unsigned and long long
2098         iterators.  Handle collapsed OMP_FOR loops.  Adjust
2099         for struct omp_for_data changes.  If libgomp function doesn't return
2100         boolean_type_node, add comparison of the return value with 0.
2101         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
2102         pointer, unsigned and long long iterators.  Adjust for struct
2103         omp_for_data changes.
2104         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
2105         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
2106         unsigned long long.  Allocate loops array, pass it to
2107         extract_omp_for_data.  For collapse > 1 loops use always
2108         expand_omp_for_generic.
2109         (omp_context): Add sfield_map and srecord_type fields.
2110         (is_task_ctx, lookup_sfield): New functions.
2111         (use_pointer_for_field): Use is_task_ctx helper.  Change first
2112         argument's type from const_tree to tree.  Clarify comment.
2113         In OMP_TASK disallow copy-in/out sharing.
2114         (build_sender_ref): Call lookup_sfield instead of lookup_field.
2115         (install_var_field): Add mask argument.  Populate both record_type
2116         and srecord_type if needed.
2117         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
2118         in srecord_type.
2119         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
2120         and DECL_FIELD_OFFSET.
2121         (scan_sharing_clauses): Adjust install_var_field callers.  For
2122         firstprivate clauses on explicit tasks allocate the var by value in
2123         record_type unconditionally, rather than by reference.
2124         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
2125         Use is_taskreg_ctx instead of is_parallel_ctx.
2126         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2127         (create_omp_child_function_name): Add task_copy argument, use
2128         *_omp_cpyfn* names if it is true.
2129         (create_omp_child_function): Add task_copy argument, if true create
2130         *_omp_cpyfn* helper function.
2131         (scan_omp_parallel): Adjust create_omp_child_function callers.
2132         Rename parallel_nesting_level to taskreg_nesting_level.
2133         (scan_omp_task): New function.
2134         (lower_rec_input_clauses): Don't run constructors for firstprivate
2135         explicit task vars which are initialized by *_omp_cpyfn*.  
2136         Pass outer var ref to omp_clause_default_ctor hook if
2137         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
2138         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
2139         OMP_CLAUSE_REDUCTION_INIT.
2140         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
2141         avoid duplicate setting of fields.  Handle
2142         OMP_CLAUSE_PRIVATE_OUTER_REF.
2143         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
2144         copy-out if TREE_READONLY, only copy-in.
2145         (expand_task_copyfn): New function.
2146         (expand_task_call): New function.
2147         (struct omp_taskcopy_context): New type.
2148         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
2149         New functions.
2150         (lower_omp_parallel): Rename to...
2151         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
2152         Call create_task_copyfn if srecord_type is needed.  Adjust
2153         sender_decl type.
2154         (task_shared_vars): New variable.
2155         (check_omp_nesting_restrictions): Warn if work-sharing,
2156         barrier, master or ordered region is closely nested inside OMP_TASK.
2157         Add warnings for barrier if closely nested inside of work-sharing,
2158         ordered, or master region.
2159         (scan_omp_1): Call check_omp_nesting_restrictions even for
2160         GOMP_barrier calls.  Rename parallel_nesting_level to
2161         taskreg_nesting_level.  Handle OMP_TASK.
2162         (lower_lastprivate_clauses): Even if some lastprivate is found on a
2163         work-sharing construct, continue looking for them on parent parallel
2164         construct.
2165         (lower_omp_for_lastprivate): Add lastprivate clauses
2166         to the beginning of dlist rather than end.  Adjust for struct
2167         omp_for_data changes.
2168         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
2169         not after it.  Handle collapsed OMP_FOR loops, adjust for
2170         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
2171         (get_ws_args_for): Adjust extract_omp_for_data caller.
2172         (scan_omp_for): Handle collapsed OMP_FOR
2173         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2174         (lower_omp_single_simple): If libgomp function doesn't return
2175         boolean_type_node, add comparison of the return value with 0.
2176         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
2177         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
2178         (parallel_nesting_level): Rename to...
2179         (taskreg_nesting_level): ... this.
2180         (is_taskreg_ctx): New function.
2181         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
2182         of is_parallel_ctx.
2183         (execute_lower_omp): Rename parallel_nesting_level to
2184         taskreg_nesting_level.
2185         (expand_omp_parallel): Rename to...
2186         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
2187         Call omp_task_call for OMP_TASK regions.
2188         (expand_omp): Adjust caller, handle OMP_TASK.
2189         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
2190
2191         * bitmap.c (bitmap_default_obstack_depth): New variable.
2192         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
2193         if argument is NULL and bitmap_default_obstack is already initialized.
2194         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
2195         at the end.
2196         * matrix-reorg.c (matrix_reorg): Likewise.
2197
2198 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
2199
2200         * config/i386/i386.md (*indirect_jump): Macroize using P
2201         mode iterator.  Remove !TARGET_64BIT from insn constraints.
2202         (*tablejump_1): Ditto.
2203         (*indirect_jump_rex64): Remove insn pattern.
2204         (*tablejump_1_rex64): Ditto.
2205         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
2206         and eh_return_si insn patterns.
2207
2208 2008-06-06  Richard Guenther  <rguenther@suse.de>
2209
2210         * tree-ssa-structalias.c (merge_smts_into): Remove.
2211         (find_what_p_points_to): Do not bother to compute the
2212         points-to set for pt_anything pointers.
2213         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
2214         for pt_anything pointers is ok.
2215
2216 2008-06-06  Jan Hubicka  <jh@suse.cz>
2217
2218         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
2219
2220 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2221
2222         * cgraph.c: Fix typos in comments.
2223         (cgraph_availability_names): Fix string typo.
2224         * fold-const.c: Fix typos in comments.
2225         (fold_binary): Fix typo in warning.
2226         * genautomata.c: Fix typos in comments.
2227         (check_presence_pattern_sets): Fix typo in local variable.
2228         (output_description): Fix typo in output.
2229         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
2230         * hwint.h: Likewise.
2231         * matrix-reorg.c (check_allocation_function): Likewise.
2232         * omega.c (smooth_weird_equations): Likewise.
2233         * auto-inc-dec.c: Fix typos in comments.
2234         * bb-reorder.c: Likewise.
2235         * builtins.c: Likewise.
2236         * c-common.c: Likewise.
2237         * c-cppbuiltin.c: Likewise.
2238         * c-parser.c: Likewise.
2239         * c-pretty-print.c: Likewise.
2240         * cfgcleanup.c: Likewise.
2241         * cfgexpand.c: Likewise.
2242         * cfghooks.c: Likewise.
2243         * cfglayout.c: Likewise.
2244         * cfgloopmanip.c: Likewise.
2245         * cgraphunit.c: Likewise.
2246         * coverage.c: Likewise.
2247         * dbxout.c: Likewise.
2248         * df-byte-scan.c: Likewise.
2249         * df-core.c: Likewise.
2250         * df-problems.c: Likewise.
2251         * df-scan.c: Likewise.
2252         * dfp.c: Likewise.
2253         * dominance.c: Likewise.
2254         * domwalk.c: Likewise.
2255         * dse.c: Likewise.
2256         * dwarf2out.c: Likewise.
2257         * emit-rtl.c: Likewise.
2258         * et-forest.c: Likewise.
2259         * function.c: Likewise.
2260         * function.h: Likewise.
2261         * gcc.c: Likewise.
2262         * gcov-io.c: Likewise.
2263         * gcov.c: Likewise.
2264         * gcse.c: Likewise.
2265         * genattrtab.c: Likewise.
2266         * ggc-page.c: Likewise.
2267         * gimplify.c: Likewise.
2268         * gthr-lynx.h: Likewise.
2269         * haifa-sched.c: Likewise.
2270         * ipa-cp.c: Likewise.
2271         * ipa-inline.c: Likewise.
2272         * ipa-prop.h: Likewise.
2273         * ipa-pure-const.c: Likewise.
2274         * ipa-struct-reorg.c: Likewise.
2275         * ipa-struct-reorg.h: Likewise.
2276         * ipa-type-escape.c: Likewise.
2277         * ipa.c: Likewise.
2278         * loop-doloop.c: Likewise.
2279         * mips-tfile.c: Likewise.
2280         * mkmap-flat.awk: Likewise.
2281         * mkmap-symver.awk: Likewise.
2282         * modulo-sched.c: Likewise.
2283         * omp-low.c: Likewise.
2284         * optabs.c: Likewise.
2285         * optabs.h: Likewise.
2286         * opts.c: Likewise.
2287         * passes.c: Likewise.
2288         * postreload-gcse.c: Likewise.
2289         * postreload.c: Likewise.
2290         * predict.c: Likewise.
2291         * pretty-print.h: Likewise.
2292         * profile.c: Likewise.
2293         * protoize.c: Likewise.
2294         * ra-conflict.c: Likewise.
2295         * real.c: Likewise.
2296         * recog.c: Likewise.
2297         * regclass.c: Likewise.
2298         * regs.h: Likewise.
2299         * reload.c: Likewise.
2300         * rtl-error.c: Likewise.
2301         * rtlanal.c: Likewise.
2302         * scan.h: Likewise.
2303         * sched-rgn.c: Likewise.
2304         * see.c: Likewise.
2305         * stmt.c: Likewise.
2306         * target.h: Likewise.
2307         * tree-dfa.c: Likewise.
2308         * tree-eh.c: Likewise.
2309         * tree-flow-inline.h: Likewise.
2310         * tree-inline.c: Likewise.
2311         * tree-into-ssa.c: Likewise.
2312         * tree-loop-distribution.c: Likewise.
2313         * tree-nested.c: Likewise.
2314         * tree-parloops.c: Likewise.
2315         * tree-pass.h: Likewise.
2316         * tree-pretty-print.c: Likewise.
2317         * tree-profile.c: Likewise.
2318         * tree-scalar-evolution.c: Likewise.
2319         * tree-sra.c: Likewise.
2320         * tree-ssa-alias-warnings.c: Likewise.
2321         * tree-ssa-ccp.c: Likewise.
2322         * tree-ssa-coalesce.c: Likewise.
2323         * tree-ssa-dom.c: Likewise.
2324         * tree-ssa-dse.c: Likewise.
2325         * tree-ssa-forwprop.c: Likewise.
2326         * tree-ssa-live.c: Likewise.
2327         * tree-ssa-live.h: Likewise.
2328         * tree-ssa-loop-im.c: Likewise.
2329         * tree-ssa-loop-ivopts.c: Likewise.
2330         * tree-ssa-loop-niter.c: Likewise.
2331         * tree-ssa-loop-prefetch.c: Likewise.
2332         * tree-ssa-phiopt.c: Likewise.
2333         * tree-ssa-phiprop.c: Likewise.
2334         * tree-ssa-sccvn.c: Likewise.
2335         * tree-ssa-ter.c: Likewise.
2336         * tree-ssa-threadupdate.c: Likewise.
2337         * tree-ssa.c: Likewise.
2338         * tree-vect-analyze.c: Likewise.
2339         * tree-vect-transform.c: Likewise.
2340         * tree-vectorizer.c: Likewise.
2341         * tree-vn.c: Likewise.
2342         * tree-vrp.c: Likewise.
2343         * tree.c: Likewise.
2344         * tree.def: Likewise.
2345         * tree.h: Likewise.
2346         * unwind-dw2-fde.c: Likewise.
2347         * unwind.inc: Likewise.
2348         * value-prof.c: Likewise.
2349         * vmsdbgout.c: Likewise.
2350
2351 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
2352
2353         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
2354         always place FP constants in the TOC for TARGET_POWERPC64.
2355         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
2356
2357 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
2358
2359         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
2360         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
2361         enable for TARGET_E500_DOUBLE.
2362         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
2363         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
2364         floating-point modes like integer modes for E500 double.
2365         (rs6000_legitimate_offset_address_p): Likewise.
2366         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
2367         addressing for DDmode for E500 double.
2368         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
2369         modes as using 64-bits of registers for E500 double.
2370         (spe_build_register_parallel): Do not handle DDmode or TDmode.
2371         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
2372         specially for E500 double.
2373         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
2374         TDmode for E500 double.
2375         (rs6000_gimplify_va_arg): Only handle SDmode in registers
2376         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
2377         (rs6000_split_multireg_move): Do not handle TDmode specially for
2378         E500 double.
2379         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
2380         using 64-bit registers for E500 double.
2381         (emit_frame_save): Do not handle DDmode specially for E500 double.
2382         (gen_frame_mem_offset): Likewise.
2383         (rs6000_function_value): Do not call spe_build_register_parallel
2384         for DDmode or TDmode.
2385         (rs6000_libcall_value): Likewise.
2386         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
2387         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
2388         for E500 double.
2389
2390 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
2391
2392         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
2393         in comments.
2394
2395 2008-06-04  Junjie Gu <jgu@tensilica.com>
2396
2397         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
2398         comparison for frame pointers.
2399
2400 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2401
2402         PR target/27386
2403         * config/avr/avr.h (PUSH_ROUNDING): Remove.
2404
2405 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2406
2407         PR target/30243
2408         * builtins.c (expand_builtin_signbit): Don't take lowpart when
2409         register is already smaller or equal to required mode. 
2410
2411 2008-06-04  Xinliang David Li  <davidxl@google.com>
2412
2413         * tree-call-cdce.c: New file. 
2414         (cond_dead_built_in_calls): New static variable.
2415         (input_domain): New struct.
2416         (check_pow): New function.
2417         (check_builtin_call): Ditto.
2418         (check_target_format): Ditto.
2419         (is_call_dce_candidate): Ditto.
2420         (gen_one_condition): Ditto.
2421         (gen_conditions_for_domain): Ditto.
2422         (get_domain): Ditto.
2423         (gen_conditions_for_pow_cst_base): Ditto.
2424         (gen_conditions_for_pow_int_base): Ditto.
2425         (gen_conditions_for_pow): Ditto.
2426         (get_no_error_domain): Ditto.
2427         (gen_shrink_wrap_conditions): Ditto.
2428         (shrink_wrap_one_built_in_call): Ditto.
2429         (shink_wrap_conditional_dead_built_in_calls): Ditto.
2430         (tree_call_cdce): Ditto.
2431         (gate_call_cdce): Ditto.
2432         (pass_call_cdce): New gimple pass.
2433         * passes.c: (init_optimization_passes): New pass.
2434         * tree-pass.h: New pass declaration.
2435         * opts.c (decode_options): New flag setting.
2436         * common.opt: Add -ftree-builtin-call-dce flag.
2437         * Makefile.in: Add new source file.
2438         * tempvar.def: New tv_id.
2439         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
2440
2441 2008-06-04  Richard Guenther  <rguenther@suse.de>
2442
2443         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
2444         (is_call_clobbered): Always check var_ann->call_clobbered.
2445         (mark_call_clobbered): Always set var_ann->call_clobbered.
2446         (clear_call_clobbered): Always clear var_ann->call_clobbered.
2447         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
2448         (reset_alias_info): Clear call clobbering info on MTAGs and
2449         globals as well.
2450         (set_pt_anything): Set pt_global_mem.
2451         (create_tag_raw): Adjust comment.
2452         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
2453
2454 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
2455             Maxim Kuvyrkov  <maxim@codesourcery.com>
2456
2457         * config/m68k/m68k.opt (mxgot): New option.
2458         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
2459         (m68k_output_addr_const_extra): New.
2460         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
2461         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
2462         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
2463         * doc/invoke.texi (M680x0 Options): Document -mxgot.
2464
2465 2008-06-04  Richard Guenther  <rguenther@suse.de>
2466
2467         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
2468         negative or non-representable offsets.
2469
2470 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2471
2472         * config/i386/i386.c (ix86_gen_leave): New.
2473         (ix86_gen_pop1): Likewise.
2474         (ix86_gen_add3): Likewise.
2475         (ix86_gen_sub3): Likewise.
2476         (ix86_gen_sub3_carry): Likewise.
2477         (ix86_gen_one_cmpl2): Likewise.
2478         (ix86_gen_monitor): Likewise.
2479         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
2480         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
2481         ix86_gen_one_cmpl2 and ix86_gen_monitor.
2482         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
2483         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
2484         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
2485         (ix86_expand_epilogue): Updated.
2486         (print_operand): Handle integer register operand for 'z'.
2487         (ix86_expand_strlensi_unroll_1): Likewise.
2488         (ix86_expand_strlen): Likewise.
2489         (ix86_expand_builtin): Likewise.
2490         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
2491         mov{q}/mov{l} and add{q}/add{l}.
2492
2493 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2494
2495         * config/i386/i386.md (P): New mode iterator.
2496         (SFmode push_operand splitter): Macroize DImode and SImode pushes
2497         using P mode iterator.
2498         (DFmode push_operand splitter): Ditto.
2499         (XFmode push_operand splitter): Ditto.
2500         (DFmode float_extend SFmode push_operand splitter): Ditto.
2501         (XFmode float_extend SFmode push_operand splitter): Do not generate
2502         SImode pushes for 64bit target.  Macroize Dimode and SImode
2503         pushes using P mode iterator.
2504         (XFmode float_extend DFmode push_operand splitter): Ditto.
2505
2506 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2507
2508         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
2509         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
2510         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
2511         return type to int.
2512         (ix86_call_abi_override): Remove check for call_used_regs.
2513
2514 2008-06-03  Richard Guenther  <rguenther@suse.de>
2515
2516         * tree-ssa-structalias.c (find_func_aliases): Add constraints
2517         for the lhs of calls if the return type contains pointers.
2518
2519 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2520
2521         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
2522         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
2523         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
2524         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
2525         of cfun and DEFAULT_ABI to deceide abi mode.
2526         (DEFAULT_ABI): New.
2527         (REG_PARM_STACK_SPACE): Removed.
2528         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
2529         (STACK_BOUNDARY): Use default target to deceide stack boundary.
2530         * config/i386/i386-protos.h (ix86_cfun_abi): New.
2531         (ix86_function_abi): Likewise.
2532         (ix86_function_type_abi): Likewise.
2533         (ix86_call_abi_override): Likewise.
2534         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
2535         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
2536         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
2537         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
2538         specific defines.
2539         (X86_64_REGPARM_MAX): New.
2540         (X86_64_SSE_REGPARM_MAX): New.
2541         (X64_REGPARM_MAX): New.
2542         (X64_SSE_REGPARM_MAX): New.
2543         (X86_32_REGPARM_MAX): New.
2544         (X86_32_SSE_REGPARM_MAX): New.
2545         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
2546         (ix86_function_regparm): Handle user calling abi.
2547         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
2548         by DEFAULT_ABI versus SYSV_ABI check.
2549         (ix86_reg_parm_stack_space): New.
2550         (ix86_function_type_abi): New.
2551         (ix86_call_abi_override): New.
2552         (ix86_function_abi): New.
2553         (ix86_cfun_abi): New.
2554         (init_cumulative_args): Call abi specific initialization.
2555         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
2556         (function_arg_64): Extend SSE_REGPARM_MAX check.
2557         (function_arg (): Remove TARGET_64BIT_MS_ABI.
2558         (ix86_pass_by_reference): Likewise.
2559         (ix86_function_value_regno_p): Likewise.
2560         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
2561         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
2562         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
2563         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
2564         (setup_incoming_varargs_64): Adjust regparm for call abi.
2565         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
2566         (ix86_va_start): Likewise.
2567         (ix86_gimplify_va_arg): Likewise.
2568         (ix86_expand_prologue): Likewise.
2569         (output_pic_addr_const): Likewise.
2570         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
2571         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
2572         (x86_output_mi_thunk): Likewise.
2573         (x86_function_profiler): Likewise.
2574         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
2575         (SYSV_ABI, MS_ABI): New constants.
2576         (DEFAULT_ABI): New.
2577         (init_regs): Add prototype of function in regclass.c file.
2578         (OVERRIDE_ABI_FORMAT): New.
2579         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
2580         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
2581         (OUTGOING_REG_PARM_STACK_SPACE): New.
2582         (ix86_reg_parm_stack_space): New prototype.
2583         (CUMULATIVE_ARGS): Add call_abi member.
2584         (machine_function): Add call_abi member.
2585         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
2586         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
2587
2588 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
2589
2590         PR target/34879
2591         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
2592         (avr_builtin_setjmp_frame_value): New function.
2593         * config/avr/avr.md (nonlocal_goto_receiver): Define.
2594         (nonlocal_goto): Define.
2595
2596 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
2597
2598         * config/mips/mips.c (mips_emit_loadgp): Return early if
2599         there is nothing do to, otherwise emit a blockage if
2600         !TARGET_EXPLICIT_RELOCS || crtl->profile.
2601         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
2602
2603 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2604
2605         * configure.ac: Drop unneeded backslash ending up in config.in.
2606         * acinclude.m4: Likewise.
2607         * config.in: Regenerate.
2608
2609 2008-05-26  Jan Hubicka  <jh@suse.cz>
2610
2611         * predict.c (maybe_hot_frequency_p): Break out of...
2612         (maybe_hot_bb_p): ... here.
2613         (maybe_hot_edge_p): New.
2614         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
2615         * basic-block.h (maybe_hot_edge_p): Declare.
2616
2617 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2618
2619         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
2620         (*cmpfp_<mode>_cc): Ditto.
2621         (*fp_jcc_8<mode>_387): Ditto.
2622         (*fop_<MODEF:mode>_2_i387): Ditto.
2623         (*fop_<MODEF:mode>_3_i387): Ditto.
2624         (*fop_xf_2_i387): Ditto.
2625         (*fop_xf_3_i387): Ditto.
2626
2627 2008-06-02  Tomas Bily  <tbily@suse.cz>
2628
2629         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
2630
2631 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2632
2633         * config/mips/mips.c (mips_valid_offset_p): New function.
2634         (mips_valid_lo_sum_p): Likewise.
2635         (mips_classify_address): Use them.
2636         (mips_force_address): New function.
2637         (mips_legitimize_address): Use it.
2638         * config/mips/mips.md (MOVE128): New mode iterator.
2639         (movtf): Require TARGET_64BIT.  Remove empty strings.
2640         (*movtf_internal): Rename to...
2641         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
2642         of "R" and use {,fp}{load,store} attributes instead of "multi".
2643         Use a separate define_split.
2644         (*movtf_mips16): New pattern.
2645
2646 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2647
2648         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
2649         * config/mips/mips.c (mips_expand_before_return): New function.
2650         (mips_expand_epilogue): Call it.
2651         * config/mips/mips.md (return): Turn into a define_expand.
2652         (*return): New insn.
2653
2654 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2655
2656         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
2657         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
2658         functions.  Do not emit uses and clobbers of CONCATs; individually
2659         use and clobber their operands.
2660         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
2661         gen_clobber, emit_use and gen_use.
2662         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
2663         (expand_builtin_return): Likewise.
2664         * cfgbuild.c (count_basic_blocks): Likewise.
2665         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2666         * explow.c (emit_stack_restore): Likewise.
2667         * expmed.c (extract_bit_field_1): Likewise.
2668         * expr.c (convert_move, emit_move_complex_parts): Likewise.
2669         (emit_move_multi_word, store_constructor): Likewise.
2670         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
2671         (thread_prologue_and_epilogue_insns): Likewise.
2672         * lower-subreg.c (resolve_simple_move): Likewise.
2673         * optabs.c (widen_operand, expand_binop): Likewise.
2674         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
2675         * reload.c (find_reloads): Likewise.
2676         * reload1.c (eliminate_regs_in_insn): Likewise.
2677         * stmt.c (expand_nl_goto_receiver): Likewise.
2678         * config/alpha/alpha.md (builtin_longjmp): Likewise.
2679         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2680         * config/arm/arm.c (arm_load_pic_register): Likewise.
2681         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
2682         * config/arm/arm.md (untyped_return): Likewise.
2683         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
2684         * config/avr/avr.c (expand_prologue): Likewise.
2685         * config/bfin/bfin.c (do_unlink): Likewise.
2686         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
2687         * config/cris/cris.c (cris_expand_prologue): Likewise.
2688         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2689         (machopic_legitimize_pic_address): Likewise.
2690         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
2691         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
2692         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
2693         (ix86_expand_convert_uns_didf_sse): Likewise.
2694         (ix86_expand_vector_init_general): Likewise.
2695         * config/ia64/ia64.md (eh_epilogue): Likewise.
2696         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
2697         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
2698         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
2699         (config/iq2000/iq2000.c): Likewise.
2700         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2701         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2702         (builtin_longjmp): Likewise.
2703         * config/mn10300/mn10300.md (call, call_value): Likewise.
2704         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
2705         * config/pdp11/pdp11.md (abshi2): Likewise.
2706         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2707         * config/s390/s390.c (s390_emit_prologue): Likewise.
2708         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
2709         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
2710         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
2711         * config/sh/sh.c (prepare_move_operands): Likewise.
2712         (output_stack_adjust, sh_expand_epilogue): Likewise.
2713         (sh_set_return_address, sh_expand_t_scc): Likewise.
2714         * config/sparc/sparc.c (load_pic_register): Likewise.
2715         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
2716         * config/spu/spu.c (spu_expand_epilogue): Likewise.
2717         * config/v850/v850.c (expand_epilogue): Likewise.
2718
2719 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
2720
2721         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
2722         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
2723         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
2724         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
2725         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
2726         stack pointer register.
2727         (output_movhi): Remove code for interrupt specific writing to the 
2728         stack pointer register.
2729
2730 2008-05-31  Richard Guenther  <rguenther@suse.de>
2731
2732         PR tree-optimization/34244
2733         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
2734         (tree_expr_nonzero_warnv_p): Likewise.
2735         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
2736         ssa_name_nonnegative_p.
2737         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
2738         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
2739         not tree_expr_nonzero_warnv_p.
2740
2741         PR tree-optimization/36262
2742         Revert
2743         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
2744
2745         PR tree-optimization/34244
2746         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
2747         (record_numbers_of_iterations): New function.
2748         (execute_vrp): Cache the numbers of iterations of loops.
2749         * tree-scalar-evolution.c (scev_reset_except_niters):
2750         New function.
2751         (scev_reset): Use scev_reset_except_niters.
2752         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
2753
2754 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2755
2756         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2757         __WORKAROUND_RETS when appropriate.
2758
2759 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2760
2761         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
2762         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
2763         mode iterator.
2764         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
2765         *fop_df_comm_sse insn patterns using MODEF mode iterator.
2766         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
2767         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
2768         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
2769         *fop_df_1_mixed insn patterns using MODEF mode iterator.
2770         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
2771         *fop_df_1_sse insn patterns using MODEF mode iterator.
2772         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
2773         *fop_df_1_i387 insn patterns using MODEF mode iterator.
2774         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
2775         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
2776         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
2777         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
2778         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
2779         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
2780         (*fop_xf_4_i387): Use <MODE> for mode attribute.
2781         (*fop_xf_5_i387): Ditto.
2782         (*fop_xf_6_i387): Ditto.
2783
2784 2008-05-30  Richard Guenther  <rguenther@suse.de>
2785
2786         * builtins.c (build_string_literal): Avoid generating
2787         a non-gimple_val result.
2788
2789 2008-05-30  DJ Delorie  <dj@redhat.com>
2790
2791         * exec-tool.in: Use an environment variable (private) instead of a
2792         file (shared) as a semaphore, so as to not break parallel builds.
2793
2794 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2795
2796         * optabs.c (maybe_encapsulate_block): Remove.
2797         (emit_libcall_block): Adjust accordingly.
2798         * optabs.h (maybe_encapsulate_block): Remove prototype.
2799
2800         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
2801         Don't use maybe_encapsulate_block.
2802
2803 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2804
2805         * config/rs6000/rs6000.c (rs6000_legitimize_address,
2806         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
2807         rtx is a SYMBOL_REF before calling get_pool_constant.
2808
2809 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2810
2811         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
2812
2813 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
2814
2815         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
2816         rather than OS names to choose INO_T_EQ definition.
2817         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
2818         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
2819
2820 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
2821
2822         PR target/36348
2823         * config/darwin-f.c: New.
2824         * config/t-darwin: Added rule to build darwin-f.o.
2825         * config.gcc: Defined new variable, fortran_target_objs.
2826         (*-*-darwin*): Set fortran_target_objs.
2827         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
2828         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
2829         * configure: Regenerated.
2830
2831 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2832
2833         PR target/35771
2834         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
2835         canonical type if needed.
2836
2837 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2838
2839         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
2840
2841 2008-05-29  Richard Guenther  <rguenther@suse.de>
2842
2843         PR tree-optimization/36343
2844         PR tree-optimization/36346
2845         PR tree-optimization/36347
2846         * tree-flow.h (clobber_what_p_points_to): Declare.
2847         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
2848         pointed-to variable is dereferenced is irrelevant to whether
2849         the pointer can access the pointed-to variable.
2850         (clobber_what_p_points_to): New function.
2851         * tree-ssa-alias.c (set_initial_properties): Use it.
2852         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
2853         call clobber check for NMTs.
2854
2855 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2856         
2857         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
2858         for printing gcov_type.
2859
2860 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2861
2862         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
2863         and the eh region information.
2864         * value-prof.c (gimple_move_stmt_histograms): New function.
2865         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
2866
2867 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
2868
2869         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
2870
2871 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
2872
2873         * value-prof.c (tree_ic_transform): Print counts.
2874         * tree-profile.c (tree_gen_ic_func_profiler):
2875         Clear __gcov_indreict_call_callee variable to avoid misattribution
2876         of the profile.
2877
2878 2008-05-28  Rafael Espindola  <espindola@google.com>
2879
2880         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
2881         invalid sharing.
2882
2883 2008-05-28  Richard Guenther  <rguenther@suse.de>
2884
2885         PR tree-optimization/36339
2886         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
2887         and clobbering code out of the loop.
2888
2889 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2890
2891         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
2892         letters defined.
2893
2894         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
2895         s390_contiguous_bitmask_p, s390_symref_operand_p,
2896         s390_check_symref_alignment, s390_reload_larl_operand,
2897         s390_reload_symref_address): New functions.
2898         (s390_branch_condition_mnemonic): Support compare and branch
2899         instructions.
2900         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
2901         and 'W' constraints.
2902         (s390_secondary_reload): Add secondary reloads for unaligned
2903         symbol refs or symbol refs to floating point or QI/TI mode
2904         integer values.
2905         (legitimate_address_p): Accept symbol references as addresses.
2906         (s390_expand_insv): Use rotate and insert selected bits
2907         instruction for insv when building for z10.
2908         (print_operand_address): Handle symbol ref addresses.
2909         (print_operand): Output modifier 'c' added for signed byte values.
2910         (s390_encode_section_info): Mark symbol refs with
2911         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
2912
2913         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
2914         (length attribute): RRF, RRR have 4 byte length.
2915         (FPALL, INTALL): New mode iterators added.
2916         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
2917         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
2918         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
2919         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
2920         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
2921         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
2922         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
2923         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
2924         instructions.
2925         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
2926         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
2927         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
2928         reload<INTALL:mode><P:mode>_toreg_z10,
2929         reload<FPALL:mode><P:mode>_tomem_z10,
2930         reload<FPALL:mode><P:mode>_toreg_z10,
2931         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
2932         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
2933         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
2934         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
2935         definition.
2936         (movmem, clrmem, cmpmem): New splitters added.
2937
2938         * config/s390/predicates.md (larl_operand): Use
2939         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
2940         SYMBOL_REF_ALIGN1_P.
2941         (s390_signed_integer_comparison,
2942         s390_unsigned_integer_comparison): New predicates.
2943
2944         * config/s390/s390-protos.h (s390_check_symref_alignment,
2945         s390_contiguous_bitmask_p, s390_reload_larl_operand,
2946         s390_reload_symref_address,
2947         s390_compare_and_branch_condition_mask): Prototypes added.
2948
2949         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
2950         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
2951         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
2952
2953 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2954
2955         * config/s390/s390.c (z10_cost): New cost function for z10.
2956         (s390_handle_arch_option, override_options): Support -march=z10 switch.
2957         (s390_issue_rate): Adjust issue rate for z10.
2958         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
2959         (processor_flags): Add PF_Z10.
2960         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
2961         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
2962         * gcc/config.gcc: Add z10.
2963
2964 2008-05-28  Richard Guenther  <rguenther@suse.de>
2965
2966         PR tree-optimization/36291
2967         * tree-flow. h (struct gimple_df): Remove var_anns member.
2968         * tree-flow-inline.h (gimple_var_anns): Remove.
2969         (var_ann): Simplify.
2970         * tree-dfa.c (create_var_ann): Simplify.
2971         (remove_referenced_var): Clear alias info from var_anns of globals.
2972         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2973         (delete_tree_ssa): Clear alias info from var_anns of globals.
2974         Do not free var_anns.
2975         (var_ann_eq): Remove.
2976         (var_ann_hash): Likewise.
2977
2978 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
2979
2980         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2981         and loongson2f entries.
2982         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2983         * config/mips/mips.h (processor_type): Add Loongson-2E
2984         and Loongson-2F entries.
2985         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2986         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2987         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2988         * doc/invoke.texi (MIPS Options): Document loongson2e
2989         and loongson2f processor names.
2990
2991 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2992
2993         PR target/35767
2994         PR target/35771
2995         * config/i386/i386.c (ix86_function_arg_boundary): Use
2996         alignment of canonical type.
2997         (ix86_expand_vector_move): Check unaligned memory access for
2998         all SSE modes.
2999
3000 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
3001
3002         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
3003         Moved to the front of file.
3004
3005 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
3006             H.J. Lu  <hongjiu.lu@intel.com>
3007
3008         * dwarf2out.c (current_fde): New.
3009         (add_cfi): Use it.
3010         (lookup_cfa:): Likewise.
3011         (dwarf2out_end_epilogue): Likewise.
3012         (dwarf2out_note_section_used): Likewise.
3013
3014 2008-05-27  Michael Matz  <matz@suse.de>
3015
3016         PR c++/27975
3017         * c.opt (Wenum-compare): New warning option.
3018         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
3019
3020 2008-05-27  Michael Matz  <matz@suse.de>
3021
3022         PR middle-end/36326
3023         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
3024         non-BLKmode types.
3025         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
3026         into memory as tail calls.
3027
3028 2008-05-27  Richard Guenther  <rguenther@suse.de>
3029
3030         PR tree-optimization/36339
3031         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
3032         pointers cause all addressable variables to be call clobbered.
3033
3034 2008-05-27  Richard Guenther  <rguenther@suse.de>
3035
3036         PR tree-optimization/36245
3037         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
3038
3039 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3040
3041         * config/s390/s390.md: Replace all occurences of the 'm'
3042         constraint with 'RT'.
3043
3044 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3045
3046         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
3047         definitions added.
3048         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
3049         "*movdi_64".
3050         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
3051         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
3052         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
3053
3054 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3055
3056         * reload.c: (find_reloads): Skip alternatives according to the
3057         "enabled" attribute. Constify the constraint variable.
3058         * recog.c (get_attr_enabled): Add default implementation.
3059         (extract_insn): Set the alternative_enabled_p array
3060         in the recog_data struct.
3061         (preprocess_constraints, constrain_operands): Skip
3062         alternatives according to the "enabled" attribute
3063         * recog.h (struct recog_data): New field alternative_enabled_p.
3064         (skip_alternative): New inline function.
3065         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
3066         (record_reg_classes): Skip alternative according to the
3067         "enabled" attribute.
3068
3069         * doc/md.texi: Add documention for the "enabled" attribute.
3070
3071 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3072
3073         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
3074         * postreload.c (reload_cse_simplify_operands): Replace 'm'
3075         constraint with TARGET_MEM_CONSTRAINT.
3076         * recog.c (asm_operand_ok, preprocess_constraints,
3077         constrain_operands): Likewise.
3078         * regclass.c (record_reg_classes): Likewise.
3079         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
3080         * reload1.c (maybe_fix_stack_asms): Likewise.
3081         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
3082         * recog.h: Adjust comment.
3083         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
3084         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
3085         * doc/md.texi: Add a note to description of 'm' constraint.
3086         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
3087
3088 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3089
3090         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
3091         that the bitfield is of integral type before testing its precision.
3092
3093 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
3094             Sa Liu  <saliu@de.ibm.com> 
3095
3096         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
3097         __modti3, __udivti3, __umodti3 and __udivmodti4.
3098         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
3099         that implement TImode mul and div functions.
3100         * config/spu/multi3.c: New. Implement __multi3.
3101         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
3102         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
3103         functions on SPU.
3104
3105 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
3106
3107         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
3108         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
3109         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
3110         tls_sysv_suffix): New mode and mode attribute iterators.
3111         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
3112         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
3113         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
3114         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
3115         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
3116         iterators.
3117
3118 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3119
3120         PR tree-optimization/36329
3121         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
3122         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
3123         * cgraphbuild.c (initialize_inline_failed): Use the latter
3124         macro in lieu of the former.
3125         * ipa-inline.c (cgraph_mark_inline): Likewise.
3126         (cgraph_decide_inlining_of_small_function): Likewise.
3127         (cgraph_decide_inlining): Likewise.
3128         (cgraph_decide_inlining_incrementally): Likewise.
3129
3130 2008-05-26  Tristan Gingold  <gingold@adacore.com>
3131             Anatoly Sokolov  <aesok@post.ru>
3132
3133         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
3134         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
3135         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
3136         optimization for 'avr6' architecture.
3137
3138 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
3139
3140         PR target/34932
3141         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
3142
3143 2008-05-26  Richard Guenther  <rguenther@suse.de>
3144
3145         * tree-ssa-sccvn.c (expr_has_constants): Declare.
3146         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
3147
3148 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
3149
3150         PR middle-end/36253
3151         * caller-save.c (insert_restore): Verify alignment of spill space.
3152         (insert_save): Likewise.
3153         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
3154         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
3155         (STACK_SLOT_ALIGNMENT): Likewise.
3156         * function.c (LOCAL_ALIGNMENT): Removed.
3157         (get_stack_local_alignment): New.
3158         (assign_stack_local): Use it.  Set alignment on stack slot.
3159         (assign_stack_temp_for_type): Use get_stack_local_alignment.
3160         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
3161         (STACK_SLOT_ALIGNMENT): New.
3162         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
3163         stack slot in XFmode.
3164
3165         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
3166
3167 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
3168
3169         PR/36321
3170         * config/i386/i386.md (allocate_stack_worker_64): Make sure
3171         argument operand in rax isn't removed.
3172
3173 2008-05-26  Richard Guenther  <rguenther@suse.de>
3174
3175         PR middle-end/36300
3176         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
3177         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
3178
3179 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3180
3181         PR bootstrap/36331
3182         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
3183
3184 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
3185
3186         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
3187         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
3188
3189 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3190
3191         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
3192         build a trampoline if we don't want one.
3193         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
3194         return zero for nested functions if we don't want a trampoline.
3195
3196 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3197
3198         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
3199
3200 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3201
3202         PR fortran/18428
3203         * c.opt: Removed undocumented option '-lang-fortran'.
3204         * c-common.h: Removed global variable 'lang_fortran'.
3205         * c-opts.c (c_common_handle_option): Removed code to handle
3206         option '-lang-fortran'. Updated includes.
3207         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
3208         definition of '__GFORTRAN__'.
3209         (define__GNUC__): Reimplemented to use BASEVER and
3210         cpp_define_formatted.
3211         (builtin_define_with_value_n): Removed.
3212         * c-incpath.h: Renamed to ...
3213         * incpath.h: ... this.
3214         * c-incpath.c: Renamed to ...
3215         * incpath.c: ... this. Updated includes.
3216         * fix-header.c: Updated includes.
3217         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
3218         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
3219         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
3220
3221 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3222
3223         * tree.h: Update the table of flags used on tree nodes.
3224         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
3225         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
3226         (FORCED_LABEL): Add access check.
3227         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
3228         (ASM_INPUT_P): Likewise.
3229         (ASM_VOLATILE_P): Likewise.
3230         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
3231         (OMP_SECTION_LAST): Access private_flag directly.
3232         (OMP_RETURN_NOWAIT): Likewise.
3233         (OMP_PARALLEL_COMBINED): Likewise.
3234         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
3235         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
3236         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
3237         deprecated_flag directly.
3238
3239 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3240
3241         * final.c (frame_pointer_needed): Removed.
3242         * flags.h (frame_pointer_needed): Likewise.
3243
3244         * function.h (rtl_data): Add frame_pointer_needed.
3245         (frame_pointer_needed): New.
3246
3247 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
3248
3249         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
3250
3251 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
3252
3253         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
3254         SRC is a REG.
3255
3256 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
3257
3258         * c-common.c (strip_array_types): Move function to..
3259         * tree.c: ..here.
3260         (get_inner_array_type): Delete.
3261         * c-common.h (strip_array_types): Move declaration to..
3262         * tree.h: ..here.
3263         (get_inner_array_type): Delete.
3264         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
3265         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
3266         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
3267         * config/pa/pa.c (emit_move_sequence): Likewise.
3268
3269 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3270
3271         * config/i386/i386.md (*sse_prologue_save_insn): Set length
3272         attribute to 34.
3273
3274 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
3275
3276         * function.c: Include target hook for nonlocal_goto frame value.
3277
3278 2008-05-24  Richard Guenther  <rguenther@suse.de>
3279
3280         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
3281         variable can be only accessed through a pointer or a union.
3282
3283 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3284
3285         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
3286         * doc/extend.texi: Likewise.
3287
3288 2008-05-23  DJ Delorie  <dj@redhat.com>
3289
3290         * config/m32c/jump.md (untyped_call): Add.
3291
3292         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
3293         for A24 to PSImode.
3294         (m32c_address_cost): Detail costs for indirect offsets.
3295
3296 2008-05-23  Rafael Espindola  <espindola@google.com>
3297
3298         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
3299         if a node is a SUBREG.
3300         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
3301         is a SUBREG.
3302
3303 2008-05-23  Paul Brook  <paul@codesourcery.com>
3304             Carlos O'Donell  <carlos@codesourcery.com>
3305
3306         * doc/extend.texi: Clarify use of __attribute__((naked)).
3307         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3308         * target.h (gcc_target): Add allocate_stack_slots_for_args.
3309         * function.c (use_register_for_decl): Use
3310         targetm.calls.allocate_stack_slots_for_args.
3311         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3312         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
3313         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
3314
3315 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3316
3317         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
3318
3319 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
3320
3321         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
3322         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
3323         is only rounded once.
3324
3325 2008-05-23  Richard Guenther  <rguenther@suse.de>
3326
3327         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
3328
3329 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
3330             Jakub Jelinek  <jakub@redhat.com>
3331
3332         PR target/36079
3333         * configure.ac: Handle --enable-cld.
3334         * configure: Regenerated.
3335         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
3336         * config/i386/i386.h (struct machine_function): Add needs_cld field.
3337         (ix86_current_function_needs_cld): New define.
3338         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
3339         (cld): New isns pattern.
3340         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
3341         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
3342         * config/i386/i386.opt (mcld): New option.
3343         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
3344         TARGET_CLD and ix86_current_function_needs_cld.
3345         (override_options): Use -mcld by default for 32-bit code if
3346         USE_IX86_CLD.
3347
3348         * doc/install.texi (Options specification): Document --enable-cld.
3349         * doc/invoke.texi (Machine Dependent Options)
3350         [i386 and x86-64 Options]: Add -mcld option.
3351         (Intel 386 and AMD x86-64 Options): Document -mcld option.
3352
3353 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
3354         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
3355         (return_in_memory_64): Likewise.
3356         (return_in_memory_ms_64): Likewise.
3357
3358 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3359
3360         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
3361         * builtins.c (fold_builtin_fpclassify): New.
3362         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
3363         * builtins.def (BUILT_IN_FPCLASSIFY): New.
3364         * c-common.c (handle_type_generic_attribute): Adjust to accept
3365         fixed arguments before an elipsis.
3366         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
3367         * doc/extend.texi: Document __builtin_fpclassify.
3368
3369 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
3370
3371         * omp-low.c (gate_expand_omp_ssa): Remove.
3372         (pass_expand_omp_ssa): Remove.
3373         (gate_expand_omp): Do not check for flag_openmp_ssa.
3374         * common.opt (-fopenmp-ssa): Remove.
3375         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
3376
3377 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3378
3379         * config/sh/sh.opt (mfixed-range): New option.
3380         * config/sh/sh-protos.h (sh_fix_range): Declare.
3381         * config/sh/sh.c (sh_fix_range): New function.
3382         * config/sh/sh.h (sh_fixed_range_str): Declare.
3383         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
3384         is not empty.
3385         * doc/invoke.texi (SH Options): Document -mfixed-range.
3386
3387 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
3388
3389         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
3390         it before the redeclaration.
3391
3392 2008-05-22  Anatoly Sokolov <aesok@post.ru>
3393
3394         * config/avr/avr.c (get_sequence_length): Add new function.
3395         (expand_prologue, expand_epilogue): Remove duplicate code.
3396
3397 2008-05-22  Rafael Espindola  <espindola@google.com>
3398
3399         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
3400         sharing.
3401
3402 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
3403
3404         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
3405         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
3406
3407         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
3408         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
3409         (vect_update_misalignment_for_peel): Likewise.
3410         (vector_alignment_reachable_p): Likewise.
3411         * tree-vect-transform.c (vectorizable_load): Likewise.
3412         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
3413         (get_vectype_for_scalar_type): Pass mode of scalar_type
3414         to UNITS_PER_SIMD_WORD.
3415
3416         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
3417         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
3418         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3419         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3420         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3421
3422 2008-05-22  Ira Rosen  <irar@il.ibm.com>
3423
3424         PR tree-optimization/36293
3425         * tree-vect-transform.c (vect_transform_strided_load): Don't check
3426         if the first load must be skipped because of a gap.
3427
3428 2008-05-22  Richard Guenther  <rguenther@suse.de>
3429
3430         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
3431         more cases of offset disambiguation that is possible if
3432         strict-aliasing rules apply.
3433         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
3434         for basic offset and type-based disambiguation.
3435
3436 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3437
3438         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
3439         ix86_expand_vector_set on V16QImode for SSE4.1.
3440
3441 2008-05-21  Tom Tromey  <tromey@redhat.com>
3442
3443         * c.opt (Wimport): Mark as undocumented.
3444         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
3445         -Wno-import.
3446         (Warning Options): Likewise.
3447         * doc/cppopts.texi: Don't mention -Wimport.
3448
3449 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
3450
3451         PR tree-optimization/36287
3452         PR tree-optimization/36286
3453         * lambda-code.c (build_access_matrix): Do not use the loop->num
3454         for computing the number of induction variables: use the loop depth
3455         instead.
3456
3457 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
3458
3459         PR/36280
3460         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
3461         option -f(no-)leading-underscore.
3462
3463 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3464
3465         * config/i386/i386.c (ix86_expand_vector_init_general): Use
3466         GET_MODE_NUNITS (mode).
3467
3468 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
3469
3470         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
3471         (-mmulhw): Add 464 to description.
3472         (-mdlmzb): Likewise.
3473         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
3474         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
3475         464fp entries.
3476         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
3477         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
3478         * config/rs6000/rs6000.md: Update comments for 464.
3479
3480 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
3481
3482         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
3483
3484 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3485
3486         * config/i386/sse.md (vec_extractv4sf): Removed.
3487         (vec_extractv2df): Likewise.
3488         (vec_extractv2di): Likewise.
3489         (vec_extractv4si): Likewise.
3490         (vec_extractv8hi): Likewise.
3491         (vec_extractv16qi): Likewise.
3492         (vec_extract<mode>): New.
3493
3494 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3495
3496         * config/i386/sse.md (vec_setv4sf): Removed.
3497         (vec_setv2df): Likewise.
3498         (vec_setv2di): Likewise.
3499         (vec_setv4si): Likewise.
3500         (vec_setv8hi): Likewise.
3501         (vec_setv16qi): Likewise.
3502         (vec_set<mode>): New.
3503
3504 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3505
3506         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
3507         goto for vec_concat and vec_interleave.
3508
3509 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3510
3511         * config/i386/sse.md (vec_initv4sf): Removed.
3512         (vec_initv2df): Likewise.
3513         (vec_initv2di): Likewise.
3514         (vec_initv4si): Likewise.
3515         (vec_initv8hi): Likewise.
3516         (vec_initv16qi): Likewise.
3517         (vec_init<mode>): New.
3518
3519 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
3520
3521         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
3522
3523 2008-05-21  Tom Tromey  <tromey@redhat.com>
3524
3525         * ggc-zone.c (lookup_page_table_if_allocated): New function.
3526         (zone_find_object_offset): Likewise.
3527         (gt_ggc_m_S): Likewise.
3528         (highest_bit): Likewise.
3529         * ggc-page.c (gt_ggc_m_S): New function.
3530         * stringpool.c (string_stack): Remove.
3531         (init_stringpool): Update.
3532         (ggc_alloc_string): Use ggc_alloc.
3533         (maybe_delete_ident): New function.
3534         (ggc_purge_stringpool): Likewise.
3535         (gt_ggc_m_S): Remove.
3536         * ggc-common.c (ggc_protect_identifiers): New global.
3537         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
3538         ggc_protect_identifiers.
3539         * ggc.h (ggc_protect_identifiers): Declare.
3540         (gt_ggc_m_S): Update.
3541         (ggc_purge_stringpool): Declare.
3542         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
3543         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
3544         special case.
3545         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
3546
3547 2008-05-21  David S. Miller  <davem@davemloft.net>
3548
3549         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
3550         tmake_file.
3551
3552 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
3553
3554         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
3555         once finished.
3556
3557 2008-05-20  David Daney  <ddaney@avtrex.com>
3558
3559         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
3560         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
3561         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3562         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3563         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
3564         (atomic_hiqi_op): New define_code_iterator.
3565         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
3566         mips_expand_compare_and_swap_12.
3567         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
3568         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
3569         (sync_<optab><mode>, sync_old_<optab><mode>,
3570         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
3571         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
3572         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
3573         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
3574         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
3575         (test_and_set_12): New insn.
3576         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
3577         sync_new_<optab><mode>, sync_old_nand<mode>,
3578         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
3579         clobber to operand 0 for SI and DI mode insns.
3580         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
3581         mips_gen_fn_4): New typedefs.
3582         (mips_gen_fn_ptrs): Define new union type.
3583         (mips_expand_compare_and_swap_12): Remove declaration.
3584         (mips_expand_atomic_qihi): Declare function.
3585         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
3586         (mips_expand_atomic_qihi): ... this.  Use new generator function
3587         parameter.
3588         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
3589         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
3590         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
3591         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
3592         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
3593         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
3594         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
3595         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
3596         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
3597         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
3598         New macros.
3599
3600 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
3601
3602         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
3603         the missing break.
3604
3605 2008-05-20  Anatoly Sokolov <aesok@post.ru>
3606
3607         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
3608         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
3609         (avr_attribute_table): Add 'OS_main' function attribute.
3610         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
3611         functions with 'OS_main' attribute.
3612
3613 2008-05-20  Richard Guenther  <rguenther@suse.de>
3614
3615         PR tree-optimization/35204
3616         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
3617         helper, split out from ...
3618         (DFS): ... here.  Make the DFS walk non-recursive.
3619
3620 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
3621             Jan Sjodin  <jan.sjodin@amd.com>
3622
3623         PR tree-optimization/36181
3624         * tree-parloops.c (loop_has_vector_phi_nodes): New.
3625         (parallelize_loops): Don't parallelize when the loop has vector
3626         phi nodes.
3627
3628 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3629             Sebastian Pop  <sebastian.pop@amd.com>
3630
3631         * tree-loop-linear.c (gather_interchange_stats): Look in the access
3632         matrix, and never look at the tree representation of the memory
3633         accesses.
3634         (linear_transform_loops): Computes parameters and access matrices.
3635         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
3636         when fails.
3637         (access_matrix_get_index_for_parameter): New.
3638         * tree-data-ref.h (struct access_matrix): New.
3639         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
3640         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
3641         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
3642         am_vector_index_for_loop): New.
3643         (struct data_reference): Add field access_matrix.
3644         (DR_ACCESS_MATRIX): New.
3645         (compute_data_dependences_for_loop): Update declaration.
3646         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
3647         * lambda.h (lambda_vector_vec_p): Declared.
3648         * lambda-code.c: Depend on pointer-set.h.
3649         (lambda_collect_parameters_from_af, lambda_collect_parameters,
3650         av_for_af_base, av_for_af, build_access_matrix,
3651         lambda_compute_access_matrices): New.
3652         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
3653
3654 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
3655
3656         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
3657         $SOURCEDIR/include.
3658
3659 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3660             Sebastian Pop  <sebastian.pop@amd.com>
3661
3662         PR tree-optimization/36206
3663         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
3664         FOLD_CONVERSIONS.
3665         (instantiate_scev_1): Rename flags to fold_conversions.
3666         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
3667         outeside instantiation_loop.
3668         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
3669         (evolution_function_is_affine_or_constant_p): Removed.
3670         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
3671         instantiate_scev.
3672         (analyze_siv_subscript): Pass in the loop nest number.
3673         Call evolution_function_is_affine_in_loop instead of 
3674         evolution_function_is_affine_p.
3675         (analyze_overlapping_iterations): Pass in the loop nest number.
3676
3677 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3678             Sebastian Pop  <sebastian.pop@amd.com>
3679
3680         PR tree-optimization/36206
3681         * tree-chrec.h (chrec_fold_op): New.
3682         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
3683         and other trees.
3684
3685 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
3686
3687         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
3688         (DIRS_EQ): New.
3689         (remove_duplicates): Do not set inode on non-inode systems.
3690         Use DIRS_EQ.
3691
3692 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3693
3694         * config.gcc (tm_file): Update comments about relative pathnames.
3695
3696 2008-05-20  Richard Guenther  <rguenther@suse.de>
3697
3698         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
3699         * tree-ssa-sccvn.c (process_scc): Likewise.
3700         * tree-ssa-sink.c (execute_sink_code): Likewise.
3701         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
3702         * tree-vrp.c (process_assert_insertions): Likewise.
3703         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3704         (perform_tree_ssa_dce): Likewise.
3705         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3706         (dump_dominator_optimization_stats): Likewise.
3707         * tree-vectorizer.c (vectorize_loops): Likewise.
3708
3709 2008-05-20  Richard Guenther  <rguenther@suse.de>
3710
3711         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
3712
3713 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
3714
3715         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
3716         (ix86_i386elf_return_in_memory): Likewise.
3717         (ix86_i386interix_return_in_memory): Likewise.
3718         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
3719         (SUBTARGET_RETURN_IN_MEMORY): New.
3720         * config/i386/i386elf.h: Likewise.
3721         * config/i386/ptx4-i.h: Likewise.
3722         * config/i386/sol2-10.h: Likewise.
3723         * config/i386/sysv4.h: Likewise.
3724         * config/i386/vx-common.h: Likewise.
3725         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
3726         * config/i386/i386.c (ix86_return_in_memory): Made static and
3727         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
3728         (ix86_i386elf_return_in_memory): Removed.
3729         (ix86_i386interix_return_in_memory): Removed.
3730         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
3731         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
3732
3733 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
3734
3735         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
3736
3737 2008-05-19  Xinliang David Li  <davidxl@google.com>
3738
3739         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
3740         * opts.c: Ditto.
3741         * common.opt: Ditto.
3742         * doc/invoke.texi: Ditto.
3743
3744 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3745
3746         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
3747         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
3748
3749 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3750
3751         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
3752         sizes of operand array from 8/4 to 4/2.
3753         (ix86_expand_vector_init_general): Change size of operand array
3754         from 32 to 16.  Remove op0, op1 and half_mode.
3755
3756 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3757
3758         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
3759         (ix86_expand_vector_init_interleave): Likewise.
3760         (ix86_expand_vector_init_general): Use them.  Assert
3761         word_mode == SImode when n_words == 4.
3762
3763 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
3764
3765         * config/i386/i386.c (ix86_secondary_reload): New static function.
3766         (TARGET_SECONDARY_RELOAD): New define.
3767         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
3768         * config/i386/i386.md (reload_outqi): Remove.
3769
3770 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3771
3772         PR middle-end/35509
3773         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
3774         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
3775         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
3776         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
3777         (fold_builtin_1): Likewise.
3778         * builtins.def (BUILT_IN_ISINF_SIGN): New.
3779         c-common.c (check_builtin_function_arguments): Handle
3780         BUILT_IN_ISINF_SIGN.
3781         * doc/extend.texi: Document __builtin_isinf_sign.
3782         * fold-const.c (operand_equal_p): Handle COND_EXPR.
3783
3784 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
3785
3786         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
3787         EH cleanup at the end of the pass, search for those that have been
3788         turned into forwarder blocks and do the cleanup on their successor.
3789
3790 2008-05-18  Richard Guenther  <rguenther@suse.de>
3791
3792         * tree-cfg.c (verify_gimple_expr): Allow conversions from
3793         pointers to sizetype and vice versa.
3794
3795 2008-05-18 Xinliang David Li   <davidxl@google.com>
3796
3797         * gcc/tree-ssa-dce.c: Coding style fix.
3798         (check_pow): Documentation comment. 
3799         (check_log): Documenation comment. Coding style fix.
3800         (is_unnecessary_except_errno_call): Ditto.
3801         (gen_conditions_for_pow): Ditto.
3802         (gen_conditions_for_log): Ditto.
3803         (gen_shrink_wrap_conditions): Ditto.
3804         (shrink_wrap_one_built_in_calls): Ditto.
3805         * gcc/doc/invoke.texi: Better documentation string.
3806         * ChangeLog: Fix wrong change log entries from 
3807         May 17 checkin on function call DCE.
3808
3809 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
3810
3811         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
3812
3813 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
3814
3815         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
3816         * df-problems.c (simulation routines): Fixed block comment to
3817         properly say how to add forwards scanning functions.
3818         
3819 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3820
3821         * tree-inline.c (setup_one_parameter): Remove dead code.
3822
3823 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3824
3825         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
3826         a BIT_AND_EXPR only for an INTEGER_TYPE.
3827
3828 2008-05-17 Xinliang David Li   <davidxl@google.com>
3829
3830         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
3831         (check_pow, check_log, is_unnecessary_except_errno_call): New 
3832         functions to check for eliminating math functions that are pure 
3833         except for setting errno.
3834         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
3835         general condition expressions for shrink-wrapping pow/log calls.
3836         (gen_shrink_wrap_conditions): Ditto.
3837         (shrink_wrap_one_built_in_call): Ditto.
3838         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
3839         (mark_operand_necessary): If debugging, output if OP is necessary.
3840         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
3841         unnecessary.
3842         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
3843         opt level >= 2.
3844         * gcc/common.opt: New user flag -ftree-builtin-dce.
3845         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
3846
3847 2008-05-16  David S. Miller  <davem@davemloft.net>
3848
3849         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
3850         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3851
3852 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
3853
3854         PR target/36246
3855         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
3856
3857 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3858
3859         * ifcvt.c (dead_or_predicable): Rename
3860         df_simulate_one_insn_backwards to df_simulate_one_insn.
3861         * recog.c (peephole2_optimize): Ditto.
3862         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
3863         Ditto.
3864         * df.h: Rename df_simulate_one_insn_backwards to
3865         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
3866         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
3867         scanning of defs and uses.
3868         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
3869         (df_simulate_one_insn_forwards): Removed.
3870
3871 2008-05-16  Doug Kwan  <dougkwan@google.com>
3872
3873         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
3874         QNaN & SNaN.
3875         (real_from_string): Handle NaNs and Inf as approriate.
3876
3877 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3878
3879         * doc/gty.texi (Source Files Containing Type Information): Note
3880         that headers should appear first in the gtfiles list.
3881
3882 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3883
3884         * tree.def (COND_EXEC): Properly documented this code.
3885
3886 2008-05-16  Diego Novillo  <dnovillo@google.com>
3887
3888         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
3889         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
3890         the new field.
3891
3892 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3893
3894         * tree-ssa-dse (max_stmt_uid): Removed.
3895         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
3896         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
3897         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
3898         * function.h (cfun.last_stmt_uid): New field.
3899         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
3900         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
3901         New functions.
3902         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
3903         (create_stmt_ann): Initialize the ann->uid field.
3904         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
3905         with new calls.
3906         * tree-flow.h (renumber_gimple_stmt_uids): New function.
3907
3908 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3909
3910         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
3911         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
3912         (init_empty_tree_cfg): Call it.
3913
3914 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3915
3916         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
3917         Update all users.
3918
3919 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3920
3921         * doc/invoke.text (-fdump-tree-*-verbose): New option.
3922         * tree-dump.c (dump_options): New verbose option.
3923         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
3924         Add verbose dump.
3925         * tree-pass.h (TDF_VERBOSE): New dump flag.
3926         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3927         (tree-flow.h): Added include.
3928         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
3929
3930 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3931
3932         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
3933
3934         From Jie Zhang  <jie.zhang@analog.com>
3935         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3936         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
3937         mcpu=bf561-none and mcpu=bf561-0.2.
3938         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3939         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3940         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3941         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3942         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
3943         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
3944         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
3945         option.
3946         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
3947         (cputype_selected): Remove.
3948         (bfin_handle_option): Don't use cputype_selected.
3949         (override_options): When no mcpu option, enable all workarounds.
3950         Don't use bfin_workarounds.
3951         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
3952         processor type.
3953         (DEFAULT_CPU_TYPE): Don't define.
3954
3955 2008-05-16  Richard Guenther  <rguenther@suse.de>
3956
3957         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
3958         on deletion of the last stmt.
3959
3960 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3961
3962         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
3963         V8HImode for SSE2 and V16QImode for SSE4.1.
3964
3965 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3966
3967         * cgraph.h (compute_inline_parameters): Made public.
3968         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
3969         variable_generate_summary, function_write_summary,
3970         variable_write_summary, variable_read_summary.  Added generate_summary,
3971         write_summary, read_summary.
3972         * cgraphunit.c (cgraph_process_new_functions): Changed call from
3973         pass_ipa_inline.function_generate_summary, to
3974         compute_inline_parameters. 
3975         * ipa-inline.c (compute_inline_parameters): Made public and added
3976         node parameter.
3977         (compute_inline_parameters_for_current): New function.
3978         (pass_inline_param): Now calls compute_inline_parameters_for_current.
3979         (inline_generate_summary): Removed parameter and made to loop over
3980         all cgraph nodes.
3981         (pass_ipa_inline): Updated for new IPA_PASS structure.
3982         * passes.c (execute_ipa_summary_passes): Now is called once per
3983         pass rather than once per node*pass.
3984         
3985 2008-05-15  Anatoly Sokolov <aesok@post.ru>
3986
3987         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
3988         avr_have_mul_p, avr_asm_only_p): Remove variables.
3989         (avr_override_options): Remove initialization of removed variables.
3990         (avr_file_start):  Convert removed variables to fields of 
3991         'struct base_arch_s *avr_current_arch'. 
3992         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3993         (AVR_HAVE_MUL): (Ditto.).
3994         (AVR_HAVE_MOVW): (Ditto.).
3995         (AVR_HAVE_LPMX): (Ditto.). 
3996         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
3997         avr_asm_only_p): Remove declaration.
3998
3999 2008-05-15  Diego Novillo  <dnovillo@google.com>
4000
4001         * config/arm/arm.c (arm_return_in_memory): Fix return type.
4002         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
4003
4004 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
4005
4006         PR middle-end/36194
4007         * combine.c (check_conversion): Rename back to check_promoted_subreg.
4008         Don't call record_truncated_value from here.
4009         (record_truncated_value): Turn it into a for_each_rtx callback.
4010         (record_truncated_values): New function.
4011         (combine_instructions): Call note_uses with record_truncated_values.
4012         Change name of check_conversion to check_promoted_subreg. 
4013
4014 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
4015
4016         * doc/sourcebuild.texi: Document support for torture tests.
4017
4018 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
4019
4020         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
4021         to alternative 4 of operand 2.
4022
4023 2008-05-15  Richard Guenther  <rguenther@suse.de>
4024
4025         * tree-pass.h (current_pass): Declare.
4026         (get_pass_for_id): Likewise.
4027         * passes.c (passes_by_id, passes_by_id_size): New globals.
4028         (set_pass_for_id): New function.
4029         (get_pass_for_id): Likewise.
4030         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
4031         (execute_function_todo): Flush per function statistics.
4032         * toplev.c (compile_file): Init statistics.
4033         (general_init): Do early statistics initialization.
4034         (finalize): Finish statistics.
4035         * statistics.h (statistics_early_init): Declare.
4036         (statistics_init): Likewise.
4037         (statistics_fini): Likewise.
4038         (statistics_fini_pass): Likewise.
4039         (statistics_counter_event): Likewise.
4040         (statistics_histogram_event): Likewise.
4041         * statistics.c: New file.
4042         * Makefile.in (OBJS-common): Add statistics.o.
4043         (statistics.o): Add dependencies.
4044         * doc/invoke.texi (-fdump-statistics): Document.
4045
4046         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
4047         (insert): Likewise.
4048         (execute_pre): Use statistics_counter_event.
4049         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
4050         (substitute_and_fold): Increment it.  Use statistics_counter_event.
4051
4052 2008-05-15  Diego Novillo  <dnovillo@google.com>
4053
4054         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
4055
4056         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
4057         * tree-ssa-alias.c (new_type_alias): Remove references to
4058         sub-variables from comment.
4059         * tree-ssa-operands.c (swap_tree_operands): Likewise.
4060
4061 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
4062
4063         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
4064         attribute to 1 only for insertps alternative.
4065
4066 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
4067
4068         * config/bfin/bfin.md (loadbytes): New pattern.
4069         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
4070         (bfin_init_builtins): Initialize it.
4071         (bdesc_1arg): Add it.
4072
4073 2008-05-15  Sa Liu  <saliu@de.ibm.com>
4074
4075         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
4076         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
4077         * testsuite/lib/target-supports.exp: Add
4078         check_effective_target_fortran_integer_16.
4079
4080 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
4081
4082         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
4083         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
4084         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
4085         (TARGET_RETURN_IN_MEMORY): Define.
4086
4087 2008-05-15  Richard Guenther  <rguenther@suse.de>
4088
4089         PR middle-end/36244
4090         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
4091         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
4092         represent unmodifiable vars.
4093
4094 2008-05-15  Richard Guenther  <rguenther@suse.de>
4095
4096         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
4097         INDIRECT_REF and TARGET_MEM_REF.
4098         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
4099         TARGET_MEM_REF.
4100
4101 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
4102             H.J. Lu  <hongjiu.lu@intel.com>
4103
4104         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
4105         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
4106         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
4107         insn alternatives.  Add missing alternatives.
4108         (*vec_concatv2di_rex64_sse4_1): Likewise.
4109         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
4110         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
4111         Require TARGET_SSE.
4112
4113 2008-05-15  Richard Guenther  <rguenther@suse.de>
4114
4115         PR tree-optimization/36009
4116         PR tree-optimization/36204
4117         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
4118         (determine_invariantness_stmt): Record the loop a store is
4119         always executed in.
4120         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
4121         dependency.
4122
4123 2008-05-15  Richard Guenther  <rguenther@suse.de>
4124
4125         PR tree-optimization/34330
4126         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
4127         through the pointer will alias the SMT.
4128
4129 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
4130
4131         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
4132
4133 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
4134
4135         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
4136
4137 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4138             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4139
4140         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
4141         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
4142         (vashl_optab): New optab for vector/vector shifts.
4143         (vashr_optab): Ditto.
4144         (vlshr_optab): Ditto.
4145         (vrotl_optab): Ditto.
4146         (vrotr_optab): Ditto.
4147         (optab_subtype): New enum for optab_for_tree_code call.
4148         (optab_for_tree_code): Add enum optab_subtype argument.
4149
4150         * optabs.c (optab_for_tree_code): Take an additional argument to
4151         distinguish between a vector shift by a scalar and vector shift by
4152         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
4153         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
4154         vector shift by a vector.
4155         (expand_widen_pattern_expr): Pass additional argument to
4156         optab_for_tree_code.
4157
4158         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
4159         vrotl_optab, vrotr_optab.
4160
4161         * expr.c (expand_expr_real_1): Update calls to
4162         optab_for_tree_code to distinguish between vector shifted by a
4163         scalar and vector shifted by a vector.
4164         * tree-vectorizer.c (supportable_widening_operation): Ditto.
4165         (supportable_narrowing_operation): Ditto.
4166         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
4167         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
4168         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
4169         (vect_create_epilog_for_reduction): Ditto.
4170         (vectorizable_reduction): Ditto.
4171         (vectorizable_operation): Ditto.
4172         (vect_strided_store_supported): Ditto.
4173         (vect_strided_load_supported): Ditto.
4174         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
4175         * expmed.c (expand_shift): Ditto.
4176
4177         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
4178         scalar type.
4179         (ashr@var{m}3): Ditto.
4180         (vashl@var{m}3): Document new vector/vector shift standard name.
4181         (vashr@var{m}3): Ditto.
4182         (vlshr@var{m}3): Ditto.
4183         (vrotl@var{m}3): Ditto.
4184         (vrotr@var{m}3): Ditto.
4185
4186         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
4187         (PPERM_INVERT): Ditto.
4188         (PPERM_REVERSE): Ditto.
4189         (PPERM_REV_INV): Ditto.
4190         (PPERM_ZERO): Ditto.
4191         (PPERM_ONES): Ditto.
4192         (PPERM_SIGN): Ditto.
4193         (PPERM_INV_SIGN): Ditto.
4194         (PPERM_SRC1): Ditto.
4195         (PPERM_SRC2): Ditto.
4196
4197         * config/i386/sse.md (mulv2di3): Add SSE5 support.
4198         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
4199         allows a memory operand to be the value being added, and split it
4200         to improve vectorization.
4201         (sse5_pmacsdqh_mem): Ditto.
4202         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
4203         (sse5_mulv2div2di3_high): Ditto.
4204         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
4205         (vec_pack_trunc_v4si): Ditto.
4206         (vec_pack_trunc_v2di): Ditto.
4207         (sse5_pcmov_<mode>): Remove code that tried to use use
4208         andps/andnps instead of pcmov.
4209         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
4210         pmacsdqh instructions.
4211         (vec_widen_smult_lo_v4si): Ditto.
4212
4213         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
4214         (PPERM_INVERT): Ditto.
4215         (PPERM_REVERSE): Ditto.
4216         (PPERM_REV_INV): Ditto.
4217         (PPERM_ZERO): Ditto.
4218         (PPERM_ONES): Ditto.
4219         (PPERM_SIGN): Ditto.
4220         (PPERM_INV_SIGN): Ditto.
4221         (PPERM_SRC1): Ditto.
4222         (PPERM_SRC2): Ditto.
4223         (ix86_expand_sse_movcc): Move the SSE5 test after the if
4224         true/false tests.
4225         (ix86_expand_int_vcond): If SSE5 generate all possible integer
4226         comparisons.
4227         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
4228         says ignore whether the last reference is a memory operand.
4229
4230 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4231             Paolo Bonzini <bonzini at gnu dot org>
4232
4233         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
4234         shift patterns.
4235
4236         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
4237         (vlshr<mode>3): Rename from vlshr<mode>3.
4238         (vashr<mode>3): Rename from vashr<mode>3.
4239         (mulv4sf3): Change the names of vector shift patterns.
4240         (mulv4si3): Ditto.
4241         (negv4sf2): Ditt.
4242
4243         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
4244         shift insns.
4245
4246         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
4247         (SI_SHLHI): Ditto.
4248         (SI_SHL): Ditto.
4249         (SI_SHLI): Ditto.
4250         (SI_ROTH): Ditto.
4251         (SI_ROTHI): Ditto.
4252         (SI_ROT): Ditto.
4253         (SI_ROTI): Ditto.
4254         (SPU_RL_0): Ditto.
4255         (SPU_RL_1): Ditto.
4256         (SPU_RL_2): Ditto.
4257         (SPU_RL_3): Ditto.
4258         (SPU_RL_4): Ditto.
4259         (SPU_RL_5): Ditto.
4260         (SPU_RL_6): Ditto.
4261         (SPU_RL_7): Ditto.
4262         (SPU_SL_0): Ditto.
4263         (SPU_SL_1): Ditto.
4264         (SPU_SL_2): Ditto.
4265         (SPU_SL_3): Ditto.
4266         (SPU_SL_4): Ditto.
4267         (SPU_SL_5): Ditto.
4268         (SPU_SL_6): Ditto.
4269         (SPU_SL_7): Ditto.
4270
4271         * config/spu/spu.md (v): New iterator macro to add v for vector types.
4272         (floatunssidf2_internal): Change vector/vector shift names.
4273         (floatunsdidf2_internal): Ditto.
4274         (mulv8hi3): Ditto.
4275         (ashrdi3): Ditto.
4276         (ashrti3): Ditto.
4277         (cgt_df): Ditto.
4278         (cgt_v2df): Ditto.
4279         (dftsv): Ditto.
4280         (vashl<mode>3): Rename from ashl<mode>3.
4281         (vashr<mode>3): Rename from ashr<mode>3.
4282         (vlshr<mode>3): Rename from lshr<mode>3.
4283         (vrotl<mode>3): Rename from rotl<mode>3.
4284
4285 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4286
4287         PR target/36224
4288         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
4289         multiply gives the wrong value when doing widening multiplies.
4290         (vec_widen_smult_lo_v4si): Ditto.
4291
4292 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
4293
4294         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
4295         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
4296         emit_library_call_value. 
4297         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
4298         * tree.h (ECF_LIBCALL_BLOCK): Removed.
4299         * calls.c (initialize_argument_information, precompute_arguments, 
4300         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
4301         (precompute_arguments): Removed flags parameter.
4302         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
4303         
4304 2008-05-14  Richard Guenther  <rguenther@suse.de>
4305
4306         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
4307         Make sure to register the store if the use is a PHI_NODE.
4308
4309 2008-05-14  Olivier Hainque  <hainque@adacore.com>
4310
4311         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
4312         memory if the component is to be referenced in BLKmode according
4313         to get_inner_reference.
4314
4315 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
4316
4317         * calls.c (emit_library_call_value_1): Restore code clearing
4318         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
4319
4320 2008-05-14  Olivier Hainque  <hainque@adacore.com>
4321             Nicolas Roche  <roche@adacore.com>
4322
4323         * configure.ac: Add support for a "gcc_subdir" variable in
4324         config-lang.in, to denote a subdirectory where the language/GCC
4325         integration files are to be found.
4326         * configure: Regenerate.
4327
4328 2008-05-14  Ira Rosen  <irar@il.ibm.com>
4329
4330         PR tree-optimization/36098
4331         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
4332         value for the first load in the group in case of a gap.
4333         (vect_build_slp_tree): Check that there are no gaps in loads.
4334
4335 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
4336
4337         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
4338         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
4339         expand_copysign_bit, ): Change call to emit_no_conflict_block to
4340         emit_insn and remove unneeded code to construct extra args.
4341         (emit_no_conflict_block): Removed.
4342         * optabls.h: (emit_no_conflict_block): Removed.
4343         * cse.c (cse_extended_basic_block): Remove search for
4344         REG_NO_CONFLICT note.
4345         * global.c: Removed incorrect comment added in revision 117.
4346         * expr.c (convert_move): Change call to emit_no_conflict_block to
4347         emit_insn.
4348         * recog.c: Change comments so that they do not mention
4349         REG_NO_CONFLICT.
4350         * local_alloc.c (combine_regs): Removed last parameter.
4351         (no_conflict_p): Removed.
4352         (block_alloc): Removed note, no_conflict_combined_regno and set
4353         local vars. Removed all code to process REG_NO_CONFLICT blocks.
4354         (combine_regs): Removed already_dead and code to look for
4355         REG_NO_CONFLICT notes.
4356         * lower_subreg (remove_retval_note): Removed code to look for
4357         REG_NO_CONFLICT block.
4358         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
4359         (resolve_clobber): Remove code to process libcalls that have
4360         REG_NO_CONFLICT notes.
4361         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
4362         case.
4363         * combine.c (can_combine_p, distribute_notes):  Removed
4364         REG_NO_CONFLICT case.
4365         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
4366         to emit_insns.
4367         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
4368         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
4369         Ditto.
4370         * reg-notes.def (NO_CONFLICT): Removed.
4371
4372 2008-05-14  David S. Miller  <davem@davemloft.net>
4373
4374         * config/sparc/sparc.c (sparc_profile_hook): If
4375         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
4376         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
4377         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
4378
4379 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
4380
4381         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
4382
4383 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
4384
4385         PR target/36222
4386         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
4387         and op1 expansion before vector concat to have less live pseudos.
4388
4389 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
4390
4391         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
4392         ix86_expand_vector_set if supported.
4393
4394 2008-05-13  Diego Novillo  <dnovillo@google.com>
4395             Kenneth Zadeck  <zadeck@naturalbridge.com>
4396
4397         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
4398
4399         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
4400         phinodes_print_statistics, init_ssanames, fini_ssanames,
4401         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
4402         release_ssa_name, release_defs, replace_ssa_name_symbol,
4403         ssanames_print_statistics): Move ...
4404         * tree-flow.h: ... here.
4405         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
4406         Use FN instead of cfun.
4407         (make_ssa_name_fn): Rename from make_ssa_name.
4408         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
4409         * tree-flow-inline.h (make_ssa_name): Move from
4410         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
4411         * omp-low.c (expand_omp_parallel):
4412         * tree-flow-inline.h (redirect_edge_var_map_result):
4413         * tree-ssa.c (init_tree_ssa): Add argument FN.
4414         Use it instead of cfun.  Update all users.
4415
4416 2008-05-13  Tom Tromey  <tromey@redhat.com>
4417
4418         PR preprocessor/22168:
4419         * doc/cpp.texi (Top): Update menu.
4420         (Alternatives to Wrapper #ifndef): New node.
4421         (Other Directives): Document deprecation.
4422         (Obsolete Features): Remove menu.
4423         (Assertions): Merge node into Obsolete Features.
4424         (Obsolete once-only headers): Move earlier; rename to Alternatives
4425         to Wrapper #ifndef.
4426         * doc/cppopts.texi: Update.
4427         * c.opt (Wdeprecated): Enable for C and ObjC.
4428         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
4429         (C++ Dialect Options): Move -Wno-deprecated from here to...
4430         (Warning Options): ... here.
4431
4432 2008-05-13  Richard Guenther  <rguenther@suse.de>
4433
4434         PR middle-end/36227
4435         * fold-const.c (fold_sign_changed_comparison): Do not allow
4436         changes in pointer-ness.
4437
4438 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4439
4440         PR target/24713
4441         * config/sh/sh.c (sh_expand_prologue): Don't clear
4442         RTX_FRAME_RELATED_P for push insns.
4443
4444 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
4445
4446         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
4447
4448 2008-05-12  Anatoly Sokolov <aesok@post.ru>
4449
4450         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
4451         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
4452         Use 'machine->is_leaf' instead of 'leaf_func_p'.
4453
4454 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
4455
4456         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
4457         (*vec_concatv4sf_sse): This.
4458         (*sse2_concatv2si): Renamed to ...
4459         (*vec_concatv2si_sse2): This.
4460         (*sse1_concatv2si): Renamed to ...
4461         (*vec_concatv2si_sse): This.
4462         (*vec_concatv2di_rex): Renamed to ...
4463         (*vec_concatv2di_rex64): This.
4464         (*vec_concatv2si_sse4_1): New.
4465         (*vec_concatv2di_rex64_sse4_1): Likewise.
4466
4467 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
4468
4469         PR rtl-optimization/36111
4470         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
4471         that was created for swappable operands.
4472
4473 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
4474
4475         PR ada/36001
4476         * Makefile.in: Substitute GNATMAKE and GNATBIND.
4477         * configure.ac: Add call to ACX_PROG_GNAT.
4478
4479 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
4480
4481         * optc-gen.awk: Fix comment typo.
4482
4483 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4484
4485         * pretty-print.c (pp_integer_with_precision): Use
4486         HOST_LONG_LONG_FORMAT.
4487
4488 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
4489
4490         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
4491                 
4492 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
4493
4494         * config/i386/i386.c (bdesc_ptest): Removed.
4495         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
4496         (bdesc_args): Add __builtin_ia32_ptestz128,
4497         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
4498         (ix86_init_mmx_sse_builtins): Updated.
4499         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
4500         (ix86_expand_builtin): Updated.
4501
4502 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
4503
4504         * tree-cfg.c (valid_fixed_convert_types_p): New function.
4505         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
4506
4507 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
4508
4509         * value-prof.c (interesting_stringop_to_profile): Do not
4510         return early for BUILT_IN_MEMPCPY.
4511
4512 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
4513
4514         * calls.c (expand_call): Don't use callgraph to increase
4515         preferred_stack_boundary.
4516
4517         * cgraph.h (cgraph_rtl_info): Use unsigned on
4518         preferred_incoming_stack_boundary.
4519
4520         * final.c (rest_of_clean_state): Use unsigned on
4521         preferred_stack_boundary.
4522
4523 2008-05-09  Tom Tromey  <tromey@redhat.com>
4524
4525         PR preprocessor/22231:
4526         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
4527         proceeding.
4528
4529 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
4530
4531         PR tree-optimization/36129
4532         * tree-ssa-ccp.c: Include value-prof.h.
4533         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
4534         built-in function was folded to a constant.
4535         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
4536
4537 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
4538             Sebastian Pop  <sebastian.pop@amd.com>
4539
4540         * tree-scalar-evolution.c: Document instantiate_scev.
4541         (instantiate_parameters_1): Renamed instantiate_scev_1.
4542         Don't use the same loop for instantiation_loop and evolution_loop.
4543         (instantiate_scev): New.
4544         (instantiate_parameters): Moved...
4545         (resolve_mixers): Update call to instantiate_scev_1 to pass the
4546         same loop twice.  Maintains the semantics for this function.
4547         * tree-scalar-evolution.h (instantiate_scev): Declare.
4548         (instantiate_parameters): ...here.  Now static inline.
4549         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
4550         instead of resolve_mixers.
4551
4552 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
4553
4554         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
4555
4556 2008-05-09  Tomas Bily  <tbily@suse.cz>
4557
4558         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
4559         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
4560         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4561         * c-common.c (c_common_truthvalue_conversion): Likewise.
4562         * tree-object-size.c (compute_object_offset): Likewise.
4563         * tree-inline.c (estimate_num_insns_1): Likewise.
4564         * varasm.c (const_hash_1, compare_constant, copy_constant)
4565         (compute_reloc_for_constant, output_addressed_constants)
4566         (initializer_constant_valid_p): Likewise.
4567         * c-omp.c (check_omp_for_incr_expr): Likewise.
4568         * gimplify.c (gimplify_expr): Likewise.
4569         * c-typeck.c (c_finish_return): Likewise.
4570         * tree-vectorizer.c (supportable_widening_operation)
4571         (supportable_narrowing_operation): Likewise.
4572         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
4573         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
4574         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
4575         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
4576         (descr_info_loc): Likewise.
4577         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4578         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
4579         (fold_unary): Likewise.
4580         * builtins.c (get_pointer_alignment): Likewise.
4581         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
4582         (instantiate_parameters_1): Likewise.
4583         * tree.c (expr_align, stabilize_reference): Likewise.
4584         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
4585         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
4586         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
4587         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4588         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
4589         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
4590         Likewise.
4591         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
4592         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
4593         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
4594         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
4595         (forward_propagate_comparison)
4596         (tree_ssa_forward_propagate_single_use_vars): Likewise.
4597         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
4598         * emit-rtl.c (component_ref_for_mem_expr)
4599         (set_mem_attributes_minus_bitpos): Likewise.
4600         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
4601         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
4602         Likewise.
4603         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
4604         (build_function_call, pointer_diff, build_compound_expr)
4605         (c_finish_return): Likewise.
4606         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
4607         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
4608         Likewise.
4609         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
4610         * expr.c (is_aligning_offset): Likewise.
4611         * tree-ssa-alias.c (is_escape_site): Likewise.
4612         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
4613         (check_all_va_list_escapes): Likewise.
4614         * tree-ssa-loop-ivopts.c (determine_base_object)
4615         (determine_common_wider_type): Likewise.
4616         * dojump.c (do_jump): Likewise.
4617         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
4618         * tree-gimple.c (is_gimple_cast): Likewise.
4619         * fold-const.c (decode_field_reference, )
4620         (fold_sign_changed_comparison, fold_unary, fold_comparison)
4621         (fold_binary): Likewise.
4622         * tree-ssa-alias-warnings.c (find_alias_site_helper)
4623         (already_warned_in_frontend_p): Likewise.
4624         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
4625         * tree.c (really_constant_p, get_unwidened): Likewise.
4626         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
4627         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
4628         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
4629         Likewise.
4630         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
4631         CONVERT_EXPR_P.
4632         (CONVERT_EXPR_P): Define.
4633         (CASE_CONVERT): Define.
4634         
4635 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
4636
4637         PR middle-end/36117
4638         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
4639         (delete_unmarked_insns): When deleting a call, call
4640         delete_unreachable_blocks.
4641         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4642         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
4643
4644 2008-05-08  Richard Guenther  <rguenther@suse.de>
4645
4646         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
4647         (-ftree-salias): Likewise.
4648         (salias-max-implicit-fields): Remove param documentation.
4649         (salias-max-array-elements): Likewise.
4650         * tree-pass.h (pass_create_structure_vars): Remove.
4651         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4652         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4653         * tree-ssa-alias.c (create_structure_vars): Remove.
4654         (gate_structure_vars): Likewise.
4655         (pass_create_structure_vars): Likewise.
4656         (gate_build_alias): Likewise.
4657         (pass_build_alias): Adjust to run always and dump the function.
4658         * common.opt (ftree-salias): Hide.
4659         * passes.c (init_optimization_passes): Remove
4660         pass_create_structure_vars, adjust comment.
4661         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4662         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4663         * opts.c (decode_options): Do not set flag_tree_salias.
4664         (common_handle_option): Add OPT_ftree_salias to the backward
4665         compatibility section.
4666
4667 2008-05-08  Richard Guenther  <rguenther@suse.de>
4668
4669         * tree-flow-inline.h (var_can_have_subvars): Move ...
4670         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
4671         * tree-flow.h (var_can_have_subvars): Remove.
4672         (push_fields_onto_fieldstack): Remove.
4673         (sort_fieldstack): Likewise.
4674         (struct fieldoff): Move ...
4675         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
4676         alias_set and base_for_components fields.
4677         (sort_fieldstack): Make static.
4678         (push_fields_onto_fieldstack): Likewise.  Remove code that
4679         handles anything but RECORD_TYPEs.  Remove alias_set and
4680         base_for_components handling.
4681         (create_variable_info_for): Adjust.
4682
4683 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
4684
4685         * common.opt (Wframe-larger-than=): Shorten the help message
4686         to one line.
4687         * doc/invoke.texi (Wframe-larger-than=): Add more description.
4688
4689 2008-05-08  Rafael Espindola  <espindola@google.com>
4690
4691         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
4692         trap.
4693         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
4694         trap and that both operands are gimple values.
4695         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
4696         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
4697         is a fp operation.
4698
4699 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4700
4701         * read-rtl.c (join_c_conditions): Return the first string if the
4702         two strings are equal.
4703
4704 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4705
4706         * gensupport.h (pred_data): Add a "num_codes" field.
4707         (add_predicate_code): Declare.
4708         * gensupport.c (add_predicate_code): New function.
4709         (std_pred_table): Add an "allows_const_p" field.
4710         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
4711         Remove the (incomplete) list of such codes from the codes field.
4712         (init_predicate_table): Use add_predicate_code.  Add all
4713         RTX_CONST_OBJs if allows_const_p is true.
4714         * genrecog.c (process_define_predicate): Use add_predicate_code.
4715
4716 2008-05-08  David Daney  <ddaney@avtrex.com>
4717             Richard Sandiford  <rsandifo@nildram.co.uk>
4718         
4719         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
4720         special case of constant zero operands.
4721         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
4722         old and new values.  Special case constant zero values.
4723         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
4724         fails.
4725         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
4726         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
4727
4728 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
4729
4730         PR target/36090
4731         * simplify-rtx.c (simplify_plus_minus): Create CONST of
4732         similar RTX_CONST_OBJ before CONST_INT.
4733
4734 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
4735
4736         * stmt.c (expand_stack_restore): Change sa mode if needed.
4737
4738 2008-05-08  Richard Guenther  <rguenther@suse.de>
4739
4740         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
4741         return type to bool.
4742         (ix86_sol10_return_in_memory): Likewise.
4743         (ix86_i386elf_return_in_memory): Likewise.
4744         (ix86_i386interix_return_in_memory): Likewise.
4745         * config/i386/i386.c (ix86_return_in_memory): Likewise.
4746         (ix86_sol10_return_in_memory): Likewise.
4747         (ix86_i386elf_return_in_memory): Likewise.
4748         (ix86_i386interix_return_in_memory): Likewise.
4749
4750 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4751
4752         PR bootstrap/36180
4753         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
4754         fndecl argument.
4755         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
4756         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
4757         declared in front.
4758
4759 2008-05-08  Richard Guenther  <rguenther@suse.de>
4760
4761         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
4762         * tree-data-ref.h (struct dr_alias): Remove subvars field.
4763         (DR_SUBVARS): Remove.
4764         * tree-dfa.c (dump_subvars_for): Remove.
4765         (debug_subvars_for): Likewise.
4766         (dump_variable): Do not dump subvars.
4767         (remove_referenced_var): Do not remove subvars.
4768         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
4769         (lookup_subvars_for_var): Remove.
4770         (get_subvars_for_var): Likewise.
4771         (get_subvars_at): Likewise.
4772         (get_first_overlapping_subvar): Likewise.
4773         (overlap_subvar): Likewise.
4774         * tree-flow.h (subvar_t): Remove.
4775         (struct var_ann_d): Remove subvars field.
4776         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
4777         argument.  Remove special handling of SFTs.
4778         (compute_tag_properties): Likewise.
4779         (set_initial_properties): Likewise.
4780         (compute_call_clobbered): Likewise.
4781         (count_mem_refs): Likewise.
4782         (compute_memory_partitions): Likewise.
4783         (compute_flow_insensitive_aliasing): Likewise.
4784         (setup_pointers_and_addressables): Likewise.
4785         (new_type_alias): Likewise.
4786         (struct used_part): Remove.
4787         (used_portions): Likewise.
4788         (struct used_part_map): Likewise.
4789         (used_part_map_eq): Likewise.
4790         (used_part_map_hash): Likewise.
4791         (free_used_part_map): Likewise.
4792         (up_lookup): Likewise.
4793         (up_insert): Likewise.
4794         (get_or_create_used_part_for): Likewise.
4795         (create_sft): Likewise.
4796         (create_overlap_variables_for): Likewise.
4797         (find_used_portions): Likewise.
4798         (create_structure_vars): Likewise.
4799         * tree.def (STRUCT_FIELD_TAG): Remove.
4800         * tree.h (MTAG_P): Adjust.
4801         (struct tree_memory_tag): Remove base_for_components and
4802         unpartitionable flags.
4803         (struct tree_struct_field_tag): Remove.
4804         (SFT_PARENT_VAR): Likewise.
4805         (SFT_OFFSET): Likewise.
4806         (SFT_SIZE): Likewise.
4807         (SFT_NONADDRESSABLE_P): Likewise.
4808         (SFT_ALIAS_SET): Likewise.
4809         (SFT_UNPARTITIONABLE_P): Likewise.
4810         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
4811         (union tree_node): Remove sft field.
4812         * alias.c (get_alias_set): Remove special handling of SFTs.
4813         * print-tree.c (print_node): Remove handling of SFTs.
4814         * tree-dump.c (dequeue_and_dump): Likewise.
4815         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
4816         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
4817         * tree-predcom.c (set_alias_info): Do not set subvars.
4818         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
4819         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
4820         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
4821         (add_vars_for_offset): Remove.
4822         (add_virtual_operand): Remove special handling of SFTs.
4823         (add_call_clobber_ops): Likewise.
4824         (add_call_read_ops): Likewise.
4825         (get_asm_expr_operands): Likewise.
4826         (get_modify_stmt_operands): Likewise.
4827         (get_expr_operands): Likewise.
4828         (add_to_addressable_set): Likewise.
4829         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
4830         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4831         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
4832         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
4833         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
4834         (tree_node_structure): Likewise.
4835         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
4836         handling of SFTs.
4837         (find_what_p_points_to): Likewise.
4838
4839 2008-05-08  Sa Liu  <saliu@de.ibm.com>
4840
4841         * config/spu/spu.md: Fixed subti3 pattern.
4842
4843 2008-05-08  Richard Guenther  <rguenther@suse.de>
4844
4845         PR middle-end/36154
4846         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
4847         sure to create a representative for trailing arrays for PTA.
4848
4849 2008-05-08  Richard Guenther  <rguenther@suse.de>
4850
4851         PR middle-end/36172
4852         * fold-const.c (operand_equal_p): Two objects which types
4853         differ in pointerness are not equal.
4854
4855 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4856
4857         * calls.c (compute_argument_block_size): Add argument tree fndecl.
4858         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
4859         (emit_library_call_value_1): Add new variable fndecl initialized by
4860         NULL_TREE. It should be the decl type of orgfun, but this information
4861         seems not to be available here, so it uses the default calling abi.
4862         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
4863         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
4864         by TARGET_RETURN_IN_MEMORY.
4865         * config/i386/i386-interix.h: Likewise.
4866         * config/i386/i386.h: Likewise.
4867         * config/i386/i386elf.h: Likewise.
4868         * config/i386/ptx4-i.h: Likewise.
4869         * config/i386/sol2-10.h: Likewise.
4870         * config/i386/sysv4.h: Likewise.
4871         * config/i386/vx-common.h: Likewise.
4872         * config/cris/cris.h: Removed #if 0 clause.
4873         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
4874         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
4875         argument.
4876         (ix86_sol10_return_in_memory): Likewise.
4877         (ix86_i386elf_return_in_memory): New.
4878         (ix86_i386interix_return_in_memory): New.
4879         * config/mt/mt-protos.h (mt_return_in_memory): New.
4880         * config/mt/mt.c: Likewise.
4881         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4882         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
4883         * config/bfin/bfin.h: Likewise.
4884         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
4885         argument.
4886         * config/bfin/bfin.c: Likewise.
4887         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4888         * config/alpha/unicosmk.h: Likewise.
4889         * config/i386/cygming.h: Likewise.
4890         * config/iq2000/iq2000.h: Likewise.
4891         * config/mips/mips.h: Likewise.
4892         * config/mn10300/mn10300.h: Likewise.
4893         * config/rs6000/rs6000.h: Likewise.
4894         * config/score/score.h: Likewise.
4895         * config/spu/spu.h: Likewise.
4896         * config/v850/v850.h: Likewise.
4897         * defaults.h: Likewise.
4898         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
4899         * expr.c (emit_block_move): Adjust use of
4900         OUTGOING_REG_PARM_STACK_SPACE.
4901         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
4902         OUTGOING_REG_PARM_STACK_SPACE.
4903         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
4904
4905 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
4906
4907         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
4908         on OMP_RETURN for OMP_FOR.
4909
4910         PR debug/35896
4911         * dwarf2out.c (dw_expand_expr, common_check): Removed.
4912         (fortran_common): New function.
4913         (gen_variable_die): Call fortran_common instead of common_check,
4914         adjust for it returning tree instead of rtx.  Formatting.
4915
4916 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4917
4918         PR rtl/7335
4919         PR rtl/33826
4920         * see.c (see_copy_insn): Copy new pure const attributes for new call.
4921         * c-decl.c (merge_decls): Ditto.
4922         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
4923         to RTL_CONST_OR_PURE_CALL_P.
4924         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
4925         Initialized DECL_LOOPING_CONST_PURE.
4926         (process_call_operands): Set tree_side_effects properly.
4927         * tree.h (TREE_READONLY_DECL_P): Removed.
4928         (DECL_IS_PURE): Renamed to DECL_PURE_P.
4929         (DECL_LOOPING_OR_CONST_P): New macro.
4930         (struct tree_function_decl): Added looping_const_or_pure_p.
4931         (ECF_*) Renumbered.
4932         (ECF_LOOPING_OR_CONST_P): New macro.
4933         * rtlanal.c (pure_const_p): Removed.
4934         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
4935         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
4936         to RTL_CONST_CALL_P.
4937         * ipa-pure-const.c (pure_const_state_e): Added looping field.
4938         (check_decl, check_tree, check_call, scan_function): Initialize
4939         looping.
4940         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
4941         (static_execute): Set looping true for recursive functions.
4942         Undo setting state to IPA_NEITHER for recursive functions.
4943         * cse.c (cse_insn): 
4944         * ifcvt.c (noce_can_store_speculate_p): Changed
4945         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
4946         RTL_CONST_OR_PURE_CALL_P.
4947         * dse.c (scan_insn): Ditto.
4948         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
4949         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
4950         RTL_CONST_OR_PURE_CALL_P.
4951         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
4952         pure_call_p to RTL_CONST_CALL_P.
4953         * gimplify.c (gimplify_call_expr): Clear side effects for
4954         non-looping pure and constant calls.
4955         * calls.c (emit_call_1): Set rtl flags from ecf flags.
4956         (flags_from_decl_or_type): Set ecf flags from decl flags.
4957         (initialize_argument_information): Turn off
4958         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
4959         Change const to pure if callee_copies is true rather than just
4960         turning off const.
4961         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
4962         way of marking pure calls.
4963         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
4964         Remove hack that was supposed to fix pr7335 and remove old
4965         way of marking pure calls.
4966         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
4967         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
4968         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
4969         RTL_CONST_OR_PURE_CALL_P.
4970         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
4971         * loop-invariant.c (find_exits, find_invariant_bb): Changed
4972         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
4973         * sched-deps.c (schedule_analyze): Ditto.
4974         * rtl.h (struct rtx_def): Use call field, unchanging field, and
4975         return_val field of calls to represent pure and const function info.
4976         (CONST_OR_PURE_CALL_P): Deleted macro.
4977         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4978         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
4979         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
4980         TREE_READONLY.
4981         * tree-optimize.c (execute_fixup_cfg): Added test for
4982         ECF_LOOPING_CONST_OR_PURE.
4983         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
4984         DECL_PURE_P.
4985         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
4986         effects for looping pure or const calls.
4987         (verify_gimple_expr): Added verification code. 
4988         * config/alpha/alpha.c (alpha_legitimize_address,
4989         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
4990         RTL_CONST_CALL_P.
4991         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
4992         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
4993         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
4994         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
4995         RTL_CONST_OR_PURE_CALL_P.
4996         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
4997         and const calls to be deleted.
4998
4999 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
5000
5001         PR target/35714
5002         * config/i386/mmx.md (mmx_subv2sf3): New expander.
5003         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
5004         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
5005         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5006         to handle nonimmediate operands.
5007         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
5008         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
5009         to handle nonimmediate operands.
5010         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
5011         (mmx_pmulhrwv4hi3): New expander.  Use
5012         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5013         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
5014         (sse2_umulv1siv1di3): New expander.  Use
5015         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5016         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
5017         (mmx_eq<mode>3): New expander.  Use
5018         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5019         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
5020         (mmx_uavgv8qi3): New expander.  Use
5021         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5022         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
5023         (mmx_uavgv4hi3): New expander.  Use
5024         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5025
5026         * config/i386/sse.md
5027         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
5028         to handle nonimmediate operands.
5029         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
5030         to handle nonimmediate operands.
5031         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
5032         to handle nonimmediate operands.
5033         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
5034         to handle nonimmediate operands.
5035         (sse2_unpckhpd_exp): New expander.  Use
5036         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5037         (sse2_unpcklpd_exp): New expander.  Use
5038         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5039         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
5040         to handle nonimmediate operands.
5041         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
5042         to handle nonimmediate operands.
5043         (*sse2_<plusminus_insn><mode>3): Rename from
5044         sse2_<plusminus_insn><mode>3 insn pattern.
5045         (sse2_<plusminus_insn><mode>3): New expander.  Use
5046         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5047         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
5048         (sse2_umulv2siv2di3): New expander.  Use
5049         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5050         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
5051         (sse4_1_mulv2siv2di3): New expander.  Use
5052         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5053         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
5054         (sse2_pmaddwd): New expander.  Use
5055         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5056         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
5057         (sse2_eq<mode>3): New expander.  Use
5058         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5059         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
5060         (sse4_1_eqv2di3): New expander.  Use
5061         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5062         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
5063         (sse2_uavgv16qi3): New expander.  Use
5064         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5065         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
5066         (sse2_uavgv16qi3): New expander.  Use
5067         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5068         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
5069         (sse2_uavgv8hi3): New expander.  Use
5070         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5071         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
5072         (ssse3_pmulhrswv8hi3): New expander.  Use
5073         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5074         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
5075         (ssse3_pmulhrswv4hi3): New expander.  Use
5076         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5077
5078         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
5079         (<sse>_vmmul<mode>3): Ditto.
5080         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
5081         (divv2df3): Ditto.
5082         (ssse3_pmaddubsw128): Use register_operand for operand 1.
5083         (ssse3_pmaddubsw): Ditto.
5084
5085         * config/i386/i386.c (struct_builtin_description)
5086         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
5087         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
5088         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
5089         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
5090         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
5091         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
5092         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
5093         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
5094         (ix86_fixup_binary_operands): Assert that src1
5095         and src2 must have the same mode when swapped.
5096         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
5097         and ix86_binary_operator_ok.  Do not force operands in registers
5098         when optimizing.
5099
5100 2008-05-07  Jan Hubicka  <jh@suse.cz>
5101
5102         * cgraph.c (dump_cgraph_node): Update.
5103         * cgraph.h (cgraph_local_info): Break out inline summary.
5104         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
5105         hook.
5106         * ipa-inline (inline_summary): New accestor function.
5107         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
5108         cgraph_decide_inlining, compute_inline_parameters): Update.
5109         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
5110
5111 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
5112
5113         Cleanup ColdFire scheduling support and add V4 pipeline model.
5114
5115         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
5116         (define_attr cpu): Add cfv4 value.
5117         (define_attr type, define_attr type1): Merge into a single 'type'
5118         attribute.  Update all uses.
5119         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
5120         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
5121         Update all uses.
5122         (define_attr opx_mem, define_attr opy_mem): Remove.
5123         (define_attr op_mem): Clean up, update comment.
5124         (define_attr size): Use specific values instead of general int.
5125         (define_attr guess, define_attr split): Remove.  Update all uses.
5126         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
5127         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
5128         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
5129         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
5130         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
5131         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
5132         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
5133         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
5134         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
5135         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
5136         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
5137         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
5138         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
5139         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
5140         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
5141         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
5142         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
5143         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
5144         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
5145         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
5146         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
5147         Update or set attributes.
5148         (stack_tie): New fake instruction.
5149
5150         * config/m68k/m68k.h (TUNE_CFV4): New macro.
5151         (m68k_sched_attr_size): Update declaration.
5152         (m68k_sched_attr_type2): Remove.
5153         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
5154         Declare new bypass predicates.
5155
5156         * config/m68k/m68k.c (m68k_sched_issue_rate,
5157         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
5158         implementations.
5159         (TARGET_SCHED_ISSUE_RATE,
5160         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
5161         (override_options): Handle scheduling for ColdFire V4 core.
5162         (m68k_expand_prologue): Emit stack_tie.
5163         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
5164         'OP_TYPE_FPN'.  Update all uses.
5165         (sched_guess_p): Remove.
5166         (sched_address_type): Handle symbolic addresses.
5167         (sched_get_operand): New static function.
5168         (sched_operand_type): Merge into sched_attr_op_type.
5169         (sched_attr_op_type): Handle FP registers, handle quick constants,
5170         update.
5171         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
5172         (m68k_sched_attr_size): Update.  Move logic to ...
5173         (sched_get_attr_size_int): New static function.
5174         (sched_get_opxy_mem_type): New static function.
5175         (m68k_sched_attr_op_mem): Update.
5176         (m68k_sched_attr_type2): Remove.
5177         (sched_cfv4_bypass_data): New static variable.
5178         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
5179         (m68k_sched_issue_rate): Implement scheduler hook.
5180         (struct _sched_ib: enabled_p): New field.
5181         (m68k_sched_variable_issue): Update.  Handle V4.
5182         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
5183         sched_dump_class_func_t, sched_dump_split_class,
5184         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
5185         sched_dump_dfa_class, m68k_sched_dump): Remove.
5186         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
5187         hook.
5188         (m68k_sched_init_global): Remove statisctics dumping, introduce
5189         sanity check that all instructions have pipeline reservations.  Handle
5190         ColdFire V4 core.
5191         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5192         Handle ColdFire V4 core.
5193         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
5194         New static functions.
5195         (m68k_sched_address_bypass_p): New bypass predicate.
5196         (sched_get_indexed_address_scale): New static function.
5197         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
5198
5199         * cf.md: Update comments.
5200         (define_attr type2): Remove.  Use 'type' attribute instead.
5201         Update all uses.
5202         (cf_ib): Rename to cfv123_ib.  Update all uses.
5203         (cf_oep): Rename to cfv123_oep.  Update all uses.
5204         (cf_chr): Rename to cfv123_chr.  Update all uses.
5205         (cf_mem): Rename to cfv123_mem.  Update all uses.
5206         (cf_mac): Move to more appropriate place.
5207         (cfv123_guess): New automaton and cpu_unit.
5208         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
5209         Update uses of 'size' attribute.  Handle before reload scheduling.
5210         (cfv123_guess): New dummy reservation for unhandled instructions.
5211         (cfv4_*): Pipeline description of ColdFire V4 core.
5212         (ignore): New reservation to handle 'ignore' type.
5213
5214 2008-05-07  Ian Lance Taylor  <iant@google.com>
5215
5216         PR middle-end/36013
5217         * gimplify.c (find_single_pointer_decl_1): Don't look through
5218         indirections.
5219         (find_single_pointer_decl): Adjust comments.
5220
5221 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
5222
5223         PR middle-end/36137
5224         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
5225         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
5226
5227         PR middle-end/36106
5228         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
5229         integral type rather than floating point, then VIEW_CONVERT_EXPR
5230         to the floating point type.
5231
5232 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
5233
5234         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
5235         TFmode op0 to register.
5236
5237 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
5238
5239         * c-decl.c (grokdeclarator): Comment typo.
5240
5241 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
5242
5243         * tree-flow.h: Remove prototype for computed_goto_p.
5244         * tree-cfg.c (computed_goto_p): Make static.
5245
5246 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
5247
5248         PR target/35657
5249         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
5250         (contains_aligned_value_p): This.  Handle _Decimal128.
5251         (ix86_function_arg_boundary): Only align _Decimal128 to its
5252         natural boundary and handle it properly.
5253
5254 2008-05-06  Martin Jambor  <mjambor@suse.cz>
5255
5256         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
5257         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
5258         (ipcp_method_set_orig_node): Removed.
5259         (ipcp_cval_get_cvalue_type): Removed.
5260         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
5261         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
5262         (ipcp_cval_set_cvalue_type): Removed.
5263         (ipcp_cval_get_cvalue): Removed.
5264         (ipcp_cval_set_cvalue): Removed.
5265         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
5266         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
5267         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
5268         (ipcp_cval_meet): Renamed to ipa_lattice_meet
5269         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
5270         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
5271         (ipcp_get_ith_lattice): Changed parameters.
5272         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
5273         (ipcp_lattice_from_jfunc): Changed parameters.
5274         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
5275         (ipcp_method_cval_print): Added temporary variable info.
5276         (ipcp_redirect): Removed already unused local variable caller.
5277         (ipcp_redirect): New temporary variable orig_callee_info
5278         (ipcp_redirect): Removed newly unused local variable callee.
5279         (ipcp_redirect): Removed (a bit confusing) local variable type.
5280         (ipcp_insert_stage): Added local variable info.
5281         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
5282         renamed too
5283         (ipcp_formal_create): Removed.
5284         (ipcp_method_cval_set): Removed.
5285         (ipcp_propagate_stage): Renamed lattice variables.
5286         (ipcp_method_cval_set_cvalue_type): Removed.
5287         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
5288         (ipcp_print_all_lattices): Changed printed strings to refer to 
5289         lattices rather than cvals.
5290         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
5291         (ipcp_propagate_const): Changed formal parameters.
5292         (build_const_val): Changed formal parameters.
5293         (ipcp_insert_stage): Removed useless variable cvalue
5294         (build_const_val): Changed formal parameters.
5295         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
5296         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
5297         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
5298         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
5299         (ipcp_print_func_profile_counts): Changed string from "method" to 
5300         "function"
5301         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
5302         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
5303         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
5304         (ipcp_structures_print): Renamed to ipcp_print_all_structures
5305         (ipcp_profile_print): Renamed to ipcp_print_profile_data
5306         (ipcp_lat_is_const): Changed parameters and made inline.
5307         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
5308         (ipcp_redirect): Renamed to ipcp_need_redirect_p
5309         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
5310         the predicate condition directly
5311         (ipcp_propagate_stage): Added local variable args. Removed local
5312         variable callee.  (Both are mere code simplifications.)
5313         (ipcp_method_dont_insert_const): Renamed to
5314         ipcp_node_not_modifiable_p.
5315         (ipcp_node_not_modifiable_p): Made inline.
5316         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
5317         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
5318         (ipcp_print_all_lattices): Removed variable cvalue
5319         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
5320         Updated comments.
5321
5322 2008-05-06  Olivier Hainque  <hainque@adacore.com>
5323
5324         * tree-sra.c (try_instantiate_multiple_fields): Early return
5325         if field has POINTER_TYPE.
5326
5327 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
5328
5329         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
5330         by using 'q' specifier for instruction.
5331         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
5332
5333 2008-05-06  Anatoly Sokolov <aesok@post.ru>
5334
5335         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5336         Change mode of zero_extract from QImode to HImode.
5337         (sign bit tests peepholes): (Ditto.).
5338
5339 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
5340
5341         * config/i386/mmx.md: Remove double backslashes from asm templates.
5342         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
5343         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5344         to handle nonimmediate operands.
5345         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
5346         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5347         to handle nonimmediate operands.
5348         (*mmx_<code>v2sf3_finite): New insn pattern.
5349         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
5350         (mmx_<code>v2sf3): New expander.  Use
5351         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5352         (mmx_<plusminus_insn><mode>3): New expander.  Use
5353         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5354         (*mmx_<plusminus_insn><mode>3): New insn pattern.
5355         (mmx_add<mode>3): Removed.
5356         (mmx_ssadd<mode>3): Ditto.
5357         (mmx_usadd<mode>3): Ditto.
5358         (mmx_sub<mode>3): Ditto.
5359         (mmx_sssub<mode>3): Ditto.
5360         (mmx_ussub<mode>3): Ditto.
5361         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
5362         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
5363         to handle nonimmediate operands.
5364         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
5365         insn pattern.
5366         (mmx_smulv4hi3_highpart): New expander.  Use
5367         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5368         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
5369         insn pattern.
5370         (mmx_umulv4hi3_highpart): New expander.  Use
5371         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5372         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
5373         (mmx_<code>v4hi3): New expander.  Use
5374         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5375         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
5376         (mmx_<code>v8qi3): New expander.  Use
5377         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5378         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
5379         (mmx_<code><mode>3): New expander.  Use
5380         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5381
5382 2008-05-05  Jan Hubicka  <jh@suse.cz>
5383
5384         PR tree-optimization/36118
5385         * passes.c (pass_init_dump_file): Fix dump header.
5386
5387 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5388
5389         PR middle-end/36141
5390         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
5391         VCE for function decls.
5392
5393 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5394
5395         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
5396
5397 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5398
5399         * config/i386/i386.md (sat_plusminus): New.
5400         (plusminus_insn): Likewise.
5401         (plusminus_mnemonic): Likewise.
5402         (addsub): Removed.
5403         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
5404         (*<addsub><mode>3_cc_overflow): Renamed to ...
5405         (*<plusminus_insn><mode>3_cc_overflow): This.
5406         (*<addsub>si3_zext_cc_overflow): Renamed to ...
5407         (*<plusminus_insn>si3_zext_cc_overflow): This.
5408
5409         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
5410         (<plusminus_insn><mode>3): This.
5411         (*<addsub><mode>3): Renamed to ...
5412         (*<plusminus_insn><mode>3): This.
5413         (<sse>_vm<addsub><mode>3): Renamed to ...
5414         (<sse>_vm<plusminus_insn><mode>3): This.
5415         (sse3_h<addsub>v4sf3): Renamed to ...
5416         (sse3_h<plusminus_insn>v4sf3): This.
5417         (sse3_h<addsub>v2df3): Renamed to ...
5418         (sse3_h<plusminus_insn>v2df3): This.
5419         (<plusminus_insn><mode>3): New.
5420         (*<plusminus_insn><mode>3): Likewise.
5421         (sse2_<plusminus_insn><mode>3): Likewise.
5422         (add<mode>): Removed.
5423         (*add<mode>3): Likewise.
5424         (sse2_ssadd<mode>3): Likewise.
5425         (sse2_usadd<mode>3): Likewise.
5426         (sub<mode>3): Likewise.
5427         (*sub<mode>3): Likewise.
5428         (sse2_sssub<mode>3): Likewise.
5429         (sse2_ussub<mode>3): Likewise.
5430
5431 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
5432
5433         * gthr-single.h: Add in required interface elements as per gthr.h.
5434         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
5435         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
5436         Generalize UNUSED macro. 
5437         (__gthread_once): Add.
5438         (__gthread_key_create): Add.
5439         (__gthread_key_delete): Add.
5440         (__gthread_getspecific): Add.
5441         (__gthread_setspecific): Add.
5442         
5443 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
5444
5445         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
5446         the same size types for the indirect reference on the rhs, then
5447         create a VCE.
5448
5449 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
5450
5451         * config/i386/i386.md
5452         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
5453         one insn template instead of template series.
5454         (*xordi_1_rex64): Ditto.
5455         (*xordi_2_rex64): Ditto.
5456
5457 2008-05-05  Ira Rosen  <irar@il.ibm.com>
5458
5459         PR tree-optimization/36119
5460         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
5461         in case of SLP.
5462
5463 2008-06-04  Jan Hubicka  <jh@suse.cz>
5464
5465         tree-optimization/36100
5466         * tree-pass.h (pass_O0_always_inline): Declare.
5467         * ipa-inline.c (inline_transform): Remove dead code.
5468         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
5469         pass_O0_always_inline): New.
5470         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
5471
5472 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
5473
5474         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
5475         mnemonic in this_param move for TARGET_64BIT.
5476
5477 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
5478
5479         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
5480         (*strmovsi_rex_1): Ditto.
5481         (*strsetsi_1): Ditto.
5482         (*strsetsi_rex_1): Ditto.
5483
5484         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
5485         adddicc expanders using SWI mode iterator.
5486
5487 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5488
5489         PR target/36121
5490         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
5491         argument handling.
5492
5493 2008-05-04  David S. Miller  <davem@davemloft.net>
5494
5495         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
5496         (sparc*-*-linux*): Use linux.h in tm_file.
5497         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
5498         compiler defaulting to 32-bit.
5499         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
5500         no longer needed.
5501         * config/sparc/linux.h: Remove definitions now obtained
5502         properly from linux.h
5503         * config/sparc/linux64.h: Likewise.
5504         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
5505         don't want this setting for 32-bit builds in a biarch compiler.
5506         * doc/install.texi: Add sparc-linux to list of targets
5507         supporting --enable-targets=all.
5508
5509 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
5510
5511         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
5512
5513 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
5514
5515         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
5516         after V4SI_FTYPE_V8HI.
5517         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
5518         case V4SI_FTYPE_V2DF.
5519
5520 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
5521
5522         * doc/invoke.texi (max-flow-memory-locations): Removed.
5523         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
5524         
5525 2008-05-03  Richard Guenther  <rguenther@suse.de>
5526
5527         PR middle-end/34973
5528         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
5529
5530 2008-05-02  David S. Miller  <davem@davemloft.net>
5531
5532         * config.gcc (need_64bit_hwint): Document libcpp dependency.
5533
5534 2008-05-02  Simon Baldwin <simonb@google.com>
5535
5536         PR bootstrap/36108
5537         * c-common.h (warn_array_subscript_range): Removed.
5538         * c-common.c (warn_array_subscript_range): Ditto.
5539         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
5540         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
5541
5542 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5543
5544         * config/i386/i386.c (ix86_special_builtin_type): New.
5545         (bdesc_special_args): Likewise.
5546         (ix86_expand_special_args_builtin): Likewise.
5547         (ix86_init_mmx_sse_builtins): Updated.
5548         (ix86_expand_builtin): Updated.
5549         (ix86_expand_store_builtin): Removed.
5550         (ix86_expand_unop_builtin): Likewise.
5551
5552         * config/i386/mm3dnow.h (__v2sf): Moved to ...
5553         * config/i386/mmintrin.h (__v2sf): Here.
5554
5555         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
5556         const __v2sf.
5557         (_mm_loadl_pi): Likewise.
5558         (_mm_storeh_pi): Replace __v2si with __v2sf.
5559         (_mm_storel_pi): Likewise.
5560
5561         * doc/extend.texi: Correct __builtin_ia32_loadhps,
5562         __builtin_ia32_loadlps, __builtin_ia32_storehps,
5563         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
5564         __builtin_ia32_loadlpd.
5565
5566 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5567
5568         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
5569         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
5570         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
5571         (ix86_init_mmx_sse_builtins): Updated.
5572         (ix86_expand_args_builtin): Likewise.
5573         (ix86_expand_builtin): Likewise.
5574         (ix86_expand_unop1_builtin): Renamed to ...
5575         (ix86_expand_unop_vec_merge_builtin): This.
5576
5577 2008-05-01  Jan Hubicka  <jh@suse.cz>
5578
5579         PR bootstrap/36100
5580         * ipa-inline.c (inline_generate_summary): Make static.
5581         (inline_transform): Do not call inlining at -O0; make static.
5582         * passes.c (execute_todo): Add sanity check.
5583         (execute_one_ipa_transform_pass): Execute proper flags.
5584
5585 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
5586
5587         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
5588         (DECL_NONADDRESSABLE_P): Likewise.
5589         * alias.c (record_component_aliases): Fix comment.
5590
5591 2008-05-01  Simon Baldwin <simonb@google.com>
5592
5593         * c-common.h (warn_array_subscript_range): New function.
5594         * c-common.c (warn_array_subscript_range): Ditto.
5595         * tree-vrp.c (check_array_ref): Corrected code to agree with
5596         comment, ignoring only arrays of size 0 or size 1.
5597         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
5598
5599 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5600
5601         * config/i386/i386.c (ix86_builtin_type): Replace
5602         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
5603         (bdesc_args): Updated.
5604         (ix86_init_mmx_sse_builtins): Likewise.
5605         (ix86_expand_args_builtin): Likewise.
5606
5607         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
5608         with __v1di.
5609
5610         * doc/extend.texi: Correct __builtin_ia32_palignr.
5611
5612 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5613
5614         PR target/36095
5615         * config/i386/i386.c (bdesc_crc32): Removed.
5616         (ix86_expand_crc32): Likewise.
5617         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
5618         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
5619         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
5620         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
5621         UINT_FTYPE_UINT_UCHAR.
5622         (bdesc_args): Updated. Add crc32 builtins.
5623         (ix86_init_mmx_sse_builtins): Updated.
5624         (ix86_expand_args_builtin): Updated to support subreg.
5625
5626         * doc/extend.texi: Correct __builtin_ia32_crc32di.
5627
5628 2008-05-01  Jan Hubicka  <jh@suse.cz>
5629
5630         * tree-pass.h (opt_pass): Add IPA_PASS.
5631         (varpool_node, cgraph_node): Forward declare.
5632         (ipa_opt_pass): Define.
5633         (pass_ipa_inline): Turn into ipa_opt_pass.
5634         (pass_apply_inline): Remove.
5635         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
5636         (apply_inline): Turn into ....
5637         (inline_transform): ... this one.
5638         (inline_generate_summary): New function.
5639         (pass_apply_inline): Remove.
5640         * function.h (ipa_opt_pass): Forward declare structure; typedef;
5641         vector.
5642         (struct function): Add ipa_transforms_to_apply.
5643         * passes.c (register_one_dump_file): Work on IPA_PASS.
5644         (init_optimization_passes): Remove pass_inline_parameters and
5645         pass_apply_inline.
5646         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
5647         (execute_one_pass) ... here; apply transforms when possible.
5648         (add_ipa_transform_pass, execute_ipa_summary_asses,
5649         execute_one_ipa_transform_pass): New.
5650         (execute_ipa_pass_list): Update for IPA_PASS type.
5651
5652 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5653
5654         * config/i386/i386.c (ix86_builtin_type): Add
5655         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
5656         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
5657         (bdesc_args): Add SSE4a builtins.
5658         (ix86_init_mmx_sse_builtins): Updated.
5659         (ix86_expand_args_builtin): Likewise.
5660         (ix86_expand_builtin): Likewise.
5661
5662 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5663
5664         * config/i386/i386.c (ix86_builtin_type): Add
5665         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
5666         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
5667         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
5668         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
5669         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
5670         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
5671         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
5672         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
5673         and DI_FTYPE_DI_DI_INT.
5674         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
5675         (ix86_init_mmx_sse_builtins): Updated.
5676         (ix86_expand_args_builtin): Likewise.
5677         (ix86_expand_builtin): Likewise.
5678         (ix86_expand_binop_imm_builtin): Removed.
5679
5680         * doc/extend.texi: Correct __builtin_ia32_palignr128.
5681
5682 2008-04-30  Richard Guenther  <rguenther@suse.de>
5683
5684         PR tree-optimization/32921
5685         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
5686
5687 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
5688
5689         * config/arm/arm.c (arm_unwind_emit): Use
5690         crtl->all_throwers_are_sibcalls instead of
5691         cfun->all_throwers_are_sibcalls.
5692         (arm_output_fn_unwind): Likewise.
5693         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
5694         instead of cfun->uses_pic_offset_table.
5695         (frv_expand_prologue): Likewise.
5696         (frv_frame_pointer_required): Likewise.
5697         (frv_expand_fdpic_call): Likewise.
5698         (frv_emit_movsi): Likewise.
5699         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
5700         cfun->returns_pcc_struct instead of
5701         current_function_returns_pcc_struct.
5702         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
5703         instead of cfun->calls_eh_return.
5704         (m32c_pushm_popm): Likewise.
5705         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
5706         "extern" declaration.
5707
5708 2008-04-30  Richard Guenther  <rguenther@suse.de>
5709
5710         PR tree-optimization/21636
5711         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
5712         constant address.
5713         (evaluate_stmt): Print the likely value.
5714         (ccp_visit_stmt): Avoid excessive vertical spacing.
5715
5716 2008-04-30  Rafael Espindola  <espindola@google.com>
5717
5718         * builtins.c (fold_call_expr): Return realret.
5719         * tree-ssa-threadedge.c
5720         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5721         __builtin_object_size.
5722
5723 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
5724
5725         * gcc.c (wrapper_string): New variable.
5726         (insert_wrapper): New function.
5727         (execute): New option -wrapper.
5728         * doc/invoke.texi (Overall Options): New driver option -wrapper.
5729
5730 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
5731
5732         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
5733         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
5734         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
5735         from...
5736         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
5737         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
5738         config/rs6000/e500crtres64gprctr.asm,
5739         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
5740         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
5741         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
5742         config/rs6000/e500crtsav64gprctr.asm,
5743         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
5744         config/rs6000/e500crtsavg64gprctr.asm: New files.
5745         * config/rs6000/t-ppccomm: Add build rules for new files.
5746         (LIB2FUNCS_STATIC_EXTRA): Add new files.
5747         * config/rs6000/t-netbsd: Add build rules for new files.
5748         (LIB2FUNCS_STATIC_EXTRA): New variable.
5749         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
5750         (CRTSAVRES_DEFAULT_SPEC): Likewise.
5751         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
5752
5753 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
5754
5755         * config/i386/i386.c (ix86_builtin_type): Add
5756         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
5757         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
5758         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
5759         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
5760         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
5761         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
5762         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
5763         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
5764         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
5765         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
5766         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
5767         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
5768         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
5769         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
5770         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
5771         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
5772         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
5773         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
5774         V1DI_FTYPE_V2SI_V2SI.
5775         (bdesc_2arg): Moved to ...
5776         (bdesc_args): Here.
5777         (ix86_init_mmx_sse_builtins): Updated.
5778         (ix86_expand_args_builtin): Updated.  Take a pointer
5779         to const struct builtin_description.  Handle comparison
5780         builtin functions.
5781         (ix86_expand_sse_compare): Take a new argument for swapping operands.
5782         (ix86_expand_builtin): Updated.
5783
5784         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
5785         (ssse3_pmaddubsw128): This.
5786         (ssse3_pmaddubswv4hi3): Renamed to ...
5787         (ssse3_pmaddubsw): This.
5788
5789         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
5790         (__builtin_ia32_packssdw128): Likewise.
5791         (__builtin_ia32_packuswb128): Likewise.
5792         (__builtin_ia32_pmaddubsw): Likewise.
5793         (__builtin_ia32_pmaddubsw128): Likewise.
5794
5795 2008-04-30  Richard Guenther  <rguenther@suse.de>
5796
5797         PR tree-optimization/14847
5798         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
5799         (recognize_bits_test): Use it.
5800         (recognize_single_bit_test): Likewise.
5801
5802 2008-04-30  Martin Jambor  <mjambor@suse.cz>
5803
5804         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
5805         instead of setting number of formal parameters to zero.
5806         (ipcp_init_stage): Do not set the number of actual parameters to zero 
5807         either.
5808         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
5809         which are called with variable number of arguments.
5810         (ipcp_insert_stage): Explicitely skipping all nodes which are
5811         called with variable number of arguments.
5812         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
5813         number of parameters.
5814
5815         * ipa-prop.h (struct ipa_node_params): Added flag
5816         called_with_var_arguments
5817         (ipa_set_param_count): Added.  Changed sole setter to use it.
5818         (ipa_get_param_count): Added.  All readers of param_count
5819         converted to use it instead.
5820         (ipa_set_called_with_variable_arg): Added.
5821         (ipa_is_called_with_var_arguments): Added.
5822         (ipa_get_ith_param): Added.  All readers of param_decls converted
5823         to use it instead.
5824         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
5825         changed to use it. 
5826         (ipa_get_cs_argument_count): Added, all readers of argument_count
5827         changed to cal it.
5828         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
5829         to use it.
5830         
5831         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
5832         (struct ipcp_lattice): Renamed cval_type to type
5833         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
5834
5835         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
5836         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
5837         (ipcp_insert_stage): Changed the type of variable cvalue to tree
5838         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
5839         (build_const_val): Changed the type of parameter cvalue to tree
5840         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
5841         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
5842         
5843         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
5844         constant 
5845
5846         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
5847         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
5848         (ipa_add_method): Renamed to ipa_push_func_to_list
5849         (ipa_remove_method): Renamed to ipa_pop_func_from_list
5850         (ipa_callsite_param_count): Removed.
5851         (ipa_callsite_param_count_set): Removed.
5852         (ipa_callsite_param): Removed.
5853         (ipa_callsite_callee): Removed.
5854         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
5855         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
5856         (ipa_method_formal_count): Removed.
5857         (ipa_method_formal_count_set): Removed.
5858         (ipa_method_get_tree): Removed.
5859         (ipa_method_tree_map_create): Removed.
5860         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
5861         (ipa_create_param_decls_array): Creates the array itself
5862         (ipa_create_param_decls_array): Temporary variable info instead of 
5863         a few dereferences.
5864         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
5865         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
5866         (get_type): Removed.
5867         (ipa_jf_get_info_type): Removed.
5868         (ipa_node_create): Renamed to ipa_create_node_params
5869         (ipa_free): Renamed to ipa_free_all_node_params
5870         (ipa_nodes_create): Renamed to ipa_create_all_node_params
5871         (ipa_edges_create): Renamed to ipa_create_all_edge_args
5872         (ipa_edges_free): Renamed to ipa_free_all_edge_args
5873         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
5874         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
5875         ipa_free_all_edge_args
5876         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
5877         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
5878         (ipa_create_methodlist_node): Removed.
5879         (ipa_methodlist_method): Removed.
5880         (ipa_methodlist_method_set): Removed.
5881         (ipa_methodlist_next_method): Removed.
5882         (ipa_methodlist_next_method_set): Removed.
5883         (ipa_method_is_modified): Removed.
5884         (ipa_method_modify_create): Removed.
5885         (ipa_method_modify_init): Temporary variable info instead of a few 
5886         dereferences.
5887         (ipa_detect_param_modifications): Temporary variable info instead of 
5888         a few dereferences.
5889         (ipa_compute_jump_functions): Temporary variable info instead of 
5890         a few dereferences.
5891         (ipa_method_modify_set): Removed.
5892         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
5893         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
5894         than craph_node as the first parameter.
5895         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
5896         (ipa_method_modify_init): Removed.
5897         (ipa_compute_jump_functions): Added a temp variable instead of 
5898         repeatadly dereferencing the cgraph_edge.aux pointer
5899         (ipa_callsite_param_set_type): Removed.
5900         (ipa_compute_jump_functions): i renamed to index and moved to 
5901         an inner block
5902         (ipa_callsite_param_set_info_type_formal): Removed.
5903         (ipa_callsite_param_set_info_type): Removed.
5904         (ipa_callsite_param_map_create): Removed.
5905         (ipa_callsite_tree): Removed.
5906         (ipa_callsite_caller): Removed.
5907         (ipa_pop_func_from_list): return_method removed to return_func
5908
5909         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
5910         prefixed all values with IPA_. Changed all users.
5911         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
5912         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
5913         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
5914         (union parameter_info): Renamed to jump_func_value.
5915         (union jump_func_value): Renamed value to constant
5916         (struct ipa_jump_func): Renamed info_type to value
5917         (struct ipa_node): Renamed to ipa_node_params
5918         (struct ipa_node_params): Renamed ipa_arg_num to param_count
5919         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
5920         (struct ipa_node_params): Renamed ipa_mod to modified_flags
5921         (struct ipa_edge): Renamed to ipa_edge_args
5922         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
5923         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
5924         (struct ipa_methodlist): Renamed to ipa_func_list
5925         (struct ipa_func_list): method_p renamed to node, next_method
5926         renamed to next
5927         (ipa_methodlist_p): Removed, switched all users to struct pointer
5928         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
5929
5930 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
5931
5932         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
5933         (rs6000_emit_epilogue): Use backchain to restore only when we
5934         have a large frame.  Make use of frame pointer to restore if we
5935         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
5936
5937 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
5938
5939         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5940         Add mode to zero_extract.
5941         (sign bit tests peepholes): (Ditto.).
5942
5943 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
5944
5945         * config/i386/i386.c (ix86_builtins): Replace Prescott New
5946         Instructions in comments with SSE3.
5947         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
5948         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
5949         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
5950         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
5951         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
5952         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
5953         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
5954         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
5955         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
5956         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
5957         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
5958         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
5959         (bdesc_sse_args): Renamed to ...
5960         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
5961         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
5962         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
5963         IX86_BUILTIN_FABSQ.
5964         (bdesc_1arg): Moved to ...
5965         (bdesc_args): Here.
5966         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
5967         Instructions in comments with SSE3.
5968         (ix86_expand_sse_operands_builtin): Renamed to ...
5969         (ix86_expand_args_builtin): This.  Updated.
5970         (ix86_expand_unop1_builtin): Update comments.
5971         (ix86_expand_builtin): Updated.
5972
5973 2008-04-29  Richard Guenther  <rguenther@suse.de>
5974
5975         PR tree-optimization/36078
5976         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
5977         Update virtual SSA form after cleaning up the CFG.
5978
5979 2008-04-29  Richard Guenther  <rguenther@suse.de>
5980
5981         PR middle-end/15255
5982         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
5983
5984 2008-04-29  Richard Guenther  <rguenther@suse.de>
5985
5986         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
5987         (compute_may_aliases): Do not call finalize_ref_all_pointers.
5988         (compute_flow_insensitive_aliasing): Do not treat
5989         PTR_IS_REF_ALL pointers special.
5990         (get_smt_for): Likewise.
5991         (may_alias_p): Re-structure.
5992         (is_escape_site): A ref-all pointer conversion is not an escape site.
5993         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
5994         PTR_IS_REF_ALL pointers special.
5995         * tree-ssa-structalias.h (struct alias_info): Remove
5996         ref_all_symbol_mem_tag field.
5997         (PTR_IS_REF_ALL): Remove.
5998
5999 2008-04-29  Richard Guenther  <rguenther@suse.de>
6000
6001         PR middle-end/36077
6002         * fold-const.c (extract_muldiv_1): In combining division constants
6003         make sure to never overflow.
6004
6005 2008-04-29  Nick Clifton  <nickc@redhat.com>
6006
6007         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
6008
6009 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6010
6011         PR bootstrap/35169
6012         * optc-gen.awk: Work around HP-UX/IA awk bug.
6013
6014 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
6015
6016         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
6017         2008-04-25 commit.
6018
6019 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
6020
6021         PR target/36073
6022         * config/i386/i386.md
6023         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
6024         Change operand 1 predicate to nonimmediate_operand.
6025
6026 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
6027
6028         PR debug/36060
6029         * dwarf2out.c (struct die_struct): Mark as chain_circular through
6030         die_sub field.
6031         * gengtype.c (walk_type, write_func_for_structure): Handle
6032         chain_circular.
6033         * doc/gty.texi: Document chain_circular.
6034
6035 2008-04-28  Richard Guenther  <rguenther@suse.de>
6036
6037         PR tree-optimization/36066
6038         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
6039         SCEV and loop.
6040
6041 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
6042
6043         PR target/36064
6044         * config/i386/i386.md
6045         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
6046         Use match_scratch instead of match_operand for operands 3 and 4.
6047
6048 2008-04-27  Richard Guenther  <rguenther@suse.de>
6049
6050         PR tree-optimization/18754
6051         PR tree-optimization/34223
6052         * tree-pass.h (pass_complete_unrolli): Declare.
6053         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
6054         loop size before and after unconditionally of UL_NO_GROWTH in effect.
6055         Rewrite loop into loop closed SSA form if it is not already.
6056         (tree_unroll_loops_completely): Re-structure to iterate over
6057         innermost loops with intermediate CFG cleanups.
6058         Unroll outermost loops only if requested or the code does not grow
6059         doing so.
6060         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
6061         loops are available.
6062         (tree_vectorize): Instead do so here.
6063         (tree_complete_unroll): Also unroll outermost loops.
6064         (tree_complete_unroll_inner): New function.
6065         (gate_tree_complete_unroll_inner): Likewise.
6066         (pass_complete_unrolli): New pass.
6067         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
6068         uses outside of the loop.
6069         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
6070         form if it is available.  
6071         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
6072         * passes.c (init_optimization_passes): Schedule complete inner
6073         loop unrolling pass before the first CCP pass after final inlining.
6074
6075 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
6076
6077         * targhooks.h (default_emutls_var_fields,
6078         default_emutls_var_init): Declare.
6079         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
6080         * target.h (struct gcc_target): Add struct emutls member.
6081         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
6082         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
6083         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
6084         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
6085         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
6086         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
6087         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
6088         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
6089         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
6090         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
6091         emit debug information.
6092         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
6093         * varasm.c: Include targhooks.h.
6094         (emutls_object_section, emutls_tmpl_section): New.
6095         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
6096         (EMUTLS_SEPARATOR): New.
6097         (prefix_name): New.
6098         (get_emutls_object_name): New.
6099         (default_emutls_var_fields): New, broken out of ...
6100         (get_emutls_object_type): ... here.  Adjust to use target hooks.
6101         (get_emutls_init_templ_addr): Adjust to use target hooks.
6102         (emutls_decl): Adjust to use target hooks.
6103         (emutls_finish): Likewise.
6104         (default_emutls_var_init): New, broken out of ...
6105         (assemble_variable): ... here.  Adjust to use target hooks.
6106         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
6107         SECCAT_EMUTLS_TMPL.
6108         * c-common.c (handle_section_attribute): Prevent overriding
6109         sections for emulated tls with special sections.
6110         * config/i386/i386.c (x86_64_elf_select_section): Add
6111         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
6112         (x86_64_elf_unique_section): Likewise.
6113         * config/vxworks.c: Include tree.h.
6114         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
6115         (vxworks_override_options): Set TLS scheme.
6116         * doc/tm.texi (Emulated TLS): New node.
6117
6118 2008-04-26  Simon Baldwin <simonb@google.com>
6119
6120         PR c/35652
6121         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
6122         with propagated string constants.
6123
6124 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
6125
6126         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
6127         constraint for operand 2 when operand 0 is memory operand.
6128         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
6129         operand 0 is memory operand.
6130         (fix_trunc<mode>_i387_with_temp): Ditto.
6131         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
6132         operand 2 when operand 1 is memory operand.
6133         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
6134         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
6135         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
6136         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6137         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
6138         operands 2,3 and 4 when operand 1 is memory operand.
6139         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
6140         is memory operand.
6141         (fistdi2_floor_with_temp): Ditto.
6142         (fist<mode>2_floor_with_temp): Ditto.
6143         (fistdi2_ceil_with_temp): Ditto.
6144         (fist<mode>2_ceil_with_temp): Ditto.
6145         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
6146
6147 2008-04-26  David Daney  <ddaney@avtrex.com>
6148
6149         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
6150         unspec_volitile.
6151         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
6152         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
6153         UNSPEC_UPDATE_GOT_VERSION): Renumber.
6154         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
6155         (compare_and_swap_12): New insn.
6156         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
6157         * config/mips/mips.c (mips_force_binary): New function.
6158         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
6159         (mips_expand_compare_and_swap_12): New function.
6160         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
6161
6162 2008-04-25  Jan Hubicka  <jh@suse.cz>
6163
6164         PR testsuite/35843
6165         * cfgexpand.c (pass_expand): Turn into RTL pass.
6166         * passes.c (execute_one_pass): Do pass typechecking after execution.
6167         * tree-pass.h (pass_expand): Turn into RTL pass.
6168
6169         * function.h (struct rtl_data): Move here fields
6170         accesses_prior_frames, calls_eh_return, saves_all_registers,
6171         has_nonlocal_goto, has_asm_statement, is_thunk,
6172         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
6173         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
6174         arg_pointer_save_area_init from struct function; turn into bool.
6175         (struct function): Move
6176         calls_eh_return, saves_all_registers, has_nonlocal_goto,
6177         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
6178         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
6179         tail_call_emit, arg_pointer_save_area_init
6180         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
6181         (current_function_returns_struct, current_function_returns_pcc_struct,
6182         current_function_calls_setjmp, current_function_calls_alloca,
6183         current_function_accesses_prior_frames,
6184         current_function_calls_eh_return, current_function_is_thunk,
6185         current_function_stdarg, current_function_profile,
6186         current_function_limit_stack, current_function_uses_pic_offset_table,
6187         current_function_uses_const_pool, current_function_has_nonlocal_label,
6188         current_function_saves_all_registers,
6189         current_function_has_nonlocal_goto,
6190         current_function_has_asm_statement): Remove accesor macros.
6191         * ra-conflict.c (global_conflicts): Update.
6192         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
6193         (suitable_for_tail_call_opt_p): Update.
6194         * builtins.c (expand_builtin_return_addr): Update.
6195         (expand_builtin_setjmp_setup): Update.
6196         (expand_builtin_nonlocal_goto): Update.
6197         * final.c (final_start_function): Update.
6198         (profile_function): Update.
6199         (leaf_function_p): Update.
6200         (only_leaf_regs_used): Update.
6201         * df-scan.c (df_get_exit_block_use_set): Update.
6202         * dojump.c (clear_pending_stack_adjust): Update.
6203         * tree-stdarg.c (gate_optimize_stdarg): Update.
6204         * gimple-low.c (lower_function_body): Update.
6205         * global.c (compute_regsets): Update.
6206         (global_alloc): Update.
6207         * dwarf2out.c (dwarf2out_begin_prologue): Update.
6208         * expr.c (expand_assignment): Update.
6209         * dse.c (dse_step0): Update.
6210         (dse_step1): Update.
6211         * c-decl.c (store_parm_decls): Update.
6212         * local-alloc.c (combine_regs): Update.
6213         (find_free_reg): Update.
6214         * function.c (assign_parms_augmented_arg_list): Update.
6215         (assign_parm_find_data_types): Update.
6216         (assign_parms): Update.
6217         (allocate_struct_function): Update.
6218         (expand_function_start): Update.
6219         (expand_function_end): Update.
6220         (get_arg_pointer_save_area): Update.
6221         (thread_prologue_and_epilogue_insns): Update.
6222         (rest_of_match_asm_constraints): Update.
6223         * stor-layout.c (variable_size): Update.
6224         * gcse.c (gcse_main): Update.
6225         (bypass_jumps): Update.
6226         * gimplify.c (gimplify_function_tree): Update.
6227         * calls.c (emit_call_1): Update.
6228         (expand_call): Update.
6229         * bt-load.c (compute_defs_uses_and_gen): Update.
6230         * except.c (sjlj_assign_call_site_values): Update.
6231         (sjlj_emit_function_enter): Update.
6232         (can_throw_external): Update.
6233         (set_nothrow_function_flags): Update.
6234         (expand_builtin_unwind_init): Update.
6235         (expand_eh_return): Update.
6236         (convert_to_eh_region_ranges): Update.
6237         (output_function_exception_table): Update.
6238         * emit-rtl.c (gen_tmp_stack_mem): Update.
6239         * cfgexpand.c (expand_used_vars): Update.
6240         (tree_expand_cfg): Update.
6241         * cfgcleanup.c (rest_of_handle_jump): Update.
6242         * explow.c (allocate_dynamic_stack_space): Update.
6243         * varasm.c (assemble_start_function): Update.
6244         (force_const_mem): Update.
6245         (mark_constant_pool): Update.
6246         * tree-optimize.c (tree_rest_of_compilation): Update.
6247         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
6248         * tree-cfg.c (notice_special_calls): Update.
6249         (is_ctrl_altering_stmt): Update.
6250         (tree_can_make_abnormal_goto): Update.
6251         (tree_purge_dead_abnormal_call_edges): Update.
6252         * config/alpha/predicates.md: Update.
6253         * config/alpha/alpha.c (alpha_sa_mask): Update.
6254         (alpha_sa_size): Update.
6255         (alpha_does_function_need_gp): Update.
6256         (alpha_expand_prologue): Update.
6257         (alpha_start_function): Update.
6258         (alpha_output_function_end_prologue): Update.
6259         (alpha_expand_epilogue): Update.
6260         * config/frv/frv.c (frv_stack_info): Update.
6261         (frv_expand_epilogue): Update.
6262         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
6263         (s390_register_info): Update.
6264         (s390_frame_info): Update.
6265         (s390_init_frame_layout): Update.
6266         (s390_can_eliminate): Update.
6267         (save_gprs): Update.
6268         * config/spu/spu.c (spu_split_immediate): Update.
6269         (need_to_save_reg): Update.
6270         (spu_expand_prologue): Update.
6271         (spu_expand_epilogue): Update.
6272         * config/sparc/sparc.md: Update.
6273         * config/sparc/sparc.c (eligible_for_return_delay): Update.
6274         (sparc_tls_got): Update.
6275         (legitimize_pic_address): Update.
6276         (sparc_emit_call_insn): Update.
6277         (sparc_expand_prologue): Update.
6278         (output_return): Update.
6279         (print_operand): Update.
6280         (sparc_function_ok_for_sibcall): Update.
6281         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
6282         * config/m32r/m32r.md: Update.
6283         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
6284         (m32r_compute_frame_size): Update.
6285         (m32r_expand_prologue): Update.
6286         (m32r_expand_epilogue): Update.
6287         (m32r_legitimize_pic_address): Update.
6288         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
6289         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6290         * config/i386/i386.c (ix86_frame_pointer_required): Update.
6291         (gen_push): Update.
6292         (ix86_save_reg): Update.
6293         (ix86_compute_frame_layout): Update.
6294         (ix86_expand_prologue): Update.
6295         (ix86_expand_epilogue): Update.
6296         * config/sh/sh.c (output_stack_adjust): Update.
6297         (calc_live_regs): Update.
6298         (sh5_schedule_saves): Update.
6299         (sh_expand_prologue): Update.
6300         (sh_expand_epilogue): Update.
6301         (sh_setup_incoming_varargs): Update.
6302         (sh_allocate_initial_value): Update.
6303         (sh_get_pr_initial_val): Update.
6304         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
6305         * config/sh/sh.md (label:): Update.
6306         * config/avr/avr.c (out_movhi_mr_r): Update.
6307         * config/crx/crx.h (enum): Update.
6308         * config/xtensa/xtensa.h (along): Update.
6309         * config/stormy16/stormy16.c Update.
6310         (xstormy16_compute_stack_layout): Update.
6311         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
6312         (fr30_expand_prologue): Update.
6313         * config/cris/cris.c (cris_conditional_register_usage): Update.
6314         (cris_reg_saved_in_regsave_area): Update.
6315         (cris_initial_frame_pointer_offset): Update.
6316         (cris_simple_epilogue): Update.
6317         (cris_expand_prologue): Update.
6318         (cris_expand_epilogue): Update.
6319         (cris_expand_pic_call_address): Update.
6320         (cris_asm_output_symbol_ref): Update.
6321         (cris_asm_output_label_ref): Update.
6322         * config/cris/cris.md Update.
6323         * config/iq2000/iq2000.c (compute_frame_size): Update.
6324         (iq2000_expand_epilogue): Update.
6325         * config/mt/mt.h (save_direction): Update.
6326         * config/mn10300/mn10300.c (mn10300_function_value): Update.
6327         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6328         (ia64_secondary_reload_class): Update.
6329         * config/m68k/m68k.c (m68k_save_reg): Update.
6330         (m68k_expand_prologue): Update.
6331         (m68k_expand_epilogue): Update.
6332         (legitimize_pic_address): Update.
6333         * config/rs6000/rs6000.c (rs6000_got_register): Update.
6334         (first_reg_to_save): Update.
6335         (first_altivec_reg_to_save): Update.
6336         (compute_vrsave_mask): Update.
6337         (compute_save_world_info): Update.
6338         (rs6000_stack_info): Update.
6339         (spe_func_has_64bit_regs_p): Update.
6340         (rs6000_ra_ever_killed): Update.
6341         (rs6000_emit_eh_reg_restore): Update.
6342         (rs6000_emit_allocate_stack): Update.
6343         (rs6000_emit_prologue): Update.
6344         (rs6000_emit_epilogue): Update.
6345         (rs6000_output_function_epilogue): Update.
6346         (output_profile_hook): Update.
6347         (rs6000_elf_declare_function_name): Update.
6348         * config/rs6000/rs6000.h (rs6000_args): Update.
6349         * config/rs6000/rs6000.md: Update.
6350         * config/mcore/mcore.c (mcore_expand_prolog): Update.
6351         * config/arc/arc.c (arc_output_function_epilogue): Update.
6352         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
6353         * config/darwin.c (machopic_function_base_name): Update.
6354         * config/score/score3.c (score3_compute_frame_size): Update.
6355         (rpush): Update.
6356         (rpop): Update.
6357         (score3_epilogue): Update.
6358         * config/score/score7.c (score7_compute_frame_size): Update.
6359         (score7_prologue): Update.
6360         (score7_epilogue): Update.
6361         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
6362         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6363         * config/arm/arm.c (use_return_insn): Update.
6364         (require_pic_register): Update.
6365         (arm_load_pic_register): Update.
6366         (arm_compute_save_reg0_reg12_mask): Update.
6367         (arm_compute_save_reg_mask): Update.
6368         (thumb1_compute_save_reg_mask): Update.
6369         (output_return_instruction): Update.
6370         (arm_output_function_prologue): Update.
6371         (arm_output_epilogue): Update.
6372         (arm_get_frame_offsets): Update.
6373         (arm_expand_prologue): Update.
6374         (thumb_pushpop): Update.
6375         (thumb_exit): Update.
6376         (thumb1_expand_prologue): Update.
6377         (thumb1_expand_epilogue): Update.
6378         (arm_unwind_emit): Update.
6379         (arm_output_fn_unwind): Update.
6380         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
6381         * config/arm/arm.md: Update.
6382         * config/pa/pa.md: Update.
6383         * config/pa/pa.c (legitimize_pic_address): Update.
6384         (compute_frame_size): Update.
6385         (hppa_expand_prologue): Update.
6386         (hppa_expand_epilogue): Update.
6387         (borx_reg_operand): Update.
6388         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
6389         (HARD_REGNO_RENAME_OK): Update.
6390         * config/mips/mips.c (mips_global_pointer): Update.
6391         (mips_save_reg_p): Update.
6392         (mips_compute_frame_info): Update.
6393         (mips_frame_pointer_required): Update.
6394         (mips_expand_prologue): Update.
6395         (mips_expand_epilogue): Update.
6396         (mips_can_use_return_insn): Update.
6397         (mips_reorg_process_insns): Update.
6398         * config/v850/v850.c (compute_register_save_size): Update.
6399         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
6400         * config/mmix/mmix.c (along): Update.
6401         (mmix_expand_epilogue): Update.
6402         * config/bfin/bfin.c (legitimize_pic_address): Update.
6403         (must_save_p): Update.
6404         (stack_frame_needed_p): Update.
6405         (add_to_reg): Update.
6406         (bfin_expand_prologue): Update.
6407         * stmt.c (expand_asm_operands): Update.
6408         * reload1.c (reload): Update.
6409         (init_elim_table): Update.
6410
6411 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
6412         
6413         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
6414         
6415 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
6416
6417         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
6418         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
6419         (mov<mode>): Removed.
6420         (*movv4sf_internal): Likewise.
6421         (*movv2df_internal): Likewise.
6422
6423 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
6424
6425         * config.gcc (crx-*-elf): Remove deprecation.
6426
6427 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
6428
6429         * config/i386/cygming-crtend.c (register_frame_ctor): Register
6430         __gcc_deregister_frame with atexit.
6431         (deregister_frame_dtor): Remove.
6432
6433 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
6434             Nathan Sidwell  <nathan@codesourcery.com>
6435
6436         * config/rs6000/rs6000.opt (mspe): Remove Var property.
6437         (misel): Likewise.
6438         * config/rs6000/rs6000.h (rs6000_spe): Declare.
6439         (rs6000_isel): Likewise.
6440         * config/rs6000/rs6000.c (rs6000_spe): New variable.
6441         (rs6000_isel): New variable.
6442         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
6443
6444 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6445
6446         PR c++/35758
6447         * c-common.c (handle_vector_size_attribute): Call
6448         lang_hooks.types.reconstruct_complex_type instead of
6449         reconstruct_complex_type.
6450         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
6451         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
6452         * langhooks.h (struct lang_hooks_for_types): Add
6453         reconstruct_complex_type hook.
6454         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
6455         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
6456
6457 2008-04-24  Richard Guenther  <rguenther@suse.de>
6458
6459         * c-common.h (check_builtin_function_arguments): Declare.
6460         * c-common.c (validate_nargs): New function.
6461         (check_builtin_function_arguments): Likewise.
6462         * c-typeck.c (build_function_call): Call
6463         check_builtin_function_arguments.
6464         * builtins.c (fold_builtin_classify): Remove error reporting code.
6465         (fold_builtin_unordered_cmp): Likewise.
6466         (fold_builtin_1): Likewise.
6467         (fold_builtin_n): Likewise.
6468
6469 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6470
6471         PR tree-optimization/36008
6472         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
6473         the original op1, rather than delta by step.
6474
6475 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
6476             Sebastian Pop  <sebastian.pop@amd.com>
6477
6478         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
6479         eliminate_local_variables_stmt, eliminate_local_variables,
6480         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
6481         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
6482         of code delimited by two edges in the CFG.
6483         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
6484         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
6485         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
6486         the case of parallelisation of reductions.
6487         (expr_invariant_in_region_p): New.
6488
6489         * tree-flow.h (gather_blocks_in_sese_region): Declared.
6490         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
6491
6492 2008-04-24  Ira Rosen  <irar@il.ibm.com>
6493             Richard Guenther  <rguenther@suse.de>
6494
6495         PR tree-optimization/36034
6496         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
6497         incapable of dealing with loads with gaps.
6498
6499 2008-04-24  Rafael Espindola  <espindola@google.com>
6500
6501         * tree-flow.h (vrp_evaluate_conditional): Change signature.
6502         * tree-ssa-propagate.c (fold_predicate_in): Update call to
6503         vrp_evaluate_conditional.
6504         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
6505         (vrp_evaluate_conditional): Split the cond argument.
6506         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
6507         (simplify_stmt_for_jump_threading): Update call to
6508         vrp_evaluate_conditional.
6509
6510 2008-04-24  Ira Rosen  <irar@il.ibm.com>
6511
6512         PR tree-optimization/35982
6513         * tree-vect-analyze.c (vect_check_interleaving): Check that the
6514         interleaved data-refs are of the same type.
6515
6516 2008-04-24  Danny Smith  <dannysmith@users.net>
6517
6518         * c-format.c (check_format_info_main): Use strncmp rather than a
6519         magic prefix to handle multichar length specs.
6520         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
6521         Don't prefix "I64" and "I32" with '\0'.
6522
6523 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6524
6525         PR target/36015
6526         * config/i386/i386.c (init_cumulative_args): Don't pass anything
6527         in registers for -m32 only if stdarg_p (fntype).
6528
6529 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
6530
6531         PR rtl-optimization/36006
6532         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
6533         temp to op0 in order to avoid invalid rtx sharing.
6534
6535 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
6536
6537         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
6538         check TREE_INVARIANT.
6539         * tree-gimple.c (is_gimple_address): New.
6540         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
6541         * tree-gimple.h (is_gimple_address): New.
6542         * tree.h (decl_address_invariant_p): New.
6543         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
6544         (build_string): Likewise.
6545         (decl_address_invariant_p): New, from is_gimple_invariant_address.
6546         (tree_invariant_p_1): Likewise.
6547         (save_expr): Use it.
6548         (tree_invariant_p): New.
6549         (skip_simple_arithmetic): Use it.
6550         (stabilize_reference_1): Use it.
6551         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
6552         simplify.
6553         (build1_stat): Drop code to compute TREE_INVARIANT.
6554         (build2_stat): Drop code to compute TREE_INVARIANT.
6555         (build3_stat): Drop code to compute TREE_INVARIANT.
6556         (build4_stat): Drop code to compute TREE_INVARIANT.
6557         (build5_stat): Drop code to compute TREE_INVARIANT.
6558         (build7_stat): Drop code to compute TREE_INVARIANT.
6559         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
6560         * tree.h (struct tree_base): Remove invariant_flag.
6561         (TREE_INVARIANT): Remove.
6562         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
6563         (fold_builtin_expect): Check TREE_CONSTANT.
6564         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
6565         * c-tree.h (c_expr_to_decl): Drop third parameter.
6566         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
6567         (build_c_cast): Don't set TREE_INVARIANT.
6568         (pop_init_level): Don't set TREE_INVARIANT.
6569         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
6570         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
6571         TREE_CONSTANT.
6572         (gimplify_init_constructor): Don't set TREE_INVARIANT.
6573         (gimplify_addr_expr): Adjust comment.
6574         * tree-mudflap.c (mf_build_string):
6575         * print-tree.c (print_node): Don't print TREE_INVARIANT.
6576         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
6577         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
6578         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
6579         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
6580         * langhooks.h (struct lang_hooks): Drop third parameter from
6581         expr_to_decl.
6582
6583 2008-04-23  Richard Guenther  <rguenther@suse.de>
6584
6585         PR tree-optimization/27799
6586         PR tree-optimization/32921
6587         PR tree-optimization/32624
6588         * tree-ssa-structalias.c (merge_smts_into): Only merge the
6589         SMTs aliases and the tag itself into the solution.
6590         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
6591         merge the points-to solution back into the SMT aliases.
6592         (may_alias_p): Use alias_set_subset_of instead of
6593         aliases_conflict_p.  A pointer which points to
6594         memory with alias set zero may access any variable.
6595
6596 2008-04-23  Richard Guenther  <rguenther@suse.de>
6597
6598         * alias.c (alias_set_subset_of): Correctly handle asking
6599         if zero is a subset of an alias set with zero child.
6600         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
6601         (compute_flow_insensitive_aliasing): Correctly walk all
6602         pointers.  Do not unnecessarily union sets.
6603
6604 2008-04-23  Richard Guenther  <rguenther@suse.de>
6605
6606         PR middle-end/36021
6607         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
6608
6609 2008-04-22  Tomas Bily  <tbily@suse.cz>
6610
6611         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
6612         unreachable case.
6613         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
6614         NON_LVALUE_EXPR.
6615         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
6616         * tree-ssa-structalias.c (get_constraint_for): Likewise.
6617         * tree-inline.c (estimate_num_insns_1): Likewise.
6618         * varasm.c (const_hash_1, compare_constant, copy_constant)
6619         (compute_reloc_for_constant, output_addressed_constants): Likewise.
6620         * emit-rtl.c (component_ref_for_mem_expr)
6621         (set_mem_attributes_minus_bitpos): Likewise.
6622         * expr.c (highest_pow2_factor, expand_expr_real_1, )
6623         (is_aligning_offset): Likewise.
6624         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
6625         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
6626         * dojump.c (do_jump): Likewise.
6627         * builtins.c (get_pointer_alignment, get_memory_rtx)
6628         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
6629         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
6630
6631 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
6632
6633         PR rtl-optimization/36017
6634         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
6635         expanding the library call.
6636
6637 2008-04-22  Ian Lance Taylor  <iant@google.com>
6638
6639         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
6640         than size_in_bytes.
6641
6642 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
6643
6644         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
6645         of LR/CTR moves for Power6.
6646
6647 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
6648
6649         PR middle-end/36003
6650         * passes.c (init_optimization_passes): Remove
6651         pass_fast_rtl_byte_dce.
6652         
6653 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
6654
6655         PR target/29096
6656         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
6657         builtin functions to generate faster code.
6658         (_mm_cvtpu16_ps): Ditto.
6659         (_mm_cvtpi32x2_ps): Ditto.
6660
6661 2008-04-22  Nick Clifton  <nickc@redhat.com>
6662
6663         * common.opt (ftree-loop-distribution): Add Optimization
6664         attribute.
6665
6666         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
6667         (frv_expand_builtin_va_start): Likewise.
6668
6669         * config/arm/arm.c (thumb_find_work_register): Fix location of
6670         argument register count.
6671
6672 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6673
6674         Support scheduling for ColdFire V1 and V3 microarchitecture.
6675         Improve scheduling of multiplication instructions.
6676
6677         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
6678         (mac): New instruction attribute.
6679         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
6680         (m68k_sched_mac): New variable.
6681         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
6682         Handle cfv1 and cfv3.
6683         (max_insn_size): New static variable.
6684         (struct _sched_ib): New type.
6685         (sched_ib): New static variable.
6686         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
6687         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
6688         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
6689         Update.
6690         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
6691         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
6692         new variables.  Update.
6693         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
6694         Add modeling of cfv3 instruction buffer.  Update.
6695         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
6696         * config/m68k/m68k.h (TUNE_CFV3): New macro.
6697         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
6698         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
6699         a particular reservation applies to.
6700         (type2): Reorganize attribute values.  Rename alu to alu_reg,
6701         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
6702         to mul_l and mul_w.
6703         (cf_ib_*): Simplify description of instruction buffer.
6704         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
6705         (cf_mem): Split into cf_mem1 and cf_mem2.
6706         (cf_v2_move_??): Rename to cfv12_alu_??.
6707         (cf_v2_move_l_??): Rename to cfv12_omove_??.
6708         (cf_v2_mul_??): Remove reservations.
6709         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
6710         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
6711         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
6712         appropriate place.
6713         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
6714         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
6715         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
6716         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
6717         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
6718         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
6719         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
6720         expansions of the above reservations for instructions of sizes
6721         1, 2 and 3 words.
6722
6723 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6724
6725         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
6726
6727 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
6728
6729         * coverage.c: Include tree-pass.h.
6730         (coverage_counter_alloc): Print da_file_name to the dump file.
6731
6732 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
6733
6734         * sbitmap.c (sbitmap_range_empty_p): New function.
6735         * sbitmap.h (sbitmap_range_empty_p): New function.
6736         * bitmap.h: Now includes obstack.h.
6737
6738 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
6739             Kenneth Zadeck  <zadeck@naturalbridge.com>
6740
6741         * dbgcnt.def (ra_byte_scan): Added.
6742         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
6743         when the last hit happens for a counter.  
6744         * timevar.def (TV_DF_BYTE_LR): New variable.
6745         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
6746         * passes.c (pass_fast_rtl_byte_dce): New pass.
6747         * fwprop.c (update_df): Added mode to call df_ref_create.
6748         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6749         DF_REF_EXTRACT_OFFSET.
6750         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
6751         DF_BYTE_LR_OUT, df_byte_lr): New macro.
6752         (df_mm): New enum.
6753         (df_ref_extract): Added mode field.
6754         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
6755         DF_REF_EXTRACT_OFFSET.
6756         (DF_REF_EXTRACT_MODE): New macro.
6757         (df_byte_lr_bb_info): New structure.
6758         (df_print_byte_regset, df_compute_accessed_bytes, 
6759         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
6760         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
6761         df_byte_lr_simulate_uses,
6762         df_byte_lr_simulate_artificial_refs_at_top,
6763         df_byte_lr_simulate_artificial_refs_at_end,
6764         df_compute_accessed_bytes): New function.
6765         (df_ref_create): Add parameter.
6766         (df_byte_lr_get_bb_info): New inline function.
6767         * df-scan.c (df_ref_record, df_uses_record,
6768         df_ref_create_structure): Added mode parameter.
6769         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
6770         df_defs_record, df_uses_record, df_get_conditional_uses,
6771         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
6772         df_entry_block_defs_collect, df_exit_block_uses_collect):
6773         Added mode parameter to calls to df_ref_record, df_uses_record,
6774         df_ref_create_structure.
6775         (df_ref_equal_p, df_ref_compare): Added test for modes.
6776         (df_ref_create_structure): Added code to set mode.  Renamed
6777         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6778         DF_REF_EXTRACT_OFFSET.
6779         * df-core.c (df_print_byte_regset): New function.
6780         * df-byte-scan.c: New file.
6781         * df-problems.c (df_rd_transfer_function): Removed unnecessary
6782         calls to BITMAP_FREE.  
6783         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
6784         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
6785         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
6786         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
6787         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
6788         df_byte_lr_local_compute, df_byte_lr_init,
6789         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
6790         df_byte_lr_transfer_function, df_byte_lr_free, 
6791         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
6792         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
6793         df_byte_lr_simulate_uses,
6794         df_byte_lr_simulate_artificial_refs_at_top,
6795         df_byte_lr_simulate_artificial_refs_at_end): New function.
6796         * dce.c (byte_dce_process_block): New function.
6797         (dce_process_block): au is now passed in rather than computed
6798         locally.  Changed loops that look at artificial defs to not look
6799         for conditional or partial ones, because there never are any.  
6800         (fast_dce): Now is able to drive byte_dce_process_block or 
6801         dce_process_block depending on the kind of dce being done.
6802         (rest_of_handle_fast_dce): Add parameter to fast_dce.
6803         (rest_of_handle_fast_byte_dce): New function.
6804         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
6805         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
6806
6807 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
6808
6809         PR fortran/35019
6810         * gcc.h: Added fortran options that take arguments to
6811         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
6812         macros.
6813
6814 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
6815
6816         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
6817         scalarization if on the LHS and not a full access.
6818
6819 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6820
6821         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
6822
6823 2008-04-18  Rafael Espindola  <espindola@google.com>
6824
6825         * tree-vrp.c (find_case_label_index): Fix the binary search.
6826         (find_case_label_range): New.
6827         (vrp_visit_switch_stmt): Use find_case_label_range.
6828         (simplify_switch_using_ranges): Use find_case_label_range.
6829
6830 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6831
6832         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
6833         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
6834
6835 2008-04-18  Tom Tromey  <tromey@redhat.com>
6836
6837         PR libcpp/15500:
6838         * doc/cpp.texi (Implementation-defined behavior): Mention
6839         -finput-charset.
6840
6841 2008-04-18  Ian Lance Taylor  <iant@google.com>
6842
6843         * fold-const.c (pointer_may_wrap_p): New static function.
6844         (fold_comparison): Add another test for pointer overflow.  Use
6845         pointer_may_wrap_p to disable some false positives.
6846
6847 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
6848           
6849         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
6850         (fname_as_string): Match updated cpp_interpret_string prototype.
6851         (fix_string_type): Support char16_t* and char32_t*.
6852         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
6853         derivative) nodes.  Register as builtin if C++0x.
6854         (c_parse_error): Support CPP_CHAR{16,32}.
6855         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
6856         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
6857         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
6858         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
6859         CTI_CHAR32_ARRAY_TYPE>: New elements.
6860         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
6861         char32_type_node, signed_char32_type_node, char16_array_type_node,
6862         char32_array_type_node): New defines.
6863         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
6864         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
6865         (lex_string): Support CPP_STRING{16,32}, match updated
6866         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
6867         (lex_charconst): Support CPP_CHAR{16,32}.
6868         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
6869         and CPP_STRING{16,32}.
6870
6871 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
6872
6873         PR bootstrap/35457
6874         * aclocal.m4: Regenerate.
6875         * configure: Regenerate.
6876
6877 2008-04-18  Jan Hubicka  <jh@suse.cz>
6878
6879         * except.c (dw2_size_of_call_site_table,
6880         sjlj_size_of_call_site_table): Use vector API for call_site_record.
6881
6882         * cgraphbuild.c (build_cgraph_edges): Update.
6883         * tree-pass.h: Update comment.
6884         * final.c (leaf_function_p): Update.
6885         (leaf_renumber_regs): Update.
6886         (rest_of_clean_state): Update.
6887         * omp-low.c (expand_omp_parallel): Update.
6888         * ipa-reference.c (analyze_function): Update.
6889         * reorg.c (find_end_label): Update.
6890         (optimize_skip): Update.
6891         (fill_simple_delay_slots): Update.
6892         (fill_simple_delay_slots): Update.
6893         (make_return_insns): Update.
6894         (dbr_schedule): Update.
6895         * gimple-low.c (record_vars_into): Update.
6896         * cfgbuild.c (make_edges): Update.
6897         * function.c (assign_stack_local): Update.
6898         (assign_parm_adjust_stack_rtl): Update.
6899         (locate_and_pad_parm): Update.
6900         (allocate_struct_function): Do not initialize stack_alignment_needed
6901         and preferred_stack_boundary here.
6902         (stack_protect_prologue): Update.
6903         (stack_protect_epilogue): Update.
6904         (expand_function_start): Initialize stack_alignment_needed,
6905         preferred_stack_boundary and max_jumptable_ents.
6906         (expand_function_end): Update.
6907         (free_after_compilation): Do not NULLify epilogue_delay_list.
6908         * function.h (struct rtl_data): Add stack_protect_guard,
6909         stack_alignment_needed,
6910         preferred_stack_boundary, epilogue_delay_list.
6911         (struct function): Remove value_histograms, stack_alignment_needed,
6912         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
6913         last_label_uid,
6914         unexpanded_var_list, stack_protect_guard.
6915         (current_function_epilogue_delay_list): Remove.
6916         * ipa-type-escape.c (analyze_function): Update.
6917         * gimplify.c (pop_gimplify_context): Update comment.
6918         * calls.c (expand_call): Update.
6919         (emit_library_call_value_1): Update.
6920         * except.c (set_nothrow_function_flags): Update.
6921         * cfgexpand.c (get_decl_align_unit): Update.
6922         (create_stack_guard): Update.
6923         (estimated_stack_frame_size): Update.
6924         (expand_used_vars): Update.
6925         (tree_expand_cfg): Free histogram earliers, init expansion variables.
6926         * explow.c (allocate_dynamic_stack_space): Update.
6927         * tree-ssa-live.c (remove_unused_locals): Update.
6928         * varasm.c (mark_constant_pool): Update.
6929         * tree-inline.c (remap_decls): Update.
6930         (initialize_cfun): Update.
6931         (declare_return_variable): Update.
6932         (inline_forbidden_p): Update.
6933         (expand_call_inline): Update.
6934         (declare_inline_vars): Update.
6935         (tree_function_versioning): Update.
6936         * tree-flow.h (value_histograms): New.
6937         (VALUE_HISTOGRAMS): New macro.
6938         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
6939         last_label_uid.
6940         * tree-cfg.c (set_bb_for_stmt): Update.
6941         (replace_by_duplicate_decl): Update.
6942         (move_block_to_fn): Update.
6943         (new_label_mapper): Update.
6944         (dump_function_to_file): Update.
6945         * ipa-struct-reorg.c (build_data_structure): Update.
6946         * cfgrtl.c (print_rtl_with_bb): Update.
6947         * reload1.c (reload): Update.
6948         (reload): Update.
6949         * config/i386/i386.c (setup_incoming_varargs_64,
6950         ix86_compute_frame_layout): Update.
6951         * config/arc/arc.c (arc_output_function_epilogue): Update.
6952
6953 2008-04-18  Marius Strobl <marius@FreeBSD.org>
6954
6955         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
6956         for FreeBSD as well.
6957         * gthr-posix95.h: Likewise.
6958
6959 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
6960
6961         PR rtl-optimization/35838
6962         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
6963         out the byte offset of the first subreg.
6964
6965 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
6966
6967         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
6968         to split_ti instead of three separate calls with single member arrays.
6969         (subti3 splitter): Ditto.
6970         (adddi3 splitter): Ditto with split_di.
6971         (subdi3 splitter): Ditto.
6972         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
6973         two separate calls with single member arrays.  Swap match_dup
6974         operands 1 and 2 to better fit into the array.
6975         (negdi2 splitter): Ditto with split_di.
6976         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
6977         two separate calls with single member arrays.  Swap match_dup operands
6978         6 and 7 to better fit into the array.
6979
6980 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
6981
6982         * config/i386/i386.c (sse_builtin_type): New.
6983         (bdesc_sse_args): Likewise.
6984         (bdesc_sse_3arg): Removed.
6985         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6986         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
6987         IX86_BUILTIN_ROUNDPS.
6988         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
6989         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
6990         IX86_BUILTIN_ROUNDPS.
6991         (ix86_expand_sse_4_operands_builtin): Removed.
6992         (ix86_expand_sse_operands_builtin): New.
6993         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
6994         and CODE_FOR_sse4_1_roundps.
6995         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6996         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
6997
6998 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
6999
7000         PR target/35907
7001         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
7002         regs before frame pop when needed.  If use_backchain_to_restore_sp
7003         then load backchain into a temp reg to restore vr and vrsave.  Add
7004         code to restore vr after frame pop if possible.
7005
7006 2008-04-17  Richard Guenther  <rguenther@suse.de>
7007
7008         * tree-vn.c (expressions_equal_p): Do not check type
7009         equality or compatibility before calling operand_equal_p.
7010         * fold-const.c (operand_equal_p): Check equivalence of
7011         integer constants before bailing out due to signedness or
7012         precision differences.
7013         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
7014         spurious differences in type qualification.  Ignore types
7015         for COMPONENT_REFs at all.
7016
7017 2008-04-17  Christian Bruel  <christian.bruel@st.com>
7018
7019         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
7020         msw_skip comparison.
7021         
7022 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
7023
7024         PR c/35739
7025         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
7026         reg type.
7027
7028         PR tree-optimization/35899
7029         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
7030         rather than TREE_OPERAND.
7031
7032 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
7033
7034         PR target/35944
7035         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
7036         temporary registers.  Change operand predicate to general_operand.
7037         (remainderxf3): Ditto.
7038
7039 2008-04-16  Richard Guenther  <rguenther@suse.de>
7040
7041         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
7042         * tree-affine.c (aff_combination_expand): Look through some
7043         conversions.
7044
7045 2008-04-15  Doug Kwan  <dougkwan@google.com>
7046
7047         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
7048         for hex printing.
7049         * tree-pretty-print.c (dump_generic_node): Ditto.
7050         * final.c (output_addr_const): Ditto.
7051         * dwarf2out.c (output_cfi): Ditto.
7052         * c-pretty-print.c (pp_c_integer_constant): Ditto.
7053         * print-rtl.c (print_rtx): Ditto.
7054         * print-tree.c (print_node_brief, print_node): Ditto.
7055         * c-common.c (match_case_to_enum_1): Ditto.
7056         * sched-vis.c (print_value): Ditto.
7057         * config/i386/i386.c (print_operand): Cast to long unsigned int
7058         for hex printing.
7059
7060 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
7061         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
7062         MS Windows VirtualProtect function.
7063
7064 2008-04-15  Jan Hubicka  <jh@suse.cz>
7065
7066         * gengtype.c (write_root): Param_is argument is OK.
7067         * expr.c (expand_expr_real_1): Update call of get_exception_*.
7068         * function.h: Include varray.h
7069         (rtl_eh): New stucture based on except.c one.
7070         (call_site_record): New forward declaration and vector type.
7071         * calls.c (emit_call_1): Do not call
7072         note_current_region_may_contain_throw.
7073         * except.c (eh_status): Remove cur_region, try_region since they are
7074         unused.
7075         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
7076         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
7077         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
7078         Remove call_site_data_used, call_site_data_size.
7079         Turn call_site_record into vector in function.h.
7080         (note_current_region_may_contain_throw): Remove.
7081         (get_exception_pointer, get_exception_filter): Do not take struct
7082         function argument; update.
7083         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
7084         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
7085         build_post_landing_pads, dw2_build_landing_pads,
7086         sjlj_assign_call_site_values, sjlj_mark_call_sites,
7087         sjlj_emit_function_enter, sjlj_emit_function_enter, 
7088         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
7089         sjlj_build_landing_pads, finish_eh_generation,
7090         remove_exception_handler_label, remove_eh_handler,
7091         maybe_remove_eh_handler, add_reachable_handler,
7092         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
7093         add_action_record, collect_one_action_chain, add_call_site,
7094         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
7095         sjlj_output_call_site_table, output_function_exception_table,
7096         * except.h (note_current_region_may_contain_throw): Remove
7097         (get_exception_pointer, get_exception_filter): Do not take struct
7098         function argument.
7099         * Makefile.in (GTFILES): Put varargs before struct function.
7100
7101 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
7102
7103         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
7104         punt for STRING_CST.
7105         (get_constraint_for): Deal with STRING_CST here instead.
7106
7107 2008-04-15  Richard Guenther  <rguenther@suse.de>
7108
7109         * tree-ssa-propagate.c (substitute_and_fold): Substitute
7110         statements in a basic-block with a backward walk.  Do not
7111         substitute into dead statements but instead remove those.
7112
7113 2008-04-15  Richard Guenther  <rguenther@suse.de>
7114
7115         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
7116         to zero, thus disable creation of SFTs.
7117
7118 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
7119
7120         * tree-predcom.c (suitable_reference_p): Return false if the
7121         reference can throw.
7122
7123 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
7124
7125         PR c/35751
7126         * c-decl.c (finish_decl): If extern or static var has variable
7127         size, set TREE_TYPE (decl) to error_mark_node.
7128
7129 2008-04-15  Rafael Espindola  <espindola@google.com>
7130
7131         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
7132         variable arg1.
7133
7134 2008-04-15  Richard Guenther  <rguenther@suse.de>
7135
7136         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
7137         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
7138         (visit_reference_op_load): Do walk vuse-vdef chains on
7139         vn_reference_lookup.
7140         (visit_reference_op_store): But do not here.
7141         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
7142         vn_reference_lookup.
7143         (vn_lookup_with_vuses): But do so here.
7144
7145 2008-04-14  Ian Lance Taylor  <iant@google.com>
7146
7147         * fold-const.c (fold_overflow_warning): Remove assertion.
7148
7149 2008-04-15  Ben Elliston  <bje@au.ibm.com>
7150
7151         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
7152         temp1 local variables.
7153
7154 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
7155
7156         PR target/35661
7157         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
7158         ".text.unlikely" section as executable.
7159
7160 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
7161
7162         * config/ia64/ia64.c (rtx_needs_barrier): Handle
7163         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
7164         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
7165         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
7166         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
7167         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
7168         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
7169
7170 2008-04-14  Ian Lance Taylor  <iant@google.com>
7171
7172         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
7173         * fold-const.c (fold_comparison): If appropriate, test
7174         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
7175         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
7176         reassociating a pointer type.
7177         * doc/invoke.texi (Optimize Options): Document that
7178         -fstrict-overflow applies to pointer wraparound.
7179
7180 2008-04-13  Jan Hubicka  <jh@suse.cz>
7181
7182         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
7183
7184 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
7185
7186         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
7187         we are going to "save the world".
7188
7189 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
7190
7191         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
7192         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
7193         operand 0 constraint, not "=".
7194
7195 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
7196
7197         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
7198
7199 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
7200
7201         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
7202         of size of positions_needed * CHAR_BIT.
7203
7204 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
7205
7206         PR middle-end/35897
7207         * dse.c (store_info): Change positions_needed to unsigned
7208         HOST_WIDE_INT.
7209         (lowpart_bitmask): New.
7210         (record_store): Cast to unsigned HOST_WIDE_INT for
7211         positions_needed.  Assert width <= size of positions_needed *
7212         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
7213         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
7214         lowpart_bitmask to set mask.
7215
7216 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
7217
7218         * config/bfin/constraints.md: New file.
7219         * config/bfin/bfin.md: Include it.
7220         (adddi3): Use satisfies_constraint functions instead of the old macros.
7221         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
7222         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
7223         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
7224         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
7225         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
7226         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
7227         EXTRA_CONSTRAINT): Delete.
7228         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
7229         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
7230         of the old macros.
7231         * config/bfin/bfin.c: Include "tm-constrs.h".
7232         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
7233         Use satisfies_constraint functions instead of the old macros.
7234         * doc/md.texi (Blackfin Constraints): Update file name reference.
7235
7236 2008-04-11  Richard Guenther  <rguenther@suse.de>
7237
7238         PR tree-optimization/35869
7239         * tree-vrp.c (execute_vrp): Move switch statement update after
7240         jump threading.  Schedule another cfg cleanup run.
7241
7242 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
7243
7244         PR c/35744
7245         * attribs.c (decl_attributes): Return early on errorneous node.
7246
7247 2008-04-10  Oleg Ryjkov  <olegr@google.com>
7248
7249         * tree.h (struct tree_base): Added a new flag default_def_flag.
7250         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
7251
7252 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
7253
7254         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
7255
7256 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7257
7258         PR target/35768
7259         * pa.md: Define mode iterator P.  Define mode attribute dwc.
7260         (dcacheflush): Update pattern to use iterator P and attribute dwc.
7261         (icacheflush): Likewise.
7262         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
7263         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
7264
7265 2008-04-11  Ben Elliston  <bje@au.ibm.com>
7266
7267         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
7268
7269 2008-04-10  Rafael Espindola  <espindola@google.com>
7270
7271         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
7272         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
7273         (extract_range_from_expr): The same.
7274
7275 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
7276
7277         * config/mips/mips.md (GPR2): New mode iterator.
7278         (seq): Add comment.
7279         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
7280         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
7281         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
7282         Rewrite these to take two modes, the mode of comparison and the
7283         mode of the destination.
7284         * config/mips/mips.c (mips_expand_scc): Instead of having
7285         paradoxical subreg as destination, expand "narrowing" scc if mode
7286         of comparison is SI and target is requested in DI mode.
7287         (mips_emit_int_order_test): Update comment.  Make mode of
7288         comparison match CMP0 rather than TARGET.  When creating inverse
7289         target use mode of TARGET.
7290
7291 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
7292
7293         * gcov-dump.c (tag_summary): Only print summaries for the first
7294         GCOV_COUNTERS_SUMMABLE counters.
7295
7296 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
7297
7298         * config/i386/i386.md (absneg): New code iterator.
7299         (absnegprefix): New code attribute.
7300         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
7301         patterns using absneg code iterator.
7302         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
7303         using absneg code iterator.
7304         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
7305         *neg<mode>2 patterns using absneg code iterator.
7306         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
7307         *negextendsfdf2 patterns using absneg code iterator.
7308         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
7309         *negextendsfxf2 patterns using absneg code iterator.
7310         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
7311         *negextendsfdf2 patterns using absneg code iterator.
7312         * config/i386/sse.md (<code><mode>2): Macroize expander from
7313         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
7314
7315 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
7316
7317         * config/s390/s390.h: Remove the remains of the recent search
7318         & replace action of current_function_outgoing_args_size.
7319
7320 2008-04-10  Ira Rosen  <irar@il.ibm.com>
7321
7322         PR tree-optimization/35821
7323         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
7324         NEW_STMT_LIST is not NULL.
7325
7326 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
7327
7328         PR libstdc++/35597
7329         * toplev.c (process_options): Remove -ffunction-sections debugging
7330         warning.
7331
7332 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
7333
7334         PR middle-end/PR28690
7335         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
7336         than gen_rtx_fmt_ee to perform more canonicalizations.
7337
7338 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7339
7340         PR driver/35665
7341         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
7342
7343 2008-04-09  Richard Guenther  <rguenther@suse.de>
7344
7345         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
7346         (dump_function_to_file): Dump function arguments with types.
7347
7348 2008-04-08  Richard Guenther  <rguenther@suse.de>
7349
7350         * fold-const.c (fold_widened_comparison): Do not allow
7351         sign-changes that change the result.
7352
7353 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
7354
7355         PR target/35839
7356         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
7357         kinds of indirect references.
7358
7359 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
7360
7361         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
7362         GNU Fortran language string.
7363
7364 2008-04-08  Rafael Espindola  <espindola@google.com>
7365
7366         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
7367         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
7368         * tree.h (tree_call_nonnegative_warnv_p): New.
7369
7370 2008-04-08  Jan Hubicka  <jh@suse.cz>
7371
7372         * function.c (free_after_compilation): Clear out regno_reg_rtx
7373         pointer.
7374
7375 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
7376
7377         Revert
7378         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7379
7380         PR middle-end/PR28690
7381         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
7382         same precedence as REG_POINTER and MEM_POINTER operands.
7383
7384 2008-04-08  Richard Guenther  <rguenther@suse.de>
7385
7386         PR middle-end/35834
7387         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
7388         for adding index to base.
7389
7390 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
7391
7392         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
7393         (MINGW_ENABLE_EXECUTE_STACK): New.
7394         (IN_LIBGCC2): For libgcc include windows.h file for
7395         function declarations.
7396
7397 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
7398
7399         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
7400         and tem2 if tem1 is not a REG or MULT.
7401
7402 2008-04-08  Jan Hubicka  <jh@suse.cz>
7403
7404         * function.h (incomming_args): Break out of struct function.
7405         (function_subsections): Break out of struct function.
7406         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
7407         return_rtx and hard_reg_initial_vals from struct function.
7408         Kill inl_max_label_num.
7409         (current_function_pops_args, current_function_args_info,
7410         current_function_args_size, current_function_args_size,
7411         current_function_pretend_args_size,
7412         current_function_outgoing_args_size,
7413         current_function_internal_arg_pointer, current_function_return_rtx):
7414         Kill compatibility accestor macros.
7415         * builtins.c (expand_builtin_apply_args_1): Update.
7416         (expand_builtin_next_arg): Update.
7417         * df-scan.c (df_get_call_refs): Update.
7418         * dbxout.c (dbxout_function_end): Update.
7419         * dwarf2out.c (dwarf2out_switch_text_section): Update.
7420         (output_line_info): Update.
7421         (secname_for_decl): Update.
7422         (dwarf2out_var_location): Update.
7423         * function.c (free_after_compilation): Update.
7424         (assign_parm_find_stack_rtl): Update.
7425         (assign_parms): Update.
7426         (expand_dummy_function_end): Update.
7427         (expand_function_end): Update.
7428         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
7429         (expand_call): Update.
7430         (emit_library_call_value_1): Update.
7431         (store_one_arg): Update.
7432         * varasm.c (initialize_cold_section_name): Update.
7433         (unlikely_text_section): Update.
7434         (unlikely_text_section_p): Update.
7435         (assemble_start_function): Update.
7436         (assemble_end_function): Update.
7437         (default_section_type_flags): Update.
7438         (switch_to_section): Update.
7439         * integrate.c (set_decl_abstract_flags): Update.
7440         (get_hard_reg_initial_val): Update.
7441         (has_hard_reg_initial_val): Update.
7442         (allocate_initial_values): Update.
7443         * resource.c (init_resource_info): Update.
7444         * config/alpha/alpha.c (NUM_ARGS): Update.
7445         (direct_return): Update.
7446         (alpha_va_start): Update.
7447         (alpha_sa_size): Update.
7448         (alpha_initial_elimination_offset): Update.
7449         (alpha_expand_prologue): Update.
7450         (alpha_start_function): Update.
7451         (alpha_expand_epilogue): Update.
7452         (unicosmk_initial_elimination_offset):
7453         * config/alpha/alpha.md (call expander): Update.
7454         * config/s390/s390.c (s390_register_info): Update.
7455         (s390_register_info): Update.
7456         (s390_frame_info): Update.
7457         (s390_initial_elimination_offset): Update.
7458         (s390_build_builtin_va_list): Update.
7459         (s390_va_start): Update.
7460         * config/spu/spu.c (direct_return): Update.
7461         (spu_expand_prologue): Update.
7462         (spu_initial_elimination_offset): Update.
7463         (spu_build_builtin_va_list): Update.
7464         (spu_va_start): Update.
7465         * config/sparc/sparc.c (sparc_init_modes): Update.
7466         (sparc_compute_frame_size): Update.
7467         (function_value): Update.
7468         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
7469         * config/i386/i386.md (return expander): Update.
7470         * config/i386/i386.c (ix86_va_start): Update.
7471         (ix86_can_use_return_insn_p): Update.
7472         (ix86_compute_frame_layout): Update.
7473         (ix86_expand_epilogue): Update.
7474         * config/sh/sh.c (output_stack_adjust): Update.
7475         (calc_live_regs): Update.
7476         (sh_expand_prologue): Update.
7477         (sh_builtin_saveregs): Update.
7478         (sh_va_start): Update.
7479         (initial_elimination_offset): Update.
7480         (sh_allocate_initial_value): Update.
7481         (sh_function_ok_for_sibcall): Update.
7482         (sh_get_pr_initial_val): Update.
7483         * config/sh/sh.md (return expander): Update.
7484         * config/avr/avr.c (frame_pointer_required_p): UPdate.
7485         * config/crx/crx.c (crx_compute_frame): UPdate.
7486         (crx_initial_elimination_offset): UPdate.
7487         * config/xtensa/xtensa.c (compute_frame_size): Update
7488         (xtensa_builtin_saveregs): Update.
7489         (xtensa_va_start): Update.
7490         (order_regs_for_local_alloc): Update.
7491         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
7492         (xstormy16_expand_builtin_va_start): Update.
7493         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
7494         * config/m68hc11/m68hc11.md (return expanders): Update.
7495         * config/m68hc11/m68hc11.c (expand_prologue): Update.
7496         (expand_epilogue): Update.
7497         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
7498         (cris_simple_epilogue): Update.
7499         (cris_expand_prologue): Update.
7500         (cris_expand_epilogue): Update.
7501         * config/iq2000/iq2000.c (iq2000_va_start): Update.
7502         (compute_frame_size): Update.
7503         * config/mt/mt.c (mt_compute_frame_size): Update.
7504         * config/mn10300/mn10300.c (expand_prologue): Update.
7505         (expand_epilogue): Update.
7506         (initial_offset): Update.
7507         (mn10300_builtin_saveregs):
7508         * config/mn10300/mn10300.md (return expander): Update.
7509         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
7510         (ia64_initial_elimination_offset): Update.
7511         (ia64_initial_elimination_offset): Update.
7512         (ia64_expand_prologue): Update.
7513         * config/m68k/m68k.md (return expander): Update.
7514         * config/rs6000/rs6000.c (rs6000_va_start): Update.
7515         (rs6000_stack_info): Update.
7516         * config/mcore/mcore.c (layout_mcore_frame): Update.
7517         (mcore_expand_prolog): Update.
7518         * config/arc/arc.c (arc_compute_frame_size): Update.
7519         * config/score/score3.c (score3_compute_frame_size): Update.
7520         * config/score/score7.c (score7_compute_frame_size): Update.
7521         * config/arm/arm.c (use_return_insn): Update.
7522         (thumb_find_work_register): Update.
7523         (arm_compute_save_reg_mask): Update.
7524         (arm_output_function_prologue): Update.
7525         (arm_output_epilogue): Update.
7526         (arm_size_return_regs): Update.
7527         (arm_get_frame_offsets): Update.
7528         (arm_expand_prologue): Update.
7529         (thumb_exit): Update.
7530         (thumb_unexpanded_epilogue): Update.
7531         (thumb1_output_function_prologue): Update.
7532         * config/pa/pa.md (return expander): Update.
7533         * config/pa/pa.c (compute_frame_size): Update.
7534         (hppa_builtin_saveregs): Update.
7535         * config/mips/mips.c (mips_va_start): Update.
7536         (mips16_build_function_stub): Update.
7537         (mips_compute_frame_info): Update.
7538         (mips_restore_gp): Update.
7539         (mips_output_function_prologue): Update.
7540         (mips_expand_prologue): Update.
7541         * config/v850/v850.c (compute_frame_size): Update.
7542         (expand_prologue): * config/mmix/mmix.c (along): update.
7543         (mmix_initial_elimination_offset): update.
7544         (mmix_reorg): update.
7545         (mmix_use_simple_return): update.
7546         (mmix_expand_prologue): update.
7547         (mmix_expand_epilogue): Update.
7548         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
7549         (emit_link_insn): Update.
7550
7551 2008-04-08  Anatoly Sokolov <aesok@post.ru>
7552
7553         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
7554         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
7555         instructions.
7556         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
7557         atmega103 device.
7558
7559 2008-04-07  Jan Hubicka  <jh@suse.cz>
7560
7561         * function.h (rtl): Rename to x_rtl.
7562         (crtl): New define.
7563         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7564         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7565         used_temp_slots avail_temp_slots, temp_slot_level,
7566         nonlocal_goto_handler_labels): Update accesstors.
7567         (rtl): New global variable.
7568         (struct function): Move some fileds to rtl_data.
7569         (get_arg_pointer_save_area): Update prototype.
7570         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7571         get_arg_pointer_save_area.
7572         * expr.c (init_expr): Update
7573         * function.c (get_frame_size): Update
7574         (assign_stack_local): Update
7575         (expand_function_end): Update.
7576         (get_art_pointer_save_area): Update
7577         * function.h 
7578         * emit-rtl.c (rtl): Declare.
7579         (regno_reg_rtx): Declare.
7580         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7581         Update.
7582         (gen_reg_rtx): Update.
7583         * varasm.c (n_deferred_constatns): Update accestor.
7584         (init_varasm_status): Do not allocate varasm_status.
7585         (force_const_mem, get_pool_size, output_constant_pool): Update.
7586         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7587         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7588         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
7589         * sparc/sparc.h (INIT_EXPANDERS): Update.
7590         * ia64/ia64.h (INIT_EXPANDERS): Update.
7591
7592 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
7593
7594         * reload.c (push_secondary_reload): Add missing break to for loop.
7595
7596 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7597
7598         PR middle-end/PR28690
7599         * rtlanal.c: Update copyright years.
7600         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
7601         as REG_POINTER and MEM_POINTER operands.
7602         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
7603         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
7604         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
7605         * gcse.c: Update copyright years.
7606         (pre_delete): Call gen_reg_rtx_and_attrs.
7607         (hoist_code): Likewise.
7608         (build_store_vectors): Likewise.
7609         (delete_store): Likewise.
7610         * loop-invariant.c (move_invariant_reg): Likewise.
7611         Update copyright years.
7612
7613 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
7614
7615         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
7616         control string instead of quoted.
7617
7618 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
7619
7620         * doc/rtl.texi: Rewrite of subreg section.
7621
7622 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
7623
7624         PR/35842
7625         * config/i386/i386.c (legitimize_pic_address): Add treating
7626         of dllimport SYM_REF's.
7627         (legitimize_dllimport_symbol): Add prototype.
7628
7629 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7630
7631         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
7632         reference in constructor with non self-referential type.
7633
7634 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7635
7636         Removal of Return with Depressed Stack Pointer support
7637         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
7638         (ECF_SP_DEPRESSED): Likewise.
7639         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
7640         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
7641         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7642         (expand_call): Do not test ECF_SP_DEPRESSED.
7643         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7644         * function.c (keep_stack_depressed): Delete.
7645         (handle_epilogue_set): Likewise.
7646         (update_epilogue_consts): Likewise.
7647         (emit_equiv_load): Likewise.
7648         (thread_prologue_and_epilogue_insns): Remove support for Return with
7649         Depressed Stack Pointer.
7650         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7651
7652 2008-04-06  Richard Guenther  <rguenther@suse.de>
7653
7654         PR tree-optimization/35400
7655         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
7656         information from SSA_NAMEs.
7657
7658 2008-04-06  Anatoly Sokolov <aesok@post.ru>
7659
7660         * config/avr/avr.h (avr_mega_p): Remove declaration.
7661         (AVR_MEGA): Remove macro.
7662         * config/avr/avr.c (avr_mega_p): Remove variable.
7663         (avr_override_options): Remove inicializion of avr_mega_p.
7664         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7665         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7666         (avr_jump_mode): (Ditto.).
7667         (avr_output_progmem_section_asm_op): (Ditto.).
7668         (avr_asm_init_sections): (Ditto.).
7669         (avr_asm_init_sections): (Ditto.).
7670         (avr_rtx_costs): (Ditto.).
7671         * config/avr/avr.md: (Ditto.).
7672         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
7673         '__AVR_MEGA__'.
7674
7675 2008-04-06  Richard Guenther  <rguenther@suse.de>
7676
7677         PR tree-optimization/35842
7678         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
7679         is_gimple_invariant_address.
7680
7681 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7682
7683         * gcc.c (default_compilers): Sync Fortran extensions list with
7684         that in fortran/lang-specs.h.
7685         * doc/invoke.texi: Likewise.
7686         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
7687         * dwarf2out.c (gen_compile_unit_die): Likewise.
7688
7689 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
7690
7691         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
7692
7693 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
7694
7695         PR target/12329
7696         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
7697         attribute is used for nested functions.
7698
7699 2008-04-05  Jan Hubicka  <jh@suse.cz>
7700
7701         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
7702
7703         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
7704         letter argument.
7705         (dump_files): Update.
7706         (enable_rtl_dump_file): Do not accept letter argument.
7707         * tree-pass.h (dump_file_info): Remove letter argument.
7708         * toplev.c (decode_d_option): Update -da handling.
7709         * toplev.h (enable_rtl_dump_file): Update prototype.
7710         * passes.c (register_one_dump_file): Do not accept IPA argument; work
7711         it out based on pass type.
7712         (register_dump_files_1): Likewise.
7713         (init_optimization_passes): Update register_one_dump_file calls.
7714         (execute_one_pass): Sanity check that IPA passes are called at IPA
7715         level and RTL passes at RTL level.
7716         (execute_pass_list): IPA pass can not be after or subpass of
7717         GIMPLE/RTL pass.
7718         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
7719         disallov RTL subpasses of IPA subpasses.
7720
7721 2008-04-05  Ben Elliston  <bje@au.ibm.com>
7722
7723         * tree-cfg.c (need_fake_edge_p): Return false for calls to
7724         builtins that return exactly once and do not throw. Cache call to
7725         call_expr_flags.
7726
7727 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
7728
7729         PR rtl-optimization/34916
7730         PR middle-end/35519
7731         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
7732         between instruction pairs.
7733
7734 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
7735
7736         * doc/invoke.texi: Document -mbitops for SH.
7737         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
7738         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
7739         * config/sh/sh.c (print_operand): Add %t operand code.
7740         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
7741         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
7742         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
7743         (extendqihi2): Likewise.
7744         (movqi_i): Likewise.
7745         (insv): Use bset, bclr and bst instructions for SH2A if possible.
7746         (extv): Use bld instruction for SH2A if possible.
7747         (extzv): Likewise.
7748         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
7749         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
7750         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
7751         (bset.b, bclr.b): Define peepholes.
7752         * config/sh/sh.opt (mbitops): New option.
7753
7754 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
7755
7756         PR target/35620
7757         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
7758         and view convert expression.
7759
7760 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7761
7762         PR target/35364
7763         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
7764
7765 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
7766
7767         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
7768
7769         * config/i386/cpuid.h (bit_AES): New.
7770         (bit_PCLMUL): Likewise.
7771
7772         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
7773         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
7774         SSE2 if AES or PCLMUL is enabled.
7775         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
7776         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7777         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
7778         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
7779         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
7780         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
7781         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7782         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
7783         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
7784         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
7785         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
7786         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
7787         __builtin_ia32_aeskeygenassist128 and
7788         __builtin_ia32_pclmulqdq128.
7789         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
7790         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
7791         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
7792
7793         * config/i386/i386.h (TARGET_AES): New.
7794         (TARGET_PCLMUL): Likewise.
7795         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
7796
7797         * config/i386/i386.md (UNSPEC_AESENC): New.
7798         (UNSPEC_AESENCLAST): Likewise.
7799         (UNSPEC_AESDEC): Likewise.
7800         (UNSPEC_AESDECLAST): Likewise.
7801         (UNSPEC_AESIMC): Likewise.
7802         (UNSPEC_AESKEYGENASSIST): Likewise.
7803         (UNSPEC_PCLMUL): Likewise.
7804
7805         * config/i386/i386.opt (maes): New.
7806         (mpclmul): Likewise.
7807
7808         * config/i386/sse.md (aesenc): New pattern.
7809         (aesenclast): Likewise.
7810         (aesdec): Likewise.
7811         (aesdeclast): Likewise.
7812         (aesimc): Likewise.
7813         (aeskeygenassist): Likewise.
7814         (pclmulqdq): Likewise.
7815
7816         * config/i386/wmmintrin.h: New.
7817
7818         * doc/extend.texi: Document AES and PCLMUL built-in function.
7819
7820         * doc/invoke.texi: Document -maes and -mpclmul.
7821
7822 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
7823
7824         * function.c (free_after_parsing): Replace with
7825         cxx_push_function_context from C++ front-end.
7826         (allocate_struct_function): Don't call langhook.
7827         * langhooks.h (struct lang_hooks_for_functions): Delete.
7828         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
7829         member "function".
7830         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
7831         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
7832         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
7833         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
7834         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
7835         remove LANG_HOOKS_FUNCTION_INITIALIZER.
7836         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
7837
7838         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
7839         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
7840         
7841 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7842
7843         PR c/35440
7844         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
7845         for all types.
7846
7847 2008-04-04  Richard Guenther  <rguenther@suse.de>
7848
7849         PR middle-end/35823
7850         * fold-const.c (optimize_minmax_comparison): Use the correct
7851         type for the constant in the simplified comparison.
7852
7853 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
7854
7855         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
7856         Pass L2 size as "--param l2-cache-size" to the compiler.
7857         (decode_l2_cache): New function to decode L2 cache parameters using
7858         0x8000006 extended cpuid function.
7859         (detect_caches_amd): Determine parameters of L2 cache using
7860         decode_l2_caches function.
7861         (decode_caches_intel): Decode L2 cache parameters.
7862         (detect_caches_intel): Determine L2 cache parameters using
7863         decode_caches_intel and decode_l2_caches functions.
7864
7865 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
7866
7867         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
7868         secondary input reload for subword loads from the constant pool.
7869
7870 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
7871
7872         PR target/35713
7873         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
7874           constants of the appropriate size for runtime calculations.
7875
7876         PR c/35712
7877         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
7878           decimal-float literal constant zero.
7879
7880 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
7881
7882         PR c/35738
7883         * c-parser.c (c_parser_omp_atomic): Call
7884         default_function_array_conversion on the RHS.
7885
7886         PR middle-end/35818
7887         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
7888         call is_variable_sized if decl has incomplete type.
7889
7890 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
7891
7892         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
7893
7894 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
7895
7896         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
7897         iterators.
7898         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
7899         (sgt<u>): Merge sgt and sgtu into new expander.
7900         (sgt, sgtu): Remove expanders.
7901         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
7902         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
7903         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
7904         *sgtu_<mode>_mips16 into new pattern.
7905         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
7906         (sge<u>): Merge sge and sgeu into new expander.
7907         (sge, sgeu): Remove expanders.
7908         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
7909         new pattern.
7910         (*sge_<mode>, second *sge_<mode>): Remove patterns.
7911         (slt<u>): Merge slt and sltu into new expander.
7912         (slt, sltu): Remove expanders.
7913         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
7914         (*slt_<mode>, *sltu_<mode>): Remove patterns.
7915         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
7916         *sltu_<mode>_mips16 into new pattern.
7917         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
7918         (sle<u>): Merge sle and sleu into new expander.
7919         (sle, sleu): Remove expanders.
7920         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
7921         (*sle_<mode>, *sleu_<mode>): Remove patterns.
7922         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
7923         *sleu_<mode>_mips16 into new pattern.
7924         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
7925
7926 2008-04-03  Jan Hubicka  <jh@suse.cz>
7927
7928         PR tree-optimization/35795
7929         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
7930         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
7931         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
7932         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
7933         * score/score3.c (score3_output_mi_thunk): Likewise.
7934         * score/score7.c (score7_output_mi_thunk): Likewise.
7935         * mips/mips.c (mips_output_mi_thunk): Likewise.
7936
7937 2008-04-03  Richard Guenther  <rguenther@suse.de>
7938
7939         * tree-vrp.c (extract_range_from_unary_expr): Handle all
7940         conversions.  Simplify code.
7941
7942 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
7943
7944         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
7945
7946 2008-04-03  Tom Tromey  <tromey@redhat.com>
7947             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7948
7949         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7950         * config/bfin/t-bfin-linux (generated_files): Add
7951         linux-sysroot-suffix.h.
7952         * doc/install.texi (Prerequisites): Require make 3.80.
7953         * doc/sourcebuild.texi (Front End Directory): Document new
7954         variable.
7955         * Makefile.in (generated_files): New variable.
7956         (ALL_HOST_OBJS): New variable.
7957         ($(ALL_HOST_OBJS)): New target.
7958
7959 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7960
7961         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
7962         (remap_block): Call id->transform_lang_insert_block instead
7963         of langhook.
7964         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
7965         Set id.transform_lang_insert_block to NULL.
7966         (clone_body): Move to cp/optimize.c
7967         * tree-inline.h (struct copy_body_data): Change
7968         transform_lang_insert_block to function pointer.
7969         (copy_generic_body, copy_decl_no_change): Export.
7970         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
7971         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
7972         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
7973
7974         * c-tree.h (insert_block): Kill.
7975         * c-decl.c (insert_block): Kill.
7976
7977 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7978
7979         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7980         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7981         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
7982         argument.
7983         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
7984         argument, call {push,pop}_function_context from here.
7985         * c-parser.c: Use c_{push,pop}_function_context.
7986
7987         * function.c (push_function_context_to): Move meat ...
7988         (push_function_context): ... here.  Simplify.
7989         * function.c (pop_function_context_from): Move meat ...
7990         (pop_function_context): ... here.  Simplify.
7991         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
7992         leave_nested).
7993         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7994         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7995         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
7996         * tree.h (push_function_context_to, pop_function_context_from): Remove.
7997
7998 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7999
8000         * expmed.c (extract_force_align_mem_bit_field): Remove.
8001
8002 2008-04-03  Richard Guenther  <rguenther@suse.de>
8003
8004         PR middle-end/35800
8005         * expr.h (try_casesi): Adjust prototype.
8006         * expr.c (try_casesi): Take fallback label as extra parameter.
8007         Use that for gen_casesi if default_label is NULL.
8008         * stmt.c (expand_case): Pass fallback label to try_casesi,
8009         make sure to fill gaps with a fallback label if default_label
8010         is not present.
8011
8012 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
8013
8014         PR target/35801
8015         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
8016
8017 2008-04-03  Ben Elliston  <bje@au.ibm.com>
8018
8019         * expmed.c (extract_split_bit_field): Remove if (0) code.
8020         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
8021         (do_ds_constraint): Likewise.
8022
8023 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
8024
8025         * doc/cppopts.texi (-dU): Document.
8026         * c-common.h (flag_dump_macros): Update comment.
8027         * c-opts.c (handle_OPT_d): Handle -dU.
8028         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
8029         dump_queued_macros, cb_used_define, cb_used_undef): New.
8030         (init_pp_output): Handle -dU.
8031         (cb_line_change): Call dump_queued_macros.
8032         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
8033
8034 2008-04-02  Anatoly Sokolov <aesok@post.ru>
8035
8036         * config/avr/predicates.md (io_address_operand): New predicate. 
8037         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
8038         * config/avr/avr.c (avr_io_address_p): Remove function.
8039         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
8040         'avr_io_address_p' function.
8041         (out_movhi_r_mr): (Ditto.).
8042         (out_movqi_mr_r): (Ditto.).
8043         (out_movhi_mr_r): (Ditto.).
8044         (avr_address_cost): (Ditto.).
8045
8046 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
8047
8048         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
8049         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
8050         in 32bit mode when XMM registers are available to avoid store
8051         forwarding stalls.
8052         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
8053         corresponding post-reload splitters.
8054
8055 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
8056
8057         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
8058         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
8059         __builtin_ia32_roundss.
8060         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
8061         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
8062         __builtin_ia32_roundss.
8063         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
8064         IX86_BUILTIN_SHUFPD here.
8065
8066 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
8067
8068         * config/i386/i386.md (plogic): New.
8069         (plogicprefix): Likewise.
8070
8071         * config/i386/mmx.md (mmx_<code><mode>3): New.
8072         (mmx_and<mode>3): Removed.
8073         (mmx_ior<mode>3): Likewise.
8074         (mmx_xor<mode>3): Likewise.
8075
8076         * config/i386/sse.md (<code><mode>3): New.
8077         (*<code><mode>3): Likewise.
8078         (*<code><mode>3): Likewise.
8079         (<code><mode>3): Likewise.
8080         (*sse_<code><mode>3): Likewise.
8081         (*sse2_<code><mode>3): Likewise.
8082         (<code>tf3): Likewise.
8083         (*<code>tf3): Likewise.
8084         (and<mode>3): Likewise.
8085         (*and<mode>3): Likewise.
8086         (ior<mode>3): Removed.
8087         (*ior<mode>3): Likewise.
8088         (xor<mode>3): Likewise.
8089         (*xor<mode>3): Likewise.
8090         (*and<mode>3): Likewise.
8091         (*ior<mode>3): Likewise.
8092         (*xor<mode>3): Likewise.
8093         (and<mode>3): Likewise.
8094         (*sse_and<mode>3): Likewise.
8095         (*sse2_and<mode>3): Likewise.
8096         (andtf3): Likewise.
8097         (*andtf3): Likewise.
8098         (ior<mode>3): Likewise.
8099         (*sse_ior<mode>3): Likewise.
8100         (*sse2_ior<mode>3): Likewise.
8101         (iortf3): Likewise.
8102         (*iortf3): Likewise.
8103         (xor<mode>3): Likewise.
8104         (*sse_xor<mode>3): Likewise.
8105         (*sse2_xor<mode>3): Likewise.
8106         (xortf3): Likewise.
8107         (*xortf3): Likewise.
8108
8109 2008-04-02  Richard Guenther  <rguenther@suse.de>
8110
8111         PR tree-optimization/14495
8112         PR tree-optimization/34793
8113         * tree-vrp.c (struct switch_update): New structure.
8114         (to_remove_edges, to_update_switch_stmts): New VECs.
8115         (simplify_switch_using_ranges): New function.  Remove not taken
8116         case labels and edges.
8117         (simplify_stmt_using_ranges): Call it.
8118         (identify_jump_threads): Mark edges we have queued for removal
8119         so we don't thread them.
8120         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
8121         case label vector.
8122         * tree-cfg.c (group_case_labels): Deal with missing default label.
8123         (tree_verify_flow_info): Allow missing default label.
8124         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
8125         (emit_case_nodes): Likewise.
8126         (expand_case): Do not rely on the default label to be present.
8127         * expr.c (try_casesi): Deal with NULL default_label.
8128         (do_tablejump): Likewise.
8129
8130 2008-04-02  Richard Guenther  <rguenther@suse.de>
8131
8132         PR tree-optimization/14495
8133         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
8134         SWITCH_EXPR here ...
8135         (vrp_visit_switch_stmt): ... but here (new function).
8136         (find_case_label_index): New helper function.
8137         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
8138
8139 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8140
8141         * fwprop.c: Fix ISO-C99ism.
8142
8143 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8144
8145         PR bootstrap/35752
8146         * Makefile.in (objdir): Set it here.
8147         * configure.ac: Not here.  Find dynamic linker characteristics.
8148         * exec-tool.in: Use them.
8149         * aclocal.m4: Regenerate.
8150         * configure: Regenerate.
8151
8152 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8153
8154         * expr.c (expand_var): Delete it.
8155         * expr.h (expand_var): Delete prototype.
8156         * function.c (expand_function_start): Use expand_decl instead.
8157         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
8158         langhook.
8159
8160 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
8161
8162         PR rtl-optimization/35542
8163         * fwprop.c (forward_propagate_and_simplify): Replace
8164         loc_reg_mentioned_in_p with reg_mentioned_p.
8165
8166 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8167
8168         PR rtl-optimization/35281
8169         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
8170         (propagate_rtx_1): Handle PR_HANDLE_MEM.
8171         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
8172         (varying_mem_p): Move above propagate_rtx.
8173         (all_uses_available_at): Do not check MEMs.
8174
8175 2008-04-02  Rafael Espindola  <espindola@google.com>
8176
8177         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
8178         (register_edge_assert_for_2): Split the cond argument.
8179         (register_edge_assert_for_1): Adjust for the change in
8180         register_edge_assert_for_2.
8181         (register_edge_assert_for): Split the cond argument.
8182         (find_switch_asserts): Adjust for the change in
8183         register_edge_assert_for.
8184
8185 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
8186
8187         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
8188         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
8189         offsets for 64-bit mingw.
8190         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
8191         abi for x86_64-pc-mingw.
8192
8193 2008-04-02  Richard Guenther  <rguenther@suse.de>
8194
8195         * tree-vrp.c (extract_range_from_assert): Make sure to not
8196         produce range min/max with TREE_OVERFOW set.
8197         If merging a anti-range and a range keep the anti-range if
8198         the range covers all values of the type.
8199         (register_edge_assert_for_2): Only allow sign-changing
8200         conversions in detecting canonical range checks.  Also
8201         register an assert for the unsigned name if useful.
8202
8203         PR tree-optimization/35787
8204         * tree-vrp.c (vrp_val_max): New function.
8205         (vrp_val_min): Likewise.
8206         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
8207         (vrp_val_is_min): Likewise.
8208         (supports_overflow_infinity): Use vrp_val_{min,max}.
8209         (negative_overflow_infinity): Likewise.
8210         (positive_overflow_infinity): Likewise.
8211         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
8212         (is_positive_overflow_infinity): Likewise.
8213         (is_overflow_infinity): Likewise.
8214         (avoid_overflow_infinity): Use vrp_val_{min,max} and
8215         vrp_val_is_{min,max}.
8216         (set_and_canonicalize_value_range): Canonicalize anti-ranges
8217         to ranges if possible.  Avoid empty ranges.
8218
8219 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8220
8221         PR middle-end/35705
8222         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
8223         the expression is a function address.
8224
8225 2008-04-01  George Helffrich  <george@gcc.gnu.org>
8226
8227         PR fortran/35154, fortran/23057
8228         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
8229         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
8230         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
8231         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
8232         in common.
8233         (dbxout_syms): Check for COMMON-based symbol and wrap in
8234         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
8235         in bracket for efficiency.
8236
8237         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
8238         using DW_TAG_common_block + member offset.
8239         (add_pubname_string): New function.
8240         (dw_expand_expr): New function to find block name and offset for
8241         COMMON var.
8242         (common_check): New function to check whether symbol in Fortran COMMON.
8243         (gen_variable_die): If COMMON, use DW_TAG_common_block.
8244
8245 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
8246
8247         PR c/35436
8248         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
8249
8250 2008-04-02  Ben Elliston  <bje@au.ibm.com>
8251
8252         * config/v850/v850.md (casesi): Remove if (0) code.
8253         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8254         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
8255
8256 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
8257
8258         * config/i386/i386.md (rex64suffix): New mode attribute.
8259         (floathi<mode>2): Disable expander for SSE math.
8260         (*floathi<mode>2_1): New insn insn_and_split pattern.
8261         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
8262         corresponding post-reload splitters.
8263         (*floathi<mode>2_i387): New macroized insn pattern.
8264         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
8265         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
8266         insn_and_split pattern.
8267         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
8268         New macroized instruction patterns and corresponding post-reload
8269         splitters.
8270         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
8271         and corresponding post-reload splitters.
8272         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
8273         New macroized instruction patterns.
8274         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
8275         macroized instruction patterns and corresponding post-reload splitters.
8276         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
8277         corresponding post-reload splitters.
8278         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
8279         New macroized instruction patterns.
8280         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
8281         corresponding post-reload splitters.
8282         (*floatsi<mode>2_i387): New macroized instruction patterns.
8283
8284 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
8285
8286         * config/i386/i386.md (smaxmin): New.
8287         (umaxmin): Likewise.
8288         (maxminiprefix): Likewise.
8289         (maxminfprefix): Likewise.
8290         (<code><mode>3): Likewise.
8291         (smin<mode>3): Removed.
8292         (smax<mode>3): Likewise.
8293
8294         * config/i386/mmx.md (mmx_<code>v2sf3): New.
8295         (mmx_<code>v4hi3): Likewise.
8296         (mmx_<code>v8qi3): Likewise.
8297         (mmx_smaxv2sf3): Removed.
8298         (mmx_sminv2sf3): Likewise.
8299         (mmx_umaxv8qi3): Likewise.
8300         (mmx_smaxv4hi3): Likewise.
8301         (mmx_uminv8qi3): Likewise.
8302         (mmx_sminv4hi3): Likewise.
8303
8304         * config/i386/sse.md (<addsub><mode>3): New.
8305         (*<addsub><mode>3): Likewise.
8306         (<sse>_vm<addsub><mode>3): Likewise.
8307         (<maxmin><mode>3): Likewise.
8308         (*<maxmin><mode>3_finite): Likewise.
8309         (*<maxmin><mode>3): Likewise.
8310         (<sse>_vm<maxmin><mode>3): Likewise.
8311         (sse3_h<addsub>v4sf3): Likewise.
8312         (sse3_h<addsub>v2df3): Likewise.
8313         (<maxmin>v16qi3): Likewise.
8314         (*<maxmin>v16qi3): Likewise.
8315         (<maxmin>v8hi3): Likewise.
8316         (*<maxmin>v8hi3): Likewise.
8317         (*sse4_1_<maxmin><mode>3): Likewise.
8318         (*sse4_1_<maxmin><mode>3): Likewise.
8319         (add<mode>3): Removed.
8320         (*add<mode>3): Likewise.
8321         (<sse>_vmadd<mode>3): Likewise.
8322         (sub<mode>3): Likewise.
8323         (*sub<mode>3): Likewise.
8324         (<sse>_vmsub<mode>3): Likewise.
8325         (smin<mode>3): Likewise.
8326         (*smin<mode>3_finite): Likewise.
8327         (*smin<mode>3): Likewise.
8328         (<sse>_vmsmin<mode>3): Likewise.
8329         (smax<mode>3): Likewise.
8330         (*smax<mode>3_finite): Likewise.
8331         (*smax<mode>3): Likewise.
8332         (<sse>_vmsmax<mode>3): Likewise.
8333         (sse3_haddv4sf3): Likewise.
8334         (sse3_haddv2df3): Likewise.
8335         (sse3_hsubv4sf3): Likewise.
8336         (sse3_hsubv2df3): Likewise.
8337         (umaxv16qi3): Likewise.
8338         (*umaxv16qi3): Likewise.
8339         (smaxv8hi3): Likewise.
8340         (*smaxv8hi3): Likewise.
8341         (*sse4_1_smax<mode>3): Likewise.
8342         (*sse4_1_umax<mode>3): Likewise.
8343         (uminv16qi3): Likewise.
8344         (*uminv16qi3): Likewise.
8345         (sminv8hi3): Likewise.
8346         (*sminv8hi3): Likewise.
8347         (*sse4_1_smin<mode>3): Likewise.
8348         (*sse4_1_umin<mode>3): Likewise.
8349
8350 2008-04-01  Rafael Espindola  <espindola@google.com>
8351
8352         * tree-cfg.c (verify_expr): remove in_phi.
8353         (verify_stmt): Don't call walk_tree with verify_expr. Use
8354         is_gimple_min_invariant instead of is_gimple_val.
8355
8356 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
8357
8358         * doc/include/gpl_v3.texi: Update for manpage generation.
8359         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
8360         gpl.texi.
8361         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
8362         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
8363         gpl_v3.texi instead of gpl.texi.
8364         (gpl.pod): New.
8365
8366 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
8367
8368         PR pch/13675
8369         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
8370
8371 2008-04-01  Rafael Espindola  <espindola@google.com>
8372
8373         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
8374         (extract_code_and_val_from_cond): Use
8375         extract_code_and_val_from_cond_with_ops.
8376
8377 2008-04-01  Jan Hubicka  <jh@suse.cz>
8378
8379         * function.c (free_after_compilation): Free epilogue_delay_list.
8380         (prepare_function_start): Assert that previous compilation was freed.
8381
8382 2008-04-01  Jan Hubicka  <jh@suse.cz>
8383             Jim Wilson  <wilson@tuliptree.org>
8384             Andreas Tobler <andreast@gcc.gnu.org>
8385
8386         PR middle-end/35781
8387         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
8388         rtl.emit instead cfun->emit.
8389         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
8390         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
8391
8392 2008-04-01  Ben Elliston  <bje@au.ibm.com>
8393
8394         * doc/c-tree.texi (Function Basics): Fix grammatical error.
8395
8396 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
8397
8398         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
8399         New options
8400         (fprofile-use): Add var flag_profile_use
8401         * coverage.c (coverage_begin_output): Do not open a gcno file for
8402         output only if -ftest-coverage is set.
8403         Do not add getpwd() to gcda file path.
8404         (build_gcov_info): Check the new flag
8405         flag_profile_datafile_relative_path.
8406         (coverage_init): Use profile_data_prefix.
8407         Read profile counter only if flag_profile_use is set.
8408         * opts.c (common_handle_option): New option fprofile-use=,
8409         fprofile-dir=, fprofile-generate=.
8410         * toplev.c (profile_data_prefix): New variable definition.
8411         * toplev.h (profile_data_prefix): New declaration.
8412         * doc/invoke.tex (Option Summary, Optimization Options):
8413         Add new options.
8414
8415 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
8416
8417         * varasm.c (output_constant_pool_1): In LABEL_REF check,
8418         use tmp consistently.
8419
8420         PR target/35695
8421         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
8422         * config/ia64/ia64.c (rtx_needs_barrier): Handle
8423         UNSPEC_FR_RECIP_APPROX_RES.
8424         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
8425
8426 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
8427
8428         PR c/35750
8429         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
8430
8431 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8432
8433         PR middle-end/30186
8434         * fold-const.c (fold_indirect_ref_1): Support accessing non first
8435         element of the vector via a pointer.
8436
8437 2008-03-31  Ian Lance Taylor  <iant@google.com>
8438
8439         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
8440
8441 2008-03-31  Jan Hubicka  <jh@suse.cz>
8442
8443         * builtins.c (expand_builtin_setjmp_receiver): Update call of
8444         get_arg_pointer_save_area.
8445         * expr.c (init_expr): Just clear out rtl.expr.
8446         * function.c (free_after_compilation): Clear out whole RTL structure.
8447         (get_func_frame_size): Merge into ...
8448         (get_frame_size): ... this one.
8449         (assign_stack_local_1): Merge into ...
8450         (assign_stack_local): ... this one.
8451         (expand_function_end): Update call of get_arg_pointer_save_area.
8452         (get_art_pointer_save_area): Remove cfun argument.
8453         * function.h (emit_status): regno_pointer_align does not need length
8454         attribute. Move x_regno_reg_rtx to ...
8455         (regno_reg_rtx): ... new global array.
8456         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
8457         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
8458         apply_args_value, forced_labels, stack_pointer_delta):
8459         Update accestors.
8460         (struct varasm_status): Move here from varasm.c
8461         (struct rtl_data): New. Move here some fields from struct function.
8462         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
8463         frame_offset, stack_check_probe_note, arg_pointer_save_area,
8464         used_temp_slots avail_temp_slots, temp_slot_level,
8465         nonlocal_goto_handler_labels): Update accesstors.
8466         (rtl): New global variable.
8467         (struct function): Move some fileds to rtl_data.
8468         (get_arg_pointer_save_area): Update prototype.
8469         * emit-rtl.c (rtl): Declare.
8470         (regno_reg_rtx): Declare.
8471         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
8472         Update.
8473         (gen_reg_rtx): Update.
8474         (init_virtual_regs): Do not tate emit_status argument.
8475         (init_emit): Do not allocate emit.
8476         * varasm.c (varasm_statuc): Move to function.h.
8477         (n_deferred_constatns): Update accestor.
8478         (init_varasm_status): Do not allocate varasm_status.
8479         (force_const_mem, get_pool_size, output_constant_pool): Update.
8480         * stmt.c (force_label_rtx): Do not use x_ prefixes.
8481         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
8482
8483 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
8484
8485         PR rtl-optimization/35729
8486         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
8487         references.
8488
8489 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
8490
8491         PR target/32000
8492         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
8493         load/store if memory is unaligned.
8494         (*movti_rex64): Likewise.
8495
8496         * config/i386/predicates.md (misaligned_operand): New.
8497
8498 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
8499
8500         PR tree-opt/35431
8501         * tree-ssa-phiopt.c (conditional_replacement): Return early for
8502         complex types.
8503
8504 2008-03-31  Jan Beulich  <jbeulich@novell.com>
8505
8506         * config/ia64/constraints.md: Add 'j' constraint.
8507         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
8508         (movdi_internal): Likewise.
8509
8510 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
8511
8512         PR c/35748
8513         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
8514
8515 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
8516
8517         PR target/35757
8518         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
8519         proper error message for the third argument on blendpd and
8520         blendps.
8521
8522         * config/i386/sse.md (blendbits): New.
8523         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
8524
8525 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
8526
8527         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
8528
8529 2008-03-30  Richard Guenther  <rguenther@suse.de>
8530
8531         PR middle-end/31023
8532         * fold-const.c (fold_sign_changed_comparison): Do leave
8533         conversions to base-types alone.
8534
8535 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8536
8537         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
8538         the link register if one altivec register is be saved.
8539
8540 2008-03-30  Ben Elliston  <bje@au.ibm.com>
8541
8542         * final.c (final_scan_insn): Remove if (0) code.
8543
8544 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
8545
8546         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
8547
8548 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
8549
8550         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
8551         of V4SFmode to ix86_binary_operator_ok.
8552
8553 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
8554
8555         * config/i386/i386.c (override_options): Initialize
8556         ix86_veclib_handler to ix86_veclibabi_svml when
8557         -mveclibabi=svml is used.
8558         (ix86_veclibabi_svml): New function for SVML ABI style
8559         vectorization support.
8560         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
8561
8562 2008-03-28  Rafael Espindola  <espindola@google.com>
8563
8564         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
8565         (tree_binary_nonnegative_warnv_p): Make it public.
8566         (tree_single_nonnegative_warnv_p): Make it public.
8567         (tree_invalid_nonnegative_warnv_p): Make it public.
8568         (tree_unary_nonzero_warnv_p): Make it public.
8569         (tree_binary_nonzero_warnv_p): Make it public
8570         (tree_single_nonzero_warnv_p): Make it public.
8571         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
8572         (extract_range_from_binary_expr): Split the expr argument.
8573         (extract_range_from_unary_expr): Split the expr argument.
8574         (extract_range_from_comparison): Split the expr argument.
8575         (extract_range_from_expr): Use the new aux functions.
8576         (vrp_evaluate_conditional_warnv): Use
8577         vrp_evaluate_conditional_warnv_with_ops.
8578         * tree.h (tree_unary_nonzero_warnv_p): Declare.
8579         (tree_binary_nonzero_warnv_p): Declare.
8580         (tree_single_nonzero_warnv_p): Declare.
8581         (tree_expr_nonzero_warnv_p): Declare.
8582         (tree_unary_nonnegative_warnv_p): Declare.
8583         (tree_binary_nonnegative_warnv_p): Declare.
8584         (tree_single_nonnegative_warnv_p): Declare.
8585         (tree_invalid_nonnegative_warnv_p): Declare.
8586
8587 2008-03-28  Richard Guenther  <rguenther@suse.de>
8588
8589         PR tree-optimization/30317
8590         PR tree-optimization/30911
8591         PR tree-optimization/34793
8592         * tree-vrp.c (set_and_canonicalize_value_range): New function.
8593         (struct assert_locus_d): New member EXPR.
8594         (register_new_assert_for): Add EXPR parameter to support
8595         ASSERT_EXPR <name, expr OP limit>.
8596         (register_edge_assert_for_1): Adjust callers.
8597         (find_assert_locations): Likewise.
8598         (process_assert_insertions_for): Build condition from expression.
8599         (extract_range_from_assert): Handle ASSERT_EXPRs
8600         of the form ASSERT_EXPR <name, expr OP limit>.
8601         (register_edge_assert_for_2): New helper registering
8602         asserts for comparisons.  Recognize range tests of the form
8603         (unsigned)i - CST1 OP CST2.
8604         (register_edge_assert_for_1): Use it.
8605         (register_edge_assert_for): Likewise.
8606         (needs_overflow_infinity): Integer sub-types
8607         do not need overflow infinities.
8608         (vrp_val_is_max): The extreme values of integer sub-types
8609         are those of the base type.
8610         (vrp_val_is_min): Likewise.
8611         * tree.def (ASSERT_EXPR): Document extra allowed conditional
8612         expressions.
8613
8614 2008-03-28  Nick Clifton  <nickc@redhat.com>
8615
8616         PR target/31110
8617         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
8618         Return GENERAL_REGS for stack adjustment reloads.
8619
8620 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8621
8622         PR target/31334
8623         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
8624         const_vector when all the vectors are constant.
8625
8626 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
8627
8628         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
8629         comparisons.
8630         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
8631         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
8632         (scc_sf): New.
8633         (s<code>_sf): Use new scc_sf attribute for opcode names.
8634
8635 2008-03-27  Tom Tromey  <tromey@redhat.com>
8636
8637         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
8638         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
8639         config/spu/t-spu-elf, config/i386/t-interix,
8640         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
8641         config/i386/x-darwin, config/i386/x-mingw32,
8642         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
8643         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
8644         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
8645         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
8646         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
8647         config/rs6000/x-darwin, config/rs6000/t-rs6000,
8648         config/score/t-score-elf, config/arm/t-strongarm-pe,
8649         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
8650         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
8651         Revert automatic dependency patch.
8652
8653 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8654
8655         PR target/35657
8656         * config/i386/i386.c (ix86_function_arg_boundary): Align
8657         decimal floating point to its natural boundary.
8658
8659 2008-03-27  Richard Guenther  <rguenther@suse.de>
8660
8661         PR middle-end/35716
8662         * fold-const.c (fold_comparison): Restrict distinct decl
8663         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
8664         solely rely on operand_equal_p.
8665
8666 2008-03-27  Richard Guenther  <rguenther@suse.de>
8667
8668         PR c/32511
8669         * c-common.c (handle_weak_attribute): Reject combination of
8670         weak and inline.
8671
8672 2008-03-27  Richard Guenther  <rguenther@suse.de>
8673
8674         PR tree-optimization/32810
8675         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
8676         conversions from DECL_INITIAL.
8677         (fold_const_aggregate_ref): Likewise from constructor elements.
8678
8679 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
8680
8681         * tree-affine.h (aff_combination_expand): Declare.
8682         (get_inner_reference_aff): Likewise.
8683         * tree-affine.c (aff_combination_expand): Split out from
8684         tree_to_aff_combination_expand.
8685         (get_inner_reference_aff): New function.
8686         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
8687         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
8688         (struct lim_aux_data): sm_done field removed.
8689         (mem_ref_loc_p, mem_ref_locs_p): New types.
8690         (struct mem_ref): Added id, stored, accesses_in_loop,
8691         indep_loop, dep_loop, indep_ref, dep_ref fields.
8692         Removed is_stored, locs and next fields.
8693         (memory_accesses): New variable.
8694         (movement_possibility): Do not allow moving statements
8695         that store to memory.
8696         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
8697         New functions.
8698         (determine_max_movement): For statements with memory references,
8699         find the outermost loop in that the reference is independent.
8700         (move_computations_stmt): Mark the virtual operands for renaming.
8701         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
8702         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
8703         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
8704         add_vop_ref_mapping, create_vop_ref_mapping_loop,
8705         create_vop_ref_mapping, analyze_memory_references,
8706         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
8707         get_all_locs_in_loop, ref_always_accessed_p,
8708         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
8709         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
8710         store_motion_loop, store_motion): New functions.
8711         (struct vop_to_refs_elt): New type.
8712         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
8713         memref_hash, memref_eq, hoist_memory_references): Rewritten.
8714         (schedule_sm): Replaced by...
8715         (execute_sm): ... this.
8716         (determine_lsm_ref, hoist_memory_references,
8717         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
8718         find_more_ref_vops, free_mem_ref, free_mem_refs,
8719         determine_lsm_loop, determine_lsm): Removed.
8720         (tree_ssa_lim_finalize): Free data structures used by store motion.
8721         (tree_ssa_lim): Call analyze_memory_references.  Use
8722         store_motion instead of determine_lsm.
8723
8724 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8725
8726         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
8727         rename tmake_file to m68hc11/t-m68hc11.
8728         (mcore): Set inhibit_libc to true.
8729         * config.host (alpha*-dec-*vms*): Set extra_programs.
8730         (interix3*): Don't use host_xmake_file.
8731         * configure.ac: Let config.gcc override inhibit_libc.
8732         * configure: Regenerate.
8733
8734         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
8735         * config/t-openbsd-thread: Remove commented out lines.
8736         
8737         * config/x-interix: Remove.
8738
8739         * config/m68hc11/t-m68hc11-gas: Rename to...
8740         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
8741
8742         * config/mcore/t-mcore: Remove T_CFLAGS.
8743         * config/mcore/t-mcore-pe: Likewise.
8744
8745 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8746
8747         * configure.ac: Replace custom __GNU_SOURCE test with
8748         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
8749         * aclocal.m4: Regenerate.
8750         * configure: Regenerate.
8751         * config.in: Regenerate.
8752
8753 2008-03-27  Richard Guenther  <rguenther@suse.de>
8754
8755         * fold-const.c (target.h): Include.
8756         (fold_comparison): Fold comparison of addresses of decls
8757         that bind locally or of constants.  Consolidate address folding code.
8758         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
8759         results from fold_binary_to_constant.
8760         (compare_values_warnv): Likewise.
8761
8762 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
8763
8764         PR middle-end/35429
8765         * fold-const.c (fold_truthop): Check for integeral types when folding
8766         a == 0 && b == 0 and a != 0 || b != 0 .
8767
8768 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8769
8770         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
8771
8772 2008-03-26  Andreas Schwab  <schwab@suse.de>
8773
8774         * doc/invoke.texi: Fix use of @item vs. @itemx.
8775
8776 2008-03-26  Tom Tromey  <tromey@redhat.com>
8777
8778         * Makefile.in (build/gensupport.o, build/print-rtl.o,
8779         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
8780         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
8781         build/gencodes.o, build/genconditions.o, build/genconfig.o,
8782         build/genconstants.o, build/genemit.o, build/genextract.o,
8783         build/genflags.o, build/genmddeps.o, build/genopinit.o,
8784         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
8785         options.h.
8786
8787 2008-03-26  Richard Guenther  <rguenther@suse.de>
8788
8789         Revert
8790         2008-03-26  Richard Guenther  <rguenther@suse.de>
8791
8792         * fold-const.c (target.h): Include.
8793         (fold_comparison): Fold comparison of addresses of two decls
8794         that bind locally.  Consolidate address folding code.
8795
8796 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8797
8798         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
8799         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
8800         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
8801         dconstsqrt2, dconstthird, dconste and/or dconst10.
8802         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
8803         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
8804         dconstsqrt2, dconste): Delete.
8805         (init_emit_once): Likewise.  Simplify initializing dconstm1.
8806         Constify variable.
8807         * real.c (get_real_const): New.
8808         * real.h (dconst3, dconst10, dconstm2, dconstthird,
8809         dconstsqrt2, dconste): Delete.
8810         (real_value_const, get_real_const): New.
8811
8812 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
8813
8814         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
8815
8816         * config/i386/i386.c (ix86_function_arg_boundary): Check
8817         BIGGEST_ALIGNMENT instead of 128.
8818         (setup_incoming_varargs_64): Likewise.
8819
8820 2008-03-26  Tom Tromey  <tromey@redhat.com>
8821
8822         * Makefile.in (DEPFILES): Add missing '/'.
8823
8824 2008-03-26  Richard Guenther  <rguenther@suse.de>
8825
8826         * fold-const.c (target.h): Include.
8827         (fold_comparison): Fold comparison of addresses of two decls
8828         that bind locally.  Consolidate address folding code.
8829
8830 2008-03-26  Nick Clifton  <nickc@redhat.com>
8831
8832         PR target/31232
8833         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
8834         not allow INT+INT as a legitimate addressing mode.
8835
8836 2008-03-26  Richard Guenther  <rguenther@suse.de>
8837
8838         * tree-flow.h (widen_bitfield): Remove declaration.
8839         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
8840         (widen_bitfield): Remove function.
8841         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
8842         code.
8843
8844 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8845
8846         PR target/31558
8847         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
8848         error_mark_node's.
8849
8850 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8851
8852         PR rtl-optimization/35232
8853         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
8854         (forget_old_reloads_1, forget_marked_reloads): Don't clear
8855         reg_reloaded_call_part_clobbered here.
8856         (reload_regs_reach_end_p): New function.
8857         (reload_reg_rtx_for_input): New variable.
8858         (reload_reg_rtx_for_output): Likewise.
8859         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
8860         when reassigning a pseudo register.  Load reloadreg from 
8861         reload_reg_rtx_for_input, moving the mode and register
8862         calculation to...
8863         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
8864         instead of the original when deciding whether an input reload
8865         would be a no-op or whether an output reload can be deleted.
8866         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
8867         when setting up new_spill_reg_store.  Load it from
8868         reload_reg_rtx_for_output, moving the mode and register
8869         calculation to...
8870         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
8871         instead of the original when deciding whether an output reload
8872         would be a no-op.  Do the same when modifying insn notes.
8873         Use rtx_equal_p instead of == to compare the registers.
8874         (inherit_piecemeal_p): Take a mode and two register numbers
8875         as argument.
8876         (emit_reload_insns): Clear new_spill_reg_store for every hard
8877         register in the reload register.  Remove spill registers
8878         from reg_reloaded_valid before considering whether to record
8879         inheritance information for them.  Use reload_reg_rtx_for_output
8880         instead of reg_rtx when recording output reloads.  Use
8881         reload_reg_rtx_for_input instead of reg_rtx when recording
8882         input reloads.  Set or clear reg_reloaded_call_part_clobbered
8883         at the same time as setting reg_reloaded_valid.
8884         (delete_output_reload): Add a new_reload_reg parameter and use it
8885         instead of rld[j].reg_rtx.
8886         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
8887         calls accordingly.
8888
8889 2008-03-25  Tom Tromey  <tromey@redhat.com>
8890
8891         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
8892         (build/genattr.o): Likewise.
8893         (build/genattrtab.o): Likewise.
8894         (build/gencodes.o): Likewise.
8895         (build/genconfig.o): Likewise.
8896         (build/genconstants.o): Likewise.
8897         (build/genemit.o): Likewise.
8898         (build/genextract.o): Likewise.
8899         (build/genflags.o): Likewise.
8900
8901 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
8902         
8903         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
8904         instead of size_int for integer types.
8905         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
8906         to match type of MINUS_EXPR.
8907         
8908 2008-03-25  Tom Tromey  <tromey@redhat.com>
8909
8910         * configure: Rebuilt.
8911         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
8912         Makefile.
8913
8914 2008-03-25  Tom Tromey  <tromey@redhat.com>
8915
8916         * config/x-solaris (host-solaris.o): Update.
8917         * config/x-linux (host-linux.o): Update.
8918         * config/x-hpux (host-hpux.o): Update.
8919         * config/x-darwin (host-darwin.o): Update.
8920         * config/v850/t-v850e (v850-c.o): Update.
8921         * config/v850/t-v850 (v850-c.o): Update.
8922         * config/t-vxworks (vxworks.o): Update.
8923         * config/t-sol2 (sol2-c.o, sol2.o): Update.
8924         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
8925         * config/spu/t-spu-elf (spu-c.o): Update.
8926         (spu.o): Remove.
8927         * config/sh/t-symbian (sh-c.o): Update.
8928         (symbian.o): Update.
8929         * config/sh/t-sh (sh-c.o): Update.
8930         * config/score/t-score-elf (score7.o, score3.o): Update.
8931         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
8932         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
8933         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
8934         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
8935         (rs6000.o): Remove.
8936         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
8937         * config/m32c/t-m32c (m32c-pragma.o): Update.
8938         * config/ia64/t-ia64 (ia64-c.o): Update.
8939         * config/i386/x-mingw32 (host-mingw32.o): Update.
8940         * config/i386/x-i386 (driver-i386.o): Update.
8941         * config/i386/x-darwin (host-i386-darwin.o): Update.
8942         * config/i386/x-cygwin (host-cygwin.o): Update.
8943         * config/i386/t-nwld (nwld.o): Update.
8944         * config/i386/t-netware (netware.o): Update.
8945         * config/i386/t-interix (winnt.o): Update.
8946         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
8947         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
8948         msformat-c.o): Update.
8949         * config/bfin/t-bfin-linux (generated_files): Add
8950         linux-sysroot-suffix.h.
8951         * config/arm/t-wince-pe (pe.o): Update.
8952         * config/arm/t-strongarm-pe (pe.o): Update.
8953         * config/arm/t-pe (pe.o): Update.
8954         * config/arm/t-arm (arm-c.o): Update.
8955         * doc/install.texi (Prerequisites): Require make 3.80.
8956         * Makefile.in: Remove .o targets.
8957         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
8958         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
8959         (simple_generated_h, simple_generated_c): Move earlier.
8960         (generated_files): New variable.
8961         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
8962         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
8963         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
8964         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
8965         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
8966         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
8967         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
8968         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
8969         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
8970         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
8971         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
8972         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
8973         (.c.o): Remove.
8974         (COMPILE.base, COMPILE): New variables.
8975         (%.o): New pattern rule.
8976         (ALL_HOST_OBJS): New variable.
8977         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
8978         (dummy-checksum.o, cc1-checksum.o): Remove.
8979         (DRIVER_SHLIB): New variable.
8980         (DRIVER_DEFINES): Use it.
8981         (gencondmd.c): Move out of build/.
8982         (s-conditions): Update.
8983         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
8984         (ALL_BUILD_OBJS): Likewise.
8985         (build/%.o): Use BUILDCOMPILE.
8986         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
8987         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
8988         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
8989         build/gencheck.o, build/gencodes.o, build/genconditions.o,
8990         build/genconfig.o, build/genconstants.o, build/genemit.o,
8991         build/genextract.o, build/genflags.o, build/genmddeps.o,
8992         build/genopinit.o, build/genoutput.o, build/genpeep.o,
8993         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
8994         build/gen-protos.o, build/scan.o, build/fix-header.o,
8995         build/scan-decls.o): Simplify.
8996         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
8997         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
8998         prefix.o, toplev.o): Reduce to variable setting.
8999         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
9000         ($(out_object_file), gcc-options.o): New targets.
9001         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
9002         * configure: Rebuilt.
9003         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
9004         * doc/sourcebuild.texi (Front End Directory): Document new variable.
9005
9006 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
9007
9008         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
9009         complain when we hit an error, return ERROR_MARK_NODE.
9010
9011 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
9012
9013         * config/sh/constraints.md (Pso, Psz): New constraints.
9014         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
9015         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
9016
9017 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
9018
9019         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
9020         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
9021
9022 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
9023
9024         * config/sh/sh.md (prefetch): Add condition for SH2A target.
9025         (prefetch_sh2a): New.   
9026
9027 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
9028             Naveen.H.S  <naveen.hs@kpitcummins.com>
9029
9030         * config/sh/constraints.md (I28): New constraint.
9031         * config/sh/sh.c (broken_move): Add support for movi20s.
9032         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
9033
9034 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
9035             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
9036             Naveen.H.S  <naveen.hs@kpitcummins.com>
9037
9038         * config/sh/sh.c (SH_ATTRIBUTES): Define.
9039         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
9040         (print_operand): Handle resbank in %@ operand code.
9041         (sh_encode_section_info): New.
9042         (push_regs): Add conditions for resbank.
9043         (sh_expand_epilogue): Likewise.
9044         (sh_insert_attributes): Likewise.
9045         (sh_attribute_table): Likewise.
9046         (sh_handle_resbank_handler_attribute): New.
9047         (sh2a_handle_function_vector_handler_attribute): New.
9048         (sh2a_is_function_vector_call): New.
9049         (sh2a_get_function_vector_number): New.
9050         (sh2a_function_vector_p): New.
9051         (sh_cfun_resbank_handler_p): New.
9052         * config/sh/sh.md (calli): Emit jsr/n if possible.
9053         (calli_tbr_rel): New.
9054         (calli_pcrel): Emit jsr/n if possible.
9055         (return_i): Emit rts/n if possible.
9056         (call_valuei_tbr_rel): New.
9057         (call_valuei_pcrel): Add condition for SH2A target.
9058         (call_value): Likewise.
9059         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
9060         (sh2a_get_function_vector_number): Likewise.
9061         (sh2a_is_function_vector_call): Likewise.
9062         * doc/extend.texi: Document TBR relative addressing of SH2A.
9063         (resbank): Add description for SH2A.
9064
9065 2008-03-24  Richard Guenther  <rguenther@suse.de>
9066
9067         PR c/22371
9068         * gimplify.c (gimplify_modify_expr): For frontend type-correct
9069         pointer assignments change conversions according to middle-end rules.
9070         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
9071         * configure.ac: Include type checking in yes.
9072         * configure: Regenerate.
9073
9074 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9075
9076         * diagnostic.c (diagnostic_count_diagnostic): Delete.
9077         (diagnostic_report_diagnostic): Update. Handle ICEs here.
9078         
9079 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
9080
9081         * gthr-vxworks.h (UNUSED): Define.
9082
9083 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
9084
9085         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
9086
9087 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
9088
9089         * doc/extend.texi (Function Attributes): Add missing comma in the
9090         example of the "alloc_size" attribute.
9091         
9092 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
9093
9094         Revert:
9095         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
9096
9097         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9098         32bit host.
9099
9100         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
9101
9102         PR target/35496
9103         * stor-layout.c (update_alignment_for_field): Set minimum alignment
9104         of the underlying type of a MS bitfield layout to the natural
9105         alignment of the type.
9106
9107         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
9108
9109         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
9110         to their natural alignment to avoid store forwarding stalls.
9111
9112 2008-03-22  Richard Guenther  <rguenther@suse.de>
9113
9114         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
9115         For PHI nodes verify the address is invariant.
9116         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
9117         (get_symbol_constant_value): Use is_gimple_min_invariant.
9118         (maybe_fold_stmt_indirect): Likewise.
9119
9120 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
9121
9122         PR rtl-optimization/33927
9123         * Makefile.in (dse.o): Depend on $(TM_P_H).
9124         * expr.h (extract_low_bits): Declare.
9125         * expmed.c (extract_low_bits): New function.
9126         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
9127         * dse.c: Include tm_p.h.
9128         (find_shift_sequence): Remove the read_reg argument and return the
9129         read value.  Emit the instructions instead of returning them.
9130         Iterate on new_mode rather than calculating it each time.
9131         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
9132         source to NEW_MODE and extract_low_bits to convert the shifted
9133         value to READ_MODE.
9134         (replace_read): Allow the load and store to have different mode
9135         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
9136         or extraction instructions before trying the replacement.  Update
9137         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
9138
9139 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
9140
9141         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
9142         to their natural alignment to avoid store forwarding stalls.
9143
9144 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9145
9146         PR target/27946
9147         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
9148         encouraging but not allowing gprs for input;
9149         change the input constraint to !f#r.
9150         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
9151         gprs for output;
9152         change the output constraint to !f#r.
9153
9154 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
9155
9156         PR target/13958
9157         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
9158         corresponding post-reload splitters.
9159         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
9160         when x87 FP math is selected.
9161         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
9162         New function prototype.
9163         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
9164         unreachable function to ease macroization of insn patterns.
9165
9166 2008-03-21  Martin Jambor  <mjambor@suse.cz>
9167
9168         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
9169         reference dumps if ddr is NULL or dependence is unknown.
9170
9171 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9172
9173         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
9174         unsigned extension into account.
9175         (ATOMIC_COMPARE_AND_SWAP): Likewise.
9176         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
9177         Do computations on a scratch register.
9178
9179 2008-03-21  Richard Guenther  <rguenther@suse.de>
9180
9181         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9182         Use is_gimple_min_invariant instead of TREE_INVARIANT.
9183         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
9184         * tree-ssa-dom.c (record_equality): Likewise.
9185         * tree-inline.c (copy_body_r): Likewise.
9186         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
9187         TREE_INVARIANT.
9188
9189 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9190
9191         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
9192         as 'delete_unused' argument.
9193
9194 2008-03-20  Richard Guenther  <rguenther@suse.de>
9195
9196         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
9197         special casing of constant qualifiers.
9198         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
9199         care about them in general.
9200         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
9201         regardless of their type.
9202         (fold_stmt_r): Forcefully fold *& if we end up with that.
9203
9204 2008-03-20  Paul Brook  <paul@codesourcery.com>
9205
9206         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
9207         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
9208         linker flags.
9209         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
9210         definition.
9211         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
9212         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
9213
9214 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
9215
9216         * common.opt (Wmudflap): New option.
9217         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
9218         (mx_register_decls): Likewise.
9219         (mudflap_finish_file): Likewise.
9220         * doc/invoke.texi: Document -Wno-mudflap.
9221
9222 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
9223
9224         * c-format.c (replace_format_name_to_system_name): New.
9225         (cmp_attribs): New.
9226         (convert_format_name_to_system_name): New.
9227         (decode_format_attr): Add use of convert_format_name_to_system_name.
9228         (format_types_orig): Add gnu_ prefix to names.
9229         (check_format_info_main): Special treating of \0 escaped names for
9230         supporting multi-character format specifiers as I32, I64.
9231         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
9232         (gnu_target_overrides_format_attributes): New.
9233         * c-format.h: Add structure target_ovr_attr to hold
9234         system specific formatter names.
9235         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
9236         msformat-c.o file to c_target_objs and cxx_target_objs.
9237         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
9238         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
9239         (TARGET_N_FORMAT_TYPES): New.
9240         * config/i386/msformat-c.c: New.
9241         * config/i386/t-cygming: Add build rule for msformat-c.o.
9242         * doc/extend.texi: Add new format names gnu_* and ms_* and
9243         further details.
9244         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
9245
9246 2008-03-20  Ira Rosen  <irar@il.ibm.com>
9247
9248         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
9249         optimizations turned on under -O3.
9250         (ftree-vectorize): Add that the flag is turned on with -O3.
9251
9252 2008-03-20  Ben Elliston  <bje@au.ibm.com>
9253
9254         * regmove.c (try_auto_increment): Fix spelling error in comment.
9255         * final.c (final_scan_insn): Likewise.
9256
9257 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
9258
9259         PR target/14552
9260         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
9261         allocator preferences for "y" and "r" class registers.
9262         ("*mov<mode>_internal"): Ditto.
9263         ("*movv2sf_internal_rex64"): Ditto.
9264         ("*movv2sf_internal"): Ditto.
9265
9266 2008-03-19  Michael Matz  <matz@suse.de>
9267
9268         PR middle-end/35616
9269         * calls.c (expand_call): Check overlap of arguments with call
9270         address for sibcalls.
9271
9272 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
9273
9274         PR target/35496
9275         * stor-layout.c (update_alignment_for_field): Set minimum alignment
9276         of the underlying type of a MS bitfield layout to the natural
9277         alignment of the type.
9278
9279 2008-03-19  Jan Hubicka  <jh@suse.cz>
9280
9281         PR other/35094
9282         * toplev.c (decode_d_option): Handle all CPP flags.
9283         * tree-vrp.c: Update tree_pass descriptors.
9284         * regrename.c: Update tree_pass descriptors.
9285         * fwprop.c: Update tree_pass descriptors.
9286         * doc/invoke.texi: Remove documentation of dropped -d? flags.
9287         * tree-into-ssa.c: Update tree_pass descriptors.
9288         * tree-dump.c: Update tree_pass descriptors.
9289         * tree-complex.c: Update tree_pass descriptors.
9290         * tree-dump.h: Update tree_pass descriptors.
9291         * see.c: Update tree_pass descriptors.
9292         * cgraphbuild.c: Update tree_pass descriptors.
9293         * tracer.c: Update tree_pass descriptors.
9294         * tree-loop-distribution.c: Update tree_pass descriptors.
9295         * cgraph.c: Update tree_pass descriptors.
9296         * postreload-gcse.c: Update tree_pass descriptors.
9297         * postreload.c: Update tree_pass descriptors.
9298         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
9299         * tree-tailcall.c: Update tree_pass descriptors.
9300         * tree-pass.h (tree_opt_pass): Rename to ...
9301         (opt_pass) ... this one; add "type" field and remove letter field.
9302         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
9303         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
9304         all_lowering_passes): Update declaration.
9305         * ipa-cp.c: Update tree_pass descriptors.
9306         * final.c: Update tree_pass descriptors.
9307         * omp-low.c: Update tree_pass descriptors.
9308         * tree-ssa-dse.c: Update tree_pass descriptors.
9309         * ipa-reference.c: Update tree_pass descriptors.
9310         * tree-ssa-uncprop.c: Update tree_pass descriptors.
9311         * auto-inc-dec.c: Update tree_pass descriptors.
9312         * reorg.c: Update tree_pass descriptors.
9313         * cgraphunit.c: Update tree_pass descriptors.
9314         * tree-ssa-copyrename.c: Update tree_pass descriptors.
9315         * tree-ssa-ccp.c: Update tree_pass descriptors.
9316         * df-core.c: Update tree_pass descriptors.
9317         * mode-switching.c: Update tree_pass descriptors.
9318         * tree-nomudflap.c: Update tree_pass descriptors.
9319         * modulo-sched.c: Update tree_pass descriptors.
9320         * ipa-pure-const.c: Update tree_pass descriptors.
9321         * cse.c: Update tree_pass descriptors.
9322         * web.c: Update tree_pass descriptors.
9323         * tree-stdarg.c: Update tree_pass descriptors.
9324         * tree-ssa-math-opts.c: Update tree_pass descriptors.
9325         * tree-ssa-dom.c: Update tree_pass descriptors.
9326         * tree-nrv.c: Update tree_pass descriptors.
9327         * tree-ssa-alias.c: Update tree_pass descriptors.
9328         * loop-init.c: Update tree_pass descriptors.
9329         * gimple-low.c: Update tree_pass descriptors.
9330         * ipa-inline.c: Update tree_pass descriptors.
9331         * tree-ssa-sink.c: Update tree_pass descriptors.
9332         * global.c: Update tree_pass descriptors.
9333         * ifcvt.c: Update tree_pass descriptors.
9334         * jump.c: Update tree_pass descriptors.
9335         * predict.c: Update tree_pass descriptors.
9336         * tree-ssa-loop.c: Update tree_pass descriptors.
9337         * recog.c: Update tree_pass descriptors.
9338         * dse.c: Update tree_pass descriptors.
9339         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
9340         * tree-eh.c: Update tree_pass descriptors.
9341         * regmove.c: Update tree_pass descriptors.
9342         * local-alloc.c
9343         * function.c: Update tree_pass descriptors.
9344         * tree-vectorizer.c: Update tree_pass descriptors.
9345         * gcse.c: Update tree_pass descriptors.
9346         * ipa-type-escape.c: Update tree_pass descriptors.
9347         * tree-if-conv.c: Update tree_pass descriptors.
9348         * init-regs.c: Update tree_pass descriptors.
9349         * ipa.c: Update tree_pass descriptors.
9350         * tree-ssa-phiopt.c: Update tree_pass descriptors.
9351         * rtl-factoring.c: Update tree_pass descriptors.
9352         * lower-subreg.c: Update tree_pass descriptors.
9353         * bt-load.c: Update tree_pass descriptors.
9354         * tree-dfa.c: Update tree_pass descriptors.
9355         * except.c: Update tree_pass descriptors.
9356         * emit-rtl.c: Update tree_pass descriptors.
9357         * cfgexpand.c: Update tree_pass descriptors.
9358         * tree-cfgcleanup.c: Update tree_pass descriptors.
9359         * cfgcleanup.c: Update tree_pass descriptors.
9360         * tree-ssa-pre.c: Update tree_pass descriptors.
9361         * tree-sra.c: Update tree_pass descriptors.
9362         * tree-mudflap.c: Update tree_pass descriptors.
9363         * tree-ssa-copy.c: Update tree_pass descriptors.
9364         * cfglayout.c: Update tree_pass descriptors.
9365         * tree-ssa-forwprop.c: Update tree_pass descriptors.
9366         * tree-ssa-dce.c: Update tree_pass descriptors.
9367         * tree-ssa.c: Update tree_pass descriptors.
9368         * regclass.c: Update tree_pass descriptors.
9369         * integrate.c: Update tree_pass descriptors.
9370         * tree-optimize.c: Update tree_pass descriptors.
9371         * tree-ssa-phiprop.c: Update tree_pass descriptors.
9372         * tree-object-size.c: Update tree_pass descriptors.
9373         * combine.c: Update tree_pass descriptors.
9374         * tree-outof-ssa.c: Update tree_pass descriptors.
9375         * bb-reorder.c: Update tree_pass descriptors.
9376         * stack-ptr-mod.c: Update tree_pass descriptors.
9377         * var-tracking.c: Update tree_pass descriptors.
9378         * tree-profile.c: Update tree_pass descriptors.
9379         * tree-vect-generic.c: Update tree_pass descriptors.
9380         * reg-stack.c: Update tree_pass descriptors.
9381         * sched-rgn.c: Update tree_pass descriptors.
9382         * tree-ssa-structalias.c: Update tree_pass descriptors.
9383         * tree-cfg.c: Update tree_pass descriptors.
9384         * passes.c (current_pass): Update declaration.
9385         (finish_optimization_passes): Update.
9386         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
9387         (register_one_dump_file, register_dump_files_1, next_pass_1):
9388         Update arguments.
9389         (init_optimization_passes): Update handling of new types.
9390         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
9391         * ipa-struct-reorg.c: Update tree_pass descriptors.
9392         * tree-ssa-reassoc.c: Update tree_pass descriptors.
9393         * combine-stack-adj.c: Update tree_pass descriptors.
9394         * cfgrtl.c: Update tree_pass descriptors.
9395         * dce.c: Update tree_pass descriptors.
9396         * tree-ssanames.c: Update tree_pass descriptors.
9397
9398 2008-03-19  Richard Guenther  <rguenther@suse.de>
9399
9400         PR middle-end/35609
9401         * tree-ssa.c (walk_data): New structure.
9402         (warn_uninitialized_var): If not always_executed warn with "maybe"
9403         instead of "is".
9404         (execute_early_warn_uninitialized): Compute post-dominators.
9405         Initialize always_executed before processing each basic block.
9406
9407 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
9408
9409         PR target/35504
9410         * config/i386/i386.c (x86_this_parameter): Calculate correct location
9411         of "this" pointer when "regparm = N" or "fastcall" is in effect.
9412
9413 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9414
9415         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
9416
9417 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
9418
9419         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
9420         is true.
9421         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
9422         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
9423         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
9424         target after ignore has been set, and move there also the commputation
9425         of subtarget and original_target.
9426         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
9427         (LANG_HOOKS_INITIALIZER): Remove it.
9428         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
9429
9430 2008-03-18  Richard Guenther  <rguenther@suse.de>
9431
9432         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
9433         found an expression with constants, note that in the VN for the lhs.
9434         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
9435         fold them to constants if possible.  Run cleanup_cfg if done so.
9436         (execute_pre): Return todo.
9437         (do_pre): Likewise.
9438         (execute_fre): Likewise.
9439         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
9440         of constants.
9441         (get_prop_source_stmt): Look through pointer conversions.
9442
9443 2008-03-18  Jan Hubicka  <jh@suse.cz>
9444
9445         * tree-pretty-print.c: Include predict.h.
9446         (dump_generic_node): Dump predictor.
9447         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
9448         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
9449         * gimple-low.c (lower_stmt): Likewise.
9450         * expr.c (expand_expr_real): Likewise.
9451         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
9452         them.
9453         (build_predict_expr, build_predict_expr): New.
9454         * predict.h (predictor_name, build_predict_expr): Update.
9455         * c-typeck.c (c_finish_bc_stmt): Add prediction.
9456         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
9457         * predict.def (PRED_CONTINUE): Update hitrate.
9458         * tree.def (PREDICT_EXPR): Define.
9459         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
9460         do not handle BIND_EXPR.
9461         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
9462         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
9463         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
9464         operands.
9465
9466 2008-03-18  Michael Matz  <matz@suse.de>
9467
9468         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
9469
9470 2008-03-18  Richard Guenther  <rguenther@suse.de>
9471
9472         * tree-gimple.h (is_gimple_invariant_address): Declare.
9473         (is_gimple_constant): Likewise.
9474         * tree-gimple.c (is_gimple_constant): New function.
9475         (is_gimple_invariant_address): Likewise.
9476         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
9477         and is_gimple_invariant_address.
9478         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
9479         previous change.
9480         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
9481         an addressable base.
9482
9483 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
9484
9485         PR middle-end/35611
9486         * gimplify.c (gimplify_expr): Gimplify second operand of
9487         OMP_ATOMIC_LOAD.
9488
9489 2008-03-17  Richard Guenther  <rguenther@suse.de>
9490
9491         PR tree-optimization/19637
9492         * fold-const.c (fold_unary): Remove restrictions of removing
9493         intermediate pointer-conversions (P2)(P1)P0.
9494         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
9495         conversion to void pointer.
9496         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
9497
9498 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
9499
9500         PR debug/31510
9501         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
9502         emulated thread local variables.
9503
9504 2008-03-16  Richard Guenther  <rguenther@suse.de>
9505
9506         PR middle-end/35607
9507         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
9508         expand TREE_INVARIANT operations that are not gimple invariant.
9509
9510 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
9511
9512         * doc/extend.texi (Alignment): Say that the ABI controls
9513         the __alignof__ for non-strict-alignment targets rather
9514         than being a recommendation.
9515
9516 2008-03-15  Paul Brook  <paul@codesourcery.com>
9517
9518         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
9519         annotations.
9520         (arm_output_fn_unwind): Mark functions that can not be unwound.
9521
9522 2008-03-15  Paul Brook  <paul@codesourcery.com>
9523
9524         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
9525         extension instructions.
9526
9527 2008-03-15  Richard Guenther  <rguenther@suse.de>
9528
9529         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
9530         and fold constant aggregate refs.
9531         (fold_const_aggregate_ref): Handle string constants
9532         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
9533         (evaluate_stmt): Simplify now that ccp_fold folds constant
9534         aggregate refs.
9535
9536 2008-03-15  Paul Brook  <paul@codesourcery.com>
9537
9538         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
9539         (extzv): Use gen_extzv_t2.
9540         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
9541
9542 2008-03-15  Richard Guenther  <rguenther@suse.de>
9543
9544         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
9545         (fold_const_aggregate_ref): Likewise.
9546         (get_value): Return NULL if we don't have any values.
9547         (ccp_finalize): Set const_val to NULL after freeing it.
9548         * tree-flow.h (get_symbol_constant_value): Declare.
9549         (fold_const_aggregate_ref): Likewise.
9550         * tree-ssa-sccvn.c (try_to_simplify): Use them.
9551
9552 2008-03-15  Richard Guenther  <rguenther@suse.de>
9553
9554         PR middle-end/35593
9555         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
9556         to not produce negative array indices if not allowed.  Add
9557         parameter to indicate that.
9558         (maybe_fold_offset_to_component_ref): Allow negative array
9559         indices only for the first member of a structure.
9560         (maybe_fold_offset_to_reference): Allow negative array indices.
9561         (maybe_fold_stmt_addition): Likewise.
9562
9563 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
9564             Anatoly Sokolov <aesok@post.ru>
9565
9566         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
9567         (avr_arch): Add ARCH_AVR6.
9568         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
9569         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
9570         instead of fixed value 2.
9571         (print_operand_address): Use gs() asm specifier instead of pm().
9572         (avr_assemble_integer): (Ditto.).
9573         (avr_output_addr_vec_elt): (Ditto.).
9574         (print_operand): Handle "!" code.
9575         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
9576         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
9577         (AVR_HAVE_EIJMP_EICALL): Define.
9578         (AVR_3_BYTE_PC): Redefine.
9579         (AVR_2_BYTE_PC): (Ditto.).
9580         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
9581         (LINK_SPEC): Add atmega2560 and atmega2561.
9582         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
9583         (crtm2561.o).
9584         * config/avr/avr.md (call_insn): Use eicall instead of icall 
9585         for 3 byte PC devices.
9586         (call_value_insn): (Ditto.).
9587         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
9588         (indirect_jump): Use only for for 2 byte PC devices.
9589         (*tablejump): (Ditto.).
9590         (*indirect_jump_avr6): Add insn.
9591         (*tablejump_rjmp): Don't use for 3 byte PC devices.
9592         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
9593         instead of ijmp for 3 byte PC devices.
9594         (__tablejump2__): (Ditto.).
9595         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
9596         (MULITLIB_DIRNAMES): (Ditto.). 
9597         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
9598
9599 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
9600
9601         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
9602         "sse2_umulsidi3".  Use V1DI mode for operand 0.
9603         ("mmx_psadbw"): Use V1DI mode for operand 0.
9604         * config/i386/i386-modes.def (V1SI): New vector mode.
9605         * config/i386/i386.c (struct builtin_description)
9606         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
9607         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
9608         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
9609         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
9610         v1di_ftype_v8qi_v8qi type.
9611         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
9612
9613         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
9614         __builtin_ia32_pmuludq]: Fix the mode of return value.
9615
9616 2008-03-15  Richard Guenther  <rguenther@suse.de>
9617
9618         PR middle-end/35595
9619         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
9620         being a PHI_NODE.
9621
9622 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
9623         
9624         * doc/invoke.texi (Option Summary, Xtensa Options): Document
9625         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
9626         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
9627         unless TARGET_SERIALIZE_VOLATILE is enabled.
9628         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
9629         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
9630         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
9631
9632 2008-03-14  Richard Guenther  <rguenther@suse.de>
9633
9634         PR tree-optimization/34172
9635         * tree-flow.h (refs_may_alias_p): Declare.
9636         (get_single_def_stmt): Likewise.
9637         (get_single_def_stmt_from_phi): Likewise.
9638         (get_single_def_stmt_with_phi): Likewise.
9639         * tree-dfa.c (refs_may_alias_p): New function.
9640         (get_single_def_stmt): Likewise.
9641         (get_single_def_stmt_from_phi): Likewise.
9642         (get_single_def_stmt_with_phi): Likewise.
9643         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
9644         (vn_reference_lookup_1): New helper function.
9645         (vn_reference_lookup): Walk the virtual use-def chain to
9646         continue searching for a match if the def does not alias the
9647         reference we are looking for.
9648
9649 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
9650
9651         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
9652         archive and Perzl.  Update The Written Word listing.
9653
9654 2008-03-14  Richard Guenther  <rguenther@suse.de>
9655
9656         PR tree-optimization/34043
9657         PR tree-optimization/33989
9658         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
9659         when doing FRE.
9660         (bitmap_find_leader): Use extra argument to verify dominance
9661         relationship inside a basic-block.
9662         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
9663         (find_leader_in_sets): Adjust.
9664         (create_component_ref_by_pieces): Take extra argument for
9665         dominance check, handle lookup failures.
9666         (find_or_generate_expression): Likewise.
9667         (create_expression_by_pieces): Likewise.
9668         (insert_into_preds_of_block): Adjust.
9669         (create_value_expr_from): If asked for, verify all operands
9670         are in the blocks AVAIL_OUT set.
9671         (make_values_for_stmt): Check for SSA_NAMEs that are life
9672         over an abnormal edge.
9673         (compute_avail): Remove such check.
9674         (do_SCCVN_insertion): New function.
9675         (eliminate): If we do not find a leader suitable for replacement
9676         insert a replacement expression from SCCVN if available.
9677         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
9678         (struct vn_ssa_aux): Add needs_insertion flag.
9679         * tree-ssa-sccvn.c (may_insert): New global flag.
9680         (copy_reference_ops_from_ref): Value-number union member access
9681         based on its size, not type and member if insertion is allowed.
9682         (visit_reference_op_load): For a weak match from union type
9683         punning lookup a view-converted value and insert a SSA_NAME
9684         for that value if that is not found.
9685         (visit_use): Make dumps shorter.  Do not disallow value numbering
9686         SSA_NAMEs that are life over an abnormal edge to constants.
9687         (free_scc_vn): Release inserted SSA_NAMEs.
9688         (run_scc_vn): New flag to specify whether insertion is allowed.
9689         Process SSA_NAMEs in forward order.
9690         * tree-ssa-loop-im.c (for_each_index): Handle invariant
9691         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
9692         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
9693         pointer type to/from integral types that do not change the
9694         precision to regular conversions.
9695
9696 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9697
9698         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9699         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9700         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
9701         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
9702         input arguments and the mode of return value.  Built-in functions
9703         that operate on whole 64-bit MMX register now use V1DI mode.
9704
9705 2008-03-13  Alon Dayan  <alond@il.ibm.com>
9706             Olga Golovanevsky  <olga@il.ibm.com>
9707
9708         PR tree-optimization/35041
9709         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
9710         to locate the right position in a statement.
9711
9712 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9713
9714         PR target/34000
9715         PR target/35553
9716         * config/i386/xmmintrin.h:  Change all static inline functions to
9717         extern inline and add __gnu_inline__ attribute.
9718         * config/i386/bmintrin.h: Ditto.
9719         * config/i386/smmintrin.h: Ditto.
9720         * config/i386/tmmintrin.h: Ditto.
9721         * config/i386/mmintrin-common.h: Ditto.
9722         * config/i386/ammintrin.h: Ditto.
9723         * config/i386/emmintrin.h: Ditto.
9724         * config/i386/pmmintrin.h: Ditto.
9725         * config/i386/mmintrin.h: Ditto.
9726         * config/i386/mm3dnow.h: Ditto.
9727
9728 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
9729
9730         PR middle-end/35185
9731         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
9732         (lower_omp_2): New function.
9733         (lower_omp_1, lower_omp): Rewritten.
9734
9735 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
9736
9737         PR 35054
9738         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
9739         with the phrase "Microsoft Windows compilers".
9740         (Push/Pop Macro Pragmas): New subsection. Document
9741         #pragma push_macro and pragma pop_macro.
9742
9743 2008-03-12  Paul Brook  <paul@codesourcery.com>
9744
9745         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
9746
9747 2008-03-12  Paul Brook  <paul@codesourcery.com>
9748
9749         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
9750         (thumb2_alusi3_short): Exclude PLUS and MINUS.
9751         (thumb2_addsi_shortim): Rename ...
9752         (thumb2_addsi_short): ... to this.  Allow register operands.
9753         (thumb2_subsi_short): New pattern.
9754         (thumb2_one_cmplsi2_short,
9755         thumb2_negsi2_short): New patterns and peepholes.
9756
9757 2008-03-12  Paul Brook  <paul@codesourcery.com>
9758
9759         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
9760
9761 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
9762
9763         * config/i386/i386.md (int_cond): New code iterator.
9764         (fp_cond): Ditto.
9765         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
9766         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
9767         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
9768         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
9769         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
9770         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
9771         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
9772         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
9773
9774 2008-03-12  Paul Brook  <paul@codesourcery.com>
9775
9776         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
9777         instead of {arm,thumb}_compute_save_reg_mask.
9778         (output_return_instruction): Ditto.
9779         (thumb_unexpanded_epilogue): Ditto.
9780         (thumb1_expand_prologue): Ditto.
9781         (thumb1_output_function_prologue): Ditto.
9782         (arm_set_return_address): Ditto.
9783         (thumb_set_return_address): Ditto.
9784         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
9785         regs to achieve stack alignment.
9786         (thumb1_compute_save_reg_mask): Fix compiler warning.
9787         (arm_output_epilogue): Use offsets->saved_regs_mask.
9788         Adjust stack pointer by poping call clobered registers.
9789         (arm_expand_prologue): Use offsets->saved_regs_mask.
9790         Adjust stack pointer by pushing extra registers.
9791         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
9792
9793 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
9794
9795         PR tree-opt/35422
9796         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
9797         conversion to the operands of a multiplication.
9798
9799 2008-03-12  Richard Guenther  <rguenther@suse.de>
9800
9801         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
9802         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
9803         * timevar.def (TV_TREE_PHIPROP): Add.
9804         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
9805         pass description.  Use TV_TREE_PHIPROP.
9806         * tree-ssa-forwprop.c: Remove phiprop code.
9807
9808 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
9809
9810         PR middle-end/35549
9811         * omp-low.c (maybe_lookup_decl): Constify first argument.
9812         (use_pointer_for_field): Change last argument from bool to
9813         omp_context *.  Disallow shared copy-in/out in nested
9814         parallel if decl is shared in outer parallel too.
9815         (build_outer_var_ref, scan_sharing_clauses,
9816         lower_rec_input_clauses, lower_copyprivate_clauses,
9817         lower_send_clauses, lower_send_shared_vars): Adjust callers.
9818
9819 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
9820             Ira Rosen  <irar@il.ibm.com>
9821
9822         * tree-vectorizer.c (free_stmt_vec_info): New function.
9823         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
9824         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
9825         * tree-vectorizer.h (free_stmt_vec_info): Declare.
9826         * tree-vect-transform.c (vectorizable_conversion): Free
9827         vec_oprnds0 if it was allocated.
9828         (vect_permute_store_chain): Remove unused VECs.
9829         (vectorizable_store): Free VECs that are allocated in the..
9830         function.
9831         (vect_transform_strided_load, vectorizable_load): Likewise.
9832         (vect_remove_stores): Simplify the code.
9833         (vect_transform_loop): Move code to vect_remove_stores().
9834         Call vect_remove_stores() and free_stmt_vec_info().
9835
9836 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9837
9838         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
9839         TARGET_HPUX.  Revise comment.
9840         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
9841         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
9842         Use sr4 variant of `be' instruction when not generating PIC code.
9843         (attr_length_call): Adjust for above change.
9844
9845 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9846
9847         * ipa-reference.c (static_execute): Remove module_statics_const and
9848         associated setting code.
9849
9850 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9851
9852         PR target/35540
9853         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
9854         predicate for operand 1.
9855         (paritysi2_cmp): Use register_operand predicate for operand 2.
9856         Use earlyclobber modifier for operand 1.  Remove support for
9857         memory operands.
9858         (paritydi2_cmp): Use register_operand predicate for operand 3.
9859         Use earlyclobber modifier for operand 1.  Remove support for
9860         memory operands.
9861
9862 2008-03-11  Paul Brook  <paul@codesourcery.com>
9863             Vladimir Prus  <vladimir@codesourcery.com>
9864
9865         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
9866         (arm_compute_save_reg0_reg12_mask): Always
9867         check if register 11 must be saved.  Always safe hard frame pointer
9868         when frame_pointer_needeed.
9869         (arm_compute_save_reg_mask): Save IP and PC
9870         only with apcs frames.
9871         (arm_output_epilogue): Adjust Thumb2 codepath to
9872         be also invoked and work for ARM non-apcs frames.
9873         (arm_expand_prologue): Don't bother saving IP
9874         for non-apcs frame, since it's not clobbered by
9875         prologue code.  Implement non-apcs frame
9876         layout.
9877
9878 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9879
9880         PR rtl-optimization/35281
9881         * expr.c (convert_move): Use a new pseudo for the intermediate
9882         from_mode->word_mode result.
9883
9884 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9885
9886         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
9887         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
9888         * toplev.c (compile_file): Don't call it.
9889
9890 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9891
9892         PR middle-end/35526
9893         * expr.c (store_expr): Call emit_block_move if the mode
9894         of "temp" RTX is BLKmode.
9895
9896 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9897             Richard Guenther  <rguenther@suse.de>
9898
9899         PR tree-optimization/31358
9900         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
9901         the step with a NULL_TREE.
9902         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
9903         to sizetype if type is a pointer type.
9904         (add_candidate_1): Don't convert the base and step to
9905         the generic type if the orginal type is a pointer type.
9906         (add_iv_value_candidates): Use sizetype for the step
9907         if type is a pointer type.
9908         (cand_value_at): Likewise.
9909         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
9910         for pointer types.
9911         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
9912         Don't convert the tem affine to the type.
9913         (add_elt_to_tree): Use sizetype for the step if a pointer.
9914         Use POINTER_PLUS_EXPR for pointers.
9915         (aff_combination_to_tree): Use sizetype for the step if a
9916         pointer.
9917
9918 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
9919
9920         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
9921         Remove commutativity hint.
9922
9923 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
9924
9925         PR c/35438
9926         PR c/35439
9927         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
9928         errorneous type.  Check that v is a VAR_DECL.
9929
9930         PR middle-end/35099
9931         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
9932
9933 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
9934
9935         PR tree-optimization/35494
9936         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
9937         may be overriden at link and run time.
9938
9939 2008-03-10  Richard Guenther  <rguenther@suse.de>
9940
9941         PR tree-optimization/34677
9942         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
9943         (poolify_tree): Likewise.
9944         (modify_expr_template): Likewise.
9945         (poolify_modify_stmt): Likewise.
9946         (insert_fake_stores): Handle all component-ref style stores
9947         in addition to INDIRECT_REF.  Also handle complex types.
9948         Do not poolify the inserted load.
9949         (realify_fake_stores): Do not rebuild the tree but only
9950         make it a SSA_NAME copy.
9951         (init_pre): Remove initialzation of modify_expr_template.
9952         Do not allocate modify_expr_node_pool.
9953         (fini_pre): Do not free modify_expr_node_pool.
9954
9955 2008-03-10  Paul Brook  <paul@codesourcery.com>
9956
9957         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
9958         to avoid conflicts.
9959
9960 2008-03-10  Paul Brook  <paul@codesourcery.com>
9961             Mark Shinwell  <shinwell@codesourcery.com>
9962
9963         * config/arm/cortex-r4.md: New.
9964         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
9965         insn attributes.
9966         * config/arm/arm.md: Include cortex-r4.md.
9967         (insn): Add smmls, sdiv and udiv values.
9968         (generic_sched): Don't use generic scheduling for Cortex-R4.
9969         (arm_issue_rate): New function.
9970         (TARGET_SCHED_ISSUE_RATE): Define.
9971
9972 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
9973
9974         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
9975
9976 2008-03-10  Richard Guenther  <rguenther@suse.de>
9977
9978         * tree-ssa-pre.c (get_sccvn_value): Simplify.
9979         (compute_avail): Do not add stmt uses to AVAIL_OUT.
9980
9981 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
9982
9983         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
9984         Set default to true.
9985
9986 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9987
9988         * c.opt (Wsynth): Deprecate.
9989         * doc/invoke.texi (Option Summary, Warning Options): Document
9990         -Wno-format-contains-nul.
9991
9992 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
9993
9994         PR target/35496
9995         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
9996         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
9997
9998 2008-03-09  Ira Rosen  <irar@il.ibm.com>
9999
10000         * config/rs6000/rs6000.c (builtin_description): Rename vector
10001         left shift operations.
10002         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
10003         (altivec_vsl<VI_char>): Rename to ...
10004         (ashl<mode>3): ... new name.
10005         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
10006         gen_ashlv4si3.
10007         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
10008
10009 2008-03-08  Richard Guenther  <rguenther@suse.de>
10010
10011         * coverage.h (tree_coverage_counter_addr): Declare.
10012         * coverage.c (tree_coverage_counter_addr): New function.
10013         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
10014         before using again.
10015         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
10016         (tree_gen_one_value_profiler): Likewise.
10017         (tree_gen_ic_profiler): Likewise.
10018         (tree_gen_average_profiler): Likewise.
10019         (tree_gen_ior_profiler): Likewise.
10020
10021 2008-03-08  Richard Guenther  <rguenther@suse.de>
10022
10023         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
10024         (vn_binary_op_insert): Likewise.
10025         (vn_unary_op_lookup): Likewise.
10026         (vn_unary_op_insert): Likewise.
10027         (vn_nary_op_lookup): Declare.
10028         (vn_nary_op_insert): Likewise.
10029         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
10030         and binary hashes, use a single obstack for unary_op_pool
10031         and binary_op_pool.
10032         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
10033         a single struct vn_nary_op_s.  Store tree code length and
10034         a variable number of operands.
10035         (struct vn_reference_op_struct): Remove unused op2.
10036         (vn_reference_op_eq): Do not compare op2.
10037         (vn_reference_op_compute_hash): Do not compute hash of op2.
10038         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
10039         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
10040         with vn_nary_op_compute_hash.
10041         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
10042         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
10043         vn_nary_op_lookup.
10044         (vn_unary_op_insert, vn_binary_op_insert): Replace with
10045         vn_nary_op_insert.
10046         (visit_unary_op): Call nary functions.
10047         (visit_binary_op): Likewise.
10048         (process_scc): Adjust for struct vn_tables_s changes.
10049         (allocate_vn_table): Likewise.
10050         (free_vn_table): Likewise.
10051         * tree-vn.c (vn_add): Call nary functions.
10052         (vn_lookup): Likewise.
10053
10054 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
10055
10056         PR target/35498
10057         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
10058         wdst back after sync_compare_and_swapqhi_internal.
10059
10060 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
10061
10062         PR target/22152
10063         * config/i386/i386-modes.def (V1DI): New vector mode.
10064         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
10065         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
10066         (MMXMODE248): Ditto.
10067         (MMXMODE): Add V1DI mode.
10068         (mmxvecsize): Change DI mode to V1DI mode.
10069         ("mov<mode>): Use MMXMODEI8 mode iterator.
10070         ("*mov<mode>_internal_rex64"): Ditto.
10071         ("*mov<mode>_internal"): Ditto.
10072         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
10073         ("mmx_sub<mode>3"): Ditto.
10074         ("mmx_adddi3"): Remove insn pattern.
10075         ("mmx_subdi3"): Ditto.
10076         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
10077         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
10078         ("mmx_ashl<mode>3"): Ditto.
10079         ("mmx_lshrdi3"): Remove insn pattern.
10080         ("mmx_ashldi3"): Ditto.
10081         * config/i386/i386.c (classify_argument): Handle V1DImode.
10082         (function_arg_advance_32): Ditto.
10083         (function_arg_32): Ditto.
10084         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
10085         mmx_addv1di3 insn pattern.
10086         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
10087         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
10088         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
10089         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
10090         Remove definitions of built-in functions.
10091         (V1DI_type_node): New node.
10092         (v1di_ftype_v1di_int): Ditto.
10093         (v1di_ftype_v1di_v1di): Ditto.
10094         (v2si_ftype_v2si_si): Ditto.
10095         (v4hi_ftype_v4hi_di): Remove node.
10096         (v2si_ftype_v2si_di): Ditto.
10097         (ix86_init_mmx_sse_builtins): Handle V1DImode.
10098         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
10099         Redefine builtins using def_builtin_const with *_ftype_*_int node.
10100         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
10101         Add new builtins using def_builtin_const.
10102         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
10103         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
10104         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
10105         * config/i386/mmintrin.h (__v1di): New typedef.
10106         (_mm_add_si64): Cast arguments to __v1di type.
10107         (_mm_sub_si64): Ditto.
10108         (_mm_sll_pi16): Cast __count to __v4hi type.
10109         (_mm_sll_pi32): Cast __count to __v2si type.
10110         (_mm_sll_si64): Cast arguments to __v1di type.
10111         (_mm_srl_pi16): Cast __count to __v4hi type.
10112         (_mm_srl_pi32): Cast __count to __v2si type.
10113         (_mm_srl_si64): Cast arguments to __v1di type.
10114         (_mm_sra_pi16): Cast __count to __v4hi type.
10115         (_mm_sra_pi32): Cast __count to __v2si type.
10116         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
10117         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
10118         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
10119         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
10120         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
10121         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
10122         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
10123         (_mm_srai_pi32): Use __builtin_ia32_psradi.
10124         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
10125         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
10126         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
10127         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
10128
10129 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
10130
10131         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
10132
10133 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
10134
10135         PR target/35373
10136         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
10137         reg+const addressing for Altivec modes.  Don't generate reg+reg
10138         addressing for TFmode or TDmode quantities.
10139
10140 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
10141
10142         * c-common.c (vector_types_convertible_p): Call langhook
10143         instead of comptypes.
10144
10145 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10146
10147         PR tree-opt/35402
10148         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
10149         integral and scalar float variables which have a
10150         NULL DECL_INITIAL.
10151
10152 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
10153
10154         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
10155         dwarf_register_span hook when emitting unwind information for
10156         register-to-memory saves.
10157         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
10158         (rs6000_frame_related): Remove call to spe_synthesize_frame.
10159
10160 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
10161
10162         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
10163         for the same VAR_DECL.
10164
10165 2008-03-06  Tom Tromey  <tromey@redhat.com>
10166
10167         * treelang: Delete.
10168         * doc/standards.texi (Standards): Don't mention treelang.
10169         * doc/invoke.texi (Overall Options): Don't mention treelang.
10170         * doc/install.texi (Prerequisites): Don't mention bison or
10171         treelang.
10172         (Configuration): Don't mention treelang.
10173         (Building): Likewise.
10174         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
10175
10176 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
10177
10178         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
10179         word-extractions out of a multi-word object.
10180
10181 2008-03-06  Richard Guenther  <rguenther@suse.de>
10182
10183         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
10184         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
10185         result type and precision.
10186         * expr.c (get_inner_reference): Set unsignedp based on the result
10187         type of BIT_FIELD_REF.
10188         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
10189         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
10190         (try_instantiate_multiple_fields): Likewise.  Use the correct type
10191         for BIT_FIELD_REF.
10192         (sra_build_assignment): Likewise.
10193         (sra_build_elt_assignment): Likewise.
10194         (sra_explode_bitfield_assignment): Likewise.
10195         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
10196         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
10197         set BIT_FIELD_REF_UNSIGNED.
10198         (vectorizable_load): Likewise.
10199
10200 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
10201
10202         * cse.c (cse_extended_basic_block): Invalidate artificial defs
10203         at bb start.
10204
10205 2008-03-06  Richard Guenther  <rguenther@suse.de>
10206
10207         * alias.c (struct alias_set_entry): Move has_zero_child field
10208         to pack with alias_set.
10209
10210 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
10211
10212         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10213         32bit host.
10214
10215 2008-03-05  Ian Lance Taylor  <iant@google.com>
10216
10217         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
10218
10219 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
10220
10221         * fwprop.c (update_df): Support width and offset parameters of
10222         df_ref_create.
10223         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
10224         global_conflicts): Change DF_REF_EXTRACT to either
10225         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10226         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10227         * df-scan.c (df_ref_record, df_defs_record,
10228         df_ref_create_structure, df_def_record_1, df_uses_record,
10229         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
10230         df_bb_refs_collect, df_entry_block_defs_collect,
10231         df_exit_block_uses_collect): Support new width and offset fields.
10232         (ref_extract_pool): New storage pool.
10233         (df_free_ref): New function.
10234         (df_reg_chain_unlink, df_free_collection_rec,
10235         df_sort_and_compress_refs): Call df_free_ref.
10236         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
10237         of df_ref_extract.
10238         (df_ref_create_structure): Allocate df_ref_extract if offset and
10239         width fields are used.
10240         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
10241         (df_uses_record): Get offset and width from ZERO_EXTRACT 
10242         and SIGN_EXTRACT.
10243         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
10244         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10245         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10246         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
10247         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10248         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10249         (df_ref_extract): New structure.
10250         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
10251         (df_ref_create): Add width and offset parameters.
10252         
10253 2008-03-05  Richard Guenther  <rguenther@suse.de>
10254
10255         * tree-ssa-structalias.c (get_constraint_for_component_ref):
10256         Use ranges_overlap_p.
10257         (offset_overlaps_with_access): Rename
10258         to ranges_overlap_p and move ...
10259         * tree-flow-inline.h (ranges_overlap_p): ... here.
10260
10261         * tree.h (get_inner_reference, handled_component_p): Update
10262         comments.
10263
10264         * tree.h (record_component_aliases, get_alias_set,
10265         alias_sets_conflict_p, alias_sets_must_conflict_p,
10266         objects_must_conflict_p): Move declarations ...
10267         * alias.h (record_component_aliases, get_alias_set,
10268         alias_sets_conflict_p, alias_sets_must_conflict_p,
10269         objects_must_conflict_p): ... here.
10270         Include coretypes.h.
10271         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
10272
10273 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
10274
10275         * cfg.c: Include tree-flow.h.
10276         (remove_edge_raw): Call redirect_edge_var_map_clear.
10277         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
10278         * tree-flow-inline.h (redirect_edge_var_map_def): New.
10279         (redirect_edge_var_map_result): New.
10280         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
10281         PENDING_STMT use with redirect_edge_var_map_*.
10282         * tree-ssa.c (edge_var_maps): New definition.
10283         (redirect_edge_var_map_add): New.
10284         (redirect_edge_var_map_clear): New.
10285         (redirect_edge_var_map_dup): New.
10286         (redirect_edge_var_map_vector): New.
10287         (redirect_edge_var_map_destroy): New.
10288         (ssa_redirect_edge): Replace PENDING_STMT use with
10289         redirect_edge_var_map_*.
10290         (flush_pending_stmts): Same.
10291         (delete_tree_ssa): Destroy edge var map.
10292         * tree-flow.h (struct _edge_var_map): New.
10293         Define edge_var_map vector type.
10294         Declare redirect_edge_var_map_* prototypes.
10295         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
10296         * tree-cfg.c (reinstall_phi_args): Replace
10297         PENDING_STMT use with redirect_edge_var_map_*.
10298
10299 2008-03-05  Richard Guenther  <rguenther@suse.de>
10300
10301         PR tree-optimization/35472
10302         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
10303         whose single use_stmt has a overlapping set of loaded and
10304         stored symbols as that use_stmt might be a noop assignment then.
10305
10306 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
10307
10308         * gthr-rtems.h: Implement __gthread_mutex_destroy.
10309
10310 2008-03-05  Richard Guenther  <rguenther@suse.de>
10311
10312         PR c++/35336
10313         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
10314         should be constants.
10315         * tree-cfg.c (verify_expr): Verify it.
10316         * fold-const.c (fold_truthop): Remove code generating
10317         BIT_FIELD_REFs of structure bases.
10318         (fold_binary): Likewise.
10319         (fold_ternary): Position and size of BIT_FIELD_REFs are
10320         always host integers.
10321         (make_bit_field_ref): Remove.
10322         (optimize_bit_field_compare): Remove.
10323         (all_ones_mask_p): Remove.
10324
10325 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
10326
10327         PR gcc/33009
10328         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
10329         (split_block_and_df_analyze): New. Split basic block and rebuild
10330         dataflow.
10331         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
10332         SPLIT_BLOCK.
10333         (split_pattern_seq): Likewise.
10334         (erase_matching_seqs): Likewise.
10335         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
10336
10337 2008-03-04  Geoff Keating  <geoffk@apple.com>
10338
10339         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
10340         declaration and code.
10341         (tree_invalid_nonnegative_warnv_p): Likewise.
10342
10343 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
10344
10345         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
10346         examples.  Truncate option-names then causing overfull hbox.
10347
10348 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10349
10350         PR target/35222
10351         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
10352         on hpux10.
10353         * configure: Rebuilt.
10354
10355 2008-03-04  Rafael Espindola  <espindola@google.com>
10356
10357         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
10358         (tree_unary_nonnegative_warnv_p): New.
10359         (tree_binary_nonnegative_warnv_p): New.
10360         (tree_single_nonnegative_warnv_p): New.
10361         (tree_invalid_nonnegative_warnv_p): New.
10362         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
10363
10364 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10365
10366         PR 28322
10367         * opts.c (handle_option): Postpone 'unknown option' errors only for
10368         warning options.
10369
10370 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
10371
10372         PR target/35453
10373         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
10374         (_SIDD_XXX): This.
10375
10376 2008-03-04  Rafael Espindola  <espindola@google.com>
10377
10378         * fold-const.c (tree_unary_nonzero_warnv_p): New.
10379         (tree_binary_nonzero_warnv_p): New.
10380         (tree_single_nonzero_warnv_p): New.
10381         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
10382
10383 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
10384
10385         PR middle-end/35456
10386         * fold-const.c (fold_cond_expr_with_comparison): Prevent
10387         transformations for modes that have signed zeros.
10388         * ifcvt.c (noce_try_abs): Ditto.
10389
10390 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
10391
10392         * config/i386/i386.c (override_options): Force
10393         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
10394
10395 2008-03-04  Jan Hubicka  <jh@suse.cz>
10396
10397         PR c++/35262
10398         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
10399         in last commit.
10400
10401 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10402
10403         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
10404         label to probe the stack.
10405
10406 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10407
10408         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
10409         (__gthr_win32_mutex_destroy): Declare.
10410         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
10411         __gthr_win32_mutex_destroy.
10412         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
10413
10414 2008-03-03  Jan Hubicka  <jh@suse.cz>
10415
10416         PR c++/35262
10417         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
10418         aggressive on inlining cold calls.
10419
10420 2008-03-03  Richard Guenther  <rguenther@suse.de>
10421
10422         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
10423         struct copies into the expression table.
10424         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
10425         (try_to_simplify): Likewise.
10426         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
10427         integral and pointer arguments which do not change the
10428         precision to NOP_EXPRs.
10429         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
10430         VIEW_CONVERT_EXPR case.
10431
10432 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
10433
10434         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
10435         defined in a loop at depth 0 is invariant.
10436         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
10437         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
10438         be called at loop depth 0.
10439
10440 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
10441
10442         PR driver/35420
10443         * gcc.c (process_command): Update copyright notice dates.
10444         * gcov.c (print_version): Likewise.
10445         * gcov-dump.c (print_version): Likewise.
10446         * mips-tfile.c (main): Likewise.
10447         * mips-tdump.c (main): Likewise.
10448
10449 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10450
10451         PR 24924
10452         * c-common.c (flag_permissive): Delete.
10453         (constant_expression_warnings): Check flags first.
10454         (constant_expression_error): New.
10455         * c-common.h (flag_permissive): Delete.
10456         (constant_expression_error): Declare.
10457         * flags.h (flag_permissive): Declare. Update description.
10458         * diagnostic.c (pedwarn): Update.
10459         (permerror): New.
10460         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
10461         (permissive_error_kind): New.
10462         * toplev.c (flag_permissive): Define. Update description.
10463         * toplev.h (permissive_error_kind): Declare.
10464         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
10465         (pedwarn_c90): Use pedantic_warning_kind.
10466         * c-opts.c (c_common_post_options): flag_permissive does not affect
10467         flag_pedantic_errors.
10468
10469 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
10470
10471         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
10472         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
10473         __absvsi2, __absvDI2): Use unsigned arithmetic.
10474
10475 2008-03-02  Andi Kleen  <ak@suse.de>
10476             Richard Guenther  <rguenther@suse.de>
10477
10478         * struct-equiv.c: Remove file.
10479         * cfg_cleanup.c (condjump_equiv_p): Remove.
10480         * Makefile.in (OBJS-common): Remove struct-equiv.o.
10481         (struct-equiv.o): Remove rule.
10482         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
10483         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
10484         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
10485
10486 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10487
10488         * ifcvt.c (noce_process_if_block): Try to handle only the then
10489         block if the else block exists but isn't suitable.
10490
10491 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
10492
10493         PR gcc/35063
10494         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
10495         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
10496         regression from previous patch.
10497
10498 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
10499
10500         PR gcc/35063
10501         * gthr.h: Add __gthread_mutex_destroy as a function that must be
10502         implemented.
10503         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
10504         * gthr-single.h (__gthread_mutex_destroy): Likewise.
10505         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
10506         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
10507         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
10508         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
10509         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
10510         (__gthread_mutex_destroy_function): Rename to
10511         __gthread_mutex_destroy.
10512         * gthr-dce.h (__gthread_mutex_destroy): Call
10513         pthread_mutex_destroy.
10514         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
10515         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
10516         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
10517
10518 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10519
10520         * df-scan.c (df_ref_chain_change_bb): Simplify.
10521         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
10522         set_block_for_insn if there's any change.
10523         * df.h ((df_insn_change_bb): Fix prototype.
10524         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
10525         df_insn_change_bb, don't call set_block_for_insn.
10526         * emit-rtl.c (reorder_insns): Likewise.
10527         * haifa-sched.c (move_insn): Likewise.
10528
10529 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10530
10531         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
10532
10533 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10534
10535         * tree-flow-inline.h (next_readonly_imm_use): Return
10536         NULL_USE_OPERAND_P after the end.
10537
10538 2008-03-01  Richard Guenther  <rguenther@suse.de>
10539
10540         PR tree-optimization/35411
10541         * tree-sra.c (sra_build_assignment): Split conversion to
10542         final type to a separate statement if we are not assigning
10543         to a register.
10544
10545 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10546
10547         * fold-const.c (fold_convertible_p): Correct the logic to follow
10548         that in fold_convert().
10549
10550 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
10551
10552         PR c++/35315
10553         * tree-inline.c (build_duplicate_type): When we make a
10554         duplicate type, make it unique in the canonical types system.
10555
10556 2008-02-29  Tom Tromey  <tromey@redhat.com>
10557
10558         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
10559         input_file_stack_history, input_file_stack_restored): Remove.
10560         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10561         * input.h (struct file_stack): Remove.
10562         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10563         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
10564         Likewise.
10565         * diagnostic.h (struct diagnostic_context) <last_module>: Change
10566         type.
10567         (diagnostic_last_module_changed): Add 'map' argument.
10568         (diagnostic_set_last_function): Likewise.
10569         * diagnostic.c (undiagnostic_report_current_module): Iterate using
10570         line map, not input_file_stack.
10571         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
10572
10573 2008-02-29  Paul Brook  <paul@codesourcery.com>
10574
10575         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
10576
10577 2008-02-29  Paul Brook  <paul@codesourcery.com>
10578
10579         * config/arm/ieee754-df.S (muldf3): Use RET macros.
10580
10581 2008-02-29  Richard Guenther  <rguenther@suse.de>
10582
10583         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
10584         vn_lookup_or_add.
10585         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
10586         value for comparing for a store match.
10587         (simplify_unary_expression): Do nothing for SSA_NAMEs.
10588         (try_to_simplify): Do not do a full-blown reference lookup.
10589
10590 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10591
10592         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
10593         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
10594
10595         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
10596
10597 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
10598
10599         * tree-loop-linear.c (try_interchange_loops): Compare memory access
10600         strides against cache sizes.
10601
10602 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10603
10604         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
10605         constant to fpul.
10606
10607 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
10608
10609         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
10610         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
10611         is smaller than the original promoted value.
10612         (simplify_subreg): If OP is a SUBREG, try to preserve its
10613         SUBREG_PROMOTED_VAR_P information.
10614
10615 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
10616
10617         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
10618         (VN_INFO_GET): Allocate new objects on the obstack.
10619         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
10620         for rpo_numbers_temp, for consistency.
10621         (free_scc_vn): Free the obstack.
10622
10623 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
10624
10625         * doc/invoke.texi: Document -ftree-loop-distribution.
10626         * tree-loop-distribution.c: New.
10627         * tree-pass.h (pass_loop_distribution): New.
10628         * graphds.h (struct graph): Add htab_t indices.
10629         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
10630         * tree-vectorizer.c (rename_variables_in_loop): Extern.
10631         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
10632         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
10633         * tree-data-ref.c (debug_data_dependence_relations): New.
10634         (dump_data_dependence_relation): Also print data references.
10635         (free_data_ref): Extern.
10636         (same_access_functions): Moved...
10637         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
10638         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10639         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
10640         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
10641         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
10642         (stmts_from_loop): Skip LABEL_EXPR.
10643         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
10644         New.
10645         (build_rdg): Initialize rdg->indices htab.
10646         (free_rdg, stores_from_loop, ref_base_address,
10647         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
10648         have_similar_memory_accesses_1, ref_base_address_1,
10649         remove_similar_memory_refs): New.
10650         * tree-data-ref.h: Depend on tree-chrec.h.
10651         (debug_data_dependence_relations, free_data_ref): Declared.
10652         (same_access_functions): ... here.
10653         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
10654         New.
10655         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
10656         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
10657         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
10658         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10659         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
10660         rdg_vertex_for_stmt): Declared.
10661         (struct rdg_edge): Add level.
10662         (RDGE_LEVEL): New.
10663         (free_rdg, stores_from_loop, remove_similar_memory_refs,
10664         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
10665         Declared.
10666         (rdg_has_similar_memory_accesses): New.
10667         * tree-vect-analyze.c: Remove unused static decls.
10668         * lambda.h (dependence_level): New.
10669         * common.opt (ftree-loop-distribution): New.
10670         * tree-flow.h (mark_virtual_ops_in_bb, 
10671         slpeel_tree_duplicate_loop_to_edge_cfg,
10672         rename_variables_in_loop): Declared.
10673         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
10674         (OBJS-common): Add tree-loop-distribution.o.
10675         (tree-loop-distribution.o): New rule.
10676         * tree-cfg.c (mark_virtual_ops_in_bb): New.
10677         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
10678         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
10679
10680 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
10681
10682         PR target/33963
10683         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
10684         other than structures and unions.
10685
10686 2008-02-28  Richard Guenther  <rguenther@suse.de>
10687
10688         Revert:
10689         2008-02-26  Richard Guenther  <rguenther@suse.de>
10690
10691         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10692         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10693         (lookup_decl_from_uid): Declare.
10694         (remove_decl_from_map): Likewise.
10695         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10696         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10697         (decl_for_uid_map): New global hashtable mapping DECL_UID
10698         to the decl tree.
10699         (init_ttree): Allocate it.
10700         (insert_decl_to_uid_decl_map): New helper function.
10701         (make_node_stat): Insert new decls into the map.
10702         (copy_node_stat): Likewise.
10703         (lookup_decl_from_uid): New function.
10704         (remove_decl_from_map): Likewise.
10705         (print_decl_for_uid_map_statistics): New helper.
10706         (dump_tree_statistics): Call it.
10707
10708         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10709         (referenced_var_iterator): Adjust.
10710         (FOR_EACH_REFERENCED_VAR): Adjust.
10711         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10712         (num_referenced_vars): Adjust.
10713         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10714         (first_referenced_var): Remove.
10715         (end_referenced_vars_p): Likewise.
10716         (next_referenced_var): Likewise.
10717         (referenced_var_iterator_set): New helper function.
10718         * tree-dfa.c (referenced_var_lookup): Adjust.
10719         (referenced_var_check_and_insert): Likewise.
10720         (remove_referenced_var): Likewise.
10721         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10722         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10723         (verify_call_clobbering): Likewise.
10724         (verify_memory_partitions): Likewise.
10725         (init_tree_ssa): Allocate bitmap instead of hashtable for
10726         referenced_vars.
10727         (delete_tree_ssa): Adjust.
10728         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10729         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10730         (compute_tag_properties): Likewise.
10731         (set_initial_properties): Likewise.
10732         (find_partition_for): Likewise.
10733         (update_reference_counts): Likewise.
10734         (dump_may_aliases_for): Likewise.
10735         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10736         (add_call_clobber_ops): Likewise.
10737         (add_call_read_ops): Likewise.
10738         (get_asm_expr_operands): Likewise.
10739         * tree-into-ssa.c (dump_decl_set): Likewise.
10740         (update_ssa): Likewise.
10741         * tree-sra.c (scan_function): Likewise.
10742         (decide_instantiations): Likewise.
10743         (scalarize_parms): Likewise.
10744         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10745         (dsa_named_for): Likewise.
10746         * tree-ssa-structalias.c (update_alias_info): Likewise.
10747         (merge_smts_into): Likewise.
10748
10749 2008-02-27  David Daney  <ddaney@avtrex.com>
10750
10751         PR target/34409
10752         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
10753         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
10754         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
10755         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
10756         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
10757
10758 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
10759
10760         PR target/25477
10761         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
10762         (BUILT_IN_NEXTTOWARD): Remove.
10763         (BUILT_IN_NEXTTOWARDF): Ditto.
10764         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
10765         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
10766
10767 2008-02-27  Tom Tromey  <tromey@redhat.com>
10768
10769         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
10770         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
10771
10772 2008-02-27  Jan Beulich  <jbeulich@novell.com>
10773
10774         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
10775         update the respective field on newdecl.
10776
10777 2008-02-27  Revital Eres  <eres@il.ibm.com>
10778
10779         PR rtl-optimization/34999
10780         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
10781         crossing edges that ends with a call insn.
10782         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
10783         call insn and clear the EDGE_CROSSING flag of the crossing edge
10784         when fixing fallthru edges.
10785
10786 2008-02-27  Richard Guenther  <rguenther@suse.de>
10787
10788         PR middle-end/35390
10789         * fold-const.c (fold_unary): Return the correct argument,
10790         converted to the result type.
10791
10792 2008-02-27  Richard Guenther  <rguenther@suse.de>
10793
10794         PR middle-end/34971
10795         * expr.c (expand_expr_real_1): Assert on rotates that operate
10796         on partial modes.
10797         * fold-const.c (fold_binary): Use the types precision, not the
10798         bitsize of the mode if folding rotate expressions.  Build rotates
10799         only for full modes.
10800
10801 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
10802
10803         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
10804         and CPP_PRAGMA_EOL.
10805         * c-pragma.c (pragma_ns_name): New typedef.
10806         (registered_pp_pragmas): New variable.
10807         (c_pp_lookup_pragma): New function.
10808         (c_register_pragma_1): If flag_preprocess_only, do nothing
10809         for non-expanded pragmas, for expanded ones push pragma's
10810         namespace and name into registered_pp_pragmas vector.
10811         (c_invoke_pragma_handler): Register OpenMP pragmas even when
10812         flag_preprocess_only, don't register GCC pch_preprocess
10813         pragma if flag_preprocess_only.
10814         * c-opts.c (c_common_init): Call init_pragma even if
10815         flag_preprocess_only.
10816         * c-pragma.c (c_pp_lookup_pragma): New prototype.
10817         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
10818         cpp_register_pragma if flag_preprocess_only.
10819
10820 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10821
10822         PR c/28800
10823         * c-parser.c (c_parser_translation_unit): Warn for empty
10824         translation unit, not empty source file.
10825
10826 2008-02-26  Paul Brook  <paul@codesourcery.com>
10827
10828         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
10829         operand for Thumb-2.
10830         * config/arm/arm.h (reg_class): Add CORE_REGS.
10831         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
10832         (BASE_REG_CLASS): Use CORE_REGS.
10833         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
10834         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
10835         (REGNO_OK_FOR_INDEX_P): Exclude SP.
10836         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
10837         ARM_REGNO_OK_FOR_INDEX_P.
10838         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
10839         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
10840         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
10841         (ldm/stm peepholes): Ditto.
10842         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
10843         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
10844         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
10845         * config/arm/constraints.md: Enable "k" constraint on ARM.
10846
10847 2008-02-27  Ben Elliston  <bje@au.ibm.com>
10848
10849         * config/rs6000/rs6000.c: Annotate cache line size field in all
10850         instances of struct processor_costs.
10851
10852 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
10853
10854         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
10855         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
10856         jump_bypass): New counters.
10857         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
10858         * dce.c (gate_ud_dce): Same.
10859         (gate_fast_dce): Same.
10860         * dse.c (gate_dse1): New function.
10861         (gate_dse2): New function.
10862         (gate_dse): Merge results of new gate functions.
10863         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
10864         (gate_handle_jump_bypass): Add dbg_cnt.
10865         (gate_handle_gcse): Add dbg_cnt.
10866         * ifcvt.c (gate_handle_if_conversion): Same.
10867         (gate_handle_if_after_combine): Same.
10868         (gate_handle_if_after_reload): Same.
10869         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
10870
10871 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
10872
10873         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
10874         line sizes.
10875         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
10876
10877 2008-02-26  Jason Merrill  <jason@redhat.com>
10878
10879         PR c++/35315
10880         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
10881         alone if it's the naming decl for the type's main variant.
10882
10883 2008-02-26  Tom Tromey  <tromey@redhat.com>
10884
10885         * system.h (USE_MAPPED_LOCATION): Poison.
10886         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
10887         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
10888         (make_goto_expr_edges): Likewise.
10889         (remove_bb): Likewise.
10890         (execute_warn_function_return): Likewise.
10891         * basic-block.h (struct edge_def) <goto_locus>: Change type to
10892         location_t.
10893         * c-common.c (fname_decl): Remove old location code.
10894         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
10895         location code.
10896         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
10897         variant.
10898         (ASM_INPUT_SOURCE_LOCATION): Likewise.
10899         (gen_rtx_ASM_INPUT): Likewise.
10900         (gen_rtx_ASM_INPUT_loc): Likewise.
10901         (get_rtx_asm_OPERANDS): Remove.
10902         * cfglayout.c (insn_locators_alloc): Remove old location code.
10903         (set_curr_insn_source_location): Likewise.
10904         (curr_insn_locator): Likewise.
10905         * print-tree.c (print_node): Remove old location code.
10906         * tree-mudflap.c (mf_varname_tree): Remove old location code.
10907         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
10908         * cfgexpand.c (expand_gimple_cond_expr): Don't use
10909         location_from_locus.
10910         (construct_exit_block): Remove old location code.
10911         * emit-rtl.c (force_next_line_note): Remove old location code.
10912         * profile.c (branch_prob): Remove old location code.
10913         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
10914         LOC_LINE): Remove old-location variants.
10915         * langhooks.c (lhd_print_error_function): Remove old location
10916         code.
10917         * configure, config.in: Rebuilt.
10918         * configure.ac (--enable-mapped-location): Remove.
10919         * c-decl.c (c_init_decl_processing): Remove old location code.
10920         (finish_function): Likewise.
10921         * recog.c (decode_asm_operands): Remove old location code.
10922         * c-pch.c (c_common_read_pch): Remove old location code.
10923         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
10924         variants.
10925         * gimple-low.c (lower_function_body): Remove old location code.
10926         * toplev.c (unknown_location): Remove.
10927         (push_srcloc): Remove old-location variant.
10928         (process_options): Remove old location code.
10929         (lang_dependent_init): Likewise.
10930         * input.h (UNKNOWN_LOCATION): Move definition.
10931         (location_t): Undeprecate.
10932         (source_locus): Remove.
10933         (location_from_locus): Remove.
10934         (struct location_s): Remove.
10935         Remove all old-location code.
10936         (input_line, input_filename): Remove.
10937         * final.c (final_scan_insn): Remove old location code.
10938         * diagnostic.c (diagnostic_build_prefix): Remove
10939         USE_MAPPED_LOCATION test.
10940         * tree.h (gimple_stmt) <locus>: Now a location_t.
10941         (tree_exp) <locus>: Likewise.
10942         (DECL_IS_BUILTIN): Remove old-location variant.
10943         (annotate_with_file_line, annotate_with_locus): Likewise.
10944         (expr_locus, set_expr_locus): Update.
10945         * tree.c (build1_stat): Remove old location code.
10946         (last_annotated_node): Remove.
10947         (annotate_with_file_line): Remove old-location variant.
10948         (annotate_with_locus): Likewise.
10949         (expr_location): Remove old location code.
10950         (set_expr_location): Likewise.
10951         (expr_has_location): Likewise.
10952         (expr_locus): Likewise.
10953         (set_expr_locus): Likewise.
10954         (expr_filename): Don't use location_from_locus.
10955         (expr_lineno): Likewise.
10956         * rtl-error.c (location_for_asm): Remove old location code.
10957         * c-lex.c (cb_line_change): Remove old location code.
10958         (fe_file_change): Likewise.
10959         (cb_def_pragma): Likewise.
10960         (c_lex_with_flags): Likewise.
10961         * gengtype.c (do_typedef): Don't special-case location types.
10962         (define_location_structures): Remove.
10963         (main): Don't call define_location_structures.
10964         * tree-pretty-print.c (dump_implicit_edges): Remove old location
10965         code.
10966
10967 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10968
10969         PR 26264
10970         * builtins.def (BUILT_IN_STDARG_START): Remove.
10971         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
10972         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10973         * tree-inline.c (inline_forbidden_p_1): Likewise.
10974         
10975 2008-02-26  Richard Guenther  <rguenther@suse.de>
10976
10977         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10978         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10979         (lookup_decl_from_uid): Declare.
10980         (remove_decl_from_map): Likewise.
10981         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10982         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10983         (decl_for_uid_map): New global hashtable mapping DECL_UID
10984         to the decl tree.
10985         (init_ttree): Allocate it.
10986         (insert_decl_to_uid_decl_map): New helper function.
10987         (make_node_stat): Insert new decls into the map.
10988         (copy_node_stat): Likewise.
10989         (lookup_decl_from_uid): New function.
10990         (remove_decl_from_map): Likewise.
10991         (print_decl_for_uid_map_statistics): New helper.
10992         (dump_tree_statistics): Call it.
10993
10994         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10995         (referenced_var_iterator): Adjust.
10996         (FOR_EACH_REFERENCED_VAR): Adjust.
10997         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10998         (num_referenced_vars): Adjust.
10999         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11000         (first_referenced_var): Remove.
11001         (end_referenced_vars_p): Likewise.
11002         (next_referenced_var): Likewise.
11003         (referenced_var_iterator_set): New helper function.
11004         * tree-dfa.c (referenced_var_lookup): Adjust.
11005         (referenced_var_check_and_insert): Likewise.
11006         (remove_referenced_var): Likewise.
11007         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11008         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11009         (verify_call_clobbering): Likewise.
11010         (verify_memory_partitions): Likewise.
11011         (init_tree_ssa): Allocate bitmap instead of hashtable for
11012         referenced_vars.
11013         (delete_tree_ssa): Adjust.
11014         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11015         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11016         (compute_tag_properties): Likewise.
11017         (set_initial_properties): Likewise.
11018         (find_partition_for): Likewise.
11019         (update_reference_counts): Likewise.
11020         (dump_may_aliases_for): Likewise.
11021         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11022         (add_call_clobber_ops): Likewise.
11023         (add_call_read_ops): Likewise.
11024         (get_asm_expr_operands): Likewise.
11025         * tree-into-ssa.c (dump_decl_set): Likewise.
11026         (update_ssa): Likewise.
11027         * tree-sra.c (scan_function): Likewise.
11028         (decide_instantiations): Likewise.
11029         (scalarize_parms): Likewise.
11030         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11031         (dsa_named_for): Likewise.
11032         * tree-ssa-structalias.c (update_alias_info): Likewise.
11033         (merge_smts_into): Likewise.
11034
11035 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11036
11037         PR 34351
11038         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
11039         * c-opts.c (c_common_handle_option): Wall enables
11040         Wvolatile-register-var.
11041         * common.opt: Move Wvolatile-register-var to...
11042         * c.opt: ...here.
11043         
11044 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11045
11046         * common.opt (Wlarger-than=): New.
11047         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
11048         -Wlarger-than=.
11049         * opts.c (common_handle_option): Handle -Wlarger-than=.
11050         * optc-gen.awk: Likewise.
11051         * opth-gen.awk: Likewise.
11052         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
11053         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11054         
11055 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11056
11057         * c-common.c (match_case_to_enum_1): Add appropriate
11058         OPT_W* parameter to warning.
11059         (c_do_switch_warnings): Likewise.
11060         * c-typeck.c (warning_init): Add one more parameter following
11061         'warning' function.
11062         (push_init_level): Update call to warning_init.
11063         (pop_init_level): Likewise.
11064         (add_pending_init): Likewise.
11065         (output_init_element: Likewise.
11066
11067 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11068
11069         PR 28322
11070         * toplev.c (toplev_main): If there are warnings or error, print
11071         errors for ignored options.
11072         * opts.c (ignored_options): New static variable.
11073         (postpone_unknown_option_error): New.
11074         (print_ignored_options): New.
11075         (handle_option): Postpone errors for unknown -Wno-* options.
11076         * opts.h (print_ignored_options): Declare.
11077         
11078 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
11079
11080         * config/mips/mips.md (loadgp_blockage, blockage): Change type
11081         to "ghost".
11082
11083 2008-02-25  Richard Guenther  <rguenther@suse.de>
11084
11085         Revert:
11086         2008-02-25  Richard Guenther  <rguenther@suse.de>
11087
11088         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11089         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11090         (lookup_decl_from_uid): Declare.
11091         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11092         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11093         (decl_for_uid_map): New global hashtable mapping DECL_UID
11094         to the decl tree.
11095         (init_ttree): Allocate it.
11096         (insert_decl_to_uid_decl_map): New helper function.
11097         (make_node_stat): Insert new decls into the map.
11098         (copy_node_stat): Likewise.
11099         (lookup_decl_from_uid): New function.
11100         (print_decl_for_uid_map_statistics): New helper.
11101         (dump_tree_statistics): Call it.
11102
11103         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11104         (referenced_var_iterator): Adjust.
11105         (FOR_EACH_REFERENCED_VAR): Adjust.
11106         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11107         (num_referenced_vars): Adjust.
11108         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11109         (first_referenced_var): Remove.
11110         (end_referenced_vars_p): Likewise.
11111         (next_referenced_var): Likewise.
11112         (referenced_var_iterator_set): New helper function.
11113         * tree-dfa.c (referenced_var_lookup): Adjust.
11114         (referenced_var_check_and_insert): Likewise.
11115         (remove_referenced_var): Likewise.
11116         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11117         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11118         (verify_call_clobbering): Likewise.
11119         (verify_memory_partitions): Likewise.
11120         (init_tree_ssa): Allocate bitmap instead of hashtable for
11121         referenced_vars.
11122         (delete_tree_ssa): Adjust.
11123         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11124         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11125         (compute_tag_properties): Likewise.
11126         (set_initial_properties): Likewise.
11127         (find_partition_for): Likewise.
11128         (update_reference_counts): Likewise.
11129         (dump_may_aliases_for): Likewise.
11130         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11131         (add_call_clobber_ops): Likewise.
11132         (add_call_read_ops): Likewise.
11133         (get_asm_expr_operands): Likewise.
11134         * tree-into-ssa.c (dump_decl_set): Likewise.
11135         (update_ssa): Likewise.
11136         * tree-sra.c (scan_function): Likewise.
11137         (decide_instantiations): Likewise.
11138         (scalarize_parms): Likewise.
11139         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11140         (dsa_named_for): Likewise.
11141         * tree-ssa-structalias.c (update_alias_info): Likewise.
11142         (merge_smts_into): Likewise.
11143
11144 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
11145
11146         PR fortran/29549
11147         * doc/invoke.texi (-fcx-limited-range): Document new option.
11148         * toplev.c (process_options): Handle -fcx-fortran-rules.
11149         * common.opt: Add documentation for -fcx-fortran-rules.
11150
11151 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
11152
11153         PR c/35162
11154         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
11155         actual behaviour and C99.
11156         
11157 2008-02-26  Ben Elliston  <bje@au.ibm.com>
11158
11159         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
11160         (ASM_CPU_POWER6_SPEC): Likewise.
11161         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
11162         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
11163         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
11164
11165 2008-02-25  Richard Guenther  <rguenther@suse.de>
11166
11167         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11168         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11169         (lookup_decl_from_uid): Declare.
11170         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11171         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11172         (decl_for_uid_map): New global hashtable mapping DECL_UID
11173         to the decl tree.
11174         (init_ttree): Allocate it.
11175         (insert_decl_to_uid_decl_map): New helper function.
11176         (make_node_stat): Insert new decls into the map.
11177         (copy_node_stat): Likewise.
11178         (lookup_decl_from_uid): New function.
11179         (print_decl_for_uid_map_statistics): New helper.
11180         (dump_tree_statistics): Call it.
11181
11182         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11183         (referenced_var_iterator): Adjust.
11184         (FOR_EACH_REFERENCED_VAR): Adjust.
11185         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11186         (num_referenced_vars): Adjust.
11187         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11188         (first_referenced_var): Remove.
11189         (end_referenced_vars_p): Likewise.
11190         (next_referenced_var): Likewise.
11191         (referenced_var_iterator_set): New helper function.
11192         * tree-dfa.c (referenced_var_lookup): Adjust.
11193         (referenced_var_check_and_insert): Likewise.
11194         (remove_referenced_var): Likewise.
11195         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11196         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11197         (verify_call_clobbering): Likewise.
11198         (verify_memory_partitions): Likewise.
11199         (init_tree_ssa): Allocate bitmap instead of hashtable for
11200         referenced_vars.
11201         (delete_tree_ssa): Adjust.
11202         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11203         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11204         (compute_tag_properties): Likewise.
11205         (set_initial_properties): Likewise.
11206         (find_partition_for): Likewise.
11207         (update_reference_counts): Likewise.
11208         (dump_may_aliases_for): Likewise.
11209         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11210         (add_call_clobber_ops): Likewise.
11211         (add_call_read_ops): Likewise.
11212         (get_asm_expr_operands): Likewise.
11213         * tree-into-ssa.c (dump_decl_set): Likewise.
11214         (update_ssa): Likewise.
11215         * tree-sra.c (scan_function): Likewise.
11216         (decide_instantiations): Likewise.
11217         (scalarize_parms): Likewise.
11218         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11219         (dsa_named_for): Likewise.
11220         * tree-ssa-structalias.c (update_alias_info): Likewise.
11221         (merge_smts_into): Likewise.
11222
11223 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
11224
11225         PR target/35258
11226         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
11227         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
11228         * alias.h (nonoverlapping_memrefs_p): Likewise.
11229
11230 2008-02-25  Jan Beulich  <jbeulich@novell.com>
11231
11232         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
11233         * config/i386/netware-libgcc.exp: Add __bswap?i2,
11234         __emultls_get_address, __emultls_register_common,
11235         __floatundi?f, and _Unwind_GetIPInfo.
11236         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
11237         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
11238         (gen_regparm_prefix): Likewise.
11239         (i386_nlm_encode_section_info): Sync with
11240         config/i386/winnt.c:i386_pe_encode_section_info().
11241         (i386_nlm_maybe_mangle_decl_assembler_name): New.
11242         i386_nlm_mangle_decl_assembler_name): New.
11243         (netware_override_options): New.
11244         * config/i386/netware.h (netware_override_options): Declare.
11245         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
11246         (i386_nlm_mangle_decl_assembler_name): Declare.
11247         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
11248
11249 2008-02-25  Ben Elliston  <bje@au.ibm.com>
11250
11251         PR other/32948
11252         * c-decl.c (grokdeclarator): Remove unused local variables
11253         `typedef_type' and `type_as_written'.
11254         * bb-reorder.c
11255         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
11256         unused local variable `has_hot_blocks'.
11257         (fix_crossing_conditional_branches): Remove unused local variable
11258         `prev_bb'.
11259         
11260 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
11261
11262         PR middle-end/19984
11263         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
11264         using DEF_C99_BUILTIN.
11265         (BUILT_IN_NANF): Ditto.
11266         (BUILT_IN_NANL): Ditto.
11267
11268 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
11269             Revital Eres  <eres@il.ibm.com>
11270
11271         * modulo-sched.c (calculate_must_precede_follow): Address TODO
11272         regarding the order of two dependent insns in the same row.
11273
11274 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
11275
11276         * stor-layout.c (layout_decl): Do not bump the alignment of a
11277         bit-field to more than byte alignment if it is packed.
11278
11279 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
11280
11281         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
11282         e300c2 and e300c3.
11283
11284 2008-02-24  Diego Novillo  <dnovillo@google.com>
11285
11286         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
11287
11288         PR 33738
11289         * tree-vrp.c (vrp_evaluate_conditional): With
11290         -Wtype-limits, emit a warning when comparing against a
11291         constant outside the natural range of OP0's type.
11292         * c.opt (Wtype-limits): Move ...
11293         * common.opt (Wtype-limits): ... here.
11294
11295 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
11296
11297         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
11298         * config/rs6000/e300c2c3.md: New file.
11299         * config/rs6000/rs6000.c (processor_costs): Add new costs for
11300         e300c2 and e300c3.
11301         (rs6000_override_options): Add e300c2 and e300c3 cases to
11302         processor_target_table. Do not allow usage of Altivec or Spe
11303         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
11304         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
11305         * config/rs6000/rs6000.h (processor_type): Add
11306         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
11307         (ASM_CPU_SPEC): Add e300c2 and e300c3.
11308         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
11309         and ppce300c3. Include e300c2c3.md.
11310
11311 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
11312
11313         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
11314         instead of TARGET_STRICT_ALIGN.
11315
11316 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
11317
11318         * explow.c (memory_address): Assert that the generated address is
11319         valid.
11320
11321 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
11322
11323         PR target/25477
11324         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
11325         * config/darwin-ppc-ldouble-patch.def: New file.
11326         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
11327         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
11328         SUBTARGET_INIT_BUILTINS if defined.
11329         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
11330         New functions.
11331
11332 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11333
11334         PR rtl-opt/33512
11335         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
11336         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
11337
11338 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11339
11340         PR pch/35027
11341         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
11342         file" warning condtional on -Winvalid-PCH.
11343
11344 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
11345
11346         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
11347
11348 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
11349
11350         PR target/22076
11351         PR target/34256 
11352         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
11353         prevent reload from using MMX registers.
11354         (*mov<mode>_internal): Ditto.
11355         (*movv2sf_internal_rex64): Ditto.
11356         (*movv2sf_internal): Ditto.
11357
11358 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11359
11360         PR documentation/31569
11361         * doc/install.texi2html: Use makeinfo --no-number-sections.
11362
11363 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11364
11365         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
11366         ensure that we can address an entire entity > 8 bytes.  Don't
11367         generate reg+reg addressing for such data.
11368
11369 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11370
11371         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
11372         strings when optimizing for size, unless the target cares about
11373         alignment.
11374
11375 2008-02-22  Tom Tromey  <tromey@redhat.com>
11376
11377         * regclass.c (current_pass): Remove declaration.
11378
11379 2008-02-22  Anatoly Sokolov <aesok@post.ru>
11380
11381         * config/avr/libgcc.S (__RAMPZ__): Define.
11382         (__do_copy_data): Add for devices with 128KB code memory.
11383
11384 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11385
11386         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
11387         Use spe_abi.
11388         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
11389
11390 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
11391
11392         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
11393         GENNONACR_REGS.
11394
11395 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11396
11397         PR c/19999
11398         * c-typeck.c (build_binary_op): Warn about floating point
11399         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
11400
11401 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
11402
11403         PR target/34526
11404         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
11405         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
11406         add vrsave.
11407         (rs6000_override_options): Set altivec_abi as default, not override,
11408         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
11409         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
11410         is used; use new member spe_abi.
11411         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
11412         spe_abi and altivec_abi.
11413
11414 2008-02-22  Tomas Bily  <tbily@suse.cz>
11415
11416         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
11417
11418 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11419
11420         PR bootstrap/35273
11421         * config.build (build_file_translate): Set to `CMD //c' only if
11422         it works.
11423         * Makefile.in (build_file_translate): Improve comment.
11424
11425 2008-02-21  Jan Hubicka  <jh@suse.cz>
11426
11427         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
11428         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
11429         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
11430
11431 2008-02-21  Michael Matz  <matz@suse.de>
11432
11433         PR target/35264
11434         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
11435
11436 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
11437
11438         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
11439         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
11440         as insn constraint.
11441         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
11442         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
11443         SSE_VEC_FLOAT_MODE_P as insn constraint.
11444         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
11445         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
11446         sse4a_movntdf using MODEF mode iterator.
11447         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
11448         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
11449         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
11450         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
11451         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
11452         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
11453         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
11454
11455 2008-02-21  Richard Guenther  <rguenther@suse.de>
11456
11457         * tree.def (PAREN_EXPR): New tree code.
11458         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
11459         and PAREN_EXPR.
11460         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
11461         * expr.c (expand_expr_real_1): Likewise.
11462         * tree-inline.c (estimate_num_insns_1): Likewise.
11463         * tree-complex.c (expand_complex_move): Likewise.
11464         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
11465         as plain x.
11466
11467 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11468
11469         PR target/35225
11470         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
11471
11472 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11473
11474         PR target/35190
11475         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
11476
11477         * config/sh/sh.c (find_barrier): Don't go past
11478         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
11479
11480 2008-02-20  DJ Delorie  <dj@redhat.com>
11481
11482         * config/h8300/h8300.md (insv): Force source operand to be a register.
11483
11484         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
11485         as a jump, not as a plain insn.
11486         
11487 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
11488
11489         * doc/invoke.texi (Warning Options): Add new option
11490         -Wframe-larger-than=.
11491         (-Wframe-larger-than): Document.
11492
11493         * flags.h (warn_frame_larger_than, frame_larger_than_size):
11494         Add declarations for new option variables.
11495
11496         * final.c (final_start_function): Check the frame size
11497         before emission and issue a Wframe-larger-than warning.
11498
11499         * opts.c (warn_frame_larger_than, frame_larger_than_size):
11500         Add definitions for new option variables.
11501         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
11502
11503         * common.opt (Wframe-larger-than=): New option.
11504
11505 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11506
11507         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
11508         (<sse>_div<mode>3): Ditto.
11509         (<sse>_vmdiv<mode>3): Ditto.
11510         (<sse>_vmsqrt<mode>2): Ditto.
11511         (*smax<mode>3): Ditto.
11512         (sse5_frcz<mode>2): Ditto.
11513         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
11514         as insn constraint.
11515
11516 2008-02-20  Richard Guenther  <rguenther@suse.de>
11517
11518         PR middle-end/35265
11519         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
11520         be happy with INTEGRAL_TYPE_P.
11521
11522 2008-02-20  Richard Guenther  <rguenther@suse.de>
11523
11524         * fold-const.c (split_tree): Associate floatig-point expressions
11525         if flag_associative_math is set.
11526
11527 2008-02-20  Richard Guenther  <rguenther@suse.de>
11528
11529         * tree.h (fold_real_zero_addition_p): Declare.
11530         * fold-const.c (fold_real_zero_addition_p): Export.
11531         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
11532         floating-point operations with zero and one.
11533
11534 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
11535
11536         * doc/install.texi: Correct references to CFLAGS, replacing them
11537         with BOOT_CFLAGS.  Document flags used during bootstrap for
11538         target libraries.
11539                                 
11540 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11541
11542         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
11543         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
11544         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
11545         insn constraint.
11546         (smin<mode>3): Ditto from similar patterns.
11547         (smax<mode>3): Ditto.
11548         (*ieee_smin<mode>3): Ditto.
11549         (*ieee_smax<mode>3): Ditto.
11550         * config/i386/sse.md (sse): New mode attribute.
11551         (mov<mode>): Macroize expander from movv4sf and movv2df using
11552         SSEMODEF2P mode iterator.
11553         (<sse>_movnt<mode>): Ditto from similar patterns. Use
11554         SSE_VEC_FLOAT_MODE_P as insn constraint.
11555         (storent<mode>): Ditto.
11556         (storent<mode>): Macroize expander from storentsf and storentdf using
11557         MODEF mode iterator.
11558         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
11559         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
11560         (abs<mode>2): Ditto from similar patterns.
11561         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
11562         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
11563         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
11564         (<sse>_vmsqrt<mode>2): Ditto.
11565         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
11566         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
11567         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
11568         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
11569         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
11570         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
11571         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
11572         insn constraint.
11573         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
11574         iterator and SSE_FLOAT_MODE_P as insn constraint.
11575         (<sse>_ucomi): Ditto from similar patterns.
11576         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
11577         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
11578         SSE_VEC_FLOAT_MODE_P as insn constraint.
11579         (vcond<mode>): Ditto from similar patterns.
11580         (and<mode>3, *and<mode>3): Ditto.
11581         (<sse>_nand<mode>3): Ditto.
11582         (ior<mode>3, *ior<mode>3): Ditto.
11583         (xor<mode>3, *xor<mode>3): Ditto.
11584         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
11585         iterator and SSE_FLOAT_MODE_P as insn constraint.
11586         (*nand<mode>3): Ditto from similar patterns.
11587         (*ior<mode>3): Ditto.
11588         (*xor<mode>3): Ditto.
11589
11590 2008-02-20  Ira Rosen  <irar@il.ibm.com>
11591
11592         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
11593         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
11594         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
11595
11596 2008-02-19  Jan Hubicka  <jh@suse.cz>
11597
11598         * predict.c (tree_bb_level_predictions): Remove variable next
11599         mistakely introduced by previous commit.
11600
11601 2008-02-19  Jan Hubicka  <jh@suse.cz>
11602
11603         * predict.c (predict_paths_leading_to): Rewrite.
11604         (predict_paths_for_bb): New.
11605         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
11606
11607 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11608
11609         PR bootstrap/35218
11610         * Makefile.in (build_file_translate): New.
11611         (gcc-vers.texi): Use it for translating $(abs_srcdir).
11612         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
11613         * configure.ac (build_file_translate): Substitute it.
11614         * configure: Regenerate.
11615
11616 2008-02-19  Jan Hubicka  <jh@suse.cz>
11617
11618         PR rtl-optimization/34408
11619         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
11620         invalid sharing.
11621
11622 2008-02-19  Jan Hubicka  <jh@suse.cz>
11623
11624         PR middle-end/28779
11625         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
11626         call_expr.
11627
11628 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
11629
11630         PR Ada/35186
11631         * config/i386/i386-modes.def: Revert the last DI alignment
11632         change until Ada people can look into it.
11633
11634 2008-02-19  Nick Clifton  <nickc@redhat.com>
11635
11636         * opts.c (print_specific_help): Fix typo in --help text.
11637
11638 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
11639
11640         PR target/35239
11641         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
11642         32-bit inline asm without asm alternatives for host GCC < 3.0.
11643
11644 2008-02-19  Richard Guenther  <rguenther@suse.de>
11645
11646         PR tree-optimization/34989
11647         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
11648         Allow propagation to INDIRECT_REF if we can simplify only.
11649
11650 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11651
11652         * c-common.c (warn_for_collisions_1): Use appropriate option when
11653         warning.
11654
11655 2008-02-19  Nick Clifton  <nickc@redhat.com>
11656
11657         PR other/31349
11658         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
11659         (handle_options): Fix indentation.
11660         (print_filtered_help): If no language-specific options were
11661         displayed tell the user how to list all the options supported by
11662         the language's front-end.
11663         (print_specific_help): Fix indentation and remove duplicate line.
11664         (common_handle_option): Handle the -v option.
11665         For --help enable the display of undocumented options if the -v
11666         switch has been included on the command line.
11667         For --help= check for overlaps in the arguments between the option
11668         classes and the language names and issue a warning when they
11669         cannot be disambiguated.
11670         * c.opt (v): Pass on to the common option handler.
11671
11672 2008-02-19  Revital Eres  <eres@il.ibm.com> 
11673
11674         * modulo-sched.c (sms_schedule): Change dump message when
11675         create_ddg function fails.
11676         (try_scheduling_node_in_cycle): Rename row to cycle.
11677         (print_partial_schedule): Rename CYCLE to ROW.
11678
11679 2008-02-19  Christian Bruel  <christian.bruel@st.com>
11680             Zdenek Dvorak  <ook@ucw.cz>
11681
11682         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
11683
11684 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11685
11686         PR target/33555
11687         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
11688         (*x86_movdicc_0_m1_se): Ditto.
11689
11690 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11691
11692         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
11693         (CMPtype): Define as __gcc_CMPtype.
11694         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
11695         (CMPtype): Define as __gcc_CMPtype.
11696
11697 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
11698
11699         Support valgrind 3.3 for --enable-checking=valgrind.
11700         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
11701         here.
11702         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
11703         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
11704         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
11705         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
11706         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
11707         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
11708         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
11709         respectively.
11710         * ggc-zone.c: Similar.
11711         * ggc-page.c: Similar.
11712
11713 2008-02-19  Paul Brook  <paul@codesourcery.com>
11714
11715         PR target/35071
11716         * config/arm/ieee754-df.S: Fix do_it typo.
11717         * config/arm/ieee754-sf.S: Fix do_it typo.
11718
11719 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11720
11721         PR target/35189
11722         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
11723         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
11724         (OPTION_MASK_ISA_SSE_SET): Likewise.
11725         (OPTION_MASK_ISA_SSE2_SET): Likewise.
11726         (OPTION_MASK_ISA_SSE3_SET): Likewise.
11727         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
11728         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
11729         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
11730         (OPTION_MASK_ISA_SSE4_SET): Likewise.
11731         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
11732         (OPTION_MASK_ISA_SSE5_SET): Likewise.
11733         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
11734         (OPTION_MASK_ISA_MMX_UNSET): Updated.
11735         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
11736         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
11737         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
11738         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
11739         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
11740         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
11741         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
11742         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
11743         (OPTION_MASK_ISA_SSE4): Removed.
11744         (ix86_handle_option): Turn on bits in ix86_isa_flags and
11745         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
11746         (override_options): Don't turn on implied SSE/MMX bits in
11747         ix86_isa_flags.
11748
11749 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11750
11751         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11752         32bit host.
11753
11754 2008-02-18  Joey Ye  <joey.ye@intel.com>
11755
11756         PR middle-end/34921
11757         * tree-nested.c (insert_field_into_struct): Set type alignment
11758         to field alignment if the former is less than the latter.
11759
11760 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
11761
11762         * BASE-VER: Set to 4.4.0.
11763
11764 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11765
11766         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
11767         * doc/cfg.texi: Likewise.
11768         * doc/extend.texi: Likewise.
11769         * doc/gty.texi: Likewise.
11770         * doc/invoke.texi: Likewise.
11771         * doc/loop.texi: Likewise.
11772         * doc/md.texi: Likewise.
11773         * doc/passes.texi: Likewise.
11774         * doc/rtl.texi: Likewise.
11775         * doc/sourcebuild.texi: Likewise.
11776         * doc/tm.texi: Likewise.
11777         * doc/tree-ssa.texi: Likewise.
11778
11779 2008-02-17  Richard Guenther  <rguenther@suse.de>
11780
11781         PR middle-end/35227
11782         * tree-complex.c (init_parameter_lattice_values): Handle parameters
11783         without default definition.
11784
11785 2008-02-17  Richard Guenther  <rguenther@suse.de>
11786
11787         PR tree-optimization/35231
11788         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
11789         if A | B != 1.
11790
11791 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
11792
11793         Revert:
11794         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
11795         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11796         libgcc_cmp_return mode.
11797
11798 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11799
11800         PR c/28368
11801         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
11802
11803 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
11804
11805         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
11806         multilibs.
11807
11808 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11809
11810         * doc/c-tree.texi: Use `@.' where appropriate.
11811         * doc/extend.texi: Likewise.
11812         * doc/install.texi: Likewise.
11813         * doc/invoke.texi: Likewise.
11814         * doc/loop.texi: Likewise.
11815         * doc/makefile.texi: Likewise.
11816         * doc/md.texi: Likewise.
11817         * doc/passes.texi: Likewise.
11818         * doc/standards.texi: Likewise.
11819         * doc/tm.texi: Likewise.
11820
11821 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11822
11823         PR middle-end/35196
11824         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
11825         in entry_bb.
11826         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
11827         rather than in entry_bb.
11828
11829 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11830
11831         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11832         libgcc_cmp_return mode.
11833
11834 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11835
11836         PR middle-end/35130
11837         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
11838         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
11839
11840 2008-02-15  Richard Guenther  <rguenther@suse.de>
11841             Zdenek Dvorak  <ook@ucw.cz>
11842
11843         PR tree-optimization/35164
11844         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
11845         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
11846         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
11847         Only propagate addresses which do not have abnormal SSA_NAMEs
11848         in their operands.
11849
11850 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
11851
11852         PR target/35088
11853         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
11854
11855 2008-02-15  Jan Hubicka  <jh@suse.cz>
11856
11857         PR middle-end/35149
11858         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
11859
11860 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11861
11862         PR middle-end/34621
11863         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
11864         when calculating alignment_pad.
11865
11866 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11867
11868         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
11869         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
11870         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
11871         and STACK_BOUNDARY define.
11872
11873 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
11874
11875         PR preprocessor/35061
11876         * c-pragma.c (handle_pragma_pop_macro): Check that
11877         pushed_macro_table has been allocated.
11878
11879 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11880
11881         PR middle-end/35136
11882         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
11883         (force_gimple_operand): Likewise.
11884         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
11885         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
11886         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
11887         (find_interesting_uses_address): Check addressability and alignment
11888         of the base expression only after substituting bases of IVs into it.
11889
11890 2008-02-14  Michael Matz  <matz@suse.de>
11891
11892         PR target/34930
11893         * function.c (instantiate_virtual_regs_in_insn): Reload address
11894         before falling back to reloading the whole operand.
11895
11896 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11897
11898         * config/s390/s390.c (s390_mainpool_start): Emit the pool
11899         before the first section switch note.
11900
11901 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11902
11903         * doc/bugreport.texi: Update copyright years.
11904         * doc/c-tree.texi: Likewise.
11905         * doc/cfg.texi: Likewise.
11906         * doc/cpp.texi: Likewise.
11907         * doc/cppinternals.texi: Likewise.
11908         * doc/fragments.texi: Likewise.
11909         * doc/frontends.texi: Likewise.
11910         * doc/gcc.texi: Likewise.
11911         * doc/gty.texi: Likewise.
11912         * doc/hostconfig.texi: Likewise.
11913         * doc/implement-c.texi: Likewise.
11914         * doc/libgcc.texi: Likewise.
11915         * doc/loop.texi: Likewise.
11916         * doc/makefile.texi: Likewise.
11917         * doc/options.texi: Likewise.
11918         * doc/passes.texi: Likewise.
11919         * doc/rtl.texi: Likewise.
11920         * doc/sourcebuild.texi: Likewise.
11921         * doc/standards.texi: Likewise.
11922         * doc/tree-ssa.texi: Likewise.
11923         * doc/trouble.texi: Likewise.
11924
11925         * doc/extend.texi: Use @: or add comma where appropriate.
11926         * doc/invoke.texi: Likewise.
11927         * doc/tm.texi: Likewise.
11928
11929 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
11930
11931         PR target/34393
11932         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
11933         to a reg.
11934
11935 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
11936
11937         * doc/md.texi (clz, ctz): Add reference.
11938         * doc/rtl.texi (clz, ctz): Likewise.
11939
11940 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11941
11942         PR other/35148
11943         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
11944         srcdir.
11945
11946 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
11947
11948         * config/s390/s390.c (struct constant_pool): New field
11949         emit_pool_after added.
11950         (s390_mainpool_start): Set the emit_pool_after flag according
11951         to the section switch notes.
11952         (s390_mainpool_finish): Consider emit_pool_after when emitting
11953         the literal pool at the end of the function.
11954         (s390_chunkify_start): Force literal pool splits at section
11955         switch notes.
11956
11957 2008-02-13  Michael Matz  <matz@suse.de>
11958
11959         PR debug/35065
11960         * var-tracking.c (clobber_variable_part): Correctly traverse the
11961         list.
11962
11963 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11964
11965         PR 29673
11966         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
11967         Add -fdump-ipa-inline.
11968         * tree-dump.c (dump_files): Remove tree-inlined dump.
11969         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
11970         
11971 2008-02-12  Richard Guenther  <rguenther@suse.de>
11972
11973         PR tree-optimization/35171
11974         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
11975         default defs.
11976
11977 2008-02-12  Richard Guenther  <rguenther@suse.de>
11978
11979         PR middle-end/35163
11980         * fold-const.c (fold_widened_comparison): Use get_unwidened in
11981         value-preserving mode.  Disallow final truncation.
11982
11983 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
11984
11985         PR middle-end/35136
11986         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
11987         code from here to...
11988         (force_gimple_operand): ...here.
11989
11990 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
11991
11992         PR c++/35144
11993         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
11994         non-compatible pointers.
11995         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
11996         different FIELD_DECLs, try harder by comparing field offsets, sizes
11997         and types.
11998
11999         PR inline-asm/35160
12000         * function.c (match_asm_constraints_1): Don't replace the same input
12001         multiple times.
12002
12003 2008-02-12  Anatoly Sokolov <aesok@post.ru>
12004
12005         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
12006         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
12007         (expand_epilogue): Restore RAMPZ register.
12008         * config/avr/avr.md (RAMPZ_ADDR): New constant.
12009
12010 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
12011
12012         * config/i386/cygwin.asm: (__alloca): Correct calling
12013         convention and alignment.
12014         (__chkstk): Force 8 byte stack alignment.
12015
12016 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
12017             Richard Guenther  <rguenther@suse.de>
12018
12019         PR tree-optimization/33992
12020         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
12021         the zero we compare against.
12022
12023 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12024
12025         PR libfortran/35063
12026         * gthr-win32.h (__gthread_mutex_destroy_function): New function
12027         to CloseHandle after unlocking to prevent accumulation of handle
12028         count.
12029
12030 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12031
12032         PR middle_end/34150
12033         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
12034         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
12035         and update LABEL_NUSES during and after reload.
12036
12037 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
12038
12039         PR middle-end/34627
12040         * combine.c (simplify_if_then_else): Make sure the comparison is
12041         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
12042
12043 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
12044
12045         PR bootstrap/35051
12046         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
12047         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
12048         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
12049         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
12050         * tree.h (get_type_static_bounds): Likewise.
12051
12052 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12053
12054         * doc/invoke.texi (Option Summary, C++ Dialect Options)
12055         (Objective-C and Objective-C++ Dialect Options, Warning Options):
12056         Make -Wfoo language annotations match what the compiler outputs.
12057
12058 2008-02-08  Sa Liu  <saliu@de.ibm.com>
12059
12060         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
12061         intrinsics spu_convts, spu_convtu, spu_convtf.
12062
12063 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
12064
12065         * doc/extend.texi (Function Attributes) <noinline>: Mention
12066         asm ("") as method to keep calls.
12067
12068 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12069
12070         PR other/32754
12071         * doc/options.texi (Options): Replace references to opts.sh with
12072         optc-gen.awk.
12073         * opts-common.c: Likewise.
12074         * optc-gen.awk: Likewise.
12075         
12076 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
12077
12078         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
12079
12080 2008-02-07  Richard Henderson  <rth@redhat.com>
12081
12082         PR rtl-opt/33410
12083         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
12084         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
12085         funny mode.
12086
12087 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
12088
12089         PR tree-optimization/35085
12090         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
12091         for operand entry oe2 in addition to operand entry oe3 in order to
12092         expose more opportunities for vectorizer sum reduction.
12093
12094 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12095
12096         PR other/35107
12097         * Makefile.in (LIBS): Remove $(GMPLIBS).
12098         (cc1-dummy, cc1): Add $(GMPLIBS).
12099
12100 2008-02-06  Jan Hubicka  <jh@suse.cz>
12101
12102         PR target/23322
12103         * i386.md (moddf_integer): Do not produce partial memory stalls for
12104         targets where it hurts.
12105
12106 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
12107
12108         PR target/35083
12109         * optabs.c (expand_float): Do not check for decimal modes when
12110         expanding unsigned integer through signed conversion.
12111
12112 2008-02-06  Nick Clifton  <nickc@redhat.com>
12113
12114         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
12115         inside the clobber with a match_operand and duplicated operand
12116         number in the constraint.
12117         (ineqbranchsi): Delete redundant comment.
12118
12119 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
12120
12121         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
12122         builtin_define ("__USE_INIT_FINI__").
12123         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
12124         -msx multilibs.
12125         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
12126
12127 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12128
12129         PR documentation/30330
12130         * doc/invoke.texi (C++ Dialect Options)
12131         (Objective-C and Objective-C++ Dialect Options, Warning Options):
12132         For each warning option -Wfoo that allows -Wno-foo, ensure both
12133         -Wfoo and -Wno-foo are listed in the option index.  Fix index
12134         entry of -Wswitch-default, index -Wnormalized= including the
12135         `=', and -Wlarger-than-@var{len} including @var{len}.
12136
12137 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
12138
12139         * config/i386/i386.md (floatunssisf2): Use
12140         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
12141         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
12142         Macroize expander using MODEF mode iterator.
12143
12144 2008-02-05  Diego Novillo  <dnovillo@google.com>
12145
12146         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
12147
12148         PR 33738
12149         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
12150
12151 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12152
12153         PR other/35070
12154         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
12155
12156 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
12157
12158         PR target/35084
12159         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
12160         to indicate if a message should be generated.
12161         (init_cumulative_args): Updated.
12162         (function_value_32): Likewise.
12163
12164 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
12165
12166         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
12167
12168 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
12169
12170         PR target/35083
12171         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
12172         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
12173
12174 2008-02-04  Diego Novillo  <dnovillo@google.com>
12175
12176         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
12177
12178         PR 33738
12179         * tree-vrp.c (vrp_evaluate_conditional): With
12180         -Wtype-limits, emit a warning when comparing against a
12181         constant outside the natural range of OP0's type.
12182
12183 2008-02-04  Richard Guenther  <rguenther@suse.de>
12184
12185         PR middle-end/33631
12186         * expr.c (count_type_elements): Give for unions instead of
12187         guessing.
12188
12189 2008-02-04  Richard Guenther  <rguenther@suse.de>
12190
12191         PR middle-end/35043
12192         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
12193         to TYPE_DOMAINs base type instead of using bitsizetype here.
12194
12195 2008-02-03  Jason Merrill  <jason@redhat.com>
12196
12197         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
12198
12199 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12200
12201         PR other/29972
12202         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
12203         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
12204         (RS/6000 and PowerPC Options): Fix typos and markup.
12205         * doc/passes.texi (Tree-SSA passes): Likewise.
12206
12207 2008-02-02  Michael Matz  <matz@suse.de>
12208
12209         PR target/35045
12210         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
12211         from record_last_reg_set_info.
12212         (record_last_reg_set_info): Take an RTX argument, iterate over all
12213         constituent hardregs.
12214         (record_last_set_info, record_opr_changes): Change calls to
12215         new signature or to record_last_reg_set_info_regno.
12216
12217 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
12218
12219         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
12220
12221 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
12222
12223         PR rtl-optimization/34773
12224         * reg-notes.def (EQUAL): Mention significance of combination of
12225         REG_EQUAL and REG_RETVAL.
12226         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
12227         insn that has a REG_RETVAL.
12228
12229 2008-02-01  Roger Sayle  <roger@eyesopen.com>
12230
12231         PR bootstrap/33781
12232         * configure.ac (--enable-fixed-point): Disable unless explicitly
12233         requested on IRIX.
12234         * configure: Regenerate.
12235
12236 2008-02-01  Richard Guenther  <rguenther@suse.de>
12237
12238         PR other/35042
12239         * invoke.texi (-finline-limit): Remove no longer true parts
12240         of the documentation.  Note that there is no default value.
12241
12242 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
12243             Mark Mitchell  <mark@codesourcery.com>
12244             Ben Elliston  <bje@au.ibm.com>
12245
12246         PR c/29326
12247         * doc/extend.texi (Other Builtins): Document.
12248
12249 2008-01-31  Tom Browder <tom.browder@gmail.com>
12250
12251         * doc/c-tree.texi (Types): Fix grammar.
12252         (Expression trees): Ditto.
12253         * doc/passes.texi (Tree-SSA passes): Ditto.
12254         
12255         * doc/configterms.texi (Configure Terms): Fix typo.
12256         * doc/cpp.texi (Common Predefined Macros): Ditto.
12257         * doc/md.texi (Machine Constraints): Ditto.
12258         
12259         * doc/makefile.texi (Makefile): Add comma.
12260
12261 2008-01-31  Tom Browder  <tom.browder@gmail.com>
12262             Gerald Pfeifer  <gerald@pfeifer.com>
12263         
12264         * doc/sourcebuild.texi (Front End): Remove references to CVS
12265         and CVSROOT/modules.
12266         (Texinfo Manuals): Replace reference to CVS by one to SVN.
12267         (Back End): Remove reference to CVS.
12268
12269 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
12270
12271         PR target/34900
12272         * config/mips/mips.c (gen_load_const_gp): New function, taking a
12273         comment from...
12274         (mips16_gp_pseudo_reg): ...here.
12275         * config/mips/mips.md (load_const_gp): Replace with...
12276         (load_const_gp_<mode>): ...this :P-based insn.
12277
12278 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12279
12280         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
12281         options. Minor fixes.
12282         (-std): Move reference to standards closer to where language
12283         standards are first mentioned.
12284         
12285 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
12286
12287         PR rtl-optimization/34995
12288         * reload.c (alternative_allows_const_pool_ref): Take an rtx
12289         parameter and return a bool.  If the rtx parameter is nonnull,
12290         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
12291         (find_reloads): Update call accordingly.  Pass the new operand
12292         if it needed no address reloads, otherwise pass null.
12293
12294 2008-01-30  Richard Henderson  <rth@redhat.com>
12295
12296         PR c/34993
12297         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
12298         for unbounded arrays.
12299
12300 2008-01-30  Silvius Rus  <rus@google.com>
12301
12302         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
12303
12304 2008-01-30  Jan Hubicka  <jh@suse.cz>
12305
12306         PR target/34982
12307         * i386.c (init_cumulative_args): Use real function declaration when
12308         calling locally.
12309
12310 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
12311
12312         PR rtl-optimization/34998
12313         * global.c (build_insn_chain): Treat non-subreg_lowpart
12314         SUBREGs of pseudos as clobbering all the words covered by the
12315         SUBREG, not just all the bytes.
12316         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
12317         original df_ref rather than an extract parameter.
12318         (global_conflicts): Update call accordingly.
12319
12320 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
12321
12322         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
12323         the overflow check to make it easier to read.
12324         (__fixtfdi): Change the type of the ll member in union
12325         long_double to UDItype_x.
12326
12327 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
12328
12329         PR middle-end/34969
12330         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
12331         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
12332         * tree-inline.c (fold_marked_statements): Call
12333         cgraph_update_edges_for_call_stmt if folding a call statement.
12334         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
12335         debug_generic_stmt calls, reset it back afterwards.
12336
12337         PR c/35017
12338         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
12339         static decls.
12340         * c-typeck.c (build_external_ref): Don't pedwarn about
12341         static vars in current function's scope.
12342
12343 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
12344
12345         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
12346
12347 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
12348
12349         PR c/35002
12350         * ipa-struct-reorg.c: Fix spelling.
12351         * params.def: Ditto.
12352
12353 2008-01-29  Richard Guenther  <rguenther@suse.de>
12354
12355         PR middle-end/35006
12356         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
12357         field.
12358         * tree-inline.c (remap_type): Increment remapping_type_depth
12359         around remapping types.
12360         (copy_body_r): Only add referenced variables if they are referenced
12361         from code, not types.
12362
12363 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
12364
12365         PR c++/34055
12366         PR c++/34103
12367         PR c++/34219
12368         PR c++/34606
12369         PR c++/34753
12370         PR c++/34754
12371         PR c++/34755
12372         PR c++/34919
12373         PR c++/34961
12374         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
12375         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
12376
12377 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
12378
12379         PR target/34412
12380         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
12381         pointer for tiny stack.
12382
12383 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12384
12385         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
12386
12387 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12388
12389         * config/vx-common.h: Fix typo in comment.
12390
12391 2008-01-28  Ian Lance Taylor  <iant@google.com>
12392
12393         PR c++/34862
12394         PR c++/33407
12395         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12396         coalesce pointers if they have different DECL_NO_TBAA_P values.
12397         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
12398         between variables with different DECL_NO_TBAA_P values.
12399
12400 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
12401
12402         PR 31535
12403         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
12404         are not legitimate small data references on SPE targets.
12405
12406 2008-01-28  David Daney  <ddaney@avtrex.com>
12407
12408         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
12409
12410 2008-01-28  David Daney  <ddaney@avtrex.com>
12411
12412         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
12413
12414 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
12415
12416         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
12417         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
12418         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
12419         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
12420         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
12421         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
12422         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
12423         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
12424
12425 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12426
12427         * basic-block.h (condjump_equiv_p): Fix comment.
12428
12429 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12430
12431         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
12432         print_generic_stmt_indented): Fix comment.
12433
12434 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12435
12436         * configure.ac (__stack_chk_fail): Add detecion for availability
12437         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
12438         * configure: Regenerate.
12439
12440 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
12441
12442         PR middle-end/34688
12443         * final.c (output_addr_const): Handle TRUNCATE.
12444
12445 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
12446
12447         PR target/34711
12448         * tree-ssa-loop-ivopts.c (comp_cost): New type.
12449         (zero_cost, infinite_cost): New constants.
12450         (struct cost_pair): Change type of cost to comp_cost.
12451         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
12452         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
12453         New functions.
12454         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
12455         split_address_cost, ptr_difference_cost, difference_cost,
12456         get_computation_cost_at, get_computation_cost,
12457         determine_use_iv_cost_generic, determine_use_iv_cost_address,
12458         determine_use_iv_cost_condition, determine_use_iv_costs,
12459         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
12460         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
12461         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
12462         Change type of cost to comp_cost.
12463         (determine_iv_cost): Increase cost of non-original ivs, instead
12464         of decreasing the cost of original ones.
12465         (get_address_cost): Indicate the complexity of the addressing mode 
12466         in comp_cost.
12467         (try_add_cand_for): Prefer using ivs not specific to some object.
12468         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
12469
12470 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
12471             Janis Johnson  <janis187@us.ibm.com>
12472
12473         PR target/34814
12474         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
12475         (TARGET_INSTANTIATE_DECLS): Likewise.
12476         * target.h (expand_to_rtl_hook): New target hook.
12477         (instantiate_decls): Likewise.
12478         * function.c (instantiate_decl): Make non-static.  Rename to...
12479         (instantiate_decl_rtl): ... this.
12480         (instantiate_expr): Use instantiate_decl_rtl.
12481         (instantiate_decls_1): Likewise.
12482         (instantiate_decls): Likewise.
12483         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
12484         * function.h (instantiate_decl_rtl): Add prototype.
12485         * cfgexpand.c (target.h): New include.
12486         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
12487         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
12488         (TARGET_INSTANTIATE_DECLS): Likewise.
12489         (TARGET_INITIALIZER): New target hooks added.
12490         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
12491         New prototype.
12492         * config/rs6000/rs6000.c (tree-flow.h): New include.
12493         (machine_function): Add sdmode_stack_slot field.
12494         (rs6000_alloc_sdmode_stack_slot): New function.
12495         (rs6000_instantiate_decls): Likewise.
12496         (rs6000_secondary_memory_needed_rtx): Likewise.
12497         (rs6000_check_sdmode): Likewise.
12498         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
12499         (TARGET_INSTANTIATE_DECLS): Likewise.
12500         (rs6000_hard_regno_mode_ok): Allow SDmode.
12501         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
12502         (rs6000_emit_move): Handle SDmode.
12503         (function_arg_advance): Likewise.
12504         (function_arg): Likewise.
12505         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
12506         SDmode var args for 32-bit compiles.
12507         (rs6000_secondary_reload_class): Handle SDmode.
12508         (rs6000_output_function_epilogue): Likewise.
12509         (rs6000_function_value): Simplify if statement.
12510         (rs6000_libcall_value): Likewise.
12511         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
12512         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
12513         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
12514         (movsd_hardfloat): New define_insn.
12515         (movsd_softfloat): Likewise.
12516         (movsd_store): Likewise.
12517         (movsd_load): Likewise.
12518         (extendsddd2): Likewise.
12519         (extendsdtd2): Likewise.
12520         (truncddsd2): Likewise.
12521         (movdd_hardfloat64): Fixup comment.
12522         (UNSPEC_MOVSD_LOAD): New constant.
12523         (UNSPEC_MOVSD_STORE): Likewise.
12524
12525 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
12526
12527         PR c++/34965
12528         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
12529         TRUTH_XOR_EXPR.
12530         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
12531         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
12532         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
12533         and TRUTH_XOR_EXPR.
12534
12535 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
12536
12537         PR target/34794
12538         * config.gcc: Separate AIX 5.3 from AIX 6.1.
12539         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
12540         __LONGDOUBLE128 too.
12541         * config/rs6000/aix61.h: New file.
12542
12543 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12544
12545         PR rtl-optimization/34959
12546         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
12547         popcount and parity rtxes the same mode as their operand.
12548         Truncate or extend the result to the return value's mode
12549         if necessary.
12550
12551 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12552
12553         PR target/34981
12554         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
12555         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
12556         to GOT_VERSION_REGNUM.
12557         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
12558         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
12559         * config/mips/mips.c (mips_emit_call_insn): New function.
12560         (mips_call_tls_get_addr): Call mips_expand_call directly.
12561         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
12562         emit_call_insn.
12563         (mips16_build_call_stub): Likewise.  Return the call insn or null.
12564         (mips_expand_call): Update the call to mips16_build_call_stub
12565         accordingly and a remove redundant condition.  Assert that MIPS16
12566         stubs do not use lazy binding.  Use mips_emit_call_insn and return
12567         the call insn.
12568         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
12569         TARGET_USE_GOT.
12570         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
12571         (mips_avoid_hazard): Remove hazard_set handling.
12572         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
12573         (UNSPEC_RESTORE_GP): ...this.
12574         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
12575         (FAKE_CALL_REGNO): Rename to...
12576         (GOT_VERSION_REGNUM): ...this.
12577         (type): Add "ghost" value.  Add an associated insn reservation.
12578         (hazard_set): Remove.
12579         (exception_receiver): Rename to...
12580         (restore_gp): ...this and update the unspec identifier accordingly.
12581         (exception_receiver, nonlocal_got_receiver): New expanders.
12582         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
12583         FAKE_CALL_REGNO.  Remove hazard_set attribute.
12584         (set_got_version, update_got_version): New patterns.
12585
12586 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
12587
12588         PR target/34970
12589         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
12590
12591 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12592
12593         PR other/31955
12594         * doc/install.texi2html: Generate gcc-vers.texi.
12595
12596 2008-01-25  DJ Delorie  <dj@redhat.com>
12597
12598         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12599
12600 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12601
12602         * config/c4x: Remove directory.
12603         * config.gcc (crx-*, mt-*): Mark obsolete.
12604         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
12605         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
12606         sh-*-rtemscoff*): Remove cases.
12607         * defaults.h (C4X_FLOAT_FORMAT): Remove.
12608         * real.c (encode_c4x_single, decode_c4x_single,
12609         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
12610         c4x_extended_format): Remove.
12611         * real.h (c4x_single_format, c4x_extended_format): Remove.
12612         * doc/extend.texi (interrupt, naked): Remove mention of attributes
12613         on C4x.
12614         (Pragmas): Remove comment about c4x pragmas.
12615         * doc/install.texi (c4x): Remove target-specific instructions.
12616         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
12617         * doc/md.texi (Machine Constraints): Remove C4x documentation.
12618         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
12619         refer to C4x source files as examples.
12620         (C4X_FLOAT_FORMAT): Remove documentation.
12621
12622 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
12623
12624         * config/bfin/bfin.c (override_options): Reorder tests so that
12625         flag_pic gets enabled for -msep-data.
12626
12627 2008-01-25  Richard Guenther  <rguenther@suse.de>
12628
12629         PR middle-end/32244
12630         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
12631         to its bitfield precision if required.
12632
12633 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12634
12635         PR middle-end/33880
12636         * tree-nested.c (walk_omp_for): New function.
12637         (convert_nonlocal_reference, convert_local_reference): Call
12638         walk_omp_for on OMP_FOR.
12639         (convert_call_expr): Call walk_body on OMP_FOR's
12640         OMP_FOR_PRE_INIT_BODY.
12641
12642 2008-01-25  Richard Guenther  <rguenther@suse.de>
12643
12644         PR tree-optimization/34966
12645         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
12646         default defs and PHI_NODEs we have to insert after the
12647         defining statement.
12648
12649 2008-01-24  Nick Clifton  <nickc@redhat.com>
12650
12651         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
12652         Provide a default definition.
12653         (LIBGCC2_UNITS_PER_WORD): Likewise.
12654
12655         * config/stormy16/stormy16.c: Include df.h for the prototype
12656         for df_regs_ever_live_p.
12657         (xstormy16_expand_builtin_va_start): Convert the stack offset
12658         into a component_ref and then use POINTER_PLUS_EXPR to add it
12659         to the incoming_virtual_args_rtx.
12660         (xstormy16_gimplify_va_arg_expr): Rename to
12661         xstormy16_gimplify_va_arg_expr.
12662         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
12663         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
12664         xstormy16_gimplify_va_arg_expr.
12665         Fix up some formatting issues.
12666
12667         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
12668         Move to predicates.md.
12669         (xs_hi_general_operand): Likewise.
12670         (xs_hi_nonmemory_operand): Likewise.
12671         * config/stormy16/predicates.md:
12672         (xstormy16_carry_plus_operand): New predicate.
12673         (xs_hi_general_operand): New predicate.
12674         (xs_hi_nonmemory_operand): New predicate.
12675         * config/stormy16/stormy16-protos.h:
12676         (xstormy16_carry_plus_operand): Delete prototype.
12677         (xs_hi_general_operand): Likewise.
12678         (xs_hi_nonmemory_operand): Likewise.
12679
12680         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
12681         modifiers as they are no longer needed and they can trigger
12682         reload spill failures.
12683
12684         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
12685         with a match_operand in order to help reload.
12686
12687         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
12688         constraint with 'e' for the 8th alternative as this version of
12689         the mov.w instruction only accepts the lower 8 registers.
12690
12691 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
12692
12693         PR target/34856
12694         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
12695         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
12696         vector elements.
12697
12698 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12699
12700         PR middle-end/33333
12701         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
12702
12703 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12704
12705         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
12706         New functions.
12707         (remove_structure): Update allocations list before removing structure.
12708         
12709 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12710
12711         * ipa-struct-reorg.c (is_safe_cond_expr, 
12712         create_new_stmts_for_cond_expr): Use integer_zerop function,
12713         that recognize not only zero-pointer, but zero-integer too.
12714
12715 2008-01-25  Ben Elliston  <bje@au.ibm.com>
12716
12717         PR other/22232
12718         * fixproto: Escape "." in sed expression that strips leading "./".
12719
12720 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12721
12722         PR driver/34904
12723         * gcc.c (SWITCH_OK): Removed.
12724         (SWITCH_LIVE): Changed to bit.
12725         (SWITCH_FALSE): Likewise.
12726         (SWITCH_IGNORE): Likewise.
12727         (switchstr): Change live_cond to unsigned int.
12728         (process_command): Replace SWITCH_OK with 0.
12729         (do_self_spec): Likewise.
12730         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
12731         (give_switch): Likewise.
12732         (used_arg): Likewise.
12733         (do_spec_1): Set the SWITCH_IGNORE bit.
12734         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
12735         bits.  Set the SWITCH_LIVE bit.
12736
12737 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
12738
12739         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
12740
12741 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
12742
12743         PR tree-optimization/34472
12744         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
12745         parameter to a "bool *" and set *DATA to false if there is
12746         an unsafe access.  Do not delete the structure here.
12747         (check_cond_exprs): Delete it here instead.
12748         (check_cond_exprs, exclude_cold_structs): Do not increase
12749         I when removing a structure.
12750
12751 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
12752
12753         PR target/34856
12754         * config/i386/i386.c (ix86_expand_vector_init): Consider only
12755         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
12756
12757 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
12758
12759         PR middle-end/34934
12760         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
12761         a fixed vector for stack.
12762
12763 2008-01-24  Ben Elliston  <bje@au.ibm.com>
12764
12765         PR c++/25701
12766         * doc/gcc.texi (Software development): Add a direntry for g++.
12767         
12768 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
12769
12770         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
12771         stale and straggling -fforce-addr comments above.
12772
12773         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
12774         define.
12775         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
12776         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
12777
12778 2008-01-23  Michael Matz  <matz@suse.de>
12779
12780         PR debug/34895
12781         * dwarf2out.c (force_type_die): Use modified_type_die instead of
12782         gen_type_die.
12783
12784 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
12785
12786         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
12787         malloc result type.
12788
12789 2008-01-23 Anatoly Sokolov <aesok@post.ru>
12790
12791         * config/avr/avr.c (avr_current_arch): New variable.
12792         (avr_arch_types): Add 'avr31' and 'avr51' entries.
12793         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
12794         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
12795         (avr_override_options): Init 'avr_current_arch'. 
12796         (base_arch_s): Move from here...
12797         * config/avr/avr.h (base_arch_s): ... here. Add new members 
12798         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
12799         'mega' to 'have_jmp_call'.
12800         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
12801         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
12802         macros.
12803         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
12804         architectures.
12805         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
12806         MULTILIB_MATCHES): (Ditto.).
12807
12808 2008-01-23  Richard Guenther  <rguenther@suse.de>
12809
12810         PR middle-end/31529
12811         * cgraphunit.c (cgraph_reset_node): Always mark the node
12812         not reachable if it is not queued already.
12813
12814 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
12815
12816         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
12817         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
12818         (cputype_selected): New static variable.
12819         (bfin_handle_option): Set it if -mcpu is used.
12820         (override_option): Select default set of workarounds if no cpu type
12821         selected on the command line.
12822         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
12823
12824         From  Michael Frysinger  <michael.frysinger@analog.com>
12825         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
12826         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
12827
12828         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
12829         for bf547, bf523, bf524, and bf526.
12830         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
12831         bf526.
12832         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
12833         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
12834         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
12835         __ADSPBF547__ and __ADSPBF54x__ for bf547.
12836         * doc/invoke.texi (Blackfin Options): Document that
12837         -mcpu now accept bf547, bf523, bf524, and bf526.
12838
12839 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
12840
12841         PR rtl-optimization/34628
12842         * combine.c (try_combine): Stop and undo after the first combination
12843         if an autoincrement side-effect on the first insn has effectively
12844         been lost.
12845
12846 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
12847
12848         PR target/34529
12849         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
12850         Offset addresses are not valid for Altivec or paired float modes.
12851
12852 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
12853
12854         PR c++/34607
12855         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
12856         if DECL_INITIAL (decl) is error_mark_node.
12857
12858         PR c++/34914
12859         * c-common.c (handle_vector_size_attribute): Only allow
12860         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
12861         the same way as pointer, array etc. types.
12862         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
12863
12864         PR c++/34917
12865         * tree.c (build_type_attribute_qual_variant): Call
12866         build_qualified_type if attributes are equal, but quals are not.
12867
12868 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12869
12870         PR 32102
12871         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
12872         * flags.h (warn_strict_aliasing): Remove.
12873         (warn_strict_overflow): Remove.
12874         * opts.c (warn_strict_aliasing): Remove.
12875         (warn_strict_overflow): Remove.
12876         * c-opts.c (c_common_handle_option): -Wall only sets
12877         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
12878         (c_common_post_options): Give default values to -Wstrict-aliasing
12879         and -Wstrict-overflow if they are uninitialized.
12880         * common.opt (Wstrict-aliasing): Specify Var and Init.
12881         (Wstrict-overflow): Likewise.
12882
12883 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
12884
12885         PR rtl-optimization/26854
12886         PR rtl-optimization/34400
12887         PR rtl-optimization/34884
12888         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
12889         DF_RD->gen.
12890         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
12891         (df_rd_bb_info.expanded_lr_out): Deleted
12892         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
12893         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
12894         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12895         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12896         Removed code to allocate, initialize or free expanded_lr_out.
12897         (df_rd_bb_local_compute_process_def): Restructured to make more
12898         understandable.
12899         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
12900         sets if the sets are being trimmed.
12901
12902 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
12903
12904         PR bootstrap/32287
12905         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
12906         (as_vers): Likewise.
12907         * configure: Regenerated.
12908
12909 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12910
12911         PR middle-end/33092
12912         * tree-pass.h (pass_build_alias): New pass.
12913         * tree-ssa-alias.c (gate_build_alias): New.
12914         (pass_build_alias): New.
12915         * passes.c (init_optimization_passes): Add pass_build_alias after
12916         pass_create_structure_vars.
12917
12918 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
12919
12920         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
12921         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
12922         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
12923         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
12924         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
12925         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
12926         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
12927         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
12928         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
12929         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
12930         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
12931         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
12932         * config/s390/s390.md (FP_ALL): New mode iterator.
12933         (_d): New mode attribute.
12934         ("*signbit<mode>2>"): Changed mode of first operand.
12935         ("isinf<mode>2"): Changed mode of first operand.
12936         ("*TDC_insn"): Adaptation for DFP modes.
12937
12938 2008-01-22  Ben Elliston  <bje@au.ibm.com>
12939
12940         * tree.c (check_qualified_type): Improve function description.
12941
12942 2008-01-21  Jason Merrill  <jason@redhat.com>
12943
12944         PR c++/34196
12945         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
12946         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
12947         if it is set.
12948
12949 2008-01-21  DJ Delorie  <dj@redhat.com>
12950
12951         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
12952         return zero.
12953
12954 2008-01-21  Richard Guenther  <rguenther@suse.de>
12955
12956         PR middle-end/34856
12957         * tree-cfg.c (verify_expr): Allow all invariant expressions
12958         instead of just constant class ones as reference argument.
12959         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
12960         like any other constant.
12961         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12962
12963 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
12964
12965         * regmove.c (fixup_match_1): Update call crossed frequencies.
12966
12967 2008-01-21  Richard Guenther  <rguenther@suse.de>
12968
12969         PR c/34885
12970         * tree-inline.c (setup_one_parameter): Deal with mismatched
12971         types using a VIEW_CONVERT_EXPR.
12972
12973 2008-01-21  Alon Dayan  <alond@il.ibm.com>
12974             Olga Golovanevsky  <olga@il.ibm.com>
12975         
12976         PR tree-optimization/34701
12977         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
12978         when the structure size is not a power of 2.
12979
12980 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12981
12982         * doc/install.texi: Add doc for --enable-checking=df.
12983         
12984 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12985
12986         PR rtl-optimization/34808
12987         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
12988
12989 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12990
12991         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
12992         input.
12993
12994 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
12995
12996         PR rtl-optimization/26854
12997         PR rtl-optimization/34400
12998         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
12999         DF_RD->gen.
13000         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
13001         (df_rd_bb_info.expanded_lr_out): New.
13002         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
13003         * loop_iv.c (iv_analysis_loop_init): Ditto.
13004         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
13005         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
13006         Added code to allocate, initialize or free expanded_lr_out.
13007         (df_rd_bb_local_compute_process_def): Restructured to make
13008         more understandable.
13009         (df_rd_confluence_n): Add code to do nothing with fake edges and
13010         code to no apply invalidate_by_call sets if the sets are being trimmed.
13011         (df_lr_local_finalize): Renamed to df_lr_finalize.
13012         (df_live_local_finalize): Renamed to df_live_finalize.
13013
13014 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
13015
13016         PR target/34831
13017         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
13018         deciding whether to use reciprocal instructions.
13019
13020 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
13021
13022         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
13023         dwarf2out_note_section_used if cold_text_section is NULL.
13024
13025 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
13026
13027         PR gcov-profile/34610
13028         * tree-cfg.c (make_edges): Mark both outgoing edges from
13029         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
13030         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
13031         from OMP_FOR and OMP_CONTINUE outgoing edges.
13032
13033         * tree-profile.c (tree_profiling): Return early if
13034         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
13035         at the end.
13036         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
13037         from cfun to child_cfun.
13038         * function.h (struct function): Add after_tree_profile bit.
13039
13040 2008-01-19 Anatoly Sokolov <aesok@post.ru>
13041
13042         * config/avr/avr.S (_exit): Disable interrupt.
13043
13044 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
13045             Steven Bosscher  <stevenb.gcc@gmail.com>
13046
13047         PR rtl-optimization/26854
13048         PR rtl-optimization/34400
13049         * df-problems.c (df_live_scratch): New scratch bitmap.
13050         (df_live_alloc): Allocate df_live_scratch when doing df_live.
13051         (df_live_reset): Clear the proper bitmaps.
13052         (df_live_bb_local_compute): Only process the artificial defs once
13053         since the order is not important.
13054         (df_live_init): Init the df_live sets only with the variables
13055         found live by df_lr.
13056         (df_live_transfer_function): Use the df_lr sets to prune the
13057         df_live sets as they are being computed.  
13058         (df_live_free): Free df_live_scratch.
13059
13060 2008-01-18  Ian Lance Taylor  <iant@google.com>
13061
13062         * common.opt: Add fmerge-debug-strings.
13063         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
13064         flag_merge_debug_strings rather than flag_merge_constants.
13065         * doc/invoke.texi (Option Summary): Mention
13066         -fmerge-debug-strings.
13067         (Debugging Options): Document -fmerge-debug-strings.
13068
13069 2008-01-18  Ian Lance Taylor  <iant@google.com>
13070
13071         PR c++/33407
13072         * tree.h (DECL_IS_OPERATOR_NEW): Define.
13073         (struct tree_function_decl): Add new field operator_new_flag.
13074         * tree-inline.c (expand_call_inline): When inlining a call to
13075         operator new, force the return value to go into a variable, and
13076         set DECL_NO_TBAA_P on that variable.
13077         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
13078
13079 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
13080
13081         PR debug/34484
13082         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
13083         DWARF2_DEBUGGING_INFO.
13084         (dwarf2out_note_section_used): Ditto.  Add prototype.
13085         (have_multiple_function_sections, text_section_used,
13086         cold_text_section_used, *cold_text_sections): Move declarations
13087         before their uses.
13088
13089 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
13090
13091         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
13092         field and add signal_ra.
13093         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
13094         assignments to frame state pc.  Move end of stack check after
13095         MD_FALLBACK_FRAME_STATE_FOR.
13096         (uw_update_context_1): Use frame state signal_regs if set, instead
13097         of checking signal_frame flag.
13098         (uw_update_context): Use frame state signal_ra if set.
13099         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
13100         * config/xtensa/linux-unwind.h: New file.
13101
13102 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
13103
13104         * modulo-sched.c (get_sched_window): Fix comment typo.
13105
13106 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
13107
13108         PR tree-optimization/34648
13109         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
13110
13111 2008-01-17  Anatoly Sokolov <aesok@post.ru>
13112
13113         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
13114         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
13115
13116 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
13117
13118         PR rtl-optimization/34400
13119         * df-core.c (df_worklist_dataflow_overeager,
13120         df_worklist_dataflow_doublequeue): New functions.
13121         (df_worklist_dataflow): Two different worklist solvers.
13122         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
13123         New param.
13124
13125 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13126
13127         PR testsuite/34821
13128         * doc/invoke.texi: Document the dependence on pthread for fopenmp
13129         and ftree-parallelize-loops.
13130
13131 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
13132
13133         PR rtl-optimization/34826
13134         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
13135
13136 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
13137
13138         * global.c (find_reg): Mark the eh regs as used if necessary.
13139         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
13140         * ra.h (struct allocno): no_eh_reg field added.  Changed
13141         no_stack_reg type to bitfield.
13142
13143 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
13144
13145         * tree.c (substitute_in_expr): Add missing 'break'.
13146
13147 2008-01-17  Richard Guenther  <rguenther@suse.de>
13148
13149         PR tree-optimization/34825
13150         * tree-ssa-math-opts.c (is_division_by): Do not recognize
13151         x / x as division to handle.
13152
13153 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13154
13155         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
13156         "-pthread" is specified.
13157         * pa-hpux11.h (LIB_SPEC): Likewise.
13158
13159 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
13160             Peter Bergner  <bergner@vnet.ibm.com>
13161
13162         PR rtl-optimization/33796
13163         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
13164
13165 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13166
13167         PR libgfortran/34699
13168         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
13169         static links.
13170         * pa-hpux10.h (LINK_SPEC): Likewise.
13171         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
13172
13173 2008-01-16  Richard Guenther  <rguenther@suse.de>
13174
13175         PR middle-end/32628
13176         * fold-const.c (fold_convert_const_int_from_int): Do not
13177         set overflow if that occured only because of a sign extension
13178         change when converting from/to a sizetype with the same
13179         precision and signedness.
13180
13181 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
13182
13183         PR debug/34249
13184         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
13185         location address to the correct place.  Update copyright year.
13186
13187 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13188
13189         * lambda-code.c (lambda_transform_legal_p): Handle the case of
13190         no dependences in the dependence_relations vector.
13191
13192 2008-01-16  Jan Hubicka  <jh@suse.cz>
13193
13194         PR rtl-optimization/31396
13195         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
13196         * cfg.c (dump_reg_info): Print it.
13197         * regs.h (struct reg_info_t): add freq_calls_crossed.
13198         (REG_FREQ_CALLS_CROSSED): New macro.
13199         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
13200         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
13201         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
13202         regmove_optimize): Update call crossed frequencies.
13203         * local-alloc.c (struct qty): Add freq_calls_crossed.
13204         (alloc_qty): Copute freq_calls_crossed.
13205         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
13206         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
13207         * ra.h (struct allocno): Add freq_calls_crossed.
13208
13209 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13210
13211         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
13212         libgomp when compiling with ftree-parallelize-loops.
13213         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
13214
13215 2008-01-16  Richard Guenther  <rguenther@suse.de>
13216
13217         PR tree-optimization/34769
13218         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
13219         * tree.c (int_cst_value): Instead make this function more
13220         permissive in what it accepts as valid input.  Document this
13221         function always sign-extends the value.
13222
13223 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
13224             Richard Guenther  <rguenther@suse.de>
13225
13226         PR c/34668
13227         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
13228         (gimple_fold_indirect_ref_rhs): ... this.
13229         (gimple_fold_indirect_ref): New function with foldings
13230         that preserve lvalueness.
13231         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
13232         * tree-flow.h (gimple_fold_indirect_ref): Declare.
13233         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
13234         to fold an INDIRECT_REF, fall back to the old use of
13235         fold_indirect_ref_1.
13236
13237 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13238
13239         * tree-data-ref.c (subscript_dependence_tester_1): Call 
13240         free_conflict_function.
13241         (compute_self_dependence): Same.
13242
13243 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
13244
13245         PR debug/34249
13246         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
13247         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
13248         function global.
13249         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
13250         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
13251         for DWARF2_UNWIND_INFO targets.
13252
13253 2008-01-16  Richard Guenther  <rguenther@suse.de>
13254
13255         PR c/34768
13256         * c-typeck.c (common_pointer_type): Do not merge inconsistent
13257         type qualifiers for function types.
13258
13259 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
13260
13261         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
13262         loop_iterator li from previous commit.
13263
13264 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
13265
13266         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
13267
13268 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
13269
13270         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
13271         (parallelize_loops): Don't parallelize irreducible components.
13272
13273 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13274
13275         PR c++/24924
13276         * c-opts (c_common_post_options): Do not enable CPP
13277         flag_pedantic_errors by default.
13278         
13279 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
13280
13281         PR rtl-optimization/31944
13282         * cse.c (remove_pseudo_from_table): New function.
13283         (merge_equiv_classes): Use above function to remove pseudo-registers.
13284         (invalidate): Likewise.
13285
13286 2008-01-13  Richard Guenther  <rguenther@suse.de>
13287
13288         PR middle-end/34601
13289         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
13290         instead of TYPE_MODE to deal with calls from expand_one_error_var.
13291
13292 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
13293
13294         * gcse.c (cprop_jump): Call validate_unshare_change instead of
13295         validate_change to unshare the source of the PC set.
13296
13297 2008-01-12  Jan Hubicka  <jh@suse.cz>
13298
13299         PR middle-end/32135
13300         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
13301         references above array bounds.  This might trigger bounds checks for
13302         pointers to arrays.
13303
13304 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
13305
13306         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
13307         new_replaceable_dependencies.
13308
13309 2008-01-12  Doug Kwan  <dougkwan@google.com>
13310
13311         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
13312         instead of OPT_Wreturn_type in warning due to ignored return type
13313         qualifiers.
13314         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
13315         options included in -Wextra.
13316         * c.opt: New option -Wignored_qualifiers.
13317         * doc/invoke.texi (Warning Options, -Wextra): Add new option
13318         -Wignore_qualifiers.
13319         (-Wignored-qualifiers): Document.
13320         (-Wreturn-type): Remove description of functionality now handled
13321         by -Wignored-qualifiers.
13322
13323 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
13324
13325         PR ada/33788
13326         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
13327         NOP_EXPR if it is between integral types with the same precision.
13328
13329 2008-01-12  Jan Hubicka  <jh@suse.cz>
13330
13331         PR other/28023
13332         * invoke.texi (max-inline-recursive-depth): Fix default value.
13333
13334 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
13335
13336         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
13337         correct type.
13338
13339 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
13340         
13341         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
13342         
13343 2008-01-11  James E. Wilson  <wilson@specifix.com>
13344
13345         PR target/26015
13346         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
13347
13348 2008-01-11  Anatoly Sokolov <aesok@post.ru>
13349
13350         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
13351         save/restore frame pointer register and don't use 'call-prologues' 
13352         optimization in function with "OS_task" attribute.
13353
13354 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
13355
13356         PR middle-end/31309
13357         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
13358         when copying to memory.
13359
13360 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
13361
13362         PR rtl-optimization/30905
13363         * cfgcleanup.c: Include dce.h
13364         (crossjumps_occured): New global variable.
13365         (try_crossjump_bb): Exit loop after finding a fallthru edge.
13366         If something changed, set crossjumps_occured to true.
13367         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
13368         Don't add/remove fake edges to exit here...
13369         (cleanup_cfg): ...but do it here, when crossjumping.
13370         Run a fast DCE when successful crossjumps occured in the latest
13371         iteration of try_optimize_cfg.
13372
13373 2008-01-11  Richard Guenther  <rguenther@suse.de>
13374
13375         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
13376         (struct vn_unary_op_s): Likewise.
13377         (vn_reference_insert): Free old reference on hash collision.
13378
13379 2008-01-10  Raksit Ashok  <raksit@google.com>
13380
13381         PR rtl-optimization/27971
13382         * combine.c (find_split_point): Split PLUS expressions which are
13383         inside a MEM rtx, and whose first operand is complex.
13384
13385 2008-01-10  DJ Delorie  <dj@redhat.com>
13386
13387         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
13388         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
13389         (m32c_hard_regno_ok): Call the underlying function.
13390
13391 2008-01-10  Richard Guenther  <rguenther@suse.de>
13392
13393         PR middle-end/34683
13394         * tree-cfg.c (tree_merge_blocks): Do not go through the
13395         full-blown folding and stmt updating path if we just deal
13396         with virtual operands.
13397         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
13398         test for abnormal SSA_NAMEs.
13399
13400 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
13401
13402         PR middle-end/34641
13403         * reload.c (push_reload): Add assertions.  All constants from
13404         reg_equiv_constant should have been used for replacing the respective
13405         pseudo earlier.
13406         (find_reloads_address): Invoke find_reloads_address_part for
13407         constant taken from the reg_equiv_constant array.
13408
13409 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
13410
13411         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
13412         field (valnum) the first in the struct.  Replace bools with
13413         unit bit fields.
13414
13415 2008-01-10  Richard Guenther  <rguenther@suse.de>
13416
13417         PR tree-optimization/34651
13418         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
13419         types and ordering for masking and converting.
13420
13421 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
13422
13423         PR tree-optimization/34017
13424         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
13425         also for PHI_NODE expressions.
13426
13427 2008-01-09  Jan Hubicka  <jh@suse.cz>
13428
13429         PR tree-optimization/34708
13430         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
13431         based on number of case labels.
13432         (init_inline_once): Remove switch_cost.
13433         * tree-inline.h (eni_weights_d): Remove switch_cost.
13434
13435 2008-01-09  Richard Guenther  <rguenther@suse.de>
13436         Andrew Pinski  <andrew_pinski@playstation.sony.com>
13437
13438         PR middle-end/30132
13439         * gimplify.c (gimplify_cond_expr): Do not create an addressable
13440         temporary if an rvalue is ok or an lvalue is not required.
13441
13442 2008-01-09  Richard Guenther  <rguenther@suse.de>
13443
13444         PR middle-end/34458
13445         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
13446         adjust return type.
13447
13448 2008-01-09  Richard Guenther  <rguenther@suse.de>
13449
13450         PR middle-end/34679
13451         * tree.c (host_integerp): Check for sizetype only if the
13452         type is an integer type.
13453
13454 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
13455
13456         PR debug/26364
13457         * opts.c (decode_options): Disable inlining of functions called
13458         once if not in unit-at-a-time mode.
13459
13460 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
13461
13462         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
13463
13464 2008-01-08  Richard Guenther  <rguenther@suse.de>
13465
13466         PR middle-end/31863
13467         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
13468         out early if the result will be unused.
13469
13470 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
13471
13472         PR target/34709
13473         Revert:
13474
13475         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13476         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13477         for TARGET_RECIP.       
13478         
13479 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
13480         
13481         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
13482         for vectorization tuned.
13483         
13484 2008-01-08  Richard Guenther  <rguenther@suse.de>
13485
13486         PR tree-optimization/34683
13487         * tree-ssa-operands.c (operand_build_cmp): Export.
13488         * tree-ssa-operands.h (operand_build_cmp): Declare.
13489         * tree-vn.c (vuses_compare): Remove.
13490         (sort_vuses): Use operand_build_cmp.
13491         (sort_vuses_heap): Likewise.
13492         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
13493         to re-use old VEC if available.  Do not sort already sorted VUSEs.
13494         (vdefs_to_vec): Do not sort already sorted VDEFs.
13495
13496 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
13497
13498         PR middle-end/34694
13499         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
13500
13501 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
13502
13503         PR target/34702
13504         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
13505         limitations of reciprocal sequences on x86 targets.
13506
13507 2008-01-08  Richard Guenther  <rguenther@suse.de>
13508
13509         PR tree-optimization/34683
13510         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
13511
13512 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
13513
13514         PR target/34622
13515         * config/darwin.c (darwin_mergeable_string_section): Don't use
13516         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
13517
13518 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
13519
13520         PR target/34682
13521         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
13522         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
13523         predicates of op0 and op1 to register_operand.
13524         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
13525         expander using X87MODEF mode iterator.  Change predicates of
13526         op0 and op1 to register_operand.
13527         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
13528         corresponding patterns and macroize using MODEF macro.  Change
13529         predicates of op0 and op1 to register_operand and remove
13530         "m" constraint. Disparage "r" alternative with "!".
13531         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
13532         macroize using X87MODEF macro.  Change predicates of op0 and op1
13533         to register_operand and remove "m" constraint.  Disparage "r"
13534         alternative with "!".
13535         (absneg splitter with memory operands): Remove.
13536         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
13537         patterns and macroize using X87MODEF mode iterator.
13538         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
13539         Change predicate of op1 to register_operand.
13540         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
13541         for memory operands.
13542
13543 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
13544
13545         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
13546
13547 2008-01-07  Richard Guenther  <rguenther@suse.de>
13548
13549         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
13550         fields.
13551
13552 2008-01-07  Richard Guenther  <rguenther@suse.de>
13553
13554         PR tree-optimization/34683
13555         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
13556         VOPs of the needed size to save memory.  Use VEC_quick_push
13557         to save compile-time.
13558         (vdefs_to_vec): Likewise.
13559
13560 2008-01-07  Sa Liu  <saliu@de.ibm.com>
13561
13562         * config/spu/spu.md (divdf3): Genetate inline code for double
13563         division.  The implementation doesn't handle INF or NAN, therefore it
13564         only applies when -ffinite-math-only is given.
13565
13566 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
13567
13568         PR libstdc++/34680
13569         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
13570         * doc/cpp.texi ([Common Predefined Macros]): Document.
13571
13572 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
13573
13574         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
13575         order to use commutative addition instead of subtraction.
13576
13577 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13578             Mircea Namolaru  <namolaru@il.ibm.com>
13579             Vladimir Yanovsky  <yanov@il.ibm.com>
13580             Revital Eres  <eres@il.ibm.com>
13581
13582         PR tree-optimization/34263
13583         * tree-outof-ssa.c (process_single_block_loop_latch,
13584         contains_tree_r): New functions.
13585         (analyze_edges_for_bb): Call process_single_block_loop_latch
13586         function to empty single-basic-block latch block if possible.
13587
13588 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13589
13590         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13591         for TARGET_RECIP.
13592         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
13593
13594 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13595
13596         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
13597
13598 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13599
13600         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
13601
13602 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
13603
13604         PR tree-optimization/34618
13605         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
13606         flag from T.
13607
13608 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13609
13610         PR target/34673
13611         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
13612         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
13613         Update copyright year.
13614
13615         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
13616         Update copyright year.
13617         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
13618         using NR fixup.
13619
13620 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
13621
13622         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
13623         edge does not point to current bb before changing need_assert.
13624
13625 2008-01-04  Richard Guenther  <rguenther@suse.de>
13626
13627         PR middle-end/34029
13628         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
13629         for verifying purposes if they are is_gimple_min_invariant.
13630
13631 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
13632
13633         PR tree-optimization/34448
13634         PR tree-optimization/34465
13635         * gimplify.c (gimplify_init_constructor): Add new parameter
13636         notify_temp_creation.  Use it.
13637         (gimplify_modify_expr_rhs): Take volatiles into account when
13638         optimizing constructors.
13639         Do not optimize constructors if gimplify_init_constructor will dump to
13640         memory.
13641         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
13642         * gcc.c-torture/compile/pr34448.c: New.
13643
13644 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
13645
13646         PR gcov-profile/34609
13647         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
13648         return_slot if result is TREE_ADDRESSABLE.
13649
13650 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
13651
13652         * config/mips/mips.md (sqrt_condition): Tweak comment.
13653         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
13654
13655 2008-01-03  Tom Tromey  <tromey@redhat.com>
13656
13657         PR c/34457
13658         * c-common.c (c_type_hash): Handle VLAs.
13659
13660 2008-01-03  Jan Hubicka  <jh@suse.cz>
13661
13662         PR tree-optimization/31081
13663         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
13664         0 when inlining and not inlining to first basic block.
13665         (remap_decl): When var is initialized to 0, don't set default_def.
13666         (expand_call_inline): Set entry_bb.
13667         * tree-inline.h (copy_body_data): Add entry_bb.
13668
13669 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13670
13671         PR c++/34619
13672         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
13673         before returning.
13674
13675         PR tree-optimization/29484
13676         * tree-inline.c (inline_forbidden_p_2): New function.
13677         (inline_forbidden_p): Disallow inlining if some static var
13678         has an address of a local LABEL_DECL in its initializer.
13679         * doc/extend.texi (Labels as Values): Document &&foo behaviour
13680         vs. inlining.
13681
13682 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
13683
13684         PR tree-optimization/34635
13685         * tree-data-ref.c (add_other_self_distances): Make sure that the
13686         evolution step is constant.
13687
13688 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13689
13690         PR middle-end/34608
13691         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
13692
13693 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
13694
13695         * tree-sra.c (scalarize_init): Insert the generate_element_init
13696         statements after the generate_element_zero statements.
13697
13698 2008-01-02  Richard Guenther  <rguenther@suse.de>
13699
13700         PR middle-end/34093
13701         PR middle-end/31976
13702         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
13703         for very large number of operands instead of ICEing.
13704
13705 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
13706
13707         PR target/34013
13708         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
13709         while stack probing.
13710
13711 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
13712
13713         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
13714         in C++0x mode.
13715
13716 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
13717
13718         PR libmudflap/26442
13719         * tree-mudflap.c (mx_register_decls): Guard warning by
13720         !DECL_ARTIFICIAL check.
13721
13722 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
13723
13724         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
13725         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
13726         sse5_perm<mode>): Fix constraints.