OSDN Git Service

* configure.ac: Don't add target-libmudflap to noconfigdirs for
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>
2
3         * config/bfin/uclinux.h (MFWRAP_SPEC): New.
4
5 2007-06-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
6
7         PR target/32341
8         * config/v850/v850.c: Include dataflow header file.
9         (substitute_ep_register): Fix typo.
10
11 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
12
13         * configure.ac: Fix earlier checkin.
14         * configure: Regenerated.
15
16 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
17
18         * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
19         * aclocal.m4: Regenerate.
20         * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
21         ACX_PROG_CC_WARNINGS_ARE_ERRORS,
22         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
23         * configure: Regenerate.
24         * Makefile.in (LOOSE_WARN): Subst loose_warn.
25
26         * Makefile.in (quickstrap): Build libgcc too.
27
28 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
29
30         * configure.ac: Add --enable-checking=df.  Explicitly mention that
31         the variables are initialized as for "release".
32         * df-core.c: Use it.
33         * configure: Regenerate.
34         * config.in: Regenerate.
35
36 2007-06-14  Bob Wilson  <bob.wilson@acm.org>
37
38         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
39         validate_replace_rtx instead of replace_rtx.
40         (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
41
42 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
43
44         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
45         (DWARF2_UNWIND_INFO): Override default if configured with
46         SJLJ EH disabled.
47         * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
48         (ENDFILE_SPEC): Add crtend.o.
49         * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
50         (ENDFILE_SPEC): Add crtend.o.
51         (TARGET_USE_JCR_SECTION): Define.
52         (MD_UNWIND_SUPPORT): Define for 32-bit target.
53
54         * config/i386/cygming-crtbegin.c: New file.
55         * config/i386/cygming-crtend.c: New file.
56
57 2007-06-14  Pascal Obry Pascal Obry  <obry@adacore.com>
58
59         * config/i386/w32-unwind.h: New file.
60
61 2007-06-13  Eric Christopher  <echristo@apple.com>
62
63         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
64         the user set a value below STACK_BOUNDARY.
65
66 2007-06-13  Thiemo Seufer  <ths@networkno.de>
67
68         * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
69         imply -lpthread for -pthread.
70
71 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
72
73         * basic-block.h: Remove the prototype for
74         free_basic_block_vars.
75         * cfglayout.h: Remove the prototype for
76         insn_locators_initialize.
77         * tree.h: Remove the prototype for emit_line_note.
78
79         * tree-ssa-pre.c (mergephitemp): Remove.
80         (init_pre): Don't use mergephitemp.
81
82 2007-06-13  Eric Christopher  <echristo@apple.com>
83
84         * config/i386/i386.c (override_options): If we've specified
85         an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
86
87 2007-06-13  Bob Wilson  <bob.wilson@acm.org>
88
89         * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
90         is defined.
91
92 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
93
94         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
95         * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
96         (eh_store_handler): New pattern.
97         (eh_return): Emit it instead of a plain move.
98
99 2007-06-13  Uros Bizjak  <ubizjak@gmail.com>
100
101         * config/i386/i386.c (ix86_init_mmx_sse_builtins)
102         [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
103         [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
104         def_builtin_const.
105
106 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
107
108         * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
109         (find_next_insn_start, find_load): New functions.
110         (bfin_reorg): Use them to deal with the fact that parallel insns are
111         no longer represented as a SEQUENCE.
112
113 2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
114
115         * config/sparc/sparc.c (sparc_override_options): Initialize
116         fpu mask correctly.
117
118 2007-06-13  Dave Korn  <dave.korn@artimi.com>
119
120         * config/i386/i386.c (ix86_eax_live_at_start_p): Use
121         df_get_live_out.
122
123 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
124
125         * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
126         config/sh/divcost-analysis, dbgcnt.def, df-core.c,
127         df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
128         tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
129         tree-vect-transform.c: Fix comment typos.  Follow spelling
130         conventions.
131
132 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
133
134        * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
135        to the exit block use set.
136        * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
137        * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
138
139 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
140
141         * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
142         * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
143         to indicate an error.
144         (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): New functions
145         (dbg_cnt_process_opt): Print an error on a bad argument.
146         * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
147         * common.opt (-fdbg-cnt-list): New.
148         * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
149
150 2007-06-12  Eric Botcazou  <ebotcazou@adacore.com>
151
152         * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
153         flag on ref-all pointers.
154
155 2007-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
156
157         PR middle-end/31579
158         * expr.c (expand_expr_addr_expr_1): Call expand_expr
159         for the offset with the modifier as EXPAND_INITIALIZER
160         if the modifier is EXPAND_INITIALIZER.
161         (expand_expr_real_1 <case INTEGER_CST>): Don't force to
162         a register if we had an overflow.
163
164 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
165
166         * real.c (real_isfinite): New.
167         (real_sqrt): Use it.
168         * real.h (real_isfinite): New.
169         * builtins.c: Use it.
170
171 2007-06-12  Ian Lance Taylor  <iant@google.com>
172             Daniel Berlin  <dberlin@dberlin.org>
173
174         PR libstdc++/29286
175         * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
176         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
177         (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
178         (DECL_NO_TBAA_P): Define.
179         (struct tree_decl_common): Add no_tbaa_flag field.
180         * tree-ssa-structalias.c (struct variable_info): Add
181         no_tbaa_pruning field.
182         (new_var_info): Initialize no_tbaa_pruning field.
183         (unify_nodes): Copy no_tbaa_pruning field.
184         (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
185         (dump_solution_for_var): Print no_tbaa_pruning flag.
186         (set_uids_in_ptset): Add no_tbaa_pruning parameter.  Change all
187         callers.
188         (compute_tbaa_pruning): New static function.
189         (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
190         Call compute_tbaa_pruning.
191         * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
192         * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
193         * gimple-low.c (lower_stmt): Likewise.
194         * tree-gimple.c (is_gimple_stmt): Likewise.
195         * tree-ssa-operands.c (get_expr_operands): Likewise.
196         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
197         * tree-inline.c (estimate_num_insns_1): Likewise.
198         (copy_result_decl_to_var): Likewise.
199         * expr.c (expand_expr_real_1): Likewise.
200         * tree-pretty-print.c (dump_generic_node): Likewise.
201         * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
202         * omp-low.c (omp_copy_decl_2): Likewise.
203         * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
204         * doc/c-tree.texi (Expression trees): Document
205         CHANGE_DYNAMIC_TYPE_EXPR.
206
207 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
208
209         * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
210         with !HONOR_NANS and !HONOR_INFINITIES.
211         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
212
213 2007-06-12  Tristan Gingold  <gingold@adacore.com>
214
215         * gcov.c: Comments updated.
216         (source_info): Add file_time field.
217         (source_index): New variable.
218         (mutiple_files): New variable.
219         (generate_results): New function extracted from process_file.
220         (process_file): Save and restore chain of functions, generate
221         results and free structures only if not merging results.
222         (release_structures): File names are now freed in create_file_names
223         (create_file_names): Free previous file names.
224         (find_source): File date is now read here and modifications in
225         source files is checked here.
226         (read_graph_file): Only reverse order of functions for the current
227         object file.
228         (make_gcov_file_name): Do not generate long names if input_name is
229         NULL.
230         (output_lines): If merging results do not display graph, data and
231         runs informations.
232         Checking source file modification is done in find_source.
233
234         * doc/gcov.texi: Append an s to sourcefile.
235
236 2007-06-12  Bernd Schmidt  <bernd.schmidt@analog.com>
237
238         * config/bfin/bfin.md (UNSPEC_NOP): New constant.
239         (forced_nop): New pattern.
240         * config/bfin/bfin.c: Include "df.h".
241         (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
242         (bfin_discover_loop): Use df_get_live_in instead of
243         global_live_at_start.
244         (bfin_reorder_loops): Pass 0 to cfg_layout_initialize.  Call
245         df_analyze when done.
246         (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
247         the insns.  Use QImode for the final insn in a bundle.  Call
248         df_insn_rescan on generated NOPs; use gen_forced_nop instead of
249         gen_nop.
250         (reorder_var_tracking_notes): New function.
251         (bfin_reorg): Pass no argument to split_all_insns.  Don't call
252         update_life_info.  Call df_analyze after scheduling and bundle
253         generation.  Call reorder_var_tracking_notes if generating these notes.
254         Call df_finish_pass at the end.
255
256 2007-06-12  Dirk Mueller  <dmueller@suse.de>
257
258         * optabs.c (debug_optab_libfuncs): fix gcc_assert to
259         a comparison, not an assignment.
260
261 2007-06-12  Olivier Hainque  <hainque@adacore.com>
262
263         * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
264         Request walking the subtrees only, leaving the current is_lhs/val_only
265         untouched.
266         (convert_non_local_reference): Likewise.
267
268 2007-06-12  Nathan Sidwell  <nathan@codesourcery.com>
269
270         * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
271
272 2007-06-12  Richard Guenther  <rguenther@suse.de>
273
274         PR tree-optimization/15353
275         PR tree-optimization/31657
276         * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
277         * timevar.def: Add TV_TREE_IFCOMBINE.
278         * tree-pass.h (pass_tree_ifcombine): Declare.
279         * tree-ssa-ifcombine.c: New file.
280         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
281         * tree-flow.h (blocks_in_phiopt_order): Declare.
282         * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
283         (tree-ssa-ifcombine.o): New dependencies.
284
285 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
286
287         PR rtl-optimization/32293
288         * combine.c (simplify_if_then_else): Truncate return from
289         nonzero_bits() to correct mode.
290
291 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
292
293         * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
294         into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
295
296 2007-06-11  Diego Novillo  <dnovillo@google.com>
297
298         * Makefile.in (reload1.o-warn): Remove.
299
300 2007-06-11  Seongbae Park <seongbae.park@gmail.com>
301
302         * combine.c (subst): Use reg_overlap_mentioned_p
303         instead of comparing register numbers directly.
304
305 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
306
307         * reload1.c (mark_home_live_1): Use the mode parameter.
308
309 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
310
311         * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
312         df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
313         word "deferred".
314         * df-core.c: Ditto.
315
316 2007-06-11  Daniel Berlin  <dberlin@dberlin.org>
317
318         * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
319
320 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
321
322         * config/i386/i386.md ("*movtf_internal): Penalize moves to and
323         from integer registers.
324         (FP mode splitters): Handle TFmode.
325
326 2007-06-11  Eric Botcazou  <ebotcazou@adacore.com>
327
328         * tree-ssa-structalias.c (find_what_p_points_to): Return false
329         for ref-all pointers that point-to anything.
330
331 2007-06-11  Joseph Myers  <joseph@codesourcery.com>
332
333         * config/arm/arm.c (arm_output_dwarf_dtprel,
334         TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
335
336 2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>
337
338         * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
339         movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
340         to memory moves.
341
342 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
343
344         * gcc/tree.c (signed_or_unsigned_type_for): New.
345         (unsigned_type_for): Use signed_or_unsigned_type_for.
346         (signed_type_for): Use signed_or_unsigned_type_for.
347         * gcc/tree.h (signed_or_unsigned_type_for): New.
348         (get_signed_or_unsigned_type): Remove.
349         * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
350         lang_hooks.types.signed_type
351         (size_diffop): Likewise.
352         (all_ones_mask_p): Likewise.
353         (build_range_check): Likewise.
354         (fold_cond_expr_with_comparison): Likewise.
355         (fold_cond_expr_with_comparison): Likewise.
356         (unextend): Likewise.
357         (extract_muldiv_1): Likewise.
358         (fold_single_bit_test_into_sign_test): Likewise.
359         (fold_binary): Likewise.
360         (fold_ternary): Likewise.
361         (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
362         instead of get_signed_or_unsigned_type.
363         * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
364         (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
365         * gcc/expr.c (signed_or_unsigned_type_for): Use
366         signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
367         * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
368         (lhd_signed_or_unsigned_type): Remove.
369         * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
370         signed_or_unsigned_type.
371         (lhd_signed_or_unsigned_type): Remove.
372         * gcc/expmed.c (make_tree): Use signed_type_for instead of
373         lang_hooks.types.signed_type.
374         * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
375         c_common_signed_type instead of lang_hooks.types.signed_type.
376         (c_common_unsigned_type): New.
377         (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
378         (shorten_compare): Use c_common_unsigned_type instead of
379         c_common_signed_or_unsigned_type.
380         (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
381         unsigned_type_for.
382         * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
383         lang_hooks.types.signed_type.
384         * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
385         (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
386         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
387         * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
388         instead of unsigned_type_for.
389         * gcc/c-decl.c (groakdeclarator): Likewise.
390         * gcc/c-typeck.c (convert_for_assignment): Likewise.
391         * gcc/c-common.h (c_common_unsigned_type): New.
392
393 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
394
395         PR target/32280
396         * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
397         * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
398
399 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
400
401         PR middle-end/32279
402         * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
403         into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
404
405 2007-06-10  Jan Sjodin  <jan.sjodin@amd.com>
406             Sebastian Pop  <sebpop@gmail.com>
407
408         * lambda-code.c (remove_iv): New.
409         (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
410
411 2007-06-10  Zdenek Dvorak  <dvorakz@suse.cz>
412
413         * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
414         * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
415         * tree-ssa-loop-prefetch.c: Include optabs.h.
416         (FENCE_FOLLOWING_MOVNT): New macro.
417         (struct mem_ref): Add independent_p and storent_p fields.
418         (record_ref): Initalize the new fields.
419         (gather_memory_references_ref): Return true if the reference
420         could be analysed.
421         (gather_memory_references): Check whether all memory accesses
422         in loop were recorded.
423         (should_issue_prefetch_p): Return false for nontemporal stores.
424         (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
425         may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
426         (determine_loop_nest_reuse): Detect independent memory references.
427         (loop_prefetch_arrays): Call mark_nontemporal_stores.
428         * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
429         * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
430         * config/i386/i386.h (x86_mfence): Declare.
431         (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
432         * config/i386/i386.c (x86_mfence): New variable.
433         (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
434
435         * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
436         * optabs.c (init_optabs): Initialize storent_optab.
437         * optabs.h (enum optab_index): Add OTI_storent.
438         (storent_optab): Declare.
439         * genopinit.c (optabs): Add initialization for storent_optab.
440         * tree.h (MOVE_NONTEMPORAL): New macro.
441         * expr.c (expand_assignment, store_expr, store_constructor_field,
442         store_constructor, store_field, expand_expr_real_1): Propagate
443         nontemporality of the expanded store.
444         (emit_storent_insn): New function.
445         * expr.h (expand_assignment, store_expr): Declaration changed.
446         * function.c (assign_parm_setup_reg): Pass false as nontemporality
447         to expand_assignment.
448         * stmt.c (expand_asm_expr): Ditto.
449         * calls.c (initialize_argument_information): Pass false as
450         nontemporality to store_expr.
451         * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
452         storentsi): New.
453
454 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
455
456         * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
457         parameter, use it.
458         (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
459
460 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
461
462         * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
463         and allow DECL_P here.
464
465 2007-06-09  Zdenek Dvorak  <dvorakz@suse.cz>
466
467         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
468         follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
469         track of the size of the expression.
470         * cfghooks.c (merge_blocks): Remove block from loops structure only
471         after call of the merge_blocks hook.
472
473 2007-06-09  Tom Tromey  <tromey@redhat.com>
474
475         * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
476         (deprecated_state): Removed.
477         (start_decl): Update.
478         (enum deprecated_states): Moved earlier.
479         (groktypename): Update.
480         (push_parm_decl): Likewise.
481         (grokfield): Likewise.
482         (start_function): Likewise.
483
484 2007-06-09  Ian Lance Taylor  <iant@google.com>
485
486         PR tree-optimization/32169
487         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
488         CONVERT_EXPR, check whether min and max both converted to an
489         overflow infinity representation.
490
491 2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>
492
493         * reload1.c (fixup_abnormal_edges): Clear bb field for insns
494         not inserted on the edge.
495
496 2007-06-08  Bob Wilson  <bob.wilson@acm.org>
497
498         * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
499         instructions if they are supported.
500         (__divsi3, __umodsi3, __modsi3): Likewise.
501         (__ashldi3, __ashrdi3, __lshrdi3): New.
502         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
503
504 2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
505             Tony Linthicum <tony.linthicum@amd.com>
506
507         * doc/extend.texi: Add fvect-cost-model flag.
508         * common.opt (fvect-cost-model): New flag.
509         * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
510         cost fields in stmt_vec_info struct for STMT.
511         * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
512         fields in stmt_vec_info struct and access functions for the same.
513         (TARG_COND_BRANCH_COST): Define cost of conditional branch.
514         (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
515         load, store and vector to scalar operation.
516         (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
517         (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
518         (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
519         (TARG_VEC_STORE_COST): Define cost of vector store.
520         (vect_estimate_min_profitable_iters): Define new function.
521         * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
522         check to evaluate if loop iterations are less than minimum profitable
523         iterations determined by cost model or minimum vect loop bound defined
524         by user, whichever is more conservative.
525         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
526         run-time check to evaluate if loop iterations are less than minimum
527         profitable iterations determined by cost model or minimum vect loop
528         bound defined by user, whichever is more conservative.
529         (vect_estimate_min_profitable_iterations): New function to estimate
530         mimimimum iterartions required for vector version of loop to be
531         profitable over scalar version.
532         (vect_model_reduction_cost): New function.
533         (vect_model_induction_cost): New function.
534         (vect_model_simple_cost): New function.
535         (vect_cost_strided_group_size): New function.
536         (vect_model_store_cost): New function.
537         (vect_model_load_cost): New function.
538         (vectorizable_reduction): Call vect_model_reduction_cost during
539         analysis phase.
540         (vectorizable_induction): Call vect_model_induction_cost during
541         analysis phase.
542         (vectorizable_load): Call vect_model_load_cost during analysis phase.
543         (vectorizable_store): Call vect_model_store_cost during analysis phase.
544         (vectorizable_call, vectorizable_assignment, vectorizable_operation,
545         vectorizable_promotion, vectorizable_demotion): Call
546         vect_model_simple_cost during analysis phase.
547
548 2007-06-08  Simon Baldwin  <simonb@google.com>
549
550         * reg-stack.c (get_true_reg): Readability change.  Moved default case
551         label into direct switch statement scope.
552
553 2007-06-08  Simon Baldwin  <simonb@google.com>
554
555         * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
556         in gcc_assert() with '==' comparison.
557
558 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
559
560         * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
561         TARGET_ABM handling of x86_popcnt variable.
562
563 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
564
565         * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
566         __builtin_copysignq and __builtin_infq built-in functions.
567
568 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
569
570         * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
571         SSE4.2 section.  Correct built-in function names in SSE4A section.
572
573 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
574
575         PR tree-optimization/32243
576         * tree-vect-transform.c (vectorizable_type_promotion): Move check
577         for ncopies after ratio check between nunits_out and nunits_in.
578         (vectorizable_type_demotion): Remove single-use variable "scalar_type".
579
580 2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>
581
582         PR tree-optimization/32224
583         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
584         vectorization upon a non GIMPLE_MODIFY_STMT.
585
586 2007-06-08  Christian Bruel  <christian.bruel@st.com>
587
588         PR target/29953
589         * config/sh/sh.md (doloop_end): New pattern and splitter.
590         * loop-iv.c (simple_rhs_p): Check for hardware registers.
591
592 2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
593
594         PR middle-end/32209
595         * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
596         functions.
597         (verify_dominators): Do not change dominance tree.
598
599 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
600
601         * config/sh/constraints.md: New file.
602         * config/sh/sh.c: Include tm-constrs.h.
603         (reg_class_from_letter): Remove.
604         (prepare_cbranch_operands): Use satisfies_constraint_*
605         function instead of macro.
606         (andcosts, broken_move, sh_secondary_reload): Likewise.
607         * config/sh/predicates.md (trapping_target_operand): Likewise.
608         (and_operand, arith_operand, arith_reg_or_0_operand,
609         cmp_operand, logical_operand, target_operand,
610         ua_address_operand, ua_offset, xor_operand): Likewise.
611         * config/sh/sh.md: Include constraints.md.
612         (*movsicc_t_false): Use satisfies_constraint_* function
613         instead of macro.
614         (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
615         lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
616         movdi_const_16bit+1, beq, bne, *ptb): Likewise.
617         * config/sh/sh.h (reg_class_from_letter): Remove prototype.
618         (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
619         (REG_CLASS_FROM_CONSTRAINT): Remove.
620         (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
621         CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
622         CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
623         CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
624         CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
625         (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
626         function instead of macro.
627         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
628         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
629         EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
630         EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
631         (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
632         (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
633         (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
634         (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
635         (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
636         EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
637         EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
638         EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
639         EXTRA_CONSTRAINT_STR): Likewise.
640         (GO_IF_LEGITIMATE_INDEX): Fix indentation.
641
642 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
643
644         * config/i386/darwin.h (STACK_BOUNDARY): Define.
645
646 2007-06-07  Simon Martin  <simartin@users.sourceforge.net>
647
648         PR c++/30759
649         * c-common.h (flag_cpp0x): Replaced by...
650         (cxx_dialect): ... this new variable specifying the C++ dialect that
651         is used.
652         * c-common.c (flag_cpp0x): Removed.
653         (cxx_dialect): Defined.
654         * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
655         cxx_dialect.
656         * c-opts.c (c_common_post_options): Likewise.
657         (set_std_cxx98): Set cxx_dialect to cxx98.
658         (set_std_cxx0x): Set cxx_dialect to cxx0x.
659
660 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
661             Hui-May Chang <hm.chang@apple.com>
662
663         * doc/invoke.texi (Darwin Options): Update documentation for
664         -mmacosx-version-min.
665         * config.gcc (*-*-darwin*): Set extra_gcc_objs.
666         * config/darwin-driver.c: New file.
667         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
668         * config/t-darwin (darwin-driver.o): New rule.
669
670         * config/darwin-c.c (version_as_macro): Ignore low digit.
671
672 2007-06-07  Uros Bizjak  <ubizjak@gmail.com>
673
674         * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
675         (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
676         (CSGNMODE): New mode macro.
677         (CSGNVMODE): New mode attribute.
678         (copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
679         expander using CSGNMODE mode macro.  Handle TFmode.
680         (copysign<mode>3_const): Rename from copysignsf3_const and
681         copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
682         Handle TFmode.
683         (copysign<mode>3_var): Rename from copysignsf3_var and
684         copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
685         Handle TFmode.
686         (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
687         mode macro.  Handle TFmode.
688         * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
689         (iortf3, *iortf3): Ditto.
690         (xortf3, *xortf3): Ditto.
691         * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
692         TFmode and TImode masks.
693         (ix86_expand_copysign): Expand TFmode copysign insn.
694         (IX86_BUILTIN_INFQ): New.
695         (IX86_BUILTIN_FABSQ): Ditto.
696         (IX86_BUILTIN_COPYSIGNQ): Ditto.
697         (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
698         [__builtin_fabsq]: Ditto.
699         [__builtin_copysignq]: Ditto.
700         (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
701         [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
702         [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
703         ix86_expand_binop_builtin().
704
705 2007-06-07  Bob Wilson  <bob.wilson@acm.org>
706
707         * config/xtensa/lib1funcs.asm: Clean up whitespace.
708
709 2007-06-07  Steve Ellcey  <sje@cup.hp.com>
710
711         PR target/31850
712         * rtl.h (push_to_sequence2): New.
713         * emit-rtl.c (push_to_sequence2): New.
714         * function.c (assign_parm_data_all): Add new fields.
715         (assign_parm_setup_block): Call push_to_sequence2 instead of
716         push_to_sequence.
717         (assign_parm_setup_reg): Ditto.
718         (assign_parm_setup_stack): Ditto.
719         (assign_parms_unsplit_complex): Ditto.
720         (assign_parms): Change field name.
721
722 2007-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
723
724         PR tree-optimization/32220
725         * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
726         phi node is reached before defining statement.
727
728 2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
729
730         PR tree-opt/32231
731         * tree-vect-transform.c (vectorizable_call): Call update_stmt
732         after changing the right hand side of the assignment.
733
734 2007-06-06  Eric Christopher  <echristo@apple.com>
735
736         * config.gcc (i?86-*-darwin*): Remove arch parameter.
737         (x86_64-*-darwin*): Ditto.
738         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
739         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
740
741 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
742
743         * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
744         coding conventions.
745         (add_key): Likewise.
746         * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
747         * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
748         variable names.
749         * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory macros.
750         (add_cost_one_coalesce): Likewise.
751         * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
752         variable names. Rename orig to orig_name for consistency.
753         * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the coding
754         conventions.
755         (cprop_into_successor_phis): Avoid using C++ keywords as variable names.
756         (record_equivalences_from_stmt): Likewise.
757         * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
758         the coding conventions.
759         (memory_ssa_name_same): Likewise.
760         (dse_optimize_stmt): Likewise.
761         (dse_record_phis): Likewise.
762         (dse_finalize_block): Likewise.
763         * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
764         keywords as variable names.
765         (may_move_till): Cast according to the coding conventions.
766         (force_move_till_expr): Avoid using C++ keywords as variable names.
767         (force_move_till): Cast according to the coding conventions.
768         (memref_hash): Likewise.
769         (memref_eq): Likewise.
770         (gather_mem_refs_stmt): Likewise.
771         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid using C++
772         keywords as variable names.
773         (idx_find_step): Cast according to the coding conventions.
774         (idx_record_use): Likewise.
775         (find_depends): Likewise.
776         (prepare_decl_rtl): Likewise.
777         (mbc_entry_hash): Likewise.
778         (mbc_entry_eq): Likewise.
779         * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
780         (simplify_replace_tree): Avoid using C++ keywords as variable names.
781         (idx_infer_loop_bounds): Cast according to the coding conventions.
782         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
783         * tree-ssa-math-opts.c (occ_new ): Likwise.
784         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
785         macros.
786         * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as variable
787         names.
788         (add_use_op): Likewise.
789         (add_vop): Likewise.
790         (add_vuse_op): Likewise.
791         (add_vdef_op): Likewise.
792         (get_expr_operands): Likewise.
793         (push_stmt_changes): Use type safe memory macros.
794         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
795         keywords as variable names.
796         (conditional_replacement): Likewise.
797         (minmax_replacement): Likewise.
798         (abs_replacement): Likewise.
799         * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
800         coding conventions.
801         (insert_fake_stores): Avoid using C++ keywords as variable names.
802         * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
803         conventions.
804         * tree-ssa-structalias.c (heapvar_lookup): Likewise.
805         (heapvar_insert): Use type safe memory macros.
806         (new_var_info): Cast according to the coding conventions.
807         (new_constraint): Likewise.
808         (remove_preds_and_fake_succs): Use type safe memory macros.
809         * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
810         conventions.
811         (thread_single_edge): Likewise.
812         (thread_through_loop_header): Likewise.
813
814 2007-06-06  Eric Christopher  <echristo@apple.com>
815
816         * config/i386/i386.c (override_options): Move handling
817         of TARGET_SUBTARGET* earlier.
818
819 2007-06-06  Paolo Bonzini  <bonzini@gnu.org>
820
821         * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
822         use %n on printf.
823
824 2007-06-06  Zdenek Dvorak  <dvorakz@suse.cz>
825
826         * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
827         emited outside of basic block.
828         * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
829         the created blocks.
830         * rtl.h (delete_insn_chain): Declaration changed.
831         * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
832         non-removed insns.
833         (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
834         (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
835         rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
836         to delete_insn_chain.
837         (rtl_verify_flow_info_1): Verify that the insns in header and footer
838         do not have bb field set.
839         (rtl_verify_flow_info): Verify that insns between basic blocks do not
840         have bb field set.
841         * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
842         * cfgcleanup.c (try_optimize_cfg): Ditto.
843
844 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
845
846         * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
847         (lambda_body_vector_new): Use type safe memory macros.
848         (lambda_linear_expression_new): Likewise.
849         (lambda_loopnest_new): Likewise.
850         (lambda_lattice_new): Likewise.
851         (replace_uses_equiv_to_x_with_y): Cast according to the coding
852         conventions. Use type safe memory macros.
853         * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
854         (lambda_body_vector_s): Likewise.
855         * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
856         * lambda-trans.c (lambda_trans_matrix_new): Likewise.
857
858 2007-06-06  Richard Guenther  <rguenther@suse.de>
859
860         * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
861         if we need to schedule cfg_cleanup.
862         (tree_ssa_forward_propagate_single_use_vars): Do so.
863
864 2007-06-06  Ian Lance Taylor  <iant@google.com>
865
866         * fold-const.c (merge_ranges): If range_successor or
867         range_predecessor fail, just return 0.
868
869 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
870
871         PR tree-optimization/32216
872         * tree-vectorizer.c (supportable_widening_operation): Determine
873         signedness of FIX_TRUNC_EXPR from output operand.
874         (supportable_narrowing_operation): Ditto.
875         * tree-vect-generic.c (expand_vector_operations_1): Determine
876         signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
877         from input operand.
878
879 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
880
881         * config/i386/i386.c (enum pta_flags): Move out of struct scope...
882         (struct pta): ...from here. Change flags to unsigned to avoid
883         excessive casting (as it is used as a bit mask).
884         (override_options): Add casts according to the coding convenventions.
885         (x86_64_elf_unique_section): Likewise.
886         (examine_argument): Avoid using C++ keywords as variable names.
887         (construct_container): Likewise.
888         (legitimize_pic_address): Likewise.
889         (get_dllimport_decl): Cast according to the coding conventions. Use
890         type safe memory macros.
891         (legitimize_address): Cast according to the coding conventions.
892         (emit_i387_cw_initialization): Corrected the type of slot to enum
893         ix86_stack_slot.
894         (ix86_init_machine_status): Use type safe memory macros.
895         (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
896         (bdesc_pcmpistr): Likewise.
897         (bdesc_crc32): Likewise.
898         (bdesc_sse_3arg): Likewise.
899         (bdesc_2arg): Likewise.
900         (bdesc_1arg): Likewise.
901         (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
902         (ix86_expand_sse_pcmpistr): Likewise.
903         (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
904         (ix86_builtin_vectorized_function): Change the type of fn to unsigned
905         int to match the langhook definition.
906         (ix86_builtin_conversion): Change the type of code to unsigned init to
907         match the langhook definition.
908         (ix86_preferred_reload_class): Avoid using C++ keywords as variable
909         names.
910         (ix86_preferred_output_reload_class): Likewise.
911         (ix86_cannot_change_mode_class): Likewise.
912         (ix86_memory_move_cost): Likewise.
913         (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
914         avoid excessive casting later on.
915         (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
916
917 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
918
919         * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
920         as flags setting insn.
921         (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
922
923 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
924
925         * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
926         (UNSPEC_ROUND): New.
927         ("sse4_1_round<mode>2"): New insn pattern.
928         ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
929         SSE4.1 targets.
930         ("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
931         expander using SSEMODEF mode macro.  Expand using
932         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
933         ("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
934         expander using SSEMODEF mode macro.  Expand using
935         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
936         ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
937         expander using SSEMODEF mode macro.  Expand using
938         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
939         * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
940         UNSPEC_ROUND instead of UNSPEC_ROUNDP.
941         ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
942         UNSPEC_ROUNDS.
943
944 2007-06-06  Jan Sjodin  <jan.sjodin@amd.com>
945             Sebastian Pop  <sebpop@gmail.com>
946
947         * lambda.h (build_linear_expr): New.
948         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
949         Use build_linear_expr, call fold and force_gimple_operand.
950         (lambda_loopnest_to_gcc_loopnest): Check that there is
951         something to insert.
952         * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
953
954 2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
955
956         PR preprocessor/23479
957         * doc/extend.texi: Document the 0b-prefixed binary integer
958         constant extension.
959
960 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
961
962         PR tree-optimization/32215
963         * tree-vectorizer.c (supportable_widening_operation): Return false
964         for unsupported FIX_TRUNC_EXPR tree code.
965         (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
966
967 2007-06-06  Nathan Froyd  <froydnj@codesourcery.com>
968
969         * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
970         register on SPE targets.  Change documentation to reflect
971         reality.
972         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
973         Change FIXED_SCRATCH to 14 and document why we're keeping r14
974         out of the register allocation pool.
975         (rs6000_reg_live_or_pic_offset_p): New function.
976         (rs6000_emit_prologue): Move the actual saving of LR up to free
977         r0 for holding r11.  Split saving of SPE 64-bit registers into
978         its own case.  Ensure that offsets will always be in-range for
979         'evstdd' by using r11 as a scratch register to point at the start
980         of the SPE save area.  Save r11 if necessary, as it is the static
981         chain register.
982         (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
983         into its own case.  Ensure that offsets will always be in-range
984         for 'evldd' by using r11 as a scratch register to point at the
985         start of the SPE save area.  Also adjust r11 when restoring
986         the stack pointer to compensate for pre-loading r11.
987
988 2007-06-05  Thomas Neumann  <tneumann@users.sourceforge.net>
989
990         * cfg.c (init_flow): Use type safe memory macros.
991         (alloc_block): Likewise.
992         (unchecked_make_edge): Likewise.
993         (dump_flow_info): Avoid using C++ keywords as variable names.
994         (copy_original_table_clear): Cast according to the coding conventions.
995         (copy_original_table_set): Likewise.
996         * cfgexpand (label_rtx_for_bb): Likewise.
997         (expand_gimple_basic_block): Likewise.
998         * cfghooks.c (dump_bb): Likewise.
999         (lv_adjust_loop_header_phi): Avoid using C++ keywords as
1000         variable names.
1001         (lv_add_condition_to_bb): Likewise.
1002         * cfglayout (relink_block_chain): Cast according to the coding
1003         conventions.
1004         (fixup_reorder_chain): Likewise.
1005         (fixup_fallthru_exit_predecessor): Likewise.
1006         * cfgloop.c (glb_enum_p): Likewise.
1007         (get_exit_description): Likewise.
1008         (dump_recorded_exit): Likewise.
1009         * cfgloop.h (enum loop_estimation): Move out of struct scope...
1010         (struct loop): ... from here.
1011         * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
1012         conventions.
1013         * cfgrtl.c (rtl_create_basic_block): Likewise.
1014         (rtl_split_block): Likewise.
1015         (rtl_dump_bb): Likewise.
1016         (cfg_layout_split_block): Likewise.
1017         (init_rtl_bb_info): Use typesafe memory macros.
1018
1019         * graphds.h (struct graph_edge): Renamed edge to graph_edge.
1020         * graphds.h: Updated all usages of edge to graph_edge.
1021         * graphds.c: Likewise.
1022         * cfgloopanal.c: Likewise.
1023
1024 2007-06-05  Ian Lance Taylor  <iant@google.com>
1025
1026         * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
1027         PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
1028         (extract_range_from_assert): Set TREE_NO_WARNING when creating an
1029         expression.
1030         (test_for_singularity): Likewise.
1031
1032 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
1033
1034         * config/i386/constraints.md ("Y2"): Replaced by ...
1035         ("Yt"): This.
1036         * config/i386/i386.md: Likewise.
1037         * config/i386/mmx.md: Likewise.
1038         * config/i386/sse.md: Likewise.
1039
1040 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
1041
1042         * config/i386/constraints.md ("z"): Replaced by ...
1043         ("Y0"): This.
1044         * config/i386/sse.md (sse4_1_blendvpd): Likewise.
1045         (sse4_1_blendvps): Likewise.
1046         (sse4_1_pblendvb): Likewise.
1047         (sse4_2_pcmpestr): Likewise.
1048         (sse4_2_pcmpestrm): Likewise.
1049         (sse4_2_pcmpestr_cconly): Likewise.
1050         (sse4_2_pcmpistr): Likewise.
1051         (sse4_2_pcmpistrm): Likewise.
1052         (sse4_2_pcmpistr_cconly): Likewise.
1053
1054 2007-06-05  Razya Ladelsky  <razya@il.ibm.com>
1055
1056         * matrix-reorg.c (transform_access_sites): Fix computation.
1057         (transform_allocation_sites): Same.
1058
1059 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
1060
1061         * config/i386/i386.c (override_options): Use
1062         TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
1063
1064 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
1065
1066         * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
1067         (nonimm_not_xmm0_operand): Ditto.
1068         * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
1069         as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
1070         as operand[2] predicate.  Require "z" class XMM register for
1071         operand[3].  Adjust asm template.
1072         ("sse4_1_blendvpd"): Ditto.
1073         ("sse4_1_pblendvb"): Ditto.
1074         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
1075         force op2 into xmm0 register for variable blend instructions.
1076
1077 2007-06-04  Tom Tromey  <tromey@redhat.com>
1078
1079         * c-tree.h (start_enum): Update.
1080         (build_enumerator): Likewise.
1081         * c-decl.c (enum_next_value): Removed.
1082         (enum_overflow): Likewise.
1083         (start_enum): Add c_enum_contents argument.  Don't use globals.
1084         (build_enumerator): Likewise.
1085         * c-tree.h (struct c_enum_contents): New struct.
1086
1087 2007-06-04  Tom Tromey  <tromey@redhat.com>
1088
1089         * c-common.c (c_common_get_alias_set): Fix indentation.
1090
1091 2007-06-04  Ian Lance Taylor  <iant@google.com>
1092
1093         * tree-vrp.c (adjust_range_with_scev): When loop is not expected
1094         to overflow, reduce overflow infinity to regular infinity.
1095         (vrp_var_may_overflow): New static function.
1096         (vrp_visit_phi_node): Check vrp_var_may_overflow.
1097
1098 2007-06-04  Kazu Hirata  <kazu@codesourcery.com>
1099
1100         * stor-layout.c (layout_type): Remove duplicate code.
1101
1102 2007-06-04  Uros Bizjak  <ubizjak@gmail.com>
1103
1104         PR c/32191
1105         * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
1106         before build_common_builtin_nodes ().
1107
1108 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
1109
1110         PR target/31733
1111         * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
1112
1113 2007-06-04  Jan Hubicka  <jh@suse.cz>
1114
1115         * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
1116         reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
1117         instead of _stat version.
1118
1119 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
1120
1121         PR tree-optimization/32194
1122         * tree-predcom.c (determine_offset): Check that both references have
1123         the same type.
1124
1125 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
1126
1127         * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
1128         Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
1129         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
1130         * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
1131         Add argument to iterate_fix_dominators call.
1132         (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
1133         * gcse.c (hoist_code): Change domby to vector.
1134         * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
1135         Add argument to iterate_fix_dominators call.
1136         * loop-doloop.c (doloop_modify): Changed recount_dominator to
1137         recompute_dominator.
1138         * lambda-code.c (perfect_nestify): Ditto.
1139         * cfgloopanal.c: Include graphds.h.
1140         (struct edge, struct vertex, struct graph, dump_graph, new_graph,
1141         add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
1142         (mark_irreducible_loops): Use graphds_scc.  Remove argument from
1143         add_edge call.
1144         * graphds.c: New file.
1145         * graphds.h: New file.
1146         * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
1147         (get_dominated_by, get_dominated_by_region): Change return type to
1148         vector.
1149         (verify_dominators): Recompute all dominators and compare the results.
1150         (recount_dominator): Renamed to ...
1151         (recompute_dominator): ... this.  Do not check that the block is
1152         dominated by entry.
1153         (iterate_fix_dominators): Reimplemented.
1154         (prune_bbs_to_update_dominators, root_of_dom_tree,
1155         determine_dominators_for_sons): New functions.
1156         * et-forest.c (et_root): New function.
1157         * et-forest.h (et_root): Declare.
1158         * Makefile.in (graphds.o): Add.
1159         (cfgloopanal.o): Add graphds.h dependency.
1160         (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
1161         * basic-block.h (get_dominated_by, get_dominated_by_region,
1162         iterate_fix_dominators): Declaration changed.
1163         (recount_dominator): Renamed to ...
1164         (recompute_dominator): ... this.
1165         * tree-ssa-threadupdate.c (thread_block): Free dominance info.
1166         (thread_through_all_blocks): Do not free dominance info.
1167
1168 2007-06-03  Andreas Schwab  <schwab@suse.de>
1169
1170         * config/m68k/m68k.c (override_options): Don't override
1171         REAL_MODE_FORMAT.
1172         * config/m68k/m68k-modes.def (SF, DF): Define to use
1173         motorola_single_format and motorola_double_format, resp.
1174         * real.c (motorola_single_format): Renamed from
1175         coldfire_single_format.
1176         (motorola_double_format): Renamed from coldfire_double_format.
1177         (encode_ieee_extended): Generate a proper canonical NaN image
1178         respecting canonical_nan_lsbs_set.
1179         (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
1180         true.
1181         * real.h: Adjust declarations.
1182
1183 2007-06-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1184
1185         PR target/32163
1186         * config/sh/sh.md (symGOT_load): Don't schedule insns when
1187         the symbol is generated with the stack protector.
1188
1189 2007-06-03  Kazu Hirata  <kazu@codesourcery.com>
1190
1191         * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
1192         (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
1193         "interrupt".
1194         * doc/extend.texi (interrupt): Mention m68k.
1195
1196 2007-06-02  Uros Bizjak  <ubizjak@gmail.com>
1197
1198         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
1199         safe_vector_operand() if input operand is VECTOR_MODE_P operand.
1200         (ix86_expand_sse_pcmpestr): Do not check operands for
1201         "register_operand", when insn operand predicate is "register_operand".
1202         (ix86_expand_sse_pcmpistr): Ditto.
1203
1204 2007-06-02  H.J. Lu  <hongjiu.lu@intel.com>
1205             Uros Bizjak  <ubizjak@gmail.com>
1206
1207         * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
1208         (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
1209         (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
1210         (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
1211         * config/i386/constraints.md ("z"): New register constraint
1212         for members of SSE_FIRST_REG class.
1213         * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
1214         * config/i386/i386.c (regclass_map): Change class of %xmm0 to
1215         SSE_FIRST_REG class.
1216         (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
1217         (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
1218         (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
1219         (IX86_BUILTIN_PCMPESTRM128): Likewise.
1220         (IX86_BUILTIN_PCMPESTRA128): Likewise.
1221         (IX86_BUILTIN_PCMPESTRC128): Likewise.
1222         (IX86_BUILTIN_PCMPESTRO128): Likewise.
1223         (IX86_BUILTIN_PCMPESTRS128): Likewise.
1224         (IX86_BUILTIN_PCMPESTRZ128): Likewise.
1225         (IX86_BUILTIN_PCMPISTRI128): Likewise.
1226         (IX86_BUILTIN_PCMPISTRM128): Likewise.
1227         (IX86_BUILTIN_PCMPISTRA128): Likewise.
1228         (IX86_BUILTIN_PCMPISTRC128): Likewise.
1229         (IX86_BUILTIN_PCMPISTRO128): Likewise.
1230         (IX86_BUILTIN_PCMPISTRS128): Likewise.
1231         (IX86_BUILTIN_PCMPISTRZ128): Likewise.
1232         (struct builtin_description): Change "flag" field to unsigned.
1233         (bdesc_pcmpestr): New builtin description table.
1234         (bdesc_pcmpistr): Likewise.
1235         (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
1236         v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
1237         Initialize pcmp[ei]str[im] insns for SSE4.2.
1238         (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
1239         (ix86_expand_sse_pcmpistr): Likewise.
1240         (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
1241         * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
1242         (UNSPEC_PCMPISTR): Likewise.
1243         * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
1244         (sse4_2_pcmpestri):New isns pattern.
1245         (sse4_2_pcmpestrm): Likewise.
1246         (sse4_2_pcmpestr_cconly): Likewise.
1247         (sse4_2_pcmpistr): New insn patern and splitter.
1248         (sse4_2_pcmpistri):New isns pattern.
1249         (sse4_2_pcmpistrm): Likewise.
1250         (sse4_2_pcmpistr_cconly): Likewise.
1251         * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
1252         in SSE4.2.
1253
1254 2007-06-01  David Daney  <ddaney@avtrex.com>
1255
1256         * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
1257         LOADGP_ABSOLUTE and not binds_local_p.
1258
1259 2007-06-01  Geoffrey Keating  <geoffk@apple.com>
1260
1261         * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
1262
1263 2007-06-01  Ian Lance Taylor  <iant@google.com>
1264
1265         * tree-vrp.c (compare_name_with_value): Always set
1266         used_strict_overflow if we get a result from the variable itself.
1267
1268 2007-06-01  Ian Lance Taylor  <iant@google.com>
1269
1270         PR rtl-optimization/31455
1271         * lower-subreg.c (find_decomposable_subregs): Don't decompose
1272         subregs which have a cast between modes which are not tieable.
1273
1274 2007-06-01  Uros Bizjak  <ubizjak@gmail.com>
1275
1276         * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
1277         breaks after return statements.
1278
1279 2007-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
1280
1281         * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
1282         only after no_new_pseudos.
1283
1284 2007-05-31  Eric Christopher  <echristo@apple.com>
1285
1286         * expr.c (convert_move): Assert that we don't have a BLKmode
1287         operand.
1288         (store_expr): Handle BLKmode moves by calling emit_block_move.
1289
1290 2007-05-31  Daniel Berlin  <dberlin@dberlin.org>
1291
1292         * c-typeck.c (build_indirect_ref): Include type in error message.
1293         (build_binary_op): Pass types to binary_op_error.
1294         * c-common.c (binary_op_error): Take two type arguments, print out
1295         types with error.
1296         * c-common.h (binary_op_error): Update prototype.
1297
1298 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
1299
1300         * config/i386/i386.c: Correct coments on -mno-sse4.
1301
1302 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
1303
1304         * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
1305         (x86_64-*-*): Likewise.
1306         * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
1307         (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
1308         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
1309         (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
1310         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
1311         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
1312         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
1313         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
1314         (OPTION_MASK_ISA_SSE4): Likewise.
1315         (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
1316         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
1317         (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET.  Handle SSE4.2.
1318         (override_options): Support SSE4.2.
1319         (ix86_build_const_vector): Support SImode and DImode.
1320         (ix86_build_signbit_mask): Likewise.
1321         (ix86_expand_int_vcond): Support V2DImode.
1322         (IX86_BUILTIN_CRC32QI): New for SSE4.2.
1323         (IX86_BUILTIN_CRC32HI): Likewise.
1324         (IX86_BUILTIN_CRC32SI): Likewise.
1325         (IX86_BUILTIN_CRC32DI): Likewise.
1326         (IX86_BUILTIN_PCMPGTQ): Likewise.
1327         (bdesc_crc32): Likewise.
1328         (bdesc_sse_3arg): Likewise.
1329         (ix86_expand_crc32): Likewise.
1330         (ix86_init_mmx_sse_builtins): Support SSE4.2.
1331         (ix86_expand_builtin): Likewise.
1332         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
1333         __SSE4_2__ for -msse4.2.
1334         * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
1335         (CRC32MODE): Likewise.
1336         (crc32modesuffix): Likewise.
1337         (crc32modeconstraint): Likewise.
1338         (sse4_2_crc32<mode>): Likewise.
1339         (sse4_2_crc32di): Likewise.
1340         * config/i386/i386.opt (msse4.2): New for SSE4.2.
1341         (msse4): Likewise.
1342         * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
1343         * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
1344         * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
1345         (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
1346         (vcondu<mode>): Likewise.
1347         * doc/extend.texi: Document SSE4.2 built-in functions.
1348         * doc/invoke.texi: Document -msse4.2/-msse4.
1349
1350 2007-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
1351
1352         PR tree-optimization/32160
1353         * tree-predcom.c (predcom_tmp_var): New function.  Mark created
1354         variable as gimple reg.
1355         (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
1356
1357 2007-05-31  Kazu Hirata  <kazu@codesourcery.com>
1358
1359         * gcc.c (main): Don't consider linker options when issuing the
1360         warning about a linker input file not being used.
1361
1362 2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1363
1364         * tree-vrp.c (compare_names): Initialize sop.
1365
1366 2007-05-30  Dirk Mueller  <dmueller@suse.de>
1367
1368         * cgraphunit.c (cgraph_analyze_function): Remove
1369         computation of inline parameters.
1370
1371 2007-05-30  Uros Bizjak  <ubizjak@gmail.com>
1372
1373         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
1374
1375 2007-05-30  Richard Sandiford  <richard@codesourcery.com>
1376
1377         * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
1378         Add vx-common.h.  Include vxworks.h between vx-common.h and
1379         arm/vxworks.h.
1380         * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
1381         redefining.
1382         * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
1383         (TARGET_ASM_DESTRUCTOR): Likewise.
1384         * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
1385         instead of arm_is_xscale.  Use VXWORKS_OS_CPP_BUILTINS.
1386         (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
1387         (CC1_SPEC): Add -tstrongarm.  Line up backslashes.
1388         (VXWORKS_ENDIAN_SPEC): Define.
1389         (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
1390         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
1391         VXWORKS_* equivalents.
1392         (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
1393         (ASM_FILE_START): Delete.
1394         (TARGET_VERSION): Reformat.
1395         (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
1396         (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
1397         * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
1398         (FPBIT, DPBIT): Define.
1399         (fp-bit.c, dp-bit.c): New rules.
1400         (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
1401         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
1402         * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
1403         * config/arm/arm.h: Include vxworks-dummy.h.
1404         * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
1405         Mark with ATTRIBUTE_UNUSED.
1406         (arm_override_options): Do not allow VxWorks RTP PIC to be used
1407         for Thumb.  Force r9 to be the PIC register for VxWorks RTPs and
1408         make it incompatible with -msingle-pic-base.
1409         (arm_function_ok_for_sibcall): Return false for calls that might
1410         go through a VxWorks PIC PLT entry.
1411         (require_pic_register): New function, split out from...
1412         (legitimize_pic_address): ...here.  Do not use GOTOFF accesses
1413         for VxWorks RTPs.
1414         (arm_load_pic_register): Handle the VxWorks RTP initialization
1415         sequence.  Use pic_reg as a shorthand for cfun->machine->pic_reg.
1416         (arm_emit_call_insn): New function.
1417         (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
1418         * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
1419         (pic_offset_arm): New pattern.
1420         (call, call_value): Use arm_emit_call_insn.
1421         (call_internal, call_value_internal): New expanders.
1422         * config/arm/lib1funcs.asm (__PLT__): Define to empty for
1423         VxWorks unless __PIC__.
1424
1425 2007-05-30  Eric Christopher  <echristo@gmail.com>
1426
1427         * genrecog.c: Include regs.h in generated file.
1428         * genemit.c: Ditto. Fix up formatting.
1429         * config/mn10300/constraints.md: New.
1430         * config/mn10300/mn10300.md: Include.
1431         * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
1432         Fix up for removed macro.
1433         * config/mn10300/predicates.md (call_address_operand):  Ditto.
1434         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
1435         (CONST_OK_FOR_I): Ditto.
1436         (CONST_OK_FOR_J): Ditto.
1437         (CONST_OK_FOR_K): Ditto.
1438         (CONST_OK_FOR_L): Ditto.
1439         (CONST_OK_FOR_M): Ditto.
1440         (CONST_OK_FOR_N): Ditto.
1441         (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
1442         (OK_FOR_Q): Ditto.
1443         (OK_FOR_R): Ditto.
1444         (OK_FOR_T): Ditto.
1445         (EXTRA_CONSTRAINT): Ditto.
1446
1447 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
1448
1449         * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
1450         Remove defines.
1451         * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
1452         OPTION_MASK_ISA_64BIT.
1453         * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
1454
1455 2007-05-30  Richard Guenther  <rguenther@suse.de>
1456
1457         PR middle-end/32152
1458         * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
1459         types for comparison.
1460         * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
1461         with original typed arguments.
1462         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
1463
1464 2007-05-30  Jakub Jelinek  <jakub@redhat.com>
1465
1466         PR tree-optimization/31769
1467         * except.c (duplicate_eh_regions): Clear prev_try if
1468         ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
1469
1470 2007-05-30  Zdenek Dvorak  <dvorakz@suse.cz>
1471
1472         * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
1473         * tree-ssa-sink.c (statement_sink_location): Return basic block and
1474         bsi of the location where statements should be inserted.
1475         (sink_code_in_bb): Take bsi from statement_sink_location.
1476         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
1477         instead of bsi_start.
1478         * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
1479         bsi_insert_after.
1480         * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
1481         (bsi_move_before): Document inconsistency with bsi_move_after.
1482         (tree_redirect_edge_and_branch): Do not create labels if not necessary.
1483
1484 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
1485
1486         * config/i386/i386.h (TARGET_ABM): New define.
1487         (TARGET_POPCNT): Ditto.
1488         (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
1489         New temporary defines to redefine from OPTION_ISA_* defines.
1490         (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
1491         New temporary defines to redefine from OPTION_MASK_ISA_* defines.
1492         (ix86_isa_flags): New extern int declaration.
1493         (TARGET_SUBTARGET_DEFAULT): New define.
1494         (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
1495         (TARGET_SUBTARGET32_DEFAULT): Ditto.
1496         (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
1497         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
1498         * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
1499         * config/i386/darwin.h: Change TARGET_64BIT define to
1500         OPTION_ISA_64BIT.
1501
1502         * config/i386/i386.opt (m3dnowa): Define as undocumented option
1503         using existing "ix86_isa_flags" varible.
1504         (m32, m64): Use existing "ix86_isa_flags" variable.
1505         (mmmx, m3dnow): Ditto.
1506         (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
1507         (mabm): Define as non-negative option using "x86_abm" variable.
1508         (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
1509
1510         * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
1511         Rewrite feature test bitmap.
1512         (ix86_isa_flags): New initialized global int varible.
1513         (ix86_isa_flags_explicit): New static int variable.
1514         (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
1515         msse, msse2, msse3, msse4.1 and msse4a option is processed.  Change
1516         i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
1517         target_flags_explicit.
1518         (override_options): Remove "target_enable" and "target_disable" fields
1519         from "struct ptt". Update processor_target_table accordingly. Remove
1520         PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
1521         defined and rearrange PTA_* bits.  Use "ix86_isa_flags" instead of
1522         "target_flags" and "ix86_isa_flags_explicit" instead of
1523         "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
1524         MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*.  Set "x86_abm" to true when
1525         PTA_ABM is set in processor_alias_table flags entry.  Set "x86_popcnt"
1526         to true when either of PTA_POPCNT or PTA_ABM is set in
1527         processor_alias_table flags entry.  Set "x86_prefetch_sse" to true
1528         when either of PTA_PREFETCH_SSE or PTA_SSE is set in
1529         processor_alias_table flags entry.  Remove handling of
1530         "target_enable" and "target_disable" fields of processor_target_table.
1531         Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
1532         targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
1533         Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
1534         targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
1535         (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
1536         "target_flags".
1537         (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
1538
1539 2007-05-29  David Daney  <ddaney@avtrex.com>
1540
1541         PR gcc/31975
1542         * config/mips/mips.c (mips_output_mi_thunk): Emit
1543         NOTE_INSN_PROLOGUE_END at beginning of the thunk.
1544
1545 2007-05-29  Hui-May Chang  <hm.chang@apple.com>
1546         * config/i386/i386.c (ix86_function_regparm): Added checking of
1547         ix86_force_align_arg_pointer to determine the number of
1548         register parameters.
1549
1550 2007-05-29  Zdenek Dvorak  <dvorakz@suse.cz>
1551
1552         * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
1553         (SET_DR_MISALIGNMENT): New.
1554         * tree-vect-analyze.c (vect_compute_data_ref_alignment,
1555         vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
1556         Use SET_DR_MISALIGNMENT.
1557         * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
1558         pointer.
1559         * tree-data-ref.c (create_data_ref, compute_all_dependences,
1560         find_loop_nest): Export.
1561         * tree-data-ref.h (struct data_reference): Change aux field to pointer.
1562         (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
1563         * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
1564         (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
1565         New macros.
1566         (struct mem_ref): Add field reuse_distance.
1567         (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
1568         Initialize reuse_distance field.
1569         (issue_prefetch_ref): Select temporality of prefetch according to
1570         reuse_distance.
1571         (volume_of_references, volume_of_dist_vector, add_subscript_strides,
1572         self_reuse_distance, determine_loop_nest_reuse): New functions.
1573         (loop_prefetch_arrays): Call determine_loop_nest_reuse.
1574         (tree_ssa_prefetch_arrays): Dump L2 cache size.
1575         * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
1576         dependency.
1577
1578 2007-05-29  Daniel Berlin  <dberlin@dberlin.org>
1579
1580         * tree-ssa-alias.c: Add aliasing overview.
1581
1582 2007-05-29  Zuxy Meng  <zuxy.meng@gmail.com>
1583             Danny Smith  <dannysmith@users.sourceforge.net>
1584
1585         PR target/29498
1586         * config/i386/t-crtfm: Compile crtfastmath.o with
1587         -minline-all-stringops.
1588         * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
1589         * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
1590
1591 2007-05-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1592
1593         * doc/md.texi: Document constraints on HP PA-RISC.
1594
1595         * pa/constraints.md: New file.
1596         * pa.md: Include constraints.md.
1597         * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
1598         (integer_store_memory_operand, ldil_cint_p): New functions.
1599         * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
1600         * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1601         IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
1602         * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
1603         * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
1604
1605 2007-05-28  Andrew Pinski  <Andrew_pinski@playstation.sony.com>
1606
1607         PR c/31339
1608         * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
1609         case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
1610         case POSTDECREMENT_EXPR>): Return the error_mark_node
1611         if either the real or imaginary parts would an
1612         error_mark_node.
1613
1614 2007-05-28  Daniel Berlin  <dberlin@dberlin.org>
1615
1616         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
1617         name when we remove it from a call.
1618
1619 2007-05-28  Kazu Hirata  <kazu@codesourcery.com>
1620
1621         * targhooks.c (default_narrow_bitfield): Remove.
1622         * targhooks.h: Remove the prototype for
1623         default_narrow_bitfield.
1624
1625         * langhooks-def.h: Remove the prototype for
1626         hook_get_alias_set_0.
1627         * langhooks.c (hook_get_alias_set_0): Remove.
1628
1629         * global.c (EXECUTE_IF_CONFLICT): Remove.
1630
1631 2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1632
1633         PR tree-opt/32100
1634         * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
1635         return true when truth_value_p is true and the type
1636         is of signed:1.
1637
1638 2007-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
1639
1640         * doc/install.texi (Prerequisites): We no longer require Autoconf
1641         2.13 for the top-level.
1642
1643 2007-05-28  Uros Bizjak  <ubizjak@gmail.com>
1644
1645         * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
1646         memory access via x86_expand_vector_move_misalign() only for
1647         TImode values on 32-bit targets.
1648
1649 2007-05-28  Razya Ladelsky  <razya@il.ibm.com>
1650
1651         * matrix-reorg.c: New file. Implement matrix flattening and
1652         transposing optimization.
1653         * tree-pass.h: Add matrix reorg pass.
1654         * common.opt: Add fipa-mreorg flag.
1655         * Makefile.in: Add matrix-reorg.c.
1656         * passes.c: Add matrix reorg pass.
1657         * varpool.c (add_new_static_var): New function.
1658         * cgraph.h (add_new_static_var): Declare.
1659
1660 2007-05-27  Eric Christopher  <echristo@apple.com>
1661
1662         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
1663         sp_offset depending on stack size. Save r12 depending
1664         on registers we're saving later.
1665         (rs6000_emit_epilogue): Update sp_offset depending only
1666         on stack size.
1667
1668 2007-05-27  Zdenek Dvorak  <dvorakz@suse.cz>
1669
1670         * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
1671         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
1672         * ifcvt.c (if_convert): Ditto.
1673         * tree-ssa-threadupdate.c (thread_block): Ditto.
1674         (thread_through_all_blocks): Ditto.  Assert that loops were analysed.
1675         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
1676         verify_loop_closed_ssa): Check number_of_loops instead of
1677         current_loops.
1678         * predict.c (tree_estimate_probability): Ditto.
1679         * tree-if-conv.c (main_tree_if_conversion): Ditto.
1680         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
1681         * modulo-sched.c (sms_schedule): Ditto.
1682         * tree-scalar-evolution.c (scev_const_prop): Ditto.
1683         (scev_finalize): Do not do anything if scev analysis was not
1684         initialized.
1685         * cfgloopanal.c (mark_irreducible_loops): Do not check whether
1686         current_loops == NULL.
1687         (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
1688         * loop-init.c (loop_optimizer_init): Do not free current_loops when
1689         there are no loops.
1690         (loop_optimizer_finalize): Assert that loops were analyzed.
1691         (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
1692         rtl_doloop): Check number_of_loops instead of current_loops.
1693         * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
1694         current_loops == NULL.
1695         (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
1696         gate_tree_vectorize tree_linear_transform, check_data_deps,
1697         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
1698         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
1699         Check number_of_loops instead of current_loops.
1700         (tree_ssa_loop_done): Do not check whether current_loops == NULL.
1701         * tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
1702         free loops if available.
1703         (execute_pre): Do not pass do_fre to fini_pre.
1704
1705 2007-05-27  Tobias Burnus  <burnus@net-b.de>
1706
1707         PR middle-end/32083
1708         * real.c (mpfr_from_real): Fix sign of -Inf.
1709
1710 2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1711
1712         * tree-vect-transform.c (vectorizable_conversion): Initialize
1713         tree_code variables to ERROR_MARK.
1714         (vectorizable_type_demotion): Likewise.
1715         (vectorizable_type_promotion): Likewise.
1716
1717 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
1718
1719         PR target/32065
1720         * config/i386/i386.md (movti): Handle push operands via
1721         ix86_expand_push().
1722
1723 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
1724
1725         * basic-block.h: Remove the prototype for merge_seq_blocks.
1726         * cfgcleanup.c (merge_seq_blocks): Remove.
1727
1728         * tree-flow.h: Remove the prototype for is_aliased_with.
1729         * tree-ssa-alias.c (is_aliased_with): Remove.
1730
1731 2007-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1732
1733         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
1734
1735         * config/i386/i386.c (ix86_expand_sse4_unpack): New.
1736
1737         * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
1738         ix86_expand_sse4_unpack if SSE4.1 is enabled.
1739         (vec_unpacks_hi_v16qi): Likewise.
1740         (vec_unpacku_lo_v16qi): Likewise.
1741         (vec_unpacks_lo_v16qi): Likewise.
1742         (vec_unpacku_hi_v8hi): Likewise.
1743         (vec_unpacks_hi_v8hi): Likewise.
1744         (vec_unpacku_lo_v8hi): Likewise.
1745         (vec_unpacks_lo_v8hi): Likewise.
1746         (vec_unpacku_hi_v4si): Likewise.
1747         (vec_unpacks_hi_v4si): Likewise.
1748         (vec_unpacku_lo_v4si): Likewise.
1749         (vec_unpacks_lo_v4si): Likewise.
1750
1751 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
1752
1753         * c-typeck.c, config/arm/arm.c, config/darwin.c,
1754         config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
1755         omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
1756         follow spelling conventions in various
1757         warning/error/diagnostic messages.
1758
1759         * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
1760         df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
1761         fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
1762         tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
1763         tree-vrp.c: Fix comment typos.  Follow spelling conventions.
1764         * doc/tm.texi: Follow spelling conventions.
1765
1766 2007-05-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1767
1768         PR tree-opt/32090
1769         * tree-ssa-forwprop.c
1770         (forward_propagate_addr_into_variable_array_index): Remove
1771         the lhs argument.  Use the type of def_rhs instead of lhs.
1772         (forward_propagate_addr_expr_1): Update use of
1773         forward_propagate_addr_into_variable_array_index.
1774
1775 2007-05-25  Sandra Loosemore  <sandra@codesourcery.com>
1776             Nigel Stephens  <nigel@mips.com>
1777
1778         * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
1779         function attributes, "far" being an alias for "long_call".
1780         (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
1781         (mips_near_type_p, mips_far_type_p): New.
1782         (mips_comp_type_attributes): New function to check that attributes
1783         attached to a function type are compatible.
1784         (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
1785         TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
1786         to the target function of the thunk.
1787         (mips_encode_section_info): Check for "near" and "far" function
1788         attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
1789
1790         * config/mips/predicates.md (const_call_insn_operand): Test only
1791         SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
1792
1793         * doc/extend.texi (Function Attributes): Document MIPS "near" and
1794         "far" attributes.
1795
1796         * testsuite/gcc.target/mips/near-far-1.c:  New test case.
1797         * testsuite/gcc.target/mips/near-far-2.c:  New test case.
1798         * testsuite/gcc.target/mips/near-far-3.c:  New test case.
1799         * testsuite/gcc.target/mips/near-far-4.c:  New test case.
1800
1801 2007-05-25  Eric Christopher  <echristo@apple.com>
1802
1803         * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
1804         to x86-darwin configurations.
1805         * config/i386/t-darwin: Add softfp support.
1806         * config/i386/t-darwin64: Ditto.
1807         * config/i386/sfp-machine.h: If mach then don't use
1808         aliasing, emit a stub to call.
1809
1810 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
1811
1812         * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
1813         haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
1814         tree-predcom.c, tree-ssa-alias-warnings.c,
1815         tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
1816         comment typos.  Follow spelling conventions.
1817         * doc/cpp.texi, doc/invoke.texi: Fix typos.
1818
1819 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
1820
1821         PR target/32065
1822         * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
1823         constants into memory.  Expand unaligned memory references for
1824         SSE modes via x86_expand_vector_move_misalign() function.
1825
1826 2007-05-25  Uros Bizjak  <ubizjak@gmail.com>
1827
1828         * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
1829         "memory" attribute for "sseishft" type insn without operands[2].
1830
1831 2007-05-25  Dirk Mueller  <dmueller@suse.de>
1832             Marcus Meissner <meissner@suse.de>
1833
1834         * doc/extend.texi (alloc_size): New attribute.
1835         * c-common.c (handle_alloc_size_attribute): New.
1836         * tree-object-size.c (alloc_object_size): Use alloc_size
1837         attribute, if available.
1838
1839 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1840
1841         * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
1842         with MASK_SSE2.
1843         (__builtin_ia32_vec_ext_v2di): Likewise.
1844         (__builtin_ia32_vec_ext_v4si): Likewise.
1845         (__builtin_ia32_vec_ext_v8hi): Likewise.
1846         (__builtin_ia32_vec_ext_v16qi): Likewise.
1847         (__builtin_ia32_vec_set_v8hi): Likewise.
1848
1849 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1850
1851         * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
1852
1853 2007-05-25  Richard Sandiford  <richard@codesourcery.com>
1854
1855         * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
1856         (arm_is_longcall_p): Rename to...
1857         (arm_is_long_call_p): ...this.  Take a single tree argument and
1858         return a bool.
1859         * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
1860         (CUMULATIVE_ARGS): Remove call_cookie.
1861         (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
1862         (ENCODED_LONG_CALL_ATTR_P): Delete.
1863         (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
1864         LONG_CALL_FLAG_CHAR cases.
1865         (ARM_DECLARE_FUNCTION_SIZE): Delete.
1866         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
1867         ARM_DECLARE_FUNCTION_SIZE.
1868         * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
1869         (arm_function_arg): Return const0_rtx for VOIDmode arguments.
1870         (arm_encode_call_attribute, current_file_function_operand): Delete.
1871         (arm_function_in_section_p): New function.
1872         (arm_is_longcall_p): Rename to...
1873         (arm_is_long_call_p): ...this.  Take the target function as a single
1874         argument and return a bool.  Do not rely on call cookies.  Check
1875         whether the target symbol is in the same section as the current
1876         function, not just the same compilation unit.
1877         (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
1878         (arm_encode_section_info): Don't encode a call type.
1879         * config/arm/arm.md (call, call_value): Update calls to
1880         arm_is_long(_)call_p.  Simplify logic.
1881         (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
1882         Update calls to arm_is_long(_)call_p.
1883
1884 2007-05-25  Richard Guenther  <rguenther@suse.de>
1885
1886         PR tree-optimization/31982
1887         * tree-ssa-forwprop.c
1888         (forward_propagate_addr_into_variable_array_index): Handle arrays
1889         with element size one.
1890
1891 2007-05-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1892
1893         * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
1894         (umulsi3_highpart): Likewise.
1895
1896 2007-05-24  Ian Lance Taylor  <iant@google.com>
1897
1898         PR rtl-optimization/32069
1899         * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
1900         is NULL.
1901
1902 2007-05-24  Ollie Wild  <aaw@google.com>
1903
1904         * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
1905         description.
1906
1907 2007-05-24  Richard Sandiford  <rsandifo@nildram.co.uk>
1908
1909         * postreload-gcse.c (reg_changed_after_insn_p): New function.
1910         (oprs_unchanged_p): Use it to check all registers in a REG.
1911         (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
1912         (reg_set_between_after_reload_p): Delete.
1913         (reg_used_between_after_reload_p): Likewise.
1914         (reg_set_or_used_since_bb_start): Likewise.
1915         (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
1916         and reg_used_between_p instead of reg_set_or_used_since_bb_start.
1917         Use reg_set_between_p instead of reg_set_between_after_reload_p.
1918         * rtlanal.c (reg_set_p): Check whether REG overlaps
1919         regs_invalidated_by_call, rather than just checking the
1920         membership of REGNO (REG).
1921
1922 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
1923
1924         * doc/passes.texi: Document predictive commoning.
1925         * doc/invoke.texi (-fpredictive-commoning): Document.
1926         * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
1927         * tree-ssa-loop-im.c (get_lsm_tmp_name): Export.  Allow
1928         adding indices to the generated name.
1929         (schedule_sm): Pass 0 to get_lsm_tmp_name.
1930         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
1931         * tree-pretty-print.c (op_symbol_1): Renamed to ...
1932         (op_symbol_code): ... and exported.
1933         (dump_omp_clause, op_symbol): Use op_symbol_code
1934         instead of op_symbol_1.
1935         * tree-pass.h (pass_predcom): Declare.
1936         * timevar.def (TV_PREDCOM): New timevar.
1937         * tree-ssa-loop.c (run_tree_predictive_commoning,
1938         gate_tree_predictive_commoning, pass_predcom): New.
1939         * tree-data-ref.c (find_data_references_in_loop): Find the
1940         references in dominance order.
1941         (canonicalize_base_object_address): Ensure that the result has
1942         pointer type.
1943         (dr_analyze_innermost): Export.
1944         (create_data_ref): Code to fail for references with invariant
1945         address moved ...
1946         (find_data_references_in_stmt): ... here.
1947         * tree-data-ref.h (dr_analyze_innermost): Declare.
1948         * tree-affine.c: Include tree-gimple.h and hashtab.h.
1949         (aff_combination_find_elt, name_expansion_hash,
1950         name_expansion_eq, tree_to_aff_combination_expand,
1951         double_int_constant_multiple_p, aff_combination_constant_multiple_p):
1952         New functions.
1953         * tree-affine.h (aff_combination_constant_multiple_p,
1954         tree_to_aff_combination_expand): Declare.
1955         * tree-predcom.c: New file.
1956         * common.opt (fpredictive-commoning): New option.
1957         * tree-flow.h (op_symbol_code, tree_predictive_commoning,
1958         stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
1959         * Makefile.in (tree-predcom.o): Add.
1960         (tree-affine.o): Add TREE_GIMPLE_H dependency.
1961         * passes.c (init_optimization_passes):  Add dceloop after
1962         copy propagation in loop optimizer.  Add predictive commoning
1963         to loop optimizer passes.
1964
1965 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1966
1967         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
1968         default hook.
1969
1970 2007-05-24  Jan Hubicka  <jh@suse.cz>
1971
1972         * gengenrtl.c (gendecl, gendef): Output the gens annotated for
1973         statistics.
1974         (genheader): Include statistics.h.
1975
1976         * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
1977         notes are gone.
1978         * print-rtl.c (flag_dump_unnumbered): Update comments.
1979         (print_rtl): Fix my previous change.
1980         * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
1981         specific data.
1982
1983 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
1984
1985         PR middle-end/32018
1986         * tree-ssa-threadupdate.c (thread_through_loop_header): Use
1987         set_loop_copy.
1988         (thread_through_all_blocks): Call initialize_original_copy_tables
1989         and free_original_copy_tables.
1990         * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
1991         Use set_loop_copy.
1992         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
1993         * cfghooks.c (duplicate_block): Use get_loop_copy.
1994         * cfg.c: Include cfgloop.h.
1995         (loop_copy): New hash table.
1996         (initialize_original_copy_tables): Initialize loop_copy table.
1997         (free_original_copy_tables): Free loop_copy table.
1998         (copy_original_table_clear, copy_original_table_set,
1999         set_loop_copy, get_loop_copy): New functions.
2000         (set_bb_original, set_bb_copy): Use copy_original_table_set.
2001         * cfgloop.h (struct loop): Remove copy field.
2002         * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
2003         * basic-block.h (set_loop_copy, get_loop_copy): Declare.
2004
2005 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2006
2007         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
2008         -msse/-msse2/-msse3.
2009
2010 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2011
2012         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
2013         __builtin_ia32_vec_set_v2di with MASK_64BIT.
2014
2015 2007-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
2016
2017         PR target/27067
2018         * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
2019         * targhooks.h (default_mangle_decl_assembler_name): Declare
2020         default hook.
2021         * targhooks.c (default_mangle_decl_assembler_name): Define
2022         default hook.
2023         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
2024         default hook.
2025         * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
2026         * langhooks.c (lhd_set_decl_assembler_name): Call
2027         targetm.mangle_decl_assembler_name for names with global scope.
2028
2029         * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
2030         default.
2031         (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
2032         * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
2033         Declare.
2034         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
2035         New. Factored out of i386_pe_encode_section_info.
2036         (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
2037         Move check for prior decoration of stdcall
2038         symbols to i386_pe_encode_section_info.
2039         (i386_pe_encode_section_info): Adjust call to
2040         gen_stdcall_or_fastcall_suffix.  Use
2041         i386_pe_maybe_mangle_decl_assembler_name, if needed.
2042         (i386_pe_mangle_decl_assembler_name): New. Wrap
2043         i386_pe_maybe_mangle_decl_assembler_name.
2044
2045 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
2046
2047         * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
2048         INTEGRAL_TYPE_P and TYPE_UNSIGNED.
2049         * langhooks.c (get_signed_or_unsigned_type): Don't check for
2050         INTEGRAL_TYPE_P or TYPE_UNSIGNED.
2051         (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
2052         TYPE_UNSIGNED.
2053
2054 2007-05-23  Sandra Loosemore  <sandra@codesourcery.com>
2055             Nigel Stephens  <nigel@mips.com>
2056             Richard Sandiford  <richard@codesourcery.com>
2057
2058         Fix up MIPS16 hard float and add support for complex.
2059
2060         * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
2061         (TARGET_SOFT_FLOAT_ABI): New.
2062         (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
2063         __mips_soft_float to reflect the ABI in use, not whether the
2064         FPU is directly accessible (e.g., in MIPS16 mode).
2065         (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
2066         (UNITS_PER_FPVALUE): Likewise.
2067
2068         * config/mips/mips.c (mips_expand_call): Remove redundant
2069         TARGET_MIPS16 check.
2070         (mips_arg_regno): New.
2071         (function_arg_advance): When setting bits in cum->fp_code for
2072         MIPS16, don't subtract 1 from cum->arg_number, since it is now
2073         zero-based.
2074         (function_arg): Use mips_arg_regno.
2075         (mips_return_mode_in_fpr_p): New.
2076         (mips16_call_stub_mode_suffix): New.
2077         (mips16_cfun_returns_in_fpr_p): New.
2078         (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
2079         (mips_output_function_prologue): Test mips16_hard_float, not
2080         !TARGET_SOFT_FLOAT, to decide when a function stub is required.
2081         (mips_expand_epilogue): Call MIPS16 helper routines to copy
2082         return value into a floating-point register.
2083         (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
2084         (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
2085         (mips16_fp_args): Handle MIPS32r2 ISA which supports
2086         TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
2087         word of double arguments from or to the high bits of 64-bit
2088         floating point registers.
2089         (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
2090         (mips16_fpret_double): New helper function.
2091         (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p.  Add
2092         support for complex modes.  Fill in DECL_RESULT for stubdecl.
2093         (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
2094
2095         * config/mips/mips16.S
2096         (RET, ARG1, ARG2): New.
2097         (MERGE_GPRf, MERGE_GPRt): New.
2098         (DELAYt, DELAYf): New.
2099         (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
2100         (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
2101         (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
2102         (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
2103         (SFOP): Renamed to...
2104         (OPSF3): This, and macro-ified.  Updated all uses.
2105         (SFOP2): Renamed to...
2106         (OPSF2): This, and macro-ified.  Updated all uses.
2107         (SFCMP): Renamed to...
2108         (CMPSF): This, and macro-ified.  Updated all uses.
2109         (SFREVCMP): Renamed to...
2110         (REVCMPSF): This, and macro-ified.  Updated all uses.
2111         (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
2112         (LDDBL1, LDDBL2, RETDBL): Deleted.
2113         (DFOP): Renamed to...
2114         (OPDF3): This, and macro-ified.  Updated all uses.
2115         (DFOP2): Renamed to...
2116         (OPDF2): This, and macro-ified.  Updated all uses.
2117         (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
2118         (DFCMP): Renamed to...
2119         (CMPDF): This, and macro-ified.  Updated all uses.
2120         (DFREVCMP): Renamed to...
2121         (REVCMPDF): This, and macro-ified.  Updated all uses.
2122         (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
2123         (RET_FUNCTION): New.
2124         (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
2125         (__mips16_ret_sc, __mips16_ret_dc): New.
2126         (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
2127         STUB_ARGS_6, STUB_ARGS_10): New.
2128         (CALL_STUB_NO_RET): New.
2129         (__mips16_call_stub_1): Macro-ified.
2130         (__mips16_call_stub_5): Macro-ified.
2131         (__mips16_call_stub_2): Macro-ified.
2132         (__mips16_call_stub_6): Macro-ified.
2133         (__mips16_call_stub_9): Macro-ified.
2134         (__mips16_call_stub_10): Macro-ified.
2135         (CALL_STUB_RET): New.
2136         (__mips16_call_stub_sf_0): Macro-ified.
2137         (__mips16_call_stub_sf_1): Macro-ified.
2138         (__mips16_call_stub_sf_5): Macro-ified.
2139         (__mips16_call_stub_sf_2): Macro-ified.
2140         (__mips16_call_stub_sf_6): Macro-ified.
2141         (__mips16_call_stub_sf_9): Macro-ified.
2142         (__mips16_call_stub_sf_10): Macro-ified.
2143         (__mips16_call_stub_df_0): Macro-ified.
2144         (__mips16_call_stub_df_1): Macro-ified.
2145         (__mips16_call_stub_df_5): Macro-ified.
2146         (__mips16_call_stub_df_2): Macro-ified.
2147         (__mips16_call_stub_df_6): Macro-ified.
2148         (__mips16_call_stub_df_9): Macro-ified.
2149         (__mips16_call_stub_df_10): Macro-ified.
2150         (__mips16_call_stub_sc_0): New.
2151         (__mips16_call_stub_sc_1): New.
2152         (__mips16_call_stub_sc_5): New.
2153         (__mips16_call_stub_sc_2): New.
2154         (__mips16_call_stub_sc_6): New.
2155         (__mips16_call_stub_sc_9): New.
2156         (__mips16_call_stub_sc_10): New.
2157         (__mips16_call_stub_dc_0): New.
2158         (__mips16_call_stub_dc_1): New.
2159         (__mips16_call_stub_dc_5): New.
2160         (__mips16_call_stub_dc_2): New.
2161         (__mips16_call_stub_dc_6): New.
2162         (__mips16_call_stub_dc_9): New.
2163         (__mips16_call_stub_dc_10): New.
2164
2165         * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
2166         * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
2167         * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
2168
2169 2007-05-23  Ian Lance Taylor  <iant@google.com>
2170
2171         * doc/invoke.texi (Invoking GCC): Document that the order of the
2172         -l option matters.
2173
2174 2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>
2175
2176         PR target/30987
2177         * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
2178         * config/score/predicate.md (const_pow2, const_npow2): Remove.
2179         * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
2180         undef.
2181
2182         PR target/30474
2183         * config/score/score.c (score_print_operand): Make sure that only
2184         lower bits are used.
2185
2186 2007-05-22  Ian Lance Taylor  <iant@google.com>
2187
2188         * tree-vrp.c (avoid_overflow_infinity): New static function,
2189         broken out of set_value_range_to_value.
2190         (set_value_range_to_value): Call avoid_overflow_infinity.
2191         (extract_range_from_assert): Likewise.
2192
2193 2007-05-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2194
2195         PR middle-end/31095
2196          * builtins.c (expand_builtin_memmove_args): Strip nops that don't
2197         change the type before looking for a COMPOUND_EXPR.
2198
2199 2007-05-22  Ian Lance Taylor  <iant@google.com>
2200
2201         * lower-subreg.c (decompose_multiword_subregs): If we change an
2202         insn, call remove_retval_note on it.
2203
2204 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
2205
2206         * regs.h (end_hard_regno): New function.
2207         (END_HARD_REGNO, END_REGNO): New macros.
2208         (add_to_hard_reg_set): New function.
2209         (remove_from_hard_reg_set): Likewise.
2210         (in_hard_reg_set_p): Likewise.
2211         (overlaps_hard_reg_set_p): Likewise.
2212         * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
2213         (note_btr_set): Use END_HARD_REGNO.
2214         * caller-save.c (setup_save_areas): Use end_hard_regno.
2215         (mark_set_regs): Use END_HARD_REGNO.
2216         (add_stored_regs): Use end_hard_regno.
2217         (mark_referenced_regs): Use add_to_hard_reg_set.
2218         * combine.c (update_table_tick): Use END_REGNO.
2219         (record_value_for_reg): Likewise.
2220         (record_dead_and_set_regs): Likewise.
2221         (get_last_value_validate): Likewise.
2222         (use_crosses_set_p): Likewise.
2223         (reg_dead_at_p_1): Likewise.
2224         (reg_dead_at_p): Likewise.
2225         (mark_used_regs_combine): Use add_to_hard_reg_set.
2226         (move_deaths): Use END_HARD_REGNO.
2227         (reg_bitfield_target_p): Use end_hard_regno.
2228         (distribute_notes): Use END_HARD_REGNO.
2229         * cse.c (mention_regs): Use END_REGNO.
2230         (insert): Use add_to_hard_reg_set.
2231         (invalidate): Use END_HARD_REGNO.
2232         (invalidate_for_call): Likewise.
2233         (exp_equiv_p): Use END_REGNO.
2234         (cse_insn): Likewise.
2235         * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
2236         * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
2237         * df-scan.c (df_ref_record): Use END_HARD_REGNO.
2238         * function.c (keep_stack_depressed): Use end_hard_regno.
2239         * global.c (global_alloc): Use end_hard_regno.
2240         (global_conflicts): Use add_to_hard_reg_set instead of
2241         mark_reg_live_nc.
2242         (find_reg): Likewise.
2243         (mark_reg_store): Likewise.
2244         (mark_reg_conflicts): Likewise.
2245         (mark_reg_death): Use remove_from_hard_reg_set.
2246         (mark_reg_live_nc): Delete.
2247         (set_preference): Use end_hard_regno.
2248         * local-alloc.c (mark_life): Use add_to_hard_reg_set and
2249         remove_from_hard_reg_set.
2250         (post_mark_life): Use add_to_hard_reg_set.
2251         * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
2252         (reg_becomes_live): Use add_to_hard_reg_set.
2253         * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
2254         (peep2_find_free_register): Use add_to_hard_reg_set.
2255         * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
2256         * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
2257         * regrename.c (note_sets): Use add_to_hard_reg_set.
2258         (clear_dead_regs): Use remove_from_hard_reg_set.
2259         (regrename_optimize): Use add_to_hard_reg_set.
2260         (find_oldest_value_reg): Use in_hard_reg_set_p.
2261         * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
2262         (hard_reg_set_here_p): Use end_hard_regno.
2263         (decompose): Likewise.
2264         (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
2265         (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
2266         * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
2267         (mark_home_live): Use end_hard_regno.
2268         (spill_hard_reg): Likewise.
2269         (clear_reload_reg_in_use): Likewise.
2270         * reorg.c (delete_prior_computation): Use END_REGNO.
2271         * resource.c (update_live_status): Use END_HARD_REGNO.
2272         (mark_referenced_resources): Use add_to_hard_reg_set.
2273         (mark_set_resources): Likewise.
2274         (mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
2275         * rtlanal.c (refers_to_regno_p): Use END_REGNO.
2276         (reg_overlap_mentioned_p): Likewise.
2277         (dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
2278         (covers_regno_no_parallel_p): Use END_REGNO.
2279         (find_regno_note): Likewise.
2280         (find_reg_fusage): Use END_HARD_REGNO.
2281         * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
2282         * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
2283
2284 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
2285
2286         * mode-switching.c (reg_dies): Change type of second argument to
2287         "HARD_REG_SET *".
2288         (optimize_mode_switching): Update accordingly.
2289
2290 2007-05-22  Richard Sandiford  <richard@codesourcery.com>
2291
2292         * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
2293         in favor of...
2294         (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
2295         (hard_reg_set_empty_p): ...these new functions.
2296         * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
2297         GO_IF_HARD_REG_SUBSET.
2298         * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
2299         instead of GO_IF_HARD_REG_EQUAL.
2300         * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
2301         instead of GO_IF_HARD_REG_EQUAL.
2302         * global.c (find_reg): Use hard_reg_set_empty_p instead of
2303         GO_IF_HARD_REG_SUBSET.
2304         (modify_reg_pav): Use hard_reg_set_empty_p instead of
2305         GO_IF_HARD_REG_EQUAL.
2306         * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
2307         of GO_IF_HARD_REG_SUBSET.
2308         * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
2309         instead of GO_IF_HARD_REG_EQUAL.
2310         * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
2311         hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
2312         (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
2313         of GO_IF_HARD_REG_SUBSET,
2314         * reload1.c (finish_spills): Use hard_reg_subset_p instead of
2315         GO_IF_HARD_REG_SUBSET.
2316         * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
2317         instead of GO_IF_HARD_REG_EQUAL.
2318         * config/sh/sh.c (push_regs, calc_live_regs): Use
2319         hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
2320         (hard_regs_intersect_p): Delete.
2321
2322 2007-05-22  Janis Johnson  <janis187@us.ibm.com>
2323
2324         * doc/sourcebuild.texi (Test Directives) Add dg-message.
2325
2326 2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
2327             Richard Henderson  <rth@redhat.com>
2328
2329         * config.gcc (i[34567]86-*-*): Add smmintrin.h to
2330         extra_headers.
2331         (x86_64-*-*): Likewise.
2332
2333         * i386/i386-modes.def (V2QI): New.
2334
2335         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
2336         SSE4A.
2337         (override_options): Support SSE4.1.
2338         (IX86_BUILTIN_BLENDPD): New for SSE4.1.
2339         (IX86_BUILTIN_BLENDPS): Likewise.
2340         (IX86_BUILTIN_BLENDVPD): Likewise.
2341         (IX86_BUILTIN_BLENDVPS): Likewise.
2342         (IX86_BUILTIN_PBLENDVB128): Likewise.
2343         (IX86_BUILTIN_PBLENDW128): Likewise.
2344         (IX86_BUILTIN_DPPD): Likewise.
2345         (IX86_BUILTIN_DPPS): Likewise.
2346         (IX86_BUILTIN_INSERTPS128): Likewise.
2347         (IX86_BUILTIN_MOVNTDQA): Likewise.
2348         (IX86_BUILTIN_MPSADBW128): Likewise.
2349         (IX86_BUILTIN_PACKUSDW128): Likewise.
2350         (IX86_BUILTIN_PCMPEQQ): Likewise.
2351         (IX86_BUILTIN_PHMINPOSUW128): Likewise.
2352         (IX86_BUILTIN_PMAXSB128): Likewise.
2353         (IX86_BUILTIN_PMAXSD128): Likewise.
2354         (IX86_BUILTIN_PMAXUD128): Likewise.
2355         (IX86_BUILTIN_PMAXUW128): Likewise.
2356         (IX86_BUILTIN_PMINSB128): Likewise.
2357         (IX86_BUILTIN_PMINSD128): Likewise.
2358         (IX86_BUILTIN_PMINUD128): Likewise.
2359         (IX86_BUILTIN_PMINUW128): Likewise.
2360         (IX86_BUILTIN_PMOVSXBW128): Likewise.
2361         (IX86_BUILTIN_PMOVSXBD128): Likewise.
2362         (IX86_BUILTIN_PMOVSXBQ128): Likewise.
2363         (IX86_BUILTIN_PMOVSXWD128): Likewise.
2364         (IX86_BUILTIN_PMOVSXWQ128): Likewise.
2365         (IX86_BUILTIN_PMOVSXDQ128): Likewise.
2366         (IX86_BUILTIN_PMOVZXBW128): Likewise.
2367         (IX86_BUILTIN_PMOVZXBD128): Likewise.
2368         (IX86_BUILTIN_PMOVZXBQ128): Likewise.
2369         (IX86_BUILTIN_PMOVZXWD128): Likewise.
2370         (IX86_BUILTIN_PMOVZXWQ128): Likewise.
2371         (IX86_BUILTIN_PMOVZXDQ128): Likewise.
2372         (IX86_BUILTIN_PMULDQ128): Likewise.
2373         (IX86_BUILTIN_PMULLD128): Likewise.
2374         (IX86_BUILTIN_ROUNDPD): Likewise.
2375         (IX86_BUILTIN_ROUNDPS): Likewise.
2376         (IX86_BUILTIN_ROUNDSD): Likewise.
2377         (IX86_BUILTIN_ROUNDSS): Likewise.
2378         (IX86_BUILTIN_PTESTZ): Likewise.
2379         (IX86_BUILTIN_PTESTC): Likewise.
2380         (IX86_BUILTIN_PTESTNZC): Likewise.
2381         (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
2382         (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
2383         (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
2384         (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
2385         (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
2386         (bdesc_ptest): New.
2387         (bdesc_sse_3arg): Likewise.
2388         (bdesc_2arg): Likewise.
2389         (bdesc_1arg): Likewise.
2390         (ix86_init_mmx_sse_builtins): Support SSE4.1.  Handle SSE builtins
2391         with 3 args.
2392         (ix86_expand_sse_4_operands_builtin): New.
2393         (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
2394         smaller than 8 bits as the 2nd arg.
2395         (ix86_expand_sse_ptest): New.
2396         (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
2397         (ix86_expand_vector_set): Support SSE4.1.
2398         (ix86_expand_vector_extract): Likewise.
2399
2400         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
2401         __SSE4_1__ for -msse4.1.
2402
2403         * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
2404         (UNSPEC_INSERTPS): Likewise.
2405         (UNSPEC_DP): Likewise.
2406         (UNSPEC_MOVNTDQA): Likewise.
2407         (UNSPEC_MPSADBW): Likewise.
2408         (UNSPEC_PHMINPOSUW): Likewise.
2409         (UNSPEC_PTEST): Likewise.
2410         (UNSPEC_ROUNDP): Likewise.
2411         (UNSPEC_ROUNDS): Likewise.
2412
2413         * config/i386/i386.opt (msse4.1): New for SSE4.1.
2414
2415         * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
2416         (const_pow2_1_to_32768_operand): Likewise.
2417
2418         * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
2419         file.
2420
2421         * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
2422         SSE4.1.
2423         (sse4_1_insertps): Likewise.
2424         (*sse4_1_extractps): Likewise.
2425         (sse4_1_ptest): Likewise.
2426         (sse4_1_mulv2siv2di3): Likewise.
2427         (*sse4_1_mulv4si3): Likewise.
2428         (*sse4_1_smax<mode>3): Likewise.
2429         (*sse4_1_umax<mode>3): Likewise.
2430         (*sse4_1_smin<mode>3): Likewise.
2431         (*sse4_1_umin<mode>3): Likewise.
2432         (sse4_1_eqv2di3): Likewise.
2433         (*sse4_1_pinsrb): Likewise.
2434         (*sse4_1_pinsrd): Likewise.
2435         (*sse4_1_pinsrq): Likewise.
2436         (*sse4_1_pextrb): Likewise.
2437         (*sse4_1_pextrb_memory): Likewise.
2438         (*sse4_1_pextrw_memory): Likewise.
2439         (*sse4_1_pextrq): Likewise.
2440         (sse4_1_blendpd): Likewise.
2441         (sse4_1_blendps): Likewise.
2442         (sse4_1_blendvpd): Likewise.
2443         (sse4_1_blendvps): Likewise.
2444         (sse4_1_dppd): Likewise.
2445         (sse4_1_dpps): Likewise.
2446         (sse4_1_movntdqa): Likewise.
2447         (sse4_1_mpsadbw): Likewise.
2448         (sse4_1_packusdw): Likewise.
2449         (sse4_1_pblendvb): Likewise.
2450         (sse4_1_pblendw): Likewise.
2451         (sse4_1_phminposuw): Likewise.
2452         (sse4_1_extendv8qiv8hi2): Likewise.
2453         (*sse4_1_extendv8qiv8hi2): Likewise.
2454         (sse4_1_extendv4qiv4si2): Likewise.
2455         (*sse4_1_extendv4qiv4si2): Likewise.
2456         (sse4_1_extendv2qiv2di2): Likewise.
2457         (*sse4_1_extendv2qiv2di2): Likewise.
2458         (sse4_1_extendv4hiv4si2): Likewise.
2459         (*sse4_1_extendv4hiv4si2): Likewise.
2460         (sse4_1_extendv2hiv2di2): Likewise.
2461         (*sse4_1_extendv2hiv2di2): Likewise.
2462         (sse4_1_extendv2siv2di2): Likewise.
2463         (*sse4_1_extendv2siv2di2): Likewise.
2464         (sse4_1_zero_extendv8qiv8hi2): Likewise.
2465         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
2466         (sse4_1_zero_extendv4qiv4si2): Likewise.
2467         (*sse4_1_zero_extendv4qiv4si2): Likewise.
2468         (sse4_1_zero_extendv2qiv2di2): Likewise.
2469         (*sse4_1_zero_extendv2qiv2di2): Likewise.
2470         (sse4_1_zero_extendv4hiv4si2): Likewise.
2471         (*sse4_1_zero_extendv4hiv4si2): Likewise.
2472         (sse4_1_zero_extendv2hiv2di2): Likewise.
2473         (*sse4_1_zero_extendv2hiv2di2): Likewise.
2474         (sse4_1_zero_extendv2siv2di2): Likewise.
2475         (*sse4_1_zero_extendv2siv2di2): Likewise.
2476         (sse4_1_roundpd): Likewise.
2477         (sse4_1_roundps): Likewise.
2478         (sse4_1_roundsd): Likewise.
2479         (sse4_1_roundss): Likewise.
2480         (mulv4si3): Don't expand for SSE4.1.
2481         (smax<mode>3): Likewise.
2482         (umaxv4si3): Likewise.
2483         (uminv16qi3): Likewise.
2484         (umin<mode>3): Likewise.
2485         (umaxv8hi3): Rewrite.  Only enabled for SSE4.1.
2486
2487         * doc/extend.texi: Document SSE4.1 built-in functions.
2488
2489         * doc/invoke.texi: Document -msse4.1.
2490
2491 2007-05-22  Nathan Sidwell  <nathan@codesourcery.com>
2492
2493         * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
2494         * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
2495         * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
2496         (ASM_SPEC): Add asm_pcrel_spec.
2497         (EXTRA_SPECS): Add asm_pcrel_spec.
2498
2499 2007-05-21  David Daney  <ddaney@avtrex.com>
2500
2501         * doc/install.texi (Building a cross compiler): Add requirements
2502         for Java cross compiler.
2503
2504 2007-05-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2505
2506         PR middle-end/31995
2507         * tree-chrec.c (evolution_function_is_affine_multivariate_p):
2508         Add loopno argument.  Use evolution_function_is_invariant_rec_p
2509         instead of evolution_function_is_constant_p.
2510         Update calls to evolution_function_is_affine_multivariate_p.
2511         * tree-chrec.h (evolution_function_is_affine_multivariate_p):
2512         Add loopno argument.
2513         * tree-scalar-evolution.c (gather_chrec_stats): Call
2514         evolution_function_is_affine_multivariate_p with a loop
2515         number of 0.
2516         * tree-data-ref.c (analyze_miv_subscript): Likewise.
2517         (analyze_overlapping_iterations): Likewise.
2518         (access_functions_are_affine_or_constant_p): Likewise.
2519         (build_classic_dist_vector_1): If the access functions
2520         are equal, don't do anything.
2521
2522 2007-05-21  Paolo Bonzini  <bonzini@gnu.org>
2523             Paolo Carlini  <pcarlini@suse.de>
2524             Uros Bizjak  <ubizjak@gmail.com>
2525
2526         * c-cppbuiltin.c (c_cpp_builtins): Define
2527         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
2528         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
2529         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
2530         * doc/cpp.texi ([Standard Predefined Macros]): Document.
2531
2532 2007-05-21  Mike Stump  <mrs@apple.com>
2533
2534         * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
2535         handling as well.
2536         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
2537
2538 2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
2539
2540         * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
2541         implementation if __OPTIMIZE__ is not defined.
2542         (_mm_alignr_pi8): Ditto.
2543         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
2544         (_mm_inserti_si64): Ditto.
2545         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
2546         (_mm_slli_epi16): Ditto.
2547         (_mm_slli_epi32): Ditto.
2548         (_mm_slli_epi64): Ditto.
2549         (_mm_srai_epi16): Ditto.
2550         (_mm_srai_epi32): Ditto.
2551         (_mm_srli_si128): Ditto.
2552         (_mm_slli_si128): Ditto.
2553         (_mm_srli_epi16): Ditto.
2554         (_mm_srli_epi32): Ditto.
2555         (_mm_srli_epi64): Ditto.
2556         (_mm_extract_epi16): Ditto.
2557         (_mm_insert_epi16): Ditto.
2558         (_mm_shufflehi_epi16): Ditto.
2559         (_mm_shufflelo_epi16): Ditto.
2560         (_mm_shuffle_epi32): Ditto.
2561         * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
2562         (_m_pextrw): Ditto.
2563         (_mm_insert_pi16): Ditto.
2564         (_m_pinsrw): Ditto.
2565         (_mm_shuffle_pi16): Ditto.
2566         (_m_pshufw): Ditto.
2567         (_mm_shufle_ps): Ditto.
2568         (_mm_prefetch): Ditto.
2569
2570 2007-05-21  Andreas Krebbel  <krebbel1@de.ibm.com>
2571
2572         * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
2573         * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
2574         * real.c (encode_i370_single, decode_i370_single,
2575         encode_i370_double, decode_i370_double): Functions removed.
2576         (i370_single_format, i370_double_format): Initializations removed.
2577         (real_maxval, round_for_format, exact_real_truncate, significand_size):
2578         Consider the log2_b field to always be one.
2579         (ieee_single_format, mips_single_format, coldfire_single_format,
2580         ieee_double_format, mips_double_format, coldfire_double_format,
2581         ieee_extended_motorola_format, ieee_extended_intel_96_format,
2582         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
2583         ibm_extended_format, mips_extended_format, ieee_quad_format,
2584         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
2585         decimal_single_format, decimal_double_format, decimal_quad_format,
2586         c4x_single_format, c4x_extended_format, real_internal_format): Remove
2587         initialization of log2_b.
2588         * real.h (i370_single_format, i370_double_format): Declarations removed.
2589         * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
2590         field to always be one.
2591
2592 2007-05-21  Andreas Schwab  <schwab@suse.de>
2593
2594         * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
2595         NOTE_INSN_BASIC_BLOCK_P.
2596         (process_for_unwind_directive): Likewise.
2597
2598 2007-05-21  Nathan Sidwell  <nathan@codesourcery.com>
2599
2600         * builtins.c (expand_builtin_setjmp_setup): Update comment.
2601         * function.h (struct function): Move va_list_gpr_size,
2602         va_list_fpr_size, function_frequency to front of bitfields.  Add
2603         calls_unwind_init.
2604         (current_function_calls_unwind_init): New.
2605         * except.c (expand_builtin_unwind_init): Set
2606         current_function_calls_unwind_init not
2607         current_function_has_nonlocal_label.
2608         * reload1.c (has_nonexceptional_receiver): New.
2609         (reload): Use it and current_function_calls_unwind_init to
2610         determine whether call-saved regs must be saved.
2611
2612 2007-05-20  Jan Hubicka  <jh@suse.cz>
2613
2614         * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
2615         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
2616         * ddg.c (create_ddg): LIkewise.
2617         * final.c (final): Remove hunk moving line numbernotes around since
2618         they are no longer present at this stage.
2619         (final_scan_insn): Use NOTE_KIND instead of
2620         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
2621         (output_asm_label): Likewise.
2622         * reorg.c (dbr_schedule): Likewise.
2623         * haifa-sched.c (unlink_other_notes): Likewise.
2624         * mode-switching.c (optimize_mode_switching): Likewise.
2625         * graph.c (start_bb): Likewise.
2626         * rtl.def (NOTE): Update description.
2627         * jump.c (squeeze_notes): Delete.
2628         (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
2629         NOTE_INSN_BASIC_BLOCK_P when possible.
2630         * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
2631         * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
2632         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
2633         (dwarf2out_var_location): Likewise.
2634         * cfgbuild.c (make_edges): Likewise.
2635         (find_basic_blocks_1): Likewise.
2636         * function.c (reorder_blocks_1): Likewise.
2637         (epilogue_done): Likewise.
2638         (reposition_prologue_and_epilogue_notes): Likewise.
2639         * print-rtl.c (print_rtx): Likewise; drop code for printing line number
2640         notes.
2641         (print_rtl): Likewise.
2642         (print_rtl_single): Likewise.
2643         * gcse.c (insert_insn_start_bb): Likewise.
2644         * alias.c (init_alias_analysis): Likewise.
2645         * calls.c (fixup_tail_calls): Likewise.
2646         * except.c (sjlj_emit_function_enter): Likewise.
2647         * emit-rtl.c (add_insn_after): Likeiwse.
2648         (emit_label_before): Likewise.
2649         (emit_label_after): Likewise.
2650         (emit_note_before, emit_note_after, emit_note): Update
2651         parameter to be enum insn_note; do not deal with source
2652         files.
2653         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
2654         Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
2655         when possible.
2656         (merge_blocks_move_successor_nojumps): Simplify now when
2657         we don't have BLOCK notes.
2658         (try_optimize_cfg): Likewise.
2659         * cfglayout.c (skip_insns_after_block): Likewise.
2660         (record_effective_endpoints): Likewise.
2661         (duplicate_insn_chain): Likewise.
2662         * varasm.c (output_constant_pool_1): Likewise.
2663         * sched-deps.c (sched_analyze): Likewise.
2664         * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
2665         Exterminate.
2666         (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
2667         * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
2668         (SET_INSN_DELETED): Simplify.
2669         (NOTE_LINE_NUMBER): Exterminate.
2670         (NOTE_LINE_KIND): New.
2671         (NOTE_INSN_BASIC_BLOCK_P): Update.
2672         (enum insn_note): Simplify.
2673         (GET_NOTE_INSN_NAME) Simplify.
2674         (emit_note_before, emit_note_after, emit_note): Update prototype.
2675         (squeeze_notes): Remove.
2676         * sched-int.h (NOTE_NOT_BB_P): Update.
2677         * resource.c (mark_target_live_regs): Update.
2678         * sched-rgn.c (debug_dependencies): Update.
2679         * sched-vis.c (print_insn): Update.
2680         * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
2681         * config/i386/i386.c (ix86_output_function_epilogue): Update.
2682         * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
2683         (TARGET_ADJUST_UNROLL_MAX): Likewise.
2684         (split_branches): Update.
2685         (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
2686         4.0.0.
2687         (sh_adjust_unroll_max): Exterminate.
2688         * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
2689         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
2690         (m68hc11_reorg): Likewise.
2691         * config/ia64/ia64.c (emit_insn_group_barriers): Update.
2692         (emit_predicate_relation_info): Update.
2693         (process_for_unwind_directive): Update.
2694         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
2695         (output_call): Update.
2696         * config/pa/pa.c (output_lbranch): Update.
2697         (output_millicode_call): Update.
2698         (output_call): Update.
2699         (pa_combine_instructions): Update.
2700         * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
2701         * config/bfin/bfin.c (gen_one_bundle): Update.
2702         * cfgrtl.c (can_delete_note_p): Update.
2703         (delete_insn): Update.
2704         (rtl_merge_blocks): Update.
2705         (commit_one_edge_insertion): Update.
2706         (rtl_verify_flow_info): Update.
2707         * stmt.c (expand_case): Do not call squeeze_notes.
2708
2709 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2710
2711         PR middle-end/7651
2712         PR c++/11856
2713         PR c/12963
2714         PR c/23587
2715         PR other/29694
2716         * c.opt (Wtype-limits): New.
2717         * doc/invoke.texi (Wtype-limits): Document it.
2718         (Wextra): Enabled by -Wextra.
2719         * c-opts.c (c_common_post_options): Enabled by -Wextra.
2720         * c-common.c (shorten_compare): Warn with Wtype-limits.
2721
2722 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
2723
2724         * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
2725         inlined function, not as a macro.
2726         (_mm_alignr_pi8): Ditto.
2727         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
2728         (_mm_inserti_si64): Ditto.
2729         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
2730         (_mm_extract_epi16): Ditto.
2731         (_mm_insert_epi16): Ditto.
2732         (_mm_shufflehi_epi16): Ditto.
2733         (_mm_shufflelo_epi16): Ditto.
2734         (_mm_shuffle_epi32): Ditto.
2735         * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
2736         * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
2737         all functions.
2738         (_m_from_float): Add __extension__ to conversion.  Use 0.0f for
2739         float constant.
2740         (_m_to_float): Use C89 compatible assignment.
2741
2742 2007-04-20  Martin Michlmayr  <tbm@cyrius.com>
2743
2744         PR target/32007
2745         * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
2746
2747 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2748
2749         PR middle-end/7651
2750         * doc/invoke.texi (Wreturn-type): Complete description.
2751         (Wextra): Delete item about return-type warning.
2752         * c-decl.c: Delete redundant Wextra warning.
2753
2754 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
2755
2756         PR target/31585
2757         * config/i386/pmmintrin.h: Do not include xmmintrin.h
2758         * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
2759         inlined function, not as a macro.
2760         (_mm_prefetch): Ditto.
2761         (_m_pextrw): Ditto.
2762         (_mm_insert_pi16): Ditto.
2763         (_m_pinsrw): Ditto.
2764         (_mm_shuffle_pi16): Ditto.  Add const to __N argument.
2765         (_m_pshufw): Ditto. Add const to __N argument.
2766         (_mm_shufle_ps): Ditto.  Add const to __mask argument.
2767         * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
2768         (_mm_slli_epi32): Ditto.
2769         (_mm_srli_si128): Implement as always inlined function, not as a macro.
2770         Add __inline to function declaration.
2771         (_mm_slli_si128): Ditto.
2772
2773 2007-05-19  Uros Bizjak  <ubizjak@gmail.com>
2774
2775         * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
2776         FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
2777         New constants.
2778         (struct fenv): New structure.
2779         (FP_HANDLE_EXCEPTIONS): New define.
2780         (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
2781         (_FP_DECL_EXP): New define.
2782         (FP_INIT_ROUNDMODE): New define.
2783         (FP_ROUNDMODE): New define.
2784
2785 2007-05-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2786
2787         * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
2788         (Wconversion): Update description.
2789         (Wconversion-sign): New.
2790         * c.opt (Wconversion-sign): New.
2791         * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
2792         means disabled for C++. Otherwise, take the status of Wconversion.
2793         * c-common.c (conversion_warning): Warn with either Wconversion or
2794         Wconversion-sign.
2795         (warnings_for_convert_and_check): Conditions are already checked by
2796         conversion_warning.
2797         (convert_and_check): Don't check warnings if the conversion failed.
2798
2799 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
2800            Anatoly Sokolov <aesok@dol.ru>
2801
2802         * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
2803         avr_epilogue_uses) : Add declaration.
2804         * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
2805         * config/avr/constraints.md (R): New constraint.
2806         config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
2807         UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
2808         (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
2809         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
2810         (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
2811         call_prologue_saves, epilogue_restores, return_from_epilogue,
2812         return_from_main_epilogue, return_from_interrupt_epilogue,
2813         return_from_naked_epilogue, prologue, epilogue): New patterns.
2814         (jump): Handle symbol reference.
2815         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
2816         avr_output_function_prologue, avr_output_function_epilogue): Remove
2817         functions.
2818         (avr_init_machine_status, expand_prologue, expand_epilogue,
2819         avr_asm_function_end_prologue, avr_epilogue_uses,
2820         avr_asm_function_begin_epilogue): New functions.
2821         (prologue_size, epilogue_size, jump_tables_size): Remove global
2822         variables.
2823         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2824         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
2825         (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
2826         (avr_override_options): Initialise init_machine_status.
2827         (output_movhi): Handle all stack pointer loads.
2828         (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
2829         (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
2830         * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
2831         (EPILOGUE_USES) Redefine.
2832         (machine_function) Declare.
2833
2834 2007-05-19  Richard Sandiford  <richard@codesourcery.com>
2835
2836         * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
2837         Use a single return statement.
2838
2839 2007-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2840
2841         PR middle-end/30250
2842         * builtins.c (do_mpfr_lgamma_r): New.
2843         (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
2844         * tree.h (CASE_FLT_FN_REENT): New.
2845
2846 2007-05-18  Geoffrey Keating  <geoffk@apple.com>
2847
2848         * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
2849         (output_die): Use 'unsigned long' with %x.
2850         * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
2851         HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
2852         * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
2853
2854         * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
2855
2856 2007-05-18  H.J. Lu  <hongjiu.lu@intel.com>
2857
2858         PR target/31989
2859         PR target/31681
2860         PR target/31666
2861         * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
2862         true if function has no argument.
2863
2864 2007-05-18  DJ Delorie  <dj@redhat.com>
2865
2866         * config/mips/mips.c (mips_offset_within_alignment_p): New.
2867         (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
2868
2869 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
2870
2871         * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
2872         sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
2873         count_trailing_zeros.
2874         (__i386__): Implement count_leading_zeros using __builtin_clz().
2875         Implement count_trailing_zeros usign __builtin_ctz().
2876
2877 2007-05-18  Richard Sandiford  <richard@codesourcery.com>
2878
2879         * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
2880
2881 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
2882
2883         PR middle-end/31344
2884         * expr.c (emit_move_change_mode): Change mode of push operands here.
2885
2886 2007-05-17  Ian Lance Taylor  <iant@google.com>
2887
2888         PR tree-optimization/31953
2889         * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
2890         Change all callers.
2891         (set_value_range_to_null): Call set_value_range_to_value.
2892         (extract_range_from_comparison): Likewise.
2893
2894 2007-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2895
2896         * toplev.c (print_version): Output GMP/MPFR version info.
2897
2898         * builtins.c (CASE_MATHFN_REENT): New macro.
2899         (mathfn_built_in): Use it.
2900         * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
2901         BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
2902         BUILT_IN_LGAMMAL_R): New.
2903         * doc/extend.texi: Document new builtins.
2904
2905         PR middle-end/31796
2906         * builtins.c (do_mpfr_remquo): New.
2907         (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
2908         (fold_builtin_3): Handle BUILT_IN_REMQUO.
2909
2910         PR middle-end/30251
2911         * builtins.c (fold_builtin_1): Handle y0, y1.
2912         (fold_builtin_2): Handle yn.
2913
2914         PR middle-end/30251
2915         * builtins.c (do_mpfr_bessel_n): New.
2916         (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
2917         (fold_builtin_2): Handle BUILT_IN_JN.
2918
2919 2007-05-17  Danny Smith  <dannysmith@users.sourceforge.net>
2920
2921         PR target/31965
2922         * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
2923         TYPE_PRECISION (intmax_type_node).
2924
2925 2007-05-17  Steve Ellcey  <sje@cup.hp.com>
2926
2927         PR target/31850
2928         * reload.c (subst_reloads): Remove checking.
2929
2930 2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2931
2932         PR rtl-optimization/31691
2933         * combine.c (simplify_set): Build a new src pattern instead of
2934         substituting its operands in the COMPARE case.
2935
2936 2007-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2937
2938         * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
2939         (execute_vrp): Preserve loops through jump threading.
2940         * tree-ssa-threadupdate.c (thread_single_edge,
2941         dbds_continue_enumeration_p, determine_bb_domination_status,
2942         thread_through_loop_header): New functions.
2943         (create_edge_and_update_destination_phis,
2944         create_edge_and_update_destination_phis): Set loops for the new blocks.
2945         (prune_undesirable_thread_requests): Removed.
2946         (redirect_edges): Do not pretend that redirect_edge_and_branch can
2947         create new blocks.
2948         (thread_block): Do not call prune_undesirable_thread_requests.
2949         Update loops.
2950         (mark_threaded_blocks): Select edges to thread here.
2951         (thread_through_all_blocks): Take may_peel_loop_headers argument.
2952         Thread edges through loop headers independently.
2953         * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
2954         * tree-pass.h (TODO_mark_first_instance): New.
2955         (first_pass_instance): Declare.
2956         * cfghooks.c (duplicate_block): Put the block to the original loop
2957         if copy is not specified.
2958         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
2959         jump threading.  Pass may_peel_loop_headers to
2960         thread_through_all_blocks according to first_pass_instance.
2961         * cfgloop.h (create_preheader): Declare.
2962         * tree-flow.h (thread_through_all_blocks): Declaration changed.
2963         * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
2964         * passes.c (first_pass_instance): New variable.
2965         (next_pass_1): Set TODO_mark_first_instance.
2966         (execute_todo): Set first_pass_instance.
2967
2968 2007-05-17  Uros Bizjak  <ubizjak@gmail.com>
2969
2970         PR tree-optimization/24659
2971         * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
2972         OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
2973         OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
2974         OTI_vec_pack_ufix_trunc.
2975         (vec_unpacks_float_hi_optab): Define new macro.
2976         (vec_unpacks_float_lo_optab): Ditto.
2977         (vec_unpacku_float_hi_optab): Ditto.
2978         (vec_unpacku_float_lo_optab): Ditto.
2979         (vec_pack_sfix_trunc_optab): Ditto.
2980         (vec_pack_ufix_trunc_optab): Ditto.
2981         * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
2982         and vec_pack_[s|u]fix_trunc_optab using
2983         vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
2984         * tree-vectorizer.c (supportable_widening_operation): Handle
2985         FLOAT_EXPR and CONVERT_EXPR.  Update comment.
2986         (supportable_narrowing_operation): New function.
2987         * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
2988         * tree-vect-transform.c (vectorizable_conversion): Handle
2989         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
2990         (vect_gen_widened_results_half): Move before vectorizable_conversion.
2991         (vectorizable_type_demotion): Call supportable_narrowing_operation()
2992         to check for target support.
2993         * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
2994         for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
2995         for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
2996         for VEC_PACK_FIX_TRUNC_EXPR.
2997         (expand_binop): Special case mode of the result for
2998         vec_pack_[u|s]fix_trunc_optab.
2999         (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
3000         vec_pack_[u|s]fix_trunc_optab.
3001
3002         * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
3003         VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
3004         * tree-pretty-print.c (dump_generic_node): Handle
3005         VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
3006         VEC_PACK_FIX_TRUNC_EXPR.
3007         (op_prio): Ditto.
3008         * expr.c (expand_expr_real_1): Ditto.
3009         * tree-inline.c (estimate_num_insns_1): Ditto.
3010         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3011
3012         * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
3013         (vec_unpacks_float_lo_v8hi): Ditto.
3014         (vec_unpacku_float_hi_v8hi): Ditto.
3015         (vec_unpacku_float_lo_v8hi): Ditto.
3016         (vec_unpacks_float_hi_v4si): Ditto.
3017         (vec_unpacks_float_lo_v4si): Ditto.
3018         (vec_pack_sfix_trunc_v2df): Ditto.
3019
3020         * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
3021         Document.
3022         [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
3023         [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
3024         * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
3025         [vec_pack_ufix_trunc]: Ditto.
3026         [vec_unpacks_float_hi]: Ditto.
3027         [vec_unpacks_float_lo]: Ditto.
3028         [vec_unpacku_float_hi]: Ditto.
3029         [vec_unpacku_float_lo]: Ditto.
3030
3031 2007-05-16  Uros Bizjak  <ubizjak@gmail.com>
3032
3033         * soft-fp/README: Update for new files.
3034         * soft-fp/floattisf.c: New file.
3035         * soft-fp/floattidf.c: New file.
3036         * soft-fp/floattitf.c: New file.
3037         * soft-fp/floatuntisf.c: New file.
3038         * soft-fp/floatuntidf.c: New file.
3039         * soft-fp/floatuntitf.c: New file.
3040         * soft-fp/fixsfti.c: New file.
3041         * soft-fp/fixdfti.c: New file.
3042         * soft-fp/fixtfti.c: New file.
3043         * soft-fp/fixunssfti.c: New file.
3044         * soft-fp/fixunsdfti.c: New file.
3045         * soft-fp/fixunstfti.c: New file.
3046         * soft-fp/extendxftf.c: New file.
3047         * soft-fp/trunctfxf.c: New file.
3048
3049         * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
3050         (__trunctfxf2): Ditto.
3051
3052         * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
3053         __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
3054         __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
3055         __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
3056         __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
3057         __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
3058
3059         * config/i386/t-fprules-softfp64: New file.
3060         * config/i386/sfp-machine.h: New file.
3061         * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
3062         x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
3063         and soft-fp/t-softfp to tmake_file.
3064         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3065         i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
3066
3067         * config/i386/t-linux64 (softfp_wrap_start): New.
3068         (softfp_wrap_end): New.
3069         * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
3070         supported for TARGET_64BIT.
3071
3072 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
3073
3074         * c-common.c (c_common_signed_or_unsigned_type): Emulate
3075         c_common_unsigned_type behavior.
3076
3077 2007-05-16  Paolo Bonzini  <bonzini@gnu.org>
3078
3079         * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
3080         calls as pure.
3081
3082 2007-05-16  Eric Christopher  <echristo@apple.com>
3083
3084         * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
3085         saving after stack push. Set sp_offset whenever we push.
3086         (rs6000_emit_epilogue): Move altivec register restore before
3087         stack push.
3088
3089 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
3090
3091         * configure.ac: Allow sysroots to be relocated under $prefix as
3092         well as $exec_prefix.
3093         * configure: Regenerate.
3094
3095 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
3096
3097         Revert:
3098
3099         2007-05-12  Richard Sandiford  <richard@codesourcery.com>
3100
3101         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
3102         (gcc_tooldir): Likewise.
3103         * configure: Regenerate.
3104         * Makefile.in (libsubdir_to_prefix): New variable, based on the
3105         old configure.ac gcc_tooldir setting.
3106         (prefix_to_exec_prefix): New variable.
3107         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
3108         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
3109
3110 2007-05-14  Janis Johnson  <janis187@us.ibm.com>
3111
3112         * c-typeck.c (build_binary_op): Return early for error.
3113
3114 2007-05-15  Zdenek Dvorak  <dvorakz@suse.cz>
3115
3116         * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
3117         struct nb_iter_bound.
3118         (free_numbers_of_iterations_estimates_loop): Use ggc_free.
3119         * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
3120         * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
3121         * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
3122         (struct scev_info_str, scalar_evolution_info): Add GTY markers.
3123         (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
3124         (del_scev_info): Use ggc_free.
3125         (scev_initialize): Allocate scalar_evolution_info in gc memory.
3126         * loop-init.c: Include ggc.h.
3127         (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
3128         (loop_optimizer_finalize): Use ggc_free.
3129         * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
3130         pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
3131         pass_iv_optimize): Add TODO_ggc_collect.
3132         * function.h (struct function): Remove skip marker from x_current_loops.
3133         * cfgloop.c: Include ggc.h.
3134         (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
3135         memory.
3136         (establish_preds): Vector superloops is gc allocated.
3137         (alloc_loop): Allocate loop using GGC_CNEW.  Allocate head of
3138         loop->exits list.
3139         (flow_loops_find): Vector larray is gc allocated.
3140         (loop_exit_free): Use ggc_free.
3141         (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit.  Reflect
3142         that head of exits list is now not a part of struct loop.
3143         (record_loop_exits): Allocate exits table in gc memory.
3144         (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect that
3145         head of exits list is now not a part of struct loop.
3146         * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
3147         struct loop_exit): Add GTY marker.
3148         (struct loop): Add GTY marker.  Make superloops vector gc allocated.
3149         Add skip marker to aux field.  Make head of exits list a separate
3150         object.
3151         (struct loops): Add GTY marker.  Make larray vector gc allocated.
3152         Add param marker to exits table.
3153         (get_loops): Type changed.
3154         * Makefile.in (tree-scalar-evolution.o): Add gt-tree-scalar-evolution.h
3155         dependency.
3156         (cfgloop.o, loop-init.o): Add ggc.h dependency.
3157         (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
3158         * basic-block.h (struct basic_block_def): Remove skip marker from
3159         loop_father field.
3160
3161 2007-05-14  Uros Bizjak  <ubizjak@gmail.com>
3162
3163         * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
3164         of 0 in the call to expand_expr().
3165         (expand_builtin_mathfn_3): Ditto.
3166         (expand_builtin_interclass_mathfn): Ditto.
3167         (expand_builtin_cexpi): Ditto.
3168         (expand_builtin_int_roundingfn): Ditto.
3169         (expand_builtin_int_roundingfn_2): Ditto.
3170         (expand_builtin_pow): Ditto.
3171         (expand_builtin_powi): Ditto.
3172         (expand_builtin_bswap): Ditto.
3173         (expand_builtin_unop): Ditto.
3174         (expand_builtin_fabs): Ditto.
3175         (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
3176         the call to expand_expr().
3177         (expand_builtin_sync_operation): Ditto.
3178         (expand_builtin_compare_and_swap): Ditto.
3179         (expand_builtin_lock_test_and_set): Ditto.
3180         * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
3181         instead of 0 in the call to expand_expr().
3182         (expand_builtin_extract_return_addr): Ditto.
3183         (expand_builtin_eh_return): Ditto.
3184         (expand_eh_return): Ditto.
3185         * explow.c (expr_size): Ditto.
3186         * expr.c (optimize_bitfield_assignment_op): Ditto.
3187         (expand_assignement): Ditto.
3188         (store_expr): Ditto.
3189         (store_field): Ditto.
3190         (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
3191         the call to expand_expr().
3192         (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
3193         in the call to expand_expr().
3194         [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
3195         BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
3196         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
3197         of expand_expr().
3198         * optabs.c (expand_vec_shift_expr): Ditto.
3199         (expand_vec_cond_expr): Ditto.
3200         (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
3201         call to expand_expr().
3202         * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
3203         in the call to expand_expr().
3204
3205 2007-05-14  Dave Korn  <dave.korn@artimi.com>
3206
3207         * genautomata.c (gen_regexp_el):  Allocate correct size for regexp.
3208
3209 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
3210
3211         * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
3212         instead of c_common_unsigned_type.
3213         (c_common_unsigned_type): Remove.
3214         (shorten_compare): Use c_common_signed_or_unsigned_type instead of
3215         c_common_unsigned_type.
3216         (c_common_nodes_and_builtins): Use unsigned_type_for instead of
3217         c_common_unsigned_type.
3218         * c-common.h (c_common_unsigned_type): Remove.
3219         * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
3220         c_common_unsigned_type.
3221         * c-format.c (check_format_types): Use unsigned_type_for instead of
3222         c_common_unsigned_type.
3223         * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
3224         * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead of
3225         c_common_unsigned_type.
3226         * convert.c (convert_to_integer): Use unsigned_type_for instead of
3227         lang_hooks.types.unsigned_type.
3228         * expmed.c (make_tree): Use unsigned_type_for instead of
3229         lang_hooks.types.unsigned_type.
3230         * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
3231         lang_hooks.types.unsigned_type.
3232         (build_range_check): Likewise.
3233         (fold_unary): Likewise.
3234         (fold_binary): Likewise.
3235         (fold_ternary): Likewise.
3236         * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
3237         * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
3238         * tree.c (get_unsigned_type): New.
3239         (unsigned_type_for): Use get_unsigned_type instead of
3240         lang_hooks.types.unsigned_type.
3241
3242 2007-05-14  Kazu Hirata  <kazu@codesourcery.com>
3243
3244         * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
3245         to m68k_get_function_kind.  Update its prototype.
3246         * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
3247         interrupt_thread.
3248         (m68k_interrupt_function_p): Return enum m68k_function_type
3249         instead of bool.  Rename to m68k_get_function_kind.
3250         (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
3251         target is not fido.
3252         (m68k_compute_frame_layout): Don't mark any register for save
3253         if an interrupt_thread attribute is specified.
3254         (m68k_hard_regno_rename_ok): Update a use of
3255         m68k_interrupt_function_p.
3256         * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
3257         m68k_interrupt_function_p.
3258         (m68k_function_type): New.
3259         * config/m68k/m68k.md (*return): Output a 'sleep' instruction
3260         for a function with an interrupt_thread attribute.
3261         * doc/extend.texi: Document the interrupt_thread attribute.
3262
3263 2007-05-13  Daniel Berlin  <dberlin@dberlin.org>
3264
3265         Fix PR tree-optimization/31911
3266         * tree-ssa-pre.c (phi_translate): Make sure to cache results even
3267         if they didn't change the expression.
3268
3269 2007-05-13  Zdenek Dvorak  <dvorakz@suse.cz>
3270
3271         * tree-scalar-evolution.c (resolve_mixers): Exported.
3272         * tree-scalar-evolution.h (resolve_mixers): Declare.
3273         * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
3274         ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
3275         record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
3276         base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
3277         init_array_ref, init_pointer_ref, analyze_indirect_ref,
3278         strip_conversion, analyze_offset_expr, address_analysis,
3279         object_analysis, analyze_offset): Removed.
3280         (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
3281         split_constant_offset, canonicalize_base_object_address,
3282         object_address_invariant_in_loop_p, disjoint_objects_p,
3283         dr_may_alias_p, dr_address_invariant_p): New functions.
3284         (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
3285         and dr_analyze_alias.
3286         (initialize_data_dependence_relation): Use dr_may_alias_p
3287         and object_address_invariant_in_loop_p.
3288         (compute_self_dependence): Handle the case when DDR_ARE_DEPENDENT (ddr)
3289         is chrec_dont_know.
3290         (find_data_references_in_stmt): Restrict the analysis of data references
3291         to the given loop nest.
3292         (find_data_references_in_loop): Made static.  Pass loop nest to
3293         find_data_references_in_stmt.
3294         (compute_data_dependences_for_loop): Use DR_VOPS.
3295         (free_data_ref): Free DR_VOPS.
3296         * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
3297         (struct innermost_loop_behavior): ... new.
3298         (struct base_object_info): Replaced by ...
3299         (struct indices): ... new.
3300         (struct dr_alias): New.
3301         (enum data_ref_type): Removed.
3302         (struct data_reference): Consist of struct innermost_loop_behavior,
3303         struct indices and struct dr_alias.
3304         (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
3305         (DR_MEMTAG): Renamed to ...
3306         (DR_SYMBOL_TAG): ... this.
3307         (find_data_references_in_loop): Declaration removed.
3308         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
3309         instead of DR_OFFSET_MISALIGNMENT.  DR_ALIGNED_TO is never NULL.
3310         (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
3311         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
3312
3313 2007-05-13  Revital Eres  <eres@il.ibm.com>
3314
3315         * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
3316         which walks virtual def-use chains to find redundant stores.
3317         (dse_optimize_stmt): Call it.
3318
3319 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
3320
3321         * gcse.c (gcse_main): Do jump bypassing in CPROP2.
3322         * passes.c (init_optimization_passes): Move pass_jump_bypass
3323         after loop2.
3324
3325         * basic-block.h (bb_has_eh_pred): Fix style issue.
3326
3327 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
3328
3329         PR rtl-optimization/31848
3330         * loop-invariant.c (move_invariant_reg): If we move an insn
3331         with a REG_EQUAL note, and that insn is not always executed,
3332         remove the REG_EQUAL note.
3333
3334 2007-05-12  Richard Guenther  <rguenther@suse.de>
3335
3336         PR tree-optimization/31797
3337         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
3338         propagate into a stmt that has volatile ops.
3339
3340 2007-05-12  Richard Sandiford  <richard@codesourcery.com>
3341
3342         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
3343         (gcc_tooldir): Likewise.
3344         * configure: Regenerate.
3345         * Makefile.in (libsubdir_to_prefix): New variable, based on the
3346         old configure.ac gcc_tooldir setting.
3347         (prefix_to_exec_prefix): New variable.
3348         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
3349         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
3350
3351 2007-05-11  Silvius Rus  <rus@google.com>
3352
3353         * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
3354         * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
3355         * c-common.h (strict_aliasing_warning): Change return type.
3356         * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
3357         * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
3358         (build_c_cast): Condition call to strict_aliasing_warning.
3359         * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
3360         * flags.h (set_Wstrict_aliasing): Declare.
3361         * opts.c (set_Wstrict_alising): Define, add call to.
3362         * tree-flow.h (strict_aliasing_warning_backend): Declare.
3363         * tree-ssa-alias-warnings.c: New file.
3364         * tree-ssa-alias.c (compute_may_aliases): Add call to
3365         strict_aliasing_warning_backend.
3366
3367 2007-05-11  Zdenek Dvorak  <dvorakz@suse.cz>
3368
3369         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
3370         Use loop_depth and loop_outer accessor functions.
3371         * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
3372         determine_invariantness_stmt, move_computations_stmt): Ditto.
3373         * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
3374         add_loop, loopify, unloop, fix_loop_structure): Ditto.
3375         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
3376         * tree-scalar-evolution.c (interpret_loop_phi,
3377         compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
3378         instantiate_parameters_1, scev_const_prop): Ditto.
3379         * cfghooks.c (make_forwarder_block): Ditto.
3380         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
3381         * modulo-sched.c (loop_canon_p): Ditto.
3382         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
3383         slpeel_can_duplicate_loop_p): Ditto.
3384         * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
3385         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
3386         * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
3387         cancel_loop, verify_loop_structure): Ditto.
3388         (flow_loop_neste