OSDN Git Service

* config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-27 Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
4         ix86_expand_binary_operator directly.
5         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
6         for operand 2.
7         (*ashrti3_1): Ditto.
8         (*lshrti3_1): Ditto.
9         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
10         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
11         using only one splitter.  Conditionaly execute splitter before or
12         after peephole2 pass.
13         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
14         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
15         Use only one alternative in asm template.
16         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
17         in asm template.
18         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
19         "J" operand constraint for operand 2.
20         (*ashldi3_cconly_rex64): Ditto.
21         (*ashrdi3_cmp_rex64): Ditto.
22         (*ashrdi3_cconly_rex64): Ditto.
23         (*lshrdi3_cmp_rex64): Ditto.
24         (*lshrdi3_cconly_rex64): Ditto.
25         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
26         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
27         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
28         gen_x86_shrd_1.
29
30 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
31
32         * gimplify.c (omp_is_private): Don't return true if decl
33         is not already private on #pragma omp for or #pragma omp parallel for.
34
35         PR debug/36617
36         * tree-cfg.c (struct move_stmt_d): Replace block field with
37         orig_block and new_block fields.
38         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
39         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
40         (move_block_to_fn): Replace vars_map and new_label_map arguments
41         with struct move_stmt_d pointer.
42         (replace_block_vars_by_duplicates): New function.
43         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
44         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
45         all subblocks of ORIG_BLOCK to the new function.  Call
46         replace_block_vars_by_duplicates.
47         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
48         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
49         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
50         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
51         (expand_omp): Temporarily set input_location to the location of
52         region's controlling stmt.
53         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
54         BIND_EXPR, push ctx->block_vars and gimplification vars into
55         the BIND_EXPR and its block's BLOCK_VARS instead of directly
56         into dest function.
57         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
58         there are any BLOCK_VARS.
59         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
60         OMP_PARALLEL or OMP_TASK stmt.
61         (lower_omp): Save and restore input_location around the lower_omp_1
62         call.
63
64 2008-06-27  Richard Guenther  <rguenther@suse.de>
65
66         PR tree-optimization/36400
67         PR tree-optimization/36373
68         PR tree-optimization/36344
69         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
70         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
71         (update_alias_info): Remove call clobbering code.
72         (make_constraint_to): New helper function.
73         (make_escape_constraint): Likewise.
74         (handle_rhs_call): Use it on all pointer containing arguments.
75         Also mark the static chain escaped.
76         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
77         instead of ANYTHING.
78         (make_constraint_from): New helper split out from ...
79         (make_constraint_from_anything): ... here.
80         (find_func_aliases): Add constraints for escape sites.
81         (intra_create_variable_infos): Make constraints from NONLOCAL
82         for parameters.
83         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
84         as ANYTHING.
85         (clobber_what_p_points_to): Remove.
86         (clobber_what_escaped): New function.
87         (init_base_vars): Init NONLOCAL and ESCAPED.
88         (do_sd_constraint): Do not propagate the solution from ESCAPED
89         but use ESCAPED as a placeholder.
90         (solve_graph): Likewise.
91         * tree-flow.h (clobber_what_p_points_to): Remove.
92         (clobber_what_escaped): Declare.
93         * tree-ssa-alias.c (set_initial_properties): Call it.
94         Remove code clobbering escaped pointers.
95
96 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
97
98         * function.c (allocate_struct_function): Only allocate a unique
99         funcdef_no if the decl is nonzero.
100
101 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
102
103         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
104         * config/mips/mips.c (mips_split_const_insns): New function.
105         * config/mips/mips.md (move_type): New attribute.
106         (mode): Move attribute definition earlier in file.  Add "TI"
107         and "TF".
108         (dword_mode): New attribute.
109         (type): Avoid long line.  Map "move_type"s to "type"s,
110         choosing "multi" for doubleword moves if appropriate.
111         Swap MTC/MFC comments to match their declaration order.
112         (extended_mips16): Default to "yes" if "move_type" is "sll0",
113         "type" is "branch" or "jal" is "direct".
114         (length): Handle "extended_mips16" first.  Make the default
115         "0" for "ghost" instructions.  Set the length from "move_type".
116         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
117         of "type", with "sll0" for the register alternative.  Remove the
118         "extended_mips16" attribute.
119         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
120         of "type", with "shift_shift" for the register alternative.
121         Remove the "length" attribute.
122         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
123         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
124         of "type", with "andi" for the register alternative.
125         (*zero_extendqihi2): Likewise.
126         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
127         of "andi" instead of a "type" of "arith".
128         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
129         instead of "type".
130         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
131         (mov_<store>r, *mov<mode>_ra): Likewise.
132         (extendsidi2): Use "move_type" instead of "type", with "move"
133         for the register alternative.
134         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
135         of "type", with "signext" for the register alternative.
136         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
137         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
138         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
139         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
140         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
141         (unnamed branch insn): Likewise.
142         (*movdi_gp32_fp64): Fold into...
143         (*movdi_32bit): ...here.
144         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
145         (*movdf_hardfloat): ...this new pattern.
146         (*movdf_softfloat): Remove redundant FPR alternatives.
147         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
148         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
149         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
150         the "move" attribute.
151         (*movdi_32bit): Use "move_type" instead of "type" and remove the
152         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
153         and "store" for COP loads and stores.
154         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
155         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
156         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
157         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
158         (*movtf_mips16, *movv2sf): Likewise.
159         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
160         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
161         (mfhc1<mode>): Use "move_type" instead of "move".
162         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
163         (loadgp_blockage): Remove the "length" attribute.
164         (blockage, set_got_version, update_got_version): Likewise.
165         (call_internal): Remove the "extended_mips16" attribute.
166         (call_value_internal, call_value_multiple_internal): Likewise.
167         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
168         instead of "move".
169         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
170         the "length" attribute.
171
172 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
173
174         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
175         -Wcast-qual warnings.
176         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
177         handle_pragma_pop_macro): Likewise.
178         * collect2.c (resolve_lib_name): Likewise.
179         * config/arc/arc.c (arc_init): Likewise.
180         * config/arm/arm.c (neon_builtin_compare,
181         locate_neon_builtin_icode): Likewise.
182         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section):
183         Likewise.
184         * config/bfin/bfin.c (bfin_init_machine_status,
185         bfin_optimize_loop): Likewise.
186         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
187         * config/cris/cris.c (cris_init_expanders): Likewise.
188         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
189         * config/darwin.c (machopic_indirection_eq,
190         machopic_indirection_name, machopic_output_indirection):
191         Likewise.
192         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
193         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
194         frv_optimize_membar): Likewise.
195         * config/i386/cygwin.h (mingw_scan,
196         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
197         * config/i386/cygwin1.c (mingw_scan): Likewise.
198         * config/i386/i386.c (machopic_output_stub): Likewise.
199         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
200         i386_pe_unique_section): Likewise.
201         * config/ia64/ia64.c (ia64_init_machine_status,
202         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
203         Likewise.
204         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
205         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
206         * config/m68k/m68k.c (m68k_handle_option,
207         m68k_sched_md_init_global): Likewise.
208         * config/mcore/mcore.c (mcore_mark_dllexport,
209         mcore_mark_dllimport, mcore_unique_section): Likewise.
210         * config/mips/mips.c (mips_block_move_straight,
211         mips16_rewrite_pool_refs, mips_sim_wait_regs_2,
212         mips_sim_record_set): Likewise.
213         * config/mmix/mmix.c (mmix_init_machine_status,
214         mmix_encode_section_info): Likewise.
215         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label):
216         Likewise.
217         * config/rs6000/rs6000.c (rs6000_init_machine_status,
218         print_operand_address, output_toc, redefine_groups,
219         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
220         * config/s390/s390.c (s390_init_machine_status): Likewise.
221         * config/score/score.c (score_block_move_straight,
222         score_block_move_loop_body): Likewise.
223         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
224         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
225         * emit-rtl.c (find_auto_inc): Likewise.
226         * gcc.c (translate_options, process_command): Likewise.
227         * reorg.c (dbr_schedule): Likewise.
228         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
229         * xcoffout.c (xcoffout_declare_function): Likewise.
230
231 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
232
233         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
234         ipa-pta working again.
235
236 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
237
238         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
239         genautomata.
240
241 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
242
243         * config.gcc (powerpc*-*-*): Add new core e500mc.
244         * config/rs6000/e500mc.md: New file.
245         * config/rs6000/rs6000.c (processor_costs): Add new costs for
246         e500mc.
247         (rs6000_override_options): Add e500mc case to
248         processor_target_table. Altivec and Spe options not allowed
249         with e500mc. Add isel instruction to e500mc by
250         default. Initialize rs6000_cost for e500mc.
251         (rs6000_issue_rate): Set issue rate for e500mc.
252         * config/rs6000/rs6000.h (processor_type): Add
253         PROCESSOR_PPCE500MC.
254         (ASM_CPU_SPEC): Add e500mc.
255         Set TARGET_ISEL to rs6000_isel.
256         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
257         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
258         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
259         Include e500mc.md.
260         * doc/invoke.texi: Add e500mc to list of cpus.
261
262 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
263
264         PR c/34867
265         * c-lex.c (lex_charconst): Initialize unsignedp.
266
267 2008-06-27  Olivier Hainque  <hainque@adacore.com>
268
269         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
270         documented assumptions.
271
272 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
273
274         * dwarf2out.c: Remove trailing white spaces.  Break long line
275         in comments.
276
277 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
278
279         * libfuncs.h (LTI_synchronize): New libfunc_index.
280         (synchronize_libfunc): Declare.
281         * builtins.c (expand_builtin_synchronize): Consider using
282         synchronize_libfunc before falling back on an asm blockage.
283         * config/mips/mips.c: Include libfuncs.h
284         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
285
286 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
287
288         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
289         parameter.  Copy stack_reg to r11 where appropriate.
290         (no_global_regs_above): Add gpr parameter.
291         (rs6000_stack_info): Only add padding for SPE save area if we
292         are saving SPE GPRs and CR.
293         (saveres_routine_syms): New variable.
294         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
295         Define.
296         (rs6000_savres_routine_sym): New function.
297         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
298         split out of...
299         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
300         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
301         Tweak FPR out-of-line saving.
302         (rs6000_make_savres_rtx): New function.
303         (rs6000_use_multiple_p): New function.
304         (rs6000_savres_strategy): New function.
305         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
306         out-of-line if appropriate.
307         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
308         if we are optimizing for size.
309         (GP_SAVE_INLINE): Define.
310         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
311         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
312         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
313         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
314         (*save_fpregs_<mode>): Add use of r11.
315         (*restore_gpregs_<mode>): New insn.
316         (*return_and_restore_gpregs_<mode>): New insn.
317         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
318         use r11.
319         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
320         (*restore_gpregs_spe): New insn.
321         (*return_and_restore_gpregs_spe): New insn.
322         * config/rs6000/predicates.md (save_world_operation): Fix check.
323
324 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
325
326         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
327         this point, so assert that.
328
329 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
330
331         * cfganal.c: Include vec.h and vecprim.h.
332         (compute_idf): Import from...
333         * tree-into-ssa (compute_idf): ...here.
334         * basic-block.h (compute_idf): Export.
335
336 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
337
338         * c-decl.c (merge_decls): Use !current_function_decl to check for
339         extern declaration of C99 inline function being at file scope.
340
341 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
342
343         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
344
345 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
346
347         * alias.c (record_alias_subset, init_alias_analysis): Fix
348         -Wc++-compat and/or -Wcast-qual warnings.
349         * attribs.c (lookup_attribute_spec): Likewise.
350         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
351         copy_bb, connect_traces,
352         find_rarely_executed_basic_blocks_and_cr): Likewise.
353         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
354         note_btr_set, migrate_btr_defs): Likewise.
355         * builtins.c (result_vector, expand_builtin_memcpy,
356         expand_builtin_mempcpy_args, expand_builtin_strncpy,
357         builtin_memset_read_str, expand_builtin_printf,
358         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
359         Likewise.
360         * caller-save.c (mark_set_regs): Likewise.
361         * calls.c (expand_call, emit_library_call_value_1): Likewise.
362         * cgraph.c (cgraph_edge): Likewise.
363         * combine.c (likely_spilled_retval_1): Likewise.
364         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
365         htab_counts_entry_del, get_coverage_counts): Likewise.
366         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
367         new_cselib_val): Likewise.
368         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
369         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
370         Likewise.
371         * df-core.c (df_compact_blocks): Likewise.
372         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
373         * df-scan.c (df_grow_reg_info, df_ref_create,
374         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
375         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
376         df_record_entry_block_defs, df_record_exit_block_uses,
377         df_bb_verify): Likewise.
378         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
379         DF_REF_EXTRACT_MODE_CONST): New.
380         * dominance.c (get_immediate_dominator, get_dominated_by,
381         nearest_common_dominator, root_of_dom_tree,
382         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
383         -Wc++-compat and/or -Wcast-qual warnings.
384         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
385         record_store, replace_read, check_mem_read_rtx, scan_insn,
386         dse_step1, dse_record_singleton_alias_set): Likewise.
387         * dwarf2asm.c (dw2_force_const_mem): Likewise.
388
389 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
390
391         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
392         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
393         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
394         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
395         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
396         add_ranges_num, add_ranges_by_labels, file_info_cmp,
397         file_name_acquire, output_file_names, add_const_value_attribute,
398         premark_used_types_helper, file_table_eq, file_table_hash,
399         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
400         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
401         -Wcast-qual warnings.
402         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
403         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
404         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
405         gen_reg_rtx, start_sequence, init_emit): Likewise.
406         * et-forest.c (et_new_occ, et_new_tree): Likewise.
407         * except.c (init_eh_for_function, gen_eh_region,
408         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
409         arh_to_landing_pad, arh_to_label, add_action_record,
410         add_call_site, switch_to_exception_section): Likewise.
411         * expmed.c (synth_mult): Likewise.
412         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
413         store_expr): Likewise.
414         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
415         Likewise.
416         * function.c (assign_stack_temp_for_type,
417         allocate_struct_function, match_asm_constraints_1): Likewise.
418         * gcov-io.c (gcov_allocate): Likewise.
419         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
420         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
421         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
422         record_one_set, insert_expr_in_table, insert_set_in_table,
423         dump_hash_table, compute_hash_table_work, alloc_hash_table,
424         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
425         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
426         -Wcast-qual warnings.
427
428 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
429
430         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
431         -Wcast-qual warnings.
432         * gcc.c (process_command): Likewise.
433         * genattrtab.c (oballoc): Use XOBNEW.
434         (oballocvec): Define.
435         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
436         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
437         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
438         -Wc++-compat and/or -Wcast-qual warnings.
439         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
440         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
441         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
442         gen_presence_absence_set, gen_automaton, gen_regexp_el,
443         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
444         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
445         add_excls, process_presence_absence_names,
446         process_presence_absence_patterns, add_presence_absence,
447         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
448         get_free_state, add_arc, get_free_automata_list_el,
449         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
450         transform_3, cache_presence, create_ainsns, create_automata,
451         create_state_ainsn_table, dfa_insn_code_enlarge,
452         output_trans_func, output_min_issue_delay_func,
453         output_dead_lock_func, output_reset_func,
454         output_get_cpu_unit_code_func, output_dfa_start_func,
455         expand_automata): Likewise.
456         * genextract.c (gen_insn): Likewise.
457         * gengtype-lex.l: Likewise.
458         * gengtype.c (read_input_list, adjust_field_type,
459         process_gc_options): Likewise.
460         * genoutput.c (note_constraint): Likewise.
461         * genpreds.c (mangle, add_constraint): Likewise.
462         * genrecog.c (process_define_predicate, new_decision,
463         add_to_sequence): Likewise.
464         * gensupport.c (record_insn_name): Likewise.
465
466 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
467
468         * config/i386/driver-i386.c (detect_caches_amd,
469         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
470         and/or -Wcast-qual warnings.
471         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
472         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
473         gt_pch_save): Likewise.
474         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
475         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
476         * global.c (compute_regsets): Likewise.
477         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
478         finish_graph_dump_file): Likewise.
479         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
480         unlink_bb_notes): Likewise.
481         * integrate.c (get_hard_reg_initial_val): Likewise.
482         * ipa-prop.c (ipa_push_func_to_list): Likewise.
483         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
484         * local-alloc.c (update_equiv_regs): Likewise.
485         * loop-invariant.c (check_invariant_table_size,
486         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
487         Likewise.
488         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
489         altered_reg_used, mark_altered): Likewise.
490         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
491         insert_var_expansion_initialization,
492         combine_var_copies_in_loop_exit, apply_opt_in_copies,
493         release_var_copies): Likewise.
494         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
495         analyze_matrix_decl, add_allocation_site, analyze_transpose,
496         analyze_accesses_for_phi_node, check_var_notmodified_p,
497         check_allocation_function, find_sites_in_func,
498         record_all_accesses_in_func, transform_access_sites,
499         transform_allocation_sites): Likewise.
500         * omp-low.c (new_omp_region, create_omp_child_function_name,
501         check_omp_nesting_restrictions, check_combined_parallel,
502         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
503         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
504         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
505         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
506         Likewise.
507         * opts-common.c (prune_options): Likewise.
508         * opts.c (add_input_filename, print_filtered_help,
509         get_option_state): Likewise.
510         * params.c (add_params): Likewise.
511         * passes.c (set_pass_for_id, next_pass_1,
512         do_per_function_toporder, pass_fini_dump_file): Likewise.
513         * postreload.c (reload_cse_simplify_operands): Likewise.
514         * predict.c (tree_predicted_by_p, tree_predict_edge,
515         clear_bb_predictions, combine_predictions_for_bb): Likewise.
516
517 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
518
519         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
520         warnings.
521         * recog.c (check_asm_operands, validate_change_1): Likewise.
522         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
523         subst_asm_stack_regs): Likewise.
524         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
525         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
526         * regmove.c (reg_is_remote_constant_p): Likewise.
527         * regrename.c (regrename_optimize, scan_rtx_reg,
528         kill_clobbered_value, kill_set_value, kill_autoinc_value):
529         Likewise.
530         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
531         regstat_compute_calls_crossed): Likewise.
532         * reload1.c (init_reload, new_insn_chain,
533         has_nonexceptional_receiver, reload, copy_reloads,
534         calculate_needs_all_insns, init_elim_table): Likewise.
535         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
536         * rtl.c (shallow_copy_rtx_stat): Likewise.
537         * rtlanal.c (parms_set): Likewise.
538         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
539         sbitmap_resize, sbitmap_vector_alloc): Likewise.
540         * sched-ebb.c (earliest_block_with_similiar_load,
541         add_deps_for_risky_insns): Likewise.
542         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
543         schedule_region): Likewise.
544         * see.c (eq_descriptor_pre_extension,
545         hash_descriptor_pre_extension, hash_del_pre_extension,
546         eq_descriptor_properties, hash_descriptor_properties,
547         hash_del_properties, see_seek_pre_extension_expr,
548         see_initialize_data_structures, see_print_register_properties,
549         see_print_pre_extension_expr, see_delete_merged_def_extension,
550         see_delete_unmerged_def_extension, see_emit_use_extension,
551         see_pre_delete_extension, see_map_extension, see_commit_changes,
552         see_analyze_merged_def_local_prop,
553         see_analyze_merged_def_local_prop,
554         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
555         see_set_prop_merged_def, see_set_prop_unmerged_def,
556         see_set_prop_unmerged_use, see_print_one_extension,
557         see_merge_one_use_extension, see_merge_one_def_extension,
558         see_store_reference_and_extension, see_update_uses_relevancy,
559         see_update_defs_relevancy): Likewise.
560         * statistics.c (hash_statistics_hash, hash_statistics_eq,
561         hash_statistics_free, curr_statistics_hash): Likewise.
562         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
563         expand_asm_operands, expand_return, case_bit_test_cmp,
564         expand_case): Likewise.
565         * stor-layout.c (start_record_layout): Likewise.
566         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
567         gt_pch_save_stringpool): Likewise.
568         * tree-data-ref.c (hash_stmt_vertex_info,
569         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
570         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
571
572 2008-06-25 Uros Bizjak  <ubizjak@gmail.com>
573
574         PR target/36627
575         * config/i386/i386.md : Change constraints of HImode and QImode
576         immediate operands from "i" to "n".  Change SImode "ni" constraint to
577         "i" and SImode "rmi" constraint to "g".  Remove all constraints
578         from const0_operand and const1_operand predicated operands.
579         (i): Change QImode and HImode attribute from "i" to "n".
580         (*subqi_2): Change HImode operands to QImode.
581         (*subqi_3): Ditto.
582
583 2008-06-25  Olivier Hainque  <hainque@adacore.com>
584
585         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
586         sed substitutions.
587
588 2008-06-25  Richard Guenther  <rguenther@suse.de>
589
590         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
591         not overflow the result type.
592
593 2008-06-25  Richard Guenther  <rguenther@suse.de>
594
595         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
596         (vn_lookup): Likewise.
597
598 2008-06-25  Richard Guenther  <rguenther@suse.de>
599
600         PR tree-optimization/35518
601         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
602         * tree-sra.c (instantiate_element): Use fold_build3 to build
603         BIT_FIELD_REFs.
604         (try_instantiate_multiple_fields): Likewise.
605
606 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
607
608         * config/rs6000/rs6000.md: Change all string instruction's clobber to
609         be early clobbers.
610
611 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
612
613         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
614         use_backchain_to_restore_sp to true
615         if the offset of the link register save area would go over the 32k - 1
616         offset limit of the load
617         instructions.
618
619 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
620
621         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
622         anchor for the type-punning blurb.  Cross-reference "Structures
623         unions enumerations and bit-fields implementation".  Provide a
624         cast-through-pointer example.  Make final sentence self-contained.
625         * doc/implement-c.texi (Structures unions enumerations and
626         bit-fields implementation): Cross-reference the type-punning blurb
627         in the -fstrict-aliasing documentation.
628
629 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
630
631         PR middle-end/36594
632         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
633         the memory instead of the memory itself for the save area.
634
635 2008-06-24  Olivier Hainque  <hainque@adacore.com>
636             Nicolas Roche  <roche@adacore.com>
637
638         * gengtype.c (srcdir_len): size_t instead of int.
639         (get_file_realbasename): New function.  For F a filename, the real
640         basename of F, with all the path components stripped.
641         (get_file_srcdir_relative_path): New function.  For F a filename, the
642         relative path to F from $(srcdir).
643         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
644         get_file_realbasename.  Adjust the head comment.
645         (get_prefix_langdir_index): New function. For F a filename, return the
646         lang_dir_names[] relative index of the language directory that is
647         a prefix in F.
648         (get_file_langdir): For F a filename, return the name of the language
649         directory where F is located.
650         (get_file_gtfilename): New function. The gt- output file name for an
651         input filename F.
652         (get_output_file_with_visibility): Replace in-line computations with
653         uses of get_file_gtfilename and get_prefix_langdir_index.
654         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
655
656 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
657
658         PR tree-optimization/36504
659         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
660         references without base address.
661
662 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
663
664         PR middle-end/36584
665         * calls.c (expand_call): Increase alignment for recursive functions.
666
667 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
668
669         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
670         (TARGET_FUNCTION_VALUE): New define.
671         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
672         * config/avr/avr.h (FUNCTION_VALUE): Remove.
673
674 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
675
676         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
677         (fmod<mode>3): Ditto.
678         (remainderxf3): Ditto.
679         (remainder<mode>3): Ditto.
680
681 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
682
683         PR target/36533
684         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
685         REG is a hard register.
686
687         PR tree-optimization/36508
688         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
689         499, don't check it at all in release compilers.
690
691 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
692
693         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
694         together with SSE_TARGET_MATH to disable insn pattern.
695         (*fop_<MODEF:mode>_2_i387): Ditto.
696         (*fop_<MODEF:mode>_3_i387): Ditto.
697
698 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
699
700         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
701         
702 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
703
704         PR middle-end/34906
705         * gimplify.c (gimplify_asm_expr): Check the return code of
706         parse_output_constraint call, set function return and is_inout
707         value if it failed.
708
709 2008-06-22  Ian Lance Taylor  <iant@google.com>
710
711         * c-lex.c (narrowest_unsigned_type): Change itk to int.
712         (narrowest_signed_type): Likewise.
713         * c-typeck.c (c_common_type): Change local variable mclass to enum
714         mode_class, twice.
715         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
716         tcc_comparison, not the tree code itself.
717         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
718         (c_expand_expr): Cast modifier to enum expand_modifier.
719         * c-common.h (C_RID_CODE): Add casts.
720         (C_SET_RID_CODE): Define.
721         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
722         (c_lex_one_token): Add cast to avoid warning.
723         (c_parser_objc_type_name): Rename local typename to type_name.
724         (check_no_duplicate_clause): Change code parameter to enum
725         omp_clause_code.
726         (c_parser_omp_var_list_parens): Change kind parameter to enum
727         omp_clause_code.
728         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
729         c_parser_omp_list_var_parens.
730         (c_parser_omp_threadprivate): Likewise.
731         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
732         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
733         * c-format.c (NO_FMT): Define.
734         (printf_length_specs): Use NO_FMT.
735         (asm_fprintf_length_specs): Likewise.
736         (gcc_diag_length_specs): Likewise.
737         (scanf_length_specs): Likewise.
738         (strfmon_length_specs): Likewise.
739         (gcc_gfc_length_specs): Likewise.
740         (printf_flag_specs): Change 0 to STD_C89.
741         (asm_fprintf_flag_specs): Likewise.
742         (gcc_diag_flag_specs): Likewise.
743         (gcc_cxxdiag_flag_specs): Likewise.
744         (scanf_flag_specs): Likewise.
745         (strftime_flag_specs): Likewise.
746         (strfmon_flag_specs): Likewise.
747         (print_char_table): Likewise.
748         (asm_fprintf_char_table): Likewise.
749         (gcc_diag_char_table): Likewise.
750         (gcc_tdiag_char_table): Likewise.
751         (gcc_cdiag_char_table): Likewise.
752         (gcc_cxxdiag_char_table): Likewise.
753         (gcc_gfc_char_table): Likewise.
754         (scan_char_table): Likewise.
755         (time_char_table): Likewis.
756         (monetary_char_table): Likewise.
757         * c-format.h (BADLEN): Likewise.
758
759 2008-06-21  Ian Lance Taylor  <iant@google.com>
760
761         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
762         Define END_OF_BASE_TREE_CODES around inclusion.
763         * tree.c (tree_code_type): New global array.
764         (tree_code_length, tree_code_name): Likewise.
765         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
766         $(lang_tree_files).
767         (all-tree.def, s-alltree): New targets.
768         (gencheck.h, s-gencheck): Remove.
769         (tree.o): Depend upon all-tree.def.
770         (build/gencheck.o): Remove gencheck.h dependency.
771         (mostlyclean): Don't remove gencheck.h.
772         * c-common.h (enum c_tree_code): Remove.
773         * c-lang.c (tree_code_type): Remove.
774         (tree_code_length, tree_code_name): Remove.
775         * gencheck.c (tree_codes): Include all-tree.def, rather than
776         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
777         after it is used.
778         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
779         than tree.def.
780         * cp/cp-tree.h (enum cplus_tree_code): Remove.
781         (operator_name_info): Size to MAX_TREE_CODES.
782         (assignment_operator_name_info): Likewise.
783         * cp/cp-lang.c (tree_code_type): Remove.
784         (tree_code_length, tree_code_name): Remove.
785         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
786         (assignment_operator_name_info): Likewise.
787         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
788         MAX_TREE_CODES.
789         * cp/mangle.c (write_expression): Likewise.
790         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
791         * fortran/f95-lang.c (tree_code_type): Remove.
792         (tree_code_length, tree_code_name): Remove.
793         * java/java-tree.h (enum java_tree_code): Remove.
794         * java/lang.c (tree_code_type): Remove.
795         (tree_code_length, tree_code_name): Remove.
796         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
797         * objc/objc-act.h (enum objc_tree_code): Remove.
798         * objc/objc-lang.c (tree_code_type): Remove.
799         (tree_code_length, tree_code_name): Remove.
800         * objcp/objcp-lang.c (tree_code_type): Remove.
801         (tree_code_length, tree_code_name): Remove.
802         * ada/ada-tree.h (enum gnat_tree_code): Remove.
803         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
804         * ada/misc.c (tree_code_type): Remove.
805         (tree_code_length, tree_code_name): Remove.
806
807 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
808
809         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
810         the grand_bitmap_obstack.
811
812 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
813
814         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
815         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
816         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
817         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
818         move_stmt_r, new_label_mapper): Likewise.
819         * tree-complex.c (cvc_lookup): Likewise.
820         * tree-dfa.c (create_function_ann): Likewise.
821         * tree-dump.c (dump_register): Likewise.
822         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
823         find_phi_replacement_condition): Likewise.
824         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
825         tree_function_versioning): Likewise.
826         * tree-into-ssa.c (cmp_dfsnum): Likewise.
827         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
828         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
829         get_nonlocal_debug_decl, convert_nonlocal_reference,
830         convert_nonlocal_omp_clauses, get_local_debug_decl,
831         convert_local_reference, convert_local_omp_clauses,
832         convert_nl_goto_reference, convert_nl_goto_receiver,
833         convert_tramp_reference, convert_call_expr): Likewise.
834         * tree-outof-ssa.c (contains_tree_r): Likewise.
835         * tree-parloops.c (reduction_phi, initialize_reductions,
836         eliminate_local_variables_1, add_field_for_reduction,
837         add_field_for_name, create_phi_for_local_result,
838         create_call_for_reduction_1, create_loads_for_reductions,
839         create_stores_for_reduction, create_loads_and_stores_for_name):
840         Likewise.
841         * tree-phinodes.c (allocate_phi_node): Likewise.
842         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
843         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
844         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
845         * tree-ssa-coalesce.c (compare_pairs): Likewise.
846         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
847         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
848         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
849         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
850         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
851         vn_nary_op_insert): Likewise.
852         * tree-ssa.c (redirect_edge_var_map_add,
853         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
854         * tree-vectorizer.c (vectorize_loops): Likewise.
855         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
856         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
857         tree_cons_stat, build1_stat, build_variant_type_copy,
858         decl_init_priority_lookup, decl_fini_priority_lookup,
859         decl_priority_info, decl_restrict_base_lookup,
860         decl_restrict_base_insert, decl_debug_expr_lookup,
861         decl_debug_expr_insert, decl_value_expr_lookup,
862         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
863         type_hash_add, get_file_function_name, tree_check_failed,
864         tree_not_check_failed, tree_range_check_failed,
865         omp_clause_range_check_failed, build_omp_clause,
866         build_vl_exp_stat): Likewise.
867         * value-prof.c (gimple_histogram_value,
868         gimple_duplicate_stmt_histograms): Likewise.
869         * var-tracking.c (attrs_list_insert, attrs_list_copy,
870         unshare_variable, variable_union_info_cmp_pos, variable_union,
871         dataflow_set_different_1, dataflow_set_different_2,
872         vt_find_locations, variable_was_changed, set_variable_part,
873         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
874         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
875         section_entry_hash, object_block_entry_eq,
876         object_block_entry_hash, create_block_symbol,
877         initialize_cold_section_name, default_function_rodata_section,
878         strip_reg_name, set_user_assembler_name, const_desc_eq,
879         build_constant_desc, output_constant_def, lookup_constant_def,
880         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
881         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
882         default_internal_label): Likewise.
883         * varray.c (varray_init, varray_grow): Likewise.
884         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
885
886 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
887
888         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
889         operators for "test" insn.  Macroize insn using SWI mode macro.
890         (*jcc_fused_2): Ditto.
891         (*jcc_fused_3): Macroize insn using SWI mode macro.
892         (*jcc_fused_4): Ditto.
893
894 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
895
896         * tree-ssa-pre.c: Fix typo in comment.
897         (init_antic, fini_antic): Add explicit funtions for
898         initializing and deinitializing ANTIC and AVAIL sets.
899         (create_expression_by_pieces): Fix typo in comment.
900         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
901         (execute_pre): Eventually dump details about ANTIC_IN.
902
903 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
904
905         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
906         * gcc.c (translate_options, init_spec, store_arg, read_specs,
907         add_to_obstack, file_at_path, find_a_file, execute,
908         add_preprocessor_option, add_assembler_option, add_linker_option,
909         process_command, insert_wrapper, do_option_spec, do_self_spec,
910         spec_path, do_spec_1, is_directory, main, used_arg,
911         getenv_spec_function): Likewise.
912         * tlink.c (symbol_hash_lookup, file_hash_lookup,
913         demangled_hash_lookup, symbol_push, file_push, frob_extension):
914         Likewise.
915
916 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
917
918         * doc/rtl.texi: Updated subreg section.
919
920 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
921
922         PR c++/36523
923         * cgraphunit.c (cgraph_process_new_functions): Don't clear
924         node->needed and node->reachable.
925         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
926         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
927         (expand_task_call): Don't call expand_task_copyfn.
928         (expand_task_copyfn): Renamed to...
929         (finalize_task_copyfn): ... this.
930
931 2008-06-19  Jan Hubicka  <jh@suse.cz>
932
933         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
934         clobbering framepointer.
935
936 2008-06-19  Jan Hubicka  <jh@suse.cz>
937
938         * tree-optimize.c (execute_early_local_optimizations): Set
939         cgraph_state only at first invocation.
940
941 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
942
943         * system.h (-Wc++-compat): Activate as a warning, no an error.
944
945 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
946
947         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
948         instead of "#" in insn asm template.
949         (*jcc_fused_2): Ditto.
950
951 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
952
953         * config/i386/i386.h (ix86_tune_indices)
954         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
955         (TARGET_FUSE_CMP_AND_BRANCH): New define.
956         * config/i386/i386.md (*jcc_fused_1): New insn pattern
957         (*jcc_fused_2): Ditto.
958         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
959         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
960         (print operand): Handle 'E' and 'e' code.
961
962 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
963
964         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
965         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
966         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
967
968 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
969
970         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
971         node->decl.
972         (cgraph_expand_function): Use local copy of decl.
973         (cgraph_expand_all_functions): Remove redundant initialization of
974         order_pos.
975         (cgraph_optimize): Reword internal_error message.
976
977 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
978
979         * arm-protos.h (arm_return_in_memory): Remove public
980         arm_return_in_memory() prototype.
981         * arm.c (arm_return_in_memory): Add static prototype, add target
982         hook macro, change definition and comments.
983         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
984
985 2008-06-19  Ben Elliston  <bje@au.ibm.com>
986
987         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
988         real.c: Remove references to IEEE 754R.
989         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
990         * doc/libgcc.texi (Decimal float library routines): Likewise.
991
992 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
993
994         * targhooks.h (struct gcc_target): New member unwind_word_mode.
995         (default_unwind_word_mode): Add prototype.
996         * targhooks.c (default_unwind_word_mode): New function.
997         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
998         instead of word_mode.
999         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
1000         (TARGET_INITIALIZER): Use it.
1001
1002         * c-common.c (handle_mode_attribute): Support "unwind_word"
1003         mode attribute.
1004         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
1005
1006         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
1007         word_mode to access SjLj_Function_Context member "data".
1008         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
1009         conversion from targetm.eh_return_filter_mode () to
1010         targetm.unwind_word_mode () if they differ.
1011
1012         * builtin-types.def (BT_UNWINDWORD): New primitive type.
1013         (BT_FN_UNWINDWORD_PTR): New function type.
1014         (BT_FN_WORD_PTR): Remove.
1015         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
1016         * except.c (expand_builtin_extend_pointer): Convert pointer to
1017         targetm.unwind_word_mode () instead of word_mode.
1018
1019         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
1020         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
1021         (spu_unwind_word_mode): New function.
1022         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
1023         (TARGET_UNWIND_WORD_MODE): Define.
1024         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
1025
1026 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1027
1028         * config/spu/spu.c (reg_align): Remove.
1029         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
1030         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
1031         (spu_split_store): Likewise.
1032
1033 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
1034
1035         * gcc/tree-vn.c: Fix typo in comment.
1036
1037 2008-06-18  Jan Hubicka  <jh@suse.cz>
1038
1039         * cgraphunit.c (cgraph_optimize): Output debug info when doing
1040         toplevel reorder too.
1041
1042 2008-06-18  Jan Hubicka  <jh@suse.cz>
1043
1044         * c-opts.c (c_common_post_options): PCH is not compatible with
1045         no-unit-at-a-time.
1046         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
1047         -fno-toplevel-reorder by default now.
1048
1049 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1050
1051         PR documentation/30739
1052         * doc/install.texi (Prerequisites): Document dependency on awk.
1053
1054 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
1055             Ian Lance Taylor  <iant@google.com>
1056
1057         PR rtl-optimization/35604
1058         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
1059         only want to change jump destinations, not eventual label comparisons.
1060
1061 2008-06-16  Jan Hubicka  <jh@suse.cz>
1062
1063         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
1064         syntax errors.
1065         (cgraph_analyze_function): Likewise.
1066
1067 2008-06-16  Jan Hubicka  <jh@suse.cz>
1068
1069         * cgraph.h (cgraph_mark_if_needed): New function.
1070         * cgraphunit.c (cgraph_mark_if_needed): New function.
1071         * c-decl.c (duplicate_decl): Use it.
1072
1073 2008-06-16  Jan Hubicka  <jh@suse.cz>
1074
1075         * cgraph.c (cgraph_add_new_function): When in expansion state, do
1076         lowering.
1077
1078 2008-06-16  Jan Hubicka  <jh@suse.cz>
1079
1080         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
1081
1082 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
1083             Kazu Hirata  <kazu@codesourcery.com>
1084             Maxim Kuvyrkov  <maxim@codesourcery.com
1085
1086         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
1087         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
1088         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
1089         EXTRA_SPEC_FUNCTIONS.
1090         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
1091         (DRIVER_SELF_SPECS): Adjust.
1092         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
1093         * config/mips/st.h, config/mips/t-st: New.
1094         * config/mips/driver-native.c, config/mips/x-native: New.
1095         * doc/invoke.texi (MIPS): Document 'native' value for -march and
1096         -mtune options.
1097
1098 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
1099
1100         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
1101         from it.
1102         (ISA_HAS_FP_CONDMOVE): New macro.
1103         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
1104         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
1105         (ISA_HAS_NMADD3_NMSUB3): New macro.
1106         * config/mips/mips.c (mips_rtx_costs): Update.
1107         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
1108         compiling for ST Loongson 2E/2F.
1109         (madd<mode>): Rename to madd4<mode>.  Update.
1110         (madd3<mode>): New pattern.
1111         (msub<mode>): Rename to msub4<mode>.  Update.
1112         (msub3<mode>): New pattern.
1113         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
1114         (nmadd3<mode>): New pattern.
1115         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
1116         (nmadd3<mode>_fastmath): New pattern.
1117         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
1118         (nmsub3<mode>): New pattern.
1119         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
1120         (nmsub3<mode>_fastmath): New pattern.
1121         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
1122
1123 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
1124
1125         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
1126         (DF_REF_INSN_INFO): New.
1127         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
1128         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
1129         with a NULL DF_REF_INSN_INFO.
1130         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
1131         DF_INSN_SET.
1132         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
1133         DF_INSN_INFO_EQ_USES): New.
1134         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
1135         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
1136         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
1137         * df-core.c: Update comment for above changes.
1138         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
1139         DF_INSN_UID_* macros.
1140         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
1141         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
1142         insn rtx.  Update all callers.
1143         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
1144         df_ref_create_structure, df_insn_refs_collect): Likewise.
1145         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
1146         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
1147         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
1148         macros to access the insn refs.
1149         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
1150         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
1151         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
1152         for accessing the refs.
1153         (try_fwprop_subst): Likewise.
1154         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
1155         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
1156         for accessing the refs.
1157         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
1158         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
1159         to look at the insn refs.
1160         (record_uses): Likewise.
1161         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
1162         function anymore.
1163         (mark_artificial_uses): Don't mark_insn for artificial refs.
1164         (mark_reg_rependencies): Likewise.
1165
1166         * doc/rtl.texi: Remove documentation of ADDRESSOF.
1167
1168 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1169
1170         * configure: Regenerate.
1171
1172 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1173
1174         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
1175         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1176         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1177
1178 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1179
1180         * config/avr/avr.c (avr_mcu_t): Add attiny167.
1181         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1182         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1183
1184 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
1185
1186         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
1187         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
1188         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1189
1190 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
1191
1192         * tree-ssa-sccvn.c: Fix format of comments.
1193
1194 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
1195
1196         * cgraph.c: Remove unneeded forward declarations of eq_node()
1197         and hash_node().
1198
1199 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
1200
1201         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
1202         REG_RETVAL notes.
1203         (see_update_relevancy): Likewise.
1204         * fwprop.c (try_fwprop_subst): Likewise.
1205         * rtlanal.c (noop_move_p): Likewise.
1206         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
1207         notes to non-existing libcall blocks.
1208         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
1209         Remove orig_set.
1210         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
1211         (dead_libcall_p): Remove.
1212         (delete_trivially_dead_insns): Don't use it.
1213         * web.c (union_defs): Remove comment about keeping nops.
1214         * gcse.c (hash_scan_insn): Don't take libcall pointers.
1215         (compute_hash_table_work): Don't track libcall notes.
1216         (do_local_cprop): Don't take libcall pointers.  Don't update
1217         libcall notes.
1218         (adjust_libcall_notes): Deleted.
1219         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
1220         ever have existed in the first place).
1221         (replace_store_insn): Don't try to remove libcall notes.
1222         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
1223         (resolve_reg_notes): Don't call them.
1224         (resolve_simple_move): Likewise.
1225         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
1226         Don't remove REG_RETVAL notes.
1227         * emit-rtl.c (try_split): Don't update libcall notes.
1228         (emit_copy_of_insn_after): Dito.
1229         * cselib.c (cselib_current_insn_in_libcall): Remove.
1230         (cselib_process_insn): Don't set/clear it.
1231         (new_elt_loc_list): Don't record it.
1232         (cselib_init): Don't initialize it.
1233         * cselib.c (struct elt_loc_list): Remove in_libcall field.
1234         * loop-invariant.c (find_invariant_insn): Don't look for libcall
1235         notes.
1236         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
1237         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
1238         (init_deps): Don't initialize it.
1239         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
1240         * combine.c (delete_noop_moves): Don't update libcall notes.
1241         (can_combine_p): Remove now pointless #if 0 block.
1242         (try_combine): Remove another obsolete #if 0 block.
1243         (distribute_notes): Don't distribute libcall notes.
1244         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
1245         * dce.c (libcall_dead_p): Remove.
1246         (delete_unmarked_insns): Don't handle libcall blocks.
1247         (preserve_libcall_for_dce): Remove.
1248         (prescan_insns_for_dce): Don't special-case libcall block insns.
1249         * reload1 (reload): Don't handle libcall notes. 
1250         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
1251         documentation.
1252
1253 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
1254
1255         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
1256         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1257         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1258
1259 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
1260
1261         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
1262         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
1263         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
1264
1265 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1266
1267         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
1268
1269 2008-06-16  Ira Rosen  <irar@il.ibm.com>
1270
1271         PR tree-optimization/36493
1272         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
1273         the arguments list. Use VECTYPE to create vector pointer.
1274         (vectorizable_store): Fail if accesses through a pointer to vectype
1275         do not alias the original memory reference operands.
1276         Call vect_create_data_ref_ptr without the removed argument.
1277         (vectorizable_load): Likewise.
1278         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
1279         removed argument.
1280
1281 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
1282
1283         PR target/36336
1284         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
1285         reg_equiv_constant.
1286
1287 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1288
1289         * config/mips/loongson2ef.md: New file.
1290         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1291         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1292         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1293         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
1294         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
1295         and loongson_2f.
1296         (loongson2ef.md): New include.
1297         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
1298         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
1299         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
1300         (loongson_gt_<mode>, loongson_extract_halfword)
1301         (loongson_insert_halfword_0, loongson_insert_halfword_2)
1302         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
1303         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
1304         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
1305         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
1306         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
1307         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
1308         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
1309         (vec_interleave_low<mode>): Define type attribute.
1310         * config/mips/mips.c (mips_ls2): New static variable.
1311         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
1312         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
1313         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
1314         Implement target scheduling hooks.
1315         (mips_multipass_dfa_lookahead): Update to handle tuning for
1316         Loongson 2E/2F.
1317         (mips_sched_init): Initialize data for Loongson scheduling.
1318         (mips_ls2_variable_issue): New static function.
1319         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
1320         Add sanity check.
1321         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
1322         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
1323         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
1324         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
1325         Handle ST Loongson 2E/2F cores.
1326         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
1327
1328 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1329
1330         * omp-low.c (extract_omp_for_data): Fix comment typo.
1331         * c.opt: Fix typo.
1332
1333 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1334
1335         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
1336         FIXME note about gcc/config.guess.
1337         * doc/options.texi (Option file format): Remove non-ASCII bytes.
1338         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
1339         * doc/cppopts.texi: Likewise.
1340         * doc/extend.texi: Likewise.
1341         * doc/gcc.texi: Likewise.
1342         * doc/gccint.texi: Likewise.
1343         * doc/gcov.texi: Likewise.
1344         * doc/gty.texi: Likewise.
1345         * doc/hostconfig.texi: Likewise.
1346         * doc/install.texi: Likewise.
1347         * doc/invoke.texi: Likewise.
1348         * doc/loop.texi: Likewise.
1349         * doc/makefile.texi: Likewise.
1350         * doc/md.texi: Likewise.
1351         * doc/passes.texi: Likewise.
1352         * doc/tm.texi: Likewise.
1353         * doc/tree-ssa.texi: Likewise.
1354         * doc/trouble.texi: Likewise.
1355
1356 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
1357             Nathan Sidwell  <nathan@codesourcery.com>
1358             Maxim Kuvyrkov  <maxim@codesourcery.com>
1359             Richard Sandiford  <rdsandiford@googlemail.com>
1360         
1361         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
1362         * config/mips/mips-protos.h (mips_expand_vector_init): New.
1363         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
1364         builtins.
1365         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
1366         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
1367         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
1368         V8QImode cases.
1369         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
1370         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
1371         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
1372         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
1373         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
1374         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
1375         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
1376         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
1377         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
1378         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
1379         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
1380         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
1381         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
1382         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
1383         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
1384         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
1385         (mips_builtins): Add Loongson builtins.
1386         (mips_loongson_2ef_bdesc): New.
1387         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
1388         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
1389         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
1390         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
1391         New.
1392         (mips_expand_vector_init): New.
1393         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
1394         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
1395         if appropriate.
1396         * config/mips/mips.md: Add unspec numbers for Loongson
1397         builtins.  Include loongson.md.
1398         (MOVE64): Include Loongson vector modes.
1399         (SPLITF): Include Loongson vector modes.
1400         (HALFMODE): Handle Loongson vector modes.
1401         * config/mips/loongson.md: New.
1402         * config/mips/loongson.h: New.
1403         * config.gcc: Add loongson.h header for mips*-*-* targets.
1404         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
1405
1406 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
1407
1408         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
1409         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
1410         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
1411         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
1412         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
1413         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
1414         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
1415         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
1416         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
1417         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
1418         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
1419         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
1420         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
1421         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
1422         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
1423         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
1424         Remove use_fixproto=yes.
1425         (ia64*-*-hpux*): Remove comment about using fixproto.
1426         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
1427
1428 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1429
1430         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
1431         library rebuilds.
1432         * configure: Regenerate.
1433
1434 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1435
1436         PR middle-end/36520
1437         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
1438         before evaluating it.
1439
1440 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
1441
1442         PR c/36507
1443         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
1444         nested inline functions.
1445         (start_decl, start_function): Don't invert DECL_EXTERNAL
1446         for nested inline functions.
1447
1448 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1449
1450         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
1451         splits that must be made for correctness.
1452
1453 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
1454
1455         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
1456         (AVAIL_NON_MIPS16): Likewise.
1457         (mips_builtin_description): Replace target_flags with a predicate.
1458         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
1459         (dspr2_32): New availability predicates.
1460         (MIPS_BUILTIN): New macro.
1461         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
1462         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
1463         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
1464         Replace the TARGET_FLAGS parameters with AVAIL parameters.
1465         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
1466         (mips_dsp_32only_bdesc): Merge into...
1467         (mips_builtins): ...this new array.
1468         (mips_bdesc_map, mips_bdesc_arrays): Delete.
1469         (mips_init_builtins): Update after above changes.
1470         (mips_expand_builtin_1): Merge into...
1471         (mips_expand_builtin): ...here and update after above changes.
1472
1473 2008-06-12  Paul Brook  <paul@codesourcery.com>
1474
1475         * longlong.h (__arm__): Define count_leading_zeros.
1476         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
1477         (clzsi2, clzdi2): New functions.
1478         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
1479         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
1480         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
1481         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
1482         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
1483         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
1484         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
1485         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1486         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
1487         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
1488
1489 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
1490
1491         * config/m68k/m68k.c (m68k_tune_flags): New.
1492         (override_options): Compute m68k_tune_flags.
1493         (MULL_COST, MULW_COST): Update for various variants of CFV2.
1494         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
1495
1496 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1497
1498         PR middle-end/36506
1499         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
1500
1501 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1502
1503         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
1504         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
1505
1506 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1507
1508         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
1509         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
1510
1511 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1512
1513         PR middle-end/36506
1514         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
1515         reductions.
1516
1517 2008-06-12  Richard Guenther  <rguenther@suse.de>
1518
1519         PR tree-optimization/36345
1520         * tree-flow.h (struct ptr_info_def): Align escape_mask,
1521         add memory_tag_needed flag.
1522         (may_alias_p): Declare.
1523         * tree-ssa-alias.c (may_alias_p): Export.
1524         (set_initial_properties): Use memory_tag_needed flag.
1525         (update_reference_counts): Likewise.
1526         (reset_alias_info): Reset memory_tag_needed flag.
1527         (create_name_tags): Check memory_tag_needed flag.
1528         (dump_points_to_info_for): Dump it.
1529         * tree-ssa-structalias.c (struct variable_info): Remove
1530         directly_dereferenced flag.
1531         (new_var_info): Do not initialize it.
1532         (process_constraint_1): Do not set it.
1533         (update_alias_info): Set is_dereferenced flag.
1534         (set_uids_in_ptset): Use may_alias_p.
1535         (set_used_smts): Check memory_tag_needed flag.
1536         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
1537         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
1538         memory_tag_needed flag.
1539         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
1540         from broken design.
1541
1542 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
1543
1544         * config/i386/i386.c (ix86_compute_frame_layout): Disable
1545         red zone for w64 abi.
1546         (ix86_expand_prologue): Likewise.
1547         (ix86_force_to_memory): Likewise.
1548         (ix86_free_from_memory): Likewise.
1549
1550 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
1551
1552         PR target/36425
1553         * config/rs6000/rs6000.c (rs6000_override_options): Set
1554         rs6000_isel conditionally to the absence of comand line override.
1555         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
1556         Remove duplicate rs6000_isel setting.
1557         * config/rs6000/eabispe.h: Ditto.
1558
1559 2008-06-11  Richard Guenther  <rguenther@suse.de>
1560
1561         * alias.c (get_alias_set): Use the element alias-set for arrays.
1562         (record_component_aliases): For arrays and vectors do nothing.
1563         * c-common.c (strict_aliasing_warning): Handle the cases
1564         of alias set zero explicitly.
1565         * Makefile.in (dfp.o-warn): Add -Wno-error.
1566
1567 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1568
1569         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
1570         tune_32 tune_64.
1571         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
1572         tune_32 tune_64 to supported_defaults.  Allow values not
1573         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
1574         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
1575         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
1576         with_cpu_64 to generic for 64-bit-supporting configurations, not
1577         with_cpu.  Remove FIXMEs.
1578         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
1579         --with-arch-64, --with-tune-32, --with-tune-64): Document.
1580         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
1581         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
1582         arch_32 and arch_64.
1583
1584 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1585             Olivier Hainque  <hainque@adacore.com>
1586
1587         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
1588         Use DECL_SIZE_UNIT to retrieve the size of the field.
1589
1590 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
1591
1592         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
1593         with function calls after declarations.  Lay out
1594         neon_float_type_node before further use.
1595
1596 2008-06-11  Richard Guenther  <rguenther@suse.de>
1597
1598         * tree-flow.h (may_point_to_global_var): Declare.
1599         * tree-ssa-alias.c (may_point_to_global_var): New function.
1600         * tree-ssa-sink.c (is_hidden_global_store): Use it.
1601
1602 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
1603
1604         * configure.ac: Teach that fido supports .debug_line.
1605         * configure: Regenerate.
1606
1607 2008-06-10  Tom Tromey  <tromey@redhat.com>
1608
1609         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
1610         debug hook.
1611
1612 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1613
1614         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
1615         (encode_decimal64, decode_decimal64, encode_decimal128,
1616         decode_decimal128): Reverse order of 32-bit parts of value if host
1617         and target endianness differ.
1618
1619 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
1620
1621         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
1622         Avoid division by 0.
1623         (tree_mod_pow2_value_transform): Likewise.
1624         (tree_ic_transform): Likewise.
1625         (tree_stringops_transform): Likewise.
1626         (tree_mod_subtract_transform): Likewise.
1627         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
1628         (copy_edges_for_bb): Likewise.
1629         (initialize_cfun): Likewise.
1630
1631 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1632
1633         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
1634         nonmemory_operand. Add "N" operand constraint.
1635         (*btsi): Ditto.
1636         (*jcc_btdi_mask_rex64): New instruction and split pattern.
1637         (*jcc_btsi_mask): Ditto.
1638         (*jcc_btsi_mask_1): Ditto.
1639
1640 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
1641
1642         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
1643         TYPE_CANONICAL for copied element type.
1644
1645 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
1646
1647         PR target/36473
1648         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
1649         Add m_CORE2 and m_GENERIC.
1650         * config/i386/predicates.md (bt_comparison_operator): New predicate.
1651         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
1652         (*btsi): Ditto.
1653         (*jcc_btdi_rex64): New instruction and split pattern.
1654         (*jcc_btsi): Ditto.
1655         (*jcc_btsi_1): Ditto.
1656         (*btsq): Fix Intel asm dialect operand order.
1657         (*btrq): Ditto.
1658         (*btcq): Ditto.
1659
1660 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
1661
1662         PR middle-end/36447
1663         * simplify-rtx.c (simplify_subreg): Add check for shift count 
1664         greater than size.
1665
1666 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
1667
1668         * doc/md.texi: Synchronize with later constraints.md change.
1669         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
1670         with a C implementation.
1671         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
1672         MFLO handling.
1673         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
1674         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
1675         when moving to and from MD_REGNUM.
1676         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
1677         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
1678         Handle byte and halfword moves.
1679         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
1680         separately.
1681         * config/mips/constraints.md (h): Turn into NO_REGS.
1682         (l, x): Update documentation.
1683         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
1684         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
1685         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
1686         (HILO): New mode iterator.
1687         (MOVE128): Add TI.
1688         (any_div): New code iterator.
1689         (u): Extend code attribute to div and udiv.
1690         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
1691         d_operand in the splitters.  Remove redundant CONST_INT checks.
1692         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
1693         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
1694         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
1695         accordingly, using normal moves instead of unspecs to move LO into
1696         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
1697         (<u>mulsidi3): Handle expansion in C code.
1698         (<u>mulsidi3_32bit_internal): Rename to...
1699         (<u>mulsidi3_32bit): ...this.
1700         (<u>mulsidi3_32bit_r4000): Fix insn separator.
1701         (*<u>mulsidi3_64bit): Rename to...
1702         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
1703         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
1704         to set LO and HI to the multiplication result.  Use a normal move
1705         for MFLO and an unspec for MFHI.
1706         (*<u>mulsidi3_64bit_parts): Replace with...
1707         (<u>mulsidi3_64bit_hilo): ...this new instruction.
1708         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
1709         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
1710         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
1711         instead of HI.  Split the instruction into a separate multiplication
1712         and MFHI if !TARGET_FIX_R4000.
1713         (<su>muldi3_highpart): Likewise.
1714         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
1715         and the "=h" clobber.
1716         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
1717         (<u>mulditi3): New expander.
1718         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
1719         (madsi): Remove "=h" clobber.
1720         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
1721         Force the modulus result to be a GPR and split the instruction into
1722         a division followed by an MFHI after reload.
1723         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
1724         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
1725         the MIPS16 HIGH define_split.
1726         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
1727         of acc<->gpr moves to "multi".
1728         (*movdi_64bit): Replace the single "x" alternative with
1729         alternatives for moving into and out of "a".
1730         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
1731         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
1732         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
1733         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
1734         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
1735         (movti): New expander.
1736         (*movti, *movti_mips16): New insns.
1737         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
1738         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
1739         (mthi<GPR:mode>_<HILO:mode>): Likewise.
1740         * config/mips/predicates.md (fpr_operand): Delete.
1741         (d_operand): New predicate.
1742
1743 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
1744
1745         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
1746         failure on some Bourne shells.
1747         (x86_64-*-*): Ditto.
1748
1749 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
1750
1751         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
1752
1753 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1754
1755         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
1756         (sparc-sun-solaris2*): Likewise.
1757
1758 2008-06-09  Arnaud Charlet  <charlet@adacore.com
1759
1760         * doc/install.texi: Update requirements to build the Ada compiler.
1761
1762 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
1763
1764         * df-scan.c (struct df_scan_problem_data): Remove the
1765         mw_link_pool alloc pool.
1766         (df_scan_free_internal): Don't free it.
1767         (df_scan_alloc): Don't allocate it.
1768         * df.h (struct df_link): Update comment.
1769
1770 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
1771
1772         * except.h: Correct checks for when SJLJ exceptions must be used.
1773
1774 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1775
1776         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
1777         default.
1778         
1779 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
1780
1781         PR tree-optimization/36218
1782         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
1783         configure for the build system.
1784         (BUILD_LDFLAGS): Define.
1785         * configure: Regenerate.
1786         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
1787
1788 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
1789
1790         PR target/36424
1791         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
1792         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
1793         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
1794
1795 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
1796
1797         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
1798
1799 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
1800
1801         * config.gcc (Obsolete configurations): Remove list of
1802         configurations.
1803         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
1804         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
1805         targets matched by those patterns.
1806         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
1807         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
1808         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
1809         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
1810         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
1811         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
1812         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
1813         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
1814         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
1815         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
1816         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
1817         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
1818         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
1819         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
1820         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
1821         Make code for Solaris 7 and greater unconditional for Solaris.
1822         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
1823         Remove --with-* handling.
1824         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
1825         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
1826         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
1827         LINK_OS_WINDISS_SPEC): Remove.
1828         * config/rs6000/sysv4.opt (mwindiss): Remove.
1829         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
1830         * configure: Regenerate.
1831         * doc/cpp.texi: Don't mention BeOS.
1832         * doc/extend.texi (interrupt): Don't mention MS1.
1833         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
1834         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
1835         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
1836         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
1837         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
1838         Remove.
1839         * doc/invoke.texi (MT Options): Remove.
1840         (-mwindiss): Remove.
1841         (CRIS Options): Remove cris-axis-aout references.
1842         (HPPA Options): Don't mention hppa1.1-*-pro.
1843         * doc/md.texi: (MorphoTech family): Remove.
1844         * libgcc2.c: Don't handle UWIN.
1845         * config/alpha/t-unicosmk: Remove.
1846         * config/alpha/unicosmk.h: Remove.
1847         * config/arm/kaos-arm.h: Remove.
1848         * config/arm/kaos-strongarm.h: Remove.
1849         * config/arm/strongarm-coff.h: Remove.
1850         * config/arm/strongarm-elf.h: Remove.
1851         * config/arm/strongarm-pe.h: Remove.
1852         * config/arm/t-strongarm-pe: Remove.
1853         * config/arm/t-xscale-coff: Remove.
1854         * config/arm/t-xscale-elf: Remove.
1855         * config/arm/xscale-coff.h: Remove.
1856         * config/arm/xscale-elf.h: Remove.
1857         * config/chorus.h: Remove.
1858         * config/cris/aout.h: Remove.
1859         * config/cris/aout.opt: Remove.
1860         * config/cris/t-aout: Remove.
1861         * config/i386/beos-elf.h: Remove.
1862         * config/i386/kaos-i386.h: Remove.
1863         * config/i386/ptx4-i.h: Remove.
1864         * config/i386/sco5.h: Remove.
1865         * config/i386/sco5.opt: Remove.
1866         * config/i386/sysv4-cpp.h: Remove.
1867         * config/i386/sysv5.h: Remove.
1868         * config/i386/t-beos: Remove.
1869         * config/i386/t-sco5: Remove.
1870         * config/i386/t-uwin: Remove.
1871         * config/i386/uwin.asm: Remove.
1872         * config/i386/uwin.h: Remove.
1873         * config/kaos.h: Remove.
1874         * config/mips/windiss.h: Remove.
1875         * config/mt: Remove directory.
1876         * config/pa/pa-osf.h: Remove.
1877         * config/pa/pa-pro-end.h: Remove.
1878         * config/pa/t-pro: Remove.
1879         * config/ptx4.h: Remove.
1880         * config/rs6000/beos.h: Remove.
1881         * config/rs6000/kaos-ppc.h: Remove.
1882         * config/rs6000/t-beos: Remove.
1883         * config/rs6000/windiss.h: Remove.
1884         * config/sh/kaos-sh.h: Remove.
1885         * config/sol2-6.h: Remove.
1886         * config/sparc/sol26-sld.h: Remove.
1887         * config/sparc/sysv4-only.h: Remove.
1888         * config/vax/bsd.h: Remove.
1889         * config/vax/t-memfuncs: Remove.
1890         * config/vax/ultrix.h: Remove.
1891         * config/vax/vaxv.h: Remove.
1892         * config/windiss.h: Remove.
1893
1894 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1895
1896         PR rtl-optimization/36438
1897         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
1898         for vector shifts with constant scalar shift operands.
1899
1900 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
1901
1902         * doc/invoke.texi: Document -march=xlr.
1903         * config/mips/xlr.md: New file.
1904         * config/mips/mips.md: Include it.
1905         (cpu): Add "xlr".
1906         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
1907         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
1908         (mips_rtx_cost_data): Likewise.
1909
1910 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
1911
1912         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
1913         PRE_INC and PRE_DEC cases.
1914
1915 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1916
1917         PR rtl-optimization/36419
1918         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
1919         the emitting jump insn.
1920
1921         PR target/36362
1922         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
1923         is not bool, boolify the whole *expr_p and convert to the desired type.
1924
1925 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1926
1927         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
1928         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
1929         Add omp_private_outer_ref hook, add another argument to
1930         omp_clause_default_ctor hook.
1931         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1932         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1933         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
1934         hook_tree_tree_tree_tree_null.
1935         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
1936         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
1937         * hooks.c (hook_tree_tree_tree_tree_null): New function.
1938         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
1939         * tree.def (OMP_TASK): New tree code.
1940         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
1941         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
1942         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
1943         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
1944         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
1945         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
1946         OMP_CLAUSE_COLLAPSE_EXPR): Define.
1947         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1948         (OMP_DIRECTIVE_P): Add OMP_TASK.
1949         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1950         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1951         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1952         and OMP_CLAUSE_UNTIED entries.
1953         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
1954         num_ops to 2.
1955         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1956         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1957         * tree-pretty-print.c (dump_omp_clause): Handle
1958         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1959         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1960         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1961         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
1962         warning about unsigned iterators.  Change decl/init/cond/incr
1963         arguments to TREE_VECs, check arguments for all collapsed loops.
1964         (c_finish_omp_taskwait): New function.
1965         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1966         ws_clauses.
1967         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
1968         default_function_array_conversion on init.  Add par_clauses argument.
1969         If decl is present in parallel's lastprivate clause, change it to
1970         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1971         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
1972         collapse count in clauses.
1973         (c_parser_omp_for, c_parser_omp_parallel): Adjust
1974         c_parser_omp_for_loop callers.
1975         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1976         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1977         (c_parser_omp_clause_name): Handle collapse and untied clauses.
1978         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1979         functions.
1980         (c_parser_omp_clause_schedule): Handle schedule(auto).
1981         Include correct location in the error message.
1982         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1983         and PRAGMA_OMP_CLAUSE_UNTIED.
1984         (OMP_TASK_CLAUSE_MASK): Define.
1985         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1986         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1987         * tree-nested.c (convert_nonlocal_omp_clauses,
1988         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1989         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1990         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1991         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1992         OMP_CLAUSE_DECL.
1993         (conver_nonlocal_reference, convert_local_reference,
1994         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
1995         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1996         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1997         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1998         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1999         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
2000         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
2001         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
2002         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
2003         OMP_CLAUSE_UNTIED.
2004         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
2005         * c-common.h (c_finish_omp_taskwait): New prototype.
2006         * gimple-low.c (lower_stmt): Handle OMP_TASK.
2007         * tree-parloops.c (create_parallel_loop): Create 1 entry
2008         vectors for OMP_FOR_{INIT,COND,INCR}.
2009         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
2010         (make_edges): Handle OMP_TASK.
2011         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
2012         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2013         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
2014         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
2015         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
2016         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
2017         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
2018         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
2019         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
2020         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
2021         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
2022         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
2023         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
2024         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
2025         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
2026         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
2027         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
2028         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
2029         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
2030         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
2031         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
2032         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
2033         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
2034         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
2035         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
2036         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
2037         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
2038         original iterator is present in lastprivate clause or if
2039         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
2040         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2041         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
2042         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
2043         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
2044         if it is set, lookup var in outer contexts too.  Handle
2045         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
2046         to be implicitly determined firstprivate for task regions.
2047         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
2048         if it is set, lookup var in outer contexts too.  Set
2049         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
2050         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
2051         OMP_CLAUSE_UNTIED.  Take region_type as last argument
2052         instead of in_parallel and in_combined_parallel.
2053         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
2054         Adjust callers.
2055         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
2056         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
2057         (new_omp_context): Set default_kind to
2058         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
2059         (omp_region_type): New enum.
2060         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
2061         fields, add region_type.
2062         (new_omp_context): Take region_type as argument instead of is_parallel
2063         and is_combined_parallel.
2064         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
2065         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
2066         ctx->is_combined_parallel checks.
2067         (gimplify_omp_task): New function.
2068         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
2069         OMP_CLAUSE_UNTIED.
2070         * omp-low.c (extract_omp_for_data): Use schedule(static)
2071         for schedule(auto).  Handle pointer and unsigned iterators.
2072         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
2073         Add loops argument.  Extract data for collapsed OMP_FOR loops.
2074         (expand_parallel_call): Assert sched_kind isn't auto,
2075         map runtime schedule to index 3.
2076         (struct omp_for_data_loop): New type.
2077         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
2078         Add loop, loops, collapse and iter_type fields.
2079         (workshare_safe_to_combine_p): Disallow combined for if
2080         iter_type is unsigned long long.  Don't combine collapse > 1 loops
2081         unless all bounds and steps are constant.  Adjust extract_omp_for_data
2082         caller.
2083         (expand_omp_for_generic): Handle pointer, unsigned and long long
2084         iterators.  Handle collapsed OMP_FOR loops.  Adjust
2085         for struct omp_for_data changes.  If libgomp function doesn't return
2086         boolean_type_node, add comparison of the return value with 0.
2087         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
2088         pointer, unsigned and long long iterators.  Adjust for struct
2089         omp_for_data changes.
2090         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
2091         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
2092         unsigned long long.  Allocate loops array, pass it to
2093         extract_omp_for_data.  For collapse > 1 loops use always
2094         expand_omp_for_generic.
2095         (omp_context): Add sfield_map and srecord_type fields.
2096         (is_task_ctx, lookup_sfield): New functions.
2097         (use_pointer_for_field): Use is_task_ctx helper.  Change first
2098         argument's type from const_tree to tree.  Clarify comment.
2099         In OMP_TASK disallow copy-in/out sharing.
2100         (build_sender_ref): Call lookup_sfield instead of lookup_field.
2101         (install_var_field): Add mask argument.  Populate both record_type
2102         and srecord_type if needed.
2103         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
2104         in srecord_type.
2105         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
2106         and DECL_FIELD_OFFSET.
2107         (scan_sharing_clauses): Adjust install_var_field callers.  For
2108         firstprivate clauses on explicit tasks allocate the var by value in
2109         record_type unconditionally, rather than by reference.
2110         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
2111         Use is_taskreg_ctx instead of is_parallel_ctx.
2112         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
2113         (create_omp_child_function_name): Add task_copy argument, use
2114         *_omp_cpyfn* names if it is true.
2115         (create_omp_child_function): Add task_copy argument, if true create
2116         *_omp_cpyfn* helper function.
2117         (scan_omp_parallel): Adjust create_omp_child_function callers.
2118         Rename parallel_nesting_level to taskreg_nesting_level.
2119         (scan_omp_task): New function.
2120         (lower_rec_input_clauses): Don't run constructors for firstprivate
2121         explicit task vars which are initialized by *_omp_cpyfn*.  
2122         Pass outer var ref to omp_clause_default_ctor hook if
2123         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
2124         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
2125         OMP_CLAUSE_REDUCTION_INIT.
2126         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
2127         avoid duplicate setting of fields.  Handle
2128         OMP_CLAUSE_PRIVATE_OUTER_REF.
2129         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
2130         copy-out if TREE_READONLY, only copy-in.
2131         (expand_task_copyfn): New function.
2132         (expand_task_call): New function.
2133         (struct omp_taskcopy_context): New type.
2134         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
2135         New functions.
2136         (lower_omp_parallel): Rename to...
2137         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
2138         Call create_task_copyfn if srecord_type is needed.  Adjust
2139         sender_decl type.
2140         (task_shared_vars): New variable.
2141         (check_omp_nesting_restrictions): Warn if work-sharing,
2142         barrier, master or ordered region is closely nested inside OMP_TASK.
2143         Add warnings for barrier if closely nested inside of work-sharing,
2144         ordered, or master region.
2145         (scan_omp_1): Call check_omp_nesting_restrictions even for
2146         GOMP_barrier calls.  Rename parallel_nesting_level to
2147         taskreg_nesting_level.  Handle OMP_TASK.
2148         (lower_lastprivate_clauses): Even if some lastprivate is found on a
2149         work-sharing construct, continue looking for them on parent parallel
2150         construct.
2151         (lower_omp_for_lastprivate): Add lastprivate clauses
2152         to the beginning of dlist rather than end.  Adjust for struct
2153         omp_for_data changes.
2154         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
2155         not after it.  Handle collapsed OMP_FOR loops, adjust for
2156         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
2157         (get_ws_args_for): Adjust extract_omp_for_data caller.
2158         (scan_omp_for): Handle collapsed OMP_FOR
2159         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
2160         (lower_omp_single_simple): If libgomp function doesn't return
2161         boolean_type_node, add comparison of the return value with 0.
2162         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
2163         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
2164         (parallel_nesting_level): Rename to...
2165         (taskreg_nesting_level): ... this.
2166         (is_taskreg_ctx): New function.
2167         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
2168         of is_parallel_ctx.
2169         (execute_lower_omp): Rename parallel_nesting_level to
2170         taskreg_nesting_level.
2171         (expand_omp_parallel): Rename to...
2172         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
2173         Call omp_task_call for OMP_TASK regions.
2174         (expand_omp): Adjust caller, handle OMP_TASK.
2175         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
2176
2177         * bitmap.c (bitmap_default_obstack_depth): New variable.
2178         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
2179         if argument is NULL and bitmap_default_obstack is already initialized.
2180         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
2181         at the end.
2182         * matrix-reorg.c (matrix_reorg): Likewise.
2183
2184 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
2185
2186         * config/i386/i386.md (*indirect_jump): Macroize using P
2187         mode iterator.  Remove !TARGET_64BIT from insn constraints.
2188         (*tablejump_1): Ditto.
2189         (*indirect_jump_rex64): Remove insn pattern.
2190         (*tablejump_1_rex64): Ditto.
2191         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
2192         and eh_return_si insn patterns.
2193
2194 2008-06-06  Richard Guenther  <rguenther@suse.de>
2195
2196         * tree-ssa-structalias.c (merge_smts_into): Remove.
2197         (find_what_p_points_to): Do not bother to compute the
2198         points-to set for pt_anything pointers.
2199         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
2200         for pt_anything pointers is ok.
2201
2202 2008-06-06  Jan Hubicka  <jh@suse.cz>
2203
2204         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
2205
2206 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2207
2208         * cgraph.c: Fix typos in comments.
2209         (cgraph_availability_names): Fix string typo.
2210         * fold-const.c: Fix typos in comments.
2211         (fold_binary): Fix typo in warning.
2212         * genautomata.c: Fix typos in comments.
2213         (check_presence_pattern_sets): Fix typo in local variable.
2214         (output_description): Fix typo in output.
2215         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
2216         * hwint.h: Likewise.
2217         * matrix-reorg.c (check_allocation_function): Likewise.
2218         * omega.c (smooth_weird_equations): Likewise.
2219         * auto-inc-dec.c: Fix typos in comments.
2220         * bb-reorder.c: Likewise.
2221         * builtins.c: Likewise.
2222         * c-common.c: Likewise.
2223         * c-cppbuiltin.c: Likewise.
2224         * c-parser.c: Likewise.
2225         * c-pretty-print.c: Likewise.
2226         * cfgcleanup.c: Likewise.
2227         * cfgexpand.c: Likewise.
2228         * cfghooks.c: Likewise.
2229         * cfglayout.c: Likewise.
2230         * cfgloopmanip.c: Likewise.
2231         * cgraphunit.c: Likewise.
2232         * coverage.c: Likewise.
2233         * dbxout.c: Likewise.
2234         * df-byte-scan.c: Likewise.
2235         * df-core.c: Likewise.
2236         * df-problems.c: Likewise.
2237         * df-scan.c: Likewise.
2238         * dfp.c: Likewise.
2239         * dominance.c: Likewise.
2240         * domwalk.c: Likewise.
2241         * dse.c: Likewise.
2242         * dwarf2out.c: Likewise.
2243         * emit-rtl.c: Likewise.
2244         * et-forest.c: Likewise.
2245         * function.c: Likewise.
2246         * function.h: Likewise.
2247         * gcc.c: Likewise.
2248         * gcov-io.c: Likewise.
2249         * gcov.c: Likewise.
2250         * gcse.c: Likewise.
2251         * genattrtab.c: Likewise.
2252         * ggc-page.c: Likewise.
2253         * gimplify.c: Likewise.
2254         * gthr-lynx.h: Likewise.
2255         * haifa-sched.c: Likewise.
2256         * ipa-cp.c: Likewise.
2257         * ipa-inline.c: Likewise.
2258         * ipa-prop.h: Likewise.
2259         * ipa-pure-const.c: Likewise.
2260         * ipa-struct-reorg.c: Likewise.
2261         * ipa-struct-reorg.h: Likewise.
2262         * ipa-type-escape.c: Likewise.
2263         * ipa.c: Likewise.
2264         * loop-doloop.c: Likewise.
2265         * mips-tfile.c: Likewise.
2266         * mkmap-flat.awk: Likewise.
2267         * mkmap-symver.awk: Likewise.
2268         * modulo-sched.c: Likewise.
2269         * omp-low.c: Likewise.
2270         * optabs.c: Likewise.
2271         * optabs.h: Likewise.
2272         * opts.c: Likewise.
2273         * passes.c: Likewise.
2274         * postreload-gcse.c: Likewise.
2275         * postreload.c: Likewise.
2276         * predict.c: Likewise.
2277         * pretty-print.h: Likewise.
2278         * profile.c: Likewise.
2279         * protoize.c: Likewise.
2280         * ra-conflict.c: Likewise.
2281         * real.c: Likewise.
2282         * recog.c: Likewise.
2283         * regclass.c: Likewise.
2284         * regs.h: Likewise.
2285         * reload.c: Likewise.
2286         * rtl-error.c: Likewise.
2287         * rtlanal.c: Likewise.
2288         * scan.h: Likewise.
2289         * sched-rgn.c: Likewise.
2290         * see.c: Likewise.
2291         * stmt.c: Likewise.
2292         * target.h: Likewise.
2293         * tree-dfa.c: Likewise.
2294         * tree-eh.c: Likewise.
2295         * tree-flow-inline.h: Likewise.
2296         * tree-inline.c: Likewise.
2297         * tree-into-ssa.c: Likewise.
2298         * tree-loop-distribution.c: Likewise.
2299         * tree-nested.c: Likewise.
2300         * tree-parloops.c: Likewise.
2301         * tree-pass.h: Likewise.
2302         * tree-pretty-print.c: Likewise.
2303         * tree-profile.c: Likewise.
2304         * tree-scalar-evolution.c: Likewise.
2305         * tree-sra.c: Likewise.
2306         * tree-ssa-alias-warnings.c: Likewise.
2307         * tree-ssa-ccp.c: Likewise.
2308         * tree-ssa-coalesce.c: Likewise.
2309         * tree-ssa-dom.c: Likewise.
2310         * tree-ssa-dse.c: Likewise.
2311         * tree-ssa-forwprop.c: Likewise.
2312         * tree-ssa-live.c: Likewise.
2313         * tree-ssa-live.h: Likewise.
2314         * tree-ssa-loop-im.c: Likewise.
2315         * tree-ssa-loop-ivopts.c: Likewise.
2316         * tree-ssa-loop-niter.c: Likewise.
2317         * tree-ssa-loop-prefetch.c: Likewise.
2318         * tree-ssa-phiopt.c: Likewise.
2319         * tree-ssa-phiprop.c: Likewise.
2320         * tree-ssa-sccvn.c: Likewise.
2321         * tree-ssa-ter.c: Likewise.
2322         * tree-ssa-threadupdate.c: Likewise.
2323         * tree-ssa.c: Likewise.
2324         * tree-vect-analyze.c: Likewise.
2325         * tree-vect-transform.c: Likewise.
2326         * tree-vectorizer.c: Likewise.
2327         * tree-vn.c: Likewise.
2328         * tree-vrp.c: Likewise.
2329         * tree.c: Likewise.
2330         * tree.def: Likewise.
2331         * tree.h: Likewise.
2332         * unwind-dw2-fde.c: Likewise.
2333         * unwind.inc: Likewise.
2334         * value-prof.c: Likewise.
2335         * vmsdbgout.c: Likewise.
2336
2337 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
2338
2339         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
2340         always place FP constants in the TOC for TARGET_POWERPC64.
2341         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
2342
2343 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
2344
2345         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
2346         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
2347         enable for TARGET_E500_DOUBLE.
2348         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
2349         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
2350         floating-point modes like integer modes for E500 double.
2351         (rs6000_legitimate_offset_address_p): Likewise.
2352         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
2353         addressing for DDmode for E500 double.
2354         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
2355         modes as using 64-bits of registers for E500 double.
2356         (spe_build_register_parallel): Do not handle DDmode or TDmode.
2357         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
2358         specially for E500 double.
2359         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
2360         TDmode for E500 double.
2361         (rs6000_gimplify_va_arg): Only handle SDmode in registers
2362         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
2363         (rs6000_split_multireg_move): Do not handle TDmode specially for
2364         E500 double.
2365         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
2366         using 64-bit registers for E500 double.
2367         (emit_frame_save): Do not handle DDmode specially for E500 double.
2368         (gen_frame_mem_offset): Likewise.
2369         (rs6000_function_value): Do not call spe_build_register_parallel
2370         for DDmode or TDmode.
2371         (rs6000_libcall_value): Likewise.
2372         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
2373         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
2374         for E500 double.
2375
2376 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
2377
2378         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
2379         in comments.
2380
2381 2008-06-04  Junjie Gu <jgu@tensilica.com>
2382
2383         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
2384         comparison for frame pointers.
2385
2386 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2387
2388         PR target/27386
2389         * config/avr/avr.h (PUSH_ROUNDING): Remove.
2390
2391 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
2392
2393         PR target/30243
2394         * builtins.c (expand_builtin_signbit): Don't take lowpart when
2395         register is already smaller or equal to required mode. 
2396
2397 2008-06-04  Xinliang David Li  <davidxl@google.com>
2398
2399         * tree-call-cdce.c: New file. 
2400         (cond_dead_built_in_calls): New static variable.
2401         (input_domain): New struct.
2402         (check_pow): New function.
2403         (check_builtin_call): Ditto.
2404         (check_target_format): Ditto.
2405         (is_call_dce_candidate): Ditto.
2406         (gen_one_condition): Ditto.
2407         (gen_conditions_for_domain): Ditto.
2408         (get_domain): Ditto.
2409         (gen_conditions_for_pow_cst_base): Ditto.
2410         (gen_conditions_for_pow_int_base): Ditto.
2411         (gen_conditions_for_pow): Ditto.
2412         (get_no_error_domain): Ditto.
2413         (gen_shrink_wrap_conditions): Ditto.
2414         (shrink_wrap_one_built_in_call): Ditto.
2415         (shink_wrap_conditional_dead_built_in_calls): Ditto.
2416         (tree_call_cdce): Ditto.
2417         (gate_call_cdce): Ditto.
2418         (pass_call_cdce): New gimple pass.
2419         * passes.c: (init_optimization_passes): New pass.
2420         * tree-pass.h: New pass declaration.
2421         * opts.c (decode_options): New flag setting.
2422         * common.opt: Add -ftree-builtin-call-dce flag.
2423         * Makefile.in: Add new source file.
2424         * tempvar.def: New tv_id.
2425         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
2426
2427 2008-06-04  Richard Guenther  <rguenther@suse.de>
2428
2429         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
2430         (is_call_clobbered): Always check var_ann->call_clobbered.
2431         (mark_call_clobbered): Always set var_ann->call_clobbered.
2432         (clear_call_clobbered): Always clear var_ann->call_clobbered.
2433         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
2434         (reset_alias_info): Clear call clobbering info on MTAGs and
2435         globals as well.
2436         (set_pt_anything): Set pt_global_mem.
2437         (create_tag_raw): Adjust comment.
2438         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
2439
2440 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
2441             Maxim Kuvyrkov  <maxim@codesourcery.com>
2442
2443         * config/m68k/m68k.opt (mxgot): New option.
2444         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
2445         (m68k_output_addr_const_extra): New.
2446         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
2447         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
2448         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
2449         * doc/invoke.texi (M680x0 Options): Document -mxgot.
2450
2451 2008-06-04  Richard Guenther  <rguenther@suse.de>
2452
2453         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
2454         negative or non-representable offsets.
2455
2456 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2457
2458         * config/i386/i386.c (ix86_gen_leave): New.
2459         (ix86_gen_pop1): Likewise.
2460         (ix86_gen_add3): Likewise.
2461         (ix86_gen_sub3): Likewise.
2462         (ix86_gen_sub3_carry): Likewise.
2463         (ix86_gen_one_cmpl2): Likewise.
2464         (ix86_gen_monitor): Likewise.
2465         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
2466         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
2467         ix86_gen_one_cmpl2 and ix86_gen_monitor.
2468         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
2469         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
2470         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
2471         (ix86_expand_epilogue): Updated.
2472         (print_operand): Handle integer register operand for 'z'.
2473         (ix86_expand_strlensi_unroll_1): Likewise.
2474         (ix86_expand_strlen): Likewise.
2475         (ix86_expand_builtin): Likewise.
2476         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
2477         mov{q}/mov{l} and add{q}/add{l}.
2478
2479 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2480
2481         * config/i386/i386.md (P): New mode iterator.
2482         (SFmode push_operand splitter): Macroize DImode and SImode pushes
2483         using P mode iterator.
2484         (DFmode push_operand splitter): Ditto.
2485         (XFmode push_operand splitter): Ditto.
2486         (DFmode float_extend SFmode push_operand splitter): Ditto.
2487         (XFmode float_extend SFmode push_operand splitter): Do not generate
2488         SImode pushes for 64bit target.  Macroize Dimode and SImode
2489         pushes using P mode iterator.
2490         (XFmode float_extend DFmode push_operand splitter): Ditto.
2491
2492 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2493
2494         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
2495         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
2496         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
2497         return type to int.
2498         (ix86_call_abi_override): Remove check for call_used_regs.
2499
2500 2008-06-03  Richard Guenther  <rguenther@suse.de>
2501
2502         * tree-ssa-structalias.c (find_func_aliases): Add constraints
2503         for the lhs of calls if the return type contains pointers.
2504
2505 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
2506
2507         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
2508         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
2509         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
2510         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
2511         of cfun and DEFAULT_ABI to deceide abi mode.
2512         (DEFAULT_ABI): New.
2513         (REG_PARM_STACK_SPACE): Removed.
2514         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
2515         (STACK_BOUNDARY): Use default target to deceide stack boundary.
2516         * config/i386/i386-protos.h (ix86_cfun_abi): New.
2517         (ix86_function_abi): Likewise.
2518         (ix86_function_type_abi): Likewise.
2519         (ix86_call_abi_override): Likewise.
2520         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
2521         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
2522         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
2523         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
2524         specific defines.
2525         (X86_64_REGPARM_MAX): New.
2526         (X86_64_SSE_REGPARM_MAX): New.
2527         (X64_REGPARM_MAX): New.
2528         (X64_SSE_REGPARM_MAX): New.
2529         (X86_32_REGPARM_MAX): New.
2530         (X86_32_SSE_REGPARM_MAX): New.
2531         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
2532         (ix86_function_regparm): Handle user calling abi.
2533         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
2534         by DEFAULT_ABI versus SYSV_ABI check.
2535         (ix86_reg_parm_stack_space): New.
2536         (ix86_function_type_abi): New.
2537         (ix86_call_abi_override): New.
2538         (ix86_function_abi): New.
2539         (ix86_cfun_abi): New.
2540         (init_cumulative_args): Call abi specific initialization.
2541         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
2542         (function_arg_64): Extend SSE_REGPARM_MAX check.
2543         (function_arg (): Remove TARGET_64BIT_MS_ABI.
2544         (ix86_pass_by_reference): Likewise.
2545         (ix86_function_value_regno_p): Likewise.
2546         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
2547         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
2548         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
2549         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
2550         (setup_incoming_varargs_64): Adjust regparm for call abi.
2551         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
2552         (ix86_va_start): Likewise.
2553         (ix86_gimplify_va_arg): Likewise.
2554         (ix86_expand_prologue): Likewise.
2555         (output_pic_addr_const): Likewise.
2556         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
2557         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
2558         (x86_output_mi_thunk): Likewise.
2559         (x86_function_profiler): Likewise.
2560         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
2561         (SYSV_ABI, MS_ABI): New constants.
2562         (DEFAULT_ABI): New.
2563         (init_regs): Add prototype of function in regclass.c file.
2564         (OVERRIDE_ABI_FORMAT): New.
2565         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
2566         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
2567         (OUTGOING_REG_PARM_STACK_SPACE): New.
2568         (ix86_reg_parm_stack_space): New prototype.
2569         (CUMULATIVE_ARGS): Add call_abi member.
2570         (machine_function): Add call_abi member.
2571         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
2572         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
2573
2574 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
2575
2576         PR target/34879
2577         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
2578         (avr_builtin_setjmp_frame_value): New function.
2579         * config/avr/avr.md (nonlocal_goto_receiver): Define.
2580         (nonlocal_goto): Define.
2581
2582 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
2583
2584         * config/mips/mips.c (mips_emit_loadgp): Return early if
2585         there is nothing do to, otherwise emit a blockage if
2586         !TARGET_EXPLICIT_RELOCS || crtl->profile.
2587         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
2588
2589 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2590
2591         * configure.ac: Drop unneeded backslash ending up in config.in.
2592         * acinclude.m4: Likewise.
2593         * config.in: Regenerate.
2594
2595 2008-05-26  Jan Hubicka  <jh@suse.cz>
2596
2597         * predict.c (maybe_hot_frequency_p): Break out of...
2598         (maybe_hot_bb_p): ... here.
2599         (maybe_hot_edge_p): New.
2600         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
2601         * basic-block.h (maybe_hot_edge_p): Declare.
2602
2603 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2604
2605         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
2606         (*cmpfp_<mode>_cc): Ditto.
2607         (*fp_jcc_8<mode>_387): Ditto.
2608         (*fop_<MODEF:mode>_2_i387): Ditto.
2609         (*fop_<MODEF:mode>_3_i387): Ditto.
2610         (*fop_xf_2_i387): Ditto.
2611         (*fop_xf_3_i387): Ditto.
2612
2613 2008-06-02  Tomas Bily  <tbily@suse.cz>
2614
2615         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
2616
2617 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2618
2619         * config/mips/mips.c (mips_valid_offset_p): New function.
2620         (mips_valid_lo_sum_p): Likewise.
2621         (mips_classify_address): Use them.
2622         (mips_force_address): New function.
2623         (mips_legitimize_address): Use it.
2624         * config/mips/mips.md (MOVE128): New mode iterator.
2625         (movtf): Require TARGET_64BIT.  Remove empty strings.
2626         (*movtf_internal): Rename to...
2627         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
2628         of "R" and use {,fp}{load,store} attributes instead of "multi".
2629         Use a separate define_split.
2630         (*movtf_mips16): New pattern.
2631
2632 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2633
2634         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
2635         * config/mips/mips.c (mips_expand_before_return): New function.
2636         (mips_expand_epilogue): Call it.
2637         * config/mips/mips.md (return): Turn into a define_expand.
2638         (*return): New insn.
2639
2640 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
2641
2642         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
2643         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
2644         functions.  Do not emit uses and clobbers of CONCATs; individually
2645         use and clobber their operands.
2646         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
2647         gen_clobber, emit_use and gen_use.
2648         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
2649         (expand_builtin_return): Likewise.
2650         * cfgbuild.c (count_basic_blocks): Likewise.
2651         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2652         * explow.c (emit_stack_restore): Likewise.
2653         * expmed.c (extract_bit_field_1): Likewise.
2654         * expr.c (convert_move, emit_move_complex_parts): Likewise.
2655         (emit_move_multi_word, store_constructor): Likewise.
2656         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
2657         (thread_prologue_and_epilogue_insns): Likewise.
2658         * lower-subreg.c (resolve_simple_move): Likewise.
2659         * optabs.c (widen_operand, expand_binop): Likewise.
2660         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
2661         * reload.c (find_reloads): Likewise.
2662         * reload1.c (eliminate_regs_in_insn): Likewise.
2663         * stmt.c (expand_nl_goto_receiver): Likewise.
2664         * config/alpha/alpha.md (builtin_longjmp): Likewise.
2665         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2666         * config/arm/arm.c (arm_load_pic_register): Likewise.
2667         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
2668         * config/arm/arm.md (untyped_return): Likewise.
2669         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
2670         * config/avr/avr.c (expand_prologue): Likewise.
2671         * config/bfin/bfin.c (do_unlink): Likewise.
2672         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
2673         * config/cris/cris.c (cris_expand_prologue): Likewise.
2674         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2675         (machopic_legitimize_pic_address): Likewise.
2676         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
2677         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
2678         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
2679         (ix86_expand_convert_uns_didf_sse): Likewise.
2680         (ix86_expand_vector_init_general): Likewise.
2681         * config/ia64/ia64.md (eh_epilogue): Likewise.
2682         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
2683         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
2684         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
2685         (config/iq2000/iq2000.c): Likewise.
2686         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2687         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2688         (builtin_longjmp): Likewise.
2689         * config/mn10300/mn10300.md (call, call_value): Likewise.
2690         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
2691         * config/pdp11/pdp11.md (abshi2): Likewise.
2692         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2693         * config/s390/s390.c (s390_emit_prologue): Likewise.
2694         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
2695         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
2696         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
2697         * config/sh/sh.c (prepare_move_operands): Likewise.
2698         (output_stack_adjust, sh_expand_epilogue): Likewise.
2699         (sh_set_return_address, sh_expand_t_scc): Likewise.
2700         * config/sparc/sparc.c (load_pic_register): Likewise.
2701         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
2702         * config/spu/spu.c (spu_expand_epilogue): Likewise.
2703         * config/v850/v850.c (expand_epilogue): Likewise.
2704
2705 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
2706
2707         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
2708         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
2709         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
2710         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
2711         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
2712         stack pointer register.
2713         (output_movhi): Remove code for interrupt specific writing to the 
2714         stack pointer register.
2715
2716 2008-05-31  Richard Guenther  <rguenther@suse.de>
2717
2718         PR tree-optimization/34244
2719         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
2720         (tree_expr_nonzero_warnv_p): Likewise.
2721         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
2722         ssa_name_nonnegative_p.
2723         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
2724         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
2725         not tree_expr_nonzero_warnv_p.
2726
2727         PR tree-optimization/36262
2728         Revert
2729         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
2730
2731         PR tree-optimization/34244
2732         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
2733         (record_numbers_of_iterations): New function.
2734         (execute_vrp): Cache the numbers of iterations of loops.
2735         * tree-scalar-evolution.c (scev_reset_except_niters):
2736         New function.
2737         (scev_reset): Use scev_reset_except_niters.
2738         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
2739
2740 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2741
2742         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2743         __WORKAROUND_RETS when appropriate.
2744
2745 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
2746
2747         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
2748         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
2749         mode iterator.
2750         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
2751         *fop_df_comm_sse insn patterns using MODEF mode iterator.
2752         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
2753         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
2754         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
2755         *fop_df_1_mixed insn patterns using MODEF mode iterator.
2756         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
2757         *fop_df_1_sse insn patterns using MODEF mode iterator.
2758         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
2759         *fop_df_1_i387 insn patterns using MODEF mode iterator.
2760         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
2761         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
2762         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
2763         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
2764         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
2765         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
2766         (*fop_xf_4_i387): Use <MODE> for mode attribute.
2767         (*fop_xf_5_i387): Ditto.
2768         (*fop_xf_6_i387): Ditto.
2769
2770 2008-05-30  Richard Guenther  <rguenther@suse.de>
2771
2772         * builtins.c (build_string_literal): Avoid generating
2773         a non-gimple_val result.
2774
2775 2008-05-30  DJ Delorie  <dj@redhat.com>
2776
2777         * exec-tool.in: Use an environment variable (private) instead of a
2778         file (shared) as a semaphore, so as to not break parallel builds.
2779
2780 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2781
2782         * optabs.c (maybe_encapsulate_block): Remove.
2783         (emit_libcall_block): Adjust accordingly.
2784         * optabs.h (maybe_encapsulate_block): Remove prototype.
2785
2786         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
2787         Don't use maybe_encapsulate_block.
2788
2789 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2790
2791         * config/rs6000/rs6000.c (rs6000_legitimize_address,
2792         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
2793         rtx is a SYMBOL_REF before calling get_pool_constant.
2794
2795 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2796
2797         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
2798
2799 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
2800
2801         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
2802         rather than OS names to choose INO_T_EQ definition.
2803         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
2804         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
2805
2806 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
2807
2808         PR target/36348
2809         * config/darwin-f.c: New.
2810         * config/t-darwin: Added rule to build darwin-f.o.
2811         * config.gcc: Defined new variable, fortran_target_objs.
2812         (*-*-darwin*): Set fortran_target_objs.
2813         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
2814         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
2815         * configure: Regenerated.
2816
2817 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2818
2819         PR target/35771
2820         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
2821         canonical type if needed.
2822
2823 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2824
2825         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
2826
2827 2008-05-29  Richard Guenther  <rguenther@suse.de>
2828
2829         PR tree-optimization/36343
2830         PR tree-optimization/36346
2831         PR tree-optimization/36347
2832         * tree-flow.h (clobber_what_p_points_to): Declare.
2833         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
2834         pointed-to variable is dereferenced is irrelevant to whether
2835         the pointer can access the pointed-to variable.
2836         (clobber_what_p_points_to): New function.
2837         * tree-ssa-alias.c (set_initial_properties): Use it.
2838         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
2839         call clobber check for NMTs.
2840
2841 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2842         
2843         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
2844         for printing gcov_type.
2845
2846 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
2847
2848         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
2849         and the eh region information.
2850         * value-prof.c (gimple_move_stmt_histograms): New function.
2851         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
2852
2853 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
2854
2855         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
2856
2857 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
2858
2859         * value-prof.c (tree_ic_transform): Print counts.
2860         * tree-profile.c (tree_gen_ic_func_profiler):
2861         Clear __gcov_indreict_call_callee variable to avoid misattribution
2862         of the profile.
2863
2864 2008-05-28  Rafael Espindola  <espindola@google.com>
2865
2866         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
2867         invalid sharing.
2868
2869 2008-05-28  Richard Guenther  <rguenther@suse.de>
2870
2871         PR tree-optimization/36339
2872         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
2873         and clobbering code out of the loop.
2874
2875 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2876
2877         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
2878         letters defined.
2879
2880         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
2881         s390_contiguous_bitmask_p, s390_symref_operand_p,
2882         s390_check_symref_alignment, s390_reload_larl_operand,
2883         s390_reload_symref_address): New functions.
2884         (s390_branch_condition_mnemonic): Support compare and branch
2885         instructions.
2886         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
2887         and 'W' constraints.
2888         (s390_secondary_reload): Add secondary reloads for unaligned
2889         symbol refs or symbol refs to floating point or QI/TI mode
2890         integer values.
2891         (legitimate_address_p): Accept symbol references as addresses.
2892         (s390_expand_insv): Use rotate and insert selected bits
2893         instruction for insv when building for z10.
2894         (print_operand_address): Handle symbol ref addresses.
2895         (print_operand): Output modifier 'c' added for signed byte values.
2896         (s390_encode_section_info): Mark symbol refs with
2897         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
2898
2899         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
2900         (length attribute): RRF, RRR have 4 byte length.
2901         (FPALL, INTALL): New mode iterators added.
2902         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
2903         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
2904         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
2905         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
2906         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
2907         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
2908         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
2909         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
2910         instructions.
2911         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
2912         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
2913         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
2914         reload<INTALL:mode><P:mode>_toreg_z10,
2915         reload<FPALL:mode><P:mode>_tomem_z10,
2916         reload<FPALL:mode><P:mode>_toreg_z10,
2917         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
2918         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
2919         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
2920         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
2921         definition.
2922         (movmem, clrmem, cmpmem): New splitters added.
2923
2924         * config/s390/predicates.md (larl_operand): Use
2925         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
2926         SYMBOL_REF_ALIGN1_P.
2927         (s390_signed_integer_comparison,
2928         s390_unsigned_integer_comparison): New predicates.
2929
2930         * config/s390/s390-protos.h (s390_check_symref_alignment,
2931         s390_contiguous_bitmask_p, s390_reload_larl_operand,
2932         s390_reload_symref_address,
2933         s390_compare_and_branch_condition_mask): Prototypes added.
2934
2935         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
2936         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
2937         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
2938
2939 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2940
2941         * config/s390/s390.c (z10_cost): New cost function for z10.
2942         (s390_handle_arch_option, override_options): Support -march=z10 switch.
2943         (s390_issue_rate): Adjust issue rate for z10.
2944         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
2945         (processor_flags): Add PF_Z10.
2946         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
2947         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
2948         * gcc/config.gcc: Add z10.
2949
2950 2008-05-28  Richard Guenther  <rguenther@suse.de>
2951
2952         PR tree-optimization/36291
2953         * tree-flow. h (struct gimple_df): Remove var_anns member.
2954         * tree-flow-inline.h (gimple_var_anns): Remove.
2955         (var_ann): Simplify.
2956         * tree-dfa.c (create_var_ann): Simplify.
2957         (remove_referenced_var): Clear alias info from var_anns of globals.
2958         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2959         (delete_tree_ssa): Clear alias info from var_anns of globals.
2960         Do not free var_anns.
2961         (var_ann_eq): Remove.
2962         (var_ann_hash): Likewise.
2963
2964 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
2965
2966         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2967         and loongson2f entries.
2968         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2969         * config/mips/mips.h (processor_type): Add Loongson-2E
2970         and Loongson-2F entries.
2971         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2972         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2973         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2974         * doc/invoke.texi (MIPS Options): Document loongson2e
2975         and loongson2f processor names.
2976
2977 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2978
2979         PR target/35767
2980         PR target/35771
2981         * config/i386/i386.c (ix86_function_arg_boundary): Use
2982         alignment of canonical type.
2983         (ix86_expand_vector_move): Check unaligned memory access for
2984         all SSE modes.
2985
2986 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2987
2988         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2989         Moved to the front of file.
2990
2991 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
2992             H.J. Lu  <hongjiu.lu@intel.com>
2993
2994         * dwarf2out.c (current_fde): New.
2995         (add_cfi): Use it.
2996         (lookup_cfa:): Likewise.
2997         (dwarf2out_end_epilogue): Likewise.
2998         (dwarf2out_note_section_used): Likewise.
2999
3000 2008-05-27  Michael Matz  <matz@suse.de>
3001
3002         PR c++/27975
3003         * c.opt (Wenum-compare): New warning option.
3004         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
3005
3006 2008-05-27  Michael Matz  <matz@suse.de>
3007
3008         PR middle-end/36326
3009         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
3010         non-BLKmode types.
3011         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
3012         into memory as tail calls.
3013
3014 2008-05-27  Richard Guenther  <rguenther@suse.de>
3015
3016         PR tree-optimization/36339
3017         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
3018         pointers cause all addressable variables to be call clobbered.
3019
3020 2008-05-27  Richard Guenther  <rguenther@suse.de>
3021
3022         PR tree-optimization/36245
3023         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
3024
3025 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3026
3027         * config/s390/s390.md: Replace all occurences of the 'm'
3028         constraint with 'RT'.
3029
3030 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3031
3032         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
3033         definitions added.
3034         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
3035         "*movdi_64".
3036         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
3037         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
3038         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
3039
3040 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3041
3042         * reload.c: (find_reloads): Skip alternatives according to the
3043         "enabled" attribute. Constify the constraint variable.
3044         * recog.c (get_attr_enabled): Add default implementation.
3045         (extract_insn): Set the alternative_enabled_p array
3046         in the recog_data struct.
3047         (preprocess_constraints, constrain_operands): Skip
3048         alternatives according to the "enabled" attribute
3049         * recog.h (struct recog_data): New field alternative_enabled_p.
3050         (skip_alternative): New inline function.
3051         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
3052         (record_reg_classes): Skip alternative according to the
3053         "enabled" attribute.
3054
3055         * doc/md.texi: Add documention for the "enabled" attribute.
3056
3057 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3058
3059         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
3060         * postreload.c (reload_cse_simplify_operands): Replace 'm'
3061         constraint with TARGET_MEM_CONSTRAINT.
3062         * recog.c (asm_operand_ok, preprocess_constraints,
3063         constrain_operands): Likewise.
3064         * regclass.c (record_reg_classes): Likewise.
3065         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
3066         * reload1.c (maybe_fix_stack_asms): Likewise.
3067         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
3068         * recog.h: Adjust comment.
3069         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
3070         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
3071         * doc/md.texi: Add a note to description of 'm' constraint.
3072         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
3073
3074 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3075
3076         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
3077         that the bitfield is of integral type before testing its precision.
3078
3079 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
3080             Sa Liu  <saliu@de.ibm.com> 
3081
3082         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
3083         __modti3, __udivti3, __umodti3 and __udivmodti4.
3084         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
3085         that implement TImode mul and div functions.
3086         * config/spu/multi3.c: New. Implement __multi3.
3087         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
3088         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
3089         functions on SPU.
3090
3091 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
3092
3093         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
3094         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
3095         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
3096         tls_sysv_suffix): New mode and mode attribute iterators.
3097         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
3098         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
3099         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
3100         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
3101         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
3102         iterators.
3103
3104 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3105
3106         PR tree-optimization/36329
3107         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
3108         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
3109         * cgraphbuild.c (initialize_inline_failed): Use the latter
3110         macro in lieu of the former.
3111         * ipa-inline.c (cgraph_mark_inline): Likewise.
3112         (cgraph_decide_inlining_of_small_function): Likewise.
3113         (cgraph_decide_inlining): Likewise.
3114         (cgraph_decide_inlining_incrementally): Likewise.
3115
3116 2008-05-26  Tristan Gingold  <gingold@adacore.com>
3117             Anatoly Sokolov  <aesok@post.ru>
3118
3119         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
3120         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
3121         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
3122         optimization for 'avr6' architecture.
3123
3124 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
3125
3126         PR target/34932
3127         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
3128
3129 2008-05-26  Richard Guenther  <rguenther@suse.de>
3130
3131         * tree-ssa-sccvn.c (expr_has_constants): Declare.
3132         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
3133
3134 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
3135
3136         PR middle-end/36253
3137         * caller-save.c (insert_restore): Verify alignment of spill space.
3138         (insert_save): Likewise.
3139         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
3140         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
3141         (STACK_SLOT_ALIGNMENT): Likewise.
3142         * function.c (LOCAL_ALIGNMENT): Removed.
3143         (get_stack_local_alignment): New.
3144         (assign_stack_local): Use it.  Set alignment on stack slot.
3145         (assign_stack_temp_for_type): Use get_stack_local_alignment.
3146         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
3147         (STACK_SLOT_ALIGNMENT): New.
3148         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
3149         stack slot in XFmode.
3150
3151         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
3152
3153 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
3154
3155         PR/36321
3156         * config/i386/i386.md (allocate_stack_worker_64): Make sure
3157         argument operand in rax isn't removed.
3158
3159 2008-05-26  Richard Guenther  <rguenther@suse.de>
3160
3161         PR middle-end/36300
3162         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
3163         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
3164
3165 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3166
3167         PR bootstrap/36331
3168         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
3169
3170 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
3171
3172         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
3173         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
3174
3175 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3176
3177         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
3178         build a trampoline if we don't want one.
3179         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
3180         return zero for nested functions if we don't want a trampoline.
3181
3182 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3183
3184         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
3185
3186 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
3187
3188         PR fortran/18428
3189         * c.opt: Removed undocumented option '-lang-fortran'.
3190         * c-common.h: Removed global variable 'lang_fortran'.
3191         * c-opts.c (c_common_handle_option): Removed code to handle
3192         option '-lang-fortran'. Updated includes.
3193         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
3194         definition of '__GFORTRAN__'.
3195         (define__GNUC__): Reimplemented to use BASEVER and
3196         cpp_define_formatted.
3197         (builtin_define_with_value_n): Removed.
3198         * c-incpath.h: Renamed to ...
3199         * incpath.h: ... this.
3200         * c-incpath.c: Renamed to ...
3201         * incpath.c: ... this. Updated includes.
3202         * fix-header.c: Updated includes.
3203         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
3204         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
3205         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
3206
3207 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3208
3209         * tree.h: Update the table of flags used on tree nodes.
3210         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
3211         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
3212         (FORCED_LABEL): Add access check.
3213         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
3214         (ASM_INPUT_P): Likewise.
3215         (ASM_VOLATILE_P): Likewise.
3216         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
3217         (OMP_SECTION_LAST): Access private_flag directly.
3218         (OMP_RETURN_NOWAIT): Likewise.
3219         (OMP_PARALLEL_COMBINED): Likewise.
3220         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
3221         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
3222         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
3223         deprecated_flag directly.
3224
3225 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3226
3227         * final.c (frame_pointer_needed): Removed.
3228         * flags.h (frame_pointer_needed): Likewise.
3229
3230         * function.h (rtl_data): Add frame_pointer_needed.
3231         (frame_pointer_needed): New.
3232
3233 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
3234
3235         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
3236
3237 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
3238
3239         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
3240         SRC is a REG.
3241
3242 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
3243
3244         * c-common.c (strip_array_types): Move function to..
3245         * tree.c: ..here.
3246         (get_inner_array_type): Delete.
3247         * c-common.h (strip_array_types): Move declaration to..
3248         * tree.h: ..here.
3249         (get_inner_array_type): Delete.
3250         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
3251         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
3252         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
3253         * config/pa/pa.c (emit_move_sequence): Likewise.
3254
3255 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3256
3257         * config/i386/i386.md (*sse_prologue_save_insn): Set length
3258         attribute to 34.
3259
3260 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
3261
3262         * function.c: Include target hook for nonlocal_goto frame value.
3263
3264 2008-05-24  Richard Guenther  <rguenther@suse.de>
3265
3266         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
3267         variable can be only accessed through a pointer or a union.
3268
3269 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3270
3271         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
3272         * doc/extend.texi: Likewise.
3273
3274 2008-05-23  DJ Delorie  <dj@redhat.com>
3275
3276         * config/m32c/jump.md (untyped_call): Add.
3277
3278         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
3279         for A24 to PSImode.
3280         (m32c_address_cost): Detail costs for indirect offsets.
3281
3282 2008-05-23  Rafael Espindola  <espindola@google.com>
3283
3284         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
3285         if a node is a SUBREG.
3286         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
3287         is a SUBREG.
3288
3289 2008-05-23  Paul Brook  <paul@codesourcery.com>
3290             Carlos O'Donell  <carlos@codesourcery.com>
3291
3292         * doc/extend.texi: Clarify use of __attribute__((naked)).
3293         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3294         * target.h (gcc_target): Add allocate_stack_slots_for_args.
3295         * function.c (use_register_for_decl): Use
3296         targetm.calls.allocate_stack_slots_for_args.
3297         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
3298         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
3299         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
3300
3301 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3302
3303         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
3304
3305 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
3306
3307         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
3308         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
3309         is only rounded once.
3310
3311 2008-05-23  Richard Guenther  <rguenther@suse.de>
3312
3313         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
3314
3315 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
3316             Jakub Jelinek  <jakub@redhat.com>
3317
3318         PR target/36079
3319         * configure.ac: Handle --enable-cld.
3320         * configure: Regenerated.
3321         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
3322         * config/i386/i386.h (struct machine_function): Add needs_cld field.
3323         (ix86_current_function_needs_cld): New define.
3324         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
3325         (cld): New isns pattern.
3326         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
3327         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
3328         * config/i386/i386.opt (mcld): New option.
3329         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
3330         TARGET_CLD and ix86_current_function_needs_cld.
3331         (override_options): Use -mcld by default for 32-bit code if
3332         USE_IX86_CLD.
3333
3334         * doc/install.texi (Options specification): Document --enable-cld.
3335         * doc/invoke.texi (Machine Dependent Options)
3336         [i386 and x86-64 Options]: Add -mcld option.
3337         (Intel 386 and AMD x86-64 Options): Document -mcld option.
3338
3339 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
3340         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
3341         (return_in_memory_64): Likewise.
3342         (return_in_memory_ms_64): Likewise.
3343
3344 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3345
3346         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
3347         * builtins.c (fold_builtin_fpclassify): New.
3348         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
3349         * builtins.def (BUILT_IN_FPCLASSIFY): New.
3350         * c-common.c (handle_type_generic_attribute): Adjust to accept
3351         fixed arguments before an elipsis.
3352         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
3353         * doc/extend.texi: Document __builtin_fpclassify.
3354
3355 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
3356
3357         * omp-low.c (gate_expand_omp_ssa): Remove.
3358         (pass_expand_omp_ssa): Remove.
3359         (gate_expand_omp): Do not check for flag_openmp_ssa.
3360         * common.opt (-fopenmp-ssa): Remove.
3361         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
3362
3363 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3364
3365         * config/sh/sh.opt (mfixed-range): New option.
3366         * config/sh/sh-protos.h (sh_fix_range): Declare.
3367         * config/sh/sh.c (sh_fix_range): New function.
3368         * config/sh/sh.h (sh_fixed_range_str): Declare.
3369         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
3370         is not empty.
3371         * doc/invoke.texi (SH Options): Document -mfixed-range.
3372
3373 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
3374
3375         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
3376         it before the redeclaration.
3377
3378 2008-05-22  Anatoly Sokolov <aesok@post.ru>
3379
3380         * config/avr/avr.c (get_sequence_length): Add new function.
3381         (expand_prologue, expand_epilogue): Remove duplicate code.
3382
3383 2008-05-22  Rafael Espindola  <espindola@google.com>
3384
3385         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
3386         sharing.
3387
3388 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
3389
3390         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
3391         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
3392
3393         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
3394         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
3395         (vect_update_misalignment_for_peel): Likewise.
3396         (vector_alignment_reachable_p): Likewise.
3397         * tree-vect-transform.c (vectorizable_load): Likewise.
3398         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
3399         (get_vectype_for_scalar_type): Pass mode of scalar_type
3400         to UNITS_PER_SIMD_WORD.
3401
3402         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
3403         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
3404         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3405         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3406         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3407
3408 2008-05-22  Ira Rosen  <irar@il.ibm.com>
3409
3410         PR tree-optimization/36293
3411         * tree-vect-transform.c (vect_transform_strided_load): Don't check
3412         if the first load must be skipped because of a gap.
3413
3414 2008-05-22  Richard Guenther  <rguenther@suse.de>
3415
3416         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
3417         more cases of offset disambiguation that is possible if
3418         strict-aliasing rules apply.
3419         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
3420         for basic offset and type-based disambiguation.
3421
3422 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3423
3424         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
3425         ix86_expand_vector_set on V16QImode for SSE4.1.
3426
3427 2008-05-21  Tom Tromey  <tromey@redhat.com>
3428
3429         * c.opt (Wimport): Mark as undocumented.
3430         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
3431         -Wno-import.
3432         (Warning Options): Likewise.
3433         * doc/cppopts.texi: Don't mention -Wimport.
3434
3435 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
3436
3437         PR tree-optimization/36287
3438         PR tree-optimization/36286
3439         * lambda-code.c (build_access_matrix): Do not use the loop->num
3440         for computing the number of induction variables: use the loop depth
3441         instead.
3442
3443 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
3444
3445         PR/36280
3446         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
3447         option -f(no-)leading-underscore.
3448
3449 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3450
3451         * config/i386/i386.c (ix86_expand_vector_init_general): Use
3452         GET_MODE_NUNITS (mode).
3453
3454 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
3455
3456         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
3457         (-mmulhw): Add 464 to description.
3458         (-mdlmzb): Likewise.
3459         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
3460         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
3461         464fp entries.
3462         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
3463         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
3464         * config/rs6000/rs6000.md: Update comments for 464.
3465
3466 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
3467
3468         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
3469
3470 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3471
3472         * config/i386/sse.md (vec_extractv4sf): Removed.
3473         (vec_extractv2df): Likewise.
3474         (vec_extractv2di): Likewise.
3475         (vec_extractv4si): Likewise.
3476         (vec_extractv8hi): Likewise.
3477         (vec_extractv16qi): Likewise.
3478         (vec_extract<mode>): New.
3479
3480 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3481
3482         * config/i386/sse.md (vec_setv4sf): Removed.
3483         (vec_setv2df): Likewise.
3484         (vec_setv2di): Likewise.
3485         (vec_setv4si): Likewise.
3486         (vec_setv8hi): Likewise.
3487         (vec_setv16qi): Likewise.
3488         (vec_set<mode>): New.
3489
3490 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3491
3492         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
3493         goto for vec_concat and vec_interleave.
3494
3495 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3496
3497         * config/i386/sse.md (vec_initv4sf): Removed.
3498         (vec_initv2df): Likewise.
3499         (vec_initv2di): Likewise.
3500         (vec_initv4si): Likewise.
3501         (vec_initv8hi): Likewise.
3502         (vec_initv16qi): Likewise.
3503         (vec_init<mode>): New.
3504
3505 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
3506
3507         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
3508
3509 2008-05-21  Tom Tromey  <tromey@redhat.com>
3510
3511         * ggc-zone.c (lookup_page_table_if_allocated): New function.
3512         (zone_find_object_offset): Likewise.
3513         (gt_ggc_m_S): Likewise.
3514         (highest_bit): Likewise.
3515         * ggc-page.c (gt_ggc_m_S): New function.
3516         * stringpool.c (string_stack): Remove.
3517         (init_stringpool): Update.
3518         (ggc_alloc_string): Use ggc_alloc.
3519         (maybe_delete_ident): New function.
3520         (ggc_purge_stringpool): Likewise.
3521         (gt_ggc_m_S): Remove.
3522         * ggc-common.c (ggc_protect_identifiers): New global.
3523         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
3524         ggc_protect_identifiers.
3525         * ggc.h (ggc_protect_identifiers): Declare.
3526         (gt_ggc_m_S): Update.
3527         (ggc_purge_stringpool): Declare.
3528         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
3529         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
3530         special case.
3531         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
3532
3533 2008-05-21  David S. Miller  <davem@davemloft.net>
3534
3535         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
3536         tmake_file.
3537
3538 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
3539
3540         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
3541         once finished.
3542
3543 2008-05-20  David Daney  <ddaney@avtrex.com>
3544
3545         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
3546         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
3547         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3548         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3549         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
3550         (atomic_hiqi_op): New define_code_iterator.
3551         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
3552         mips_expand_compare_and_swap_12.
3553         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
3554         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
3555         (sync_<optab><mode>, sync_old_<optab><mode>,
3556         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
3557         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
3558         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
3559         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
3560         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
3561         (test_and_set_12): New insn.
3562         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
3563         sync_new_<optab><mode>, sync_old_nand<mode>,
3564         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
3565         clobber to operand 0 for SI and DI mode insns.
3566         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
3567         mips_gen_fn_4): New typedefs.
3568         (mips_gen_fn_ptrs): Define new union type.
3569         (mips_expand_compare_and_swap_12): Remove declaration.
3570         (mips_expand_atomic_qihi): Declare function.
3571         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
3572         (mips_expand_atomic_qihi): ... this.  Use new generator function
3573         parameter.
3574         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
3575         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
3576         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
3577         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
3578         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
3579         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
3580         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
3581         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
3582         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
3583         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
3584         New macros.
3585
3586 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
3587
3588         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
3589         the missing break.
3590
3591 2008-05-20  Anatoly Sokolov <aesok@post.ru>
3592
3593         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
3594         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
3595         (avr_attribute_table): Add 'OS_main' function attribute.
3596         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
3597         functions with 'OS_main' attribute.
3598
3599 2008-05-20  Richard Guenther  <rguenther@suse.de>
3600
3601         PR tree-optimization/35204
3602         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
3603         helper, split out from ...
3604         (DFS): ... here.  Make the DFS walk non-recursive.
3605
3606 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
3607             Jan Sjodin  <jan.sjodin@amd.com>
3608
3609         PR tree-optimization/36181
3610         * tree-parloops.c (loop_has_vector_phi_nodes): New.
3611         (parallelize_loops): Don't parallelize when the loop has vector
3612         phi nodes.
3613
3614 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3615             Sebastian Pop  <sebastian.pop@amd.com>
3616
3617         * tree-loop-linear.c (gather_interchange_stats): Look in the access
3618         matrix, and never look at the tree representation of the memory
3619         accesses.
3620         (linear_transform_loops): Computes parameters and access matrices.
3621         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
3622         when fails.
3623         (access_matrix_get_index_for_parameter): New.
3624         * tree-data-ref.h (struct access_matrix): New.
3625         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
3626         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
3627         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
3628         am_vector_index_for_loop): New.
3629         (struct data_reference): Add field access_matrix.
3630         (DR_ACCESS_MATRIX): New.
3631         (compute_data_dependences_for_loop): Update declaration.
3632         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
3633         * lambda.h (lambda_vector_vec_p): Declared.
3634         * lambda-code.c: Depend on pointer-set.h.
3635         (lambda_collect_parameters_from_af, lambda_collect_parameters,
3636         av_for_af_base, av_for_af, build_access_matrix,
3637         lambda_compute_access_matrices): New.
3638         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
3639
3640 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
3641
3642         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
3643         $SOURCEDIR/include.
3644
3645 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3646             Sebastian Pop  <sebastian.pop@amd.com>
3647
3648         PR tree-optimization/36206
3649         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
3650         FOLD_CONVERSIONS.
3651         (instantiate_scev_1): Rename flags to fold_conversions.
3652         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
3653         outeside instantiation_loop.
3654         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
3655         (evolution_function_is_affine_or_constant_p): Removed.
3656         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
3657         instantiate_scev.
3658         (analyze_siv_subscript): Pass in the loop nest number.
3659         Call evolution_function_is_affine_in_loop instead of 
3660         evolution_function_is_affine_p.
3661         (analyze_overlapping_iterations): Pass in the loop nest number.
3662
3663 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
3664             Sebastian Pop  <sebastian.pop@amd.com>
3665
3666         PR tree-optimization/36206
3667         * tree-chrec.h (chrec_fold_op): New.
3668         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
3669         and other trees.
3670
3671 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
3672
3673         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
3674         (DIRS_EQ): New.
3675         (remove_duplicates): Do not set inode on non-inode systems.
3676         Use DIRS_EQ.
3677
3678 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3679
3680         * config.gcc (tm_file): Update comments about relative pathnames.
3681
3682 2008-05-20  Richard Guenther  <rguenther@suse.de>
3683
3684         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
3685         * tree-ssa-sccvn.c (process_scc): Likewise.
3686         * tree-ssa-sink.c (execute_sink_code): Likewise.
3687         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
3688         * tree-vrp.c (process_assert_insertions): Likewise.
3689         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3690         (perform_tree_ssa_dce): Likewise.
3691         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3692         (dump_dominator_optimization_stats): Likewise.
3693         * tree-vectorizer.c (vectorize_loops): Likewise.
3694
3695 2008-05-20  Richard Guenther  <rguenther@suse.de>
3696
3697         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
3698
3699 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
3700
3701         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
3702         (ix86_i386elf_return_in_memory): Likewise.
3703         (ix86_i386interix_return_in_memory): Likewise.
3704         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
3705         (SUBTARGET_RETURN_IN_MEMORY): New.
3706         * config/i386/i386elf.h: Likewise.
3707         * config/i386/ptx4-i.h: Likewise.
3708         * config/i386/sol2-10.h: Likewise.
3709         * config/i386/sysv4.h: Likewise.
3710         * config/i386/vx-common.h: Likewise.
3711         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
3712         * config/i386/i386.c (ix86_return_in_memory): Made static and
3713         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
3714         (ix86_i386elf_return_in_memory): Removed.
3715         (ix86_i386interix_return_in_memory): Removed.
3716         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
3717         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
3718
3719 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
3720
3721         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
3722
3723 2008-05-19  Xinliang David Li  <davidxl@google.com>
3724
3725         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
3726         * opts.c: Ditto.
3727         * common.opt: Ditto.
3728         * doc/invoke.texi: Ditto.
3729
3730 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3731
3732         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
3733         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
3734
3735 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3736
3737         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
3738         sizes of operand array from 8/4 to 4/2.
3739         (ix86_expand_vector_init_general): Change size of operand array
3740         from 32 to 16.  Remove op0, op1 and half_mode.
3741
3742 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3743
3744         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
3745         (ix86_expand_vector_init_interleave): Likewise.
3746         (ix86_expand_vector_init_general): Use them.  Assert
3747         word_mode == SImode when n_words == 4.
3748
3749 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
3750
3751         * config/i386/i386.c (ix86_secondary_reload): New static function.
3752         (TARGET_SECONDARY_RELOAD): New define.
3753         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
3754         * config/i386/i386.md (reload_outqi): Remove.
3755
3756 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3757
3758         PR middle-end/35509
3759         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
3760         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
3761         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
3762         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
3763         (fold_builtin_1): Likewise.
3764         * builtins.def (BUILT_IN_ISINF_SIGN): New.
3765         c-common.c (check_builtin_function_arguments): Handle
3766         BUILT_IN_ISINF_SIGN.
3767         * doc/extend.texi: Document __builtin_isinf_sign.
3768         * fold-const.c (operand_equal_p): Handle COND_EXPR.
3769
3770 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
3771
3772         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
3773         EH cleanup at the end of the pass, search for those that have been
3774         turned into forwarder blocks and do the cleanup on their successor.
3775
3776 2008-05-18  Richard Guenther  <rguenther@suse.de>
3777
3778         * tree-cfg.c (verify_gimple_expr): Allow conversions from
3779         pointers to sizetype and vice versa.
3780
3781 2008-05-18 Xinliang David Li   <davidxl@google.com>
3782
3783         * gcc/tree-ssa-dce.c: Coding style fix.
3784         (check_pow): Documentation comment. 
3785         (check_log): Documenation comment. Coding style fix.
3786         (is_unnecessary_except_errno_call): Ditto.
3787         (gen_conditions_for_pow): Ditto.
3788         (gen_conditions_for_log): Ditto.
3789         (gen_shrink_wrap_conditions): Ditto.
3790         (shrink_wrap_one_built_in_calls): Ditto.
3791         * gcc/doc/invoke.texi: Better documentation string.
3792         * ChangeLog: Fix wrong change log entries from 
3793         May 17 checkin on function call DCE.
3794
3795 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
3796
3797         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
3798
3799 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
3800
3801         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
3802         * df-problems.c (simulation routines): Fixed block comment to
3803         properly say how to add forwards scanning functions.
3804         
3805 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3806
3807         * tree-inline.c (setup_one_parameter): Remove dead code.
3808
3809 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3810
3811         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
3812         a BIT_AND_EXPR only for an INTEGER_TYPE.
3813
3814 2008-05-17 Xinliang David Li   <davidxl@google.com>
3815
3816         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
3817         (check_pow, check_log, is_unnecessary_except_errno_call): New 
3818         functions to check for eliminating math functions that are pure 
3819         except for setting errno.
3820         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
3821         general condition expressions for shrink-wrapping pow/log calls.
3822         (gen_shrink_wrap_conditions): Ditto.
3823         (shrink_wrap_one_built_in_call): Ditto.
3824         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
3825         (mark_operand_necessary): If debugging, output if OP is necessary.
3826         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
3827         unnecessary.
3828         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
3829         opt level >= 2.
3830         * gcc/common.opt: New user flag -ftree-builtin-dce.
3831         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
3832
3833 2008-05-16  David S. Miller  <davem@davemloft.net>
3834
3835         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
3836         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3837
3838 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
3839
3840         PR target/36246
3841         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
3842
3843 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3844
3845         * ifcvt.c (dead_or_predicable): Rename
3846         df_simulate_one_insn_backwards to df_simulate_one_insn.
3847         * recog.c (peephole2_optimize): Ditto.
3848         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
3849         Ditto.
3850         * df.h: Rename df_simulate_one_insn_backwards to
3851         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
3852         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
3853         scanning of defs and uses.
3854         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
3855         (df_simulate_one_insn_forwards): Removed.
3856
3857 2008-05-16  Doug Kwan  <dougkwan@google.com>
3858
3859         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
3860         QNaN & SNaN.
3861         (real_from_string): Handle NaNs and Inf as approriate.
3862
3863 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3864
3865         * doc/gty.texi (Source Files Containing Type Information): Note
3866         that headers should appear first in the gtfiles list.
3867
3868 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3869
3870         * tree.def (COND_EXEC): Properly documented this code.
3871
3872 2008-05-16  Diego Novillo  <dnovillo@google.com>
3873
3874         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
3875         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
3876         the new field.
3877
3878 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3879
3880         * tree-ssa-dse (max_stmt_uid): Removed.
3881         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
3882         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
3883         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
3884         * function.h (cfun.last_stmt_uid): New field.
3885         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
3886         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
3887         New functions.
3888         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
3889         (create_stmt_ann): Initialize the ann->uid field.
3890         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
3891         with new calls.
3892         * tree-flow.h (renumber_gimple_stmt_uids): New function.
3893
3894 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3895
3896         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
3897         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
3898         (init_empty_tree_cfg): Call it.
3899
3900 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3901
3902         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
3903         Update all users.
3904
3905 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3906
3907         * doc/invoke.text (-fdump-tree-*-verbose): New option.
3908         * tree-dump.c (dump_options): New verbose option.
3909         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
3910         Add verbose dump.
3911         * tree-pass.h (TDF_VERBOSE): New dump flag.
3912         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3913         (tree-flow.h): Added include.
3914         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
3915
3916 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3917
3918         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
3919
3920         From Jie Zhang  <jie.zhang@analog.com>
3921         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3922         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
3923         mcpu=bf561-none and mcpu=bf561-0.2.
3924         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3925         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3926         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3927         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3928         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
3929         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
3930         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
3931         option.
3932         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
3933         (cputype_selected): Remove.
3934         (bfin_handle_option): Don't use cputype_selected.
3935         (override_options): When no mcpu option, enable all workarounds.
3936         Don't use bfin_workarounds.
3937         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
3938         processor type.
3939         (DEFAULT_CPU_TYPE): Don't define.
3940
3941 2008-05-16  Richard Guenther  <rguenther@suse.de>
3942
3943         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
3944         on deletion of the last stmt.
3945
3946 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3947
3948         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
3949         V8HImode for SSE2 and V16QImode for SSE4.1.
3950
3951 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3952
3953         * cgraph.h (compute_inline_parameters): Made public.
3954         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
3955         variable_generate_summary, function_write_summary,
3956         variable_write_summary, variable_read_summary.  Added generate_summary,
3957         write_summary, read_summary.
3958         * cgraphunit.c (cgraph_process_new_functions): Changed call from
3959         pass_ipa_inline.function_generate_summary, to
3960         compute_inline_parameters. 
3961         * ipa-inline.c (compute_inline_parameters): Made public and added
3962         node parameter.
3963         (compute_inline_parameters_for_current): New function.
3964         (pass_inline_param): Now calls compute_inline_parameters_for_current.
3965         (inline_generate_summary): Removed parameter and made to loop over
3966         all cgraph nodes.
3967         (pass_ipa_inline): Updated for new IPA_PASS structure.
3968         * passes.c (execute_ipa_summary_passes): Now is called once per
3969         pass rather than once per node*pass.
3970         
3971 2008-05-15  Anatoly Sokolov <aesok@post.ru>
3972
3973         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
3974         avr_have_mul_p, avr_asm_only_p): Remove variables.
3975         (avr_override_options): Remove initialization of removed variables.
3976         (avr_file_start):  Convert removed variables to fields of 
3977         'struct base_arch_s *avr_current_arch'. 
3978         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3979         (AVR_HAVE_MUL): (Ditto.).
3980         (AVR_HAVE_MOVW): (Ditto.).
3981         (AVR_HAVE_LPMX): (Ditto.). 
3982         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
3983         avr_asm_only_p): Remove declaration.
3984
3985 2008-05-15  Diego Novillo  <dnovillo@google.com>
3986
3987         * config/arm/arm.c (arm_return_in_memory): Fix return type.
3988         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
3989
3990 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
3991
3992         PR middle-end/36194
3993         * combine.c (check_conversion): Rename back to check_promoted_subreg.
3994         Don't call record_truncated_value from here.
3995         (record_truncated_value): Turn it into a for_each_rtx callback.
3996         (record_truncated_values): New function.
3997         (combine_instructions): Call note_uses with record_truncated_values.
3998         Change name of check_conversion to check_promoted_subreg. 
3999
4000 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
4001
4002         * doc/sourcebuild.texi: Document support for torture tests.
4003
4004 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
4005
4006         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
4007         to alternative 4 of operand 2.
4008
4009 2008-05-15  Richard Guenther  <rguenther@suse.de>
4010
4011         * tree-pass.h (current_pass): Declare.
4012         (get_pass_for_id): Likewise.
4013         * passes.c (passes_by_id, passes_by_id_size): New globals.
4014         (set_pass_for_id): New function.
4015         (get_pass_for_id): Likewise.
4016         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
4017         (execute_function_todo): Flush per function statistics.
4018         * toplev.c (compile_file): Init statistics.
4019         (general_init): Do early statistics initialization.
4020         (finalize): Finish statistics.
4021         * statistics.h (statistics_early_init): Declare.
4022         (statistics_init): Likewise.
4023         (statistics_fini): Likewise.
4024         (statistics_fini_pass): Likewise.
4025         (statistics_counter_event): Likewise.
4026         (statistics_histogram_event): Likewise.
4027         * statistics.c: New file.
4028         * Makefile.in (OBJS-common): Add statistics.o.
4029         (statistics.o): Add dependencies.
4030         * doc/invoke.texi (-fdump-statistics): Document.
4031
4032         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
4033         (insert): Likewise.
4034         (execute_pre): Use statistics_counter_event.
4035         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
4036         (substitute_and_fold): Increment it.  Use statistics_counter_event.
4037
4038 2008-05-15  Diego Novillo  <dnovillo@google.com>
4039
4040         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
4041
4042         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
4043         * tree-ssa-alias.c (new_type_alias): Remove references to
4044         sub-variables from comment.
4045         * tree-ssa-operands.c (swap_tree_operands): Likewise.
4046
4047 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
4048
4049         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
4050         attribute to 1 only for insertps alternative.
4051
4052 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
4053
4054         * config/bfin/bfin.md (loadbytes): New pattern.
4055         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
4056         (bfin_init_builtins): Initialize it.
4057         (bdesc_1arg): Add it.
4058
4059 2008-05-15  Sa Liu  <saliu@de.ibm.com>
4060
4061         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
4062         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
4063         * testsuite/lib/target-supports.exp: Add
4064         check_effective_target_fortran_integer_16.
4065
4066 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
4067
4068         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
4069         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
4070         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
4071         (TARGET_RETURN_IN_MEMORY): Define.
4072
4073 2008-05-15  Richard Guenther  <rguenther@suse.de>
4074
4075         PR middle-end/36244
4076         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
4077         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
4078         represent unmodifiable vars.
4079
4080 2008-05-15  Richard Guenther  <rguenther@suse.de>
4081
4082         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
4083         INDIRECT_REF and TARGET_MEM_REF.
4084         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
4085         TARGET_MEM_REF.
4086
4087 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
4088             H.J. Lu  <hongjiu.lu@intel.com>
4089
4090         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
4091         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
4092         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
4093         insn alternatives.  Add missing alternatives.
4094         (*vec_concatv2di_rex64_sse4_1): Likewise.
4095         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
4096         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
4097         Require TARGET_SSE.
4098
4099 2008-05-15  Richard Guenther  <rguenther@suse.de>
4100
4101         PR tree-optimization/36009
4102         PR tree-optimization/36204
4103         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
4104         (determine_invariantness_stmt): Record the loop a store is
4105         always executed in.
4106         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
4107         dependency.
4108
4109 2008-05-15  Richard Guenther  <rguenther@suse.de>
4110
4111         PR tree-optimization/34330
4112         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
4113         through the pointer will alias the SMT.
4114
4115 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
4116
4117         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
4118
4119 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
4120
4121         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
4122
4123 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4124             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4125
4126         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
4127         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
4128         (vashl_optab): New optab for vector/vector shifts.
4129         (vashr_optab): Ditto.
4130         (vlshr_optab): Ditto.
4131         (vrotl_optab): Ditto.
4132         (vrotr_optab): Ditto.
4133         (optab_subtype): New enum for optab_for_tree_code call.
4134         (optab_for_tree_code): Add enum optab_subtype argument.
4135
4136         * optabs.c (optab_for_tree_code): Take an additional argument to
4137         distinguish between a vector shift by a scalar and vector shift by
4138         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
4139         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
4140         vector shift by a vector.
4141         (expand_widen_pattern_expr): Pass additional argument to
4142         optab_for_tree_code.
4143
4144         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
4145         vrotl_optab, vrotr_optab.
4146
4147         * expr.c (expand_expr_real_1): Update calls to
4148         optab_for_tree_code to distinguish between vector shifted by a
4149         scalar and vector shifted by a vector.
4150         * tree-vectorizer.c (supportable_widening_operation): Ditto.
4151         (supportable_narrowing_operation): Ditto.
4152         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
4153         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
4154         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
4155         (vect_create_epilog_for_reduction): Ditto.
4156         (vectorizable_reduction): Ditto.
4157         (vectorizable_operation): Ditto.
4158         (vect_strided_store_supported): Ditto.
4159         (vect_strided_load_supported): Ditto.
4160         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
4161         * expmed.c (expand_shift): Ditto.
4162
4163         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
4164         scalar type.
4165         (ashr@var{m}3): Ditto.
4166         (vashl@var{m}3): Document new vector/vector shift standard name.
4167         (vashr@var{m}3): Ditto.
4168         (vlshr@var{m}3): Ditto.
4169         (vrotl@var{m}3): Ditto.
4170         (vrotr@var{m}3): Ditto.
4171
4172         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
4173         (PPERM_INVERT): Ditto.
4174         (PPERM_REVERSE): Ditto.
4175         (PPERM_REV_INV): Ditto.
4176         (PPERM_ZERO): Ditto.
4177         (PPERM_ONES): Ditto.
4178         (PPERM_SIGN): Ditto.
4179         (PPERM_INV_SIGN): Ditto.
4180         (PPERM_SRC1): Ditto.
4181         (PPERM_SRC2): Ditto.
4182
4183         * config/i386/sse.md (mulv2di3): Add SSE5 support.
4184         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
4185         allows a memory operand to be the value being added, and split it
4186         to improve vectorization.
4187         (sse5_pmacsdqh_mem): Ditto.
4188         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
4189         (sse5_mulv2div2di3_high): Ditto.
4190         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
4191         (vec_pack_trunc_v4si): Ditto.
4192         (vec_pack_trunc_v2di): Ditto.
4193         (sse5_pcmov_<mode>): Remove code that tried to use use
4194         andps/andnps instead of pcmov.
4195         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
4196         pmacsdqh instructions.
4197         (vec_widen_smult_lo_v4si): Ditto.
4198
4199         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
4200         (PPERM_INVERT): Ditto.
4201         (PPERM_REVERSE): Ditto.
4202         (PPERM_REV_INV): Ditto.
4203         (PPERM_ZERO): Ditto.
4204         (PPERM_ONES): Ditto.
4205         (PPERM_SIGN): Ditto.
4206         (PPERM_INV_SIGN): Ditto.
4207         (PPERM_SRC1): Ditto.
4208         (PPERM_SRC2): Ditto.
4209         (ix86_expand_sse_movcc): Move the SSE5 test after the if
4210         true/false tests.
4211         (ix86_expand_int_vcond): If SSE5 generate all possible integer
4212         comparisons.
4213         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
4214         says ignore whether the last reference is a memory operand.
4215
4216 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4217             Paolo Bonzini <bonzini at gnu dot org>
4218
4219         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
4220         shift patterns.
4221
4222         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
4223         (vlshr<mode>3): Rename from vlshr<mode>3.
4224         (vashr<mode>3): Rename from vashr<mode>3.
4225         (mulv4sf3): Change the names of vector shift patterns.
4226         (mulv4si3): Ditto.
4227         (negv4sf2): Ditt.
4228
4229         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
4230         shift insns.
4231
4232         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
4233         (SI_SHLHI): Ditto.
4234         (SI_SHL): Ditto.
4235         (SI_SHLI): Ditto.
4236         (SI_ROTH): Ditto.
4237         (SI_ROTHI): Ditto.
4238         (SI_ROT): Ditto.
4239         (SI_ROTI): Ditto.
4240         (SPU_RL_0): Ditto.
4241         (SPU_RL_1): Ditto.
4242         (SPU_RL_2): Ditto.
4243         (SPU_RL_3): Ditto.
4244         (SPU_RL_4): Ditto.
4245         (SPU_RL_5): Ditto.
4246         (SPU_RL_6): Ditto.
4247         (SPU_RL_7): Ditto.
4248         (SPU_SL_0): Ditto.
4249         (SPU_SL_1): Ditto.
4250         (SPU_SL_2): Ditto.
4251         (SPU_SL_3): Ditto.
4252         (SPU_SL_4): Ditto.
4253         (SPU_SL_5): Ditto.
4254         (SPU_SL_6): Ditto.
4255         (SPU_SL_7): Ditto.
4256
4257         * config/spu/spu.md (v): New iterator macro to add v for vector types.
4258         (floatunssidf2_internal): Change vector/vector shift names.
4259         (floatunsdidf2_internal): Ditto.
4260         (mulv8hi3): Ditto.
4261         (ashrdi3): Ditto.
4262         (ashrti3): Ditto.
4263         (cgt_df): Ditto.
4264         (cgt_v2df): Ditto.
4265         (dftsv): Ditto.
4266         (vashl<mode>3): Rename from ashl<mode>3.
4267         (vashr<mode>3): Rename from ashr<mode>3.
4268         (vlshr<mode>3): Rename from lshr<mode>3.
4269         (vrotl<mode>3): Rename from rotl<mode>3.
4270
4271 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
4272
4273         PR target/36224
4274         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
4275         multiply gives the wrong value when doing widening multiplies.
4276         (vec_widen_smult_lo_v4si): Ditto.
4277
4278 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
4279
4280         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
4281         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
4282         emit_library_call_value. 
4283         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
4284         * tree.h (ECF_LIBCALL_BLOCK): Removed.
4285         * calls.c (initialize_argument_information, precompute_arguments, 
4286         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
4287         (precompute_arguments): Removed flags parameter.
4288         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
4289         
4290 2008-05-14  Richard Guenther  <rguenther@suse.de>
4291
4292         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
4293         Make sure to register the store if the use is a PHI_NODE.
4294
4295 2008-05-14  Olivier Hainque  <hainque@adacore.com>
4296
4297         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
4298         memory if the component is to be referenced in BLKmode according
4299         to get_inner_reference.
4300
4301 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
4302
4303         * calls.c (emit_library_call_value_1): Restore code clearing
4304         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
4305
4306 2008-05-14  Olivier Hainque  <hainque@adacore.com>
4307             Nicolas Roche  <roche@adacore.com>
4308
4309         * configure.ac: Add support for a "gcc_subdir" variable in
4310         config-lang.in, to denote a subdirectory where the language/GCC
4311         integration files are to be found.
4312         * configure: Regenerate.
4313
4314 2008-05-14  Ira Rosen  <irar@il.ibm.com>
4315
4316         PR tree-optimization/36098
4317         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
4318         value for the first load in the group in case of a gap.
4319         (vect_build_slp_tree): Check that there are no gaps in loads.
4320
4321 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
4322
4323         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
4324         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
4325         expand_copysign_bit, ): Change call to emit_no_conflict_block to
4326         emit_insn and remove unneeded code to construct extra args.
4327         (emit_no_conflict_block): Removed.
4328         * optabls.h: (emit_no_conflict_block): Removed.
4329         * cse.c (cse_extended_basic_block): Remove search for
4330         REG_NO_CONFLICT note.
4331         * global.c: Removed incorrect comment added in revision 117.
4332         * expr.c (convert_move): Change call to emit_no_conflict_block to
4333         emit_insn.
4334         * recog.c: Change comments so that they do not mention
4335         REG_NO_CONFLICT.
4336         * local_alloc.c (combine_regs): Removed last parameter.
4337         (no_conflict_p): Removed.
4338         (block_alloc): Removed note, no_conflict_combined_regno and set
4339         local vars. Removed all code to process REG_NO_CONFLICT blocks.
4340         (combine_regs): Removed already_dead and code to look for
4341         REG_NO_CONFLICT notes.
4342         * lower_subreg (remove_retval_note): Removed code to look for
4343         REG_NO_CONFLICT block.
4344         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
4345         (resolve_clobber): Remove code to process libcalls that have
4346         REG_NO_CONFLICT notes.
4347         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
4348         case.
4349         * combine.c (can_combine_p, distribute_notes):  Removed
4350         REG_NO_CONFLICT case.
4351         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
4352         to emit_insns.
4353         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
4354         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
4355         Ditto.
4356         * reg-notes.def (NO_CONFLICT): Removed.
4357
4358 2008-05-14  David S. Miller  <davem@davemloft.net>
4359
4360         * config/sparc/sparc.c (sparc_profile_hook): If
4361         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
4362         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
4363         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
4364
4365 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
4366
4367         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
4368
4369 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
4370
4371         PR target/36222
4372         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
4373         and op1 expansion before vector concat to have less live pseudos.
4374
4375 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
4376
4377         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
4378         ix86_expand_vector_set if supported.
4379
4380 2008-05-13  Diego Novillo  <dnovillo@google.com>
4381             Kenneth Zadeck  <zadeck@naturalbridge.com>
4382
4383         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
4384
4385         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
4386         phinodes_print_statistics, init_ssanames, fini_ssanames,
4387         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
4388         release_ssa_name, release_defs, replace_ssa_name_symbol,
4389         ssanames_print_statistics): Move ...
4390         * tree-flow.h: ... here.
4391         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
4392         Use FN instead of cfun.
4393         (make_ssa_name_fn): Rename from make_ssa_name.
4394         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
4395         * tree-flow-inline.h (make_ssa_name): Move from
4396         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
4397         * omp-low.c (expand_omp_parallel):
4398         * tree-flow-inline.h (redirect_edge_var_map_result):
4399         * tree-ssa.c (init_tree_ssa): Add argument FN.
4400         Use it instead of cfun.  Update all users.
4401
4402 2008-05-13  Tom Tromey  <tromey@redhat.com>
4403
4404         PR preprocessor/22168:
4405         * doc/cpp.texi (Top): Update menu.
4406         (Alternatives to Wrapper #ifndef): New node.
4407         (Other Directives): Document deprecation.
4408         (Obsolete Features): Remove menu.
4409         (Assertions): Merge node into Obsolete Features.
4410         (Obsolete once-only headers): Move earlier; rename to Alternatives
4411         to Wrapper #ifndef.
4412         * doc/cppopts.texi: Update.
4413         * c.opt (Wdeprecated): Enable for C and ObjC.
4414         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
4415         (C++ Dialect Options): Move -Wno-deprecated from here to...
4416         (Warning Options): ... here.
4417
4418 2008-05-13  Richard Guenther  <rguenther@suse.de>
4419
4420         PR middle-end/36227
4421         * fold-const.c (fold_sign_changed_comparison): Do not allow
4422         changes in pointer-ness.
4423
4424 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4425
4426         PR target/24713
4427         * config/sh/sh.c (sh_expand_prologue): Don't clear
4428         RTX_FRAME_RELATED_P for push insns.
4429
4430 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
4431
4432         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
4433
4434 2008-05-12  Anatoly Sokolov <aesok@post.ru>
4435
4436         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
4437         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
4438         Use 'machine->is_leaf' instead of 'leaf_func_p'.
4439
4440 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
4441
4442         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
4443         (*vec_concatv4sf_sse): This.
4444         (*sse2_concatv2si): Renamed to ...
4445         (*vec_concatv2si_sse2): This.
4446         (*sse1_concatv2si): Renamed to ...
4447         (*vec_concatv2si_sse): This.
4448         (*vec_concatv2di_rex): Renamed to ...
4449         (*vec_concatv2di_rex64): This.
4450         (*vec_concatv2si_sse4_1): New.
4451         (*vec_concatv2di_rex64_sse4_1): Likewise.
4452
4453 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
4454
4455         PR rtl-optimization/36111
4456         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
4457         that was created for swappable operands.
4458
4459 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
4460
4461         PR ada/36001
4462         * Makefile.in: Substitute GNATMAKE and GNATBIND.
4463         * configure.ac: Add call to ACX_PROG_GNAT.
4464
4465 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
4466
4467         * optc-gen.awk: Fix comment typo.
4468
4469 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4470
4471         * pretty-print.c (pp_integer_with_precision): Use
4472         HOST_LONG_LONG_FORMAT.
4473
4474 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
4475
4476         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
4477                 
4478 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
4479
4480         * config/i386/i386.c (bdesc_ptest): Removed.
4481         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
4482         (bdesc_args): Add __builtin_ia32_ptestz128,
4483         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
4484         (ix86_init_mmx_sse_builtins): Updated.
4485         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
4486         (ix86_expand_builtin): Updated.
4487
4488 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
4489
4490         * tree-cfg.c (valid_fixed_convert_types_p): New function.
4491         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
4492
4493 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
4494
4495         * value-prof.c (interesting_stringop_to_profile): Do not
4496         return early for BUILT_IN_MEMPCPY.
4497
4498 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
4499
4500         * calls.c (expand_call): Don't use callgraph to increase
4501         preferred_stack_boundary.
4502
4503         * cgraph.h (cgraph_rtl_info): Use unsigned on
4504         preferred_incoming_stack_boundary.
4505
4506         * final.c (rest_of_clean_state): Use unsigned on
4507         preferred_stack_boundary.
4508
4509 2008-05-09  Tom Tromey  <tromey@redhat.com>
4510
4511         PR preprocessor/22231:
4512         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
4513         proceeding.
4514
4515 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
4516
4517         PR tree-optimization/36129
4518         * tree-ssa-ccp.c: Include value-prof.h.
4519         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
4520         built-in function was folded to a constant.
4521         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
4522
4523 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
4524             Sebastian Pop  <sebastian.pop@amd.com>
4525
4526         * tree-scalar-evolution.c: Document instantiate_scev.
4527         (instantiate_parameters_1): Renamed instantiate_scev_1.
4528         Don't use the same loop for instantiation_loop and evolution_loop.
4529         (instantiate_scev): New.
4530         (instantiate_parameters): Moved...
4531         (resolve_mixers): Update call to instantiate_scev_1 to pass the
4532         same loop twice.  Maintains the semantics for this function.
4533         * tree-scalar-evolution.h (instantiate_scev): Declare.
4534         (instantiate_parameters): ...here.  Now static inline.
4535         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
4536         instead of resolve_mixers.
4537
4538 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
4539
4540         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
4541
4542 2008-05-09  Tomas Bily  <tbily@suse.cz>
4543
4544         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
4545         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
4546         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4547         * c-common.c (c_common_truthvalue_conversion): Likewise.
4548         * tree-object-size.c (compute_object_offset): Likewise.
4549         * tree-inline.c (estimate_num_insns_1): Likewise.
4550         * varasm.c (const_hash_1, compare_constant, copy_constant)
4551         (compute_reloc_for_constant, output_addressed_constants)
4552         (initializer_constant_valid_p): Likewise.
4553         * c-omp.c (check_omp_for_incr_expr): Likewise.
4554         * gimplify.c (gimplify_expr): Likewise.
4555         * c-typeck.c (c_finish_return): Likewise.
4556         * tree-vectorizer.c (supportable_widening_operation)
4557         (supportable_narrowing_operation): Likewise.
4558         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
4559         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
4560         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
4561         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
4562         (descr_info_loc): Likewise.
4563         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4564         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
4565         (fold_unary): Likewise.
4566         * builtins.c (get_pointer_alignment): Likewise.
4567         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
4568         (instantiate_parameters_1): Likewise.
4569         * tree.c (expr_align, stabilize_reference): Likewise.
4570         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
4571         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
4572         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
4573         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4574         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
4575         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
4576         Likewise.
4577         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
4578         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
4579         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
4580         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
4581         (forward_propagate_comparison)
4582         (tree_ssa_forward_propagate_single_use_vars): Likewise.
4583         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
4584         * emit-rtl.c (component_ref_for_mem_expr)
4585         (set_mem_attributes_minus_bitpos): Likewise.
4586         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
4587         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
4588         Likewise.
4589         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
4590         (build_function_call, pointer_diff, build_compound_expr)
4591         (c_finish_return): Likewise.
4592         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
4593         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
4594         Likewise.
4595         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
4596         * expr.c (is_aligning_offset): Likewise.
4597         * tree-ssa-alias.c (is_escape_site): Likewise.
4598         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
4599         (check_all_va_list_escapes): Likewise.
4600         * tree-ssa-loop-ivopts.c (determine_base_object)
4601         (determine_common_wider_type): Likewise.
4602         * dojump.c (do_jump): Likewise.
4603         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
4604         * tree-gimple.c (is_gimple_cast): Likewise.
4605         * fold-const.c (decode_field_reference, )
4606         (fold_sign_changed_comparison, fold_unary, fold_comparison)
4607         (fold_binary): Likewise.
4608         * tree-ssa-alias-warnings.c (find_alias_site_helper)
4609         (already_warned_in_frontend_p): Likewise.
4610         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
4611         * tree.c (really_constant_p, get_unwidened): Likewise.
4612         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
4613         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
4614         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
4615         Likewise.
4616         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
4617         CONVERT_EXPR_P.
4618         (CONVERT_EXPR_P): Define.
4619         (CASE_CONVERT): Define.
4620         
4621 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
4622
4623         PR middle-end/36117
4624         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
4625         (delete_unmarked_insns): When deleting a call, call
4626         delete_unreachable_blocks.
4627         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4628         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
4629
4630 2008-05-08  Richard Guenther  <rguenther@suse.de>
4631
4632         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
4633         (-ftree-salias): Likewise.
4634         (salias-max-implicit-fields): Remove param documentation.
4635         (salias-max-array-elements): Likewise.
4636         * tree-pass.h (pass_create_structure_vars): Remove.
4637         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4638         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4639         * tree-ssa-alias.c (create_structure_vars): Remove.
4640         (gate_structure_vars): Likewise.
4641         (pass_create_structure_vars): Likewise.
4642         (gate_build_alias): Likewise.
4643         (pass_build_alias): Adjust to run always and dump the function.
4644         * common.opt (ftree-salias): Hide.
4645         * passes.c (init_optimization_passes): Remove
4646         pass_create_structure_vars, adjust comment.
4647         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
4648         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
4649         * opts.c (decode_options): Do not set flag_tree_salias.
4650         (common_handle_option): Add OPT_ftree_salias to the backward
4651         compatibility section.
4652
4653 2008-05-08  Richard Guenther  <rguenther@suse.de>
4654
4655         * tree-flow-inline.h (var_can_have_subvars): Move ...
4656         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
4657         * tree-flow.h (var_can_have_subvars): Remove.
4658         (push_fields_onto_fieldstack): Remove.
4659         (sort_fieldstack): Likewise.
4660         (struct fieldoff): Move ...
4661         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
4662         alias_set and base_for_components fields.
4663         (sort_fieldstack): Make static.
4664         (push_fields_onto_fieldstack): Likewise.  Remove code that
4665         handles anything but RECORD_TYPEs.  Remove alias_set and
4666         base_for_components handling.
4667         (create_variable_info_for): Adjust.
4668
4669 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
4670
4671         * common.opt (Wframe-larger-than=): Shorten the help message
4672         to one line.
4673         * doc/invoke.texi (Wframe-larger-than=): Add more description.
4674
4675 2008-05-08  Rafael Espindola  <espindola@google.com>
4676
4677         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
4678         trap.
4679         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
4680         trap and that both operands are gimple values.
4681         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
4682         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
4683         is a fp operation.
4684
4685 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4686
4687         * read-rtl.c (join_c_conditions): Return the first string if the
4688         two strings are equal.
4689
4690 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
4691
4692         * gensupport.h (pred_data): Add a "num_codes" field.
4693         (add_predicate_code): Declare.
4694         * gensupport.c (add_predicate_code): New function.
4695         (std_pred_table): Add an "allows_const_p" field.
4696         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
4697         Remove the (incomplete) list of such codes from the codes field.
4698         (init_predicate_table): Use add_predicate_code.  Add all
4699         RTX_CONST_OBJs if allows_const_p is true.
4700         * genrecog.c (process_define_predicate): Use add_predicate_code.
4701
4702 2008-05-08  David Daney  <ddaney@avtrex.com>
4703             Richard Sandiford  <rsandifo@nildram.co.uk>
4704         
4705         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
4706         special case of constant zero operands.
4707         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
4708         old and new values.  Special case constant zero values.
4709         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
4710         fails.
4711         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
4712         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
4713
4714 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
4715
4716         PR target/36090
4717         * simplify-rtx.c (simplify_plus_minus): Create CONST of
4718         similar RTX_CONST_OBJ before CONST_INT.
4719
4720 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
4721
4722         * stmt.c (expand_stack_restore): Change sa mode if needed.
4723
4724 2008-05-08  Richard Guenther  <rguenther@suse.de>
4725
4726         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
4727         return type to bool.
4728         (ix86_sol10_return_in_memory): Likewise.
4729         (ix86_i386elf_return_in_memory): Likewise.
4730         (ix86_i386interix_return_in_memory): Likewise.
4731         * config/i386/i386.c (ix86_return_in_memory): Likewise.
4732         (ix86_sol10_return_in_memory): Likewise.
4733         (ix86_i386elf_return_in_memory): Likewise.
4734         (ix86_i386interix_return_in_memory): Likewise.
4735
4736 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4737
4738         PR bootstrap/36180
4739         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
4740         fndecl argument.
4741         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
4742         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
4743         declared in front.
4744
4745 2008-05-08  Richard Guenther  <rguenther@suse.de>
4746
4747         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
4748         * tree-data-ref.h (struct dr_alias): Remove subvars field.
4749         (DR_SUBVARS): Remove.
4750         * tree-dfa.c (dump_subvars_for): Remove.
4751         (debug_subvars_for): Likewise.
4752         (dump_variable): Do not dump subvars.
4753         (remove_referenced_var): Do not remove subvars.
4754         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
4755         (lookup_subvars_for_var): Remove.
4756         (get_subvars_for_var): Likewise.
4757         (get_subvars_at): Likewise.
4758         (get_first_overlapping_subvar): Likewise.
4759         (overlap_subvar): Likewise.
4760         * tree-flow.h (subvar_t): Remove.
4761         (struct var_ann_d): Remove subvars field.
4762         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
4763         argument.  Remove special handling of SFTs.
4764         (compute_tag_properties): Likewise.
4765         (set_initial_properties): Likewise.
4766         (compute_call_clobbered): Likewise.
4767         (count_mem_refs): Likewise.
4768         (compute_memory_partitions): Likewise.
4769         (compute_flow_insensitive_aliasing): Likewise.
4770         (setup_pointers_and_addressables): Likewise.
4771         (new_type_alias): Likewise.
4772         (struct used_part): Remove.
4773         (used_portions): Likewise.
4774         (struct used_part_map): Likewise.
4775         (used_part_map_eq): Likewise.
4776         (used_part_map_hash): Likewise.
4777         (free_used_part_map): Likewise.
4778         (up_lookup): Likewise.
4779         (up_insert): Likewise.
4780         (get_or_create_used_part_for): Likewise.
4781         (create_sft): Likewise.
4782         (create_overlap_variables_for): Likewise.
4783         (find_used_portions): Likewise.
4784         (create_structure_vars): Likewise.
4785         * tree.def (STRUCT_FIELD_TAG): Remove.
4786         * tree.h (MTAG_P): Adjust.
4787         (struct tree_memory_tag): Remove base_for_components and
4788         unpartitionable flags.
4789         (struct tree_struct_field_tag): Remove.
4790         (SFT_PARENT_VAR): Likewise.
4791         (SFT_OFFSET): Likewise.
4792         (SFT_SIZE): Likewise.
4793         (SFT_NONADDRESSABLE_P): Likewise.
4794         (SFT_ALIAS_SET): Likewise.
4795         (SFT_UNPARTITIONABLE_P): Likewise.
4796         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
4797         (union tree_node): Remove sft field.
4798         * alias.c (get_alias_set): Remove special handling of SFTs.
4799         * print-tree.c (print_node): Remove handling of SFTs.
4800         * tree-dump.c (dequeue_and_dump): Likewise.
4801         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
4802         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
4803         * tree-predcom.c (set_alias_info): Do not set subvars.
4804         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
4805         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
4806         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
4807         (add_vars_for_offset): Remove.
4808         (add_virtual_operand): Remove special handling of SFTs.
4809         (add_call_clobber_ops): Likewise.
4810         (add_call_read_ops): Likewise.
4811         (get_asm_expr_operands): Likewise.
4812         (get_modify_stmt_operands): Likewise.
4813         (get_expr_operands): Likewise.
4814         (add_to_addressable_set): Likewise.
4815         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
4816         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4817         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
4818         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
4819         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
4820         (tree_node_structure): Likewise.
4821         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
4822         handling of SFTs.
4823         (find_what_p_points_to): Likewise.
4824
4825 2008-05-08  Sa Liu  <saliu@de.ibm.com>
4826
4827         * config/spu/spu.md: Fixed subti3 pattern.
4828
4829 2008-05-08  Richard Guenther  <rguenther@suse.de>
4830
4831         PR middle-end/36154
4832         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
4833         sure to create a representative for trailing arrays for PTA.
4834
4835 2008-05-08  Richard Guenther  <rguenther@suse.de>
4836
4837         PR middle-end/36172
4838         * fold-const.c (operand_equal_p): Two objects which types
4839         differ in pointerness are not equal.
4840
4841 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
4842
4843         * calls.c (compute_argument_block_size): Add argument tree fndecl.
4844         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
4845         (emit_library_call_value_1): Add new variable fndecl initialized by
4846         NULL_TREE. It should be the decl type of orgfun, but this information
4847         seems not to be available here, so it uses the default calling abi.
4848         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
4849         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
4850         by TARGET_RETURN_IN_MEMORY.
4851         * config/i386/i386-interix.h: Likewise.
4852         * config/i386/i386.h: Likewise.
4853         * config/i386/i386elf.h: Likewise.
4854         * config/i386/ptx4-i.h: Likewise.
4855         * config/i386/sol2-10.h: Likewise.
4856         * config/i386/sysv4.h: Likewise.
4857         * config/i386/vx-common.h: Likewise.
4858         * config/cris/cris.h: Removed #if 0 clause.
4859         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
4860         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
4861         argument.
4862         (ix86_sol10_return_in_memory): Likewise.
4863         (ix86_i386elf_return_in_memory): New.
4864         (ix86_i386interix_return_in_memory): New.
4865         * config/mt/mt-protos.h (mt_return_in_memory): New.
4866         * config/mt/mt.c: Likewise.
4867         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4868         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
4869         * config/bfin/bfin.h: Likewise.
4870         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
4871         argument.
4872         * config/bfin/bfin.c: Likewise.
4873         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
4874         * config/alpha/unicosmk.h: Likewise.
4875         * config/i386/cygming.h: Likewise.
4876         * config/iq2000/iq2000.h: Likewise.
4877         * config/mips/mips.h: Likewise.
4878         * config/mn10300/mn10300.h: Likewise.
4879         * config/rs6000/rs6000.h: Likewise.
4880         * config/score/score.h: Likewise.
4881         * config/spu/spu.h: Likewise.
4882         * config/v850/v850.h: Likewise.
4883         * defaults.h: Likewise.
4884         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
4885         * expr.c (emit_block_move): Adjust use of
4886         OUTGOING_REG_PARM_STACK_SPACE.
4887         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
4888         OUTGOING_REG_PARM_STACK_SPACE.
4889         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
4890
4891 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
4892
4893         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
4894         on OMP_RETURN for OMP_FOR.
4895
4896         PR debug/35896
4897         * dwarf2out.c (dw_expand_expr, common_check): Removed.
4898         (fortran_common): New function.
4899         (gen_variable_die): Call fortran_common instead of common_check,
4900         adjust for it returning tree instead of rtx.  Formatting.
4901
4902 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4903
4904         PR rtl/7335
4905         PR rtl/33826
4906         * see.c (see_copy_insn): Copy new pure const attributes for new call.
4907         * c-decl.c (merge_decls): Ditto.
4908         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
4909         to RTL_CONST_OR_PURE_CALL_P.
4910         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
4911         Initialized DECL_LOOPING_CONST_PURE.
4912         (process_call_operands): Set tree_side_effects properly.
4913         * tree.h (TREE_READONLY_DECL_P): Removed.
4914         (DECL_IS_PURE): Renamed to DECL_PURE_P.
4915         (DECL_LOOPING_OR_CONST_P): New macro.
4916         (struct tree_function_decl): Added looping_const_or_pure_p.
4917         (ECF_*) Renumbered.
4918         (ECF_LOOPING_OR_CONST_P): New macro.
4919         * rtlanal.c (pure_const_p): Removed.
4920         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
4921         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
4922         to RTL_CONST_CALL_P.
4923         * ipa-pure-const.c (pure_const_state_e): Added looping field.
4924         (check_decl, check_tree, check_call, scan_function): Initialize
4925         looping.
4926         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
4927         (static_execute): Set looping true for recursive functions.
4928         Undo setting state to IPA_NEITHER for recursive functions.
4929         * cse.c (cse_insn): 
4930         * ifcvt.c (noce_can_store_speculate_p): Changed
4931         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
4932         RTL_CONST_OR_PURE_CALL_P.
4933         * dse.c (scan_insn): Ditto.
4934         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
4935         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
4936         RTL_CONST_OR_PURE_CALL_P.
4937         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
4938         pure_call_p to RTL_CONST_CALL_P.
4939         * gimplify.c (gimplify_call_expr): Clear side effects for
4940         non-looping pure and constant calls.
4941         * calls.c (emit_call_1): Set rtl flags from ecf flags.
4942         (flags_from_decl_or_type): Set ecf flags from decl flags.
4943         (initialize_argument_information): Turn off
4944         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
4945         Change const to pure if callee_copies is true rather than just
4946         turning off const.
4947         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
4948         way of marking pure calls.
4949         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
4950         Remove hack that was supposed to fix pr7335 and remove old
4951         way of marking pure calls.
4952         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
4953         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
4954         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
4955         RTL_CONST_OR_PURE_CALL_P.
4956         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
4957         * loop-invariant.c (find_exits, find_invariant_bb): Changed
4958         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
4959         * sched-deps.c (schedule_analyze): Ditto.
4960         * rtl.h (struct rtx_def): Use call field, unchanging field, and
4961         return_val field of calls to represent pure and const function info.
4962         (CONST_OR_PURE_CALL_P): Deleted macro.
4963         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4964         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
4965         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
4966         TREE_READONLY.
4967         * tree-optimize.c (execute_fixup_cfg): Added test for
4968         ECF_LOOPING_CONST_OR_PURE.
4969         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
4970         DECL_PURE_P.
4971         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
4972         effects for looping pure or const calls.
4973         (verify_gimple_expr): Added verification code. 
4974         * config/alpha/alpha.c (alpha_legitimize_address,
4975         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
4976         RTL_CONST_CALL_P.
4977         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
4978         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
4979         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
4980         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
4981         RTL_CONST_OR_PURE_CALL_P.
4982         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
4983         and const calls to be deleted.
4984
4985 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4986
4987         PR target/35714
4988         * config/i386/mmx.md (mmx_subv2sf3): New expander.
4989         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
4990         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
4991         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4992         to handle nonimmediate operands.
4993         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
4994         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
4995         to handle nonimmediate operands.
4996         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
4997         (mmx_pmulhrwv4hi3): New expander.  Use
4998         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4999         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
5000         (sse2_umulv1siv1di3): New expander.  Use
5001         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5002         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
5003         (mmx_eq<mode>3): New expander.  Use
5004         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5005         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
5006         (mmx_uavgv8qi3): New expander.  Use
5007         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5008         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
5009         (mmx_uavgv4hi3): New expander.  Use
5010         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5011
5012         * config/i386/sse.md
5013         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
5014         to handle nonimmediate operands.
5015         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
5016         to handle nonimmediate operands.
5017         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
5018         to handle nonimmediate operands.
5019         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
5020         to handle nonimmediate operands.
5021         (sse2_unpckhpd_exp): New expander.  Use
5022         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5023         (sse2_unpcklpd_exp): New expander.  Use
5024         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5025         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
5026         to handle nonimmediate operands.
5027         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
5028         to handle nonimmediate operands.
5029         (*sse2_<plusminus_insn><mode>3): Rename from
5030         sse2_<plusminus_insn><mode>3 insn pattern.
5031         (sse2_<plusminus_insn><mode>3): New expander.  Use
5032         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5033         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
5034         (sse2_umulv2siv2di3): New expander.  Use
5035         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5036         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
5037         (sse4_1_mulv2siv2di3): New expander.  Use
5038         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5039         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
5040         (sse2_pmaddwd): New expander.  Use
5041         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5042         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
5043         (sse2_eq<mode>3): New expander.  Use
5044         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5045         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
5046         (sse4_1_eqv2di3): New expander.  Use
5047         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5048         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
5049         (sse2_uavgv16qi3): New expander.  Use
5050         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5051         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
5052         (sse2_uavgv16qi3): New expander.  Use
5053         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5054         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
5055         (sse2_uavgv8hi3): New expander.  Use
5056         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5057         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
5058         (ssse3_pmulhrswv8hi3): New expander.  Use
5059         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5060         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
5061         (ssse3_pmulhrswv4hi3): New expander.  Use
5062         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5063
5064         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
5065         (<sse>_vmmul<mode>3): Ditto.
5066         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
5067         (divv2df3): Ditto.
5068         (ssse3_pmaddubsw128): Use register_operand for operand 1.
5069         (ssse3_pmaddubsw): Ditto.
5070
5071         * config/i386/i386.c (struct_builtin_description)
5072         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
5073         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
5074         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
5075         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
5076         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
5077         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
5078         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
5079         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
5080         (ix86_fixup_binary_operands): Assert that src1
5081         and src2 must have the same mode when swapped.
5082         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
5083         and ix86_binary_operator_ok.  Do not force operands in registers
5084         when optimizing.
5085
5086 2008-05-07  Jan Hubicka  <jh@suse.cz>
5087
5088         * cgraph.c (dump_cgraph_node): Update.
5089         * cgraph.h (cgraph_local_info): Break out inline summary.
5090         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
5091         hook.
5092         * ipa-inline (inline_summary): New accestor function.
5093         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
5094         cgraph_decide_inlining, compute_inline_parameters): Update.
5095         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
5096
5097 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
5098
5099         Cleanup ColdFire scheduling support and add V4 pipeline model.
5100
5101         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
5102         (define_attr cpu): Add cfv4 value.
5103         (define_attr type, define_attr type1): Merge into a single 'type'
5104         attribute.  Update all uses.
5105         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
5106         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
5107         Update all uses.
5108         (define_attr opx_mem, define_attr opy_mem): Remove.
5109         (define_attr op_mem): Clean up, update comment.
5110         (define_attr size): Use specific values instead of general int.
5111         (define_attr guess, define_attr split): Remove.  Update all uses.
5112         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
5113         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
5114         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
5115         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
5116         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
5117         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
5118         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
5119         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
5120         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
5121         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
5122         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
5123         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
5124         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
5125         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
5126         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
5127         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
5128         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
5129         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
5130         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
5131         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
5132         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
5133         Update or set attributes.
5134         (stack_tie): New fake instruction.
5135
5136         * config/m68k/m68k.h (TUNE_CFV4): New macro.
5137         (m68k_sched_attr_size): Update declaration.
5138         (m68k_sched_attr_type2): Remove.
5139         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
5140         Declare new bypass predicates.
5141
5142         * config/m68k/m68k.c (m68k_sched_issue_rate,
5143         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
5144         implementations.
5145         (TARGET_SCHED_ISSUE_RATE,
5146         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
5147         (override_options): Handle scheduling for ColdFire V4 core.
5148         (m68k_expand_prologue): Emit stack_tie.
5149         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
5150         'OP_TYPE_FPN'.  Update all uses.
5151         (sched_guess_p): Remove.
5152         (sched_address_type): Handle symbolic addresses.
5153         (sched_get_operand): New static function.
5154         (sched_operand_type): Merge into sched_attr_op_type.
5155         (sched_attr_op_type): Handle FP registers, handle quick constants,
5156         update.
5157         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
5158         (m68k_sched_attr_size): Update.  Move logic to ...
5159         (sched_get_attr_size_int): New static function.
5160         (sched_get_opxy_mem_type): New static function.
5161         (m68k_sched_attr_op_mem): Update.
5162         (m68k_sched_attr_type2): Remove.
5163         (sched_cfv4_bypass_data): New static variable.
5164         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
5165         (m68k_sched_issue_rate): Implement scheduler hook.
5166         (struct _sched_ib: enabled_p): New field.
5167         (m68k_sched_variable_issue): Update.  Handle V4.
5168         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
5169         sched_dump_class_func_t, sched_dump_split_class,
5170         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
5171         sched_dump_dfa_class, m68k_sched_dump): Remove.
5172         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
5173         hook.
5174         (m68k_sched_init_global): Remove statisctics dumping, introduce
5175         sanity check that all instructions have pipeline reservations.  Handle
5176         ColdFire V4 core.
5177         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5178         Handle ColdFire V4 core.
5179         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
5180         New static functions.
5181         (m68k_sched_address_bypass_p): New bypass predicate.
5182         (sched_get_indexed_address_scale): New static function.
5183         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
5184
5185         * cf.md: Update comments.
5186         (define_attr type2): Remove.  Use 'type' attribute instead.
5187         Update all uses.
5188         (cf_ib): Rename to cfv123_ib.  Update all uses.
5189         (cf_oep): Rename to cfv123_oep.  Update all uses.
5190         (cf_chr): Rename to cfv123_chr.  Update all uses.
5191         (cf_mem): Rename to cfv123_mem.  Update all uses.
5192         (cf_mac): Move to more appropriate place.
5193         (cfv123_guess): New automaton and cpu_unit.
5194         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
5195         Update uses of 'size' attribute.  Handle before reload scheduling.
5196         (cfv123_guess): New dummy reservation for unhandled instructions.
5197         (cfv4_*): Pipeline description of ColdFire V4 core.
5198         (ignore): New reservation to handle 'ignore' type.
5199
5200 2008-05-07  Ian Lance Taylor  <iant@google.com>
5201
5202         PR middle-end/36013
5203         * gimplify.c (find_single_pointer_decl_1): Don't look through
5204         indirections.
5205         (find_single_pointer_decl): Adjust comments.
5206
5207 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
5208
5209         PR middle-end/36137
5210         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
5211         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
5212
5213         PR middle-end/36106
5214         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
5215         integral type rather than floating point, then VIEW_CONVERT_EXPR
5216         to the floating point type.
5217
5218 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
5219
5220         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
5221         TFmode op0 to register.
5222
5223 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
5224
5225         * c-decl.c (grokdeclarator): Comment typo.
5226
5227 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
5228
5229         * tree-flow.h: Remove prototype for computed_goto_p.
5230         * tree-cfg.c (computed_goto_p): Make static.
5231
5232 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
5233
5234         PR target/35657
5235         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
5236         (contains_aligned_value_p): This.  Handle _Decimal128.
5237         (ix86_function_arg_boundary): Only align _Decimal128 to its
5238         natural boundary and handle it properly.
5239
5240 2008-05-06  Martin Jambor  <mjambor@suse.cz>
5241
5242         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
5243         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
5244         (ipcp_method_set_orig_node): Removed.
5245         (ipcp_cval_get_cvalue_type): Removed.
5246         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
5247         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
5248         (ipcp_cval_set_cvalue_type): Removed.
5249         (ipcp_cval_get_cvalue): Removed.
5250         (ipcp_cval_set_cvalue): Removed.
5251         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
5252         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
5253         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
5254         (ipcp_cval_meet): Renamed to ipa_lattice_meet
5255         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
5256         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
5257         (ipcp_get_ith_lattice): Changed parameters.
5258         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
5259         (ipcp_lattice_from_jfunc): Changed parameters.
5260         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
5261         (ipcp_method_cval_print): Added temporary variable info.
5262         (ipcp_redirect): Removed already unused local variable caller.
5263         (ipcp_redirect): New temporary variable orig_callee_info
5264         (ipcp_redirect): Removed newly unused local variable callee.
5265         (ipcp_redirect): Removed (a bit confusing) local variable type.
5266         (ipcp_insert_stage): Added local variable info.
5267         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
5268         renamed too
5269         (ipcp_formal_create): Removed.
5270         (ipcp_method_cval_set): Removed.
5271         (ipcp_propagate_stage): Renamed lattice variables.
5272         (ipcp_method_cval_set_cvalue_type): Removed.
5273         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
5274         (ipcp_print_all_lattices): Changed printed strings to refer to 
5275         lattices rather than cvals.
5276         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
5277         (ipcp_propagate_const): Changed formal parameters.
5278         (build_const_val): Changed formal parameters.
5279         (ipcp_insert_stage): Removed useless variable cvalue
5280         (build_const_val): Changed formal parameters.
5281         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
5282         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
5283         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
5284         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
5285         (ipcp_print_func_profile_counts): Changed string from "method" to 
5286         "function"
5287         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
5288         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
5289         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
5290         (ipcp_structures_print): Renamed to ipcp_print_all_structures
5291         (ipcp_profile_print): Renamed to ipcp_print_profile_data
5292         (ipcp_lat_is_const): Changed parameters and made inline.
5293         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
5294         (ipcp_redirect): Renamed to ipcp_need_redirect_p
5295         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
5296         the predicate condition directly
5297         (ipcp_propagate_stage): Added local variable args. Removed local
5298         variable callee.  (Both are mere code simplifications.)
5299         (ipcp_method_dont_insert_const): Renamed to
5300         ipcp_node_not_modifiable_p.
5301         (ipcp_node_not_modifiable_p): Made inline.
5302         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
5303         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
5304         (ipcp_print_all_lattices): Removed variable cvalue
5305         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
5306         Updated comments.
5307
5308 2008-05-06  Olivier Hainque  <hainque@adacore.com>
5309
5310         * tree-sra.c (try_instantiate_multiple_fields): Early return
5311         if field has POINTER_TYPE.
5312
5313 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
5314
5315         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
5316         by using 'q' specifier for instruction.
5317         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
5318
5319 2008-05-06  Anatoly Sokolov <aesok@post.ru>
5320
5321         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5322         Change mode of zero_extract from QImode to HImode.
5323         (sign bit tests peepholes): (Ditto.).
5324
5325 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
5326
5327         * config/i386/mmx.md: Remove double backslashes from asm templates.
5328         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
5329         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5330         to handle nonimmediate operands.
5331         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
5332         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
5333         to handle nonimmediate operands.
5334         (*mmx_<code>v2sf3_finite): New insn pattern.
5335         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
5336         (mmx_<code>v2sf3): New expander.  Use
5337         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5338         (mmx_<plusminus_insn><mode>3): New expander.  Use
5339         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5340         (*mmx_<plusminus_insn><mode>3): New insn pattern.
5341         (mmx_add<mode>3): Removed.
5342         (mmx_ssadd<mode>3): Ditto.
5343         (mmx_usadd<mode>3): Ditto.
5344         (mmx_sub<mode>3): Ditto.
5345         (mmx_sssub<mode>3): Ditto.
5346         (mmx_ussub<mode>3): Ditto.
5347         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
5348         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
5349         to handle nonimmediate operands.
5350         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
5351         insn pattern.
5352         (mmx_smulv4hi3_highpart): New expander.  Use
5353         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5354         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
5355         insn pattern.
5356         (mmx_umulv4hi3_highpart): New expander.  Use
5357         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5358         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
5359         (mmx_<code>v4hi3): New expander.  Use
5360         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5361         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
5362         (mmx_<code>v8qi3): New expander.  Use
5363         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5364         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
5365         (mmx_<code><mode>3): New expander.  Use
5366         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
5367
5368 2008-05-05  Jan Hubicka  <jh@suse.cz>
5369
5370         PR tree-optimization/36118
5371         * passes.c (pass_init_dump_file): Fix dump header.
5372
5373 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5374
5375         PR middle-end/36141
5376         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
5377         VCE for function decls.
5378
5379 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5380
5381         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
5382
5383 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5384
5385         * config/i386/i386.md (sat_plusminus): New.
5386         (plusminus_insn): Likewise.
5387         (plusminus_mnemonic): Likewise.
5388         (addsub): Removed.
5389         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
5390         (*<addsub><mode>3_cc_overflow): Renamed to ...
5391         (*<plusminus_insn><mode>3_cc_overflow): This.
5392         (*<addsub>si3_zext_cc_overflow): Renamed to ...
5393         (*<plusminus_insn>si3_zext_cc_overflow): This.
5394
5395         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
5396         (<plusminus_insn><mode>3): This.
5397         (*<addsub><mode>3): Renamed to ...
5398         (*<plusminus_insn><mode>3): This.
5399         (<sse>_vm<addsub><mode>3): Renamed to ...
5400         (<sse>_vm<plusminus_insn><mode>3): This.
5401         (sse3_h<addsub>v4sf3): Renamed to ...
5402         (sse3_h<plusminus_insn>v4sf3): This.
5403         (sse3_h<addsub>v2df3): Renamed to ...
5404         (sse3_h<plusminus_insn>v2df3): This.
5405         (<plusminus_insn><mode>3): New.
5406         (*<plusminus_insn><mode>3): Likewise.
5407         (sse2_<plusminus_insn><mode>3): Likewise.
5408         (add<mode>): Removed.
5409         (*add<mode>3): Likewise.
5410         (sse2_ssadd<mode>3): Likewise.
5411         (sse2_usadd<mode>3): Likewise.
5412         (sub<mode>3): Likewise.
5413         (*sub<mode>3): Likewise.
5414         (sse2_sssub<mode>3): Likewise.
5415         (sse2_ussub<mode>3): Likewise.
5416
5417 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
5418
5419         * gthr-single.h: Add in required interface elements as per gthr.h.
5420         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
5421         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
5422         Generalize UNUSED macro. 
5423         (__gthread_once): Add.
5424         (__gthread_key_create): Add.
5425         (__gthread_key_delete): Add.
5426         (__gthread_getspecific): Add.
5427         (__gthread_setspecific): Add.
5428         
5429 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
5430
5431         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
5432         the same size types for the indirect reference on the rhs, then
5433         create a VCE.
5434
5435 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
5436
5437         * config/i386/i386.md
5438         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
5439         one insn template instead of template series.
5440         (*xordi_1_rex64): Ditto.
5441         (*xordi_2_rex64): Ditto.
5442
5443 2008-05-05  Ira Rosen  <irar@il.ibm.com>
5444
5445         PR tree-optimization/36119
5446         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
5447         in case of SLP.
5448
5449 2008-06-04  Jan Hubicka  <jh@suse.cz>
5450
5451         tree-optimization/36100
5452         * tree-pass.h (pass_O0_always_inline): Declare.
5453         * ipa-inline.c (inline_transform): Remove dead code.
5454         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
5455         pass_O0_always_inline): New.
5456         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
5457
5458 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
5459
5460         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
5461         mnemonic in this_param move for TARGET_64BIT.
5462
5463 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
5464
5465         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
5466         (*strmovsi_rex_1): Ditto.
5467         (*strsetsi_1): Ditto.
5468         (*strsetsi_rex_1): Ditto.
5469
5470         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
5471         adddicc expanders using SWI mode iterator.
5472
5473 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5474
5475         PR target/36121
5476         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
5477         argument handling.
5478
5479 2008-05-04  David S. Miller  <davem@davemloft.net>
5480
5481         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
5482         (sparc*-*-linux*): Use linux.h in tm_file.
5483         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
5484         compiler defaulting to 32-bit.
5485         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
5486         no longer needed.
5487         * config/sparc/linux.h: Remove definitions now obtained
5488         properly from linux.h
5489         * config/sparc/linux64.h: Likewise.
5490         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
5491         don't want this setting for 32-bit builds in a biarch compiler.
5492         * doc/install.texi: Add sparc-linux to list of targets
5493         supporting --enable-targets=all.
5494
5495 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
5496
5497         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
5498
5499 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
5500
5501         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
5502         after V4SI_FTYPE_V8HI.
5503         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
5504         case V4SI_FTYPE_V2DF.
5505
5506 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
5507
5508         * doc/invoke.texi (max-flow-memory-locations): Removed.
5509         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
5510         
5511 2008-05-03  Richard Guenther  <rguenther@suse.de>
5512
5513         PR middle-end/34973
5514         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
5515
5516 2008-05-02  David S. Miller  <davem@davemloft.net>
5517
5518         * config.gcc (need_64bit_hwint): Document libcpp dependency.
5519
5520 2008-05-02  Simon Baldwin <simonb@google.com>
5521
5522         PR bootstrap/36108
5523         * c-common.h (warn_array_subscript_range): Removed.
5524         * c-common.c (warn_array_subscript_range): Ditto.
5525         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
5526         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
5527
5528 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5529
5530         * config/i386/i386.c (ix86_special_builtin_type): New.
5531         (bdesc_special_args): Likewise.
5532         (ix86_expand_special_args_builtin): Likewise.
5533         (ix86_init_mmx_sse_builtins): Updated.
5534         (ix86_expand_builtin): Updated.
5535         (ix86_expand_store_builtin): Removed.
5536         (ix86_expand_unop_builtin): Likewise.
5537
5538         * config/i386/mm3dnow.h (__v2sf): Moved to ...
5539         * config/i386/mmintrin.h (__v2sf): Here.
5540
5541         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
5542         const __v2sf.
5543         (_mm_loadl_pi): Likewise.
5544         (_mm_storeh_pi): Replace __v2si with __v2sf.
5545         (_mm_storel_pi): Likewise.
5546
5547         * doc/extend.texi: Correct __builtin_ia32_loadhps,
5548         __builtin_ia32_loadlps, __builtin_ia32_storehps,
5549         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
5550         __builtin_ia32_loadlpd.
5551
5552 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
5553
5554         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
5555         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
5556         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
5557         (ix86_init_mmx_sse_builtins): Updated.
5558         (ix86_expand_args_builtin): Likewise.
5559         (ix86_expand_builtin): Likewise.
5560         (ix86_expand_unop1_builtin): Renamed to ...
5561         (ix86_expand_unop_vec_merge_builtin): This.
5562
5563 2008-05-01  Jan Hubicka  <jh@suse.cz>
5564
5565         PR bootstrap/36100
5566         * ipa-inline.c (inline_generate_summary): Make static.
5567         (inline_transform): Do not call inlining at -O0; make static.
5568         * passes.c (execute_todo): Add sanity check.
5569         (execute_one_ipa_transform_pass): Execute proper flags.
5570
5571 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
5572
5573         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
5574         (DECL_NONADDRESSABLE_P): Likewise.
5575         * alias.c (record_component_aliases): Fix comment.
5576
5577 2008-05-01  Simon Baldwin <simonb@google.com>
5578
5579         * c-common.h (warn_array_subscript_range): New function.
5580         * c-common.c (warn_array_subscript_range): Ditto.
5581         * tree-vrp.c (check_array_ref): Corrected code to agree with
5582         comment, ignoring only arrays of size 0 or size 1.
5583         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
5584
5585 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5586
5587         * config/i386/i386.c (ix86_builtin_type): Replace
5588         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
5589         (bdesc_args): Updated.
5590         (ix86_init_mmx_sse_builtins): Likewise.
5591         (ix86_expand_args_builtin): Likewise.
5592
5593         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
5594         with __v1di.
5595
5596         * doc/extend.texi: Correct __builtin_ia32_palignr.
5597
5598 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5599
5600         PR target/36095
5601         * config/i386/i386.c (bdesc_crc32): Removed.
5602         (ix86_expand_crc32): Likewise.
5603         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
5604         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
5605         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
5606         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
5607         UINT_FTYPE_UINT_UCHAR.
5608         (bdesc_args): Updated. Add crc32 builtins.
5609         (ix86_init_mmx_sse_builtins): Updated.
5610         (ix86_expand_args_builtin): Updated to support subreg.
5611
5612         * doc/extend.texi: Correct __builtin_ia32_crc32di.
5613
5614 2008-05-01  Jan Hubicka  <jh@suse.cz>
5615
5616         * tree-pass.h (opt_pass): Add IPA_PASS.
5617         (varpool_node, cgraph_node): Forward declare.
5618         (ipa_opt_pass): Define.
5619         (pass_ipa_inline): Turn into ipa_opt_pass.
5620         (pass_apply_inline): Remove.
5621         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
5622         (apply_inline): Turn into ....
5623         (inline_transform): ... this one.
5624         (inline_generate_summary): New function.
5625         (pass_apply_inline): Remove.
5626         * function.h (ipa_opt_pass): Forward declare structure; typedef;
5627         vector.
5628         (struct function): Add ipa_transforms_to_apply.
5629         * passes.c (register_one_dump_file): Work on IPA_PASS.
5630         (init_optimization_passes): Remove pass_inline_parameters and
5631         pass_apply_inline.
5632         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
5633         (execute_one_pass) ... here; apply transforms when possible.
5634         (add_ipa_transform_pass, execute_ipa_summary_asses,
5635         execute_one_ipa_transform_pass): New.
5636         (execute_ipa_pass_list): Update for IPA_PASS type.
5637
5638 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5639
5640         * config/i386/i386.c (ix86_builtin_type): Add
5641         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
5642         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
5643         (bdesc_args): Add SSE4a builtins.
5644         (ix86_init_mmx_sse_builtins): Updated.
5645         (ix86_expand_args_builtin): Likewise.
5646         (ix86_expand_builtin): Likewise.
5647
5648 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5649
5650         * config/i386/i386.c (ix86_builtin_type): Add
5651         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
5652         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
5653         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
5654         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
5655         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
5656         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
5657         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
5658         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
5659         and DI_FTYPE_DI_DI_INT.
5660         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
5661         (ix86_init_mmx_sse_builtins): Updated.
5662         (ix86_expand_args_builtin): Likewise.
5663         (ix86_expand_builtin): Likewise.
5664         (ix86_expand_binop_imm_builtin): Removed.
5665
5666         * doc/extend.texi: Correct __builtin_ia32_palignr128.
5667
5668 2008-04-30  Richard Guenther  <rguenther@suse.de>
5669
5670         PR tree-optimization/32921
5671         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
5672
5673 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
5674
5675         * config/arm/arm.c (arm_unwind_emit): Use
5676         crtl->all_throwers_are_sibcalls instead of
5677         cfun->all_throwers_are_sibcalls.
5678         (arm_output_fn_unwind): Likewise.
5679         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
5680         instead of cfun->uses_pic_offset_table.
5681         (frv_expand_prologue): Likewise.
5682         (frv_frame_pointer_required): Likewise.
5683         (frv_expand_fdpic_call): Likewise.
5684         (frv_emit_movsi): Likewise.
5685         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
5686         cfun->returns_pcc_struct instead of
5687         current_function_returns_pcc_struct.
5688         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
5689         instead of cfun->calls_eh_return.
5690         (m32c_pushm_popm): Likewise.
5691         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
5692         "extern" declaration.
5693
5694 2008-04-30  Richard Guenther  <rguenther@suse.de>
5695
5696         PR tree-optimization/21636
5697         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
5698         constant address.
5699         (evaluate_stmt): Print the likely value.
5700         (ccp_visit_stmt): Avoid excessive vertical spacing.
5701
5702 2008-04-30  Rafael Espindola  <espindola@google.com>
5703
5704         * builtins.c (fold_call_expr): Return realret.
5705         * tree-ssa-threadedge.c
5706         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5707         __builtin_object_size.
5708
5709 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
5710
5711         * gcc.c (wrapper_string): New variable.
5712         (insert_wrapper): New function.
5713         (execute): New option -wrapper.
5714         * doc/invoke.texi (Overall Options): New driver option -wrapper.
5715
5716 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
5717
5718         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
5719         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
5720         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
5721         from...
5722         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
5723         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
5724         config/rs6000/e500crtres64gprctr.asm,
5725         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
5726         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
5727         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
5728         config/rs6000/e500crtsav64gprctr.asm,
5729         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
5730         config/rs6000/e500crtsavg64gprctr.asm: New files.
5731         * config/rs6000/t-ppccomm: Add build rules for new files.
5732         (LIB2FUNCS_STATIC_EXTRA): Add new files.
5733         * config/rs6000/t-netbsd: Add build rules for new files.
5734         (LIB2FUNCS_STATIC_EXTRA): New variable.
5735         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
5736         (CRTSAVRES_DEFAULT_SPEC): Likewise.
5737         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
5738
5739 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
5740
5741         * config/i386/i386.c (ix86_builtin_type): Add
5742         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
5743         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
5744         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
5745         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
5746         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
5747         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
5748         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
5749         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
5750         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
5751         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
5752         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
5753         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
5754         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
5755         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
5756         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
5757         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
5758         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
5759         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
5760         V1DI_FTYPE_V2SI_V2SI.
5761         (bdesc_2arg): Moved to ...
5762         (bdesc_args): Here.
5763         (ix86_init_mmx_sse_builtins): Updated.
5764         (ix86_expand_args_builtin): Updated.  Take a pointer
5765         to const struct builtin_description.  Handle comparison
5766         builtin functions.
5767         (ix86_expand_sse_compare): Take a new argument for swapping operands.
5768         (ix86_expand_builtin): Updated.
5769
5770         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
5771         (ssse3_pmaddubsw128): This.
5772         (ssse3_pmaddubswv4hi3): Renamed to ...
5773         (ssse3_pmaddubsw): This.
5774
5775         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
5776         (__builtin_ia32_packssdw128): Likewise.
5777         (__builtin_ia32_packuswb128): Likewise.
5778         (__builtin_ia32_pmaddubsw): Likewise.
5779         (__builtin_ia32_pmaddubsw128): Likewise.
5780
5781 2008-04-30  Richard Guenther  <rguenther@suse.de>
5782
5783         PR tree-optimization/14847
5784         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
5785         (recognize_bits_test): Use it.
5786         (recognize_single_bit_test): Likewise.
5787
5788 2008-04-30  Martin Jambor  <mjambor@suse.cz>
5789
5790         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
5791         instead of setting number of formal parameters to zero.
5792         (ipcp_init_stage): Do not set the number of actual parameters to zero 
5793         either.
5794         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
5795         which are called with variable number of arguments.
5796         (ipcp_insert_stage): Explicitely skipping all nodes which are
5797         called with variable number of arguments.
5798         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
5799         number of parameters.
5800
5801         * ipa-prop.h (struct ipa_node_params): Added flag
5802         called_with_var_arguments
5803         (ipa_set_param_count): Added.  Changed sole setter to use it.
5804         (ipa_get_param_count): Added.  All readers of param_count
5805         converted to use it instead.
5806         (ipa_set_called_with_variable_arg): Added.
5807         (ipa_is_called_with_var_arguments): Added.
5808         (ipa_get_ith_param): Added.  All readers of param_decls converted
5809         to use it instead.
5810         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
5811         changed to use it. 
5812         (ipa_get_cs_argument_count): Added, all readers of argument_count
5813         changed to cal it.
5814         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
5815         to use it.
5816         
5817         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
5818         (struct ipcp_lattice): Renamed cval_type to type
5819         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
5820
5821         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
5822         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
5823         (ipcp_insert_stage): Changed the type of variable cvalue to tree
5824         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
5825         (build_const_val): Changed the type of parameter cvalue to tree
5826         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
5827         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
5828         
5829         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
5830         constant 
5831
5832         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
5833         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
5834         (ipa_add_method): Renamed to ipa_push_func_to_list
5835         (ipa_remove_method): Renamed to ipa_pop_func_from_list
5836         (ipa_callsite_param_count): Removed.
5837         (ipa_callsite_param_count_set): Removed.
5838         (ipa_callsite_param): Removed.
5839         (ipa_callsite_callee): Removed.
5840         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
5841         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
5842         (ipa_method_formal_count): Removed.
5843         (ipa_method_formal_count_set): Removed.
5844         (ipa_method_get_tree): Removed.
5845         (ipa_method_tree_map_create): Removed.
5846         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
5847         (ipa_create_param_decls_array): Creates the array itself
5848         (ipa_create_param_decls_array): Temporary variable info instead of 
5849         a few dereferences.
5850         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
5851         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
5852         (get_type): Removed.
5853         (ipa_jf_get_info_type): Removed.
5854         (ipa_node_create): Renamed to ipa_create_node_params
5855         (ipa_free): Renamed to ipa_free_all_node_params
5856         (ipa_nodes_create): Renamed to ipa_create_all_node_params
5857         (ipa_edges_create): Renamed to ipa_create_all_edge_args
5858         (ipa_edges_free): Renamed to ipa_free_all_edge_args
5859         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
5860         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
5861         ipa_free_all_edge_args
5862         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
5863         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
5864         (ipa_create_methodlist_node): Removed.
5865         (ipa_methodlist_method): Removed.
5866         (ipa_methodlist_method_set): Removed.
5867         (ipa_methodlist_next_method): Removed.
5868         (ipa_methodlist_next_method_set): Removed.
5869         (ipa_method_is_modified): Removed.
5870         (ipa_method_modify_create): Removed.
5871         (ipa_method_modify_init): Temporary variable info instead of a few 
5872         dereferences.
5873         (ipa_detect_param_modifications): Temporary variable info instead of 
5874         a few dereferences.
5875         (ipa_compute_jump_functions): Temporary variable info instead of 
5876         a few dereferences.
5877         (ipa_method_modify_set): Removed.
5878         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
5879         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
5880         than craph_node as the first parameter.
5881         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
5882         (ipa_method_modify_init): Removed.
5883         (ipa_compute_jump_functions): Added a temp variable instead of 
5884         repeatadly dereferencing the cgraph_edge.aux pointer
5885         (ipa_callsite_param_set_type): Removed.
5886         (ipa_compute_jump_functions): i renamed to index and moved to 
5887         an inner block
5888         (ipa_callsite_param_set_info_type_formal): Removed.
5889         (ipa_callsite_param_set_info_type): Removed.
5890         (ipa_callsite_param_map_create): Removed.
5891         (ipa_callsite_tree): Removed.
5892         (ipa_callsite_caller): Removed.
5893         (ipa_pop_func_from_list): return_method removed to return_func
5894
5895         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
5896         prefixed all values with IPA_. Changed all users.
5897         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
5898         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
5899         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
5900         (union parameter_info): Renamed to jump_func_value.
5901         (union jump_func_value): Renamed value to constant
5902         (struct ipa_jump_func): Renamed info_type to value
5903         (struct ipa_node): Renamed to ipa_node_params
5904         (struct ipa_node_params): Renamed ipa_arg_num to param_count
5905         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
5906         (struct ipa_node_params): Renamed ipa_mod to modified_flags
5907         (struct ipa_edge): Renamed to ipa_edge_args
5908         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
5909         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
5910         (struct ipa_methodlist): Renamed to ipa_func_list
5911         (struct ipa_func_list): method_p renamed to node, next_method
5912         renamed to next
5913         (ipa_methodlist_p): Removed, switched all users to struct pointer
5914         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
5915
5916 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
5917
5918         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
5919         (rs6000_emit_epilogue): Use backchain to restore only when we
5920         have a large frame.  Make use of frame pointer to restore if we
5921         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
5922
5923 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
5924
5925         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5926         Add mode to zero_extract.
5927         (sign bit tests peepholes): (Ditto.).
5928
5929 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
5930
5931         * config/i386/i386.c (ix86_builtins): Replace Prescott New
5932         Instructions in comments with SSE3.
5933         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
5934         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
5935         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
5936         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
5937         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
5938         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
5939         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
5940         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
5941         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
5942         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
5943         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
5944         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
5945         (bdesc_sse_args): Renamed to ...
5946         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
5947         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
5948         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
5949         IX86_BUILTIN_FABSQ.
5950         (bdesc_1arg): Moved to ...
5951         (bdesc_args): Here.
5952         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
5953         Instructions in comments with SSE3.
5954         (ix86_expand_sse_operands_builtin): Renamed to ...
5955         (ix86_expand_args_builtin): This.  Updated.
5956         (ix86_expand_unop1_builtin): Update comments.
5957         (ix86_expand_builtin): Updated.
5958
5959 2008-04-29  Richard Guenther  <rguenther@suse.de>
5960
5961         PR tree-optimization/36078
5962         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
5963         Update virtual SSA form after cleaning up the CFG.
5964
5965 2008-04-29  Richard Guenther  <rguenther@suse.de>
5966
5967         PR middle-end/15255
5968         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
5969
5970 2008-04-29  Richard Guenther  <rguenther@suse.de>
5971
5972         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
5973         (compute_may_aliases): Do not call finalize_ref_all_pointers.
5974         (compute_flow_insensitive_aliasing): Do not treat
5975         PTR_IS_REF_ALL pointers special.
5976         (get_smt_for): Likewise.
5977         (may_alias_p): Re-structure.
5978         (is_escape_site): A ref-all pointer conversion is not an escape site.
5979         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
5980         PTR_IS_REF_ALL pointers special.
5981         * tree-ssa-structalias.h (struct alias_info): Remove
5982         ref_all_symbol_mem_tag field.
5983         (PTR_IS_REF_ALL): Remove.
5984
5985 2008-04-29  Richard Guenther  <rguenther@suse.de>
5986
5987         PR middle-end/36077
5988         * fold-const.c (extract_muldiv_1): In combining division constants
5989         make sure to never overflow.
5990
5991 2008-04-29  Nick Clifton  <nickc@redhat.com>
5992
5993         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
5994
5995 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5996
5997         PR bootstrap/35169
5998         * optc-gen.awk: Work around HP-UX/IA awk bug.
5999
6000 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
6001
6002         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
6003         2008-04-25 commit.
6004
6005 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
6006
6007         PR target/36073
6008         * config/i386/i386.md
6009         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
6010         Change operand 1 predicate to nonimmediate_operand.
6011
6012 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
6013
6014         PR debug/36060
6015         * dwarf2out.c (struct die_struct): Mark as chain_circular through
6016         die_sub field.
6017         * gengtype.c (walk_type, write_func_for_structure): Handle
6018         chain_circular.
6019         * doc/gty.texi: Document chain_circular.
6020
6021 2008-04-28  Richard Guenther  <rguenther@suse.de>
6022
6023         PR tree-optimization/36066
6024         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
6025         SCEV and loop.
6026
6027 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
6028
6029         PR target/36064
6030         * config/i386/i386.md
6031         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
6032         Use match_scratch instead of match_operand for operands 3 and 4.
6033
6034 2008-04-27  Richard Guenther  <rguenther@suse.de>
6035
6036         PR tree-optimization/18754
6037         PR tree-optimization/34223
6038         * tree-pass.h (pass_complete_unrolli): Declare.
6039         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
6040         loop size before and after unconditionally of UL_NO_GROWTH in effect.
6041         Rewrite loop into loop closed SSA form if it is not already.
6042         (tree_unroll_loops_completely): Re-structure to iterate over
6043         innermost loops with intermediate CFG cleanups.
6044         Unroll outermost loops only if requested or the code does not grow
6045         doing so.
6046         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
6047         loops are available.
6048         (tree_vectorize): Instead do so here.
6049         (tree_complete_unroll): Also unroll outermost loops.
6050         (tree_complete_unroll_inner): New function.
6051         (gate_tree_complete_unroll_inner): Likewise.
6052         (pass_complete_unrolli): New pass.
6053         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
6054         uses outside of the loop.
6055         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
6056         form if it is available.  
6057         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
6058         * passes.c (init_optimization_passes): Schedule complete inner
6059         loop unrolling pass before the first CCP pass after final inlining.
6060
6061 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
6062
6063         * targhooks.h (default_emutls_var_fields,
6064         default_emutls_var_init): Declare.
6065         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
6066         * target.h (struct gcc_target): Add struct emutls member.
6067         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
6068         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
6069         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
6070         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
6071         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
6072         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
6073         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
6074         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
6075         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
6076         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
6077         emit debug information.
6078         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
6079         * varasm.c: Include targhooks.h.
6080         (emutls_object_section, emutls_tmpl_section): New.
6081         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
6082         (EMUTLS_SEPARATOR): New.
6083         (prefix_name): New.
6084         (get_emutls_object_name): New.
6085         (default_emutls_var_fields): New, broken out of ...
6086         (get_emutls_object_type): ... here.  Adjust to use target hooks.
6087         (get_emutls_init_templ_addr): Adjust to use target hooks.
6088         (emutls_decl): Adjust to use target hooks.
6089         (emutls_finish): Likewise.
6090         (default_emutls_var_init): New, broken out of ...
6091         (assemble_variable): ... here.  Adjust to use target hooks.
6092         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
6093         SECCAT_EMUTLS_TMPL.
6094         * c-common.c (handle_section_attribute): Prevent overriding
6095         sections for emulated tls with special sections.
6096         * config/i386/i386.c (x86_64_elf_select_section): Add
6097         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
6098         (x86_64_elf_unique_section): Likewise.
6099         * config/vxworks.c: Include tree.h.
6100         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
6101         (vxworks_override_options): Set TLS scheme.
6102         * doc/tm.texi (Emulated TLS): New node.
6103
6104 2008-04-26  Simon Baldwin <simonb@google.com>
6105
6106         PR c/35652
6107         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
6108         with propagated string constants.
6109
6110 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
6111
6112         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
6113         constraint for operand 2 when operand 0 is memory operand.
6114         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
6115         operand 0 is memory operand.
6116         (fix_trunc<mode>_i387_with_temp): Ditto.
6117         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
6118         operand 2 when operand 1 is memory operand.
6119         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
6120         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
6121         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
6122         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6123         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
6124         operands 2,3 and 4 when operand 1 is memory operand.
6125         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
6126         is memory operand.
6127         (fistdi2_floor_with_temp): Ditto.
6128         (fist<mode>2_floor_with_temp): Ditto.
6129         (fistdi2_ceil_with_temp): Ditto.
6130         (fist<mode>2_ceil_with_temp): Ditto.
6131         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
6132
6133 2008-04-26  David Daney  <ddaney@avtrex.com>
6134
6135         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
6136         unspec_volitile.
6137         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
6138         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
6139         UNSPEC_UPDATE_GOT_VERSION): Renumber.
6140         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
6141         (compare_and_swap_12): New insn.
6142         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
6143         * config/mips/mips.c (mips_force_binary): New function.
6144         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
6145         (mips_expand_compare_and_swap_12): New function.
6146         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
6147
6148 2008-04-25  Jan Hubicka  <jh@suse.cz>
6149
6150         PR testsuite/35843
6151         * cfgexpand.c (pass_expand): Turn into RTL pass.
6152         * passes.c (execute_one_pass): Do pass typechecking after execution.
6153         * tree-pass.h (pass_expand): Turn into RTL pass.
6154
6155         * function.h (struct rtl_data): Move here fields
6156         accesses_prior_frames, calls_eh_return, saves_all_registers,
6157         has_nonlocal_goto, has_asm_statement, is_thunk,
6158         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
6159         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
6160         arg_pointer_save_area_init from struct function; turn into bool.
6161         (struct function): Move
6162         calls_eh_return, saves_all_registers, has_nonlocal_goto,
6163         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
6164         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
6165         tail_call_emit, arg_pointer_save_area_init
6166         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
6167         (current_function_returns_struct, current_function_returns_pcc_struct,
6168         current_function_calls_setjmp, current_function_calls_alloca,
6169         current_function_accesses_prior_frames,
6170         current_function_calls_eh_return, current_function_is_thunk,
6171         current_function_stdarg, current_function_profile,
6172         current_function_limit_stack, current_function_uses_pic_offset_table,
6173         current_function_uses_const_pool, current_function_has_nonlocal_label,
6174         current_function_saves_all_registers,
6175         current_function_has_nonlocal_goto,
6176         current_function_has_asm_statement): Remove accesor macros.
6177         * ra-conflict.c (global_conflicts): Update.
6178         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
6179         (suitable_for_tail_call_opt_p): Update.
6180         * builtins.c (expand_builtin_return_addr): Update.
6181         (expand_builtin_setjmp_setup): Update.
6182         (expand_builtin_nonlocal_goto): Update.
6183         * final.c (final_start_function): Update.
6184         (profile_function): Update.
6185         (leaf_function_p): Update.
6186         (only_leaf_regs_used): Update.
6187         * df-scan.c (df_get_exit_block_use_set): Update.
6188         * dojump.c (clear_pending_stack_adjust): Update.
6189         * tree-stdarg.c (gate_optimize_stdarg): Update.
6190         * gimple-low.c (lower_function_body): Update.
6191         * global.c (compute_regsets): Update.
6192         (global_alloc): Update.
6193         * dwarf2out.c (dwarf2out_begin_prologue): Update.
6194         * expr.c (expand_assignment): Update.
6195         * dse.c (dse_step0): Update.
6196         (dse_step1): Update.
6197         * c-decl.c (store_parm_decls): Update.
6198         * local-alloc.c (combine_regs): Update.
6199         (find_free_reg): Update.
6200         * function.c (assign_parms_augmented_arg_list): Update.
6201         (assign_parm_find_data_types): Update.
6202         (assign_parms): Update.
6203         (allocate_struct_function): Update.
6204         (expand_function_start): Update.
6205         (expand_function_end): Update.
6206         (get_arg_pointer_save_area): Update.
6207         (thread_prologue_and_epilogue_insns): Update.
6208         (rest_of_match_asm_constraints): Update.
6209         * stor-layout.c (variable_size): Update.
6210         * gcse.c (gcse_main): Update.
6211         (bypass_jumps): Update.
6212         * gimplify.c (gimplify_function_tree): Update.
6213         * calls.c (emit_call_1): Update.
6214         (expand_call): Update.
6215         * bt-load.c (compute_defs_uses_and_gen): Update.
6216         * except.c (sjlj_assign_call_site_values): Update.
6217         (sjlj_emit_function_enter): Update.
6218         (can_throw_external): Update.
6219         (set_nothrow_function_flags): Update.
6220         (expand_builtin_unwind_init): Update.
6221         (expand_eh_return): Update.
6222         (convert_to_eh_region_ranges): Update.
6223         (output_function_exception_table): Update.
6224         * emit-rtl.c (gen_tmp_stack_mem): Update.
6225         * cfgexpand.c (expand_used_vars): Update.
6226         (tree_expand_cfg): Update.
6227         * cfgcleanup.c (rest_of_handle_jump): Update.
6228         * explow.c (allocate_dynamic_stack_space): Update.
6229         * varasm.c (assemble_start_function): Update.
6230         (force_const_mem): Update.
6231         (mark_constant_pool): Update.
6232         * tree-optimize.c (tree_rest_of_compilation): Update.
6233         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
6234         * tree-cfg.c (notice_special_calls): Update.
6235         (is_ctrl_altering_stmt): Update.
6236         (tree_can_make_abnormal_goto): Update.
6237         (tree_purge_dead_abnormal_call_edges): Update.
6238         * config/alpha/predicates.md: Update.
6239         * config/alpha/alpha.c (alpha_sa_mask): Update.
6240         (alpha_sa_size): Update.
6241         (alpha_does_function_need_gp): Update.
6242         (alpha_expand_prologue): Update.
6243         (alpha_start_function): Update.
6244         (alpha_output_function_end_prologue): Update.
6245         (alpha_expand_epilogue): Update.
6246         * config/frv/frv.c (frv_stack_info): Update.
6247         (frv_expand_epilogue): Update.
6248         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
6249         (s390_register_info): Update.
6250         (s390_frame_info): Update.
6251         (s390_init_frame_layout): Update.
6252         (s390_can_eliminate): Update.
6253         (save_gprs): Update.
6254         * config/spu/spu.c (spu_split_immediate): Update.
6255         (need_to_save_reg): Update.
6256         (spu_expand_prologue): Update.
6257         (spu_expand_epilogue): Update.
6258         * config/sparc/sparc.md: Update.
6259         * config/sparc/sparc.c (eligible_for_return_delay): Update.
6260         (sparc_tls_got): Update.
6261         (legitimize_pic_address): Update.
6262         (sparc_emit_call_insn): Update.
6263         (sparc_expand_prologue): Update.
6264         (output_return): Update.
6265         (print_operand): Update.
6266         (sparc_function_ok_for_sibcall): Update.
6267         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
6268         * config/m32r/m32r.md: Update.
6269         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
6270         (m32r_compute_frame_size): Update.
6271         (m32r_expand_prologue): Update.
6272         (m32r_expand_epilogue): Update.
6273         (m32r_legitimize_pic_address): Update.
6274         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
6275         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6276         * config/i386/i386.c (ix86_frame_pointer_required): Update.
6277         (gen_push): Update.
6278         (ix86_save_reg): Update.
6279         (ix86_compute_frame_layout): Update.
6280         (ix86_expand_prologue): Update.
6281         (ix86_expand_epilogue): Update.
6282         * config/sh/sh.c (output_stack_adjust): Update.
6283         (calc_live_regs): Update.
6284         (sh5_schedule_saves): Update.
6285         (sh_expand_prologue): Update.
6286         (sh_expand_epilogue): Update.
6287         (sh_setup_incoming_varargs): Update.
6288         (sh_allocate_initial_value): Update.
6289         (sh_get_pr_initial_val): Update.
6290         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
6291         * config/sh/sh.md (label:): Update.
6292         * config/avr/avr.c (out_movhi_mr_r): Update.
6293         * config/crx/crx.h (enum): Update.
6294         * config/xtensa/xtensa.h (along): Update.
6295         * config/stormy16/stormy16.c Update.
6296         (xstormy16_compute_stack_layout): Update.
6297         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
6298         (fr30_expand_prologue): Update.
6299         * config/cris/cris.c (cris_conditional_register_usage): Update.
6300         (cris_reg_saved_in_regsave_area): Update.
6301         (cris_initial_frame_pointer_offset): Update.
6302         (cris_simple_epilogue): Update.
6303         (cris_expand_prologue): Update.
6304         (cris_expand_epilogue): Update.
6305         (cris_expand_pic_call_address): Update.
6306         (cris_asm_output_symbol_ref): Update.
6307         (cris_asm_output_label_ref): Update.
6308         * config/cris/cris.md Update.
6309         * config/iq2000/iq2000.c (compute_frame_size): Update.
6310         (iq2000_expand_epilogue): Update.
6311         * config/mt/mt.h (save_direction): Update.
6312         * config/mn10300/mn10300.c (mn10300_function_value): Update.
6313         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6314         (ia64_secondary_reload_class): Update.
6315         * config/m68k/m68k.c (m68k_save_reg): Update.
6316         (m68k_expand_prologue): Update.
6317         (m68k_expand_epilogue): Update.
6318         (legitimize_pic_address): Update.
6319         * config/rs6000/rs6000.c (rs6000_got_register): Update.
6320         (first_reg_to_save): Update.
6321         (first_altivec_reg_to_save): Update.
6322         (compute_vrsave_mask): Update.
6323         (compute_save_world_info): Update.
6324         (rs6000_stack_info): Update.
6325         (spe_func_has_64bit_regs_p): Update.
6326         (rs6000_ra_ever_killed): Update.
6327         (rs6000_emit_eh_reg_restore): Update.
6328         (rs6000_emit_allocate_stack): Update.
6329         (rs6000_emit_prologue): Update.
6330         (rs6000_emit_epilogue): Update.
6331         (rs6000_output_function_epilogue): Update.
6332         (output_profile_hook): Update.
6333         (rs6000_elf_declare_function_name): Update.
6334         * config/rs6000/rs6000.h (rs6000_args): Update.
6335         * config/rs6000/rs6000.md: Update.
6336         * config/mcore/mcore.c (mcore_expand_prolog): Update.
6337         * config/arc/arc.c (arc_output_function_epilogue): Update.
6338         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
6339         * config/darwin.c (machopic_function_base_name): Update.
6340         * config/score/score3.c (score3_compute_frame_size): Update.
6341         (rpush): Update.
6342         (rpop): Update.
6343         (score3_epilogue): Update.
6344         * config/score/score7.c (score7_compute_frame_size): Update.
6345         (score7_prologue): Update.
6346         (score7_epilogue): Update.
6347         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
6348         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
6349         * config/arm/arm.c (use_return_insn): Update.
6350         (require_pic_register): Update.
6351         (arm_load_pic_register): Update.
6352         (arm_compute_save_reg0_reg12_mask): Update.
6353         (arm_compute_save_reg_mask): Update.
6354         (thumb1_compute_save_reg_mask): Update.
6355         (output_return_instruction): Update.
6356         (arm_output_function_prologue): Update.
6357         (arm_output_epilogue): Update.
6358         (arm_get_frame_offsets): Update.
6359         (arm_expand_prologue): Update.
6360         (thumb_pushpop): Update.
6361         (thumb_exit): Update.
6362         (thumb1_expand_prologue): Update.
6363         (thumb1_expand_epilogue): Update.
6364         (arm_unwind_emit): Update.
6365         (arm_output_fn_unwind): Update.
6366         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
6367         * config/arm/arm.md: Update.
6368         * config/pa/pa.md: Update.
6369         * config/pa/pa.c (legitimize_pic_address): Update.
6370         (compute_frame_size): Update.
6371         (hppa_expand_prologue): Update.
6372         (hppa_expand_epilogue): Update.
6373         (borx_reg_operand): Update.
6374         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
6375         (HARD_REGNO_RENAME_OK): Update.
6376         * config/mips/mips.c (mips_global_pointer): Update.
6377         (mips_save_reg_p): Update.
6378         (mips_compute_frame_info): Update.
6379         (mips_frame_pointer_required): Update.
6380         (mips_expand_prologue): Update.
6381         (mips_expand_epilogue): Update.
6382         (mips_can_use_return_insn): Update.
6383         (mips_reorg_process_insns): Update.
6384         * config/v850/v850.c (compute_register_save_size): Update.
6385         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
6386         * config/mmix/mmix.c (along): Update.
6387         (mmix_expand_epilogue): Update.
6388         * config/bfin/bfin.c (legitimize_pic_address): Update.
6389         (must_save_p): Update.
6390         (stack_frame_needed_p): Update.
6391         (add_to_reg): Update.
6392         (bfin_expand_prologue): Update.
6393         * stmt.c (expand_asm_operands): Update.
6394         * reload1.c (reload): Update.
6395         (init_elim_table): Update.
6396
6397 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
6398         
6399         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
6400         
6401 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
6402
6403         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
6404         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
6405         (mov<mode>): Removed.
6406         (*movv4sf_internal): Likewise.
6407         (*movv2df_internal): Likewise.
6408
6409 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
6410
6411         * config.gcc (crx-*-elf): Remove deprecation.
6412
6413 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
6414
6415         * config/i386/cygming-crtend.c (register_frame_ctor): Register
6416         __gcc_deregister_frame with atexit.
6417         (deregister_frame_dtor): Remove.
6418
6419 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
6420             Nathan Sidwell  <nathan@codesourcery.com>
6421
6422         * config/rs6000/rs6000.opt (mspe): Remove Var property.
6423         (misel): Likewise.
6424         * config/rs6000/rs6000.h (rs6000_spe): Declare.
6425         (rs6000_isel): Likewise.
6426         * config/rs6000/rs6000.c (rs6000_spe): New variable.
6427         (rs6000_isel): New variable.
6428         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
6429
6430 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6431
6432         PR c++/35758
6433         * c-common.c (handle_vector_size_attribute): Call
6434         lang_hooks.types.reconstruct_complex_type instead of
6435         reconstruct_complex_type.
6436         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
6437         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
6438         * langhooks.h (struct lang_hooks_for_types): Add
6439         reconstruct_complex_type hook.
6440         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
6441         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
6442
6443 2008-04-24  Richard Guenther  <rguenther@suse.de>
6444
6445         * c-common.h (check_builtin_function_arguments): Declare.
6446         * c-common.c (validate_nargs): New function.
6447         (check_builtin_function_arguments): Likewise.
6448         * c-typeck.c (build_function_call): Call
6449         check_builtin_function_arguments.
6450         * builtins.c (fold_builtin_classify): Remove error reporting code.
6451         (fold_builtin_unordered_cmp): Likewise.
6452         (fold_builtin_1): Likewise.
6453         (fold_builtin_n): Likewise.
6454
6455 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6456
6457         PR tree-optimization/36008
6458         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
6459         the original op1, rather than delta by step.
6460
6461 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
6462             Sebastian Pop  <sebastian.pop@amd.com>
6463
6464         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
6465         eliminate_local_variables_stmt, eliminate_local_variables,
6466         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
6467         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
6468         of code delimited by two edges in the CFG.
6469         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
6470         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
6471         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
6472         the case of parallelisation of reductions.
6473         (expr_invariant_in_region_p): New.
6474
6475         * tree-flow.h (gather_blocks_in_sese_region): Declared.
6476         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
6477
6478 2008-04-24  Ira Rosen  <irar@il.ibm.com>
6479             Richard Guenther  <rguenther@suse.de>
6480
6481         PR tree-optimization/36034
6482         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
6483         incapable of dealing with loads with gaps.
6484
6485 2008-04-24  Rafael Espindola  <espindola@google.com>
6486
6487         * tree-flow.h (vrp_evaluate_conditional): Change signature.
6488         * tree-ssa-propagate.c (fold_predicate_in): Update call to
6489         vrp_evaluate_conditional.
6490         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
6491         (vrp_evaluate_conditional): Split the cond argument.
6492         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
6493         (simplify_stmt_for_jump_threading): Update call to
6494         vrp_evaluate_conditional.
6495
6496 2008-04-24  Ira Rosen  <irar@il.ibm.com>
6497
6498         PR tree-optimization/35982
6499         * tree-vect-analyze.c (vect_check_interleaving): Check that the
6500         interleaved data-refs are of the same type.
6501
6502 2008-04-24  Danny Smith  <dannysmith@users.net>
6503
6504         * c-format.c (check_format_info_main): Use strncmp rather than a
6505         magic prefix to handle multichar length specs.
6506         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
6507         Don't prefix "I64" and "I32" with '\0'.
6508
6509 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
6510
6511         PR target/36015
6512         * config/i386/i386.c (init_cumulative_args): Don't pass anything
6513         in registers for -m32 only if stdarg_p (fntype).
6514
6515 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
6516
6517         PR rtl-optimization/36006
6518         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
6519         temp to op0 in order to avoid invalid rtx sharing.
6520
6521 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
6522
6523         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
6524         check TREE_INVARIANT.
6525         * tree-gimple.c (is_gimple_address): New.
6526         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
6527         * tree-gimple.h (is_gimple_address): New.
6528         * tree.h (decl_address_invariant_p): New.
6529         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
6530         (build_string): Likewise.
6531         (decl_address_invariant_p): New, from is_gimple_invariant_address.
6532         (tree_invariant_p_1): Likewise.
6533         (save_expr): Use it.
6534         (tree_invariant_p): New.
6535         (skip_simple_arithmetic): Use it.
6536         (stabilize_reference_1): Use it.
6537         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
6538         simplify.
6539         (build1_stat): Drop code to compute TREE_INVARIANT.
6540         (build2_stat): Drop code to compute TREE_INVARIANT.
6541         (build3_stat): Drop code to compute TREE_INVARIANT.
6542         (build4_stat): Drop code to compute TREE_INVARIANT.
6543         (build5_stat): Drop code to compute TREE_INVARIANT.
6544         (build7_stat): Drop code to compute TREE_INVARIANT.
6545         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
6546         * tree.h (struct tree_base): Remove invariant_flag.
6547         (TREE_INVARIANT): Remove.
6548         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
6549         (fold_builtin_expect): Check TREE_CONSTANT.
6550         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
6551         * c-tree.h (c_expr_to_decl): Drop third parameter.
6552         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
6553         (build_c_cast): Don't set TREE_INVARIANT.
6554         (pop_init_level): Don't set TREE_INVARIANT.
6555         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
6556         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
6557         TREE_CONSTANT.
6558         (gimplify_init_constructor): Don't set TREE_INVARIANT.
6559         (gimplify_addr_expr): Adjust comment.
6560         * tree-mudflap.c (mf_build_string):
6561         * print-tree.c (print_node): Don't print TREE_INVARIANT.
6562         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
6563         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
6564         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
6565         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
6566         * langhooks.h (struct lang_hooks): Drop third parameter from
6567         expr_to_decl.
6568
6569 2008-04-23  Richard Guenther  <rguenther@suse.de>
6570
6571         PR tree-optimization/27799
6572         PR tree-optimization/32921
6573         PR tree-optimization/32624
6574         * tree-ssa-structalias.c (merge_smts_into): Only merge the
6575         SMTs aliases and the tag itself into the solution.
6576         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
6577         merge the points-to solution back into the SMT aliases.
6578         (may_alias_p): Use alias_set_subset_of instead of
6579         aliases_conflict_p.  A pointer which points to
6580         memory with alias set zero may access any variable.
6581
6582 2008-04-23  Richard Guenther  <rguenther@suse.de>
6583
6584         * alias.c (alias_set_subset_of): Correctly handle asking
6585         if zero is a subset of an alias set with zero child.
6586         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
6587         (compute_flow_insensitive_aliasing): Correctly walk all
6588         pointers.  Do not unnecessarily union sets.
6589
6590 2008-04-23  Richard Guenther  <rguenther@suse.de>
6591
6592         PR middle-end/36021
6593         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
6594
6595 2008-04-22  Tomas Bily  <tbily@suse.cz>
6596
6597         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
6598         unreachable case.
6599         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
6600         NON_LVALUE_EXPR.
6601         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
6602         * tree-ssa-structalias.c (get_constraint_for): Likewise.
6603         * tree-inline.c (estimate_num_insns_1): Likewise.
6604         * varasm.c (const_hash_1, compare_constant, copy_constant)
6605         (compute_reloc_for_constant, output_addressed_constants): Likewise.
6606         * emit-rtl.c (component_ref_for_mem_expr)
6607         (set_mem_attributes_minus_bitpos): Likewise.
6608         * expr.c (highest_pow2_factor, expand_expr_real_1, )
6609         (is_aligning_offset): Likewise.
6610         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
6611         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
6612         * dojump.c (do_jump): Likewise.
6613         * builtins.c (get_pointer_alignment, get_memory_rtx)
6614         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
6615         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
6616
6617 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
6618
6619         PR rtl-optimization/36017
6620         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
6621         expanding the library call.
6622
6623 2008-04-22  Ian Lance Taylor  <iant@google.com>
6624
6625         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
6626         than size_in_bytes.
6627
6628 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
6629
6630         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
6631         of LR/CTR moves for Power6.
6632
6633 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
6634
6635         PR middle-end/36003
6636         * passes.c (init_optimization_passes): Remove
6637         pass_fast_rtl_byte_dce.
6638         
6639 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
6640
6641         PR target/29096
6642         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
6643         builtin functions to generate faster code.
6644         (_mm_cvtpu16_ps): Ditto.
6645         (_mm_cvtpi32x2_ps): Ditto.
6646
6647 2008-04-22  Nick Clifton  <nickc@redhat.com>
6648
6649         * common.opt (ftree-loop-distribution): Add Optimization
6650         attribute.
6651
6652         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
6653         (frv_expand_builtin_va_start): Likewise.
6654
6655         * config/arm/arm.c (thumb_find_work_register): Fix location of
6656         argument register count.
6657
6658 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6659
6660         Support scheduling for ColdFire V1 and V3 microarchitecture.
6661         Improve scheduling of multiplication instructions.
6662
6663         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
6664         (mac): New instruction attribute.
6665         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
6666         (m68k_sched_mac): New variable.
6667         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
6668         Handle cfv1 and cfv3.
6669         (max_insn_size): New static variable.
6670         (struct _sched_ib): New type.
6671         (sched_ib): New static variable.
6672         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
6673         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
6674         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
6675         Update.
6676         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
6677         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
6678         new variables.  Update.
6679         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
6680         Add modeling of cfv3 instruction buffer.  Update.
6681         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
6682         * config/m68k/m68k.h (TUNE_CFV3): New macro.
6683         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
6684         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
6685         a particular reservation applies to.
6686         (type2): Reorganize attribute values.  Rename alu to alu_reg,
6687         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
6688         to mul_l and mul_w.
6689         (cf_ib_*): Simplify description of instruction buffer.
6690         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
6691         (cf_mem): Split into cf_mem1 and cf_mem2.
6692         (cf_v2_move_??): Rename to cfv12_alu_??.
6693         (cf_v2_move_l_??): Rename to cfv12_omove_??.
6694         (cf_v2_mul_??): Remove reservations.
6695         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
6696         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
6697         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
6698         appropriate place.
6699         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
6700         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
6701         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
6702         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
6703         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
6704         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
6705         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
6706         expansions of the above reservations for instructions of sizes
6707         1, 2 and 3 words.
6708
6709 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6710
6711         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
6712
6713 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
6714
6715         * coverage.c: Include tree-pass.h.
6716         (coverage_counter_alloc): Print da_file_name to the dump file.
6717
6718 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
6719
6720         * sbitmap.c (sbitmap_range_empty_p): New function.
6721         * sbitmap.h (sbitmap_range_empty_p): New function.
6722         * bitmap.h: Now includes obstack.h.
6723
6724 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
6725             Kenneth Zadeck  <zadeck@naturalbridge.com>
6726
6727         * dbgcnt.def (ra_byte_scan): Added.
6728         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
6729         when the last hit happens for a counter.  
6730         * timevar.def (TV_DF_BYTE_LR): New variable.
6731         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
6732         * passes.c (pass_fast_rtl_byte_dce): New pass.
6733         * fwprop.c (update_df): Added mode to call df_ref_create.
6734         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6735         DF_REF_EXTRACT_OFFSET.
6736         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
6737         DF_BYTE_LR_OUT, df_byte_lr): New macro.
6738         (df_mm): New enum.
6739         (df_ref_extract): Added mode field.
6740         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
6741         DF_REF_EXTRACT_OFFSET.
6742         (DF_REF_EXTRACT_MODE): New macro.
6743         (df_byte_lr_bb_info): New structure.
6744         (df_print_byte_regset, df_compute_accessed_bytes, 
6745         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
6746         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
6747         df_byte_lr_simulate_uses,
6748         df_byte_lr_simulate_artificial_refs_at_top,
6749         df_byte_lr_simulate_artificial_refs_at_end,
6750         df_compute_accessed_bytes): New function.
6751         (df_ref_create): Add parameter.
6752         (df_byte_lr_get_bb_info): New inline function.
6753         * df-scan.c (df_ref_record, df_uses_record,
6754         df_ref_create_structure): Added mode parameter.
6755         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
6756         df_defs_record, df_uses_record, df_get_conditional_uses,
6757         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
6758         df_entry_block_defs_collect, df_exit_block_uses_collect):
6759         Added mode parameter to calls to df_ref_record, df_uses_record,
6760         df_ref_create_structure.
6761         (df_ref_equal_p, df_ref_compare): Added test for modes.
6762         (df_ref_create_structure): Added code to set mode.  Renamed
6763         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
6764         DF_REF_EXTRACT_OFFSET.
6765         * df-core.c (df_print_byte_regset): New function.
6766         * df-byte-scan.c: New file.
6767         * df-problems.c (df_rd_transfer_function): Removed unnecessary
6768         calls to BITMAP_FREE.  
6769         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
6770         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
6771         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
6772         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
6773         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
6774         df_byte_lr_local_compute, df_byte_lr_init,
6775         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
6776         df_byte_lr_transfer_function, df_byte_lr_free, 
6777         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
6778         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
6779         df_byte_lr_simulate_uses,
6780         df_byte_lr_simulate_artificial_refs_at_top,
6781         df_byte_lr_simulate_artificial_refs_at_end): New function.
6782         * dce.c (byte_dce_process_block): New function.
6783         (dce_process_block): au is now passed in rather than computed
6784         locally.  Changed loops that look at artificial defs to not look
6785         for conditional or partial ones, because there never are any.  
6786         (fast_dce): Now is able to drive byte_dce_process_block or 
6787         dce_process_block depending on the kind of dce being done.
6788         (rest_of_handle_fast_dce): Add parameter to fast_dce.
6789         (rest_of_handle_fast_byte_dce): New function.
6790         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
6791         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
6792
6793 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
6794
6795         PR fortran/35019
6796         * gcc.h: Added fortran options that take arguments to
6797         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
6798         macros.
6799
6800 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
6801
6802         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
6803         scalarization if on the LHS and not a full access.
6804
6805 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6806
6807         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
6808
6809 2008-04-18  Rafael Espindola  <espindola@google.com>
6810
6811         * tree-vrp.c (find_case_label_index): Fix the binary search.
6812         (find_case_label_range): New.
6813         (vrp_visit_switch_stmt): Use find_case_label_range.
6814         (simplify_switch_using_ranges): Use find_case_label_range.
6815
6816 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6817
6818         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
6819         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
6820
6821 2008-04-18  Tom Tromey  <tromey@redhat.com>
6822
6823         PR libcpp/15500:
6824         * doc/cpp.texi (Implementation-defined behavior): Mention
6825         -finput-charset.
6826
6827 2008-04-18  Ian Lance Taylor  <iant@google.com>
6828
6829         * fold-const.c (pointer_may_wrap_p): New static function.
6830         (fold_comparison): Add another test for pointer overflow.  Use
6831         pointer_may_wrap_p to disable some false positives.
6832
6833 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
6834           
6835         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
6836         (fname_as_string): Match updated cpp_interpret_string prototype.
6837         (fix_string_type): Support char16_t* and char32_t*.
6838         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
6839         derivative) nodes.  Register as builtin if C++0x.
6840         (c_parse_error): Support CPP_CHAR{16,32}.
6841         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
6842         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
6843         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
6844         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
6845         CTI_CHAR32_ARRAY_TYPE>: New elements.
6846         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
6847         char32_type_node, signed_char32_type_node, char16_array_type_node,
6848         char32_array_type_node): New defines.
6849         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
6850         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
6851         (lex_string): Support CPP_STRING{16,32}, match updated
6852         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
6853         (lex_charconst): Support CPP_CHAR{16,32}.
6854         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
6855         and CPP_STRING{16,32}.
6856
6857 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
6858
6859         PR bootstrap/35457
6860         * aclocal.m4: Regenerate.
6861         * configure: Regenerate.
6862
6863 2008-04-18  Jan Hubicka  <jh@suse.cz>
6864
6865         * except.c (dw2_size_of_call_site_table,
6866         sjlj_size_of_call_site_table): Use vector API for call_site_record.
6867
6868         * cgraphbuild.c (build_cgraph_edges): Update.
6869         * tree-pass.h: Update comment.
6870         * final.c (leaf_function_p): Update.
6871         (leaf_renumber_regs): Update.
6872         (rest_of_clean_state): Update.
6873         * omp-low.c (expand_omp_parallel): Update.
6874         * ipa-reference.c (analyze_function): Update.
6875         * reorg.c (find_end_label): Update.
6876         (optimize_skip): Update.
6877         (fill_simple_delay_slots): Update.
6878         (fill_simple_delay_slots): Update.
6879         (make_return_insns): Update.
6880         (dbr_schedule): Update.
6881         * gimple-low.c (record_vars_into): Update.
6882         * cfgbuild.c (make_edges): Update.
6883         * function.c (assign_stack_local): Update.
6884         (assign_parm_adjust_stack_rtl): Update.
6885         (locate_and_pad_parm): Update.
6886         (allocate_struct_function): Do not initialize stack_alignment_needed
6887         and preferred_stack_boundary here.
6888         (stack_protect_prologue): Update.
6889         (stack_protect_epilogue): Update.
6890         (expand_function_start): Initialize stack_alignment_needed,
6891         preferred_stack_boundary and max_jumptable_ents.
6892         (expand_function_end): Update.
6893         (free_after_compilation): Do not NULLify epilogue_delay_list.
6894         * function.h (struct rtl_data): Add stack_protect_guard,
6895         stack_alignment_needed,
6896         preferred_stack_boundary, epilogue_delay_list.
6897         (struct function): Remove value_histograms, stack_alignment_needed,
6898         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
6899         last_label_uid,
6900         unexpanded_var_list, stack_protect_guard.
6901         (current_function_epilogue_delay_list): Remove.
6902         * ipa-type-escape.c (analyze_function): Update.
6903         * gimplify.c (pop_gimplify_context): Update comment.
6904         * calls.c (expand_call): Update.
6905         (emit_library_call_value_1): Update.
6906         * except.c (set_nothrow_function_flags): Update.
6907         * cfgexpand.c (get_decl_align_unit): Update.
6908         (create_stack_guard): Update.
6909         (estimated_stack_frame_size): Update.
6910         (expand_used_vars): Update.
6911         (tree_expand_cfg): Free histogram earliers, init expansion variables.
6912         * explow.c (allocate_dynamic_stack_space): Update.
6913         * tree-ssa-live.c (remove_unused_locals): Update.
6914         * varasm.c (mark_constant_pool): Update.
6915         * tree-inline.c (remap_decls): Update.
6916         (initialize_cfun): Update.
6917         (declare_return_variable): Update.
6918         (inline_forbidden_p): Update.
6919         (expand_call_inline): Update.
6920         (declare_inline_vars): Update.
6921         (tree_function_versioning): Update.
6922         * tree-flow.h (value_histograms): New.
6923         (VALUE_HISTOGRAMS): New macro.
6924         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
6925         last_label_uid.
6926         * tree-cfg.c (set_bb_for_stmt): Update.
6927         (replace_by_duplicate_decl): Update.
6928         (move_block_to_fn): Update.
6929         (new_label_mapper): Update.
6930         (dump_function_to_file): Update.
6931         * ipa-struct-reorg.c (build_data_structure): Update.
6932         * cfgrtl.c (print_rtl_with_bb): Update.
6933         * reload1.c (reload): Update.
6934         (reload): Update.
6935         * config/i386/i386.c (setup_incoming_varargs_64,
6936         ix86_compute_frame_layout): Update.
6937         * config/arc/arc.c (arc_output_function_epilogue): Update.
6938
6939 2008-04-18  Marius Strobl <marius@FreeBSD.org>
6940
6941         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
6942         for FreeBSD as well.
6943         * gthr-posix95.h: Likewise.
6944
6945 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
6946
6947         PR rtl-optimization/35838
6948         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
6949         out the byte offset of the first subreg.
6950
6951 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
6952
6953         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
6954         to split_ti instead of three separate calls with single member arrays.
6955         (subti3 splitter): Ditto.
6956         (adddi3 splitter): Ditto with split_di.
6957         (subdi3 splitter): Ditto.
6958         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
6959         two separate calls with single member arrays.  Swap match_dup
6960         operands 1 and 2 to better fit into the array.
6961         (negdi2 splitter): Ditto with split_di.
6962         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
6963         two separate calls with single member arrays.  Swap match_dup operands
6964         6 and 7 to better fit into the array.
6965
6966 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
6967
6968         * config/i386/i386.c (sse_builtin_type): New.
6969         (bdesc_sse_args): Likewise.
6970         (bdesc_sse_3arg): Removed.
6971         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6972         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
6973         IX86_BUILTIN_ROUNDPS.
6974         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
6975         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
6976         IX86_BUILTIN_ROUNDPS.
6977         (ix86_expand_sse_4_operands_builtin): Removed.
6978         (ix86_expand_sse_operands_builtin): New.
6979         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
6980         and CODE_FOR_sse4_1_roundps.
6981         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6982         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
6983
6984 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
6985
6986         PR target/35907
6987         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
6988         regs before frame pop when needed.  If use_backchain_to_restore_sp
6989         then load backchain into a temp reg to restore vr and vrsave.  Add
6990         code to restore vr after frame pop if possible.
6991
6992 2008-04-17  Richard Guenther  <rguenther@suse.de>
6993
6994         * tree-vn.c (expressions_equal_p): Do not check type
6995         equality or compatibility before calling operand_equal_p.
6996         * fold-const.c (operand_equal_p): Check equivalence of
6997         integer constants before bailing out due to signedness or
6998         precision differences.
6999         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
7000         spurious differences in type qualification.  Ignore types
7001         for COMPONENT_REFs at all.
7002
7003 2008-04-17  Christian Bruel  <christian.bruel@st.com>
7004
7005         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
7006         msw_skip comparison.
7007         
7008 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
7009
7010         PR c/35739
7011         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
7012         reg type.
7013
7014         PR tree-optimization/35899
7015         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
7016         rather than TREE_OPERAND.
7017
7018 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
7019
7020         PR target/35944
7021         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
7022         temporary registers.  Change operand predicate to general_operand.
7023         (remainderxf3): Ditto.
7024
7025 2008-04-16  Richard Guenther  <rguenther@suse.de>
7026
7027         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
7028         * tree-affine.c (aff_combination_expand): Look through some
7029         conversions.
7030
7031 2008-04-15  Doug Kwan  <dougkwan@google.com>
7032
7033         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
7034         for hex printing.
7035         * tree-pretty-print.c (dump_generic_node): Ditto.
7036         * final.c (output_addr_const): Ditto.
7037         * dwarf2out.c (output_cfi): Ditto.
7038         * c-pretty-print.c (pp_c_integer_constant): Ditto.
7039         * print-rtl.c (print_rtx): Ditto.
7040         * print-tree.c (print_node_brief, print_node): Ditto.
7041         * c-common.c (match_case_to_enum_1): Ditto.
7042         * sched-vis.c (print_value): Ditto.
7043         * config/i386/i386.c (print_operand): Cast to long unsigned int
7044         for hex printing.
7045
7046 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
7047         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
7048         MS Windows VirtualProtect function.
7049
7050 2008-04-15  Jan Hubicka  <jh@suse.cz>
7051
7052         * gengtype.c (write_root): Param_is argument is OK.
7053         * expr.c (expand_expr_real_1): Update call of get_exception_*.
7054         * function.h: Include varray.h
7055         (rtl_eh): New stucture based on except.c one.
7056         (call_site_record): New forward declaration and vector type.
7057         * calls.c (emit_call_1): Do not call
7058         note_current_region_may_contain_throw.
7059         * except.c (eh_status): Remove cur_region, try_region since they are
7060         unused.
7061         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
7062         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
7063         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
7064         Remove call_site_data_used, call_site_data_size.
7065         Turn call_site_record into vector in function.h.
7066         (note_current_region_may_contain_throw): Remove.
7067         (get_exception_pointer, get_exception_filter): Do not take struct
7068         function argument; update.
7069         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
7070         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
7071         build_post_landing_pads, dw2_build_landing_pads,
7072         sjlj_assign_call_site_values, sjlj_mark_call_sites,
7073         sjlj_emit_function_enter, sjlj_emit_function_enter, 
7074         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
7075         sjlj_build_landing_pads, finish_eh_generation,
7076         remove_exception_handler_label, remove_eh_handler,
7077         maybe_remove_eh_handler, add_reachable_handler,
7078         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
7079         add_action_record, collect_one_action_chain, add_call_site,
7080         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
7081         sjlj_output_call_site_table, output_function_exception_table,
7082         * except.h (note_current_region_may_contain_throw): Remove
7083         (get_exception_pointer, get_exception_filter): Do not take struct
7084         function argument.
7085         * Makefile.in (GTFILES): Put varargs before struct function.
7086
7087 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
7088
7089         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
7090         punt for STRING_CST.
7091         (get_constraint_for): Deal with STRING_CST here instead.
7092
7093 2008-04-15  Richard Guenther  <rguenther@suse.de>
7094
7095         * tree-ssa-propagate.c (substitute_and_fold): Substitute
7096         statements in a basic-block with a backward walk.  Do not
7097         substitute into dead statements but instead remove those.
7098
7099 2008-04-15  Richard Guenther  <rguenther@suse.de>
7100
7101         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
7102         to zero, thus disable creation of SFTs.
7103
7104 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
7105
7106         * tree-predcom.c (suitable_reference_p): Return false if the
7107         reference can throw.
7108
7109 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
7110
7111         PR c/35751
7112         * c-decl.c (finish_decl): If extern or static var has variable
7113         size, set TREE_TYPE (decl) to error_mark_node.
7114
7115 2008-04-15  Rafael Espindola  <espindola@google.com>
7116
7117         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
7118         variable arg1.
7119
7120 2008-04-15  Richard Guenther  <rguenther@suse.de>
7121
7122         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
7123         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
7124         (visit_reference_op_load): Do walk vuse-vdef chains on
7125         vn_reference_lookup.
7126         (visit_reference_op_store): But do not here.
7127         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
7128         vn_reference_lookup.
7129         (vn_lookup_with_vuses): But do so here.
7130
7131 2008-04-14  Ian Lance Taylor  <iant@google.com>
7132
7133         * fold-const.c (fold_overflow_warning): Remove assertion.
7134
7135 2008-04-15  Ben Elliston  <bje@au.ibm.com>
7136
7137         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
7138         temp1 local variables.
7139
7140 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
7141
7142         PR target/35661
7143         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
7144         ".text.unlikely" section as executable.
7145
7146 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
7147
7148         * config/ia64/ia64.c (rtx_needs_barrier): Handle
7149         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
7150         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
7151         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
7152         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
7153         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
7154         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
7155
7156 2008-04-14  Ian Lance Taylor  <iant@google.com>
7157
7158         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
7159         * fold-const.c (fold_comparison): If appropriate, test
7160         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
7161         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
7162         reassociating a pointer type.
7163         * doc/invoke.texi (Optimize Options): Document that
7164         -fstrict-overflow applies to pointer wraparound.
7165
7166 2008-04-13  Jan Hubicka  <jh@suse.cz>
7167
7168         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
7169
7170 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
7171
7172         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
7173         we are going to "save the world".
7174
7175 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
7176
7177         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
7178         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
7179         operand 0 constraint, not "=".
7180
7181 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
7182
7183         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
7184
7185 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
7186
7187         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
7188         of size of positions_needed * CHAR_BIT.
7189
7190 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
7191
7192         PR middle-end/35897
7193         * dse.c (store_info): Change positions_needed to unsigned
7194         HOST_WIDE_INT.
7195         (lowpart_bitmask): New.
7196         (record_store): Cast to unsigned HOST_WIDE_INT for
7197         positions_needed.  Assert width <= size of positions_needed *
7198         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
7199         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
7200         lowpart_bitmask to set mask.
7201
7202 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
7203
7204         * config/bfin/constraints.md: New file.
7205         * config/bfin/bfin.md: Include it.
7206         (adddi3): Use satisfies_constraint functions instead of the old macros.
7207         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
7208         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
7209         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
7210         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
7211         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
7212         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
7213         EXTRA_CONSTRAINT): Delete.
7214         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
7215         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
7216         of the old macros.
7217         * config/bfin/bfin.c: Include "tm-constrs.h".
7218         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
7219         Use satisfies_constraint functions instead of the old macros.
7220         * doc/md.texi (Blackfin Constraints): Update file name reference.
7221
7222 2008-04-11  Richard Guenther  <rguenther@suse.de>
7223
7224         PR tree-optimization/35869
7225         * tree-vrp.c (execute_vrp): Move switch statement update after
7226         jump threading.  Schedule another cfg cleanup run.
7227
7228 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
7229
7230         PR c/35744
7231         * attribs.c (decl_attributes): Return early on errorneous node.
7232
7233 2008-04-10  Oleg Ryjkov  <olegr@google.com>
7234
7235         * tree.h (struct tree_base): Added a new flag default_def_flag.
7236         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
7237
7238 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
7239
7240         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
7241
7242 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7243
7244         PR target/35768
7245         * pa.md: Define mode iterator P.  Define mode attribute dwc.
7246         (dcacheflush): Update pattern to use iterator P and attribute dwc.
7247         (icacheflush): Likewise.
7248         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
7249         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
7250
7251 2008-04-11  Ben Elliston  <bje@au.ibm.com>
7252
7253         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
7254
7255 2008-04-10  Rafael Espindola  <espindola@google.com>
7256
7257         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
7258         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
7259         (extract_range_from_expr): The same.
7260
7261 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
7262
7263         * config/mips/mips.md (GPR2): New mode iterator.
7264         (seq): Add comment.
7265         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
7266         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
7267         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
7268         Rewrite these to take two modes, the mode of comparison and the
7269         mode of the destination.
7270         * config/mips/mips.c (mips_expand_scc): Instead of having
7271         paradoxical subreg as destination, expand "narrowing" scc if mode
7272         of comparison is SI and target is requested in DI mode.
7273         (mips_emit_int_order_test): Update comment.  Make mode of
7274         comparison match CMP0 rather than TARGET.  When creating inverse
7275         target use mode of TARGET.
7276
7277 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
7278
7279         * gcov-dump.c (tag_summary): Only print summaries for the first
7280         GCOV_COUNTERS_SUMMABLE counters.
7281
7282 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
7283
7284         * config/i386/i386.md (absneg): New code iterator.
7285         (absnegprefix): New code attribute.
7286         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
7287         patterns using absneg code iterator.
7288         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
7289         using absneg code iterator.
7290         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
7291         *neg<mode>2 patterns using absneg code iterator.
7292         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
7293         *negextendsfdf2 patterns using absneg code iterator.
7294         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
7295         *negextendsfxf2 patterns using absneg code iterator.
7296         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
7297         *negextendsfdf2 patterns using absneg code iterator.
7298         * config/i386/sse.md (<code><mode>2): Macroize expander from
7299         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
7300
7301 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
7302
7303         * config/s390/s390.h: Remove the remains of the recent search
7304         & replace action of current_function_outgoing_args_size.
7305
7306 2008-04-10  Ira Rosen  <irar@il.ibm.com>
7307
7308         PR tree-optimization/35821
7309         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
7310         NEW_STMT_LIST is not NULL.
7311
7312 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
7313
7314         PR libstdc++/35597
7315         * toplev.c (process_options): Remove -ffunction-sections debugging
7316         warning.
7317
7318 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
7319
7320         PR middle-end/PR28690
7321         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
7322         than gen_rtx_fmt_ee to perform more canonicalizations.
7323
7324 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7325
7326         PR driver/35665
7327         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
7328
7329 2008-04-09  Richard Guenther  <rguenther@suse.de>
7330
7331         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
7332         (dump_function_to_file): Dump function arguments with types.
7333
7334 2008-04-08  Richard Guenther  <rguenther@suse.de>
7335
7336         * fold-const.c (fold_widened_comparison): Do not allow
7337         sign-changes that change the result.
7338
7339 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
7340
7341         PR target/35839
7342         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
7343         kinds of indirect references.
7344
7345 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
7346
7347         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
7348         GNU Fortran language string.
7349
7350 2008-04-08  Rafael Espindola  <espindola@google.com>
7351
7352         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
7353         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
7354         * tree.h (tree_call_nonnegative_warnv_p): New.
7355
7356 2008-04-08  Jan Hubicka  <jh@suse.cz>
7357
7358         * function.c (free_after_compilation): Clear out regno_reg_rtx
7359         pointer.
7360
7361 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
7362
7363         Revert
7364         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7365
7366         PR middle-end/PR28690
7367         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
7368         same precedence as REG_POINTER and MEM_POINTER operands.
7369
7370 2008-04-08  Richard Guenther  <rguenther@suse.de>
7371
7372         PR middle-end/35834
7373         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
7374         for adding index to base.
7375
7376 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
7377
7378         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
7379         (MINGW_ENABLE_EXECUTE_STACK): New.
7380         (IN_LIBGCC2): For libgcc include windows.h file for
7381         function declarations.
7382
7383 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
7384
7385         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
7386         and tem2 if tem1 is not a REG or MULT.
7387
7388 2008-04-08  Jan Hubicka  <jh@suse.cz>
7389
7390         * function.h (incomming_args): Break out of struct function.
7391         (function_subsections): Break out of struct function.
7392         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
7393         return_rtx and hard_reg_initial_vals from struct function.
7394         Kill inl_max_label_num.
7395         (current_function_pops_args, current_function_args_info,
7396         current_function_args_size, current_function_args_size,
7397         current_function_pretend_args_size,
7398         current_function_outgoing_args_size,
7399         current_function_internal_arg_pointer, current_function_return_rtx):
7400         Kill compatibility accestor macros.
7401         * builtins.c (expand_builtin_apply_args_1): Update.
7402         (expand_builtin_next_arg): Update.
7403         * df-scan.c (df_get_call_refs): Update.
7404         * dbxout.c (dbxout_function_end): Update.
7405         * dwarf2out.c (dwarf2out_switch_text_section): Update.
7406         (output_line_info): Update.
7407         (secname_for_decl): Update.
7408         (dwarf2out_var_location): Update.
7409         * function.c (free_after_compilation): Update.
7410         (assign_parm_find_stack_rtl): Update.
7411         (assign_parms): Update.
7412         (expand_dummy_function_end): Update.
7413         (expand_function_end): Update.
7414         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
7415         (expand_call): Update.
7416         (emit_library_call_value_1): Update.
7417         (store_one_arg): Update.
7418         * varasm.c (initialize_cold_section_name): Update.
7419         (unlikely_text_section): Update.
7420         (unlikely_text_section_p): Update.
7421         (assemble_start_function): Update.
7422         (assemble_end_function): Update.
7423         (default_section_type_flags): Update.
7424         (switch_to_section): Update.
7425         * integrate.c (set_decl_abstract_flags): Update.
7426         (get_hard_reg_initial_val): Update.
7427         (has_hard_reg_initial_val): Update.
7428         (allocate_initial_values): Update.
7429         * resource.c (init_resource_info): Update.
7430         * config/alpha/alpha.c (NUM_ARGS): Update.
7431         (direct_return): Update.
7432         (alpha_va_start): Update.
7433         (alpha_sa_size): Update.
7434         (alpha_initial_elimination_offset): Update.
7435         (alpha_expand_prologue): Update.
7436         (alpha_start_function): Update.
7437         (alpha_expand_epilogue): Update.
7438         (unicosmk_initial_elimination_offset):
7439         * config/alpha/alpha.md (call expander): Update.
7440         * config/s390/s390.c (s390_register_info): Update.
7441         (s390_register_info): Update.
7442         (s390_frame_info): Update.
7443         (s390_initial_elimination_offset): Update.
7444         (s390_build_builtin_va_list): Update.
7445         (s390_va_start): Update.
7446         * config/spu/spu.c (direct_return): Update.
7447         (spu_expand_prologue): Update.
7448         (spu_initial_elimination_offset): Update.
7449         (spu_build_builtin_va_list): Update.
7450         (spu_va_start): Update.
7451         * config/sparc/sparc.c (sparc_init_modes): Update.
7452         (sparc_compute_frame_size): Update.
7453         (function_value): Update.
7454         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
7455         * config/i386/i386.md (return expander): Update.
7456         * config/i386/i386.c (ix86_va_start): Update.
7457         (ix86_can_use_return_insn_p): Update.
7458         (ix86_compute_frame_layout): Update.
7459         (ix86_expand_epilogue): Update.
7460         * config/sh/sh.c (output_stack_adjust): Update.
7461         (calc_live_regs): Update.
7462         (sh_expand_prologue): Update.
7463         (sh_builtin_saveregs): Update.
7464         (sh_va_start): Update.
7465         (initial_elimination_offset): Update.
7466         (sh_allocate_initial_value): Update.
7467         (sh_function_ok_for_sibcall): Update.
7468         (sh_get_pr_initial_val): Update.
7469         * config/sh/sh.md (return expander): Update.
7470         * config/avr/avr.c (frame_pointer_required_p): UPdate.
7471         * config/crx/crx.c (crx_compute_frame): UPdate.
7472         (crx_initial_elimination_offset): UPdate.
7473         * config/xtensa/xtensa.c (compute_frame_size): Update
7474         (xtensa_builtin_saveregs): Update.
7475         (xtensa_va_start): Update.
7476         (order_regs_for_local_alloc): Update.
7477         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
7478         (xstormy16_expand_builtin_va_start): Update.
7479         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
7480         * config/m68hc11/m68hc11.md (return expanders): Update.
7481         * config/m68hc11/m68hc11.c (expand_prologue): Update.
7482         (expand_epilogue): Update.
7483         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
7484         (cris_simple_epilogue): Update.
7485         (cris_expand_prologue): Update.
7486         (cris_expand_epilogue): Update.
7487         * config/iq2000/iq2000.c (iq2000_va_start): Update.
7488         (compute_frame_size): Update.
7489         * config/mt/mt.c (mt_compute_frame_size): Update.
7490         * config/mn10300/mn10300.c (expand_prologue): Update.
7491         (expand_epilogue): Update.
7492         (initial_offset): Update.
7493         (mn10300_builtin_saveregs):
7494         * config/mn10300/mn10300.md (return expander): Update.
7495         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
7496         (ia64_initial_elimination_offset): Update.
7497         (ia64_initial_elimination_offset): Update.
7498         (ia64_expand_prologue): Update.
7499         * config/m68k/m68k.md (return expander): Update.
7500         * config/rs6000/rs6000.c (rs6000_va_start): Update.
7501         (rs6000_stack_info): Update.
7502         * config/mcore/mcore.c (layout_mcore_frame): Update.
7503         (mcore_expand_prolog): Update.
7504         * config/arc/arc.c (arc_compute_frame_size): Update.
7505         * config/score/score3.c (score3_compute_frame_size): Update.
7506         * config/score/score7.c (score7_compute_frame_size): Update.
7507         * config/arm/arm.c (use_return_insn): Update.
7508         (thumb_find_work_register): Update.
7509         (arm_compute_save_reg_mask): Update.
7510         (arm_output_function_prologue): Update.
7511         (arm_output_epilogue): Update.
7512         (arm_size_return_regs): Update.
7513         (arm_get_frame_offsets): Update.
7514         (arm_expand_prologue): Update.
7515         (thumb_exit): Update.
7516         (thumb_unexpanded_epilogue): Update.
7517         (thumb1_output_function_prologue): Update.
7518         * config/pa/pa.md (return expander): Update.
7519         * config/pa/pa.c (compute_frame_size): Update.
7520         (hppa_builtin_saveregs): Update.
7521         * config/mips/mips.c (mips_va_start): Update.
7522         (mips16_build_function_stub): Update.
7523         (mips_compute_frame_info): Update.
7524         (mips_restore_gp): Update.
7525         (mips_output_function_prologue): Update.
7526         (mips_expand_prologue): Update.
7527         * config/v850/v850.c (compute_frame_size): Update.
7528         (expand_prologue): * config/mmix/mmix.c (along): update.
7529         (mmix_initial_elimination_offset): update.
7530         (mmix_reorg): update.
7531         (mmix_use_simple_return): update.
7532         (mmix_expand_prologue): update.
7533         (mmix_expand_epilogue): Update.
7534         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
7535         (emit_link_insn): Update.
7536
7537 2008-04-08  Anatoly Sokolov <aesok@post.ru>
7538
7539         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
7540         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
7541         instructions.
7542         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
7543         atmega103 device.
7544
7545 2008-04-07  Jan Hubicka  <jh@suse.cz>
7546
7547         * function.h (rtl): Rename to x_rtl.
7548         (crtl): New define.
7549         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7550         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7551         used_temp_slots avail_temp_slots, temp_slot_level,
7552         nonlocal_goto_handler_labels): Update accesstors.
7553         (rtl): New global variable.
7554         (struct function): Move some fileds to rtl_data.
7555         (get_arg_pointer_save_area): Update prototype.
7556         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7557         get_arg_pointer_save_area.
7558         * expr.c (init_expr): Update
7559         * function.c (get_frame_size): Update
7560         (assign_stack_local): Update
7561         (expand_function_end): Update.
7562         (get_art_pointer_save_area): Update
7563         * function.h 
7564         * emit-rtl.c (rtl): Declare.
7565         (regno_reg_rtx): Declare.
7566         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7567         Update.
7568         (gen_reg_rtx): Update.
7569         * varasm.c (n_deferred_constatns): Update accestor.
7570         (init_varasm_status): Do not allocate varasm_status.
7571         (force_const_mem, get_pool_size, output_constant_pool): Update.
7572         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7573         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7574         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
7575         * sparc/sparc.h (INIT_EXPANDERS): Update.
7576         * ia64/ia64.h (INIT_EXPANDERS): Update.
7577
7578 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
7579
7580         * reload.c (push_secondary_reload): Add missing break to for loop.
7581
7582 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
7583
7584         PR middle-end/PR28690
7585         * rtlanal.c: Update copyright years.
7586         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
7587         as REG_POINTER and MEM_POINTER operands.
7588         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
7589         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
7590         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
7591         * gcse.c: Update copyright years.
7592         (pre_delete): Call gen_reg_rtx_and_attrs.
7593         (hoist_code): Likewise.
7594         (build_store_vectors): Likewise.
7595         (delete_store): Likewise.
7596         * loop-invariant.c (move_invariant_reg): Likewise.
7597         Update copyright years.
7598
7599 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
7600
7601         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
7602         control string instead of quoted.
7603
7604 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
7605
7606         * doc/rtl.texi: Rewrite of subreg section.
7607
7608 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
7609
7610         PR/35842
7611         * config/i386/i386.c (legitimize_pic_address): Add treating
7612         of dllimport SYM_REF's.
7613         (legitimize_dllimport_symbol): Add prototype.
7614
7615 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7616
7617         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
7618         reference in constructor with non self-referential type.
7619
7620 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7621
7622         Removal of Return with Depressed Stack Pointer support
7623         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
7624         (ECF_SP_DEPRESSED): Likewise.
7625         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
7626         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
7627         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7628         (expand_call): Do not test ECF_SP_DEPRESSED.
7629         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7630         * function.c (keep_stack_depressed): Delete.
7631         (handle_epilogue_set): Likewise.
7632         (update_epilogue_consts): Likewise.
7633         (emit_equiv_load): Likewise.
7634         (thread_prologue_and_epilogue_insns): Remove support for Return with
7635         Depressed Stack Pointer.
7636         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
7637
7638 2008-04-06  Richard Guenther  <rguenther@suse.de>
7639
7640         PR tree-optimization/35400
7641         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
7642         information from SSA_NAMEs.
7643
7644 2008-04-06  Anatoly Sokolov <aesok@post.ru>
7645
7646         * config/avr/avr.h (avr_mega_p): Remove declaration.
7647         (AVR_MEGA): Remove macro.
7648         * config/avr/avr.c (avr_mega_p): Remove variable.
7649         (avr_override_options): Remove inicializion of avr_mega_p.
7650         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7651         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
7652         (avr_jump_mode): (Ditto.).
7653         (avr_output_progmem_section_asm_op): (Ditto.).
7654         (avr_asm_init_sections): (Ditto.).
7655         (avr_asm_init_sections): (Ditto.).
7656         (avr_rtx_costs): (Ditto.).
7657         * config/avr/avr.md: (Ditto.).
7658         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
7659         '__AVR_MEGA__'.
7660
7661 2008-04-06  Richard Guenther  <rguenther@suse.de>
7662
7663         PR tree-optimization/35842
7664         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
7665         is_gimple_invariant_address.
7666
7667 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7668
7669         * gcc.c (default_compilers): Sync Fortran extensions list with
7670         that in fortran/lang-specs.h.
7671         * doc/invoke.texi: Likewise.
7672         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
7673         * dwarf2out.c (gen_compile_unit_die): Likewise.
7674
7675 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
7676
7677         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
7678
7679 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
7680
7681         PR target/12329
7682         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
7683         attribute is used for nested functions.
7684
7685 2008-04-05  Jan Hubicka  <jh@suse.cz>
7686
7687         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
7688
7689         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
7690         letter argument.
7691         (dump_files): Update.
7692         (enable_rtl_dump_file): Do not accept letter argument.
7693         * tree-pass.h (dump_file_info): Remove letter argument.
7694         * toplev.c (decode_d_option): Update -da handling.
7695         * toplev.h (enable_rtl_dump_file): Update prototype.
7696         * passes.c (register_one_dump_file): Do not accept IPA argument; work
7697         it out based on pass type.
7698         (register_dump_files_1): Likewise.
7699         (init_optimization_passes): Update register_one_dump_file calls.
7700         (execute_one_pass): Sanity check that IPA passes are called at IPA
7701         level and RTL passes at RTL level.
7702         (execute_pass_list): IPA pass can not be after or subpass of
7703         GIMPLE/RTL pass.
7704         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
7705         disallov RTL subpasses of IPA subpasses.
7706
7707 2008-04-05  Ben Elliston  <bje@au.ibm.com>
7708
7709         * tree-cfg.c (need_fake_edge_p): Return false for calls to
7710         builtins that return exactly once and do not throw. Cache call to
7711         call_expr_flags.
7712
7713 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
7714
7715         PR rtl-optimization/34916
7716         PR middle-end/35519
7717         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
7718         between instruction pairs.
7719
7720 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
7721
7722         * doc/invoke.texi: Document -mbitops for SH.
7723         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
7724         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
7725         * config/sh/sh.c (print_operand): Add %t operand code.
7726         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
7727         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
7728         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
7729         (extendqihi2): Likewise.
7730         (movqi_i): Likewise.
7731         (insv): Use bset, bclr and bst instructions for SH2A if possible.
7732         (extv): Use bld instruction for SH2A if possible.
7733         (extzv): Likewise.
7734         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
7735         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
7736         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
7737         (bset.b, bclr.b): Define peepholes.
7738         * config/sh/sh.opt (mbitops): New option.
7739
7740 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
7741
7742         PR target/35620
7743         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
7744         and view convert expression.
7745
7746 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7747
7748         PR target/35364
7749         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
7750
7751 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
7752
7753         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
7754
7755         * config/i386/cpuid.h (bit_AES): New.
7756         (bit_PCLMUL): Likewise.
7757
7758         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
7759         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
7760         SSE2 if AES or PCLMUL is enabled.
7761         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
7762         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7763         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
7764         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
7765         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
7766         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
7767         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
7768         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
7769         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
7770         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
7771         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
7772         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
7773         __builtin_ia32_aeskeygenassist128 and
7774         __builtin_ia32_pclmulqdq128.
7775         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
7776         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
7777         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
7778
7779         * config/i386/i386.h (TARGET_AES): New.
7780         (TARGET_PCLMUL): Likewise.
7781         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
7782
7783         * config/i386/i386.md (UNSPEC_AESENC): New.
7784         (UNSPEC_AESENCLAST): Likewise.
7785         (UNSPEC_AESDEC): Likewise.
7786         (UNSPEC_AESDECLAST): Likewise.
7787         (UNSPEC_AESIMC): Likewise.
7788         (UNSPEC_AESKEYGENASSIST): Likewise.
7789         (UNSPEC_PCLMUL): Likewise.
7790
7791         * config/i386/i386.opt (maes): New.
7792         (mpclmul): Likewise.
7793
7794         * config/i386/sse.md (aesenc): New pattern.
7795         (aesenclast): Likewise.
7796         (aesdec): Likewise.
7797         (aesdeclast): Likewise.
7798         (aesimc): Likewise.
7799         (aeskeygenassist): Likewise.
7800         (pclmulqdq): Likewise.
7801
7802         * config/i386/wmmintrin.h: New.
7803
7804         * doc/extend.texi: Document AES and PCLMUL built-in function.
7805
7806         * doc/invoke.texi: Document -maes and -mpclmul.
7807
7808 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
7809
7810         * function.c (free_after_parsing): Replace with
7811         cxx_push_function_context from C++ front-end.
7812         (allocate_struct_function): Don't call langhook.
7813         * langhooks.h (struct lang_hooks_for_functions): Delete.
7814         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
7815         member "function".
7816         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
7817         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
7818         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
7819         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
7820         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
7821         remove LANG_HOOKS_FUNCTION_INITIALIZER.
7822         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
7823
7824         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
7825         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
7826         
7827 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
7828
7829         PR c/35440
7830         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
7831         for all types.
7832
7833 2008-04-04  Richard Guenther  <rguenther@suse.de>
7834
7835         PR middle-end/35823
7836         * fold-const.c (optimize_minmax_comparison): Use the correct
7837         type for the constant in the simplified comparison.
7838
7839 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
7840
7841         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
7842         Pass L2 size as "--param l2-cache-size" to the compiler.
7843         (decode_l2_cache): New function to decode L2 cache parameters using
7844         0x8000006 extended cpuid function.
7845         (detect_caches_amd): Determine parameters of L2 cache using
7846         decode_l2_caches function.
7847         (decode_caches_intel): Decode L2 cache parameters.
7848         (detect_caches_intel): Determine L2 cache parameters using
7849         decode_caches_intel and decode_l2_caches functions.
7850
7851 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
7852
7853         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
7854         secondary input reload for subword loads from the constant pool.
7855
7856 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
7857
7858         PR target/35713
7859         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
7860           constants of the appropriate size for runtime calculations.
7861
7862         PR c/35712
7863         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
7864           decimal-float literal constant zero.
7865
7866 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
7867
7868         PR c/35738
7869         * c-parser.c (c_parser_omp_atomic): Call
7870         default_function_array_conversion on the RHS.
7871
7872         PR middle-end/35818
7873         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
7874         call is_variable_sized if decl has incomplete type.
7875
7876 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
7877
7878         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
7879
7880 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
7881
7882         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
7883         iterators.
7884         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
7885         (sgt<u>): Merge sgt and sgtu into new expander.
7886         (sgt, sgtu): Remove expanders.
7887         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
7888         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
7889         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
7890         *sgtu_<mode>_mips16 into new pattern.
7891         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
7892         (sge<u>): Merge sge and sgeu into new expander.
7893         (sge, sgeu): Remove expanders.
7894         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
7895         new pattern.
7896         (*sge_<mode>, second *sge_<mode>): Remove patterns.
7897         (slt<u>): Merge slt and sltu into new expander.
7898         (slt, sltu): Remove expanders.
7899         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
7900         (*slt_<mode>, *sltu_<mode>): Remove patterns.
7901         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
7902         *sltu_<mode>_mips16 into new pattern.
7903         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
7904         (sle<u>): Merge sle and sleu into new expander.
7905         (sle, sleu): Remove expanders.
7906         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
7907         (*sle_<mode>, *sleu_<mode>): Remove patterns.
7908         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
7909         *sleu_<mode>_mips16 into new pattern.
7910         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
7911
7912 2008-04-03  Jan Hubicka  <jh@suse.cz>
7913
7914         PR tree-optimization/35795
7915         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
7916         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
7917         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
7918         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
7919         * score/score3.c (score3_output_mi_thunk): Likewise.
7920         * score/score7.c (score7_output_mi_thunk): Likewise.
7921         * mips/mips.c (mips_output_mi_thunk): Likewise.
7922
7923 2008-04-03  Richard Guenther  <rguenther@suse.de>
7924
7925         * tree-vrp.c (extract_range_from_unary_expr): Handle all
7926         conversions.  Simplify code.
7927
7928 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
7929
7930         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
7931
7932 2008-04-03  Tom Tromey  <tromey@redhat.com>
7933             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7934
7935         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7936         * config/bfin/t-bfin-linux (generated_files): Add
7937         linux-sysroot-suffix.h.
7938         * doc/install.texi (Prerequisites): Require make 3.80.
7939         * doc/sourcebuild.texi (Front End Directory): Document new
7940         variable.
7941         * Makefile.in (generated_files): New variable.
7942         (ALL_HOST_OBJS): New variable.
7943         ($(ALL_HOST_OBJS)): New target.
7944
7945 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7946
7947         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
7948         (remap_block): Call id->transform_lang_insert_block instead
7949         of langhook.
7950         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
7951         Set id.transform_lang_insert_block to NULL.
7952         (clone_body): Move to cp/optimize.c
7953         * tree-inline.h (struct copy_body_data): Change
7954         transform_lang_insert_block to function pointer.
7955         (copy_generic_body, copy_decl_no_change): Export.
7956         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
7957         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
7958         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
7959
7960         * c-tree.h (insert_block): Kill.
7961         * c-decl.c (insert_block): Kill.
7962
7963 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7964
7965         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7966         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7967         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
7968         argument.
7969         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
7970         argument, call {push,pop}_function_context from here.
7971         * c-parser.c: Use c_{push,pop}_function_context.
7972
7973         * function.c (push_function_context_to): Move meat ...
7974         (push_function_context): ... here.  Simplify.
7975         * function.c (pop_function_context_from): Move meat ...
7976         (pop_function_context): ... here.  Simplify.
7977         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
7978         leave_nested).
7979         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7980         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7981         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
7982         * tree.h (push_function_context_to, pop_function_context_from): Remove.
7983
7984 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7985
7986         * expmed.c (extract_force_align_mem_bit_field): Remove.
7987
7988 2008-04-03  Richard Guenther  <rguenther@suse.de>
7989
7990         PR middle-end/35800
7991         * expr.h (try_casesi): Adjust prototype.
7992         * expr.c (try_casesi): Take fallback label as extra parameter.
7993         Use that for gen_casesi if default_label is NULL.
7994         * stmt.c (expand_case): Pass fallback label to try_casesi,
7995         make sure to fill gaps with a fallback label if default_label
7996         is not present.
7997
7998 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
7999
8000         PR target/35801
8001         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
8002
8003 2008-04-03  Ben Elliston  <bje@au.ibm.com>
8004
8005         * expmed.c (extract_split_bit_field): Remove if (0) code.
8006         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
8007         (do_ds_constraint): Likewise.
8008
8009 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
8010
8011         * doc/cppopts.texi (-dU): Document.
8012         * c-common.h (flag_dump_macros): Update comment.
8013         * c-opts.c (handle_OPT_d): Handle -dU.
8014         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
8015         dump_queued_macros, cb_used_define, cb_used_undef): New.
8016         (init_pp_output): Handle -dU.
8017         (cb_line_change): Call dump_queued_macros.
8018         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
8019
8020 2008-04-02  Anatoly Sokolov <aesok@post.ru>
8021
8022         * config/avr/predicates.md (io_address_operand): New predicate. 
8023         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
8024         * config/avr/avr.c (avr_io_address_p): Remove function.
8025         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
8026         'avr_io_address_p' function.
8027         (out_movhi_r_mr): (Ditto.).
8028         (out_movqi_mr_r): (Ditto.).
8029         (out_movhi_mr_r): (Ditto.).
8030         (avr_address_cost): (Ditto.).
8031
8032 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
8033
8034         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
8035         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
8036         in 32bit mode when XMM registers are available to avoid store
8037         forwarding stalls.
8038         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
8039         corresponding post-reload splitters.
8040
8041 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
8042
8043         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
8044         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
8045         __builtin_ia32_roundss.
8046         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
8047         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
8048         __builtin_ia32_roundss.
8049         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
8050         IX86_BUILTIN_SHUFPD here.
8051
8052 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
8053
8054         * config/i386/i386.md (plogic): New.
8055         (plogicprefix): Likewise.
8056
8057         * config/i386/mmx.md (mmx_<code><mode>3): New.
8058         (mmx_and<mode>3): Removed.
8059         (mmx_ior<mode>3): Likewise.
8060         (mmx_xor<mode>3): Likewise.
8061
8062         * config/i386/sse.md (<code><mode>3): New.
8063         (*<code><mode>3): Likewise.
8064         (*<code><mode>3): Likewise.
8065         (<code><mode>3): Likewise.
8066         (*sse_<code><mode>3): Likewise.
8067         (*sse2_<code><mode>3): Likewise.
8068         (<code>tf3): Likewise.
8069         (*<code>tf3): Likewise.
8070         (and<mode>3): Likewise.
8071         (*and<mode>3): Likewise.
8072         (ior<mode>3): Removed.
8073         (*ior<mode>3): Likewise.
8074         (xor<mode>3): Likewise.
8075         (*xor<mode>3): Likewise.
8076         (*and<mode>3): Likewise.
8077         (*ior<mode>3): Likewise.
8078         (*xor<mode>3): Likewise.
8079         (and<mode>3): Likewise.
8080         (*sse_and<mode>3): Likewise.
8081         (*sse2_and<mode>3): Likewise.
8082         (andtf3): Likewise.
8083         (*andtf3): Likewise.
8084         (ior<mode>3): Likewise.
8085         (*sse_ior<mode>3): Likewise.
8086         (*sse2_ior<mode>3): Likewise.
8087         (iortf3): Likewise.
8088         (*iortf3): Likewise.
8089         (xor<mode>3): Likewise.
8090         (*sse_xor<mode>3): Likewise.
8091         (*sse2_xor<mode>3): Likewise.
8092         (xortf3): Likewise.
8093         (*xortf3): Likewise.
8094
8095 2008-04-02  Richard Guenther  <rguenther@suse.de>
8096
8097         PR tree-optimization/14495
8098         PR tree-optimization/34793
8099         * tree-vrp.c (struct switch_update): New structure.
8100         (to_remove_edges, to_update_switch_stmts): New VECs.
8101         (simplify_switch_using_ranges): New function.  Remove not taken
8102         case labels and edges.
8103         (simplify_stmt_using_ranges): Call it.
8104         (identify_jump_threads): Mark edges we have queued for removal
8105         so we don't thread them.
8106         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
8107         case label vector.
8108         * tree-cfg.c (group_case_labels): Deal with missing default label.
8109         (tree_verify_flow_info): Allow missing default label.
8110         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
8111         (emit_case_nodes): Likewise.
8112         (expand_case): Do not rely on the default label to be present.
8113         * expr.c (try_casesi): Deal with NULL default_label.
8114         (do_tablejump): Likewise.
8115
8116 2008-04-02  Richard Guenther  <rguenther@suse.de>
8117
8118         PR tree-optimization/14495
8119         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
8120         SWITCH_EXPR here ...
8121         (vrp_visit_switch_stmt): ... but here (new function).
8122         (find_case_label_index): New helper function.
8123         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
8124
8125 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8126
8127         * fwprop.c: Fix ISO-C99ism.
8128
8129 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8130
8131         PR bootstrap/35752
8132         * Makefile.in (objdir): Set it here.
8133         * configure.ac: Not here.  Find dynamic linker characteristics.
8134         * exec-tool.in: Use them.
8135         * aclocal.m4: Regenerate.
8136         * configure: Regenerate.
8137
8138 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8139
8140         * expr.c (expand_var): Delete it.
8141         * expr.h (expand_var): Delete prototype.
8142         * function.c (expand_function_start): Use expand_decl instead.
8143         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
8144         langhook.
8145
8146 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
8147
8148         PR rtl-optimization/35542
8149         * fwprop.c (forward_propagate_and_simplify): Replace
8150         loc_reg_mentioned_in_p with reg_mentioned_p.
8151
8152 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
8153
8154         PR rtl-optimization/35281
8155         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
8156         (propagate_rtx_1): Handle PR_HANDLE_MEM.
8157         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
8158         (varying_mem_p): Move above propagate_rtx.
8159         (all_uses_available_at): Do not check MEMs.
8160
8161 2008-04-02  Rafael Espindola  <espindola@google.com>
8162
8163         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
8164         (register_edge_assert_for_2): Split the cond argument.
8165         (register_edge_assert_for_1): Adjust for the change in
8166         register_edge_assert_for_2.
8167         (register_edge_assert_for): Split the cond argument.
8168         (find_switch_asserts): Adjust for the change in
8169         register_edge_assert_for.
8170
8171 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
8172
8173         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
8174         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
8175         offsets for 64-bit mingw.
8176         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
8177         abi for x86_64-pc-mingw.
8178
8179 2008-04-02  Richard Guenther  <rguenther@suse.de>
8180
8181         * tree-vrp.c (extract_range_from_assert): Make sure to not
8182         produce range min/max with TREE_OVERFOW set.
8183         If merging a anti-range and a range keep the anti-range if
8184         the range covers all values of the type.
8185         (register_edge_assert_for_2): Only allow sign-changing
8186         conversions in detecting canonical range checks.  Also
8187         register an assert for the unsigned name if useful.
8188
8189         PR tree-optimization/35787
8190         * tree-vrp.c (vrp_val_max): New function.
8191         (vrp_val_min): Likewise.
8192         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
8193         (vrp_val_is_min): Likewise.
8194         (supports_overflow_infinity): Use vrp_val_{min,max}.
8195         (negative_overflow_infinity): Likewise.
8196         (positive_overflow_infinity): Likewise.
8197         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
8198         (is_positive_overflow_infinity): Likewise.
8199         (is_overflow_infinity): Likewise.
8200         (avoid_overflow_infinity): Use vrp_val_{min,max} and
8201         vrp_val_is_{min,max}.
8202         (set_and_canonicalize_value_range): Canonicalize anti-ranges
8203         to ranges if possible.  Avoid empty ranges.
8204
8205 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8206
8207         PR middle-end/35705
8208         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
8209         the expression is a function address.
8210
8211 2008-04-01  George Helffrich  <george@gcc.gnu.org>
8212
8213         PR fortran/35154, fortran/23057
8214         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
8215         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
8216         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
8217         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
8218         in common.
8219         (dbxout_syms): Check for COMMON-based symbol and wrap in
8220         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
8221         in bracket for efficiency.
8222
8223         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
8224         using DW_TAG_common_block + member offset.
8225         (add_pubname_string): New function.
8226         (dw_expand_expr): New function to find block name and offset for
8227         COMMON var.
8228         (common_check): New function to check whether symbol in Fortran COMMON.
8229         (gen_variable_die): If COMMON, use DW_TAG_common_block.
8230
8231 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
8232
8233         PR c/35436
8234         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
8235
8236 2008-04-02  Ben Elliston  <bje@au.ibm.com>
8237
8238         * config/v850/v850.md (casesi): Remove if (0) code.
8239         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8240         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
8241
8242 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
8243
8244         * config/i386/i386.md (rex64suffix): New mode attribute.
8245         (floathi<mode>2): Disable expander for SSE math.
8246         (*floathi<mode>2_1): New insn insn_and_split pattern.
8247         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
8248         corresponding post-reload splitters.
8249         (*floathi<mode>2_i387): New macroized insn pattern.
8250         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
8251         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
8252         insn_and_split pattern.
8253         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
8254         New macroized instruction patterns and corresponding post-reload
8255         splitters.
8256         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
8257         and corresponding post-reload splitters.
8258         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
8259         New macroized instruction patterns.
8260         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
8261         macroized instruction patterns and corresponding post-reload splitters.
8262         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
8263         corresponding post-reload splitters.
8264         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
8265         New macroized instruction patterns.
8266         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
8267         corresponding post-reload splitters.
8268         (*floatsi<mode>2_i387): New macroized instruction patterns.
8269
8270 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
8271
8272         * config/i386/i386.md (smaxmin): New.
8273         (umaxmin): Likewise.
8274         (maxminiprefix): Likewise.
8275         (maxminfprefix): Likewise.
8276         (<code><mode>3): Likewise.
8277         (smin<mode>3): Removed.
8278         (smax<mode>3): Likewise.
8279
8280         * config/i386/mmx.md (mmx_<code>v2sf3): New.
8281         (mmx_<code>v4hi3): Likewise.
8282         (mmx_<code>v8qi3): Likewise.
8283         (mmx_smaxv2sf3): Removed.
8284         (mmx_sminv2sf3): Likewise.
8285         (mmx_umaxv8qi3): Likewise.
8286         (mmx_smaxv4hi3): Likewise.
8287         (mmx_uminv8qi3): Likewise.
8288         (mmx_sminv4hi3): Likewise.
8289
8290         * config/i386/sse.md (<addsub><mode>3): New.
8291         (*<addsub><mode>3): Likewise.
8292         (<sse>_vm<addsub><mode>3): Likewise.
8293         (<maxmin><mode>3): Likewise.
8294         (*<maxmin><mode>3_finite): Likewise.
8295         (*<maxmin><mode>3): Likewise.
8296         (<sse>_vm<maxmin><mode>3): Likewise.
8297         (sse3_h<addsub>v4sf3): Likewise.
8298         (sse3_h<addsub>v2df3): Likewise.
8299         (<maxmin>v16qi3): Likewise.
8300         (*<maxmin>v16qi3): Likewise.
8301         (<maxmin>v8hi3): Likewise.
8302         (*<maxmin>v8hi3): Likewise.
8303         (*sse4_1_<maxmin><mode>3): Likewise.
8304         (*sse4_1_<maxmin><mode>3): Likewise.
8305         (add<mode>3): Removed.
8306         (*add<mode>3): Likewise.
8307         (<sse>_vmadd<mode>3): Likewise.
8308         (sub<mode>3): Likewise.
8309         (*sub<mode>3): Likewise.
8310         (<sse>_vmsub<mode>3): Likewise.
8311         (smin<mode>3): Likewise.
8312         (*smin<mode>3_finite): Likewise.
8313         (*smin<mode>3): Likewise.
8314         (<sse>_vmsmin<mode>3): Likewise.
8315         (smax<mode>3): Likewise.
8316         (*smax<mode>3_finite): Likewise.
8317         (*smax<mode>3): Likewise.
8318         (<sse>_vmsmax<mode>3): Likewise.
8319         (sse3_haddv4sf3): Likewise.
8320         (sse3_haddv2df3): Likewise.
8321         (sse3_hsubv4sf3): Likewise.
8322         (sse3_hsubv2df3): Likewise.
8323         (umaxv16qi3): Likewise.
8324         (*umaxv16qi3): Likewise.
8325         (smaxv8hi3): Likewise.
8326         (*smaxv8hi3): Likewise.
8327         (*sse4_1_smax<mode>3): Likewise.
8328         (*sse4_1_umax<mode>3): Likewise.
8329         (uminv16qi3): Likewise.
8330         (*uminv16qi3): Likewise.
8331         (sminv8hi3): Likewise.
8332         (*sminv8hi3): Likewise.
8333         (*sse4_1_smin<mode>3): Likewise.
8334         (*sse4_1_umin<mode>3): Likewise.
8335
8336 2008-04-01  Rafael Espindola  <espindola@google.com>
8337
8338         * tree-cfg.c (verify_expr): remove in_phi.
8339         (verify_stmt): Don't call walk_tree with verify_expr. Use
8340         is_gimple_min_invariant instead of is_gimple_val.
8341
8342 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
8343
8344         * doc/include/gpl_v3.texi: Update for manpage generation.
8345         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
8346         gpl.texi.
8347         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
8348         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
8349         gpl_v3.texi instead of gpl.texi.
8350         (gpl.pod): New.
8351
8352 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
8353
8354         PR pch/13675
8355         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
8356
8357 2008-04-01  Rafael Espindola  <espindola@google.com>
8358
8359         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
8360         (extract_code_and_val_from_cond): Use
8361         extract_code_and_val_from_cond_with_ops.
8362
8363 2008-04-01  Jan Hubicka  <jh@suse.cz>
8364
8365         * function.c (free_after_compilation): Free epilogue_delay_list.
8366         (prepare_function_start): Assert that previous compilation was freed.
8367
8368 2008-04-01  Jan Hubicka  <jh@suse.cz>
8369             Jim Wilson  <wilson@tuliptree.org>
8370             Andreas Tobler <andreast@gcc.gnu.org>
8371
8372         PR middle-end/35781
8373         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
8374         rtl.emit instead cfun->emit.
8375         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
8376         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
8377
8378 2008-04-01  Ben Elliston  <bje@au.ibm.com>
8379
8380         * doc/c-tree.texi (Function Basics): Fix grammatical error.
8381
8382 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
8383
8384         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
8385         New options
8386         (fprofile-use): Add var flag_profile_use
8387         * coverage.c (coverage_begin_output): Do not open a gcno file for
8388         output only if -ftest-coverage is set.
8389         Do not add getpwd() to gcda file path.
8390         (build_gcov_info): Check the new flag
8391         flag_profile_datafile_relative_path.
8392         (coverage_init): Use profile_data_prefix.
8393         Read profile counter only if flag_profile_use is set.
8394         * opts.c (common_handle_option): New option fprofile-use=,
8395         fprofile-dir=, fprofile-generate=.
8396         * toplev.c (profile_data_prefix): New variable definition.
8397         * toplev.h (profile_data_prefix): New declaration.
8398         * doc/invoke.tex (Option Summary, Optimization Options):
8399         Add new options.
8400
8401 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
8402
8403         * varasm.c (output_constant_pool_1): In LABEL_REF check,
8404         use tmp consistently.
8405
8406         PR target/35695
8407         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
8408         * config/ia64/ia64.c (rtx_needs_barrier): Handle
8409         UNSPEC_FR_RECIP_APPROX_RES.
8410         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
8411
8412 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
8413
8414         PR c/35750
8415         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
8416
8417 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8418
8419         PR middle-end/30186
8420         * fold-const.c (fold_indirect_ref_1): Support accessing non first
8421         element of the vector via a pointer.
8422
8423 2008-03-31  Ian Lance Taylor  <iant@google.com>
8424
8425         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
8426
8427 2008-03-31  Jan Hubicka  <jh@suse.cz>
8428
8429         * builtins.c (expand_builtin_setjmp_receiver): Update call of
8430         get_arg_pointer_save_area.
8431         * expr.c (init_expr): Just clear out rtl.expr.
8432         * function.c (free_after_compilation): Clear out whole RTL structure.
8433         (get_func_frame_size): Merge into ...
8434         (get_frame_size): ... this one.
8435         (assign_stack_local_1): Merge into ...
8436         (assign_stack_local): ... this one.
8437         (expand_function_end): Update call of get_arg_pointer_save_area.
8438         (get_art_pointer_save_area): Remove cfun argument.
8439         * function.h (emit_status): regno_pointer_align does not need length
8440         attribute. Move x_regno_reg_rtx to ...
8441         (regno_reg_rtx): ... new global array.
8442         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
8443         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
8444         apply_args_value, forced_labels, stack_pointer_delta):
8445         Update accestors.
8446         (struct varasm_status): Move here from varasm.c
8447         (struct rtl_data): New. Move here some fields from struct function.
8448         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
8449         frame_offset, stack_check_probe_note, arg_pointer_save_area,
8450         used_temp_slots avail_temp_slots, temp_slot_level,
8451         nonlocal_goto_handler_labels): Update accesstors.
8452         (rtl): New global variable.
8453         (struct function): Move some fileds to rtl_data.
8454         (get_arg_pointer_save_area): Update prototype.
8455         * emit-rtl.c (rtl): Declare.
8456         (regno_reg_rtx): Declare.
8457         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
8458         Update.
8459         (gen_reg_rtx): Update.
8460         (init_virtual_regs): Do not tate emit_status argument.
8461         (init_emit): Do not allocate emit.
8462         * varasm.c (varasm_statuc): Move to function.h.
8463         (n_deferred_constatns): Update accestor.
8464         (init_varasm_status): Do not allocate varasm_status.
8465         (force_const_mem, get_pool_size, output_constant_pool): Update.
8466         * stmt.c (force_label_rtx): Do not use x_ prefixes.
8467         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
8468
8469 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
8470
8471         PR rtl-optimization/35729
8472         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
8473         references.
8474
8475 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
8476
8477         PR target/32000
8478         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
8479         load/store if memory is unaligned.
8480         (*movti_rex64): Likewise.
8481
8482         * config/i386/predicates.md (misaligned_operand): New.
8483
8484 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
8485
8486         PR tree-opt/35431
8487         * tree-ssa-phiopt.c (conditional_replacement): Return early for
8488         complex types.
8489
8490 2008-03-31  Jan Beulich  <jbeulich@novell.com>
8491
8492         * config/ia64/constraints.md: Add 'j' constraint.
8493         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
8494         (movdi_internal): Likewise.
8495
8496 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
8497
8498         PR c/35748
8499         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
8500
8501 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
8502
8503         PR target/35757
8504         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
8505         proper error message for the third argument on blendpd and
8506         blendps.
8507
8508         * config/i386/sse.md (blendbits): New.
8509         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
8510
8511 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
8512
8513         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
8514
8515 2008-03-30  Richard Guenther  <rguenther@suse.de>
8516
8517         PR middle-end/31023
8518         * fold-const.c (fold_sign_changed_comparison): Do leave
8519         conversions to base-types alone.
8520
8521 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8522
8523         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
8524         the link register if one altivec register is be saved.
8525
8526 2008-03-30  Ben Elliston  <bje@au.ibm.com>
8527
8528         * final.c (final_scan_insn): Remove if (0) code.
8529
8530 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
8531
8532         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
8533
8534 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
8535
8536         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
8537         of V4SFmode to ix86_binary_operator_ok.
8538
8539 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
8540
8541         * config/i386/i386.c (override_options): Initialize
8542         ix86_veclib_handler to ix86_veclibabi_svml when
8543         -mveclibabi=svml is used.
8544         (ix86_veclibabi_svml): New function for SVML ABI style
8545         vectorization support.
8546         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
8547
8548 2008-03-28  Rafael Espindola  <espindola@google.com>
8549
8550         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
8551         (tree_binary_nonnegative_warnv_p): Make it public.
8552         (tree_single_nonnegative_warnv_p): Make it public.
8553         (tree_invalid_nonnegative_warnv_p): Make it public.
8554         (tree_unary_nonzero_warnv_p): Make it public.
8555         (tree_binary_nonzero_warnv_p): Make it public
8556         (tree_single_nonzero_warnv_p): Make it public.
8557         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
8558         (extract_range_from_binary_expr): Split the expr argument.
8559         (extract_range_from_unary_expr): Split the expr argument.
8560         (extract_range_from_comparison): Split the expr argument.
8561         (extract_range_from_expr): Use the new aux functions.
8562         (vrp_evaluate_conditional_warnv): Use
8563         vrp_evaluate_conditional_warnv_with_ops.
8564         * tree.h (tree_unary_nonzero_warnv_p): Declare.
8565         (tree_binary_nonzero_warnv_p): Declare.
8566         (tree_single_nonzero_warnv_p): Declare.
8567         (tree_expr_nonzero_warnv_p): Declare.
8568         (tree_unary_nonnegative_warnv_p): Declare.
8569         (tree_binary_nonnegative_warnv_p): Declare.
8570         (tree_single_nonnegative_warnv_p): Declare.
8571         (tree_invalid_nonnegative_warnv_p): Declare.
8572
8573 2008-03-28  Richard Guenther  <rguenther@suse.de>
8574
8575         PR tree-optimization/30317
8576         PR tree-optimization/30911
8577         PR tree-optimization/34793
8578         * tree-vrp.c (set_and_canonicalize_value_range): New function.
8579         (struct assert_locus_d): New member EXPR.
8580         (register_new_assert_for): Add EXPR parameter to support
8581         ASSERT_EXPR <name, expr OP limit>.
8582         (register_edge_assert_for_1): Adjust callers.
8583         (find_assert_locations): Likewise.
8584         (process_assert_insertions_for): Build condition from expression.
8585         (extract_range_from_assert): Handle ASSERT_EXPRs
8586         of the form ASSERT_EXPR <name, expr OP limit>.
8587         (register_edge_assert_for_2): New helper registering
8588         asserts for comparisons.  Recognize range tests of the form
8589         (unsigned)i - CST1 OP CST2.
8590         (register_edge_assert_for_1): Use it.
8591         (register_edge_assert_for): Likewise.
8592         (needs_overflow_infinity): Integer sub-types
8593         do not need overflow infinities.
8594         (vrp_val_is_max): The extreme values of integer sub-types
8595         are those of the base type.
8596         (vrp_val_is_min): Likewise.
8597         * tree.def (ASSERT_EXPR): Document extra allowed conditional
8598         expressions.
8599
8600 2008-03-28  Nick Clifton  <nickc@redhat.com>
8601
8602         PR target/31110
8603         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
8604         Return GENERAL_REGS for stack adjustment reloads.
8605
8606 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8607
8608         PR target/31334
8609         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
8610         const_vector when all the vectors are constant.
8611
8612 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
8613
8614         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
8615         comparisons.
8616         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
8617         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
8618         (scc_sf): New.
8619         (s<code>_sf): Use new scc_sf attribute for opcode names.
8620
8621 2008-03-27  Tom Tromey  <tromey@redhat.com>
8622
8623         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
8624         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
8625         config/spu/t-spu-elf, config/i386/t-interix,
8626         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
8627         config/i386/x-darwin, config/i386/x-mingw32,
8628         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
8629         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
8630         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
8631         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
8632         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
8633         config/rs6000/x-darwin, config/rs6000/t-rs6000,
8634         config/score/t-score-elf, config/arm/t-strongarm-pe,
8635         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
8636         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
8637         Revert automatic dependency patch.
8638
8639 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8640
8641         PR target/35657
8642         * config/i386/i386.c (ix86_function_arg_boundary): Align
8643         decimal floating point to its natural boundary.
8644
8645 2008-03-27  Richard Guenther  <rguenther@suse.de>
8646
8647         PR middle-end/35716
8648         * fold-const.c (fold_comparison): Restrict distinct decl
8649         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
8650         solely rely on operand_equal_p.
8651
8652 2008-03-27  Richard Guenther  <rguenther@suse.de>
8653
8654         PR c/32511
8655         * c-common.c (handle_weak_attribute): Reject combination of
8656         weak and inline.
8657
8658 2008-03-27  Richard Guenther  <rguenther@suse.de>
8659
8660         PR tree-optimization/32810
8661         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
8662         conversions from DECL_INITIAL.
8663         (fold_const_aggregate_ref): Likewise from constructor elements.
8664
8665 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
8666
8667         * tree-affine.h (aff_combination_expand): Declare.
8668         (get_inner_reference_aff): Likewise.
8669         * tree-affine.c (aff_combination_expand): Split out from
8670         tree_to_aff_combination_expand.
8671         (get_inner_reference_aff): New function.
8672         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
8673         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
8674         (struct lim_aux_data): sm_done field removed.
8675         (mem_ref_loc_p, mem_ref_locs_p): New types.
8676         (struct mem_ref): Added id, stored, accesses_in_loop,
8677         indep_loop, dep_loop, indep_ref, dep_ref fields.
8678         Removed is_stored, locs and next fields.
8679         (memory_accesses): New variable.
8680         (movement_possibility): Do not allow moving statements
8681         that store to memory.
8682         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
8683         New functions.
8684         (determine_max_movement): For statements with memory references,
8685         find the outermost loop in that the reference is independent.
8686         (move_computations_stmt): Mark the virtual operands for renaming.
8687         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
8688         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
8689         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
8690         add_vop_ref_mapping, create_vop_ref_mapping_loop,
8691         create_vop_ref_mapping, analyze_memory_references,
8692         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
8693         get_all_locs_in_loop, ref_always_accessed_p,
8694         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
8695         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
8696         store_motion_loop, store_motion): New functions.
8697         (struct vop_to_refs_elt): New type.
8698         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
8699         memref_hash, memref_eq, hoist_memory_references): Rewritten.
8700         (schedule_sm): Replaced by...
8701         (execute_sm): ... this.
8702         (determine_lsm_ref, hoist_memory_references,
8703         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
8704         find_more_ref_vops, free_mem_ref, free_mem_refs,
8705         determine_lsm_loop, determine_lsm): Removed.
8706         (tree_ssa_lim_finalize): Free data structures used by store motion.
8707         (tree_ssa_lim): Call analyze_memory_references.  Use
8708         store_motion instead of determine_lsm.
8709
8710 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8711
8712         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
8713         rename tmake_file to m68hc11/t-m68hc11.
8714         (mcore): Set inhibit_libc to true.
8715         * config.host (alpha*-dec-*vms*): Set extra_programs.
8716         (interix3*): Don't use host_xmake_file.
8717         * configure.ac: Let config.gcc override inhibit_libc.
8718         * configure: Regenerate.
8719
8720         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
8721         * config/t-openbsd-thread: Remove commented out lines.
8722         
8723         * config/x-interix: Remove.
8724
8725         * config/m68hc11/t-m68hc11-gas: Rename to...
8726         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
8727
8728         * config/mcore/t-mcore: Remove T_CFLAGS.
8729         * config/mcore/t-mcore-pe: Likewise.
8730
8731 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
8732
8733         * configure.ac: Replace custom __GNU_SOURCE test with
8734         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
8735         * aclocal.m4: Regenerate.
8736         * configure: Regenerate.
8737         * config.in: Regenerate.
8738
8739 2008-03-27  Richard Guenther  <rguenther@suse.de>
8740
8741         * fold-const.c (target.h): Include.
8742         (fold_comparison): Fold comparison of addresses of decls
8743         that bind locally or of constants.  Consolidate address folding code.
8744         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
8745         results from fold_binary_to_constant.
8746         (compare_values_warnv): Likewise.
8747
8748 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
8749
8750         PR middle-end/35429
8751         * fold-const.c (fold_truthop): Check for integeral types when folding
8752         a == 0 && b == 0 and a != 0 || b != 0 .
8753
8754 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8755
8756         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
8757
8758 2008-03-26  Andreas Schwab  <schwab@suse.de>
8759
8760         * doc/invoke.texi: Fix use of @item vs. @itemx.
8761
8762 2008-03-26  Tom Tromey  <tromey@redhat.com>
8763
8764         * Makefile.in (build/gensupport.o, build/print-rtl.o,
8765         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
8766         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
8767         build/gencodes.o, build/genconditions.o, build/genconfig.o,
8768         build/genconstants.o, build/genemit.o, build/genextract.o,
8769         build/genflags.o, build/genmddeps.o, build/genopinit.o,
8770         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
8771         options.h.
8772
8773 2008-03-26  Richard Guenther  <rguenther@suse.de>
8774
8775         Revert
8776         2008-03-26  Richard Guenther  <rguenther@suse.de>
8777
8778         * fold-const.c (target.h): Include.
8779         (fold_comparison): Fold comparison of addresses of two decls
8780         that bind locally.  Consolidate address folding code.
8781
8782 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8783
8784         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
8785         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
8786         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
8787         dconstsqrt2, dconstthird, dconste and/or dconst10.
8788         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
8789         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
8790         dconstsqrt2, dconste): Delete.
8791         (init_emit_once): Likewise.  Simplify initializing dconstm1.
8792         Constify variable.
8793         * real.c (get_real_const): New.
8794         * real.h (dconst3, dconst10, dconstm2, dconstthird,
8795         dconstsqrt2, dconste): Delete.
8796         (real_value_const, get_real_const): New.
8797
8798 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
8799
8800         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
8801
8802         * config/i386/i386.c (ix86_function_arg_boundary): Check
8803         BIGGEST_ALIGNMENT instead of 128.
8804         (setup_incoming_varargs_64): Likewise.
8805
8806 2008-03-26  Tom Tromey  <tromey@redhat.com>
8807
8808         * Makefile.in (DEPFILES): Add missing '/'.
8809
8810 2008-03-26  Richard Guenther  <rguenther@suse.de>
8811
8812         * fold-const.c (target.h): Include.
8813         (fold_comparison): Fold comparison of addresses of two decls
8814         that bind locally.  Consolidate address folding code.
8815
8816 2008-03-26  Nick Clifton  <nickc@redhat.com>
8817
8818         PR target/31232
8819         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
8820         not allow INT+INT as a legitimate addressing mode.
8821
8822 2008-03-26  Richard Guenther  <rguenther@suse.de>
8823
8824         * tree-flow.h (widen_bitfield): Remove declaration.
8825         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
8826         (widen_bitfield): Remove function.
8827         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
8828         code.
8829
8830 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8831
8832         PR target/31558
8833         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
8834         error_mark_node's.
8835
8836 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8837
8838         PR rtl-optimization/35232
8839         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
8840         (forget_old_reloads_1, forget_marked_reloads): Don't clear
8841         reg_reloaded_call_part_clobbered here.
8842         (reload_regs_reach_end_p): New function.
8843         (reload_reg_rtx_for_input): New variable.
8844         (reload_reg_rtx_for_output): Likewise.
8845         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
8846         when reassigning a pseudo register.  Load reloadreg from 
8847         reload_reg_rtx_for_input, moving the mode and register
8848         calculation to...
8849         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
8850         instead of the original when deciding whether an input reload
8851         would be a no-op or whether an output reload can be deleted.
8852         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
8853         when setting up new_spill_reg_store.  Load it from
8854         reload_reg_rtx_for_output, moving the mode and register
8855         calculation to...
8856         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
8857         instead of the original when deciding whether an output reload
8858         would be a no-op.  Do the same when modifying insn notes.
8859         Use rtx_equal_p instead of == to compare the registers.
8860         (inherit_piecemeal_p): Take a mode and two register numbers
8861         as argument.
8862         (emit_reload_insns): Clear new_spill_reg_store for every hard
8863         register in the reload register.  Remove spill registers
8864         from reg_reloaded_valid before considering whether to record
8865         inheritance information for them.  Use reload_reg_rtx_for_output
8866         instead of reg_rtx when recording output reloads.  Use
8867         reload_reg_rtx_for_input instead of reg_rtx when recording
8868         input reloads.  Set or clear reg_reloaded_call_part_clobbered
8869         at the same time as setting reg_reloaded_valid.
8870         (delete_output_reload): Add a new_reload_reg parameter and use it
8871         instead of rld[j].reg_rtx.
8872         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
8873         calls accordingly.
8874
8875 2008-03-25  Tom Tromey  <tromey@redhat.com>
8876
8877         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
8878         (build/genattr.o): Likewise.
8879         (build/genattrtab.o): Likewise.
8880         (build/gencodes.o): Likewise.
8881         (build/genconfig.o): Likewise.
8882         (build/genconstants.o): Likewise.
8883         (build/genemit.o): Likewise.
8884         (build/genextract.o): Likewise.
8885         (build/genflags.o): Likewise.
8886
8887 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
8888         
8889         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
8890         instead of size_int for integer types.
8891         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
8892         to match type of MINUS_EXPR.
8893         
8894 2008-03-25  Tom Tromey  <tromey@redhat.com>
8895
8896         * configure: Rebuilt.
8897         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
8898         Makefile.
8899
8900 2008-03-25  Tom Tromey  <tromey@redhat.com>
8901
8902         * config/x-solaris (host-solaris.o): Update.
8903         * config/x-linux (host-linux.o): Update.
8904         * config/x-hpux (host-hpux.o): Update.
8905         * config/x-darwin (host-darwin.o): Update.
8906         * config/v850/t-v850e (v850-c.o): Update.
8907         * config/v850/t-v850 (v850-c.o): Update.
8908         * config/t-vxworks (vxworks.o): Update.
8909         * config/t-sol2 (sol2-c.o, sol2.o): Update.
8910         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
8911         * config/spu/t-spu-elf (spu-c.o): Update.
8912         (spu.o): Remove.
8913         * config/sh/t-symbian (sh-c.o): Update.
8914         (symbian.o): Update.
8915         * config/sh/t-sh (sh-c.o): Update.
8916         * config/score/t-score-elf (score7.o, score3.o): Update.
8917         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
8918         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
8919         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
8920         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
8921         (rs6000.o): Remove.
8922         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
8923         * config/m32c/t-m32c (m32c-pragma.o): Update.
8924         * config/ia64/t-ia64 (ia64-c.o): Update.
8925         * config/i386/x-mingw32 (host-mingw32.o): Update.
8926         * config/i386/x-i386 (driver-i386.o): Update.
8927         * config/i386/x-darwin (host-i386-darwin.o): Update.
8928         * config/i386/x-cygwin (host-cygwin.o): Update.
8929         * config/i386/t-nwld (nwld.o): Update.
8930         * config/i386/t-netware (netware.o): Update.
8931         * config/i386/t-interix (winnt.o): Update.
8932         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
8933         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
8934         msformat-c.o): Update.
8935         * config/bfin/t-bfin-linux (generated_files): Add
8936         linux-sysroot-suffix.h.
8937         * config/arm/t-wince-pe (pe.o): Update.
8938         * config/arm/t-strongarm-pe (pe.o): Update.
8939         * config/arm/t-pe (pe.o): Update.
8940         * config/arm/t-arm (arm-c.o): Update.
8941         * doc/install.texi (Prerequisites): Require make 3.80.
8942         * Makefile.in: Remove .o targets.
8943         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
8944         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
8945         (simple_generated_h, simple_generated_c): Move earlier.
8946         (generated_files): New variable.
8947         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
8948         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
8949         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
8950         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
8951         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
8952         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
8953         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
8954         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
8955         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
8956         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
8957         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
8958         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
8959         (.c.o): Remove.
8960         (COMPILE.base, COMPILE): New variables.
8961         (%.o): New pattern rule.
8962         (ALL_HOST_OBJS): New variable.
8963         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
8964         (dummy-checksum.o, cc1-checksum.o): Remove.
8965         (DRIVER_SHLIB): New variable.
8966         (DRIVER_DEFINES): Use it.
8967         (gencondmd.c): Move out of build/.
8968         (s-conditions): Update.
8969         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
8970         (ALL_BUILD_OBJS): Likewise.
8971         (build/%.o): Use BUILDCOMPILE.
8972         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
8973         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
8974         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
8975         build/gencheck.o, build/gencodes.o, build/genconditions.o,
8976         build/genconfig.o, build/genconstants.o, build/genemit.o,
8977         build/genextract.o, build/genflags.o, build/genmddeps.o,
8978         build/genopinit.o, build/genoutput.o, build/genpeep.o,
8979         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
8980         build/gen-protos.o, build/scan.o, build/fix-header.o,
8981         build/scan-decls.o): Simplify.
8982         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
8983         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
8984         prefix.o, toplev.o): Reduce to variable setting.
8985         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
8986         ($(out_object_file), gcc-options.o): New targets.
8987         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
8988         * configure: Rebuilt.
8989         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
8990         * doc/sourcebuild.texi (Front End Directory): Document new variable.
8991
8992 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
8993
8994         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
8995         complain when we hit an error, return ERROR_MARK_NODE.
8996
8997 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8998
8999         * config/sh/constraints.md (Pso, Psz): New constraints.
9000         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
9001         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
9002
9003 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
9004
9005         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
9006         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
9007
9008 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
9009
9010         * config/sh/sh.md (prefetch): Add condition for SH2A target.
9011         (prefetch_sh2a): New.   
9012
9013 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
9014             Naveen.H.S  <naveen.hs@kpitcummins.com>
9015
9016         * config/sh/constraints.md (I28): New constraint.
9017         * config/sh/sh.c (broken_move): Add support for movi20s.
9018         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
9019
9020 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
9021             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
9022             Naveen.H.S  <naveen.hs@kpitcummins.com>
9023
9024         * config/sh/sh.c (SH_ATTRIBUTES): Define.
9025         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
9026         (print_operand): Handle resbank in %@ operand code.
9027         (sh_encode_section_info): New.
9028         (push_regs): Add conditions for resbank.
9029         (sh_expand_epilogue): Likewise.
9030         (sh_insert_attributes): Likewise.
9031         (sh_attribute_table): Likewise.
9032         (sh_handle_resbank_handler_attribute): New.
9033         (sh2a_handle_function_vector_handler_attribute): New.
9034         (sh2a_is_function_vector_call): New.
9035         (sh2a_get_function_vector_number): New.
9036         (sh2a_function_vector_p): New.
9037         (sh_cfun_resbank_handler_p): New.
9038         * config/sh/sh.md (calli): Emit jsr/n if possible.
9039         (calli_tbr_rel): New.
9040         (calli_pcrel): Emit jsr/n if possible.
9041         (return_i): Emit rts/n if possible.
9042         (call_valuei_tbr_rel): New.
9043         (call_valuei_pcrel): Add condition for SH2A target.
9044         (call_value): Likewise.
9045         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
9046         (sh2a_get_function_vector_number): Likewise.
9047         (sh2a_is_function_vector_call): Likewise.
9048         * doc/extend.texi: Document TBR relative addressing of SH2A.
9049         (resbank): Add description for SH2A.
9050
9051 2008-03-24  Richard Guenther  <rguenther@suse.de>
9052
9053         PR c/22371
9054         * gimplify.c (gimplify_modify_expr): For frontend type-correct
9055         pointer assignments change conversions according to middle-end rules.
9056         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
9057         * configure.ac: Include type checking in yes.
9058         * configure: Regenerate.
9059
9060 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9061
9062         * diagnostic.c (diagnostic_count_diagnostic): Delete.
9063         (diagnostic_report_diagnostic): Update. Handle ICEs here.
9064         
9065 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
9066
9067         * gthr-vxworks.h (UNUSED): Define.
9068
9069 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
9070
9071         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
9072
9073 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
9074
9075         * doc/extend.texi (Function Attributes): Add missing comma in the
9076         example of the "alloc_size" attribute.
9077         
9078 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
9079
9080         Revert:
9081         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
9082
9083         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9084         32bit host.
9085
9086         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
9087
9088         PR target/35496
9089         * stor-layout.c (update_alignment_for_field): Set minimum alignment
9090         of the underlying type of a MS bitfield layout to the natural
9091         alignment of the type.
9092
9093         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
9094
9095         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
9096         to their natural alignment to avoid store forwarding stalls.
9097
9098 2008-03-22  Richard Guenther  <rguenther@suse.de>
9099
9100         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
9101         For PHI nodes verify the address is invariant.
9102         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
9103         (get_symbol_constant_value): Use is_gimple_min_invariant.
9104         (maybe_fold_stmt_indirect): Likewise.
9105
9106 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
9107
9108         PR rtl-optimization/33927
9109         * Makefile.in (dse.o): Depend on $(TM_P_H).
9110         * expr.h (extract_low_bits): Declare.
9111         * expmed.c (extract_low_bits): New function.
9112         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
9113         * dse.c: Include tm_p.h.
9114         (find_shift_sequence): Remove the read_reg argument and return the
9115         read value.  Emit the instructions instead of returning them.
9116         Iterate on new_mode rather than calculating it each time.
9117         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
9118         source to NEW_MODE and extract_low_bits to convert the shifted
9119         value to READ_MODE.
9120         (replace_read): Allow the load and store to have different mode
9121         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
9122         or extraction instructions before trying the replacement.  Update
9123         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
9124
9125 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
9126
9127         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
9128         to their natural alignment to avoid store forwarding stalls.
9129
9130 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9131
9132         PR target/27946
9133         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
9134         encouraging but not allowing gprs for input;
9135         change the input constraint to !f#r.
9136         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
9137         gprs for output;
9138         change the output constraint to !f#r.
9139
9140 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
9141
9142         PR target/13958
9143         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
9144         corresponding post-reload splitters.
9145         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
9146         when x87 FP math is selected.
9147         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
9148         New function prototype.
9149         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
9150         unreachable function to ease macroization of insn patterns.
9151
9152 2008-03-21  Martin Jambor  <mjambor@suse.cz>
9153
9154         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
9155         reference dumps if ddr is NULL or dependence is unknown.
9156
9157 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9158
9159         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
9160         unsigned extension into account.
9161         (ATOMIC_COMPARE_AND_SWAP): Likewise.
9162         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
9163         Do computations on a scratch register.
9164
9165 2008-03-21  Richard Guenther  <rguenther@suse.de>
9166
9167         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9168         Use is_gimple_min_invariant instead of TREE_INVARIANT.
9169         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
9170         * tree-ssa-dom.c (record_equality): Likewise.
9171         * tree-inline.c (copy_body_r): Likewise.
9172         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
9173         TREE_INVARIANT.
9174
9175 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9176
9177         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
9178         as 'delete_unused' argument.
9179
9180 2008-03-20  Richard Guenther  <rguenther@suse.de>
9181
9182         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
9183         special casing of constant qualifiers.
9184         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
9185         care about them in general.
9186         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
9187         regardless of their type.
9188         (fold_stmt_r): Forcefully fold *& if we end up with that.
9189
9190 2008-03-20  Paul Brook  <paul@codesourcery.com>
9191
9192         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
9193         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
9194         linker flags.
9195         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
9196         definition.
9197         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
9198         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
9199
9200 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
9201
9202         * common.opt (Wmudflap): New option.
9203         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
9204         (mx_register_decls): Likewise.
9205         (mudflap_finish_file): Likewise.
9206         * doc/invoke.texi: Document -Wno-mudflap.
9207
9208 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
9209
9210         * c-format.c (replace_format_name_to_system_name): New.
9211         (cmp_attribs): New.
9212         (convert_format_name_to_system_name): New.
9213         (decode_format_attr): Add use of convert_format_name_to_system_name.
9214         (format_types_orig): Add gnu_ prefix to names.
9215         (check_format_info_main): Special treating of \0 escaped names for
9216         supporting multi-character format specifiers as I32, I64.
9217         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
9218         (gnu_target_overrides_format_attributes): New.
9219         * c-format.h: Add structure target_ovr_attr to hold
9220         system specific formatter names.
9221         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
9222         msformat-c.o file to c_target_objs and cxx_target_objs.
9223         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
9224         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
9225         (TARGET_N_FORMAT_TYPES): New.
9226         * config/i386/msformat-c.c: New.
9227         * config/i386/t-cygming: Add build rule for msformat-c.o.
9228         * doc/extend.texi: Add new format names gnu_* and ms_* and
9229         further details.
9230         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
9231
9232 2008-03-20  Ira Rosen  <irar@il.ibm.com>
9233
9234         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
9235         optimizations turned on under -O3.
9236         (ftree-vectorize): Add that the flag is turned on with -O3.
9237
9238 2008-03-20  Ben Elliston  <bje@au.ibm.com>
9239
9240         * regmove.c (try_auto_increment): Fix spelling error in comment.
9241         * final.c (final_scan_insn): Likewise.
9242
9243 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
9244
9245         PR target/14552
9246         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
9247         allocator preferences for "y" and "r" class registers.
9248         ("*mov<mode>_internal"): Ditto.
9249         ("*movv2sf_internal_rex64"): Ditto.
9250         ("*movv2sf_internal"): Ditto.
9251
9252 2008-03-19  Michael Matz  <matz@suse.de>
9253
9254         PR middle-end/35616
9255         * calls.c (expand_call): Check overlap of arguments with call
9256         address for sibcalls.
9257
9258 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
9259
9260         PR target/35496
9261         * stor-layout.c (update_alignment_for_field): Set minimum alignment
9262         of the underlying type of a MS bitfield layout to the natural
9263         alignment of the type.
9264
9265 2008-03-19  Jan Hubicka  <jh@suse.cz>
9266
9267         PR other/35094
9268         * toplev.c (decode_d_option): Handle all CPP flags.
9269         * tree-vrp.c: Update tree_pass descriptors.
9270         * regrename.c: Update tree_pass descriptors.
9271         * fwprop.c: Update tree_pass descriptors.
9272         * doc/invoke.texi: Remove documentation of dropped -d? flags.
9273         * tree-into-ssa.c: Update tree_pass descriptors.
9274         * tree-dump.c: Update tree_pass descriptors.
9275         * tree-complex.c: Update tree_pass descriptors.
9276         * tree-dump.h: Update tree_pass descriptors.
9277         * see.c: Update tree_pass descriptors.
9278         * cgraphbuild.c: Update tree_pass descriptors.
9279         * tracer.c: Update tree_pass descriptors.
9280         * tree-loop-distribution.c: Update tree_pass descriptors.
9281         * cgraph.c: Update tree_pass descriptors.
9282         * postreload-gcse.c: Update tree_pass descriptors.
9283         * postreload.c: Update tree_pass descriptors.
9284         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
9285         * tree-tailcall.c: Update tree_pass descriptors.
9286         * tree-pass.h (tree_opt_pass): Rename to ...
9287         (opt_pass) ... this one; add "type" field and remove letter field.
9288         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
9289         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
9290         all_lowering_passes): Update declaration.
9291         * ipa-cp.c: Update tree_pass descriptors.
9292         * final.c: Update tree_pass descriptors.
9293         * omp-low.c: Update tree_pass descriptors.
9294         * tree-ssa-dse.c: Update tree_pass descriptors.
9295         * ipa-reference.c: Update tree_pass descriptors.
9296         * tree-ssa-uncprop.c: Update tree_pass descriptors.
9297         * auto-inc-dec.c: Update tree_pass descriptors.
9298         * reorg.c: Update tree_pass descriptors.
9299         * cgraphunit.c: Update tree_pass descriptors.
9300         * tree-ssa-copyrename.c: Update tree_pass descriptors.
9301         * tree-ssa-ccp.c: Update tree_pass descriptors.
9302         * df-core.c: Update tree_pass descriptors.
9303         * mode-switching.c: Update tree_pass descriptors.
9304         * tree-nomudflap.c: Update tree_pass descriptors.
9305         * modulo-sched.c: Update tree_pass descriptors.
9306         * ipa-pure-const.c: Update tree_pass descriptors.
9307         * cse.c: Update tree_pass descriptors.
9308         * web.c: Update tree_pass descriptors.
9309         * tree-stdarg.c: Update tree_pass descriptors.
9310         * tree-ssa-math-opts.c: Update tree_pass descriptors.
9311         * tree-ssa-dom.c: Update tree_pass descriptors.
9312         * tree-nrv.c: Update tree_pass descriptors.
9313         * tree-ssa-alias.c: Update tree_pass descriptors.
9314         * loop-init.c: Update tree_pass descriptors.
9315         * gimple-low.c: Update tree_pass descriptors.
9316         * ipa-inline.c: Update tree_pass descriptors.
9317         * tree-ssa-sink.c: Update tree_pass descriptors.
9318         * global.c: Update tree_pass descriptors.
9319         * ifcvt.c: Update tree_pass descriptors.
9320         * jump.c: Update tree_pass descriptors.
9321         * predict.c: Update tree_pass descriptors.
9322         * tree-ssa-loop.c: Update tree_pass descriptors.
9323         * recog.c: Update tree_pass descriptors.
9324         * dse.c: Update tree_pass descriptors.
9325         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
9326         * tree-eh.c: Update tree_pass descriptors.
9327         * regmove.c: Update tree_pass descriptors.
9328         * local-alloc.c
9329         * function.c: Update tree_pass descriptors.
9330         * tree-vectorizer.c: Update tree_pass descriptors.
9331         * gcse.c: Update tree_pass descriptors.
9332         * ipa-type-escape.c: Update tree_pass descriptors.
9333         * tree-if-conv.c: Update tree_pass descriptors.
9334         * init-regs.c: Update tree_pass descriptors.
9335         * ipa.c: Update tree_pass descriptors.
9336         * tree-ssa-phiopt.c: Update tree_pass descriptors.
9337         * rtl-factoring.c: Update tree_pass descriptors.
9338         * lower-subreg.c: Update tree_pass descriptors.
9339         * bt-load.c: Update tree_pass descriptors.
9340         * tree-dfa.c: Update tree_pass descriptors.
9341         * except.c: Update tree_pass descriptors.
9342         * emit-rtl.c: Update tree_pass descriptors.
9343         * cfgexpand.c: Update tree_pass descriptors.
9344         * tree-cfgcleanup.c: Update tree_pass descriptors.
9345         * cfgcleanup.c: Update tree_pass descriptors.
9346         * tree-ssa-pre.c: Update tree_pass descriptors.
9347         * tree-sra.c: Update tree_pass descriptors.
9348         * tree-mudflap.c: Update tree_pass descriptors.
9349         * tree-ssa-copy.c: Update tree_pass descriptors.
9350         * cfglayout.c: Update tree_pass descriptors.
9351         * tree-ssa-forwprop.c: Update tree_pass descriptors.
9352         * tree-ssa-dce.c: Update tree_pass descriptors.
9353         * tree-ssa.c: Update tree_pass descriptors.
9354         * regclass.c: Update tree_pass descriptors.
9355         * integrate.c: Update tree_pass descriptors.
9356         * tree-optimize.c: Update tree_pass descriptors.
9357         * tree-ssa-phiprop.c: Update tree_pass descriptors.
9358         * tree-object-size.c: Update tree_pass descriptors.
9359         * combine.c: Update tree_pass descriptors.
9360         * tree-outof-ssa.c: Update tree_pass descriptors.
9361         * bb-reorder.c: Update tree_pass descriptors.
9362         * stack-ptr-mod.c: Update tree_pass descriptors.
9363         * var-tracking.c: Update tree_pass descriptors.
9364         * tree-profile.c: Update tree_pass descriptors.
9365         * tree-vect-generic.c: Update tree_pass descriptors.
9366         * reg-stack.c: Update tree_pass descriptors.
9367         * sched-rgn.c: Update tree_pass descriptors.
9368         * tree-ssa-structalias.c: Update tree_pass descriptors.
9369         * tree-cfg.c: Update tree_pass descriptors.
9370         * passes.c (current_pass): Update declaration.
9371         (finish_optimization_passes): Update.
9372         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
9373         (register_one_dump_file, register_dump_files_1, next_pass_1):
9374         Update arguments.
9375         (init_optimization_passes): Update handling of new types.
9376         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
9377         * ipa-struct-reorg.c: Update tree_pass descriptors.
9378         * tree-ssa-reassoc.c: Update tree_pass descriptors.
9379         * combine-stack-adj.c: Update tree_pass descriptors.
9380         * cfgrtl.c: Update tree_pass descriptors.
9381         * dce.c: Update tree_pass descriptors.
9382         * tree-ssanames.c: Update tree_pass descriptors.
9383
9384 2008-03-19  Richard Guenther  <rguenther@suse.de>
9385
9386         PR middle-end/35609
9387         * tree-ssa.c (walk_data): New structure.
9388         (warn_uninitialized_var): If not always_executed warn with "maybe"
9389         instead of "is".
9390         (execute_early_warn_uninitialized): Compute post-dominators.
9391         Initialize always_executed before processing each basic block.
9392
9393 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
9394
9395         PR target/35504
9396         * config/i386/i386.c (x86_this_parameter): Calculate correct location
9397         of "this" pointer when "regparm = N" or "fastcall" is in effect.
9398
9399 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9400
9401         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
9402
9403 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
9404
9405         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
9406         is true.
9407         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
9408         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
9409         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
9410         target after ignore has been set, and move there also the commputation
9411         of subtarget and original_target.
9412         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
9413         (LANG_HOOKS_INITIALIZER): Remove it.
9414         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
9415
9416 2008-03-18  Richard Guenther  <rguenther@suse.de>
9417
9418         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
9419         found an expression with constants, note that in the VN for the lhs.
9420         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
9421         fold them to constants if possible.  Run cleanup_cfg if done so.
9422         (execute_pre): Return todo.
9423         (do_pre): Likewise.
9424         (execute_fre): Likewise.
9425         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
9426         of constants.
9427         (get_prop_source_stmt): Look through pointer conversions.
9428
9429 2008-03-18  Jan Hubicka  <jh@suse.cz>
9430
9431         * tree-pretty-print.c: Include predict.h.
9432         (dump_generic_node): Dump predictor.
9433         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
9434         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
9435         * gimple-low.c (lower_stmt): Likewise.
9436         * expr.c (expand_expr_real): Likewise.
9437         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
9438         them.
9439         (build_predict_expr, build_predict_expr): New.
9440         * predict.h (predictor_name, build_predict_expr): Update.
9441         * c-typeck.c (c_finish_bc_stmt): Add prediction.
9442         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
9443         * predict.def (PRED_CONTINUE): Update hitrate.
9444         * tree.def (PREDICT_EXPR): Define.
9445         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
9446         do not handle BIND_EXPR.
9447         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
9448         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
9449         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
9450         operands.
9451
9452 2008-03-18  Michael Matz  <matz@suse.de>
9453
9454         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
9455
9456 2008-03-18  Richard Guenther  <rguenther@suse.de>
9457
9458         * tree-gimple.h (is_gimple_invariant_address): Declare.
9459         (is_gimple_constant): Likewise.
9460         * tree-gimple.c (is_gimple_constant): New function.
9461         (is_gimple_invariant_address): Likewise.
9462         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
9463         and is_gimple_invariant_address.
9464         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
9465         previous change.
9466         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
9467         an addressable base.
9468
9469 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
9470
9471         PR middle-end/35611
9472         * gimplify.c (gimplify_expr): Gimplify second operand of
9473         OMP_ATOMIC_LOAD.
9474
9475 2008-03-17  Richard Guenther  <rguenther@suse.de>
9476
9477         PR tree-optimization/19637
9478         * fold-const.c (fold_unary): Remove restrictions of removing
9479         intermediate pointer-conversions (P2)(P1)P0.
9480         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
9481         conversion to void pointer.
9482         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
9483
9484 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
9485
9486         PR debug/31510
9487         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
9488         emulated thread local variables.
9489
9490 2008-03-16  Richard Guenther  <rguenther@suse.de>
9491
9492         PR middle-end/35607
9493         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
9494         expand TREE_INVARIANT operations that are not gimple invariant.
9495
9496 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
9497
9498         * doc/extend.texi (Alignment): Say that the ABI controls
9499         the __alignof__ for non-strict-alignment targets rather
9500         than being a recommendation.
9501
9502 2008-03-15  Paul Brook  <paul@codesourcery.com>
9503
9504         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
9505         annotations.
9506         (arm_output_fn_unwind): Mark functions that can not be unwound.
9507
9508 2008-03-15  Paul Brook  <paul@codesourcery.com>
9509
9510         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
9511         extension instructions.
9512
9513 2008-03-15  Richard Guenther  <rguenther@suse.de>
9514
9515         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
9516         and fold constant aggregate refs.
9517         (fold_const_aggregate_ref): Handle string constants
9518         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
9519         (evaluate_stmt): Simplify now that ccp_fold folds constant
9520         aggregate refs.
9521
9522 2008-03-15  Paul Brook  <paul@codesourcery.com>
9523
9524         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
9525         (extzv): Use gen_extzv_t2.
9526         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
9527
9528 2008-03-15  Richard Guenther  <rguenther@suse.de>
9529
9530         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
9531         (fold_const_aggregate_ref): Likewise.
9532         (get_value): Return NULL if we don't have any values.
9533         (ccp_finalize): Set const_val to NULL after freeing it.
9534         * tree-flow.h (get_symbol_constant_value): Declare.
9535         (fold_const_aggregate_ref): Likewise.
9536         * tree-ssa-sccvn.c (try_to_simplify): Use them.
9537
9538 2008-03-15  Richard Guenther  <rguenther@suse.de>
9539
9540         PR middle-end/35593
9541         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
9542         to not produce negative array indices if not allowed.  Add
9543         parameter to indicate that.
9544         (maybe_fold_offset_to_component_ref): Allow negative array
9545         indices only for the first member of a structure.
9546         (maybe_fold_offset_to_reference): Allow negative array indices.
9547         (maybe_fold_stmt_addition): Likewise.
9548
9549 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
9550             Anatoly Sokolov <aesok@post.ru>
9551
9552         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
9553         (avr_arch): Add ARCH_AVR6.
9554         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
9555         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
9556         instead of fixed value 2.
9557         (print_operand_address): Use gs() asm specifier instead of pm().
9558         (avr_assemble_integer): (Ditto.).
9559         (avr_output_addr_vec_elt): (Ditto.).
9560         (print_operand): Handle "!" code.
9561         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
9562         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
9563         (AVR_HAVE_EIJMP_EICALL): Define.
9564         (AVR_3_BYTE_PC): Redefine.
9565         (AVR_2_BYTE_PC): (Ditto.).
9566         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
9567         (LINK_SPEC): Add atmega2560 and atmega2561.
9568         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
9569         (crtm2561.o).
9570         * config/avr/avr.md (call_insn): Use eicall instead of icall 
9571         for 3 byte PC devices.
9572         (call_value_insn): (Ditto.).
9573         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
9574         (indirect_jump): Use only for for 2 byte PC devices.
9575         (*tablejump): (Ditto.).
9576         (*indirect_jump_avr6): Add insn.
9577         (*tablejump_rjmp): Don't use for 3 byte PC devices.
9578         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
9579         instead of ijmp for 3 byte PC devices.
9580         (__tablejump2__): (Ditto.).
9581         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
9582         (MULITLIB_DIRNAMES): (Ditto.). 
9583         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
9584
9585 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
9586
9587         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
9588         "sse2_umulsidi3".  Use V1DI mode for operand 0.
9589         ("mmx_psadbw"): Use V1DI mode for operand 0.
9590         * config/i386/i386-modes.def (V1SI): New vector mode.
9591         * config/i386/i386.c (struct builtin_description)
9592         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
9593         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
9594         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
9595         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
9596         v1di_ftype_v8qi_v8qi type.
9597         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
9598
9599         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
9600         __builtin_ia32_pmuludq]: Fix the mode of return value.
9601
9602 2008-03-15  Richard Guenther  <rguenther@suse.de>
9603
9604         PR middle-end/35595
9605         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
9606         being a PHI_NODE.
9607
9608 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
9609         
9610         * doc/invoke.texi (Option Summary, Xtensa Options): Document
9611         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
9612         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
9613         unless TARGET_SERIALIZE_VOLATILE is enabled.
9614         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
9615         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
9616         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
9617
9618 2008-03-14  Richard Guenther  <rguenther@suse.de>
9619
9620         PR tree-optimization/34172
9621         * tree-flow.h (refs_may_alias_p): Declare.
9622         (get_single_def_stmt): Likewise.
9623         (get_single_def_stmt_from_phi): Likewise.
9624         (get_single_def_stmt_with_phi): Likewise.
9625         * tree-dfa.c (refs_may_alias_p): New function.
9626         (get_single_def_stmt): Likewise.
9627         (get_single_def_stmt_from_phi): Likewise.
9628         (get_single_def_stmt_with_phi): Likewise.
9629         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
9630         (vn_reference_lookup_1): New helper function.
9631         (vn_reference_lookup): Walk the virtual use-def chain to
9632         continue searching for a match if the def does not alias the
9633         reference we are looking for.
9634
9635 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
9636
9637         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
9638         archive and Perzl.  Update The Written Word listing.
9639
9640 2008-03-14  Richard Guenther  <rguenther@suse.de>
9641
9642         PR tree-optimization/34043
9643         PR tree-optimization/33989
9644         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
9645         when doing FRE.
9646         (bitmap_find_leader): Use extra argument to verify dominance
9647         relationship inside a basic-block.
9648         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
9649         (find_leader_in_sets): Adjust.
9650         (create_component_ref_by_pieces): Take extra argument for
9651         dominance check, handle lookup failures.
9652         (find_or_generate_expression): Likewise.
9653         (create_expression_by_pieces): Likewise.
9654         (insert_into_preds_of_block): Adjust.
9655         (create_value_expr_from): If asked for, verify all operands
9656         are in the blocks AVAIL_OUT set.
9657         (make_values_for_stmt): Check for SSA_NAMEs that are life
9658         over an abnormal edge.
9659         (compute_avail): Remove such check.
9660         (do_SCCVN_insertion): New function.
9661         (eliminate): If we do not find a leader suitable for replacement
9662         insert a replacement expression from SCCVN if available.
9663         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
9664         (struct vn_ssa_aux): Add needs_insertion flag.
9665         * tree-ssa-sccvn.c (may_insert): New global flag.
9666         (copy_reference_ops_from_ref): Value-number union member access
9667         based on its size, not type and member if insertion is allowed.
9668         (visit_reference_op_load): For a weak match from union type
9669         punning lookup a view-converted value and insert a SSA_NAME
9670         for that value if that is not found.
9671         (visit_use): Make dumps shorter.  Do not disallow value numbering
9672         SSA_NAMEs that are life over an abnormal edge to constants.
9673         (free_scc_vn): Release inserted SSA_NAMEs.
9674         (run_scc_vn): New flag to specify whether insertion is allowed.
9675         Process SSA_NAMEs in forward order.
9676         * tree-ssa-loop-im.c (for_each_index): Handle invariant
9677         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
9678         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
9679         pointer type to/from integral types that do not change the
9680         precision to regular conversions.
9681
9682 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9683
9684         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9685         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9686         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
9687         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
9688         input arguments and the mode of return value.  Built-in functions
9689         that operate on whole 64-bit MMX register now use V1DI mode.
9690
9691 2008-03-13  Alon Dayan  <alond@il.ibm.com>
9692             Olga Golovanevsky  <olga@il.ibm.com>
9693
9694         PR tree-optimization/35041
9695         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
9696         to locate the right position in a statement.
9697
9698 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
9699
9700         PR target/34000
9701         PR target/35553
9702         * config/i386/xmmintrin.h:  Change all static inline functions to
9703         extern inline and add __gnu_inline__ attribute.
9704         * config/i386/bmintrin.h: Ditto.
9705         * config/i386/smmintrin.h: Ditto.
9706         * config/i386/tmmintrin.h: Ditto.
9707         * config/i386/mmintrin-common.h: Ditto.
9708         * config/i386/ammintrin.h: Ditto.
9709         * config/i386/emmintrin.h: Ditto.
9710         * config/i386/pmmintrin.h: Ditto.
9711         * config/i386/mmintrin.h: Ditto.
9712         * config/i386/mm3dnow.h: Ditto.
9713
9714 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
9715
9716         PR middle-end/35185
9717         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
9718         (lower_omp_2): New function.
9719         (lower_omp_1, lower_omp): Rewritten.
9720
9721 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
9722
9723         PR 35054
9724         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
9725         with the phrase "Microsoft Windows compilers".
9726         (Push/Pop Macro Pragmas): New subsection. Document
9727         #pragma push_macro and pragma pop_macro.
9728
9729 2008-03-12  Paul Brook  <paul@codesourcery.com>
9730
9731         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
9732
9733 2008-03-12  Paul Brook  <paul@codesourcery.com>
9734
9735         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
9736         (thumb2_alusi3_short): Exclude PLUS and MINUS.
9737         (thumb2_addsi_shortim): Rename ...
9738         (thumb2_addsi_short): ... to this.  Allow register operands.
9739         (thumb2_subsi_short): New pattern.
9740         (thumb2_one_cmplsi2_short,
9741         thumb2_negsi2_short): New patterns and peepholes.
9742
9743 2008-03-12  Paul Brook  <paul@codesourcery.com>
9744
9745         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
9746
9747 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
9748
9749         * config/i386/i386.md (int_cond): New code iterator.
9750         (fp_cond): Ditto.
9751         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
9752         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
9753         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
9754         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
9755         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
9756         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
9757         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
9758         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
9759
9760 2008-03-12  Paul Brook  <paul@codesourcery.com>
9761
9762         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
9763         instead of {arm,thumb}_compute_save_reg_mask.
9764         (output_return_instruction): Ditto.
9765         (thumb_unexpanded_epilogue): Ditto.
9766         (thumb1_expand_prologue): Ditto.
9767         (thumb1_output_function_prologue): Ditto.
9768         (arm_set_return_address): Ditto.
9769         (thumb_set_return_address): Ditto.
9770         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
9771         regs to achieve stack alignment.
9772         (thumb1_compute_save_reg_mask): Fix compiler warning.
9773         (arm_output_epilogue): Use offsets->saved_regs_mask.
9774         Adjust stack pointer by poping call clobered registers.
9775         (arm_expand_prologue): Use offsets->saved_regs_mask.
9776         Adjust stack pointer by pushing extra registers.
9777         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
9778
9779 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
9780
9781         PR tree-opt/35422
9782         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
9783         conversion to the operands of a multiplication.
9784
9785 2008-03-12  Richard Guenther  <rguenther@suse.de>
9786
9787         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
9788         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
9789         * timevar.def (TV_TREE_PHIPROP): Add.
9790         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
9791         pass description.  Use TV_TREE_PHIPROP.
9792         * tree-ssa-forwprop.c: Remove phiprop code.
9793
9794 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
9795
9796         PR middle-end/35549
9797         * omp-low.c (maybe_lookup_decl): Constify first argument.
9798         (use_pointer_for_field): Change last argument from bool to
9799         omp_context *.  Disallow shared copy-in/out in nested
9800         parallel if decl is shared in outer parallel too.
9801         (build_outer_var_ref, scan_sharing_clauses,
9802         lower_rec_input_clauses, lower_copyprivate_clauses,
9803         lower_send_clauses, lower_send_shared_vars): Adjust callers.
9804
9805 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
9806             Ira Rosen  <irar@il.ibm.com>
9807
9808         * tree-vectorizer.c (free_stmt_vec_info): New function.
9809         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
9810         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
9811         * tree-vectorizer.h (free_stmt_vec_info): Declare.
9812         * tree-vect-transform.c (vectorizable_conversion): Free
9813         vec_oprnds0 if it was allocated.
9814         (vect_permute_store_chain): Remove unused VECs.
9815         (vectorizable_store): Free VECs that are allocated in the..
9816         function.
9817         (vect_transform_strided_load, vectorizable_load): Likewise.
9818         (vect_remove_stores): Simplify the code.
9819         (vect_transform_loop): Move code to vect_remove_stores().
9820         Call vect_remove_stores() and free_stmt_vec_info().
9821
9822 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9823
9824         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
9825         TARGET_HPUX.  Revise comment.
9826         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
9827         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
9828         Use sr4 variant of `be' instruction when not generating PIC code.
9829         (attr_length_call): Adjust for above change.
9830
9831 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9832
9833         * ipa-reference.c (static_execute): Remove module_statics_const and
9834         associated setting code.
9835
9836 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9837
9838         PR target/35540
9839         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
9840         predicate for operand 1.
9841         (paritysi2_cmp): Use register_operand predicate for operand 2.
9842         Use earlyclobber modifier for operand 1.  Remove support for
9843         memory operands.
9844         (paritydi2_cmp): Use register_operand predicate for operand 3.
9845         Use earlyclobber modifier for operand 1.  Remove support for
9846         memory operands.
9847
9848 2008-03-11  Paul Brook  <paul@codesourcery.com>
9849             Vladimir Prus  <vladimir@codesourcery.com>
9850
9851         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
9852         (arm_compute_save_reg0_reg12_mask): Always
9853         check if register 11 must be saved.  Always safe hard frame pointer
9854         when frame_pointer_needeed.
9855         (arm_compute_save_reg_mask): Save IP and PC
9856         only with apcs frames.
9857         (arm_output_epilogue): Adjust Thumb2 codepath to
9858         be also invoked and work for ARM non-apcs frames.
9859         (arm_expand_prologue): Don't bother saving IP
9860         for non-apcs frame, since it's not clobbered by
9861         prologue code.  Implement non-apcs frame
9862         layout.
9863
9864 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9865
9866         PR rtl-optimization/35281
9867         * expr.c (convert_move): Use a new pseudo for the intermediate
9868         from_mode->word_mode result.
9869
9870 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
9871
9872         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
9873         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
9874         * toplev.c (compile_file): Don't call it.
9875
9876 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
9877
9878         PR middle-end/35526
9879         * expr.c (store_expr): Call emit_block_move if the mode
9880         of "temp" RTX is BLKmode.
9881
9882 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9883             Richard Guenther  <rguenther@suse.de>
9884
9885         PR tree-optimization/31358
9886         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
9887         the step with a NULL_TREE.
9888         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
9889         to sizetype if type is a pointer type.
9890         (add_candidate_1): Don't convert the base and step to
9891         the generic type if the orginal type is a pointer type.
9892         (add_iv_value_candidates): Use sizetype for the step
9893         if type is a pointer type.
9894         (cand_value_at): Likewise.
9895         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
9896         for pointer types.
9897         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
9898         Don't convert the tem affine to the type.
9899         (add_elt_to_tree): Use sizetype for the step if a pointer.
9900         Use POINTER_PLUS_EXPR for pointers.
9901         (aff_combination_to_tree): Use sizetype for the step if a
9902         pointer.
9903
9904 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
9905
9906         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
9907         Remove commutativity hint.
9908
9909 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
9910
9911         PR c/35438
9912         PR c/35439
9913         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
9914         errorneous type.  Check that v is a VAR_DECL.
9915
9916         PR middle-end/35099
9917         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
9918
9919 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
9920
9921         PR tree-optimization/35494
9922         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
9923         may be overriden at link and run time.
9924
9925 2008-03-10  Richard Guenther  <rguenther@suse.de>
9926
9927         PR tree-optimization/34677
9928         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
9929         (poolify_tree): Likewise.
9930         (modify_expr_template): Likewise.
9931         (poolify_modify_stmt): Likewise.
9932         (insert_fake_stores): Handle all component-ref style stores
9933         in addition to INDIRECT_REF.  Also handle complex types.
9934         Do not poolify the inserted load.
9935         (realify_fake_stores): Do not rebuild the tree but only
9936         make it a SSA_NAME copy.
9937         (init_pre): Remove initialzation of modify_expr_template.
9938         Do not allocate modify_expr_node_pool.
9939         (fini_pre): Do not free modify_expr_node_pool.
9940
9941 2008-03-10  Paul Brook  <paul@codesourcery.com>
9942
9943         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
9944         to avoid conflicts.
9945
9946 2008-03-10  Paul Brook  <paul@codesourcery.com>
9947             Mark Shinwell  <shinwell@codesourcery.com>
9948
9949         * config/arm/cortex-r4.md: New.
9950         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
9951         insn attributes.
9952         * config/arm/arm.md: Include cortex-r4.md.
9953         (insn): Add smmls, sdiv and udiv values.
9954         (generic_sched): Don't use generic scheduling for Cortex-R4.
9955         (arm_issue_rate): New function.
9956         (TARGET_SCHED_ISSUE_RATE): Define.
9957
9958 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
9959
9960         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
9961
9962 2008-03-10  Richard Guenther  <rguenther@suse.de>
9963
9964         * tree-ssa-pre.c (get_sccvn_value): Simplify.
9965         (compute_avail): Do not add stmt uses to AVAIL_OUT.
9966
9967 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
9968
9969         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
9970         Set default to true.
9971
9972 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9973
9974         * c.opt (Wsynth): Deprecate.
9975         * doc/invoke.texi (Option Summary, Warning Options): Document
9976         -Wno-format-contains-nul.
9977
9978 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
9979
9980         PR target/35496
9981         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
9982         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
9983
9984 2008-03-09  Ira Rosen  <irar@il.ibm.com>
9985
9986         * config/rs6000/rs6000.c (builtin_description): Rename vector
9987         left shift operations.
9988         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
9989         (altivec_vsl<VI_char>): Rename to ...
9990         (ashl<mode>3): ... new name.
9991         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
9992         gen_ashlv4si3.
9993         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
9994
9995 2008-03-08  Richard Guenther  <rguenther@suse.de>
9996
9997         * coverage.h (tree_coverage_counter_addr): Declare.
9998         * coverage.c (tree_coverage_counter_addr): New function.
9999         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
10000         before using again.
10001         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
10002         (tree_gen_one_value_profiler): Likewise.
10003         (tree_gen_ic_profiler): Likewise.
10004         (tree_gen_average_profiler): Likewise.
10005         (tree_gen_ior_profiler): Likewise.
10006
10007 2008-03-08  Richard Guenther  <rguenther@suse.de>
10008
10009         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
10010         (vn_binary_op_insert): Likewise.
10011         (vn_unary_op_lookup): Likewise.
10012         (vn_unary_op_insert): Likewise.
10013         (vn_nary_op_lookup): Declare.
10014         (vn_nary_op_insert): Likewise.
10015         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
10016         and binary hashes, use a single obstack for unary_op_pool
10017         and binary_op_pool.
10018         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
10019         a single struct vn_nary_op_s.  Store tree code length and
10020         a variable number of operands.
10021         (struct vn_reference_op_struct): Remove unused op2.
10022         (vn_reference_op_eq): Do not compare op2.
10023         (vn_reference_op_compute_hash): Do not compute hash of op2.
10024         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
10025         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
10026         with vn_nary_op_compute_hash.
10027         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
10028         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
10029         vn_nary_op_lookup.
10030         (vn_unary_op_insert, vn_binary_op_insert): Replace with
10031         vn_nary_op_insert.
10032         (visit_unary_op): Call nary functions.
10033         (visit_binary_op): Likewise.
10034         (process_scc): Adjust for struct vn_tables_s changes.
10035         (allocate_vn_table): Likewise.
10036         (free_vn_table): Likewise.
10037         * tree-vn.c (vn_add): Call nary functions.
10038         (vn_lookup): Likewise.
10039
10040 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
10041
10042         PR target/35498
10043         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
10044         wdst back after sync_compare_and_swapqhi_internal.
10045
10046 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
10047
10048         PR target/22152
10049         * config/i386/i386-modes.def (V1DI): New vector mode.
10050         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
10051         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
10052         (MMXMODE248): Ditto.
10053         (MMXMODE): Add V1DI mode.
10054         (mmxvecsize): Change DI mode to V1DI mode.
10055         ("mov<mode>): Use MMXMODEI8 mode iterator.
10056         ("*mov<mode>_internal_rex64"): Ditto.
10057         ("*mov<mode>_internal"): Ditto.
10058         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
10059         ("mmx_sub<mode>3"): Ditto.
10060         ("mmx_adddi3"): Remove insn pattern.
10061         ("mmx_subdi3"): Ditto.
10062         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
10063         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
10064         ("mmx_ashl<mode>3"): Ditto.
10065         ("mmx_lshrdi3"): Remove insn pattern.
10066         ("mmx_ashldi3"): Ditto.
10067         * config/i386/i386.c (classify_argument): Handle V1DImode.
10068         (function_arg_advance_32): Ditto.
10069         (function_arg_32): Ditto.
10070         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
10071         mmx_addv1di3 insn pattern.
10072         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
10073         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
10074         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
10075         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
10076         Remove definitions of built-in functions.
10077         (V1DI_type_node): New node.
10078         (v1di_ftype_v1di_int): Ditto.
10079         (v1di_ftype_v1di_v1di): Ditto.
10080         (v2si_ftype_v2si_si): Ditto.
10081         (v4hi_ftype_v4hi_di): Remove node.
10082         (v2si_ftype_v2si_di): Ditto.
10083         (ix86_init_mmx_sse_builtins): Handle V1DImode.
10084         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
10085         Redefine builtins using def_builtin_const with *_ftype_*_int node.
10086         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
10087         Add new builtins using def_builtin_const.
10088         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
10089         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
10090         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
10091         * config/i386/mmintrin.h (__v1di): New typedef.
10092         (_mm_add_si64): Cast arguments to __v1di type.
10093         (_mm_sub_si64): Ditto.
10094         (_mm_sll_pi16): Cast __count to __v4hi type.
10095         (_mm_sll_pi32): Cast __count to __v2si type.
10096         (_mm_sll_si64): Cast arguments to __v1di type.
10097         (_mm_srl_pi16): Cast __count to __v4hi type.
10098         (_mm_srl_pi32): Cast __count to __v2si type.
10099         (_mm_srl_si64): Cast arguments to __v1di type.
10100         (_mm_sra_pi16): Cast __count to __v4hi type.
10101         (_mm_sra_pi32): Cast __count to __v2si type.
10102         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
10103         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
10104         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
10105         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
10106         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
10107         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
10108         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
10109         (_mm_srai_pi32): Use __builtin_ia32_psradi.
10110         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
10111         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
10112         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
10113         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
10114
10115 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
10116
10117         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
10118
10119 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
10120
10121         PR target/35373
10122         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
10123         reg+const addressing for Altivec modes.  Don't generate reg+reg
10124         addressing for TFmode or TDmode quantities.
10125
10126 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
10127
10128         * c-common.c (vector_types_convertible_p): Call langhook
10129         instead of comptypes.
10130
10131 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10132
10133         PR tree-opt/35402
10134         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
10135         integral and scalar float variables which have a
10136         NULL DECL_INITIAL.
10137
10138 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
10139
10140         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
10141         dwarf_register_span hook when emitting unwind information for
10142         register-to-memory saves.
10143         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
10144         (rs6000_frame_related): Remove call to spe_synthesize_frame.
10145
10146 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
10147
10148         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
10149         for the same VAR_DECL.
10150
10151 2008-03-06  Tom Tromey  <tromey@redhat.com>
10152
10153         * treelang: Delete.
10154         * doc/standards.texi (Standards): Don't mention treelang.
10155         * doc/invoke.texi (Overall Options): Don't mention treelang.
10156         * doc/install.texi (Prerequisites): Don't mention bison or
10157         treelang.
10158         (Configuration): Don't mention treelang.
10159         (Building): Likewise.
10160         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
10161
10162 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
10163
10164         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
10165         word-extractions out of a multi-word object.
10166
10167 2008-03-06  Richard Guenther  <rguenther@suse.de>
10168
10169         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
10170         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
10171         result type and precision.
10172         * expr.c (get_inner_reference): Set unsignedp based on the result
10173         type of BIT_FIELD_REF.
10174         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
10175         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
10176         (try_instantiate_multiple_fields): Likewise.  Use the correct type
10177         for BIT_FIELD_REF.
10178         (sra_build_assignment): Likewise.
10179         (sra_build_elt_assignment): Likewise.
10180         (sra_explode_bitfield_assignment): Likewise.
10181         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
10182         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
10183         set BIT_FIELD_REF_UNSIGNED.
10184         (vectorizable_load): Likewise.
10185
10186 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
10187
10188         * cse.c (cse_extended_basic_block): Invalidate artificial defs
10189         at bb start.
10190
10191 2008-03-06  Richard Guenther  <rguenther@suse.de>
10192
10193         * alias.c (struct alias_set_entry): Move has_zero_child field
10194         to pack with alias_set.
10195
10196 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
10197
10198         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10199         32bit host.
10200
10201 2008-03-05  Ian Lance Taylor  <iant@google.com>
10202
10203         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
10204
10205 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
10206
10207         * fwprop.c (update_df): Support width and offset parameters of
10208         df_ref_create.
10209         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
10210         global_conflicts): Change DF_REF_EXTRACT to either
10211         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10212         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10213         * df-scan.c (df_ref_record, df_defs_record,
10214         df_ref_create_structure, df_def_record_1, df_uses_record,
10215         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
10216         df_bb_refs_collect, df_entry_block_defs_collect,
10217         df_exit_block_uses_collect): Support new width and offset fields.
10218         (ref_extract_pool): New storage pool.
10219         (df_free_ref): New function.
10220         (df_reg_chain_unlink, df_free_collection_rec,
10221         df_sort_and_compress_refs): Call df_free_ref.
10222         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
10223         of df_ref_extract.
10224         (df_ref_create_structure): Allocate df_ref_extract if offset and
10225         width fields are used.
10226         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
10227         (df_uses_record): Get offset and width from ZERO_EXTRACT 
10228         and SIGN_EXTRACT.
10229         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
10230         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10231         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10232         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
10233         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
10234         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
10235         (df_ref_extract): New structure.
10236         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
10237         (df_ref_create): Add width and offset parameters.
10238         
10239 2008-03-05  Richard Guenther  <rguenther@suse.de>
10240
10241         * tree-ssa-structalias.c (get_constraint_for_component_ref):
10242         Use ranges_overlap_p.
10243         (offset_overlaps_with_access): Rename
10244         to ranges_overlap_p and move ...
10245         * tree-flow-inline.h (ranges_overlap_p): ... here.
10246
10247         * tree.h (get_inner_reference, handled_component_p): Update
10248         comments.
10249
10250         * tree.h (record_component_aliases, get_alias_set,
10251         alias_sets_conflict_p, alias_sets_must_conflict_p,
10252         objects_must_conflict_p): Move declarations ...
10253         * alias.h (record_component_aliases, get_alias_set,
10254         alias_sets_conflict_p, alias_sets_must_conflict_p,
10255         objects_must_conflict_p): ... here.
10256         Include coretypes.h.
10257         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
10258
10259 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
10260
10261         * cfg.c: Include tree-flow.h.
10262         (remove_edge_raw): Call redirect_edge_var_map_clear.
10263         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
10264         * tree-flow-inline.h (redirect_edge_var_map_def): New.
10265         (redirect_edge_var_map_result): New.
10266         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
10267         PENDING_STMT use with redirect_edge_var_map_*.
10268         * tree-ssa.c (edge_var_maps): New definition.
10269         (redirect_edge_var_map_add): New.
10270         (redirect_edge_var_map_clear): New.
10271         (redirect_edge_var_map_dup): New.
10272         (redirect_edge_var_map_vector): New.
10273         (redirect_edge_var_map_destroy): New.
10274         (ssa_redirect_edge): Replace PENDING_STMT use with
10275         redirect_edge_var_map_*.
10276         (flush_pending_stmts): Same.
10277         (delete_tree_ssa): Destroy edge var map.
10278         * tree-flow.h (struct _edge_var_map): New.
10279         Define edge_var_map vector type.
10280         Declare redirect_edge_var_map_* prototypes.
10281         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
10282         * tree-cfg.c (reinstall_phi_args): Replace
10283         PENDING_STMT use with redirect_edge_var_map_*.
10284
10285 2008-03-05  Richard Guenther  <rguenther@suse.de>
10286
10287         PR tree-optimization/35472
10288         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
10289         whose single use_stmt has a overlapping set of loaded and
10290         stored symbols as that use_stmt might be a noop assignment then.
10291
10292 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
10293
10294         * gthr-rtems.h: Implement __gthread_mutex_destroy.
10295
10296 2008-03-05  Richard Guenther  <rguenther@suse.de>
10297
10298         PR c++/35336
10299         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
10300         should be constants.
10301         * tree-cfg.c (verify_expr): Verify it.
10302         * fold-const.c (fold_truthop): Remove code generating
10303         BIT_FIELD_REFs of structure bases.
10304         (fold_binary): Likewise.
10305         (fold_ternary): Position and size of BIT_FIELD_REFs are
10306         always host integers.
10307         (make_bit_field_ref): Remove.
10308         (optimize_bit_field_compare): Remove.
10309         (all_ones_mask_p): Remove.
10310
10311 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
10312
10313         PR gcc/33009
10314         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
10315         (split_block_and_df_analyze): New. Split basic block and rebuild
10316         dataflow.
10317         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
10318         SPLIT_BLOCK.
10319         (split_pattern_seq): Likewise.
10320         (erase_matching_seqs): Likewise.
10321         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
10322
10323 2008-03-04  Geoff Keating  <geoffk@apple.com>
10324
10325         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
10326         declaration and code.
10327         (tree_invalid_nonnegative_warnv_p): Likewise.
10328
10329 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
10330
10331         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
10332         examples.  Truncate option-names then causing overfull hbox.
10333
10334 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10335
10336         PR target/35222
10337         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
10338         on hpux10.
10339         * configure: Rebuilt.
10340
10341 2008-03-04  Rafael Espindola  <espindola@google.com>
10342
10343         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
10344         (tree_unary_nonnegative_warnv_p): New.
10345         (tree_binary_nonnegative_warnv_p): New.
10346         (tree_single_nonnegative_warnv_p): New.
10347         (tree_invalid_nonnegative_warnv_p): New.
10348         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
10349
10350 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10351
10352         PR 28322
10353         * opts.c (handle_option): Postpone 'unknown option' errors only for
10354         warning options.
10355
10356 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
10357
10358         PR target/35453
10359         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
10360         (_SIDD_XXX): This.
10361
10362 2008-03-04  Rafael Espindola  <espindola@google.com>
10363
10364         * fold-const.c (tree_unary_nonzero_warnv_p): New.
10365         (tree_binary_nonzero_warnv_p): New.
10366         (tree_single_nonzero_warnv_p): New.
10367         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
10368
10369 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
10370
10371         PR middle-end/35456
10372         * fold-const.c (fold_cond_expr_with_comparison): Prevent
10373         transformations for modes that have signed zeros.
10374         * ifcvt.c (noce_try_abs): Ditto.
10375
10376 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
10377
10378         * config/i386/i386.c (override_options): Force
10379         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
10380
10381 2008-03-04  Jan Hubicka  <jh@suse.cz>
10382
10383         PR c++/35262
10384         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
10385         in last commit.
10386
10387 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10388
10389         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
10390         label to probe the stack.
10391
10392 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
10393
10394         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
10395         (__gthr_win32_mutex_destroy): Declare.
10396         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
10397         __gthr_win32_mutex_destroy.
10398         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
10399
10400 2008-03-03  Jan Hubicka  <jh@suse.cz>
10401
10402         PR c++/35262
10403         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
10404         aggressive on inlining cold calls.
10405
10406 2008-03-03  Richard Guenther  <rguenther@suse.de>
10407
10408         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
10409         struct copies into the expression table.
10410         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
10411         (try_to_simplify): Likewise.
10412         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
10413         integral and pointer arguments which do not change the
10414         precision to NOP_EXPRs.
10415         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
10416         VIEW_CONVERT_EXPR case.
10417
10418 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
10419
10420         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
10421         defined in a loop at depth 0 is invariant.
10422         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
10423         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
10424         be called at loop depth 0.
10425
10426 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
10427
10428         PR driver/35420
10429         * gcc.c (process_command): Update copyright notice dates.
10430         * gcov.c (print_version): Likewise.
10431         * gcov-dump.c (print_version): Likewise.
10432         * mips-tfile.c (main): Likewise.
10433         * mips-tdump.c (main): Likewise.
10434
10435 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10436
10437         PR 24924
10438         * c-common.c (flag_permissive): Delete.
10439         (constant_expression_warnings): Check flags first.
10440         (constant_expression_error): New.
10441         * c-common.h (flag_permissive): Delete.
10442         (constant_expression_error): Declare.
10443         * flags.h (flag_permissive): Declare. Update description.
10444         * diagnostic.c (pedwarn): Update.
10445         (permerror): New.
10446         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
10447         (permissive_error_kind): New.
10448         * toplev.c (flag_permissive): Define. Update description.
10449         * toplev.h (permissive_error_kind): Declare.
10450         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
10451         (pedwarn_c90): Use pedantic_warning_kind.
10452         * c-opts.c (c_common_post_options): flag_permissive does not affect
10453         flag_pedantic_errors.
10454
10455 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
10456
10457         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
10458         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
10459         __absvsi2, __absvDI2): Use unsigned arithmetic.
10460
10461 2008-03-02  Andi Kleen  <ak@suse.de>
10462             Richard Guenther  <rguenther@suse.de>
10463
10464         * struct-equiv.c: Remove file.
10465         * cfg_cleanup.c (condjump_equiv_p): Remove.
10466         * Makefile.in (OBJS-common): Remove struct-equiv.o.
10467         (struct-equiv.o): Remove rule.
10468         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
10469         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
10470         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
10471
10472 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10473
10474         * ifcvt.c (noce_process_if_block): Try to handle only the then
10475         block if the else block exists but isn't suitable.
10476
10477 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
10478
10479         PR gcc/35063
10480         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
10481         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
10482         regression from previous patch.
10483
10484 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
10485
10486         PR gcc/35063
10487         * gthr.h: Add __gthread_mutex_destroy as a function that must be
10488         implemented.
10489         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
10490         * gthr-single.h (__gthread_mutex_destroy): Likewise.
10491         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
10492         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
10493         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
10494         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
10495         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
10496         (__gthread_mutex_destroy_function): Rename to
10497         __gthread_mutex_destroy.
10498         * gthr-dce.h (__gthread_mutex_destroy): Call
10499         pthread_mutex_destroy.
10500         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
10501         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
10502         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
10503
10504 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10505
10506         * df-scan.c (df_ref_chain_change_bb): Simplify.
10507         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
10508         set_block_for_insn if there's any change.
10509         * df.h ((df_insn_change_bb): Fix prototype.
10510         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
10511         df_insn_change_bb, don't call set_block_for_insn.
10512         * emit-rtl.c (reorder_insns): Likewise.
10513         * haifa-sched.c (move_insn): Likewise.
10514
10515 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10516
10517         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
10518
10519 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
10520
10521         * tree-flow-inline.h (next_readonly_imm_use): Return
10522         NULL_USE_OPERAND_P after the end.
10523
10524 2008-03-01  Richard Guenther  <rguenther@suse.de>
10525
10526         PR tree-optimization/35411
10527         * tree-sra.c (sra_build_assignment): Split conversion to
10528         final type to a separate statement if we are not assigning
10529         to a register.
10530
10531 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10532
10533         * fold-const.c (fold_convertible_p): Correct the logic to follow
10534         that in fold_convert().
10535
10536 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
10537
10538         PR c++/35315
10539         * tree-inline.c (build_duplicate_type): When we make a
10540         duplicate type, make it unique in the canonical types system.
10541
10542 2008-02-29  Tom Tromey  <tromey@redhat.com>
10543
10544         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
10545         input_file_stack_history, input_file_stack_restored): Remove.
10546         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10547         * input.h (struct file_stack): Remove.
10548         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
10549         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
10550         Likewise.
10551         * diagnostic.h (struct diagnostic_context) <last_module>: Change
10552         type.
10553         (diagnostic_last_module_changed): Add 'map' argument.
10554         (diagnostic_set_last_function): Likewise.
10555         * diagnostic.c (undiagnostic_report_current_module): Iterate using
10556         line map, not input_file_stack.
10557         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
10558
10559 2008-02-29  Paul Brook  <paul@codesourcery.com>
10560
10561         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
10562
10563 2008-02-29  Paul Brook  <paul@codesourcery.com>
10564
10565         * config/arm/ieee754-df.S (muldf3): Use RET macros.
10566
10567 2008-02-29  Richard Guenther  <rguenther@suse.de>
10568
10569         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
10570         vn_lookup_or_add.
10571         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
10572         value for comparing for a store match.
10573         (simplify_unary_expression): Do nothing for SSA_NAMEs.
10574         (try_to_simplify): Do not do a full-blown reference lookup.
10575
10576 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10577
10578         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
10579         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
10580
10581         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
10582
10583 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
10584
10585         * tree-loop-linear.c (try_interchange_loops): Compare memory access
10586         strides against cache sizes.
10587
10588 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10589
10590         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
10591         constant to fpul.
10592
10593 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
10594
10595         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
10596         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
10597         is smaller than the original promoted value.
10598         (simplify_subreg): If OP is a SUBREG, try to preserve its
10599         SUBREG_PROMOTED_VAR_P information.
10600
10601 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
10602
10603         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
10604         (VN_INFO_GET): Allocate new objects on the obstack.
10605         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
10606         for rpo_numbers_temp, for consistency.
10607         (free_scc_vn): Free the obstack.
10608
10609 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
10610
10611         * doc/invoke.texi: Document -ftree-loop-distribution.
10612         * tree-loop-distribution.c: New.
10613         * tree-pass.h (pass_loop_distribution): New.
10614         * graphds.h (struct graph): Add htab_t indices.
10615         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
10616         * tree-vectorizer.c (rename_variables_in_loop): Extern.
10617         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
10618         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
10619         * tree-data-ref.c (debug_data_dependence_relations): New.
10620         (dump_data_dependence_relation): Also print data references.
10621         (free_data_ref): Extern.
10622         (same_access_functions): Moved...
10623         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
10624         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10625         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
10626         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
10627         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
10628         (stmts_from_loop): Skip LABEL_EXPR.
10629         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
10630         New.
10631         (build_rdg): Initialize rdg->indices htab.
10632         (free_rdg, stores_from_loop, ref_base_address,
10633         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
10634         have_similar_memory_accesses_1, ref_base_address_1,
10635         remove_similar_memory_refs): New.
10636         * tree-data-ref.h: Depend on tree-chrec.h.
10637         (debug_data_dependence_relations, free_data_ref): Declared.
10638         (same_access_functions): ... here.
10639         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
10640         New.
10641         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
10642         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
10643         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
10644         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
10645         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
10646         rdg_vertex_for_stmt): Declared.
10647         (struct rdg_edge): Add level.
10648         (RDGE_LEVEL): New.
10649         (free_rdg, stores_from_loop, remove_similar_memory_refs,
10650         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
10651         Declared.
10652         (rdg_has_similar_memory_accesses): New.
10653         * tree-vect-analyze.c: Remove unused static decls.
10654         * lambda.h (dependence_level): New.
10655         * common.opt (ftree-loop-distribution): New.
10656         * tree-flow.h (mark_virtual_ops_in_bb, 
10657         slpeel_tree_duplicate_loop_to_edge_cfg,
10658         rename_variables_in_loop): Declared.
10659         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
10660         (OBJS-common): Add tree-loop-distribution.o.
10661         (tree-loop-distribution.o): New rule.
10662         * tree-cfg.c (mark_virtual_ops_in_bb): New.
10663         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
10664         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
10665
10666 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
10667
10668         PR target/33963
10669         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
10670         other than structures and unions.
10671
10672 2008-02-28  Richard Guenther  <rguenther@suse.de>
10673
10674         Revert:
10675         2008-02-26  Richard Guenther  <rguenther@suse.de>
10676
10677         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10678         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10679         (lookup_decl_from_uid): Declare.
10680         (remove_decl_from_map): Likewise.
10681         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10682         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10683         (decl_for_uid_map): New global hashtable mapping DECL_UID
10684         to the decl tree.
10685         (init_ttree): Allocate it.
10686         (insert_decl_to_uid_decl_map): New helper function.
10687         (make_node_stat): Insert new decls into the map.
10688         (copy_node_stat): Likewise.
10689         (lookup_decl_from_uid): New function.
10690         (remove_decl_from_map): Likewise.
10691         (print_decl_for_uid_map_statistics): New helper.
10692         (dump_tree_statistics): Call it.
10693
10694         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10695         (referenced_var_iterator): Adjust.
10696         (FOR_EACH_REFERENCED_VAR): Adjust.
10697         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10698         (num_referenced_vars): Adjust.
10699         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10700         (first_referenced_var): Remove.
10701         (end_referenced_vars_p): Likewise.
10702         (next_referenced_var): Likewise.
10703         (referenced_var_iterator_set): New helper function.
10704         * tree-dfa.c (referenced_var_lookup): Adjust.
10705         (referenced_var_check_and_insert): Likewise.
10706         (remove_referenced_var): Likewise.
10707         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10708         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10709         (verify_call_clobbering): Likewise.
10710         (verify_memory_partitions): Likewise.
10711         (init_tree_ssa): Allocate bitmap instead of hashtable for
10712         referenced_vars.
10713         (delete_tree_ssa): Adjust.
10714         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10715         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10716         (compute_tag_properties): Likewise.
10717         (set_initial_properties): Likewise.
10718         (find_partition_for): Likewise.
10719         (update_reference_counts): Likewise.
10720         (dump_may_aliases_for): Likewise.
10721         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10722         (add_call_clobber_ops): Likewise.
10723         (add_call_read_ops): Likewise.
10724         (get_asm_expr_operands): Likewise.
10725         * tree-into-ssa.c (dump_decl_set): Likewise.
10726         (update_ssa): Likewise.
10727         * tree-sra.c (scan_function): Likewise.
10728         (decide_instantiations): Likewise.
10729         (scalarize_parms): Likewise.
10730         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10731         (dsa_named_for): Likewise.
10732         * tree-ssa-structalias.c (update_alias_info): Likewise.
10733         (merge_smts_into): Likewise.
10734
10735 2008-02-27  David Daney  <ddaney@avtrex.com>
10736
10737         PR target/34409
10738         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
10739         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
10740         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
10741         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
10742         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
10743
10744 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
10745
10746         PR target/25477
10747         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
10748         (BUILT_IN_NEXTTOWARD): Remove.
10749         (BUILT_IN_NEXTTOWARDF): Ditto.
10750         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
10751         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
10752
10753 2008-02-27  Tom Tromey  <tromey@redhat.com>
10754
10755         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
10756         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
10757
10758 2008-02-27  Jan Beulich  <jbeulich@novell.com>
10759
10760         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
10761         update the respective field on newdecl.
10762
10763 2008-02-27  Revital Eres  <eres@il.ibm.com>
10764
10765         PR rtl-optimization/34999
10766         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
10767         crossing edges that ends with a call insn.
10768         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
10769         call insn and clear the EDGE_CROSSING flag of the crossing edge
10770         when fixing fallthru edges.
10771
10772 2008-02-27  Richard Guenther  <rguenther@suse.de>
10773
10774         PR middle-end/35390
10775         * fold-const.c (fold_unary): Return the correct argument,
10776         converted to the result type.
10777
10778 2008-02-27  Richard Guenther  <rguenther@suse.de>
10779
10780         PR middle-end/34971
10781         * expr.c (expand_expr_real_1): Assert on rotates that operate
10782         on partial modes.
10783         * fold-const.c (fold_binary): Use the types precision, not the
10784         bitsize of the mode if folding rotate expressions.  Build rotates
10785         only for full modes.
10786
10787 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
10788
10789         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
10790         and CPP_PRAGMA_EOL.
10791         * c-pragma.c (pragma_ns_name): New typedef.
10792         (registered_pp_pragmas): New variable.
10793         (c_pp_lookup_pragma): New function.
10794         (c_register_pragma_1): If flag_preprocess_only, do nothing
10795         for non-expanded pragmas, for expanded ones push pragma's
10796         namespace and name into registered_pp_pragmas vector.
10797         (c_invoke_pragma_handler): Register OpenMP pragmas even when
10798         flag_preprocess_only, don't register GCC pch_preprocess
10799         pragma if flag_preprocess_only.
10800         * c-opts.c (c_common_init): Call init_pragma even if
10801         flag_preprocess_only.
10802         * c-pragma.c (c_pp_lookup_pragma): New prototype.
10803         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
10804         cpp_register_pragma if flag_preprocess_only.
10805
10806 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10807
10808         PR c/28800
10809         * c-parser.c (c_parser_translation_unit): Warn for empty
10810         translation unit, not empty source file.
10811
10812 2008-02-26  Paul Brook  <paul@codesourcery.com>
10813
10814         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
10815         operand for Thumb-2.
10816         * config/arm/arm.h (reg_class): Add CORE_REGS.
10817         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
10818         (BASE_REG_CLASS): Use CORE_REGS.
10819         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
10820         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
10821         (REGNO_OK_FOR_INDEX_P): Exclude SP.
10822         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
10823         ARM_REGNO_OK_FOR_INDEX_P.
10824         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
10825         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
10826         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
10827         (ldm/stm peepholes): Ditto.
10828         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
10829         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
10830         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
10831         * config/arm/constraints.md: Enable "k" constraint on ARM.
10832
10833 2008-02-27  Ben Elliston  <bje@au.ibm.com>
10834
10835         * config/rs6000/rs6000.c: Annotate cache line size field in all
10836         instances of struct processor_costs.
10837
10838 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
10839
10840         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
10841         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
10842         jump_bypass): New counters.
10843         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
10844         * dce.c (gate_ud_dce): Same.
10845         (gate_fast_dce): Same.
10846         * dse.c (gate_dse1): New function.
10847         (gate_dse2): New function.
10848         (gate_dse): Merge results of new gate functions.
10849         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
10850         (gate_handle_jump_bypass): Add dbg_cnt.
10851         (gate_handle_gcse): Add dbg_cnt.
10852         * ifcvt.c (gate_handle_if_conversion): Same.
10853         (gate_handle_if_after_combine): Same.
10854         (gate_handle_if_after_reload): Same.
10855         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
10856
10857 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
10858
10859         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
10860         line sizes.
10861         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
10862
10863 2008-02-26  Jason Merrill  <jason@redhat.com>
10864
10865         PR c++/35315
10866         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
10867         alone if it's the naming decl for the type's main variant.
10868
10869 2008-02-26  Tom Tromey  <tromey@redhat.com>
10870
10871         * system.h (USE_MAPPED_LOCATION): Poison.
10872         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
10873         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
10874         (make_goto_expr_edges): Likewise.
10875         (remove_bb): Likewise.
10876         (execute_warn_function_return): Likewise.
10877         * basic-block.h (struct edge_def) <goto_locus>: Change type to
10878         location_t.
10879         * c-common.c (fname_decl): Remove old location code.
10880         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
10881         location code.
10882         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
10883         variant.
10884         (ASM_INPUT_SOURCE_LOCATION): Likewise.
10885         (gen_rtx_ASM_INPUT): Likewise.
10886         (gen_rtx_ASM_INPUT_loc): Likewise.
10887         (get_rtx_asm_OPERANDS): Remove.
10888         * cfglayout.c (insn_locators_alloc): Remove old location code.
10889         (set_curr_insn_source_location): Likewise.
10890         (curr_insn_locator): Likewise.
10891         * print-tree.c (print_node): Remove old location code.
10892         * tree-mudflap.c (mf_varname_tree): Remove old location code.
10893         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
10894         * cfgexpand.c (expand_gimple_cond_expr): Don't use
10895         location_from_locus.
10896         (construct_exit_block): Remove old location code.
10897         * emit-rtl.c (force_next_line_note): Remove old location code.
10898         * profile.c (branch_prob): Remove old location code.
10899         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
10900         LOC_LINE): Remove old-location variants.
10901         * langhooks.c (lhd_print_error_function): Remove old location
10902         code.
10903         * configure, config.in: Rebuilt.
10904         * configure.ac (--enable-mapped-location): Remove.
10905         * c-decl.c (c_init_decl_processing): Remove old location code.
10906         (finish_function): Likewise.
10907         * recog.c (decode_asm_operands): Remove old location code.
10908         * c-pch.c (c_common_read_pch): Remove old location code.
10909         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
10910         variants.
10911         * gimple-low.c (lower_function_body): Remove old location code.
10912         * toplev.c (unknown_location): Remove.
10913         (push_srcloc): Remove old-location variant.
10914         (process_options): Remove old location code.
10915         (lang_dependent_init): Likewise.
10916         * input.h (UNKNOWN_LOCATION): Move definition.
10917         (location_t): Undeprecate.
10918         (source_locus): Remove.
10919         (location_from_locus): Remove.
10920         (struct location_s): Remove.
10921         Remove all old-location code.
10922         (input_line, input_filename): Remove.
10923         * final.c (final_scan_insn): Remove old location code.
10924         * diagnostic.c (diagnostic_build_prefix): Remove
10925         USE_MAPPED_LOCATION test.
10926         * tree.h (gimple_stmt) <locus>: Now a location_t.
10927         (tree_exp) <locus>: Likewise.
10928         (DECL_IS_BUILTIN): Remove old-location variant.
10929         (annotate_with_file_line, annotate_with_locus): Likewise.
10930         (expr_locus, set_expr_locus): Update.
10931         * tree.c (build1_stat): Remove old location code.
10932         (last_annotated_node): Remove.
10933         (annotate_with_file_line): Remove old-location variant.
10934         (annotate_with_locus): Likewise.
10935         (expr_location): Remove old location code.
10936         (set_expr_location): Likewise.
10937         (expr_has_location): Likewise.
10938         (expr_locus): Likewise.
10939         (set_expr_locus): Likewise.
10940         (expr_filename): Don't use location_from_locus.
10941         (expr_lineno): Likewise.
10942         * rtl-error.c (location_for_asm): Remove old location code.
10943         * c-lex.c (cb_line_change): Remove old location code.
10944         (fe_file_change): Likewise.
10945         (cb_def_pragma): Likewise.
10946         (c_lex_with_flags): Likewise.
10947         * gengtype.c (do_typedef): Don't special-case location types.
10948         (define_location_structures): Remove.
10949         (main): Don't call define_location_structures.
10950         * tree-pretty-print.c (dump_implicit_edges): Remove old location
10951         code.
10952
10953 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10954
10955         PR 26264
10956         * builtins.def (BUILT_IN_STDARG_START): Remove.
10957         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
10958         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10959         * tree-inline.c (inline_forbidden_p_1): Likewise.
10960         
10961 2008-02-26  Richard Guenther  <rguenther@suse.de>
10962
10963         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10964         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10965         (lookup_decl_from_uid): Declare.
10966         (remove_decl_from_map): Likewise.
10967         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10968         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10969         (decl_for_uid_map): New global hashtable mapping DECL_UID
10970         to the decl tree.
10971         (init_ttree): Allocate it.
10972         (insert_decl_to_uid_decl_map): New helper function.
10973         (make_node_stat): Insert new decls into the map.
10974         (copy_node_stat): Likewise.
10975         (lookup_decl_from_uid): New function.
10976         (remove_decl_from_map): Likewise.
10977         (print_decl_for_uid_map_statistics): New helper.
10978         (dump_tree_statistics): Call it.
10979
10980         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10981         (referenced_var_iterator): Adjust.
10982         (FOR_EACH_REFERENCED_VAR): Adjust.
10983         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10984         (num_referenced_vars): Adjust.
10985         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10986         (first_referenced_var): Remove.
10987         (end_referenced_vars_p): Likewise.
10988         (next_referenced_var): Likewise.
10989         (referenced_var_iterator_set): New helper function.
10990         * tree-dfa.c (referenced_var_lookup): Adjust.
10991         (referenced_var_check_and_insert): Likewise.
10992         (remove_referenced_var): Likewise.
10993         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10994         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10995         (verify_call_clobbering): Likewise.
10996         (verify_memory_partitions): Likewise.
10997         (init_tree_ssa): Allocate bitmap instead of hashtable for
10998         referenced_vars.
10999         (delete_tree_ssa): Adjust.
11000         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11001         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11002         (compute_tag_properties): Likewise.
11003         (set_initial_properties): Likewise.
11004         (find_partition_for): Likewise.
11005         (update_reference_counts): Likewise.
11006         (dump_may_aliases_for): Likewise.
11007         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11008         (add_call_clobber_ops): Likewise.
11009         (add_call_read_ops): Likewise.
11010         (get_asm_expr_operands): Likewise.
11011         * tree-into-ssa.c (dump_decl_set): Likewise.
11012         (update_ssa): Likewise.
11013         * tree-sra.c (scan_function): Likewise.
11014         (decide_instantiations): Likewise.
11015         (scalarize_parms): Likewise.
11016         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11017         (dsa_named_for): Likewise.
11018         * tree-ssa-structalias.c (update_alias_info): Likewise.
11019         (merge_smts_into): Likewise.
11020
11021 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11022
11023         PR 34351
11024         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
11025         * c-opts.c (c_common_handle_option): Wall enables
11026         Wvolatile-register-var.
11027         * common.opt: Move Wvolatile-register-var to...
11028         * c.opt: ...here.
11029         
11030 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11031
11032         * common.opt (Wlarger-than=): New.
11033         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
11034         -Wlarger-than=.
11035         * opts.c (common_handle_option): Handle -Wlarger-than=.
11036         * optc-gen.awk: Likewise.
11037         * opth-gen.awk: Likewise.
11038         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
11039         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11040         
11041 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11042
11043         * c-common.c (match_case_to_enum_1): Add appropriate
11044         OPT_W* parameter to warning.
11045         (c_do_switch_warnings): Likewise.
11046         * c-typeck.c (warning_init): Add one more parameter following
11047         'warning' function.
11048         (push_init_level): Update call to warning_init.
11049         (pop_init_level): Likewise.
11050         (add_pending_init): Likewise.
11051         (output_init_element: Likewise.
11052
11053 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11054
11055         PR 28322
11056         * toplev.c (toplev_main): If there are warnings or error, print
11057         errors for ignored options.
11058         * opts.c (ignored_options): New static variable.
11059         (postpone_unknown_option_error): New.
11060         (print_ignored_options): New.
11061         (handle_option): Postpone errors for unknown -Wno-* options.
11062         * opts.h (print_ignored_options): Declare.
11063         
11064 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
11065
11066         * config/mips/mips.md (loadgp_blockage, blockage): Change type
11067         to "ghost".
11068
11069 2008-02-25  Richard Guenther  <rguenther@suse.de>
11070
11071         Revert:
11072         2008-02-25  Richard Guenther  <rguenther@suse.de>
11073
11074         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11075         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11076         (lookup_decl_from_uid): Declare.
11077         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11078         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11079         (decl_for_uid_map): New global hashtable mapping DECL_UID
11080         to the decl tree.
11081         (init_ttree): Allocate it.
11082         (insert_decl_to_uid_decl_map): New helper function.
11083         (make_node_stat): Insert new decls into the map.
11084         (copy_node_stat): Likewise.
11085         (lookup_decl_from_uid): New function.
11086         (print_decl_for_uid_map_statistics): New helper.
11087         (dump_tree_statistics): Call it.
11088
11089         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11090         (referenced_var_iterator): Adjust.
11091         (FOR_EACH_REFERENCED_VAR): Adjust.
11092         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11093         (num_referenced_vars): Adjust.
11094         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11095         (first_referenced_var): Remove.
11096         (end_referenced_vars_p): Likewise.
11097         (next_referenced_var): Likewise.
11098         (referenced_var_iterator_set): New helper function.
11099         * tree-dfa.c (referenced_var_lookup): Adjust.
11100         (referenced_var_check_and_insert): Likewise.
11101         (remove_referenced_var): Likewise.
11102         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11103         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11104         (verify_call_clobbering): Likewise.
11105         (verify_memory_partitions): Likewise.
11106         (init_tree_ssa): Allocate bitmap instead of hashtable for
11107         referenced_vars.
11108         (delete_tree_ssa): Adjust.
11109         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11110         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11111         (compute_tag_properties): Likewise.
11112         (set_initial_properties): Likewise.
11113         (find_partition_for): Likewise.
11114         (update_reference_counts): Likewise.
11115         (dump_may_aliases_for): Likewise.
11116         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11117         (add_call_clobber_ops): Likewise.
11118         (add_call_read_ops): Likewise.
11119         (get_asm_expr_operands): Likewise.
11120         * tree-into-ssa.c (dump_decl_set): Likewise.
11121         (update_ssa): Likewise.
11122         * tree-sra.c (scan_function): Likewise.
11123         (decide_instantiations): Likewise.
11124         (scalarize_parms): Likewise.
11125         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11126         (dsa_named_for): Likewise.
11127         * tree-ssa-structalias.c (update_alias_info): Likewise.
11128         (merge_smts_into): Likewise.
11129
11130 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
11131
11132         PR fortran/29549
11133         * doc/invoke.texi (-fcx-limited-range): Document new option.
11134         * toplev.c (process_options): Handle -fcx-fortran-rules.
11135         * common.opt: Add documentation for -fcx-fortran-rules.
11136
11137 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
11138
11139         PR c/35162
11140         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
11141         actual behaviour and C99.
11142         
11143 2008-02-26  Ben Elliston  <bje@au.ibm.com>
11144
11145         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
11146         (ASM_CPU_POWER6_SPEC): Likewise.
11147         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
11148         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
11149         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
11150
11151 2008-02-25  Richard Guenther  <rguenther@suse.de>
11152
11153         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
11154         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
11155         (lookup_decl_from_uid): Declare.
11156         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
11157         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
11158         (decl_for_uid_map): New global hashtable mapping DECL_UID
11159         to the decl tree.
11160         (init_ttree): Allocate it.
11161         (insert_decl_to_uid_decl_map): New helper function.
11162         (make_node_stat): Insert new decls into the map.
11163         (copy_node_stat): Likewise.
11164         (lookup_decl_from_uid): New function.
11165         (print_decl_for_uid_map_statistics): New helper.
11166         (dump_tree_statistics): Call it.
11167
11168         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
11169         (referenced_var_iterator): Adjust.
11170         (FOR_EACH_REFERENCED_VAR): Adjust.
11171         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
11172         (num_referenced_vars): Adjust.
11173         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
11174         (first_referenced_var): Remove.
11175         (end_referenced_vars_p): Likewise.
11176         (next_referenced_var): Likewise.
11177         (referenced_var_iterator_set): New helper function.
11178         * tree-dfa.c (referenced_var_lookup): Adjust.
11179         (referenced_var_check_and_insert): Likewise.
11180         (remove_referenced_var): Likewise.
11181         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
11182         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11183         (verify_call_clobbering): Likewise.
11184         (verify_memory_partitions): Likewise.
11185         (init_tree_ssa): Allocate bitmap instead of hashtable for
11186         referenced_vars.
11187         (delete_tree_ssa): Adjust.
11188         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
11189         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
11190         (compute_tag_properties): Likewise.
11191         (set_initial_properties): Likewise.
11192         (find_partition_for): Likewise.
11193         (update_reference_counts): Likewise.
11194         (dump_may_aliases_for): Likewise.
11195         * tree-ssa-operands.c (add_virtual_operand): Likewise.
11196         (add_call_clobber_ops): Likewise.
11197         (add_call_read_ops): Likewise.
11198         (get_asm_expr_operands): Likewise.
11199         * tree-into-ssa.c (dump_decl_set): Likewise.
11200         (update_ssa): Likewise.
11201         * tree-sra.c (scan_function): Likewise.
11202         (decide_instantiations): Likewise.
11203         (scalarize_parms): Likewise.
11204         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
11205         (dsa_named_for): Likewise.
11206         * tree-ssa-structalias.c (update_alias_info): Likewise.
11207         (merge_smts_into): Likewise.
11208
11209 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
11210
11211         PR target/35258
11212         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
11213         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
11214         * alias.h (nonoverlapping_memrefs_p): Likewise.
11215
11216 2008-02-25  Jan Beulich  <jbeulich@novell.com>
11217
11218         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
11219         * config/i386/netware-libgcc.exp: Add __bswap?i2,
11220         __emultls_get_address, __emultls_register_common,
11221         __floatundi?f, and _Unwind_GetIPInfo.
11222         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
11223         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
11224         (gen_regparm_prefix): Likewise.
11225         (i386_nlm_encode_section_info): Sync with
11226         config/i386/winnt.c:i386_pe_encode_section_info().
11227         (i386_nlm_maybe_mangle_decl_assembler_name): New.
11228         i386_nlm_mangle_decl_assembler_name): New.
11229         (netware_override_options): New.
11230         * config/i386/netware.h (netware_override_options): Declare.
11231         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
11232         (i386_nlm_mangle_decl_assembler_name): Declare.
11233         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
11234
11235 2008-02-25  Ben Elliston  <bje@au.ibm.com>
11236
11237         PR other/32948
11238         * c-decl.c (grokdeclarator): Remove unused local variables
11239         `typedef_type' and `type_as_written'.
11240         * bb-reorder.c
11241         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
11242         unused local variable `has_hot_blocks'.
11243         (fix_crossing_conditional_branches): Remove unused local variable
11244         `prev_bb'.
11245         
11246 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
11247
11248         PR middle-end/19984
11249         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
11250         using DEF_C99_BUILTIN.
11251         (BUILT_IN_NANF): Ditto.
11252         (BUILT_IN_NANL): Ditto.
11253
11254 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
11255             Revital Eres  <eres@il.ibm.com>
11256
11257         * modulo-sched.c (calculate_must_precede_follow): Address TODO
11258         regarding the order of two dependent insns in the same row.
11259
11260 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
11261
11262         * stor-layout.c (layout_decl): Do not bump the alignment of a
11263         bit-field to more than byte alignment if it is packed.
11264
11265 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
11266
11267         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
11268         e300c2 and e300c3.
11269
11270 2008-02-24  Diego Novillo  <dnovillo@google.com>
11271
11272         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
11273
11274         PR 33738
11275         * tree-vrp.c (vrp_evaluate_conditional): With
11276         -Wtype-limits, emit a warning when comparing against a
11277         constant outside the natural range of OP0's type.
11278         * c.opt (Wtype-limits): Move ...
11279         * common.opt (Wtype-limits): ... here.
11280
11281 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
11282
11283         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
11284         * config/rs6000/e300c2c3.md: New file.
11285         * config/rs6000/rs6000.c (processor_costs): Add new costs for
11286         e300c2 and e300c3.
11287         (rs6000_override_options): Add e300c2 and e300c3 cases to
11288         processor_target_table. Do not allow usage of Altivec or Spe
11289         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
11290         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
11291         * config/rs6000/rs6000.h (processor_type): Add
11292         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
11293         (ASM_CPU_SPEC): Add e300c2 and e300c3.
11294         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
11295         and ppce300c3. Include e300c2c3.md.
11296
11297 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
11298
11299         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
11300         instead of TARGET_STRICT_ALIGN.
11301
11302 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
11303
11304         * explow.c (memory_address): Assert that the generated address is
11305         valid.
11306
11307 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
11308
11309         PR target/25477
11310         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
11311         * config/darwin-ppc-ldouble-patch.def: New file.
11312         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
11313         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
11314         SUBTARGET_INIT_BUILTINS if defined.
11315         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
11316         New functions.
11317
11318 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11319
11320         PR rtl-opt/33512
11321         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
11322         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
11323
11324 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11325
11326         PR pch/35027
11327         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
11328         file" warning condtional on -Winvalid-PCH.
11329
11330 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
11331
11332         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
11333
11334 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
11335
11336         PR target/22076
11337         PR target/34256 
11338         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
11339         prevent reload from using MMX registers.
11340         (*mov<mode>_internal): Ditto.
11341         (*movv2sf_internal_rex64): Ditto.
11342         (*movv2sf_internal): Ditto.
11343
11344 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11345
11346         PR documentation/31569
11347         * doc/install.texi2html: Use makeinfo --no-number-sections.
11348
11349 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11350
11351         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
11352         ensure that we can address an entire entity > 8 bytes.  Don't
11353         generate reg+reg addressing for such data.
11354
11355 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11356
11357         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
11358         strings when optimizing for size, unless the target cares about
11359         alignment.
11360
11361 2008-02-22  Tom Tromey  <tromey@redhat.com>
11362
11363         * regclass.c (current_pass): Remove declaration.
11364
11365 2008-02-22  Anatoly Sokolov <aesok@post.ru>
11366
11367         * config/avr/libgcc.S (__RAMPZ__): Define.
11368         (__do_copy_data): Add for devices with 128KB code memory.
11369
11370 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
11371
11372         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
11373         Use spe_abi.
11374         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
11375
11376 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
11377
11378         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
11379         GENNONACR_REGS.
11380
11381 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11382
11383         PR c/19999
11384         * c-typeck.c (build_binary_op): Warn about floating point
11385         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
11386
11387 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
11388
11389         PR target/34526
11390         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
11391         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
11392         add vrsave.
11393         (rs6000_override_options): Set altivec_abi as default, not override,
11394         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
11395         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
11396         is used; use new member spe_abi.
11397         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
11398         spe_abi and altivec_abi.
11399
11400 2008-02-22  Tomas Bily  <tbily@suse.cz>
11401
11402         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
11403
11404 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11405
11406         PR bootstrap/35273
11407         * config.build (build_file_translate): Set to `CMD //c' only if
11408         it works.
11409         * Makefile.in (build_file_translate): Improve comment.
11410
11411 2008-02-21  Jan Hubicka  <jh@suse.cz>
11412
11413         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
11414         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
11415         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
11416
11417 2008-02-21  Michael Matz  <matz@suse.de>
11418
11419         PR target/35264
11420         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
11421
11422 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
11423
11424         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
11425         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
11426         as insn constraint.
11427         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
11428         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
11429         SSE_VEC_FLOAT_MODE_P as insn constraint.
11430         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
11431         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
11432         sse4a_movntdf using MODEF mode iterator.
11433         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
11434         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
11435         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
11436         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
11437         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
11438         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
11439         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
11440
11441 2008-02-21  Richard Guenther  <rguenther@suse.de>
11442
11443         * tree.def (PAREN_EXPR): New tree code.
11444         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
11445         and PAREN_EXPR.
11446         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
11447         * expr.c (expand_expr_real_1): Likewise.
11448         * tree-inline.c (estimate_num_insns_1): Likewise.
11449         * tree-complex.c (expand_complex_move): Likewise.
11450         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
11451         as plain x.
11452
11453 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11454
11455         PR target/35225
11456         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
11457
11458 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11459
11460         PR target/35190
11461         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
11462
11463         * config/sh/sh.c (find_barrier): Don't go past
11464         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
11465
11466 2008-02-20  DJ Delorie  <dj@redhat.com>
11467
11468         * config/h8300/h8300.md (insv): Force source operand to be a register.
11469
11470         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
11471         as a jump, not as a plain insn.
11472         
11473 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
11474
11475         * doc/invoke.texi (Warning Options): Add new option
11476         -Wframe-larger-than=.
11477         (-Wframe-larger-than): Document.
11478
11479         * flags.h (warn_frame_larger_than, frame_larger_than_size):
11480         Add declarations for new option variables.
11481
11482         * final.c (final_start_function): Check the frame size
11483         before emission and issue a Wframe-larger-than warning.
11484
11485         * opts.c (warn_frame_larger_than, frame_larger_than_size):
11486         Add definitions for new option variables.
11487         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
11488
11489         * common.opt (Wframe-larger-than=): New option.
11490
11491 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11492
11493         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
11494         (<sse>_div<mode>3): Ditto.
11495         (<sse>_vmdiv<mode>3): Ditto.
11496         (<sse>_vmsqrt<mode>2): Ditto.
11497         (*smax<mode>3): Ditto.
11498         (sse5_frcz<mode>2): Ditto.
11499         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
11500         as insn constraint.
11501
11502 2008-02-20  Richard Guenther  <rguenther@suse.de>
11503
11504         PR middle-end/35265
11505         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
11506         be happy with INTEGRAL_TYPE_P.
11507
11508 2008-02-20  Richard Guenther  <rguenther@suse.de>
11509
11510         * fold-const.c (split_tree): Associate floatig-point expressions
11511         if flag_associative_math is set.
11512
11513 2008-02-20  Richard Guenther  <rguenther@suse.de>
11514
11515         * tree.h (fold_real_zero_addition_p): Declare.
11516         * fold-const.c (fold_real_zero_addition_p): Export.
11517         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
11518         floating-point operations with zero and one.
11519
11520 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
11521
11522         * doc/install.texi: Correct references to CFLAGS, replacing them
11523         with BOOT_CFLAGS.  Document flags used during bootstrap for
11524         target libraries.
11525                                 
11526 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
11527
11528         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
11529         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
11530         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
11531         insn constraint.
11532         (smin<mode>3): Ditto from similar patterns.
11533         (smax<mode>3): Ditto.
11534         (*ieee_smin<mode>3): Ditto.
11535         (*ieee_smax<mode>3): Ditto.
11536         * config/i386/sse.md (sse): New mode attribute.
11537         (mov<mode>): Macroize expander from movv4sf and movv2df using
11538         SSEMODEF2P mode iterator.
11539         (<sse>_movnt<mode>): Ditto from similar patterns. Use
11540         SSE_VEC_FLOAT_MODE_P as insn constraint.
11541         (storent<mode>): Ditto.
11542         (storent<mode>): Macroize expander from storentsf and storentdf using
11543         MODEF mode iterator.
11544         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
11545         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
11546         (abs<mode>2): Ditto from similar patterns.
11547         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
11548         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
11549         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
11550         (<sse>_vmsqrt<mode>2): Ditto.
11551         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
11552         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
11553         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
11554         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
11555         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
11556         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
11557         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
11558         insn constraint.
11559         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
11560         iterator and SSE_FLOAT_MODE_P as insn constraint.
11561         (<sse>_ucomi): Ditto from similar patterns.
11562         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
11563         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
11564         SSE_VEC_FLOAT_MODE_P as insn constraint.
11565         (vcond<mode>): Ditto from similar patterns.
11566         (and<mode>3, *and<mode>3): Ditto.
11567         (<sse>_nand<mode>3): Ditto.
11568         (ior<mode>3, *ior<mode>3): Ditto.
11569         (xor<mode>3, *xor<mode>3): Ditto.
11570         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
11571         iterator and SSE_FLOAT_MODE_P as insn constraint.
11572         (*nand<mode>3): Ditto from similar patterns.
11573         (*ior<mode>3): Ditto.
11574         (*xor<mode>3): Ditto.
11575
11576 2008-02-20  Ira Rosen  <irar@il.ibm.com>
11577
11578         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
11579         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
11580         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
11581
11582 2008-02-19  Jan Hubicka  <jh@suse.cz>
11583
11584         * predict.c (tree_bb_level_predictions): Remove variable next
11585         mistakely introduced by previous commit.
11586
11587 2008-02-19  Jan Hubicka  <jh@suse.cz>
11588
11589         * predict.c (predict_paths_leading_to): Rewrite.
11590         (predict_paths_for_bb): New.
11591         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
11592
11593 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11594
11595         PR bootstrap/35218
11596         * Makefile.in (build_file_translate): New.
11597         (gcc-vers.texi): Use it for translating $(abs_srcdir).
11598         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
11599         * configure.ac (build_file_translate): Substitute it.
11600         * configure: Regenerate.
11601
11602 2008-02-19  Jan Hubicka  <jh@suse.cz>
11603
11604         PR rtl-optimization/34408
11605         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
11606         invalid sharing.
11607
11608 2008-02-19  Jan Hubicka  <jh@suse.cz>
11609
11610         PR middle-end/28779
11611         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
11612         call_expr.
11613
11614 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
11615
11616         PR Ada/35186
11617         * config/i386/i386-modes.def: Revert the last DI alignment
11618         change until Ada people can look into it.
11619
11620 2008-02-19  Nick Clifton  <nickc@redhat.com>
11621
11622         * opts.c (print_specific_help): Fix typo in --help text.
11623
11624 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
11625
11626         PR target/35239
11627         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
11628         32-bit inline asm without asm alternatives for host GCC < 3.0.
11629
11630 2008-02-19  Richard Guenther  <rguenther@suse.de>
11631
11632         PR tree-optimization/34989
11633         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
11634         Allow propagation to INDIRECT_REF if we can simplify only.
11635
11636 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11637
11638         * c-common.c (warn_for_collisions_1): Use appropriate option when
11639         warning.
11640
11641 2008-02-19  Nick Clifton  <nickc@redhat.com>
11642
11643         PR other/31349
11644         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
11645         (handle_options): Fix indentation.
11646         (print_filtered_help): If no language-specific options were
11647         displayed tell the user how to list all the options supported by
11648         the language's front-end.
11649         (print_specific_help): Fix indentation and remove duplicate line.
11650         (common_handle_option): Handle the -v option.
11651         For --help enable the display of undocumented options if the -v
11652         switch has been included on the command line.
11653         For --help= check for overlaps in the arguments between the option
11654         classes and the language names and issue a warning when they
11655         cannot be disambiguated.
11656         * c.opt (v): Pass on to the common option handler.
11657
11658 2008-02-19  Revital Eres  <eres@il.ibm.com> 
11659
11660         * modulo-sched.c (sms_schedule): Change dump message when
11661         create_ddg function fails.
11662         (try_scheduling_node_in_cycle): Rename row to cycle.
11663         (print_partial_schedule): Rename CYCLE to ROW.
11664
11665 2008-02-19  Christian Bruel  <christian.bruel@st.com>
11666             Zdenek Dvorak  <ook@ucw.cz>
11667
11668         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
11669
11670 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11671
11672         PR target/33555
11673         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
11674         (*x86_movdicc_0_m1_se): Ditto.
11675
11676 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
11677
11678         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
11679         (CMPtype): Define as __gcc_CMPtype.
11680         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
11681         (CMPtype): Define as __gcc_CMPtype.
11682
11683 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
11684
11685         Support valgrind 3.3 for --enable-checking=valgrind.
11686         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
11687         here.
11688         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
11689         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
11690         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
11691         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
11692         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
11693         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
11694         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
11695         respectively.
11696         * ggc-zone.c: Similar.
11697         * ggc-page.c: Similar.
11698
11699 2008-02-19  Paul Brook  <paul@codesourcery.com>
11700
11701         PR target/35071
11702         * config/arm/ieee754-df.S: Fix do_it typo.
11703         * config/arm/ieee754-sf.S: Fix do_it typo.
11704
11705 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11706
11707         PR target/35189
11708         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
11709         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
11710         (OPTION_MASK_ISA_SSE_SET): Likewise.
11711         (OPTION_MASK_ISA_SSE2_SET): Likewise.
11712         (OPTION_MASK_ISA_SSE3_SET): Likewise.
11713         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
11714         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
11715         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
11716         (OPTION_MASK_ISA_SSE4_SET): Likewise.
11717         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
11718         (OPTION_MASK_ISA_SSE5_SET): Likewise.
11719         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
11720         (OPTION_MASK_ISA_MMX_UNSET): Updated.
11721         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
11722         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
11723         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
11724         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
11725         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
11726         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
11727         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
11728         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
11729         (OPTION_MASK_ISA_SSE4): Removed.
11730         (ix86_handle_option): Turn on bits in ix86_isa_flags and
11731         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
11732         (override_options): Don't turn on implied SSE/MMX bits in
11733         ix86_isa_flags.
11734
11735 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11736
11737         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11738         32bit host.
11739
11740 2008-02-18  Joey Ye  <joey.ye@intel.com>
11741
11742         PR middle-end/34921
11743         * tree-nested.c (insert_field_into_struct): Set type alignment
11744         to field alignment if the former is less than the latter.
11745
11746 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
11747
11748         * BASE-VER: Set to 4.4.0.
11749
11750 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11751
11752         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
11753         * doc/cfg.texi: Likewise.
11754         * doc/extend.texi: Likewise.
11755         * doc/gty.texi: Likewise.
11756         * doc/invoke.texi: Likewise.
11757         * doc/loop.texi: Likewise.
11758         * doc/md.texi: Likewise.
11759         * doc/passes.texi: Likewise.
11760         * doc/rtl.texi: Likewise.
11761         * doc/sourcebuild.texi: Likewise.
11762         * doc/tm.texi: Likewise.
11763         * doc/tree-ssa.texi: Likewise.
11764
11765 2008-02-17  Richard Guenther  <rguenther@suse.de>
11766
11767         PR middle-end/35227
11768         * tree-complex.c (init_parameter_lattice_values): Handle parameters
11769         without default definition.
11770
11771 2008-02-17  Richard Guenther  <rguenther@suse.de>
11772
11773         PR tree-optimization/35231
11774         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
11775         if A | B != 1.
11776
11777 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
11778
11779         Revert:
11780         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
11781         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11782         libgcc_cmp_return mode.
11783
11784 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11785
11786         PR c/28368
11787         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
11788
11789 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
11790
11791         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
11792         multilibs.
11793
11794 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11795
11796         * doc/c-tree.texi: Use `@.' where appropriate.
11797         * doc/extend.texi: Likewise.
11798         * doc/install.texi: Likewise.
11799         * doc/invoke.texi: Likewise.
11800         * doc/loop.texi: Likewise.
11801         * doc/makefile.texi: Likewise.
11802         * doc/md.texi: Likewise.
11803         * doc/passes.texi: Likewise.
11804         * doc/standards.texi: Likewise.
11805         * doc/tm.texi: Likewise.
11806
11807 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11808
11809         PR middle-end/35196
11810         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
11811         in entry_bb.
11812         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
11813         rather than in entry_bb.
11814
11815 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11816
11817         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
11818         libgcc_cmp_return mode.
11819
11820 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
11821
11822         PR middle-end/35130
11823         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
11824         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
11825
11826 2008-02-15  Richard Guenther  <rguenther@suse.de>
11827             Zdenek Dvorak  <ook@ucw.cz>
11828
11829         PR tree-optimization/35164
11830         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
11831         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
11832         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
11833         Only propagate addresses which do not have abnormal SSA_NAMEs
11834         in their operands.
11835
11836 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
11837
11838         PR target/35088
11839         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
11840
11841 2008-02-15  Jan Hubicka  <jh@suse.cz>
11842
11843         PR middle-end/35149
11844         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
11845
11846 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11847
11848         PR middle-end/34621
11849         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
11850         when calculating alignment_pad.
11851
11852 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
11853
11854         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
11855         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
11856         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
11857         and STACK_BOUNDARY define.
11858
11859 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
11860
11861         PR preprocessor/35061
11862         * c-pragma.c (handle_pragma_pop_macro): Check that
11863         pushed_macro_table has been allocated.
11864
11865 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11866
11867         PR middle-end/35136
11868         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
11869         (force_gimple_operand): Likewise.
11870         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
11871         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
11872         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
11873         (find_interesting_uses_address): Check addressability and alignment
11874         of the base expression only after substituting bases of IVs into it.
11875
11876 2008-02-14  Michael Matz  <matz@suse.de>
11877
11878         PR target/34930
11879         * function.c (instantiate_virtual_regs_in_insn): Reload address
11880         before falling back to reloading the whole operand.
11881
11882 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
11883
11884         * config/s390/s390.c (s390_mainpool_start): Emit the pool
11885         before the first section switch note.
11886
11887 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11888
11889         * doc/bugreport.texi: Update copyright years.
11890         * doc/c-tree.texi: Likewise.
11891         * doc/cfg.texi: Likewise.
11892         * doc/cpp.texi: Likewise.
11893         * doc/cppinternals.texi: Likewise.
11894         * doc/fragments.texi: Likewise.
11895         * doc/frontends.texi: Likewise.
11896         * doc/gcc.texi: Likewise.
11897         * doc/gty.texi: Likewise.
11898         * doc/hostconfig.texi: Likewise.
11899         * doc/implement-c.texi: Likewise.
11900         * doc/libgcc.texi: Likewise.
11901         * doc/loop.texi: Likewise.
11902         * doc/makefile.texi: Likewise.
11903         * doc/options.texi: Likewise.
11904         * doc/passes.texi: Likewise.
11905         * doc/rtl.texi: Likewise.
11906         * doc/sourcebuild.texi: Likewise.
11907         * doc/standards.texi: Likewise.
11908         * doc/tree-ssa.texi: Likewise.
11909         * doc/trouble.texi: Likewise.
11910
11911         * doc/extend.texi: Use @: or add comma where appropriate.
11912         * doc/invoke.texi: Likewise.
11913         * doc/tm.texi: Likewise.
11914
11915 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
11916
11917         PR target/34393
11918         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
11919         to a reg.
11920
11921 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
11922
11923         * doc/md.texi (clz, ctz): Add reference.
11924         * doc/rtl.texi (clz, ctz): Likewise.
11925
11926 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11927
11928         PR other/35148
11929         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
11930         srcdir.
11931
11932 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
11933
11934         * config/s390/s390.c (struct constant_pool): New field
11935         emit_pool_after added.
11936         (s390_mainpool_start): Set the emit_pool_after flag according
11937         to the section switch notes.
11938         (s390_mainpool_finish): Consider emit_pool_after when emitting
11939         the literal pool at the end of the function.
11940         (s390_chunkify_start): Force literal pool splits at section
11941         switch notes.
11942
11943 2008-02-13  Michael Matz  <matz@suse.de>
11944
11945         PR debug/35065
11946         * var-tracking.c (clobber_variable_part): Correctly traverse the
11947         list.
11948
11949 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11950
11951         PR 29673
11952         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
11953         Add -fdump-ipa-inline.
11954         * tree-dump.c (dump_files): Remove tree-inlined dump.
11955         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
11956         
11957 2008-02-12  Richard Guenther  <rguenther@suse.de>
11958
11959         PR tree-optimization/35171
11960         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
11961         default defs.
11962
11963 2008-02-12  Richard Guenther  <rguenther@suse.de>
11964
11965         PR middle-end/35163
11966         * fold-const.c (fold_widened_comparison): Use get_unwidened in
11967         value-preserving mode.  Disallow final truncation.
11968
11969 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
11970
11971         PR middle-end/35136
11972         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
11973         code from here to...
11974         (force_gimple_operand): ...here.
11975
11976 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
11977
11978         PR c++/35144
11979         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
11980         non-compatible pointers.
11981         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
11982         different FIELD_DECLs, try harder by comparing field offsets, sizes
11983         and types.
11984
11985         PR inline-asm/35160
11986         * function.c (match_asm_constraints_1): Don't replace the same input
11987         multiple times.
11988
11989 2008-02-12  Anatoly Sokolov <aesok@post.ru>
11990
11991         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
11992         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
11993         (expand_epilogue): Restore RAMPZ register.
11994         * config/avr/avr.md (RAMPZ_ADDR): New constant.
11995
11996 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
11997
11998         * config/i386/cygwin.asm: (__alloca): Correct calling
11999         convention and alignment.
12000         (__chkstk): Force 8 byte stack alignment.
12001
12002 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
12003             Richard Guenther  <rguenther@suse.de>
12004
12005         PR tree-optimization/33992
12006         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
12007         the zero we compare against.
12008
12009 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12010
12011         PR libfortran/35063
12012         * gthr-win32.h (__gthread_mutex_destroy_function): New function
12013         to CloseHandle after unlocking to prevent accumulation of handle
12014         count.
12015
12016 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12017
12018         PR middle_end/34150
12019         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
12020         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
12021         and update LABEL_NUSES during and after reload.
12022
12023 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
12024
12025         PR middle-end/34627
12026         * combine.c (simplify_if_then_else): Make sure the comparison is
12027         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
12028
12029 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
12030
12031         PR bootstrap/35051
12032         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
12033         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
12034         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
12035         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
12036         * tree.h (get_type_static_bounds): Likewise.
12037
12038 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12039
12040         * doc/invoke.texi (Option Summary, C++ Dialect Options)
12041         (Objective-C and Objective-C++ Dialect Options, Warning Options):
12042         Make -Wfoo language annotations match what the compiler outputs.
12043
12044 2008-02-08  Sa Liu  <saliu@de.ibm.com>
12045
12046         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
12047         intrinsics spu_convts, spu_convtu, spu_convtf.
12048
12049 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
12050
12051         * doc/extend.texi (Function Attributes) <noinline>: Mention
12052         asm ("") as method to keep calls.
12053
12054 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12055
12056         PR other/32754
12057         * doc/options.texi (Options): Replace references to opts.sh with
12058         optc-gen.awk.
12059         * opts-common.c: Likewise.
12060         * optc-gen.awk: Likewise.
12061         
12062 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
12063
12064         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
12065
12066 2008-02-07  Richard Henderson  <rth@redhat.com>
12067
12068         PR rtl-opt/33410
12069         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
12070         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
12071         funny mode.
12072
12073 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
12074
12075         PR tree-optimization/35085
12076         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
12077         for operand entry oe2 in addition to operand entry oe3 in order to
12078         expose more opportunities for vectorizer sum reduction.
12079
12080 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12081
12082         PR other/35107
12083         * Makefile.in (LIBS): Remove $(GMPLIBS).
12084         (cc1-dummy, cc1): Add $(GMPLIBS).
12085
12086 2008-02-06  Jan Hubicka  <jh@suse.cz>
12087
12088         PR target/23322
12089         * i386.md (moddf_integer): Do not produce partial memory stalls for
12090         targets where it hurts.
12091
12092 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
12093
12094         PR target/35083
12095         * optabs.c (expand_float): Do not check for decimal modes when
12096         expanding unsigned integer through signed conversion.
12097
12098 2008-02-06  Nick Clifton  <nickc@redhat.com>
12099
12100         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
12101         inside the clobber with a match_operand and duplicated operand
12102         number in the constraint.
12103         (ineqbranchsi): Delete redundant comment.
12104
12105 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
12106
12107         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
12108         builtin_define ("__USE_INIT_FINI__").
12109         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
12110         -msx multilibs.
12111         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
12112
12113 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12114
12115         PR documentation/30330
12116         * doc/invoke.texi (C++ Dialect Options)
12117         (Objective-C and Objective-C++ Dialect Options, Warning Options):
12118         For each warning option -Wfoo that allows -Wno-foo, ensure both
12119         -Wfoo and -Wno-foo are listed in the option index.  Fix index
12120         entry of -Wswitch-default, index -Wnormalized= including the
12121         `=', and -Wlarger-than-@var{len} including @var{len}.
12122
12123 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
12124
12125         * config/i386/i386.md (floatunssisf2): Use
12126         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
12127         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
12128         Macroize expander using MODEF mode iterator.
12129
12130 2008-02-05  Diego Novillo  <dnovillo@google.com>
12131
12132         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
12133
12134         PR 33738
12135         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
12136
12137 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12138
12139         PR other/35070
12140         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
12141
12142 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
12143
12144         PR target/35084
12145         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
12146         to indicate if a message should be generated.
12147         (init_cumulative_args): Updated.
12148         (function_value_32): Likewise.
12149
12150 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
12151
12152         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
12153
12154 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
12155
12156         PR target/35083
12157         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
12158         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
12159
12160 2008-02-04  Diego Novillo  <dnovillo@google.com>
12161
12162         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
12163
12164         PR 33738
12165         * tree-vrp.c (vrp_evaluate_conditional): With
12166         -Wtype-limits, emit a warning when comparing against a
12167         constant outside the natural range of OP0's type.
12168
12169 2008-02-04  Richard Guenther  <rguenther@suse.de>
12170
12171         PR middle-end/33631
12172         * expr.c (count_type_elements): Give for unions instead of
12173         guessing.
12174
12175 2008-02-04  Richard Guenther  <rguenther@suse.de>
12176
12177         PR middle-end/35043
12178         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
12179         to TYPE_DOMAINs base type instead of using bitsizetype here.
12180
12181 2008-02-03  Jason Merrill  <jason@redhat.com>
12182
12183         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
12184
12185 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12186
12187         PR other/29972
12188         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
12189         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
12190         (RS/6000 and PowerPC Options): Fix typos and markup.
12191         * doc/passes.texi (Tree-SSA passes): Likewise.
12192
12193 2008-02-02  Michael Matz  <matz@suse.de>
12194
12195         PR target/35045
12196         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
12197         from record_last_reg_set_info.
12198         (record_last_reg_set_info): Take an RTX argument, iterate over all
12199         constituent hardregs.
12200         (record_last_set_info, record_opr_changes): Change calls to
12201         new signature or to record_last_reg_set_info_regno.
12202
12203 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
12204
12205         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
12206
12207 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
12208
12209         PR rtl-optimization/34773
12210         * reg-notes.def (EQUAL): Mention significance of combination of
12211         REG_EQUAL and REG_RETVAL.
12212         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
12213         insn that has a REG_RETVAL.
12214
12215 2008-02-01  Roger Sayle  <roger@eyesopen.com>
12216
12217         PR bootstrap/33781
12218         * configure.ac (--enable-fixed-point): Disable unless explicitly
12219         requested on IRIX.
12220         * configure: Regenerate.
12221
12222 2008-02-01  Richard Guenther  <rguenther@suse.de>
12223
12224         PR other/35042
12225         * invoke.texi (-finline-limit): Remove no longer true parts
12226         of the documentation.  Note that there is no default value.
12227
12228 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
12229             Mark Mitchell  <mark@codesourcery.com>
12230             Ben Elliston  <bje@au.ibm.com>
12231
12232         PR c/29326
12233         * doc/extend.texi (Other Builtins): Document.
12234
12235 2008-01-31  Tom Browder <tom.browder@gmail.com>
12236
12237         * doc/c-tree.texi (Types): Fix grammar.
12238         (Expression trees): Ditto.
12239         * doc/passes.texi (Tree-SSA passes): Ditto.
12240         
12241         * doc/configterms.texi (Configure Terms): Fix typo.
12242         * doc/cpp.texi (Common Predefined Macros): Ditto.
12243         * doc/md.texi (Machine Constraints): Ditto.
12244         
12245         * doc/makefile.texi (Makefile): Add comma.
12246
12247 2008-01-31  Tom Browder  <tom.browder@gmail.com>
12248             Gerald Pfeifer  <gerald@pfeifer.com>
12249         
12250         * doc/sourcebuild.texi (Front End): Remove references to CVS
12251         and CVSROOT/modules.
12252         (Texinfo Manuals): Replace reference to CVS by one to SVN.
12253         (Back End): Remove reference to CVS.
12254
12255 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
12256
12257         PR target/34900
12258         * config/mips/mips.c (gen_load_const_gp): New function, taking a
12259         comment from...
12260         (mips16_gp_pseudo_reg): ...here.
12261         * config/mips/mips.md (load_const_gp): Replace with...
12262         (load_const_gp_<mode>): ...this :P-based insn.
12263
12264 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12265
12266         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
12267         options. Minor fixes.
12268         (-std): Move reference to standards closer to where language
12269         standards are first mentioned.
12270         
12271 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
12272
12273         PR rtl-optimization/34995
12274         * reload.c (alternative_allows_const_pool_ref): Take an rtx
12275         parameter and return a bool.  If the rtx parameter is nonnull,
12276         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
12277         (find_reloads): Update call accordingly.  Pass the new operand
12278         if it needed no address reloads, otherwise pass null.
12279
12280 2008-01-30  Richard Henderson  <rth@redhat.com>
12281
12282         PR c/34993
12283         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
12284         for unbounded arrays.
12285
12286 2008-01-30  Silvius Rus  <rus@google.com>
12287
12288         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
12289
12290 2008-01-30  Jan Hubicka  <jh@suse.cz>
12291
12292         PR target/34982
12293         * i386.c (init_cumulative_args): Use real function declaration when
12294         calling locally.
12295
12296 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
12297
12298         PR rtl-optimization/34998
12299         * global.c (build_insn_chain): Treat non-subreg_lowpart
12300         SUBREGs of pseudos as clobbering all the words covered by the
12301         SUBREG, not just all the bytes.
12302         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
12303         original df_ref rather than an extract parameter.
12304         (global_conflicts): Update call accordingly.
12305
12306 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
12307
12308         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
12309         the overflow check to make it easier to read.
12310         (__fixtfdi): Change the type of the ll member in union
12311         long_double to UDItype_x.
12312
12313 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
12314
12315         PR middle-end/34969
12316         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
12317         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
12318         * tree-inline.c (fold_marked_statements): Call
12319         cgraph_update_edges_for_call_stmt if folding a call statement.
12320         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
12321         debug_generic_stmt calls, reset it back afterwards.
12322
12323         PR c/35017
12324         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
12325         static decls.
12326         * c-typeck.c (build_external_ref): Don't pedwarn about
12327         static vars in current function's scope.
12328
12329 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
12330
12331         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
12332
12333 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
12334
12335         PR c/35002
12336         * ipa-struct-reorg.c: Fix spelling.
12337         * params.def: Ditto.
12338
12339 2008-01-29  Richard Guenther  <rguenther@suse.de>
12340
12341         PR middle-end/35006
12342         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
12343         field.
12344         * tree-inline.c (remap_type): Increment remapping_type_depth
12345         around remapping types.
12346         (copy_body_r): Only add referenced variables if they are referenced
12347         from code, not types.
12348
12349 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
12350
12351         PR c++/34055
12352         PR c++/34103
12353         PR c++/34219
12354         PR c++/34606
12355         PR c++/34753
12356         PR c++/34754
12357         PR c++/34755
12358         PR c++/34919
12359         PR c++/34961
12360         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
12361         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
12362
12363 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
12364
12365         PR target/34412
12366         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
12367         pointer for tiny stack.
12368
12369 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12370
12371         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
12372
12373 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
12374
12375         * config/vx-common.h: Fix typo in comment.
12376
12377 2008-01-28  Ian Lance Taylor  <iant@google.com>
12378
12379         PR c++/34862
12380         PR c++/33407
12381         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12382         coalesce pointers if they have different DECL_NO_TBAA_P values.
12383         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
12384         between variables with different DECL_NO_TBAA_P values.
12385
12386 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
12387
12388         PR 31535
12389         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
12390         are not legitimate small data references on SPE targets.
12391
12392 2008-01-28  David Daney  <ddaney@avtrex.com>
12393
12394         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
12395
12396 2008-01-28  David Daney  <ddaney@avtrex.com>
12397
12398         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
12399
12400 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
12401
12402         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
12403         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
12404         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
12405         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
12406         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
12407         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
12408         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
12409         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
12410
12411 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12412
12413         * basic-block.h (condjump_equiv_p): Fix comment.
12414
12415 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12416
12417         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
12418         print_generic_stmt_indented): Fix comment.
12419
12420 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
12421
12422         * configure.ac (__stack_chk_fail): Add detecion for availability
12423         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
12424         * configure: Regenerate.
12425
12426 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
12427
12428         PR middle-end/34688
12429         * final.c (output_addr_const): Handle TRUNCATE.
12430
12431 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
12432
12433         PR target/34711
12434         * tree-ssa-loop-ivopts.c (comp_cost): New type.
12435         (zero_cost, infinite_cost): New constants.
12436         (struct cost_pair): Change type of cost to comp_cost.
12437         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
12438         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
12439         New functions.
12440         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
12441         split_address_cost, ptr_difference_cost, difference_cost,
12442         get_computation_cost_at, get_computation_cost,
12443         determine_use_iv_cost_generic, determine_use_iv_cost_address,
12444         determine_use_iv_cost_condition, determine_use_iv_costs,
12445         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
12446         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
12447         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
12448         Change type of cost to comp_cost.
12449         (determine_iv_cost): Increase cost of non-original ivs, instead
12450         of decreasing the cost of original ones.
12451         (get_address_cost): Indicate the complexity of the addressing mode 
12452         in comp_cost.
12453         (try_add_cand_for): Prefer using ivs not specific to some object.
12454         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
12455
12456 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
12457             Janis Johnson  <janis187@us.ibm.com>
12458
12459         PR target/34814
12460         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
12461         (TARGET_INSTANTIATE_DECLS): Likewise.
12462         * target.h (expand_to_rtl_hook): New target hook.
12463         (instantiate_decls): Likewise.
12464         * function.c (instantiate_decl): Make non-static.  Rename to...
12465         (instantiate_decl_rtl): ... this.
12466         (instantiate_expr): Use instantiate_decl_rtl.
12467         (instantiate_decls_1): Likewise.
12468         (instantiate_decls): Likewise.
12469         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
12470         * function.h (instantiate_decl_rtl): Add prototype.
12471         * cfgexpand.c (target.h): New include.
12472         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
12473         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
12474         (TARGET_INSTANTIATE_DECLS): Likewise.
12475         (TARGET_INITIALIZER): New target hooks added.
12476         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
12477         New prototype.
12478         * config/rs6000/rs6000.c (tree-flow.h): New include.
12479         (machine_function): Add sdmode_stack_slot field.
12480         (rs6000_alloc_sdmode_stack_slot): New function.
12481         (rs6000_instantiate_decls): Likewise.
12482         (rs6000_secondary_memory_needed_rtx): Likewise.
12483         (rs6000_check_sdmode): Likewise.
12484         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
12485         (TARGET_INSTANTIATE_DECLS): Likewise.
12486         (rs6000_hard_regno_mode_ok): Allow SDmode.
12487         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
12488         (rs6000_emit_move): Handle SDmode.
12489         (function_arg_advance): Likewise.
12490         (function_arg): Likewise.
12491         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
12492         SDmode var args for 32-bit compiles.
12493         (rs6000_secondary_reload_class): Handle SDmode.
12494         (rs6000_output_function_epilogue): Likewise.
12495         (rs6000_function_value): Simplify if statement.
12496         (rs6000_libcall_value): Likewise.
12497         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
12498         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
12499         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
12500         (movsd_hardfloat): New define_insn.
12501         (movsd_softfloat): Likewise.
12502         (movsd_store): Likewise.
12503         (movsd_load): Likewise.
12504         (extendsddd2): Likewise.
12505         (extendsdtd2): Likewise.
12506         (truncddsd2): Likewise.
12507         (movdd_hardfloat64): Fixup comment.
12508         (UNSPEC_MOVSD_LOAD): New constant.
12509         (UNSPEC_MOVSD_STORE): Likewise.
12510
12511 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
12512
12513         PR c++/34965
12514         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
12515         TRUTH_XOR_EXPR.
12516         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
12517         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
12518         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
12519         and TRUTH_XOR_EXPR.
12520
12521 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
12522
12523         PR target/34794
12524         * config.gcc: Separate AIX 5.3 from AIX 6.1.
12525         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
12526         __LONGDOUBLE128 too.
12527         * config/rs6000/aix61.h: New file.
12528
12529 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12530
12531         PR rtl-optimization/34959
12532         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
12533         popcount and parity rtxes the same mode as their operand.
12534         Truncate or extend the result to the return value's mode
12535         if necessary.
12536
12537 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
12538
12539         PR target/34981
12540         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
12541         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
12542         to GOT_VERSION_REGNUM.
12543         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
12544         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
12545         * config/mips/mips.c (mips_emit_call_insn): New function.
12546         (mips_call_tls_get_addr): Call mips_expand_call directly.
12547         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
12548         emit_call_insn.
12549         (mips16_build_call_stub): Likewise.  Return the call insn or null.
12550         (mips_expand_call): Update the call to mips16_build_call_stub
12551         accordingly and a remove redundant condition.  Assert that MIPS16
12552         stubs do not use lazy binding.  Use mips_emit_call_insn and return
12553         the call insn.
12554         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
12555         TARGET_USE_GOT.
12556         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
12557         (mips_avoid_hazard): Remove hazard_set handling.
12558         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
12559         (UNSPEC_RESTORE_GP): ...this.
12560         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
12561         (FAKE_CALL_REGNO): Rename to...
12562         (GOT_VERSION_REGNUM): ...this.
12563         (type): Add "ghost" value.  Add an associated insn reservation.
12564         (hazard_set): Remove.
12565         (exception_receiver): Rename to...
12566         (restore_gp): ...this and update the unspec identifier accordingly.
12567         (exception_receiver, nonlocal_got_receiver): New expanders.
12568         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
12569         FAKE_CALL_REGNO.  Remove hazard_set attribute.
12570         (set_got_version, update_got_version): New patterns.
12571
12572 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
12573
12574         PR target/34970
12575         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
12576
12577 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12578
12579         PR other/31955
12580         * doc/install.texi2html: Generate gcc-vers.texi.
12581
12582 2008-01-25  DJ Delorie  <dj@redhat.com>
12583
12584         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
12585
12586 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
12587
12588         * config/c4x: Remove directory.
12589         * config.gcc (crx-*, mt-*): Mark obsolete.
12590         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
12591         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
12592         sh-*-rtemscoff*): Remove cases.
12593         * defaults.h (C4X_FLOAT_FORMAT): Remove.
12594         * real.c (encode_c4x_single, decode_c4x_single,
12595         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
12596         c4x_extended_format): Remove.
12597         * real.h (c4x_single_format, c4x_extended_format): Remove.
12598         * doc/extend.texi (interrupt, naked): Remove mention of attributes
12599         on C4x.
12600         (Pragmas): Remove comment about c4x pragmas.
12601         * doc/install.texi (c4x): Remove target-specific instructions.
12602         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
12603         * doc/md.texi (Machine Constraints): Remove C4x documentation.
12604         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
12605         refer to C4x source files as examples.
12606         (C4X_FLOAT_FORMAT): Remove documentation.
12607
12608 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
12609
12610         * config/bfin/bfin.c (override_options): Reorder tests so that
12611         flag_pic gets enabled for -msep-data.
12612
12613 2008-01-25  Richard Guenther  <rguenther@suse.de>
12614
12615         PR middle-end/32244
12616         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
12617         to its bitfield precision if required.
12618
12619 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12620
12621         PR middle-end/33880
12622         * tree-nested.c (walk_omp_for): New function.
12623         (convert_nonlocal_reference, convert_local_reference): Call
12624         walk_omp_for on OMP_FOR.
12625         (convert_call_expr): Call walk_body on OMP_FOR's
12626         OMP_FOR_PRE_INIT_BODY.
12627
12628 2008-01-25  Richard Guenther  <rguenther@suse.de>
12629
12630         PR tree-optimization/34966
12631         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
12632         default defs and PHI_NODEs we have to insert after the
12633         defining statement.
12634
12635 2008-01-24  Nick Clifton  <nickc@redhat.com>
12636
12637         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
12638         Provide a default definition.
12639         (LIBGCC2_UNITS_PER_WORD): Likewise.
12640
12641         * config/stormy16/stormy16.c: Include df.h for the prototype
12642         for df_regs_ever_live_p.
12643         (xstormy16_expand_builtin_va_start): Convert the stack offset
12644         into a component_ref and then use POINTER_PLUS_EXPR to add it
12645         to the incoming_virtual_args_rtx.
12646         (xstormy16_gimplify_va_arg_expr): Rename to
12647         xstormy16_gimplify_va_arg_expr.
12648         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
12649         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
12650         xstormy16_gimplify_va_arg_expr.
12651         Fix up some formatting issues.
12652
12653         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
12654         Move to predicates.md.
12655         (xs_hi_general_operand): Likewise.
12656         (xs_hi_nonmemory_operand): Likewise.
12657         * config/stormy16/predicates.md:
12658         (xstormy16_carry_plus_operand): New predicate.
12659         (xs_hi_general_operand): New predicate.
12660         (xs_hi_nonmemory_operand): New predicate.
12661         * config/stormy16/stormy16-protos.h:
12662         (xstormy16_carry_plus_operand): Delete prototype.
12663         (xs_hi_general_operand): Likewise.
12664         (xs_hi_nonmemory_operand): Likewise.
12665
12666         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
12667         modifiers as they are no longer needed and they can trigger
12668         reload spill failures.
12669
12670         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
12671         with a match_operand in order to help reload.
12672
12673         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
12674         constraint with 'e' for the 8th alternative as this version of
12675         the mov.w instruction only accepts the lower 8 registers.
12676
12677 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
12678
12679         PR target/34856
12680         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
12681         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
12682         vector elements.
12683
12684 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
12685
12686         PR middle-end/33333
12687         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
12688
12689 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12690
12691         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
12692         New functions.
12693         (remove_structure): Update allocations list before removing structure.
12694         
12695 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
12696
12697         * ipa-struct-reorg.c (is_safe_cond_expr, 
12698         create_new_stmts_for_cond_expr): Use integer_zerop function,
12699         that recognize not only zero-pointer, but zero-integer too.
12700
12701 2008-01-25  Ben Elliston  <bje@au.ibm.com>
12702
12703         PR other/22232
12704         * fixproto: Escape "." in sed expression that strips leading "./".
12705
12706 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12707
12708         PR driver/34904
12709         * gcc.c (SWITCH_OK): Removed.
12710         (SWITCH_LIVE): Changed to bit.
12711         (SWITCH_FALSE): Likewise.
12712         (SWITCH_IGNORE): Likewise.
12713         (switchstr): Change live_cond to unsigned int.
12714         (process_command): Replace SWITCH_OK with 0.
12715         (do_self_spec): Likewise.
12716         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
12717         (give_switch): Likewise.
12718         (used_arg): Likewise.
12719         (do_spec_1): Set the SWITCH_IGNORE bit.
12720         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
12721         bits.  Set the SWITCH_LIVE bit.
12722
12723 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
12724
12725         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
12726
12727 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
12728
12729         PR tree-optimization/34472
12730         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
12731         parameter to a "bool *" and set *DATA to false if there is
12732         an unsafe access.  Do not delete the structure here.
12733         (check_cond_exprs): Delete it here instead.
12734         (check_cond_exprs, exclude_cold_structs): Do not increase
12735         I when removing a structure.
12736
12737 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
12738
12739         PR target/34856
12740         * config/i386/i386.c (ix86_expand_vector_init): Consider only
12741         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
12742
12743 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
12744
12745         PR middle-end/34934
12746         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
12747         a fixed vector for stack.
12748
12749 2008-01-24  Ben Elliston  <bje@au.ibm.com>
12750
12751         PR c++/25701
12752         * doc/gcc.texi (Software development): Add a direntry for g++.
12753         
12754 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
12755
12756         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
12757         stale and straggling -fforce-addr comments above.
12758
12759         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
12760         define.
12761         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
12762         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
12763
12764 2008-01-23  Michael Matz  <matz@suse.de>
12765
12766         PR debug/34895
12767         * dwarf2out.c (force_type_die): Use modified_type_die instead of
12768         gen_type_die.
12769
12770 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
12771
12772         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
12773         malloc result type.
12774
12775 2008-01-23 Anatoly Sokolov <aesok@post.ru>
12776
12777         * config/avr/avr.c (avr_current_arch): New variable.
12778         (avr_arch_types): Add 'avr31' and 'avr51' entries.
12779         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
12780         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
12781         (avr_override_options): Init 'avr_current_arch'. 
12782         (base_arch_s): Move from here...
12783         * config/avr/avr.h (base_arch_s): ... here. Add new members 
12784         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
12785         'mega' to 'have_jmp_call'.
12786         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
12787         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
12788         macros.
12789         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
12790         architectures.
12791         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
12792         MULTILIB_MATCHES): (Ditto.).
12793
12794 2008-01-23  Richard Guenther  <rguenther@suse.de>
12795
12796         PR middle-end/31529
12797         * cgraphunit.c (cgraph_reset_node): Always mark the node
12798         not reachable if it is not queued already.
12799
12800 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
12801
12802         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
12803         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
12804         (cputype_selected): New static variable.
12805         (bfin_handle_option): Set it if -mcpu is used.
12806         (override_option): Select default set of workarounds if no cpu type
12807         selected on the command line.
12808         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
12809
12810         From  Michael Frysinger  <michael.frysinger@analog.com>
12811         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
12812         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
12813
12814         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
12815         for bf547, bf523, bf524, and bf526.
12816         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
12817         bf526.
12818         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
12819         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
12820         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
12821         __ADSPBF547__ and __ADSPBF54x__ for bf547.
12822         * doc/invoke.texi (Blackfin Options): Document that
12823         -mcpu now accept bf547, bf523, bf524, and bf526.
12824
12825 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
12826
12827         PR rtl-optimization/34628
12828         * combine.c (try_combine): Stop and undo after the first combination
12829         if an autoincrement side-effect on the first insn has effectively
12830         been lost.
12831
12832 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
12833
12834         PR target/34529
12835         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
12836         Offset addresses are not valid for Altivec or paired float modes.
12837
12838 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
12839
12840         PR c++/34607
12841         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
12842         if DECL_INITIAL (decl) is error_mark_node.
12843
12844         PR c++/34914
12845         * c-common.c (handle_vector_size_attribute): Only allow
12846         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
12847         the same way as pointer, array etc. types.
12848         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
12849
12850         PR c++/34917
12851         * tree.c (build_type_attribute_qual_variant): Call
12852         build_qualified_type if attributes are equal, but quals are not.
12853
12854 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12855
12856         PR 32102
12857         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
12858         * flags.h (warn_strict_aliasing): Remove.
12859         (warn_strict_overflow): Remove.
12860         * opts.c (warn_strict_aliasing): Remove.
12861         (warn_strict_overflow): Remove.
12862         * c-opts.c (c_common_handle_option): -Wall only sets
12863         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
12864         (c_common_post_options): Give default values to -Wstrict-aliasing
12865         and -Wstrict-overflow if they are uninitialized.
12866         * common.opt (Wstrict-aliasing): Specify Var and Init.
12867         (Wstrict-overflow): Likewise.
12868
12869 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
12870
12871         PR rtl-optimization/26854
12872         PR rtl-optimization/34400
12873         PR rtl-optimization/34884
12874         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
12875         DF_RD->gen.
12876         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
12877         (df_rd_bb_info.expanded_lr_out): Deleted
12878         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
12879         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
12880         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12881         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12882         Removed code to allocate, initialize or free expanded_lr_out.
12883         (df_rd_bb_local_compute_process_def): Restructured to make more
12884         understandable.
12885         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
12886         sets if the sets are being trimmed.
12887
12888 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
12889
12890         PR bootstrap/32287
12891         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
12892         (as_vers): Likewise.
12893         * configure: Regenerated.
12894
12895 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12896
12897         PR middle-end/33092
12898         * tree-pass.h (pass_build_alias): New pass.
12899         * tree-ssa-alias.c (gate_build_alias): New.
12900         (pass_build_alias): New.
12901         * passes.c (init_optimization_passes): Add pass_build_alias after
12902         pass_create_structure_vars.
12903
12904 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
12905
12906         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
12907         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
12908         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
12909         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
12910         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
12911         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
12912         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
12913         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
12914         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
12915         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
12916         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
12917         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
12918         * config/s390/s390.md (FP_ALL): New mode iterator.
12919         (_d): New mode attribute.
12920         ("*signbit<mode>2>"): Changed mode of first operand.
12921         ("isinf<mode>2"): Changed mode of first operand.
12922         ("*TDC_insn"): Adaptation for DFP modes.
12923
12924 2008-01-22  Ben Elliston  <bje@au.ibm.com>
12925
12926         * tree.c (check_qualified_type): Improve function description.
12927
12928 2008-01-21  Jason Merrill  <jason@redhat.com>
12929
12930         PR c++/34196
12931         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
12932         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
12933         if it is set.
12934
12935 2008-01-21  DJ Delorie  <dj@redhat.com>
12936
12937         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
12938         return zero.
12939
12940 2008-01-21  Richard Guenther  <rguenther@suse.de>
12941
12942         PR middle-end/34856
12943         * tree-cfg.c (verify_expr): Allow all invariant expressions
12944         instead of just constant class ones as reference argument.
12945         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
12946         like any other constant.
12947         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12948
12949 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
12950
12951         * regmove.c (fixup_match_1): Update call crossed frequencies.
12952
12953 2008-01-21  Richard Guenther  <rguenther@suse.de>
12954
12955         PR c/34885
12956         * tree-inline.c (setup_one_parameter): Deal with mismatched
12957         types using a VIEW_CONVERT_EXPR.
12958
12959 2008-01-21  Alon Dayan  <alond@il.ibm.com>
12960             Olga Golovanevsky  <olga@il.ibm.com>
12961         
12962         PR tree-optimization/34701
12963         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
12964         when the structure size is not a power of 2.
12965
12966 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12967
12968         * doc/install.texi: Add doc for --enable-checking=df.
12969         
12970 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12971
12972         PR rtl-optimization/34808
12973         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
12974
12975 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12976
12977         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
12978         input.
12979
12980 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
12981
12982         PR rtl-optimization/26854
12983         PR rtl-optimization/34400
12984         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
12985         DF_RD->gen.
12986         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
12987         (df_rd_bb_info.expanded_lr_out): New.
12988         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
12989         * loop_iv.c (iv_analysis_loop_init): Ditto.
12990         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12991         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12992         Added code to allocate, initialize or free expanded_lr_out.
12993         (df_rd_bb_local_compute_process_def): Restructured to make
12994         more understandable.
12995         (df_rd_confluence_n): Add code to do nothing with fake edges and
12996         code to no apply invalidate_by_call sets if the sets are being trimmed.
12997         (df_lr_local_finalize): Renamed to df_lr_finalize.
12998         (df_live_local_finalize): Renamed to df_live_finalize.
12999
13000 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
13001
13002         PR target/34831
13003         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
13004         deciding whether to use reciprocal instructions.
13005
13006 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
13007
13008         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
13009         dwarf2out_note_section_used if cold_text_section is NULL.
13010
13011 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
13012
13013         PR gcov-profile/34610
13014         * tree-cfg.c (make_edges): Mark both outgoing edges from
13015         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
13016         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
13017         from OMP_FOR and OMP_CONTINUE outgoing edges.
13018
13019         * tree-profile.c (tree_profiling): Return early if
13020         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
13021         at the end.
13022         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
13023         from cfun to child_cfun.
13024         * function.h (struct function): Add after_tree_profile bit.
13025
13026 2008-01-19 Anatoly Sokolov <aesok@post.ru>
13027
13028         * config/avr/avr.S (_exit): Disable interrupt.
13029
13030 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
13031             Steven Bosscher  <stevenb.gcc@gmail.com>
13032
13033         PR rtl-optimization/26854
13034         PR rtl-optimization/34400
13035         * df-problems.c (df_live_scratch): New scratch bitmap.
13036         (df_live_alloc): Allocate df_live_scratch when doing df_live.
13037         (df_live_reset): Clear the proper bitmaps.
13038         (df_live_bb_local_compute): Only process the artificial defs once
13039         since the order is not important.
13040         (df_live_init): Init the df_live sets only with the variables
13041         found live by df_lr.
13042         (df_live_transfer_function): Use the df_lr sets to prune the
13043         df_live sets as they are being computed.  
13044         (df_live_free): Free df_live_scratch.
13045
13046 2008-01-18  Ian Lance Taylor  <iant@google.com>
13047
13048         * common.opt: Add fmerge-debug-strings.
13049         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
13050         flag_merge_debug_strings rather than flag_merge_constants.
13051         * doc/invoke.texi (Option Summary): Mention
13052         -fmerge-debug-strings.
13053         (Debugging Options): Document -fmerge-debug-strings.
13054
13055 2008-01-18  Ian Lance Taylor  <iant@google.com>
13056
13057         PR c++/33407
13058         * tree.h (DECL_IS_OPERATOR_NEW): Define.
13059         (struct tree_function_decl): Add new field operator_new_flag.
13060         * tree-inline.c (expand_call_inline): When inlining a call to
13061         operator new, force the return value to go into a variable, and
13062         set DECL_NO_TBAA_P on that variable.
13063         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
13064
13065 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
13066
13067         PR debug/34484
13068         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
13069         DWARF2_DEBUGGING_INFO.
13070         (dwarf2out_note_section_used): Ditto.  Add prototype.
13071         (have_multiple_function_sections, text_section_used,
13072         cold_text_section_used, *cold_text_sections): Move declarations
13073         before their uses.
13074
13075 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
13076
13077         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
13078         field and add signal_ra.
13079         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
13080         assignments to frame state pc.  Move end of stack check after
13081         MD_FALLBACK_FRAME_STATE_FOR.
13082         (uw_update_context_1): Use frame state signal_regs if set, instead
13083         of checking signal_frame flag.
13084         (uw_update_context): Use frame state signal_ra if set.
13085         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
13086         * config/xtensa/linux-unwind.h: New file.
13087
13088 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
13089
13090         * modulo-sched.c (get_sched_window): Fix comment typo.
13091
13092 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
13093
13094         PR tree-optimization/34648
13095         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
13096
13097 2008-01-17  Anatoly Sokolov <aesok@post.ru>
13098
13099         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
13100         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
13101
13102 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
13103
13104         PR rtl-optimization/34400
13105         * df-core.c (df_worklist_dataflow_overeager,
13106         df_worklist_dataflow_doublequeue): New functions.
13107         (df_worklist_dataflow): Two different worklist solvers.
13108         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
13109         New param.
13110
13111 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13112
13113         PR testsuite/34821
13114         * doc/invoke.texi: Document the dependence on pthread for fopenmp
13115         and ftree-parallelize-loops.
13116
13117 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
13118
13119         PR rtl-optimization/34826
13120         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
13121
13122 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
13123
13124         * global.c (find_reg): Mark the eh regs as used if necessary.
13125         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
13126         * ra.h (struct allocno): no_eh_reg field added.  Changed
13127         no_stack_reg type to bitfield.
13128
13129 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
13130
13131         * tree.c (substitute_in_expr): Add missing 'break'.
13132
13133 2008-01-17  Richard Guenther  <rguenther@suse.de>
13134
13135         PR tree-optimization/34825
13136         * tree-ssa-math-opts.c (is_division_by): Do not recognize
13137         x / x as division to handle.
13138
13139 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13140
13141         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
13142         "-pthread" is specified.
13143         * pa-hpux11.h (LIB_SPEC): Likewise.
13144
13145 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
13146             Peter Bergner  <bergner@vnet.ibm.com>
13147
13148         PR rtl-optimization/33796
13149         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
13150
13151 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13152
13153         PR libgfortran/34699
13154         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
13155         static links.
13156         * pa-hpux10.h (LINK_SPEC): Likewise.
13157         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
13158
13159 2008-01-16  Richard Guenther  <rguenther@suse.de>
13160
13161         PR middle-end/32628
13162         * fold-const.c (fold_convert_const_int_from_int): Do not
13163         set overflow if that occured only because of a sign extension
13164         change when converting from/to a sizetype with the same
13165         precision and signedness.
13166
13167 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
13168
13169         PR debug/34249
13170         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
13171         location address to the correct place.  Update copyright year.
13172
13173 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13174
13175         * lambda-code.c (lambda_transform_legal_p): Handle the case of
13176         no dependences in the dependence_relations vector.
13177
13178 2008-01-16  Jan Hubicka  <jh@suse.cz>
13179
13180         PR rtl-optimization/31396
13181         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
13182         * cfg.c (dump_reg_info): Print it.
13183         * regs.h (struct reg_info_t): add freq_calls_crossed.
13184         (REG_FREQ_CALLS_CROSSED): New macro.
13185         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
13186         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
13187         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
13188         regmove_optimize): Update call crossed frequencies.
13189         * local-alloc.c (struct qty): Add freq_calls_crossed.
13190         (alloc_qty): Copute freq_calls_crossed.
13191         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
13192         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
13193         * ra.h (struct allocno): Add freq_calls_crossed.
13194
13195 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13196
13197         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
13198         libgomp when compiling with ftree-parallelize-loops.
13199         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
13200
13201 2008-01-16  Richard Guenther  <rguenther@suse.de>
13202
13203         PR tree-optimization/34769
13204         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
13205         * tree.c (int_cst_value): Instead make this function more
13206         permissive in what it accepts as valid input.  Document this
13207         function always sign-extends the value.
13208
13209 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
13210             Richard Guenther  <rguenther@suse.de>
13211
13212         PR c/34668
13213         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
13214         (gimple_fold_indirect_ref_rhs): ... this.
13215         (gimple_fold_indirect_ref): New function with foldings
13216         that preserve lvalueness.
13217         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
13218         * tree-flow.h (gimple_fold_indirect_ref): Declare.
13219         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
13220         to fold an INDIRECT_REF, fall back to the old use of
13221         fold_indirect_ref_1.
13222
13223 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13224
13225         * tree-data-ref.c (subscript_dependence_tester_1): Call 
13226         free_conflict_function.
13227         (compute_self_dependence): Same.
13228
13229 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
13230
13231         PR debug/34249
13232         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
13233         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
13234         function global.
13235         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
13236         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
13237         for DWARF2_UNWIND_INFO targets.
13238
13239 2008-01-16  Richard Guenther  <rguenther@suse.de>
13240
13241         PR c/34768
13242         * c-typeck.c (common_pointer_type): Do not merge inconsistent
13243         type qualifiers for function types.
13244
13245 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
13246
13247         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
13248         loop_iterator li from previous commit.
13249
13250 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
13251
13252         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
13253
13254 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
13255
13256         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
13257         (parallelize_loops): Don't parallelize irreducible components.
13258
13259 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13260
13261         PR c++/24924
13262         * c-opts (c_common_post_options): Do not enable CPP
13263         flag_pedantic_errors by default.
13264         
13265 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
13266
13267         PR rtl-optimization/31944
13268         * cse.c (remove_pseudo_from_table): New function.
13269         (merge_equiv_classes): Use above function to remove pseudo-registers.
13270         (invalidate): Likewise.
13271
13272 2008-01-13  Richard Guenther  <rguenther@suse.de>
13273
13274         PR middle-end/34601
13275         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
13276         instead of TYPE_MODE to deal with calls from expand_one_error_var.
13277
13278 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
13279
13280         * gcse.c (cprop_jump): Call validate_unshare_change instead of
13281         validate_change to unshare the source of the PC set.
13282
13283 2008-01-12  Jan Hubicka  <jh@suse.cz>
13284
13285         PR middle-end/32135
13286         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
13287         references above array bounds.  This might trigger bounds checks for
13288         pointers to arrays.
13289
13290 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
13291
13292         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
13293         new_replaceable_dependencies.
13294
13295 2008-01-12  Doug Kwan  <dougkwan@google.com>
13296
13297         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
13298         instead of OPT_Wreturn_type in warning due to ignored return type
13299         qualifiers.
13300         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
13301         options included in -Wextra.
13302         * c.opt: New option -Wignored_qualifiers.
13303         * doc/invoke.texi (Warning Options, -Wextra): Add new option
13304         -Wignore_qualifiers.
13305         (-Wignored-qualifiers): Document.
13306         (-Wreturn-type): Remove description of functionality now handled
13307         by -Wignored-qualifiers.
13308
13309 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
13310
13311         PR ada/33788
13312         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
13313         NOP_EXPR if it is between integral types with the same precision.
13314
13315 2008-01-12  Jan Hubicka  <jh@suse.cz>
13316
13317         PR other/28023
13318         * invoke.texi (max-inline-recursive-depth): Fix default value.
13319
13320 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
13321
13322         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
13323         correct type.
13324
13325 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
13326         
13327         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
13328         
13329 2008-01-11  James E. Wilson  <wilson@specifix.com>
13330
13331         PR target/26015
13332         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
13333
13334 2008-01-11  Anatoly Sokolov <aesok@post.ru>
13335
13336         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
13337         save/restore frame pointer register and don't use 'call-prologues' 
13338         optimization in function with "OS_task" attribute.
13339
13340 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
13341
13342         PR middle-end/31309
13343         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
13344         when copying to memory.
13345
13346 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
13347
13348         PR rtl-optimization/30905
13349         * cfgcleanup.c: Include dce.h
13350         (crossjumps_occured): New global variable.
13351         (try_crossjump_bb): Exit loop after finding a fallthru edge.
13352         If something changed, set crossjumps_occured to true.
13353         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
13354         Don't add/remove fake edges to exit here...
13355         (cleanup_cfg): ...but do it here, when crossjumping.
13356         Run a fast DCE when successful crossjumps occured in the latest
13357         iteration of try_optimize_cfg.
13358
13359 2008-01-11  Richard Guenther  <rguenther@suse.de>
13360
13361         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
13362         (struct vn_unary_op_s): Likewise.
13363         (vn_reference_insert): Free old reference on hash collision.
13364
13365 2008-01-10  Raksit Ashok  <raksit@google.com>
13366
13367         PR rtl-optimization/27971
13368         * combine.c (find_split_point): Split PLUS expressions which are
13369         inside a MEM rtx, and whose first operand is complex.
13370
13371 2008-01-10  DJ Delorie  <dj@redhat.com>
13372
13373         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
13374         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
13375         (m32c_hard_regno_ok): Call the underlying function.
13376
13377 2008-01-10  Richard Guenther  <rguenther@suse.de>
13378
13379         PR middle-end/34683
13380         * tree-cfg.c (tree_merge_blocks): Do not go through the
13381         full-blown folding and stmt updating path if we just deal
13382         with virtual operands.
13383         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
13384         test for abnormal SSA_NAMEs.
13385
13386 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
13387
13388         PR middle-end/34641
13389         * reload.c (push_reload): Add assertions.  All constants from
13390         reg_equiv_constant should have been used for replacing the respective
13391         pseudo earlier.
13392         (find_reloads_address): Invoke find_reloads_address_part for
13393         constant taken from the reg_equiv_constant array.
13394
13395 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
13396
13397         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
13398         field (valnum) the first in the struct.  Replace bools with
13399         unit bit fields.
13400
13401 2008-01-10  Richard Guenther  <rguenther@suse.de>
13402
13403         PR tree-optimization/34651
13404         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
13405         types and ordering for masking and converting.
13406
13407 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
13408
13409         PR tree-optimization/34017
13410         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
13411         also for PHI_NODE expressions.
13412
13413 2008-01-09  Jan Hubicka  <jh@suse.cz>
13414
13415         PR tree-optimization/34708
13416         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
13417         based on number of case labels.
13418         (init_inline_once): Remove switch_cost.
13419         * tree-inline.h (eni_weights_d): Remove switch_cost.
13420
13421 2008-01-09  Richard Guenther  <rguenther@suse.de>
13422         Andrew Pinski  <andrew_pinski@playstation.sony.com>
13423
13424         PR middle-end/30132
13425         * gimplify.c (gimplify_cond_expr): Do not create an addressable
13426         temporary if an rvalue is ok or an lvalue is not required.
13427
13428 2008-01-09  Richard Guenther  <rguenther@suse.de>
13429
13430         PR middle-end/34458
13431         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
13432         adjust return type.
13433
13434 2008-01-09  Richard Guenther  <rguenther@suse.de>
13435
13436         PR middle-end/34679
13437         * tree.c (host_integerp): Check for sizetype only if the
13438         type is an integer type.
13439
13440 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
13441
13442         PR debug/26364
13443         * opts.c (decode_options): Disable inlining of functions called
13444         once if not in unit-at-a-time mode.
13445
13446 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
13447
13448         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
13449
13450 2008-01-08  Richard Guenther  <rguenther@suse.de>
13451
13452         PR middle-end/31863
13453         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
13454         out early if the result will be unused.
13455
13456 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
13457
13458         PR target/34709
13459         Revert:
13460
13461         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13462         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13463         for TARGET_RECIP.       
13464         
13465 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
13466         
13467         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
13468         for vectorization tuned.
13469         
13470 2008-01-08  Richard Guenther  <rguenther@suse.de>
13471
13472         PR tree-optimization/34683
13473         * tree-ssa-operands.c (operand_build_cmp): Export.
13474         * tree-ssa-operands.h (operand_build_cmp): Declare.
13475         * tree-vn.c (vuses_compare): Remove.
13476         (sort_vuses): Use operand_build_cmp.
13477         (sort_vuses_heap): Likewise.
13478         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
13479         to re-use old VEC if available.  Do not sort already sorted VUSEs.
13480         (vdefs_to_vec): Do not sort already sorted VDEFs.
13481
13482 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
13483
13484         PR middle-end/34694
13485         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
13486
13487 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
13488
13489         PR target/34702
13490         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
13491         limitations of reciprocal sequences on x86 targets.
13492
13493 2008-01-08  Richard Guenther  <rguenther@suse.de>
13494
13495         PR tree-optimization/34683
13496         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
13497
13498 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
13499
13500         PR target/34622
13501         * config/darwin.c (darwin_mergeable_string_section): Don't use
13502         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
13503
13504 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
13505
13506         PR target/34682
13507         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
13508         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
13509         predicates of op0 and op1 to register_operand.
13510         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
13511         expander using X87MODEF mode iterator.  Change predicates of
13512         op0 and op1 to register_operand.
13513         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
13514         corresponding patterns and macroize using MODEF macro.  Change
13515         predicates of op0 and op1 to register_operand and remove
13516         "m" constraint. Disparage "r" alternative with "!".
13517         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
13518         macroize using X87MODEF macro.  Change predicates of op0 and op1
13519         to register_operand and remove "m" constraint.  Disparage "r"
13520         alternative with "!".
13521         (absneg splitter with memory operands): Remove.
13522         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
13523         patterns and macroize using X87MODEF mode iterator.
13524         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
13525         Change predicate of op1 to register_operand.
13526         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
13527         for memory operands.
13528
13529 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
13530
13531         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
13532
13533 2008-01-07  Richard Guenther  <rguenther@suse.de>
13534
13535         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
13536         fields.
13537
13538 2008-01-07  Richard Guenther  <rguenther@suse.de>
13539
13540         PR tree-optimization/34683
13541         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
13542         VOPs of the needed size to save memory.  Use VEC_quick_push
13543         to save compile-time.
13544         (vdefs_to_vec): Likewise.
13545
13546 2008-01-07  Sa Liu  <saliu@de.ibm.com>
13547
13548         * config/spu/spu.md (divdf3): Genetate inline code for double
13549         division.  The implementation doesn't handle INF or NAN, therefore it
13550         only applies when -ffinite-math-only is given.
13551
13552 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
13553
13554         PR libstdc++/34680
13555         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
13556         * doc/cpp.texi ([Common Predefined Macros]): Document.
13557
13558 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
13559
13560         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
13561         order to use commutative addition instead of subtraction.
13562
13563 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13564             Mircea Namolaru  <namolaru@il.ibm.com>
13565             Vladimir Yanovsky  <yanov@il.ibm.com>
13566             Revital Eres  <eres@il.ibm.com>
13567
13568         PR tree-optimization/34263
13569         * tree-outof-ssa.c (process_single_block_loop_latch,
13570         contains_tree_r): New functions.
13571         (analyze_edges_for_bb): Call process_single_block_loop_latch
13572         function to empty single-basic-block latch block if possible.
13573
13574 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13575
13576         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
13577         for TARGET_RECIP.
13578         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
13579
13580 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13581
13582         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
13583
13584 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
13585
13586         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
13587
13588 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
13589
13590         PR tree-optimization/34618
13591         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
13592         flag from T.
13593
13594 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
13595
13596         PR target/34673
13597         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
13598         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
13599         Update copyright year.
13600
13601         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
13602         Update copyright year.
13603         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
13604         using NR fixup.
13605
13606 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
13607
13608         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
13609         edge does not point to current bb before changing need_assert.
13610
13611 2008-01-04  Richard Guenther  <rguenther@suse.de>
13612
13613         PR middle-end/34029
13614         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
13615         for verifying purposes if they are is_gimple_min_invariant.
13616
13617 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
13618
13619         PR tree-optimization/34448
13620         PR tree-optimization/34465
13621         * gimplify.c (gimplify_init_constructor): Add new parameter
13622         notify_temp_creation.  Use it.
13623         (gimplify_modify_expr_rhs): Take volatiles into account when
13624         optimizing constructors.
13625         Do not optimize constructors if gimplify_init_constructor will dump to
13626         memory.
13627         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
13628         * gcc.c-torture/compile/pr34448.c: New.
13629
13630 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
13631
13632         PR gcov-profile/34609
13633         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
13634         return_slot if result is TREE_ADDRESSABLE.
13635
13636 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
13637
13638         * config/mips/mips.md (sqrt_condition): Tweak comment.
13639         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
13640
13641 2008-01-03  Tom Tromey  <tromey@redhat.com>
13642
13643         PR c/34457
13644         * c-common.c (c_type_hash): Handle VLAs.
13645
13646 2008-01-03  Jan Hubicka  <jh@suse.cz>
13647
13648         PR tree-optimization/31081
13649         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
13650         0 when inlining and not inlining to first basic block.
13651         (remap_decl): When var is initialized to 0, don't set default_def.
13652         (expand_call_inline): Set entry_bb.
13653         * tree-inline.h (copy_body_data): Add entry_bb.
13654
13655 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13656
13657         PR c++/34619
13658         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
13659         before returning.
13660
13661         PR tree-optimization/29484
13662         * tree-inline.c (inline_forbidden_p_2): New function.
13663         (inline_forbidden_p): Disallow inlining if some static var
13664         has an address of a local LABEL_DECL in its initializer.
13665         * doc/extend.texi (Labels as Values): Document &&foo behaviour
13666         vs. inlining.
13667
13668 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
13669
13670         PR tree-optimization/34635
13671         * tree-data-ref.c (add_other_self_distances): Make sure that the
13672         evolution step is constant.
13673
13674 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
13675
13676         PR middle-end/34608
13677         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
13678
13679 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
13680
13681         * tree-sra.c (scalarize_init): Insert the generate_element_init
13682         statements after the generate_element_zero statements.
13683
13684 2008-01-02  Richard Guenther  <rguenther@suse.de>
13685
13686         PR middle-end/34093
13687         PR middle-end/31976
13688         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
13689         for very large number of operands instead of ICEing.
13690
13691 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
13692
13693         PR target/34013
13694         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
13695         while stack probing.
13696
13697 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
13698
13699         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
13700         in C++0x mode.
13701
13702 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
13703
13704         PR libmudflap/26442
13705         * tree-mudflap.c (mx_register_decls): Guard warning by
13706         !DECL_ARTIFICIAL check.
13707
13708 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
13709
13710         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
13711         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
13712         sse5_perm<mode>): Fix constraints.