1 2007-06-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
4 * config/v850/v850.c: Include dataflow header file.
5 (substitute_ep_register): Fix typo.
7 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
9 * configure.ac: Fix earlier checkin.
10 * configure: Regenerated.
12 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
14 * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
15 * aclocal.m4: Regenerate.
16 * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
17 ACX_PROG_CC_WARNINGS_ARE_ERRORS,
18 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
19 * configure: Regenerate.
20 * Makefile.in (LOOSE_WARN): Subst loose_warn.
22 * Makefile.in (quickstrap): Build libgcc too.
24 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
26 * configure.ac: Add --enable-checking=df. Explicitly mention that
27 the variables are initialized as for "release".
29 * configure: Regenerate.
30 * config.in: Regenerate.
32 2007-06-14 Bob Wilson <bob.wilson@acm.org>
34 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
35 validate_replace_rtx instead of replace_rtx.
36 (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
38 2007-06-14 Danny Smith <dannysmith@users.sourceforge.net>
40 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
41 (DWARF2_UNWIND_INFO): Override default if configured with
43 * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
44 (ENDFILE_SPEC): Add crtend.o.
45 * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
46 (ENDFILE_SPEC): Add crtend.o.
47 (TARGET_USE_JCR_SECTION): Define.
48 (MD_UNWIND_SUPPORT): Define for 32-bit target.
50 * config/i386/cygming-crtbegin.c: New file.
51 * config/i386/cygming-crtend.c: New file.
53 2007-06-14 Pascal Obry Pascal Obry <obry@adacore.com>
55 * config/i386/w32-unwind.h: New file.
57 2007-06-13 Eric Christopher <echristo@apple.com>
59 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
60 the user set a value below STACK_BOUNDARY.
62 2007-06-13 Thiemo Seufer <ths@networkno.de>
64 * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
65 imply -lpthread for -pthread.
67 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
69 * basic-block.h: Remove the prototype for
70 free_basic_block_vars.
71 * cfglayout.h: Remove the prototype for
72 insn_locators_initialize.
73 * tree.h: Remove the prototype for emit_line_note.
75 * tree-ssa-pre.c (mergephitemp): Remove.
76 (init_pre): Don't use mergephitemp.
78 2007-06-13 Eric Christopher <echristo@apple.com>
80 * config/i386/i386.c (override_options): If we've specified
81 an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
83 2007-06-13 Bob Wilson <bob.wilson@acm.org>
85 * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
88 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
90 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
91 * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
92 (eh_store_handler): New pattern.
93 (eh_return): Emit it instead of a plain move.
95 2007-06-13 Uros Bizjak <ubizjak@gmail.com>
97 * config/i386/i386.c (ix86_init_mmx_sse_builtins)
98 [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
99 [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
102 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
104 * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
105 (find_next_insn_start, find_load): New functions.
106 (bfin_reorg): Use them to deal with the fact that parallel insns are
107 no longer represented as a SEQUENCE.
109 2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
111 * config/sparc/sparc.c (sparc_override_options): Initialize
114 2007-06-13 Dave Korn <dave.korn@artimi.com>
116 * config/i386/i386.c (ix86_eax_live_at_start_p): Use
119 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
121 * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
122 config/sh/divcost-analysis, dbgcnt.def, df-core.c,
123 df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
124 tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
125 tree-vect-transform.c: Fix comment typos. Follow spelling
128 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
130 * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
131 to the exit block use set.
132 * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
133 * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
135 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
137 * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
138 * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
139 to indicate an error.
140 (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): New functions
141 (dbg_cnt_process_opt): Print an error on a bad argument.
142 * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
143 * common.opt (-fdbg-cnt-list): New.
144 * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
146 2007-06-12 Eric Botcazou <ebotcazou@adacore.com>
148 * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
149 flag on ref-all pointers.
151 2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
154 * expr.c (expand_expr_addr_expr_1): Call expand_expr
155 for the offset with the modifier as EXPAND_INITIALIZER
156 if the modifier is EXPAND_INITIALIZER.
157 (expand_expr_real_1 <case INTEGER_CST>): Don't force to
158 a register if we had an overflow.
160 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
162 * real.c (real_isfinite): New.
164 * real.h (real_isfinite): New.
165 * builtins.c: Use it.
167 2007-06-12 Ian Lance Taylor <iant@google.com>
168 Daniel Berlin <dberlin@dberlin.org>
171 * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
172 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
173 (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
174 (DECL_NO_TBAA_P): Define.
175 (struct tree_decl_common): Add no_tbaa_flag field.
176 * tree-ssa-structalias.c (struct variable_info): Add
177 no_tbaa_pruning field.
178 (new_var_info): Initialize no_tbaa_pruning field.
179 (unify_nodes): Copy no_tbaa_pruning field.
180 (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
181 (dump_solution_for_var): Print no_tbaa_pruning flag.
182 (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all
184 (compute_tbaa_pruning): New static function.
185 (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
186 Call compute_tbaa_pruning.
187 * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
188 * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
189 * gimple-low.c (lower_stmt): Likewise.
190 * tree-gimple.c (is_gimple_stmt): Likewise.
191 * tree-ssa-operands.c (get_expr_operands): Likewise.
192 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
193 * tree-inline.c (estimate_num_insns_1): Likewise.
194 (copy_result_decl_to_var): Likewise.
195 * expr.c (expand_expr_real_1): Likewise.
196 * tree-pretty-print.c (dump_generic_node): Likewise.
197 * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
198 * omp-low.c (omp_copy_decl_2): Likewise.
199 * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
200 * doc/c-tree.texi (Expression trees): Document
201 CHANGE_DYNAMIC_TYPE_EXPR.
203 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
205 * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
206 with !HONOR_NANS and !HONOR_INFINITIES.
207 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
209 2007-06-12 Tristan Gingold <gingold@adacore.com>
211 * gcov.c: Comments updated.
212 (source_info): Add file_time field.
213 (source_index): New variable.
214 (mutiple_files): New variable.
215 (generate_results): New function extracted from process_file.
216 (process_file): Save and restore chain of functions, generate
217 results and free structures only if not merging results.
218 (release_structures): File names are now freed in create_file_names
219 (create_file_names): Free previous file names.
220 (find_source): File date is now read here and modifications in
221 source files is checked here.
222 (read_graph_file): Only reverse order of functions for the current
224 (make_gcov_file_name): Do not generate long names if input_name is
226 (output_lines): If merging results do not display graph, data and
228 Checking source file modification is done in find_source.
230 * doc/gcov.texi: Append an s to sourcefile.
232 2007-06-12 Bernd Schmidt <bernd.schmidt@analog.com>
234 * config/bfin/bfin.md (UNSPEC_NOP): New constant.
235 (forced_nop): New pattern.
236 * config/bfin/bfin.c: Include "df.h".
237 (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
238 (bfin_discover_loop): Use df_get_live_in instead of
239 global_live_at_start.
240 (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call
241 df_analyze when done.
242 (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
243 the insns. Use QImode for the final insn in a bundle. Call
244 df_insn_rescan on generated NOPs; use gen_forced_nop instead of
246 (reorder_var_tracking_notes): New function.
247 (bfin_reorg): Pass no argument to split_all_insns. Don't call
248 update_life_info. Call df_analyze after scheduling and bundle
249 generation. Call reorder_var_tracking_notes if generating these notes.
250 Call df_finish_pass at the end.
252 2007-06-12 Dirk Mueller <dmueller@suse.de>
254 * optabs.c (debug_optab_libfuncs): fix gcc_assert to
255 a comparison, not an assignment.
257 2007-06-12 Olivier Hainque <hainque@adacore.com>
259 * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
260 Request walking the subtrees only, leaving the current is_lhs/val_only
262 (convert_non_local_reference): Likewise.
264 2007-06-12 Nathan Sidwell <nathan@codesourcery.com>
266 * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
268 2007-06-12 Richard Guenther <rguenther@suse.de>
270 PR tree-optimization/15353
271 PR tree-optimization/31657
272 * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
273 * timevar.def: Add TV_TREE_IFCOMBINE.
274 * tree-pass.h (pass_tree_ifcombine): Declare.
275 * tree-ssa-ifcombine.c: New file.
276 * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
277 * tree-flow.h (blocks_in_phiopt_order): Declare.
278 * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
279 (tree-ssa-ifcombine.o): New dependencies.
281 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
283 PR rtl-optimization/32293
284 * combine.c (simplify_if_then_else): Truncate return from
285 nonzero_bits() to correct mode.
287 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
289 * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
290 into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
292 2007-06-11 Diego Novillo <dnovillo@google.com>
294 * Makefile.in (reload1.o-warn): Remove.
296 2007-06-11 Seongbae Park <seongbae.park@gmail.com>
298 * combine.c (subst): Use reg_overlap_mentioned_p
299 instead of comparing register numbers directly.
301 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
303 * reload1.c (mark_home_live_1): Use the mode parameter.
305 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
307 * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
308 df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
312 2007-06-11 Daniel Berlin <dberlin@dberlin.org>
314 * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
316 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
318 * config/i386/i386.md ("*movtf_internal): Penalize moves to and
319 from integer registers.
320 (FP mode splitters): Handle TFmode.
322 2007-06-11 Eric Botcazou <ebotcazou@adacore.com>
324 * tree-ssa-structalias.c (find_what_p_points_to): Return false
325 for ref-all pointers that point-to anything.
327 2007-06-11 Joseph Myers <joseph@codesourcery.com>
329 * config/arm/arm.c (arm_output_dwarf_dtprel,
330 TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
332 2007-06-11 Bernd Schmidt <bernd.schmidt@analog.com>
334 * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
335 movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
338 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
340 * gcc/tree.c (signed_or_unsigned_type_for): New.
341 (unsigned_type_for): Use signed_or_unsigned_type_for.
342 (signed_type_for): Use signed_or_unsigned_type_for.
343 * gcc/tree.h (signed_or_unsigned_type_for): New.
344 (get_signed_or_unsigned_type): Remove.
345 * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
346 lang_hooks.types.signed_type
347 (size_diffop): Likewise.
348 (all_ones_mask_p): Likewise.
349 (build_range_check): Likewise.
350 (fold_cond_expr_with_comparison): Likewise.
351 (fold_cond_expr_with_comparison): Likewise.
352 (unextend): Likewise.
353 (extract_muldiv_1): Likewise.
354 (fold_single_bit_test_into_sign_test): Likewise.
355 (fold_binary): Likewise.
356 (fold_ternary): Likewise.
357 (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
358 instead of get_signed_or_unsigned_type.
359 * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
360 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
361 * gcc/expr.c (signed_or_unsigned_type_for): Use
362 signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
363 * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
364 (lhd_signed_or_unsigned_type): Remove.
365 * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
366 signed_or_unsigned_type.
367 (lhd_signed_or_unsigned_type): Remove.
368 * gcc/expmed.c (make_tree): Use signed_type_for instead of
369 lang_hooks.types.signed_type.
370 * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
371 c_common_signed_type instead of lang_hooks.types.signed_type.
372 (c_common_unsigned_type): New.
373 (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
374 (shorten_compare): Use c_common_unsigned_type instead of
375 c_common_signed_or_unsigned_type.
376 (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
378 * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
379 lang_hooks.types.signed_type.
380 * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
381 (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
382 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
383 * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
384 instead of unsigned_type_for.
385 * gcc/c-decl.c (groakdeclarator): Likewise.
386 * gcc/c-typeck.c (convert_for_assignment): Likewise.
387 * gcc/c-common.h (c_common_unsigned_type): New.
389 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
392 * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
393 * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
395 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
398 * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
399 into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
401 2007-06-10 Jan Sjodin <jan.sjodin@amd.com>
402 Sebastian Pop <sebpop@gmail.com>
404 * lambda-code.c (remove_iv): New.
405 (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
407 2007-06-10 Zdenek Dvorak <dvorakz@suse.cz>
409 * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
410 * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
411 * tree-ssa-loop-prefetch.c: Include optabs.h.
412 (FENCE_FOLLOWING_MOVNT): New macro.
413 (struct mem_ref): Add independent_p and storent_p fields.
414 (record_ref): Initalize the new fields.
415 (gather_memory_references_ref): Return true if the reference
417 (gather_memory_references): Check whether all memory accesses
418 in loop were recorded.
419 (should_issue_prefetch_p): Return false for nontemporal stores.
420 (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
421 may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
422 (determine_loop_nest_reuse): Detect independent memory references.
423 (loop_prefetch_arrays): Call mark_nontemporal_stores.
424 * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
425 * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
426 * config/i386/i386.h (x86_mfence): Declare.
427 (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
428 * config/i386/i386.c (x86_mfence): New variable.
429 (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
431 * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
432 * optabs.c (init_optabs): Initialize storent_optab.
433 * optabs.h (enum optab_index): Add OTI_storent.
434 (storent_optab): Declare.
435 * genopinit.c (optabs): Add initialization for storent_optab.
436 * tree.h (MOVE_NONTEMPORAL): New macro.
437 * expr.c (expand_assignment, store_expr, store_constructor_field,
438 store_constructor, store_field, expand_expr_real_1): Propagate
439 nontemporality of the expanded store.
440 (emit_storent_insn): New function.
441 * expr.h (expand_assignment, store_expr): Declaration changed.
442 * function.c (assign_parm_setup_reg): Pass false as nontemporality
443 to expand_assignment.
444 * stmt.c (expand_asm_expr): Ditto.
445 * calls.c (initialize_argument_information): Pass false as
446 nontemporality to store_expr.
447 * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
450 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
452 * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
454 (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
456 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
458 * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
459 and allow DECL_P here.
461 2007-06-09 Zdenek Dvorak <dvorakz@suse.cz>
463 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
464 follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
465 track of the size of the expression.
466 * cfghooks.c (merge_blocks): Remove block from loops structure only
467 after call of the merge_blocks hook.
469 2007-06-09 Tom Tromey <tromey@redhat.com>
471 * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
472 (deprecated_state): Removed.
473 (start_decl): Update.
474 (enum deprecated_states): Moved earlier.
475 (groktypename): Update.
476 (push_parm_decl): Likewise.
477 (grokfield): Likewise.
478 (start_function): Likewise.
480 2007-06-09 Ian Lance Taylor <iant@google.com>
482 PR tree-optimization/32169
483 * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
484 CONVERT_EXPR, check whether min and max both converted to an
485 overflow infinity representation.
487 2007-06-08 Eric Botcazou <ebotcazou@adacore.com>
489 * reload1.c (fixup_abnormal_edges): Clear bb field for insns
490 not inserted on the edge.
492 2007-06-08 Bob Wilson <bob.wilson@acm.org>
494 * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
495 instructions if they are supported.
496 (__divsi3, __umodsi3, __modsi3): Likewise.
497 (__ashldi3, __ashrdi3, __lshrdi3): New.
498 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
500 2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
501 Tony Linthicum <tony.linthicum@amd.com>
503 * doc/extend.texi: Add fvect-cost-model flag.
504 * common.opt (fvect-cost-model): New flag.
505 * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
506 cost fields in stmt_vec_info struct for STMT.
507 * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
508 fields in stmt_vec_info struct and access functions for the same.
509 (TARG_COND_BRANCH_COST): Define cost of conditional branch.
510 (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
511 load, store and vector to scalar operation.
512 (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
513 (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
514 (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
515 (TARG_VEC_STORE_COST): Define cost of vector store.
516 (vect_estimate_min_profitable_iters): Define new function.
517 * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
518 check to evaluate if loop iterations are less than minimum profitable
519 iterations determined by cost model or minimum vect loop bound defined
520 by user, whichever is more conservative.
521 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
522 run-time check to evaluate if loop iterations are less than minimum
523 profitable iterations determined by cost model or minimum vect loop
524 bound defined by user, whichever is more conservative.
525 (vect_estimate_min_profitable_iterations): New function to estimate
526 mimimimum iterartions required for vector version of loop to be
527 profitable over scalar version.
528 (vect_model_reduction_cost): New function.
529 (vect_model_induction_cost): New function.
530 (vect_model_simple_cost): New function.
531 (vect_cost_strided_group_size): New function.
532 (vect_model_store_cost): New function.
533 (vect_model_load_cost): New function.
534 (vectorizable_reduction): Call vect_model_reduction_cost during
536 (vectorizable_induction): Call vect_model_induction_cost during
538 (vectorizable_load): Call vect_model_load_cost during analysis phase.
539 (vectorizable_store): Call vect_model_store_cost during analysis phase.
540 (vectorizable_call, vectorizable_assignment, vectorizable_operation,
541 vectorizable_promotion, vectorizable_demotion): Call
542 vect_model_simple_cost during analysis phase.
544 2007-06-08 Simon Baldwin <simonb@google.com>
546 * reg-stack.c (get_true_reg): Readability change. Moved default case
547 label into direct switch statement scope.
549 2007-06-08 Simon Baldwin <simonb@google.com>
551 * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
552 in gcc_assert() with '==' comparison.
554 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
556 * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
557 TARGET_ABM handling of x86_popcnt variable.
559 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
561 * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
562 __builtin_copysignq and __builtin_infq built-in functions.
564 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
566 * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
567 SSE4.2 section. Correct built-in function names in SSE4A section.
569 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
571 PR tree-optimization/32243
572 * tree-vect-transform.c (vectorizable_type_promotion): Move check
573 for ncopies after ratio check between nunits_out and nunits_in.
574 (vectorizable_type_demotion): Remove single-use variable "scalar_type".
576 2007-06-08 Dorit Nuzman <dorit@il.ibm.com>
578 PR tree-optimization/32224
579 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
580 vectorization upon a non GIMPLE_MODIFY_STMT.
582 2007-06-08 Christian Bruel <christian.bruel@st.com>
585 * config/sh/sh.md (doloop_end): New pattern and splitter.
586 * loop-iv.c (simple_rhs_p): Check for hardware registers.
588 2007-06-08 Zdenek Dvorak <dvorakz@suse.cz>
591 * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
593 (verify_dominators): Do not change dominance tree.
595 2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
597 * config/sh/constraints.md: New file.
598 * config/sh/sh.c: Include tm-constrs.h.
599 (reg_class_from_letter): Remove.
600 (prepare_cbranch_operands): Use satisfies_constraint_*
601 function instead of macro.
602 (andcosts, broken_move, sh_secondary_reload): Likewise.
603 * config/sh/predicates.md (trapping_target_operand): Likewise.
604 (and_operand, arith_operand, arith_reg_or_0_operand,
605 cmp_operand, logical_operand, target_operand,
606 ua_address_operand, ua_offset, xor_operand): Likewise.
607 * config/sh/sh.md: Include constraints.md.
608 (*movsicc_t_false): Use satisfies_constraint_* function
610 (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
611 lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
612 movdi_const_16bit+1, beq, bne, *ptb): Likewise.
613 * config/sh/sh.h (reg_class_from_letter): Remove prototype.
614 (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
615 (REG_CLASS_FROM_CONSTRAINT): Remove.
616 (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
617 CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
618 CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
619 CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
620 CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
621 (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
622 function instead of macro.
623 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
624 (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
625 EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
626 EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
627 (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
628 (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
629 (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
630 (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
631 (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
632 EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
633 EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
634 EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
635 EXTRA_CONSTRAINT_STR): Likewise.
636 (GO_IF_LEGITIMATE_INDEX): Fix indentation.
638 2007-06-07 Geoffrey Keating <geoffk@apple.com>
640 * config/i386/darwin.h (STACK_BOUNDARY): Define.
642 2007-06-07 Simon Martin <simartin@users.sourceforge.net>
645 * c-common.h (flag_cpp0x): Replaced by...
646 (cxx_dialect): ... this new variable specifying the C++ dialect that
648 * c-common.c (flag_cpp0x): Removed.
649 (cxx_dialect): Defined.
650 * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
652 * c-opts.c (c_common_post_options): Likewise.
653 (set_std_cxx98): Set cxx_dialect to cxx98.
654 (set_std_cxx0x): Set cxx_dialect to cxx0x.
656 2007-06-07 Geoffrey Keating <geoffk@apple.com>
657 Hui-May Chang <hm.chang@apple.com>
659 * doc/invoke.texi (Darwin Options): Update documentation for
660 -mmacosx-version-min.
661 * config.gcc (*-*-darwin*): Set extra_gcc_objs.
662 * config/darwin-driver.c: New file.
663 * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
664 * config/t-darwin (darwin-driver.o): New rule.
666 * config/darwin-c.c (version_as_macro): Ignore low digit.
668 2007-06-07 Uros Bizjak <ubizjak@gmail.com>
670 * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
671 (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
672 (CSGNMODE): New mode macro.
673 (CSGNVMODE): New mode attribute.
674 (copysign<mode>3): Rename from copysingsf3 and copysigndf3. Macroize
675 expander using CSGNMODE mode macro. Handle TFmode.
676 (copysign<mode>3_const): Rename from copysignsf3_const and
677 copysigndf3_const. Macroize pattern using CSGNMODE mode macro.
679 (copysign<mode>3_var): Rename from copysignsf3_var and
680 copysigndf3_var. Macroize pattern using CSGNMODE mode macro.
682 (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
683 mode macro. Handle TFmode.
684 * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
685 (iortf3, *iortf3): Ditto.
686 (xortf3, *xortf3): Ditto.
687 * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
688 TFmode and TImode masks.
689 (ix86_expand_copysign): Expand TFmode copysign insn.
690 (IX86_BUILTIN_INFQ): New.
691 (IX86_BUILTIN_FABSQ): Ditto.
692 (IX86_BUILTIN_COPYSIGNQ): Ditto.
693 (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
694 [__builtin_fabsq]: Ditto.
695 [__builtin_copysignq]: Ditto.
696 (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
697 [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
698 [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
699 ix86_expand_binop_builtin().
701 2007-06-07 Bob Wilson <bob.wilson@acm.org>
703 * config/xtensa/lib1funcs.asm: Clean up whitespace.
705 2007-06-07 Steve Ellcey <sje@cup.hp.com>
708 * rtl.h (push_to_sequence2): New.
709 * emit-rtl.c (push_to_sequence2): New.
710 * function.c (assign_parm_data_all): Add new fields.
711 (assign_parm_setup_block): Call push_to_sequence2 instead of
713 (assign_parm_setup_reg): Ditto.
714 (assign_parm_setup_stack): Ditto.
715 (assign_parms_unsplit_complex): Ditto.
716 (assign_parms): Change field name.
718 2007-06-07 Zdenek Dvorak <dvorakz@suse.cz>
720 PR tree-optimization/32220
721 * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
722 phi node is reached before defining statement.
724 2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
727 * tree-vect-transform.c (vectorizable_call): Call update_stmt
728 after changing the right hand side of the assignment.
730 2007-06-06 Eric Christopher <echristo@apple.com>
732 * config.gcc (i?86-*-darwin*): Remove arch parameter.
733 (x86_64-*-darwin*): Ditto.
734 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
735 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
737 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
739 * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
742 * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
743 * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
745 * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory macros.
746 (add_cost_one_coalesce): Likewise.
747 * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
748 variable names. Rename orig to orig_name for consistency.
749 * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the coding
751 (cprop_into_successor_phis): Avoid using C++ keywords as variable names.
752 (record_equivalences_from_stmt): Likewise.
753 * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
754 the coding conventions.
755 (memory_ssa_name_same): Likewise.
756 (dse_optimize_stmt): Likewise.
757 (dse_record_phis): Likewise.
758 (dse_finalize_block): Likewise.
759 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
760 keywords as variable names.
761 (may_move_till): Cast according to the coding conventions.
762 (force_move_till_expr): Avoid using C++ keywords as variable names.
763 (force_move_till): Cast according to the coding conventions.
764 (memref_hash): Likewise.
765 (memref_eq): Likewise.
766 (gather_mem_refs_stmt): Likewise.
767 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid using C++
768 keywords as variable names.
769 (idx_find_step): Cast according to the coding conventions.
770 (idx_record_use): Likewise.
771 (find_depends): Likewise.
772 (prepare_decl_rtl): Likewise.
773 (mbc_entry_hash): Likewise.
774 (mbc_entry_eq): Likewise.
775 * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
776 (simplify_replace_tree): Avoid using C++ keywords as variable names.
777 (idx_infer_loop_bounds): Cast according to the coding conventions.
778 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
779 * tree-ssa-math-opts.c (occ_new ): Likwise.
780 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
782 * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as variable
784 (add_use_op): Likewise.
786 (add_vuse_op): Likewise.
787 (add_vdef_op): Likewise.
788 (get_expr_operands): Likewise.
789 (push_stmt_changes): Use type safe memory macros.
790 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
791 keywords as variable names.
792 (conditional_replacement): Likewise.
793 (minmax_replacement): Likewise.
794 (abs_replacement): Likewise.
795 * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
797 (insert_fake_stores): Avoid using C++ keywords as variable names.
798 * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
800 * tree-ssa-structalias.c (heapvar_lookup): Likewise.
801 (heapvar_insert): Use type safe memory macros.
802 (new_var_info): Cast according to the coding conventions.
803 (new_constraint): Likewise.
804 (remove_preds_and_fake_succs): Use type safe memory macros.
805 * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
807 (thread_single_edge): Likewise.
808 (thread_through_loop_header): Likewise.
810 2007-06-06 Eric Christopher <echristo@apple.com>
812 * config/i386/i386.c (override_options): Move handling
813 of TARGET_SUBTARGET* earlier.
815 2007-06-06 Paolo Bonzini <bonzini@gnu.org>
817 * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
820 2007-06-06 Zdenek Dvorak <dvorakz@suse.cz>
822 * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
823 emited outside of basic block.
824 * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
826 * rtl.h (delete_insn_chain): Declaration changed.
827 * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
829 (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
830 (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
831 rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
832 to delete_insn_chain.
833 (rtl_verify_flow_info_1): Verify that the insns in header and footer
834 do not have bb field set.
835 (rtl_verify_flow_info): Verify that insns between basic blocks do not
837 * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
838 * cfgcleanup.c (try_optimize_cfg): Ditto.
840 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
842 * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
843 (lambda_body_vector_new): Use type safe memory macros.
844 (lambda_linear_expression_new): Likewise.
845 (lambda_loopnest_new): Likewise.
846 (lambda_lattice_new): Likewise.
847 (replace_uses_equiv_to_x_with_y): Cast according to the coding
848 conventions. Use type safe memory macros.
849 * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
850 (lambda_body_vector_s): Likewise.
851 * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
852 * lambda-trans.c (lambda_trans_matrix_new): Likewise.
854 2007-06-06 Richard Guenther <rguenther@suse.de>
856 * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
857 if we need to schedule cfg_cleanup.
858 (tree_ssa_forward_propagate_single_use_vars): Do so.
860 2007-06-06 Ian Lance Taylor <iant@google.com>
862 * fold-const.c (merge_ranges): If range_successor or
863 range_predecessor fail, just return 0.
865 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
867 PR tree-optimization/32216
868 * tree-vectorizer.c (supportable_widening_operation): Determine
869 signedness of FIX_TRUNC_EXPR from output operand.
870 (supportable_narrowing_operation): Ditto.
871 * tree-vect-generic.c (expand_vector_operations_1): Determine
872 signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
875 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
877 * config/i386/i386.c (enum pta_flags): Move out of struct scope...
878 (struct pta): ...from here. Change flags to unsigned to avoid
879 excessive casting (as it is used as a bit mask).
880 (override_options): Add casts according to the coding convenventions.
881 (x86_64_elf_unique_section): Likewise.
882 (examine_argument): Avoid using C++ keywords as variable names.
883 (construct_container): Likewise.
884 (legitimize_pic_address): Likewise.
885 (get_dllimport_decl): Cast according to the coding conventions. Use
886 type safe memory macros.
887 (legitimize_address): Cast according to the coding conventions.
888 (emit_i387_cw_initialization): Corrected the type of slot to enum
890 (ix86_init_machine_status): Use type safe memory macros.
891 (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
892 (bdesc_pcmpistr): Likewise.
893 (bdesc_crc32): Likewise.
894 (bdesc_sse_3arg): Likewise.
895 (bdesc_2arg): Likewise.
896 (bdesc_1arg): Likewise.
897 (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
898 (ix86_expand_sse_pcmpistr): Likewise.
899 (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
900 (ix86_builtin_vectorized_function): Change the type of fn to unsigned
901 int to match the langhook definition.
902 (ix86_builtin_conversion): Change the type of code to unsigned init to
903 match the langhook definition.
904 (ix86_preferred_reload_class): Avoid using C++ keywords as variable
906 (ix86_preferred_output_reload_class): Likewise.
907 (ix86_cannot_change_mode_class): Likewise.
908 (ix86_memory_move_cost): Likewise.
909 (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
910 avoid excessive casting later on.
911 (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
913 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
915 * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
916 as flags setting insn.
917 (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
919 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
921 * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
923 ("sse4_1_round<mode>2"): New insn pattern.
924 ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
926 ("floor<mode>2"): Rename from floordf2 and floorsf2. Macroize
927 expander using SSEMODEF mode macro. Expand using
928 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
929 ("ceil<mode>2"): Rename from ceildf2 and ceilsf2. Macroize
930 expander using SSEMODEF mode macro. Expand using
931 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
932 ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2. Macroize
933 expander using SSEMODEF mode macro. Expand using
934 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
935 * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
936 UNSPEC_ROUND instead of UNSPEC_ROUNDP.
937 ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
940 2007-06-06 Jan Sjodin <jan.sjodin@amd.com>
941 Sebastian Pop <sebpop@gmail.com>
943 * lambda.h (build_linear_expr): New.
944 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
945 Use build_linear_expr, call fold and force_gimple_operand.
946 (lambda_loopnest_to_gcc_loopnest): Check that there is
948 * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
950 2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
952 PR preprocessor/23479
953 * doc/extend.texi: Document the 0b-prefixed binary integer
956 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
958 PR tree-optimization/32215
959 * tree-vectorizer.c (supportable_widening_operation): Return false
960 for unsupported FIX_TRUNC_EXPR tree code.
961 (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
963 2007-06-06 Nathan Froyd <froydnj@codesourcery.com>
965 * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
966 register on SPE targets. Change documentation to reflect
968 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
969 Change FIXED_SCRATCH to 14 and document why we're keeping r14
970 out of the register allocation pool.
971 (rs6000_reg_live_or_pic_offset_p): New function.
972 (rs6000_emit_prologue): Move the actual saving of LR up to free
973 r0 for holding r11. Split saving of SPE 64-bit registers into
974 its own case. Ensure that offsets will always be in-range for
975 'evstdd' by using r11 as a scratch register to point at the start
976 of the SPE save area. Save r11 if necessary, as it is the static
978 (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
979 into its own case. Ensure that offsets will always be in-range
980 for 'evldd' by using r11 as a scratch register to point at the
981 start of the SPE save area. Also adjust r11 when restoring
982 the stack pointer to compensate for pre-loading r11.
984 2007-06-05 Thomas Neumann <tneumann@users.sourceforge.net>
986 * cfg.c (init_flow): Use type safe memory macros.
987 (alloc_block): Likewise.
988 (unchecked_make_edge): Likewise.
989 (dump_flow_info): Avoid using C++ keywords as variable names.
990 (copy_original_table_clear): Cast according to the coding conventions.
991 (copy_original_table_set): Likewise.
992 * cfgexpand (label_rtx_for_bb): Likewise.
993 (expand_gimple_basic_block): Likewise.
994 * cfghooks.c (dump_bb): Likewise.
995 (lv_adjust_loop_header_phi): Avoid using C++ keywords as
997 (lv_add_condition_to_bb): Likewise.
998 * cfglayout (relink_block_chain): Cast according to the coding
1000 (fixup_reorder_chain): Likewise.
1001 (fixup_fallthru_exit_predecessor): Likewise.
1002 * cfgloop.c (glb_enum_p): Likewise.
1003 (get_exit_description): Likewise.
1004 (dump_recorded_exit): Likewise.
1005 * cfgloop.h (enum loop_estimation): Move out of struct scope...
1006 (struct loop): ... from here.
1007 * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
1009 * cfgrtl.c (rtl_create_basic_block): Likewise.
1010 (rtl_split_block): Likewise.
1011 (rtl_dump_bb): Likewise.
1012 (cfg_layout_split_block): Likewise.
1013 (init_rtl_bb_info): Use typesafe memory macros.
1015 * graphds.h (struct graph_edge): Renamed edge to graph_edge.
1016 * graphds.h: Updated all usages of edge to graph_edge.
1017 * graphds.c: Likewise.
1018 * cfgloopanal.c: Likewise.
1020 2007-06-05 Ian Lance Taylor <iant@google.com>
1022 * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
1023 PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
1024 (extract_range_from_assert): Set TREE_NO_WARNING when creating an
1026 (test_for_singularity): Likewise.
1028 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
1030 * config/i386/constraints.md ("Y2"): Replaced by ...
1032 * config/i386/i386.md: Likewise.
1033 * config/i386/mmx.md: Likewise.
1034 * config/i386/sse.md: Likewise.
1036 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
1038 * config/i386/constraints.md ("z"): Replaced by ...
1040 * config/i386/sse.md (sse4_1_blendvpd): Likewise.
1041 (sse4_1_blendvps): Likewise.
1042 (sse4_1_pblendvb): Likewise.
1043 (sse4_2_pcmpestr): Likewise.
1044 (sse4_2_pcmpestrm): Likewise.
1045 (sse4_2_pcmpestr_cconly): Likewise.
1046 (sse4_2_pcmpistr): Likewise.
1047 (sse4_2_pcmpistrm): Likewise.
1048 (sse4_2_pcmpistr_cconly): Likewise.
1050 2007-06-05 Razya Ladelsky <razya@il.ibm.com>
1052 * matrix-reorg.c (transform_access_sites): Fix computation.
1053 (transform_allocation_sites): Same.
1055 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
1057 * config/i386/i386.c (override_options): Use
1058 TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
1060 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
1062 * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
1063 (nonimm_not_xmm0_operand): Ditto.
1064 * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
1065 as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand"
1066 as operand[2] predicate. Require "z" class XMM register for
1067 operand[3]. Adjust asm template.
1068 ("sse4_1_blendvpd"): Ditto.
1069 ("sse4_1_pblendvb"): Ditto.
1070 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
1071 force op2 into xmm0 register for variable blend instructions.
1073 2007-06-04 Tom Tromey <tromey@redhat.com>
1075 * c-tree.h (start_enum): Update.
1076 (build_enumerator): Likewise.
1077 * c-decl.c (enum_next_value): Removed.
1078 (enum_overflow): Likewise.
1079 (start_enum): Add c_enum_contents argument. Don't use globals.
1080 (build_enumerator): Likewise.
1081 * c-tree.h (struct c_enum_contents): New struct.
1083 2007-06-04 Tom Tromey <tromey@redhat.com>
1085 * c-common.c (c_common_get_alias_set): Fix indentation.
1087 2007-06-04 Ian Lance Taylor <iant@google.com>
1089 * tree-vrp.c (adjust_range_with_scev): When loop is not expected
1090 to overflow, reduce overflow infinity to regular infinity.
1091 (vrp_var_may_overflow): New static function.
1092 (vrp_visit_phi_node): Check vrp_var_may_overflow.
1094 2007-06-04 Kazu Hirata <kazu@codesourcery.com>
1096 * stor-layout.c (layout_type): Remove duplicate code.
1098 2007-06-04 Uros Bizjak <ubizjak@gmail.com>
1101 * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
1102 before build_common_builtin_nodes ().
1104 2007-06-04 Steve Ellcey <sje@cup.hp.com>
1107 * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
1109 2007-06-04 Jan Hubicka <jh@suse.cz>
1111 * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
1112 reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
1113 instead of _stat version.
1115 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
1117 PR tree-optimization/32194
1118 * tree-predcom.c (determine_offset): Check that both references have
1121 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
1123 * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
1124 Change dom_bbs to vector. Add argument to iterate_fix_dominators call.
1125 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
1126 * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
1127 Add argument to iterate_fix_dominators call.
1128 (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
1129 * gcse.c (hoist_code): Change domby to vector.
1130 * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
1131 Add argument to iterate_fix_dominators call.
1132 * loop-doloop.c (doloop_modify): Changed recount_dominator to
1133 recompute_dominator.
1134 * lambda-code.c (perfect_nestify): Ditto.
1135 * cfgloopanal.c: Include graphds.h.
1136 (struct edge, struct vertex, struct graph, dump_graph, new_graph,
1137 add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
1138 (mark_irreducible_loops): Use graphds_scc. Remove argument from
1140 * graphds.c: New file.
1141 * graphds.h: New file.
1142 * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
1143 (get_dominated_by, get_dominated_by_region): Change return type to
1145 (verify_dominators): Recompute all dominators and compare the results.
1146 (recount_dominator): Renamed to ...
1147 (recompute_dominator): ... this. Do not check that the block is
1149 (iterate_fix_dominators): Reimplemented.
1150 (prune_bbs_to_update_dominators, root_of_dom_tree,
1151 determine_dominators_for_sons): New functions.
1152 * et-forest.c (et_root): New function.
1153 * et-forest.h (et_root): Declare.
1154 * Makefile.in (graphds.o): Add.
1155 (cfgloopanal.o): Add graphds.h dependency.
1156 (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
1157 * basic-block.h (get_dominated_by, get_dominated_by_region,
1158 iterate_fix_dominators): Declaration changed.
1159 (recount_dominator): Renamed to ...
1160 (recompute_dominator): ... this.
1161 * tree-ssa-threadupdate.c (thread_block): Free dominance info.
1162 (thread_through_all_blocks): Do not free dominance info.
1164 2007-06-03 Andreas Schwab <schwab@suse.de>
1166 * config/m68k/m68k.c (override_options): Don't override
1168 * config/m68k/m68k-modes.def (SF, DF): Define to use
1169 motorola_single_format and motorola_double_format, resp.
1170 * real.c (motorola_single_format): Renamed from
1171 coldfire_single_format.
1172 (motorola_double_format): Renamed from coldfire_double_format.
1173 (encode_ieee_extended): Generate a proper canonical NaN image
1174 respecting canonical_nan_lsbs_set.
1175 (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
1177 * real.h: Adjust declarations.
1179 2007-06-03 Kaz Kojima <kkojima@gcc.gnu.org>
1182 * config/sh/sh.md (symGOT_load): Don't schedule insns when
1183 the symbol is generated with the stack protector.
1185 2007-06-03 Kazu Hirata <kazu@codesourcery.com>
1187 * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
1188 (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
1190 * doc/extend.texi (interrupt): Mention m68k.
1192 2007-06-02 Uros Bizjak <ubizjak@gmail.com>
1194 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
1195 safe_vector_operand() if input operand is VECTOR_MODE_P operand.
1196 (ix86_expand_sse_pcmpestr): Do not check operands for
1197 "register_operand", when insn operand predicate is "register_operand".
1198 (ix86_expand_sse_pcmpistr): Ditto.
1200 2007-06-02 H.J. Lu <hongjiu.lu@intel.com>
1201 Uros Bizjak <ubizjak@gmail.com>
1203 * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
1204 (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
1205 (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
1206 (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
1207 * config/i386/constraints.md ("z"): New register constraint
1208 for members of SSE_FIRST_REG class.
1209 * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
1210 * config/i386/i386.c (regclass_map): Change class of %xmm0 to
1211 SSE_FIRST_REG class.
1212 (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
1213 (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
1214 (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
1215 (IX86_BUILTIN_PCMPESTRM128): Likewise.
1216 (IX86_BUILTIN_PCMPESTRA128): Likewise.
1217 (IX86_BUILTIN_PCMPESTRC128): Likewise.
1218 (IX86_BUILTIN_PCMPESTRO128): Likewise.
1219 (IX86_BUILTIN_PCMPESTRS128): Likewise.
1220 (IX86_BUILTIN_PCMPESTRZ128): Likewise.
1221 (IX86_BUILTIN_PCMPISTRI128): Likewise.
1222 (IX86_BUILTIN_PCMPISTRM128): Likewise.
1223 (IX86_BUILTIN_PCMPISTRA128): Likewise.
1224 (IX86_BUILTIN_PCMPISTRC128): Likewise.
1225 (IX86_BUILTIN_PCMPISTRO128): Likewise.
1226 (IX86_BUILTIN_PCMPISTRS128): Likewise.
1227 (IX86_BUILTIN_PCMPISTRZ128): Likewise.
1228 (struct builtin_description): Change "flag" field to unsigned.
1229 (bdesc_pcmpestr): New builtin description table.
1230 (bdesc_pcmpistr): Likewise.
1231 (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
1232 v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
1233 Initialize pcmp[ei]str[im] insns for SSE4.2.
1234 (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
1235 (ix86_expand_sse_pcmpistr): Likewise.
1236 (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
1237 * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
1238 (UNSPEC_PCMPISTR): Likewise.
1239 * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
1240 (sse4_2_pcmpestri):New isns pattern.
1241 (sse4_2_pcmpestrm): Likewise.
1242 (sse4_2_pcmpestr_cconly): Likewise.
1243 (sse4_2_pcmpistr): New insn patern and splitter.
1244 (sse4_2_pcmpistri):New isns pattern.
1245 (sse4_2_pcmpistrm): Likewise.
1246 (sse4_2_pcmpistr_cconly): Likewise.
1247 * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
1250 2007-06-01 David Daney <ddaney@avtrex.com>
1252 * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
1253 LOADGP_ABSOLUTE and not binds_local_p.
1255 2007-06-01 Geoffrey Keating <geoffk@apple.com>
1257 * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
1259 2007-06-01 Ian Lance Taylor <iant@google.com>
1261 * tree-vrp.c (compare_name_with_value): Always set
1262 used_strict_overflow if we get a result from the variable itself.
1264 2007-06-01 Ian Lance Taylor <iant@google.com>
1266 PR rtl-optimization/31455
1267 * lower-subreg.c (find_decomposable_subregs): Don't decompose
1268 subregs which have a cast between modes which are not tieable.
1270 2007-06-01 Uros Bizjak <ubizjak@gmail.com>
1272 * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
1273 breaks after return statements.
1275 2007-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
1277 * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
1278 only after no_new_pseudos.
1280 2007-05-31 Eric Christopher <echristo@apple.com>
1282 * expr.c (convert_move): Assert that we don't have a BLKmode
1284 (store_expr): Handle BLKmode moves by calling emit_block_move.
1286 2007-05-31 Daniel Berlin <dberlin@dberlin.org>
1288 * c-typeck.c (build_indirect_ref): Include type in error message.
1289 (build_binary_op): Pass types to binary_op_error.
1290 * c-common.c (binary_op_error): Take two type arguments, print out
1292 * c-common.h (binary_op_error): Update prototype.
1294 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
1296 * config/i386/i386.c: Correct coments on -mno-sse4.
1298 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
1300 * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
1301 (x86_64-*-*): Likewise.
1302 * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
1303 (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
1304 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
1305 (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
1306 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
1307 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
1308 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
1309 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
1310 (OPTION_MASK_ISA_SSE4): Likewise.
1311 (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
1312 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
1313 (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2.
1314 (override_options): Support SSE4.2.
1315 (ix86_build_const_vector): Support SImode and DImode.
1316 (ix86_build_signbit_mask): Likewise.
1317 (ix86_expand_int_vcond): Support V2DImode.
1318 (IX86_BUILTIN_CRC32QI): New for SSE4.2.
1319 (IX86_BUILTIN_CRC32HI): Likewise.
1320 (IX86_BUILTIN_CRC32SI): Likewise.
1321 (IX86_BUILTIN_CRC32DI): Likewise.
1322 (IX86_BUILTIN_PCMPGTQ): Likewise.
1323 (bdesc_crc32): Likewise.
1324 (bdesc_sse_3arg): Likewise.
1325 (ix86_expand_crc32): Likewise.
1326 (ix86_init_mmx_sse_builtins): Support SSE4.2.
1327 (ix86_expand_builtin): Likewise.
1328 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
1329 __SSE4_2__ for -msse4.2.
1330 * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
1331 (CRC32MODE): Likewise.
1332 (crc32modesuffix): Likewise.
1333 (crc32modeconstraint): Likewise.
1334 (sse4_2_crc32<mode>): Likewise.
1335 (sse4_2_crc32di): Likewise.
1336 * config/i386/i386.opt (msse4.2): New for SSE4.2.
1338 * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
1339 * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
1340 * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
1341 (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
1342 (vcondu<mode>): Likewise.
1343 * doc/extend.texi: Document SSE4.2 built-in functions.
1344 * doc/invoke.texi: Document -msse4.2/-msse4.
1346 2007-05-31 Zdenek Dvorak <dvorakz@suse.cz>
1348 PR tree-optimization/32160
1349 * tree-predcom.c (predcom_tmp_var): New function. Mark created
1350 variable as gimple reg.
1351 (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
1353 2007-05-31 Kazu Hirata <kazu@codesourcery.com>
1355 * gcc.c (main): Don't consider linker options when issuing the
1356 warning about a linker input file not being used.
1358 2007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1360 * tree-vrp.c (compare_names): Initialize sop.
1362 2007-05-30 Dirk Mueller <dmueller@suse.de>
1364 * cgraphunit.c (cgraph_analyze_function): Remove
1365 computation of inline parameters.
1367 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
1369 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
1371 2007-05-30 Richard Sandiford <richard@codesourcery.com>
1373 * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
1374 Add vx-common.h. Include vxworks.h between vx-common.h and
1376 * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
1378 * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
1379 (TARGET_ASM_DESTRUCTOR): Likewise.
1380 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
1381 instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS.
1382 (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
1383 (CC1_SPEC): Add -tstrongarm. Line up backslashes.
1384 (VXWORKS_ENDIAN_SPEC): Define.
1385 (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
1386 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
1387 VXWORKS_* equivalents.
1388 (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
1389 (ASM_FILE_START): Delete.
1390 (TARGET_VERSION): Reformat.
1391 (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
1392 (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
1393 * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
1394 (FPBIT, DPBIT): Define.
1395 (fp-bit.c, dp-bit.c): New rules.
1396 (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
1397 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
1398 * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
1399 * config/arm/arm.h: Include vxworks-dummy.h.
1400 * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
1401 Mark with ATTRIBUTE_UNUSED.
1402 (arm_override_options): Do not allow VxWorks RTP PIC to be used
1403 for Thumb. Force r9 to be the PIC register for VxWorks RTPs and
1404 make it incompatible with -msingle-pic-base.
1405 (arm_function_ok_for_sibcall): Return false for calls that might
1406 go through a VxWorks PIC PLT entry.
1407 (require_pic_register): New function, split out from...
1408 (legitimize_pic_address): ...here. Do not use GOTOFF accesses
1410 (arm_load_pic_register): Handle the VxWorks RTP initialization
1411 sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg.
1412 (arm_emit_call_insn): New function.
1413 (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
1414 * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
1415 (pic_offset_arm): New pattern.
1416 (call, call_value): Use arm_emit_call_insn.
1417 (call_internal, call_value_internal): New expanders.
1418 * config/arm/lib1funcs.asm (__PLT__): Define to empty for
1419 VxWorks unless __PIC__.
1421 2007-05-30 Eric Christopher <echristo@gmail.com>
1423 * genrecog.c: Include regs.h in generated file.
1424 * genemit.c: Ditto. Fix up formatting.
1425 * config/mn10300/constraints.md: New.
1426 * config/mn10300/mn10300.md: Include.
1427 * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
1428 Fix up for removed macro.
1429 * config/mn10300/predicates.md (call_address_operand): Ditto.
1430 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
1431 (CONST_OK_FOR_I): Ditto.
1432 (CONST_OK_FOR_J): Ditto.
1433 (CONST_OK_FOR_K): Ditto.
1434 (CONST_OK_FOR_L): Ditto.
1435 (CONST_OK_FOR_M): Ditto.
1436 (CONST_OK_FOR_N): Ditto.
1437 (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
1441 (EXTRA_CONSTRAINT): Ditto.
1443 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
1445 * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
1447 * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
1448 OPTION_MASK_ISA_64BIT.
1449 * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
1451 2007-05-30 Richard Guenther <rguenther@suse.de>
1454 * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
1455 types for comparison.
1456 * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
1457 with original typed arguments.
1458 * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
1460 2007-05-30 Jakub Jelinek <jakub@redhat.com>
1462 PR tree-optimization/31769
1463 * except.c (duplicate_eh_regions): Clear prev_try if
1464 ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
1466 2007-05-30 Zdenek Dvorak <dvorakz@suse.cz>
1468 * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
1469 * tree-ssa-sink.c (statement_sink_location): Return basic block and
1470 bsi of the location where statements should be inserted.
1471 (sink_code_in_bb): Take bsi from statement_sink_location.
1472 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
1473 instead of bsi_start.
1474 * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
1476 * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
1477 (bsi_move_before): Document inconsistency with bsi_move_after.
1478 (tree_redirect_edge_and_branch): Do not create labels if not necessary.
1480 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
1482 * config/i386/i386.h (TARGET_ABM): New define.
1483 (TARGET_POPCNT): Ditto.
1484 (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
1485 New temporary defines to redefine from OPTION_ISA_* defines.
1486 (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
1487 New temporary defines to redefine from OPTION_MASK_ISA_* defines.
1488 (ix86_isa_flags): New extern int declaration.
1489 (TARGET_SUBTARGET_DEFAULT): New define.
1490 (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
1491 (TARGET_SUBTARGET32_DEFAULT): Ditto.
1492 (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
1493 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
1494 * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
1495 * config/i386/darwin.h: Change TARGET_64BIT define to
1498 * config/i386/i386.opt (m3dnowa): Define as undocumented option
1499 using existing "ix86_isa_flags" varible.
1500 (m32, m64): Use existing "ix86_isa_flags" variable.
1501 (mmmx, m3dnow): Ditto.
1502 (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
1503 (mabm): Define as non-negative option using "x86_abm" variable.
1504 (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
1506 * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
1507 Rewrite feature test bitmap.
1508 (ix86_isa_flags): New initialized global int varible.
1509 (ix86_isa_flags_explicit): New static int variable.
1510 (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
1511 msse, msse2, msse3, msse4.1 and msse4a option is processed. Change
1512 i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
1513 target_flags_explicit.
1514 (override_options): Remove "target_enable" and "target_disable" fields
1515 from "struct ptt". Update processor_target_table accordingly. Remove
1516 PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
1517 defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of
1518 "target_flags" and "ix86_isa_flags_explicit" instead of
1519 "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
1520 MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when
1521 PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt"
1522 to true when either of PTA_POPCNT or PTA_ABM is set in
1523 processor_alias_table flags entry. Set "x86_prefetch_sse" to true
1524 when either of PTA_PREFETCH_SSE or PTA_SSE is set in
1525 processor_alias_table flags entry. Remove handling of
1526 "target_enable" and "target_disable" fields of processor_target_table.
1527 Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
1528 targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
1529 Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
1530 targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
1531 (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
1533 (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
1535 2007-05-29 David Daney <ddaney@avtrex.com>
1538 * config/mips/mips.c (mips_output_mi_thunk): Emit
1539 NOTE_INSN_PROLOGUE_END at beginning of the thunk.
1541 2007-05-29 Hui-May Chang <hm.chang@apple.com>
1542 * config/i386/i386.c (ix86_function_regparm): Added checking of
1543 ix86_force_align_arg_pointer to determine the number of
1544 register parameters.
1546 2007-05-29 Zdenek Dvorak <dvorakz@suse.cz>
1548 * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
1549 (SET_DR_MISALIGNMENT): New.
1550 * tree-vect-analyze.c (vect_compute_data_ref_alignment,
1551 vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
1552 Use SET_DR_MISALIGNMENT.
1553 * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
1555 * tree-data-ref.c (create_data_ref, compute_all_dependences,
1556 find_loop_nest): Export.
1557 * tree-data-ref.h (struct data_reference): Change aux field to pointer.
1558 (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
1559 * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
1560 (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
1562 (struct mem_ref): Add field reuse_distance.
1563 (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
1564 Initialize reuse_distance field.
1565 (issue_prefetch_ref): Select temporality of prefetch according to
1567 (volume_of_references, volume_of_dist_vector, add_subscript_strides,
1568 self_reuse_distance, determine_loop_nest_reuse): New functions.
1569 (loop_prefetch_arrays): Call determine_loop_nest_reuse.
1570 (tree_ssa_prefetch_arrays): Dump L2 cache size.
1571 * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
1574 2007-05-29 Daniel Berlin <dberlin@dberlin.org>
1576 * tree-ssa-alias.c: Add aliasing overview.
1578 2007-05-29 Zuxy Meng <zuxy.meng@gmail.com>
1579 Danny Smith <dannysmith@users.sourceforge.net>
1582 * config/i386/t-crtfm: Compile crtfastmath.o with
1583 -minline-all-stringops.
1584 * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
1585 * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
1587 2007-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1589 * doc/md.texi: Document constraints on HP PA-RISC.
1591 * pa/constraints.md: New file.
1592 * pa.md: Include constraints.md.
1593 * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
1594 (integer_store_memory_operand, ldil_cint_p): New functions.
1595 * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
1596 * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1597 IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
1598 * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
1599 * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
1601 2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
1604 * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
1605 case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
1606 case POSTDECREMENT_EXPR>): Return the error_mark_node
1607 if either the real or imaginary parts would an
1610 2007-05-28 Daniel Berlin <dberlin@dberlin.org>
1612 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
1613 name when we remove it from a call.
1615 2007-05-28 Kazu Hirata <kazu@codesourcery.com>
1617 * targhooks.c (default_narrow_bitfield): Remove.
1618 * targhooks.h: Remove the prototype for
1619 default_narrow_bitfield.
1621 * langhooks-def.h: Remove the prototype for
1622 hook_get_alias_set_0.
1623 * langhooks.c (hook_get_alias_set_0): Remove.
1625 * global.c (EXECUTE_IF_CONFLICT): Remove.
1627 2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1630 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
1631 return true when truth_value_p is true and the type
1634 2007-05-28 Gerald Pfeifer <gerald@pfeifer.com>
1636 * doc/install.texi (Prerequisites): We no longer require Autoconf
1637 2.13 for the top-level.
1639 2007-05-28 Uros Bizjak <ubizjak@gmail.com>
1641 * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
1642 memory access via x86_expand_vector_move_misalign() only for
1643 TImode values on 32-bit targets.
1645 2007-05-28 Razya Ladelsky <razya@il.ibm.com>
1647 * matrix-reorg.c: New file. Implement matrix flattening and
1648 transposing optimization.
1649 * tree-pass.h: Add matrix reorg pass.
1650 * common.opt: Add fipa-mreorg flag.
1651 * Makefile.in: Add matrix-reorg.c.
1652 * passes.c: Add matrix reorg pass.
1653 * varpool.c (add_new_static_var): New function.
1654 * cgraph.h (add_new_static_var): Declare.
1656 2007-05-27 Eric Christopher <echristo@apple.com>
1658 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
1659 sp_offset depending on stack size. Save r12 depending
1660 on registers we're saving later.
1661 (rs6000_emit_epilogue): Update sp_offset depending only
1664 2007-05-27 Zdenek Dvorak <dvorakz@suse.cz>
1666 * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
1667 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
1668 * ifcvt.c (if_convert): Ditto.
1669 * tree-ssa-threadupdate.c (thread_block): Ditto.
1670 (thread_through_all_blocks): Ditto. Assert that loops were analysed.
1671 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
1672 verify_loop_closed_ssa): Check number_of_loops instead of
1674 * predict.c (tree_estimate_probability): Ditto.
1675 * tree-if-conv.c (main_tree_if_conversion): Ditto.
1676 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
1677 * modulo-sched.c (sms_schedule): Ditto.
1678 * tree-scalar-evolution.c (scev_const_prop): Ditto.
1679 (scev_finalize): Do not do anything if scev analysis was not
1681 * cfgloopanal.c (mark_irreducible_loops): Do not check whether
1682 current_loops == NULL.
1683 (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
1684 * loop-init.c (loop_optimizer_init): Do not free current_loops when
1686 (loop_optimizer_finalize): Assert that loops were analyzed.
1687 (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
1688 rtl_doloop): Check number_of_loops instead of current_loops.
1689 * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
1690 current_loops == NULL.
1691 (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
1692 gate_tree_vectorize tree_linear_transform, check_data_deps,
1693 tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
1694 tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
1695 Check number_of_loops instead of current_loops.
1696 (tree_ssa_loop_done): Do not check whether current_loops == NULL.
1697 * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always
1698 free loops if available.
1699 (execute_pre): Do not pass do_fre to fini_pre.
1701 2007-05-27 Tobias Burnus <burnus@net-b.de>
1704 * real.c (mpfr_from_real): Fix sign of -Inf.
1706 2007-05-27 H.J. Lu <hongjiu.lu@intel.com>
1708 * tree-vect-transform.c (vectorizable_conversion): Initialize
1709 tree_code variables to ERROR_MARK.
1710 (vectorizable_type_demotion): Likewise.
1711 (vectorizable_type_promotion): Likewise.
1713 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
1716 * config/i386/i386.md (movti): Handle push operands via
1719 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
1721 * basic-block.h: Remove the prototype for merge_seq_blocks.
1722 * cfgcleanup.c (merge_seq_blocks): Remove.
1724 * tree-flow.h: Remove the prototype for is_aliased_with.
1725 * tree-ssa-alias.c (is_aliased_with): Remove.
1727 2007-05-26 H.J. Lu <hongjiu.lu@intel.com>
1729 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
1731 * config/i386/i386.c (ix86_expand_sse4_unpack): New.
1733 * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
1734 ix86_expand_sse4_unpack if SSE4.1 is enabled.
1735 (vec_unpacks_hi_v16qi): Likewise.
1736 (vec_unpacku_lo_v16qi): Likewise.
1737 (vec_unpacks_lo_v16qi): Likewise.
1738 (vec_unpacku_hi_v8hi): Likewise.
1739 (vec_unpacks_hi_v8hi): Likewise.
1740 (vec_unpacku_lo_v8hi): Likewise.
1741 (vec_unpacks_lo_v8hi): Likewise.
1742 (vec_unpacku_hi_v4si): Likewise.
1743 (vec_unpacks_hi_v4si): Likewise.
1744 (vec_unpacku_lo_v4si): Likewise.
1745 (vec_unpacks_lo_v4si): Likewise.
1747 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
1749 * c-typeck.c, config/arm/arm.c, config/darwin.c,
1750 config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
1751 omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
1752 follow spelling conventions in various
1753 warning/error/diagnostic messages.
1755 * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
1756 df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
1757 fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
1758 tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
1759 tree-vrp.c: Fix comment typos. Follow spelling conventions.
1760 * doc/tm.texi: Follow spelling conventions.
1762 2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
1765 * tree-ssa-forwprop.c
1766 (forward_propagate_addr_into_variable_array_index): Remove
1767 the lhs argument. Use the type of def_rhs instead of lhs.
1768 (forward_propagate_addr_expr_1): Update use of
1769 forward_propagate_addr_into_variable_array_index.
1771 2007-05-25 Sandra Loosemore <sandra@codesourcery.com>
1772 Nigel Stephens <nigel@mips.com>
1774 * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
1775 function attributes, "far" being an alias for "long_call".
1776 (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
1777 (mips_near_type_p, mips_far_type_p): New.
1778 (mips_comp_type_attributes): New function to check that attributes
1779 attached to a function type are compatible.
1780 (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
1781 TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
1782 to the target function of the thunk.
1783 (mips_encode_section_info): Check for "near" and "far" function
1784 attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
1786 * config/mips/predicates.md (const_call_insn_operand): Test only
1787 SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
1789 * doc/extend.texi (Function Attributes): Document MIPS "near" and
1792 * testsuite/gcc.target/mips/near-far-1.c: New test case.
1793 * testsuite/gcc.target/mips/near-far-2.c: New test case.
1794 * testsuite/gcc.target/mips/near-far-3.c: New test case.
1795 * testsuite/gcc.target/mips/near-far-4.c: New test case.
1797 2007-05-25 Eric Christopher <echristo@apple.com>
1799 * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
1800 to x86-darwin configurations.
1801 * config/i386/t-darwin: Add softfp support.
1802 * config/i386/t-darwin64: Ditto.
1803 * config/i386/sfp-machine.h: If mach then don't use
1804 aliasing, emit a stub to call.
1806 2007-05-25 Kazu Hirata <kazu@codesourcery.com>
1808 * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
1809 haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
1810 tree-predcom.c, tree-ssa-alias-warnings.c,
1811 tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
1812 comment typos. Follow spelling conventions.
1813 * doc/cpp.texi, doc/invoke.texi: Fix typos.
1815 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
1818 * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
1819 constants into memory. Expand unaligned memory references for
1820 SSE modes via x86_expand_vector_move_misalign() function.
1822 2007-05-25 Uros Bizjak <ubizjak@gmail.com>
1824 * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
1825 "memory" attribute for "sseishft" type insn without operands[2].
1827 2007-05-25 Dirk Mueller <dmueller@suse.de>
1828 Marcus Meissner <meissner@suse.de>
1830 * doc/extend.texi (alloc_size): New attribute.
1831 * c-common.c (handle_alloc_size_attribute): New.
1832 * tree-object-size.c (alloc_object_size): Use alloc_size
1833 attribute, if available.
1835 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
1837 * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
1839 (__builtin_ia32_vec_ext_v2di): Likewise.
1840 (__builtin_ia32_vec_ext_v4si): Likewise.
1841 (__builtin_ia32_vec_ext_v8hi): Likewise.
1842 (__builtin_ia32_vec_ext_v16qi): Likewise.
1843 (__builtin_ia32_vec_set_v8hi): Likewise.
1845 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
1847 * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
1849 2007-05-25 Richard Sandiford <richard@codesourcery.com>
1851 * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
1852 (arm_is_longcall_p): Rename to...
1853 (arm_is_long_call_p): ...this. Take a single tree argument and
1855 * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
1856 (CUMULATIVE_ARGS): Remove call_cookie.
1857 (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
1858 (ENCODED_LONG_CALL_ATTR_P): Delete.
1859 (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
1860 LONG_CALL_FLAG_CHAR cases.
1861 (ARM_DECLARE_FUNCTION_SIZE): Delete.
1862 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
1863 ARM_DECLARE_FUNCTION_SIZE.
1864 * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
1865 (arm_function_arg): Return const0_rtx for VOIDmode arguments.
1866 (arm_encode_call_attribute, current_file_function_operand): Delete.
1867 (arm_function_in_section_p): New function.
1868 (arm_is_longcall_p): Rename to...
1869 (arm_is_long_call_p): ...this. Take the target function as a single
1870 argument and return a bool. Do not rely on call cookies. Check
1871 whether the target symbol is in the same section as the current
1872 function, not just the same compilation unit.
1873 (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
1874 (arm_encode_section_info): Don't encode a call type.
1875 * config/arm/arm.md (call, call_value): Update calls to
1876 arm_is_long(_)call_p. Simplify logic.
1877 (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
1878 Update calls to arm_is_long(_)call_p.
1880 2007-05-25 Richard Guenther <rguenther@suse.de>
1882 PR tree-optimization/31982
1883 * tree-ssa-forwprop.c
1884 (forward_propagate_addr_into_variable_array_index): Handle arrays
1885 with element size one.
1887 2007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
1889 * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
1890 (umulsi3_highpart): Likewise.
1892 2007-05-24 Ian Lance Taylor <iant@google.com>
1894 PR rtl-optimization/32069
1895 * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
1898 2007-05-24 Ollie Wild <aaw@google.com>
1900 * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
1903 2007-05-24 Richard Sandiford <rsandifo@nildram.co.uk>
1905 * postreload-gcse.c (reg_changed_after_insn_p): New function.
1906 (oprs_unchanged_p): Use it to check all registers in a REG.
1907 (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
1908 (reg_set_between_after_reload_p): Delete.
1909 (reg_used_between_after_reload_p): Likewise.
1910 (reg_set_or_used_since_bb_start): Likewise.
1911 (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
1912 and reg_used_between_p instead of reg_set_or_used_since_bb_start.
1913 Use reg_set_between_p instead of reg_set_between_after_reload_p.
1914 * rtlanal.c (reg_set_p): Check whether REG overlaps
1915 regs_invalidated_by_call, rather than just checking the
1916 membership of REGNO (REG).
1918 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
1920 * doc/passes.texi: Document predictive commoning.
1921 * doc/invoke.texi (-fpredictive-commoning): Document.
1922 * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
1923 * tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow
1924 adding indices to the generated name.
1925 (schedule_sm): Pass 0 to get_lsm_tmp_name.
1926 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
1927 * tree-pretty-print.c (op_symbol_1): Renamed to ...
1928 (op_symbol_code): ... and exported.
1929 (dump_omp_clause, op_symbol): Use op_symbol_code
1930 instead of op_symbol_1.
1931 * tree-pass.h (pass_predcom): Declare.
1932 * timevar.def (TV_PREDCOM): New timevar.
1933 * tree-ssa-loop.c (run_tree_predictive_commoning,
1934 gate_tree_predictive_commoning, pass_predcom): New.
1935 * tree-data-ref.c (find_data_references_in_loop): Find the
1936 references in dominance order.
1937 (canonicalize_base_object_address): Ensure that the result has
1939 (dr_analyze_innermost): Export.
1940 (create_data_ref): Code to fail for references with invariant
1942 (find_data_references_in_stmt): ... here.
1943 * tree-data-ref.h (dr_analyze_innermost): Declare.
1944 * tree-affine.c: Include tree-gimple.h and hashtab.h.
1945 (aff_combination_find_elt, name_expansion_hash,
1946 name_expansion_eq, tree_to_aff_combination_expand,
1947 double_int_constant_multiple_p, aff_combination_constant_multiple_p):
1949 * tree-affine.h (aff_combination_constant_multiple_p,
1950 tree_to_aff_combination_expand): Declare.
1951 * tree-predcom.c: New file.
1952 * common.opt (fpredictive-commoning): New option.
1953 * tree-flow.h (op_symbol_code, tree_predictive_commoning,
1954 stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
1955 * Makefile.in (tree-predcom.o): Add.
1956 (tree-affine.o): Add TREE_GIMPLE_H dependency.
1957 * passes.c (init_optimization_passes): Add dceloop after
1958 copy propagation in loop optimizer. Add predictive commoning
1959 to loop optimizer passes.
1961 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
1963 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
1966 2007-05-24 Jan Hubicka <jh@suse.cz>
1968 * gengenrtl.c (gendecl, gendef): Output the gens annotated for
1970 (genheader): Include statistics.h.
1972 * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
1974 * print-rtl.c (flag_dump_unnumbered): Update comments.
1975 (print_rtl): Fix my previous change.
1976 * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
1979 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
1982 * tree-ssa-threadupdate.c (thread_through_loop_header): Use
1984 (thread_through_all_blocks): Call initialize_original_copy_tables
1985 and free_original_copy_tables.
1986 * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
1988 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
1989 * cfghooks.c (duplicate_block): Use get_loop_copy.
1990 * cfg.c: Include cfgloop.h.
1991 (loop_copy): New hash table.
1992 (initialize_original_copy_tables): Initialize loop_copy table.
1993 (free_original_copy_tables): Free loop_copy table.
1994 (copy_original_table_clear, copy_original_table_set,
1995 set_loop_copy, get_loop_copy): New functions.
1996 (set_bb_original, set_bb_copy): Use copy_original_table_set.
1997 * cfgloop.h (struct loop): Remove copy field.
1998 * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
1999 * basic-block.h (set_loop_copy, get_loop_copy): Declare.
2001 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
2003 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
2004 -msse/-msse2/-msse3.
2006 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
2008 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
2009 __builtin_ia32_vec_set_v2di with MASK_64BIT.
2011 2007-05-24 Danny Smith <dannysmith@users.sourceforge.net>
2014 * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
2015 * targhooks.h (default_mangle_decl_assembler_name): Declare
2017 * targhooks.c (default_mangle_decl_assembler_name): Define
2019 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
2021 * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
2022 * langhooks.c (lhd_set_decl_assembler_name): Call
2023 targetm.mangle_decl_assembler_name for names with global scope.
2025 * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
2027 (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
2028 * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
2030 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
2031 New. Factored out of i386_pe_encode_section_info.
2032 (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
2033 Move check for prior decoration of stdcall
2034 symbols to i386_pe_encode_section_info.
2035 (i386_pe_encode_section_info): Adjust call to
2036 gen_stdcall_or_fastcall_suffix. Use
2037 i386_pe_maybe_mangle_decl_assembler_name, if needed.
2038 (i386_pe_mangle_decl_assembler_name): New. Wrap
2039 i386_pe_maybe_mangle_decl_assembler_name.
2041 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
2043 * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
2044 INTEGRAL_TYPE_P and TYPE_UNSIGNED.
2045 * langhooks.c (get_signed_or_unsigned_type): Don't check for
2046 INTEGRAL_TYPE_P or TYPE_UNSIGNED.
2047 (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
2050 2007-05-23 Sandra Loosemore <sandra@codesourcery.com>
2051 Nigel Stephens <nigel@mips.com>
2052 Richard Sandiford <richard@codesourcery.com>
2054 Fix up MIPS16 hard float and add support for complex.
2056 * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
2057 (TARGET_SOFT_FLOAT_ABI): New.
2058 (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
2059 __mips_soft_float to reflect the ABI in use, not whether the
2060 FPU is directly accessible (e.g., in MIPS16 mode).
2061 (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
2062 (UNITS_PER_FPVALUE): Likewise.
2064 * config/mips/mips.c (mips_expand_call): Remove redundant
2065 TARGET_MIPS16 check.
2066 (mips_arg_regno): New.
2067 (function_arg_advance): When setting bits in cum->fp_code for
2068 MIPS16, don't subtract 1 from cum->arg_number, since it is now
2070 (function_arg): Use mips_arg_regno.
2071 (mips_return_mode_in_fpr_p): New.
2072 (mips16_call_stub_mode_suffix): New.
2073 (mips16_cfun_returns_in_fpr_p): New.
2074 (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
2075 (mips_output_function_prologue): Test mips16_hard_float, not
2076 !TARGET_SOFT_FLOAT, to decide when a function stub is required.
2077 (mips_expand_epilogue): Call MIPS16 helper routines to copy
2078 return value into a floating-point register.
2079 (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
2080 (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
2081 (mips16_fp_args): Handle MIPS32r2 ISA which supports
2082 TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
2083 word of double arguments from or to the high bits of 64-bit
2084 floating point registers.
2085 (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
2086 (mips16_fpret_double): New helper function.
2087 (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p. Add
2088 support for complex modes. Fill in DECL_RESULT for stubdecl.
2089 (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
2091 * config/mips/mips16.S
2092 (RET, ARG1, ARG2): New.
2093 (MERGE_GPRf, MERGE_GPRt): New.
2094 (DELAYt, DELAYf): New.
2095 (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
2096 (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
2097 (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
2098 (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
2099 (SFOP): Renamed to...
2100 (OPSF3): This, and macro-ified. Updated all uses.
2101 (SFOP2): Renamed to...
2102 (OPSF2): This, and macro-ified. Updated all uses.
2103 (SFCMP): Renamed to...
2104 (CMPSF): This, and macro-ified. Updated all uses.
2105 (SFREVCMP): Renamed to...
2106 (REVCMPSF): This, and macro-ified. Updated all uses.
2107 (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
2108 (LDDBL1, LDDBL2, RETDBL): Deleted.
2109 (DFOP): Renamed to...
2110 (OPDF3): This, and macro-ified. Updated all uses.
2111 (DFOP2): Renamed to...
2112 (OPDF2): This, and macro-ified. Updated all uses.
2113 (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
2114 (DFCMP): Renamed to...
2115 (CMPDF): This, and macro-ified. Updated all uses.
2116 (DFREVCMP): Renamed to...
2117 (REVCMPDF): This, and macro-ified. Updated all uses.
2118 (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
2119 (RET_FUNCTION): New.
2120 (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
2121 (__mips16_ret_sc, __mips16_ret_dc): New.
2122 (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
2123 STUB_ARGS_6, STUB_ARGS_10): New.
2124 (CALL_STUB_NO_RET): New.
2125 (__mips16_call_stub_1): Macro-ified.
2126 (__mips16_call_stub_5): Macro-ified.
2127 (__mips16_call_stub_2): Macro-ified.
2128 (__mips16_call_stub_6): Macro-ified.
2129 (__mips16_call_stub_9): Macro-ified.
2130 (__mips16_call_stub_10): Macro-ified.
2131 (CALL_STUB_RET): New.
2132 (__mips16_call_stub_sf_0): Macro-ified.
2133 (__mips16_call_stub_sf_1): Macro-ified.
2134 (__mips16_call_stub_sf_5): Macro-ified.
2135 (__mips16_call_stub_sf_2): Macro-ified.
2136 (__mips16_call_stub_sf_6): Macro-ified.
2137 (__mips16_call_stub_sf_9): Macro-ified.
2138 (__mips16_call_stub_sf_10): Macro-ified.
2139 (__mips16_call_stub_df_0): Macro-ified.
2140 (__mips16_call_stub_df_1): Macro-ified.
2141 (__mips16_call_stub_df_5): Macro-ified.
2142 (__mips16_call_stub_df_2): Macro-ified.
2143 (__mips16_call_stub_df_6): Macro-ified.
2144 (__mips16_call_stub_df_9): Macro-ified.
2145 (__mips16_call_stub_df_10): Macro-ified.
2146 (__mips16_call_stub_sc_0): New.
2147 (__mips16_call_stub_sc_1): New.
2148 (__mips16_call_stub_sc_5): New.
2149 (__mips16_call_stub_sc_2): New.
2150 (__mips16_call_stub_sc_6): New.
2151 (__mips16_call_stub_sc_9): New.
2152 (__mips16_call_stub_sc_10): New.
2153 (__mips16_call_stub_dc_0): New.
2154 (__mips16_call_stub_dc_1): New.
2155 (__mips16_call_stub_dc_5): New.
2156 (__mips16_call_stub_dc_2): New.
2157 (__mips16_call_stub_dc_6): New.
2158 (__mips16_call_stub_dc_9): New.
2159 (__mips16_call_stub_dc_10): New.
2161 * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
2162 * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
2163 * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
2165 2007-05-23 Ian Lance Taylor <iant@google.com>
2167 * doc/invoke.texi (Invoking GCC): Document that the order of the
2170 2007-05-23 Chen Liqin <liqin@sunnorth.com.cn>
2173 * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
2174 * config/score/predicate.md (const_pow2, const_npow2): Remove.
2175 * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
2179 * config/score/score.c (score_print_operand): Make sure that only
2180 lower bits are used.
2182 2007-05-22 Ian Lance Taylor <iant@google.com>
2184 * tree-vrp.c (avoid_overflow_infinity): New static function,
2185 broken out of set_value_range_to_value.
2186 (set_value_range_to_value): Call avoid_overflow_infinity.
2187 (extract_range_from_assert): Likewise.
2189 2007-05-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
2192 * builtins.c (expand_builtin_memmove_args): Strip nops that don't
2193 change the type before looking for a COMPOUND_EXPR.
2195 2007-05-22 Ian Lance Taylor <iant@google.com>
2197 * lower-subreg.c (decompose_multiword_subregs): If we change an
2198 insn, call remove_retval_note on it.
2200 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
2202 * regs.h (end_hard_regno): New function.
2203 (END_HARD_REGNO, END_REGNO): New macros.
2204 (add_to_hard_reg_set): New function.
2205 (remove_from_hard_reg_set): Likewise.
2206 (in_hard_reg_set_p): Likewise.
2207 (overlaps_hard_reg_set_p): Likewise.
2208 * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
2209 (note_btr_set): Use END_HARD_REGNO.
2210 * caller-save.c (setup_save_areas): Use end_hard_regno.
2211 (mark_set_regs): Use END_HARD_REGNO.
2212 (add_stored_regs): Use end_hard_regno.
2213 (mark_referenced_regs): Use add_to_hard_reg_set.
2214 * combine.c (update_table_tick): Use END_REGNO.
2215 (record_value_for_reg): Likewise.
2216 (record_dead_and_set_regs): Likewise.
2217 (get_last_value_validate): Likewise.
2218 (use_crosses_set_p): Likewise.
2219 (reg_dead_at_p_1): Likewise.
2220 (reg_dead_at_p): Likewise.
2221 (mark_used_regs_combine): Use add_to_hard_reg_set.
2222 (move_deaths): Use END_HARD_REGNO.
2223 (reg_bitfield_target_p): Use end_hard_regno.
2224 (distribute_notes): Use END_HARD_REGNO.
2225 * cse.c (mention_regs): Use END_REGNO.
2226 (insert): Use add_to_hard_reg_set.
2227 (invalidate): Use END_HARD_REGNO.
2228 (invalidate_for_call): Likewise.
2229 (exp_equiv_p): Use END_REGNO.
2230 (cse_insn): Likewise.
2231 * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
2232 * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
2233 * df-scan.c (df_ref_record): Use END_HARD_REGNO.
2234 * function.c (keep_stack_depressed): Use end_hard_regno.
2235 * global.c (global_alloc): Use end_hard_regno.
2236 (global_conflicts): Use add_to_hard_reg_set instead of
2238 (find_reg): Likewise.
2239 (mark_reg_store): Likewise.
2240 (mark_reg_conflicts): Likewise.
2241 (mark_reg_death): Use remove_from_hard_reg_set.
2242 (mark_reg_live_nc): Delete.
2243 (set_preference): Use end_hard_regno.
2244 * local-alloc.c (mark_life): Use add_to_hard_reg_set and
2245 remove_from_hard_reg_set.
2246 (post_mark_life): Use add_to_hard_reg_set.
2247 * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
2248 (reg_becomes_live): Use add_to_hard_reg_set.
2249 * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
2250 (peep2_find_free_register): Use add_to_hard_reg_set.
2251 * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
2252 * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
2253 * regrename.c (note_sets): Use add_to_hard_reg_set.
2254 (clear_dead_regs): Use remove_from_hard_reg_set.
2255 (regrename_optimize): Use add_to_hard_reg_set.
2256 (find_oldest_value_reg): Use in_hard_reg_set_p.
2257 * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
2258 (hard_reg_set_here_p): Use end_hard_regno.
2259 (decompose): Likewise.
2260 (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
2261 (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
2262 * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
2263 (mark_home_live): Use end_hard_regno.
2264 (spill_hard_reg): Likewise.
2265 (clear_reload_reg_in_use): Likewise.
2266 * reorg.c (delete_prior_computation): Use END_REGNO.
2267 * resource.c (update_live_status): Use END_HARD_REGNO.
2268 (mark_referenced_resources): Use add_to_hard_reg_set.
2269 (mark_set_resources): Likewise.
2270 (mark_target_live_regs): Likewise. Use remove_from_hard_reg_set.
2271 * rtlanal.c (refers_to_regno_p): Use END_REGNO.
2272 (reg_overlap_mentioned_p): Likewise.
2273 (dead_or_set_p): Likewise. Use an exclusive upper loop bound.
2274 (covers_regno_no_parallel_p): Use END_REGNO.
2275 (find_regno_note): Likewise.
2276 (find_reg_fusage): Use END_HARD_REGNO.
2277 * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
2278 * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
2280 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
2282 * mode-switching.c (reg_dies): Change type of second argument to
2284 (optimize_mode_switching): Update accordingly.
2286 2007-05-22 Richard Sandiford <richard@codesourcery.com>
2288 * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
2290 (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
2291 (hard_reg_set_empty_p): ...these new functions.
2292 * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
2293 GO_IF_HARD_REG_SUBSET.
2294 * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
2295 instead of GO_IF_HARD_REG_EQUAL.
2296 * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
2297 instead of GO_IF_HARD_REG_EQUAL.
2298 * global.c (find_reg): Use hard_reg_set_empty_p instead of
2299 GO_IF_HARD_REG_SUBSET.
2300 (modify_reg_pav): Use hard_reg_set_empty_p instead of
2301 GO_IF_HARD_REG_EQUAL.
2302 * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
2303 of GO_IF_HARD_REG_SUBSET.
2304 * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
2305 instead of GO_IF_HARD_REG_EQUAL.
2306 * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
2307 hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
2308 (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
2309 of GO_IF_HARD_REG_SUBSET,
2310 * reload1.c (finish_spills): Use hard_reg_subset_p instead of
2311 GO_IF_HARD_REG_SUBSET.
2312 * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
2313 instead of GO_IF_HARD_REG_EQUAL.
2314 * config/sh/sh.c (push_regs, calc_live_regs): Use
2315 hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
2316 (hard_regs_intersect_p): Delete.
2318 2007-05-22 Janis Johnson <janis187@us.ibm.com>
2320 * doc/sourcebuild.texi (Test Directives) Add dg-message.
2322 2007-05-22 H.J. Lu <hongjiu.lu@intel.com>
2323 Richard Henderson <rth@redhat.com>
2325 * config.gcc (i[34567]86-*-*): Add smmintrin.h to
2327 (x86_64-*-*): Likewise.
2329 * i386/i386-modes.def (V2QI): New.
2331 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
2333 (override_options): Support SSE4.1.
2334 (IX86_BUILTIN_BLENDPD): New for SSE4.1.
2335 (IX86_BUILTIN_BLENDPS): Likewise.
2336 (IX86_BUILTIN_BLENDVPD): Likewise.
2337 (IX86_BUILTIN_BLENDVPS): Likewise.
2338 (IX86_BUILTIN_PBLENDVB128): Likewise.
2339 (IX86_BUILTIN_PBLENDW128): Likewise.
2340 (IX86_BUILTIN_DPPD): Likewise.
2341 (IX86_BUILTIN_DPPS): Likewise.
2342 (IX86_BUILTIN_INSERTPS128): Likewise.
2343 (IX86_BUILTIN_MOVNTDQA): Likewise.
2344 (IX86_BUILTIN_MPSADBW128): Likewise.
2345 (IX86_BUILTIN_PACKUSDW128): Likewise.
2346 (IX86_BUILTIN_PCMPEQQ): Likewise.
2347 (IX86_BUILTIN_PHMINPOSUW128): Likewise.
2348 (IX86_BUILTIN_PMAXSB128): Likewise.
2349 (IX86_BUILTIN_PMAXSD128): Likewise.
2350 (IX86_BUILTIN_PMAXUD128): Likewise.
2351 (IX86_BUILTIN_PMAXUW128): Likewise.
2352 (IX86_BUILTIN_PMINSB128): Likewise.
2353 (IX86_BUILTIN_PMINSD128): Likewise.
2354 (IX86_BUILTIN_PMINUD128): Likewise.
2355 (IX86_BUILTIN_PMINUW128): Likewise.
2356 (IX86_BUILTIN_PMOVSXBW128): Likewise.
2357 (IX86_BUILTIN_PMOVSXBD128): Likewise.
2358 (IX86_BUILTIN_PMOVSXBQ128): Likewise.
2359 (IX86_BUILTIN_PMOVSXWD128): Likewise.
2360 (IX86_BUILTIN_PMOVSXWQ128): Likewise.
2361 (IX86_BUILTIN_PMOVSXDQ128): Likewise.
2362 (IX86_BUILTIN_PMOVZXBW128): Likewise.
2363 (IX86_BUILTIN_PMOVZXBD128): Likewise.
2364 (IX86_BUILTIN_PMOVZXBQ128): Likewise.
2365 (IX86_BUILTIN_PMOVZXWD128): Likewise.
2366 (IX86_BUILTIN_PMOVZXWQ128): Likewise.
2367 (IX86_BUILTIN_PMOVZXDQ128): Likewise.
2368 (IX86_BUILTIN_PMULDQ128): Likewise.
2369 (IX86_BUILTIN_PMULLD128): Likewise.
2370 (IX86_BUILTIN_ROUNDPD): Likewise.
2371 (IX86_BUILTIN_ROUNDPS): Likewise.
2372 (IX86_BUILTIN_ROUNDSD): Likewise.
2373 (IX86_BUILTIN_ROUNDSS): Likewise.
2374 (IX86_BUILTIN_PTESTZ): Likewise.
2375 (IX86_BUILTIN_PTESTC): Likewise.
2376 (IX86_BUILTIN_PTESTNZC): Likewise.
2377 (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
2378 (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
2379 (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
2380 (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
2381 (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
2383 (bdesc_sse_3arg): Likewise.
2384 (bdesc_2arg): Likewise.
2385 (bdesc_1arg): Likewise.
2386 (ix86_init_mmx_sse_builtins): Support SSE4.1. Handle SSE builtins
2388 (ix86_expand_sse_4_operands_builtin): New.
2389 (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
2390 smaller than 8 bits as the 2nd arg.
2391 (ix86_expand_sse_ptest): New.
2392 (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
2393 (ix86_expand_vector_set): Support SSE4.1.
2394 (ix86_expand_vector_extract): Likewise.
2396 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
2397 __SSE4_1__ for -msse4.1.
2399 * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
2400 (UNSPEC_INSERTPS): Likewise.
2401 (UNSPEC_DP): Likewise.
2402 (UNSPEC_MOVNTDQA): Likewise.
2403 (UNSPEC_MPSADBW): Likewise.
2404 (UNSPEC_PHMINPOSUW): Likewise.
2405 (UNSPEC_PTEST): Likewise.
2406 (UNSPEC_ROUNDP): Likewise.
2407 (UNSPEC_ROUNDS): Likewise.
2409 * config/i386/i386.opt (msse4.1): New for SSE4.1.
2411 * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
2412 (const_pow2_1_to_32768_operand): Likewise.
2414 * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
2417 * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
2419 (sse4_1_insertps): Likewise.
2420 (*sse4_1_extractps): Likewise.
2421 (sse4_1_ptest): Likewise.
2422 (sse4_1_mulv2siv2di3): Likewise.
2423 (*sse4_1_mulv4si3): Likewise.
2424 (*sse4_1_smax<mode>3): Likewise.
2425 (*sse4_1_umax<mode>3): Likewise.
2426 (*sse4_1_smin<mode>3): Likewise.
2427 (*sse4_1_umin<mode>3): Likewise.
2428 (sse4_1_eqv2di3): Likewise.
2429 (*sse4_1_pinsrb): Likewise.
2430 (*sse4_1_pinsrd): Likewise.
2431 (*sse4_1_pinsrq): Likewise.
2432 (*sse4_1_pextrb): Likewise.
2433 (*sse4_1_pextrb_memory): Likewise.
2434 (*sse4_1_pextrw_memory): Likewise.
2435 (*sse4_1_pextrq): Likewise.
2436 (sse4_1_blendpd): Likewise.
2437 (sse4_1_blendps): Likewise.
2438 (sse4_1_blendvpd): Likewise.
2439 (sse4_1_blendvps): Likewise.
2440 (sse4_1_dppd): Likewise.
2441 (sse4_1_dpps): Likewise.
2442 (sse4_1_movntdqa): Likewise.
2443 (sse4_1_mpsadbw): Likewise.
2444 (sse4_1_packusdw): Likewise.
2445 (sse4_1_pblendvb): Likewise.
2446 (sse4_1_pblendw): Likewise.
2447 (sse4_1_phminposuw): Likewise.
2448 (sse4_1_extendv8qiv8hi2): Likewise.
2449 (*sse4_1_extendv8qiv8hi2): Likewise.
2450 (sse4_1_extendv4qiv4si2): Likewise.
2451 (*sse4_1_extendv4qiv4si2): Likewise.
2452 (sse4_1_extendv2qiv2di2): Likewise.
2453 (*sse4_1_extendv2qiv2di2): Likewise.
2454 (sse4_1_extendv4hiv4si2): Likewise.
2455 (*sse4_1_extendv4hiv4si2): Likewise.
2456 (sse4_1_extendv2hiv2di2): Likewise.
2457 (*sse4_1_extendv2hiv2di2): Likewise.
2458 (sse4_1_extendv2siv2di2): Likewise.
2459 (*sse4_1_extendv2siv2di2): Likewise.
2460 (sse4_1_zero_extendv8qiv8hi2): Likewise.
2461 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
2462 (sse4_1_zero_extendv4qiv4si2): Likewise.
2463 (*sse4_1_zero_extendv4qiv4si2): Likewise.
2464 (sse4_1_zero_extendv2qiv2di2): Likewise.
2465 (*sse4_1_zero_extendv2qiv2di2): Likewise.
2466 (sse4_1_zero_extendv4hiv4si2): Likewise.
2467 (*sse4_1_zero_extendv4hiv4si2): Likewise.
2468 (sse4_1_zero_extendv2hiv2di2): Likewise.
2469 (*sse4_1_zero_extendv2hiv2di2): Likewise.
2470 (sse4_1_zero_extendv2siv2di2): Likewise.
2471 (*sse4_1_zero_extendv2siv2di2): Likewise.
2472 (sse4_1_roundpd): Likewise.
2473 (sse4_1_roundps): Likewise.
2474 (sse4_1_roundsd): Likewise.
2475 (sse4_1_roundss): Likewise.
2476 (mulv4si3): Don't expand for SSE4.1.
2477 (smax<mode>3): Likewise.
2478 (umaxv4si3): Likewise.
2479 (uminv16qi3): Likewise.
2480 (umin<mode>3): Likewise.
2481 (umaxv8hi3): Rewrite. Only enabled for SSE4.1.
2483 * doc/extend.texi: Document SSE4.1 built-in functions.
2485 * doc/invoke.texi: Document -msse4.1.
2487 2007-05-22 Nathan Sidwell <nathan@codesourcery.com>
2489 * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
2490 * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
2491 * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
2492 (ASM_SPEC): Add asm_pcrel_spec.
2493 (EXTRA_SPECS): Add asm_pcrel_spec.
2495 2007-05-21 David Daney <ddaney@avtrex.com>
2497 * doc/install.texi (Building a cross compiler): Add requirements
2498 for Java cross compiler.
2500 2007-05-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
2503 * tree-chrec.c (evolution_function_is_affine_multivariate_p):
2504 Add loopno argument. Use evolution_function_is_invariant_rec_p
2505 instead of evolution_function_is_constant_p.
2506 Update calls to evolution_function_is_affine_multivariate_p.
2507 * tree-chrec.h (evolution_function_is_affine_multivariate_p):
2508 Add loopno argument.
2509 * tree-scalar-evolution.c (gather_chrec_stats): Call
2510 evolution_function_is_affine_multivariate_p with a loop
2512 * tree-data-ref.c (analyze_miv_subscript): Likewise.
2513 (analyze_overlapping_iterations): Likewise.
2514 (access_functions_are_affine_or_constant_p): Likewise.
2515 (build_classic_dist_vector_1): If the access functions
2516 are equal, don't do anything.
2518 2007-05-21 Paolo Bonzini <bonzini@gnu.org>
2519 Paolo Carlini <pcarlini@suse.de>
2520 Uros Bizjak <ubizjak@gmail.com>
2522 * c-cppbuiltin.c (c_cpp_builtins): Define
2523 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
2524 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
2525 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
2526 * doc/cpp.texi ([Standard Predefined Macros]): Document.
2528 2007-05-21 Mike Stump <mrs@apple.com>
2530 * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
2532 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
2534 2007-05-21 Uros Bizjak <ubizjak@gmail.com>
2536 * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
2537 implementation if __OPTIMIZE__ is not defined.
2538 (_mm_alignr_pi8): Ditto.
2539 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
2540 (_mm_inserti_si64): Ditto.
2541 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
2542 (_mm_slli_epi16): Ditto.
2543 (_mm_slli_epi32): Ditto.
2544 (_mm_slli_epi64): Ditto.
2545 (_mm_srai_epi16): Ditto.
2546 (_mm_srai_epi32): Ditto.
2547 (_mm_srli_si128): Ditto.
2548 (_mm_slli_si128): Ditto.
2549 (_mm_srli_epi16): Ditto.
2550 (_mm_srli_epi32): Ditto.
2551 (_mm_srli_epi64): Ditto.
2552 (_mm_extract_epi16): Ditto.
2553 (_mm_insert_epi16): Ditto.
2554 (_mm_shufflehi_epi16): Ditto.
2555 (_mm_shufflelo_epi16): Ditto.
2556 (_mm_shuffle_epi32): Ditto.
2557 * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
2559 (_mm_insert_pi16): Ditto.
2561 (_mm_shuffle_pi16): Ditto.
2563 (_mm_shufle_ps): Ditto.
2564 (_mm_prefetch): Ditto.
2566 2007-05-21 Andreas Krebbel <krebbel1@de.ibm.com>
2568 * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
2569 * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
2570 * real.c (encode_i370_single, decode_i370_single,
2571 encode_i370_double, decode_i370_double): Functions removed.
2572 (i370_single_format, i370_double_format): Initializations removed.
2573 (real_maxval, round_for_format, exact_real_truncate, significand_size):
2574 Consider the log2_b field to always be one.
2575 (ieee_single_format, mips_single_format, coldfire_single_format,
2576 ieee_double_format, mips_double_format, coldfire_double_format,
2577 ieee_extended_motorola_format, ieee_extended_intel_96_format,
2578 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
2579 ibm_extended_format, mips_extended_format, ieee_quad_format,
2580 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
2581 decimal_single_format, decimal_double_format, decimal_quad_format,
2582 c4x_single_format, c4x_extended_format, real_internal_format): Remove
2583 initialization of log2_b.
2584 * real.h (i370_single_format, i370_double_format): Declarations removed.
2585 * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
2586 field to always be one.
2588 2007-05-21 Andreas Schwab <schwab@suse.de>
2590 * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
2591 NOTE_INSN_BASIC_BLOCK_P.
2592 (process_for_unwind_directive): Likewise.
2594 2007-05-21 Nathan Sidwell <nathan@codesourcery.com>
2596 * builtins.c (expand_builtin_setjmp_setup): Update comment.
2597 * function.h (struct function): Move va_list_gpr_size,
2598 va_list_fpr_size, function_frequency to front of bitfields. Add
2600 (current_function_calls_unwind_init): New.
2601 * except.c (expand_builtin_unwind_init): Set
2602 current_function_calls_unwind_init not
2603 current_function_has_nonlocal_label.
2604 * reload1.c (has_nonexceptional_receiver): New.
2605 (reload): Use it and current_function_calls_unwind_init to
2606 determine whether call-saved regs must be saved.
2608 2007-05-20 Jan Hubicka <jh@suse.cz>
2610 * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
2611 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
2612 * ddg.c (create_ddg): LIkewise.
2613 * final.c (final): Remove hunk moving line numbernotes around since
2614 they are no longer present at this stage.
2615 (final_scan_insn): Use NOTE_KIND instead of
2616 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
2617 (output_asm_label): Likewise.
2618 * reorg.c (dbr_schedule): Likewise.
2619 * haifa-sched.c (unlink_other_notes): Likewise.
2620 * mode-switching.c (optimize_mode_switching): Likewise.
2621 * graph.c (start_bb): Likewise.
2622 * rtl.def (NOTE): Update description.
2623 * jump.c (squeeze_notes): Delete.
2624 (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
2625 NOTE_INSN_BASIC_BLOCK_P when possible.
2626 * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
2627 * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
2628 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
2629 (dwarf2out_var_location): Likewise.
2630 * cfgbuild.c (make_edges): Likewise.
2631 (find_basic_blocks_1): Likewise.
2632 * function.c (reorder_blocks_1): Likewise.
2633 (epilogue_done): Likewise.
2634 (reposition_prologue_and_epilogue_notes): Likewise.
2635 * print-rtl.c (print_rtx): Likewise; drop code for printing line number
2637 (print_rtl): Likewise.
2638 (print_rtl_single): Likewise.
2639 * gcse.c (insert_insn_start_bb): Likewise.
2640 * alias.c (init_alias_analysis): Likewise.
2641 * calls.c (fixup_tail_calls): Likewise.
2642 * except.c (sjlj_emit_function_enter): Likewise.
2643 * emit-rtl.c (add_insn_after): Likeiwse.
2644 (emit_label_before): Likewise.
2645 (emit_label_after): Likewise.
2646 (emit_note_before, emit_note_after, emit_note): Update
2647 parameter to be enum insn_note; do not deal with source
2649 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
2650 Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
2652 (merge_blocks_move_successor_nojumps): Simplify now when
2653 we don't have BLOCK notes.
2654 (try_optimize_cfg): Likewise.
2655 * cfglayout.c (skip_insns_after_block): Likewise.
2656 (record_effective_endpoints): Likewise.
2657 (duplicate_insn_chain): Likewise.
2658 * varasm.c (output_constant_pool_1): Likewise.
2659 * sched-deps.c (sched_analyze): Likewise.
2660 * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
2662 (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
2663 * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
2664 (SET_INSN_DELETED): Simplify.
2665 (NOTE_LINE_NUMBER): Exterminate.
2666 (NOTE_LINE_KIND): New.
2667 (NOTE_INSN_BASIC_BLOCK_P): Update.
2668 (enum insn_note): Simplify.
2669 (GET_NOTE_INSN_NAME) Simplify.
2670 (emit_note_before, emit_note_after, emit_note): Update prototype.
2671 (squeeze_notes): Remove.
2672 * sched-int.h (NOTE_NOT_BB_P): Update.
2673 * resource.c (mark_target_live_regs): Update.
2674 * sched-rgn.c (debug_dependencies): Update.
2675 * sched-vis.c (print_insn): Update.
2676 * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
2677 * config/i386/i386.c (ix86_output_function_epilogue): Update.
2678 * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
2679 (TARGET_ADJUST_UNROLL_MAX): Likewise.
2680 (split_branches): Update.
2681 (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
2683 (sh_adjust_unroll_max): Exterminate.
2684 * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
2685 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
2686 (m68hc11_reorg): Likewise.
2687 * config/ia64/ia64.c (emit_insn_group_barriers): Update.
2688 (emit_predicate_relation_info): Update.
2689 (process_for_unwind_directive): Update.
2690 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
2691 (output_call): Update.
2692 * config/pa/pa.c (output_lbranch): Update.
2693 (output_millicode_call): Update.
2694 (output_call): Update.
2695 (pa_combine_instructions): Update.
2696 * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
2697 * config/bfin/bfin.c (gen_one_bundle): Update.
2698 * cfgrtl.c (can_delete_note_p): Update.
2699 (delete_insn): Update.
2700 (rtl_merge_blocks): Update.
2701 (commit_one_edge_insertion): Update.
2702 (rtl_verify_flow_info): Update.
2703 * stmt.c (expand_case): Do not call squeeze_notes.
2705 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2712 * c.opt (Wtype-limits): New.
2713 * doc/invoke.texi (Wtype-limits): Document it.
2714 (Wextra): Enabled by -Wextra.
2715 * c-opts.c (c_common_post_options): Enabled by -Wextra.
2716 * c-common.c (shorten_compare): Warn with Wtype-limits.
2718 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
2720 * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
2721 inlined function, not as a macro.
2722 (_mm_alignr_pi8): Ditto.
2723 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
2724 (_mm_inserti_si64): Ditto.
2725 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
2726 (_mm_extract_epi16): Ditto.
2727 (_mm_insert_epi16): Ditto.
2728 (_mm_shufflehi_epi16): Ditto.
2729 (_mm_shufflelo_epi16): Ditto.
2730 (_mm_shuffle_epi32): Ditto.
2731 * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
2732 * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
2734 (_m_from_float): Add __extension__ to conversion. Use 0.0f for
2736 (_m_to_float): Use C89 compatible assignment.
2738 2007-04-20 Martin Michlmayr <tbm@cyrius.com>
2741 * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
2743 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2746 * doc/invoke.texi (Wreturn-type): Complete description.
2747 (Wextra): Delete item about return-type warning.
2748 * c-decl.c: Delete redundant Wextra warning.
2750 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
2753 * config/i386/pmmintrin.h: Do not include xmmintrin.h
2754 * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
2755 inlined function, not as a macro.
2756 (_mm_prefetch): Ditto.
2758 (_mm_insert_pi16): Ditto.
2760 (_mm_shuffle_pi16): Ditto. Add const to __N argument.
2761 (_m_pshufw): Ditto. Add const to __N argument.
2762 (_mm_shufle_ps): Ditto. Add const to __mask argument.
2763 * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
2764 (_mm_slli_epi32): Ditto.
2765 (_mm_srli_si128): Implement as always inlined function, not as a macro.
2766 Add __inline to function declaration.
2767 (_mm_slli_si128): Ditto.
2769 2007-05-19 Uros Bizjak <ubizjak@gmail.com>
2771 * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
2772 FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
2774 (struct fenv): New structure.
2775 (FP_HANDLE_EXCEPTIONS): New define.
2776 (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
2777 (_FP_DECL_EXP): New define.
2778 (FP_INIT_ROUNDMODE): New define.
2779 (FP_ROUNDMODE): New define.
2781 2007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2783 * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
2784 (Wconversion): Update description.
2785 (Wconversion-sign): New.
2786 * c.opt (Wconversion-sign): New.
2787 * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
2788 means disabled for C++. Otherwise, take the status of Wconversion.
2789 * c-common.c (conversion_warning): Warn with either Wconversion or
2791 (warnings_for_convert_and_check): Conditions are already checked by
2793 (convert_and_check): Don't check warnings if the conversion failed.
2795 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
2796 Anatoly Sokolov <aesok@dol.ru>
2798 * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
2799 avr_epilogue_uses) : Add declaration.
2800 * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
2801 * config/avr/constraints.md (R): New constraint.
2802 config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
2803 UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
2804 (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
2805 (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
2806 (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
2807 call_prologue_saves, epilogue_restores, return_from_epilogue,
2808 return_from_main_epilogue, return_from_interrupt_epilogue,
2809 return_from_naked_epilogue, prologue, epilogue): New patterns.
2810 (jump): Handle symbol reference.
2811 * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
2812 avr_output_function_prologue, avr_output_function_epilogue): Remove
2814 (avr_init_machine_status, expand_prologue, expand_epilogue,
2815 avr_asm_function_end_prologue, avr_epilogue_uses,
2816 avr_asm_function_begin_epilogue): New functions.
2817 (prologue_size, epilogue_size, jump_tables_size): Remove global
2819 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2820 (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
2821 (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
2822 (avr_override_options): Initialise init_machine_status.
2823 (output_movhi): Handle all stack pointer loads.
2824 (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
2825 (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
2826 * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
2827 (EPILOGUE_USES) Redefine.
2828 (machine_function) Declare.
2830 2007-05-19 Richard Sandiford <richard@codesourcery.com>
2832 * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
2833 Use a single return statement.
2835 2007-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2838 * builtins.c (do_mpfr_lgamma_r): New.
2839 (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
2840 * tree.h (CASE_FLT_FN_REENT): New.
2842 2007-05-18 Geoffrey Keating <geoffk@apple.com>
2844 * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
2845 (output_die): Use 'unsigned long' with %x.
2846 * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
2847 HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
2848 * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
2850 * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
2852 2007-05-18 H.J. Lu <hongjiu.lu@intel.com>
2857 * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
2858 true if function has no argument.
2860 2007-05-18 DJ Delorie <dj@redhat.com>
2862 * config/mips/mips.c (mips_offset_within_alignment_p): New.
2863 (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
2865 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
2867 * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
2868 sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
2869 count_trailing_zeros.
2870 (__i386__): Implement count_leading_zeros using __builtin_clz().
2871 Implement count_trailing_zeros usign __builtin_ctz().
2873 2007-05-18 Richard Sandiford <richard@codesourcery.com>
2875 * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
2877 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
2880 * expr.c (emit_move_change_mode): Change mode of push operands here.
2882 2007-05-17 Ian Lance Taylor <iant@google.com>
2884 PR tree-optimization/31953
2885 * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
2887 (set_value_range_to_null): Call set_value_range_to_value.
2888 (extract_range_from_comparison): Likewise.
2890 2007-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2892 * toplev.c (print_version): Output GMP/MPFR version info.
2894 * builtins.c (CASE_MATHFN_REENT): New macro.
2895 (mathfn_built_in): Use it.
2896 * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
2897 BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
2898 BUILT_IN_LGAMMAL_R): New.
2899 * doc/extend.texi: Document new builtins.
2902 * builtins.c (do_mpfr_remquo): New.
2903 (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
2904 (fold_builtin_3): Handle BUILT_IN_REMQUO.
2907 * builtins.c (fold_builtin_1): Handle y0, y1.
2908 (fold_builtin_2): Handle yn.
2911 * builtins.c (do_mpfr_bessel_n): New.
2912 (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
2913 (fold_builtin_2): Handle BUILT_IN_JN.
2915 2007-05-17 Danny Smith <dannysmith@users.sourceforge.net>
2918 * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
2919 TYPE_PRECISION (intmax_type_node).
2921 2007-05-17 Steve Ellcey <sje@cup.hp.com>
2924 * reload.c (subst_reloads): Remove checking.
2926 2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
2928 PR rtl-optimization/31691
2929 * combine.c (simplify_set): Build a new src pattern instead of
2930 substituting its operands in the COMPARE case.
2932 2007-05-17 Zdenek Dvorak <dvorakz@suse.cz>
2934 * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
2935 (execute_vrp): Preserve loops through jump threading.
2936 * tree-ssa-threadupdate.c (thread_single_edge,
2937 dbds_continue_enumeration_p, determine_bb_domination_status,
2938 thread_through_loop_header): New functions.
2939 (create_edge_and_update_destination_phis,
2940 create_edge_and_update_destination_phis): Set loops for the new blocks.
2941 (prune_undesirable_thread_requests): Removed.
2942 (redirect_edges): Do not pretend that redirect_edge_and_branch can
2944 (thread_block): Do not call prune_undesirable_thread_requests.
2946 (mark_threaded_blocks): Select edges to thread here.
2947 (thread_through_all_blocks): Take may_peel_loop_headers argument.
2948 Thread edges through loop headers independently.
2949 * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
2950 * tree-pass.h (TODO_mark_first_instance): New.
2951 (first_pass_instance): Declare.
2952 * cfghooks.c (duplicate_block): Put the block to the original loop
2953 if copy is not specified.
2954 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
2955 jump threading. Pass may_peel_loop_headers to
2956 thread_through_all_blocks according to first_pass_instance.
2957 * cfgloop.h (create_preheader): Declare.
2958 * tree-flow.h (thread_through_all_blocks): Declaration changed.
2959 * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
2960 * passes.c (first_pass_instance): New variable.
2961 (next_pass_1): Set TODO_mark_first_instance.
2962 (execute_todo): Set first_pass_instance.
2964 2007-05-17 Uros Bizjak <ubizjak@gmail.com>
2966 PR tree-optimization/24659
2967 * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
2968 OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
2969 OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
2970 OTI_vec_pack_ufix_trunc.
2971 (vec_unpacks_float_hi_optab): Define new macro.
2972 (vec_unpacks_float_lo_optab): Ditto.
2973 (vec_unpacku_float_hi_optab): Ditto.
2974 (vec_unpacku_float_lo_optab): Ditto.
2975 (vec_pack_sfix_trunc_optab): Ditto.
2976 (vec_pack_ufix_trunc_optab): Ditto.
2977 * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
2978 and vec_pack_[s|u]fix_trunc_optab using
2979 vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
2980 * tree-vectorizer.c (supportable_widening_operation): Handle
2981 FLOAT_EXPR and CONVERT_EXPR. Update comment.
2982 (supportable_narrowing_operation): New function.
2983 * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
2984 * tree-vect-transform.c (vectorizable_conversion): Handle
2985 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
2986 (vect_gen_widened_results_half): Move before vectorizable_conversion.
2987 (vectorizable_type_demotion): Call supportable_narrowing_operation()
2988 to check for target support.
2989 * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
2990 for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
2991 for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
2992 for VEC_PACK_FIX_TRUNC_EXPR.
2993 (expand_binop): Special case mode of the result for
2994 vec_pack_[u|s]fix_trunc_optab.
2995 (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
2996 vec_pack_[u|s]fix_trunc_optab.
2998 * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
2999 VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
3000 * tree-pretty-print.c (dump_generic_node): Handle
3001 VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
3002 VEC_PACK_FIX_TRUNC_EXPR.
3004 * expr.c (expand_expr_real_1): Ditto.
3005 * tree-inline.c (estimate_num_insns_1): Ditto.
3006 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3008 * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
3009 (vec_unpacks_float_lo_v8hi): Ditto.
3010 (vec_unpacku_float_hi_v8hi): Ditto.
3011 (vec_unpacku_float_lo_v8hi): Ditto.
3012 (vec_unpacks_float_hi_v4si): Ditto.
3013 (vec_unpacks_float_lo_v4si): Ditto.
3014 (vec_pack_sfix_trunc_v2df): Ditto.
3016 * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
3018 [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
3019 [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
3020 * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
3021 [vec_pack_ufix_trunc]: Ditto.
3022 [vec_unpacks_float_hi]: Ditto.
3023 [vec_unpacks_float_lo]: Ditto.
3024 [vec_unpacku_float_hi]: Ditto.
3025 [vec_unpacku_float_lo]: Ditto.
3027 2007-05-16 Uros Bizjak <ubizjak@gmail.com>
3029 * soft-fp/README: Update for new files.
3030 * soft-fp/floattisf.c: New file.
3031 * soft-fp/floattidf.c: New file.
3032 * soft-fp/floattitf.c: New file.
3033 * soft-fp/floatuntisf.c: New file.
3034 * soft-fp/floatuntidf.c: New file.
3035 * soft-fp/floatuntitf.c: New file.
3036 * soft-fp/fixsfti.c: New file.
3037 * soft-fp/fixdfti.c: New file.
3038 * soft-fp/fixtfti.c: New file.
3039 * soft-fp/fixunssfti.c: New file.
3040 * soft-fp/fixunsdfti.c: New file.
3041 * soft-fp/fixunstfti.c: New file.
3042 * soft-fp/extendxftf.c: New file.
3043 * soft-fp/trunctfxf.c: New file.
3045 * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
3046 (__trunctfxf2): Ditto.
3048 * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
3049 __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
3050 __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
3051 __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
3052 __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
3053 __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
3055 * config/i386/t-fprules-softfp64: New file.
3056 * config/i386/sfp-machine.h: New file.
3057 * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
3058 x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
3059 and soft-fp/t-softfp to tmake_file.
3060 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3061 i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
3063 * config/i386/t-linux64 (softfp_wrap_start): New.
3064 (softfp_wrap_end): New.
3065 * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
3066 supported for TARGET_64BIT.
3068 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
3070 * c-common.c (c_common_signed_or_unsigned_type): Emulate
3071 c_common_unsigned_type behavior.
3073 2007-05-16 Paolo Bonzini <bonzini@gnu.org>
3075 * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
3078 2007-05-16 Eric Christopher <echristo@apple.com>
3080 * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
3081 saving after stack push. Set sp_offset whenever we push.
3082 (rs6000_emit_epilogue): Move altivec register restore before
3085 2007-05-16 Richard Sandiford <richard@codesourcery.com>
3087 * configure.ac: Allow sysroots to be relocated under $prefix as
3088 well as $exec_prefix.
3089 * configure: Regenerate.
3091 2007-05-16 Richard Sandiford <richard@codesourcery.com>
3095 2007-05-12 Richard Sandiford <richard@codesourcery.com>
3097 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
3098 (gcc_tooldir): Likewise.
3099 * configure: Regenerate.
3100 * Makefile.in (libsubdir_to_prefix): New variable, based on the
3101 old configure.ac gcc_tooldir setting.
3102 (prefix_to_exec_prefix): New variable.
3103 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
3104 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
3106 2007-05-14 Janis Johnson <janis187@us.ibm.com>
3108 * c-typeck.c (build_binary_op): Return early for error.
3110 2007-05-15 Zdenek Dvorak <dvorakz@suse.cz>
3112 * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
3113 struct nb_iter_bound.
3114 (free_numbers_of_iterations_estimates_loop): Use ggc_free.
3115 * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
3116 * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
3117 * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
3118 (struct scev_info_str, scalar_evolution_info): Add GTY markers.
3119 (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
3120 (del_scev_info): Use ggc_free.
3121 (scev_initialize): Allocate scalar_evolution_info in gc memory.
3122 * loop-init.c: Include ggc.h.
3123 (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
3124 (loop_optimizer_finalize): Use ggc_free.
3125 * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
3126 pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
3127 pass_iv_optimize): Add TODO_ggc_collect.
3128 * function.h (struct function): Remove skip marker from x_current_loops.
3129 * cfgloop.c: Include ggc.h.
3130 (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
3132 (establish_preds): Vector superloops is gc allocated.
3133 (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of
3135 (flow_loops_find): Vector larray is gc allocated.
3136 (loop_exit_free): Use ggc_free.
3137 (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect
3138 that head of exits list is now not a part of struct loop.
3139 (record_loop_exits): Allocate exits table in gc memory.
3140 (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect that
3141 head of exits list is now not a part of struct loop.
3142 * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
3143 struct loop_exit): Add GTY marker.
3144 (struct loop): Add GTY marker. Make superloops vector gc allocated.
3145 Add skip marker to aux field. Make head of exits list a separate
3147 (struct loops): Add GTY marker. Make larray vector gc allocated.
3148 Add param marker to exits table.
3149 (get_loops): Type changed.
3150 * Makefile.in (tree-scalar-evolution.o): Add gt-tree-scalar-evolution.h
3152 (cfgloop.o, loop-init.o): Add ggc.h dependency.
3153 (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
3154 * basic-block.h (struct basic_block_def): Remove skip marker from
3157 2007-05-14 Uros Bizjak <ubizjak@gmail.com>
3159 * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
3160 of 0 in the call to expand_expr().
3161 (expand_builtin_mathfn_3): Ditto.
3162 (expand_builtin_interclass_mathfn): Ditto.
3163 (expand_builtin_cexpi): Ditto.
3164 (expand_builtin_int_roundingfn): Ditto.
3165 (expand_builtin_int_roundingfn_2): Ditto.
3166 (expand_builtin_pow): Ditto.
3167 (expand_builtin_powi): Ditto.
3168 (expand_builtin_bswap): Ditto.
3169 (expand_builtin_unop): Ditto.
3170 (expand_builtin_fabs): Ditto.
3171 (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
3172 the call to expand_expr().
3173 (expand_builtin_sync_operation): Ditto.
3174 (expand_builtin_compare_and_swap): Ditto.
3175 (expand_builtin_lock_test_and_set): Ditto.
3176 * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
3177 instead of 0 in the call to expand_expr().
3178 (expand_builtin_extract_return_addr): Ditto.
3179 (expand_builtin_eh_return): Ditto.
3180 (expand_eh_return): Ditto.
3181 * explow.c (expr_size): Ditto.
3182 * expr.c (optimize_bitfield_assignment_op): Ditto.
3183 (expand_assignement): Ditto.
3184 (store_expr): Ditto.
3185 (store_field): Ditto.
3186 (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
3187 the call to expand_expr().
3188 (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
3189 in the call to expand_expr().
3190 [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
3191 BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
3192 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
3194 * optabs.c (expand_vec_shift_expr): Ditto.
3195 (expand_vec_cond_expr): Ditto.
3196 (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
3197 call to expand_expr().
3198 * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
3199 in the call to expand_expr().
3201 2007-05-14 Dave Korn <dave.korn@artimi.com>
3203 * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
3205 2007-05-14 Rafael Avila de Espindola <espindola@google.com>
3207 * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
3208 instead of c_common_unsigned_type.
3209 (c_common_unsigned_type): Remove.
3210 (shorten_compare): Use c_common_signed_or_unsigned_type instead of
3211 c_common_unsigned_type.
3212 (c_common_nodes_and_builtins): Use unsigned_type_for instead of
3213 c_common_unsigned_type.
3214 * c-common.h (c_common_unsigned_type): Remove.
3215 * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
3216 c_common_unsigned_type.
3217 * c-format.c (check_format_types): Use unsigned_type_for instead of
3218 c_common_unsigned_type.
3219 * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
3220 * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead of
3221 c_common_unsigned_type.
3222 * convert.c (convert_to_integer): Use unsigned_type_for instead of
3223 lang_hooks.types.unsigned_type.
3224 * expmed.c (make_tree): Use unsigned_type_for instead of
3225 lang_hooks.types.unsigned_type.
3226 * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
3227 lang_hooks.types.unsigned_type.
3228 (build_range_check): Likewise.
3229 (fold_unary): Likewise.
3230 (fold_binary): Likewise.
3231 (fold_ternary): Likewise.
3232 * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
3233 * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
3234 * tree.c (get_unsigned_type): New.
3235 (unsigned_type_for): Use get_unsigned_type instead of
3236 lang_hooks.types.unsigned_type.
3238 2007-05-14 Kazu Hirata <kazu@codesourcery.com>
3240 * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
3241 to m68k_get_function_kind. Update its prototype.
3242 * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
3244 (m68k_interrupt_function_p): Return enum m68k_function_type
3245 instead of bool. Rename to m68k_get_function_kind.
3246 (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
3248 (m68k_compute_frame_layout): Don't mark any register for save
3249 if an interrupt_thread attribute is specified.
3250 (m68k_hard_regno_rename_ok): Update a use of
3251 m68k_interrupt_function_p.
3252 * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
3253 m68k_interrupt_function_p.
3254 (m68k_function_type): New.
3255 * config/m68k/m68k.md (*return): Output a 'sleep' instruction
3256 for a function with an interrupt_thread attribute.
3257 * doc/extend.texi: Document the interrupt_thread attribute.
3259 2007-05-13 Daniel Berlin <dberlin@dberlin.org>
3261 Fix PR tree-optimization/31911
3262 * tree-ssa-pre.c (phi_translate): Make sure to cache results even
3263 if they didn't change the expression.
3265 2007-05-13 Zdenek Dvorak <dvorakz@suse.cz>
3267 * tree-scalar-evolution.c (resolve_mixers): Exported.
3268 * tree-scalar-evolution.h (resolve_mixers): Declare.
3269 * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
3270 ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
3271 record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
3272 base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
3273 init_array_ref, init_pointer_ref, analyze_indirect_ref,
3274 strip_conversion, analyze_offset_expr, address_analysis,
3275 object_analysis, analyze_offset): Removed.
3276 (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
3277 split_constant_offset, canonicalize_base_object_address,
3278 object_address_invariant_in_loop_p, disjoint_objects_p,
3279 dr_may_alias_p, dr_address_invariant_p): New functions.
3280 (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
3281 and dr_analyze_alias.
3282 (initialize_data_dependence_relation): Use dr_may_alias_p
3283 and object_address_invariant_in_loop_p.
3284 (compute_self_dependence): Handle the case when DDR_ARE_DEPENDENT (ddr)
3286 (find_data_references_in_stmt): Restrict the analysis of data references
3287 to the given loop nest.
3288 (find_data_references_in_loop): Made static. Pass loop nest to
3289 find_data_references_in_stmt.
3290 (compute_data_dependences_for_loop): Use DR_VOPS.
3291 (free_data_ref): Free DR_VOPS.
3292 * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
3293 (struct innermost_loop_behavior): ... new.
3294 (struct base_object_info): Replaced by ...
3295 (struct indices): ... new.
3296 (struct dr_alias): New.
3297 (enum data_ref_type): Removed.
3298 (struct data_reference): Consist of struct innermost_loop_behavior,
3299 struct indices and struct dr_alias.
3300 (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
3301 (DR_MEMTAG): Renamed to ...
3302 (DR_SYMBOL_TAG): ... this.
3303 (find_data_references_in_loop): Declaration removed.
3304 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
3305 instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL.
3306 (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
3307 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
3309 2007-05-13 Revital Eres <eres@il.ibm.com>
3311 * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
3312 which walks virtual def-use chains to find redundant stores.
3313 (dse_optimize_stmt): Call it.
3315 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
3317 * gcse.c (gcse_main): Do jump bypassing in CPROP2.
3318 * passes.c (init_optimization_passes): Move pass_jump_bypass
3321 * basic-block.h (bb_has_eh_pred): Fix style issue.
3323 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
3325 PR rtl-optimization/31848
3326 * loop-invariant.c (move_invariant_reg): If we move an insn
3327 with a REG_EQUAL note, and that insn is not always executed,
3328 remove the REG_EQUAL note.
3330 2007-05-12 Richard Guenther <rguenther@suse.de>
3332 PR tree-optimization/31797
3333 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
3334 propagate into a stmt that has volatile ops.
3336 2007-05-12 Richard Sandiford <richard@codesourcery.com>
3338 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
3339 (gcc_tooldir): Likewise.
3340 * configure: Regenerate.
3341 * Makefile.in (libsubdir_to_prefix): New variable, based on the
3342 old configure.ac gcc_tooldir setting.
3343 (prefix_to_exec_prefix): New variable.
3344 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
3345 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
3347 2007-05-11 Silvius Rus <rus@google.com>
3349 * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
3350 * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
3351 * c-common.h (strict_aliasing_warning): Change return type.
3352 * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
3353 * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
3354 (build_c_cast): Condition call to strict_aliasing_warning.
3355 * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
3356 * flags.h (set_Wstrict_aliasing): Declare.
3357 * opts.c (set_Wstrict_alising): Define, add call to.
3358 * tree-flow.h (strict_aliasing_warning_backend): Declare.
3359 * tree-ssa-alias-warnings.c: New file.
3360 * tree-ssa-alias.c (compute_may_aliases): Add call to
3361 strict_aliasing_warning_backend.
3363 2007-05-11 Zdenek Dvorak <dvorakz@suse.cz>
3365 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
3366 Use loop_depth and loop_outer accessor functions.
3367 * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
3368 determine_invariantness_stmt, move_computations_stmt): Ditto.
3369 * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
3370 add_loop, loopify, unloop, fix_loop_structure): Ditto.
3371 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
3372 * tree-scalar-evolution.c (interpret_loop_phi,
3373 compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
3374 instantiate_parameters_1, scev_const_prop): Ditto.
3375 * cfghooks.c (make_forwarder_block): Ditto.
3376 * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
3377 * modulo-sched.c (loop_canon_p): Ditto.
3378 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
3379 slpeel_can_duplicate_loop_p): Ditto.
3380 * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
3381 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
3382 * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
3383 cancel_loop, verify_loop_structure): Ditto.
3384 (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
3385 add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
3386 superloops vector instead of "pred" array.
3387 (establish_preds): Take father loop as an argument. Initialize the
3389 (flow_loop_tree_node_add): Pass father loop to establish_preds. Do not
3390 initialize loop->outer.
3391 (flow_loop_tree_node_remove): Truncate the superloops vector.
3392 * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
3393 "pred" merged to "superloops" vector.
3394 (loop_depth, loop_outer): New.
3395 (fel_init): Use loop_outer.
3397 2007-05-11 Jan Hubicka <jh@suse.cz>
3399 * cgraphunit.c: Include gt-cgraphunit.h
3400 (static_ctors, static_dtors): New static vars.
3401 (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
3402 based on implementation in c-common.c
3403 (cgraph_finalize_function): Call record_cdtor_fn.
3404 (cgraph_optimize): Call cgraph_build_cdtor_fns.
3405 * decl.c (finish_function): Do not call c_record_cdtor_fn.
3406 (c_write_global_declarations): Do not call c_build_cdtor_fns.
3407 * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
3408 build_cdtor, c_build_cdtor_fns): Remove.
3409 * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
3410 c_build_cdtor_fns): Remove prototype.
3412 2007-05-11 Paolo Carlini <pcarlini@suse.de>
3415 * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
3416 * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
3417 * builtins.c (fold_builtin_memchr): New.
3418 (expand_builtin_memchr): Call the latter.
3419 (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
3420 * doc/extend.texi ([Other built-in functions provided by GCC]):
3423 2007-05-11 Andreas Krebbel <krebbel1@de.ibm.com>
3425 * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
3426 PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
3427 PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
3428 PFPO_OP1_TYPE_SHIFT): Constants added.
3429 (DFP_ALL): Mode macro defined.
3430 ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
3431 "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
3432 Insn definitions added.
3433 ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
3434 "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
3437 2007-05-10 Zdenek Dvorak <dvorakz@suse.cz>
3439 PR tree-optimization/31885
3440 * tree-chrec.c (chrec_contains_undetermined): Do not consider NULL_TREE
3442 (automatically_generated_chrec_p): Return false for NULL.
3444 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
3446 * config/bfin/bfin.h (MOVE_RATIO): Define.
3448 2007-05-10 Richard Sandiford <richard@codesourcery.com>
3450 * config.gcc (sparc-wrs-vxworks): New target.
3451 * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
3452 * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
3453 * config/sparc/sparc.h: Include vxworks-dummy.h.
3454 (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
3455 include LABEL_REFs too.
3456 * config/sparc/sparc.c (sparc_expand_move): Don't assume that
3457 _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
3459 (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
3461 (load_pic_register): Use gen_vxworks_load_got for VxWorks.
3462 (sparc_emit_call_insn): New function.
3463 (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
3464 functions when generating VxWorks PIC.
3465 * config/sparc/sparc.md (vxworks_load_got): New pattern.
3466 (call, call_value): Use sparc_emit_call_insn instead of
3469 2007-05-09 Bob Wilson <bob.wilson@acm.org>
3471 * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
3473 2007-05-09 Bob Wilson <bob.wilson@acm.org>
3475 * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
3476 for floating-point values if HOST_BITS_PER_LONG > 32. Use split_double
3477 instead of operand_subword.
3479 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
3481 * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
3482 * config/bfin/bfin.c (bfin_local_alignment): New function.
3483 * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
3485 2007-05-08 Chao-ying Fu <fu@mips.com>
3487 * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
3488 * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
3489 (smsub_widen_optab, umsub_widen_optab): Define.
3490 * optabs.c (init_optabs): Initialize smsub_widen_optab and
3492 * genopinit.c (optabs): Fill in smsub_widen_optab and
3494 * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
3495 and umsub_widen_optab to implement multiply-subtract sequences.
3496 * config/mips/mips.md (*msac<u>_di): Rename to...
3497 (<u>msubsidi4): ...this. Extend condition to include
3498 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
3499 of operand 0 to "ka" and use the three-operand form of msub<u>
3501 * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
3504 2007-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
3506 PR rtl-optimization/28011
3507 * reload.c (push_reload): Set dont_share if IN appears in OUT
3508 also when IN is a PLUS rtx.
3509 (reg_overlap_mentioned_for_reload_p): Return true if X and IN
3512 2007-05-08 Kazu Hirata <kazu@codesourcery.com>
3514 * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL. Don't
3515 call unshare_all_decls.
3516 (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
3517 (unshare_all_decls): Remove.
3519 2007-05-08 Simon Martin <simartin@users.sourceforge.net>
3522 * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
3525 2007-05-08 Sandra Loosemore <sandra@codesourcery.com>
3526 Nigel Stephens <nigel@mips.com>
3528 * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
3529 Update comments and all uses.
3530 (MIN_FPRS_PER_FMT): Define.
3531 * config/mips/mips.c (function_arg): Fix to correctly handle
3532 the -mips32r2 -mfp64 -mabi=32 case.
3533 (override_options): Enable use of odd-numbered registers for
3534 SFmode values on MIPS32.
3535 (mips_save_reg_p): Save whole floating-point register pair if
3536 either half is used.
3537 (compute_frame_size): Fix comment.
3539 2007-05-08 Jie Zhang <jie.zhang@analog.com>
3541 * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
3542 argument of type bool.
3543 * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
3544 argument. Safely select temporary P register according to it.
3545 (do_link): Change call site of add_to_reg accordingly.
3546 (do_unlink): Add epilogue_p as a fourth argument and pass it
3548 (expand_interrupt_handler_epilogue): Change call of do_unlink
3550 (bfin_expand_prologue): Add a third argument sibcall_p.
3551 * config/bfin/bfin.md (epilogue): Change call of
3552 bfin_expand_epilogue accordingly.
3553 (sibcall_epilogue): Likewise.
3554 (eh_return_internal): Likewise.
3556 * config/bfin/bfin-protos.h (enum bfin_cpu): Add
3557 BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
3558 * config/bfin/bfin.c (bfin_handle_option): Handle
3559 -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
3560 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
3561 Support bf534, bf536 and bf561.
3562 * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
3564 2007-05-08 Uros Bizjak <ubizjak@gmail.com>
3567 * config/i386/i386.c (ix86_function_regparm): Process local
3568 functions only when TREE_CODE (decl) equals FUNCTION_DECL.
3570 2007-05-07 Mike Stump <mrs@apple.com>
3572 * doc/invoke.texi (Warning Options): Document that -Wempty-body
3573 also checks for and while statements in C++.
3575 2007-05-07 Nathan Froyd <froydnj@codesourcery.com>
3577 * gcc.c (at_file_supplied): New variable.
3578 (main): Set it if we expanded argv.
3579 (do_spec_1): Pass an @-file to the linker if we were called with
3580 an @-file argument and HAVE_GNU_LD.
3581 * collect2.c (at_file_supplied): New variable.
3582 (response_file): New variable.
3583 (collect_exit): Unlink response_file if necessary.
3584 (handler): Likewise.
3585 (do_wait): Likewise.
3586 (main): Set at_file_supplied if we expanded argv.
3587 (collect_execute): Pass an @-file to subprocesses if we were called
3588 with an @-file argument.
3589 * configure.ac: Add define for HAVE_GNU_LD.
3590 * configure: Regenerate.
3591 * config.in: Regenerate.
3593 2007-05-07 Naveen.H.S <naveen.hs@kpitcummins.com>
3595 * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
3601 2007-05-07 Jayant Sonar <jayants@kpitcummins.com>
3603 * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
3604 (TARGET_ENCODE_SECTION_INFO): Re-define.
3605 (m32c_encode_section_info): New
3606 (function_vector_handler): New
3607 (current_function_special_page_vector): New
3608 (m32c_special_page_vector_p): New.
3609 * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
3611 * config/m32c/jump.md: Added instruction JSRS for functions
3612 with attribute "function_vector".
3613 * doc/extend.texi (function_vector): Added description
3614 for M16C, M32C targets.
3616 2007-05-07 DJ Delorie <dj@redhat.com>
3619 * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
3620 ashrpsi3, lshrpsi3): Update shift count constraint.
3622 2007-05-07 Danny Smith <dannysmith@users.sourceforge.net>
3623 Nathan Froyd <froydnj@codesourcery.com>
3626 * c-incpath.c (add_path): Strip trailing path separators.
3628 2007-05-07 Eric Botcazou <ebotcazou@adacore.com>
3630 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
3631 Free dominance info before purging EH edges.
3632 (eliminate_degenerate_phis): Likewise.
3633 (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
3635 2007-05-07 Jan Hubicka <jh@suse.cz>
3637 * gimplify.c (gimplify_expr): Do not crash when folding
3638 (void *)(int)&a + 4.
3640 2007-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3643 * c-opts.c (lang_fortran): Make it non static.
3644 * c-common.h (lang_fortran): New prototype.
3645 * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
3646 -lang-fortran option was passed by the driver.
3648 2007-05-06 Eric Botcazou <ebotcazou@adacore.com>
3650 * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
3651 of ASSERT_CHECKING. Tweak message.
3653 2007-05-06 Revital Eres <eres@il.ibm.com>
3656 * loop-unroll.c (insert_var_expansion_initialization):
3657 Initialize the expansions with -zero instead of +zero.
3659 2007-05-05 Aurelien Jarno <aurelien@aurel32.net>
3661 * config/pa/pa.md: Split tgd_load, tld_load and tie_load
3662 into pic and non-pic versions. Mark r19 as used for
3663 tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
3664 for tgd_load, tld_load and tie_load .
3665 * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
3666 version of tgd_load, tld_load and tie_load depending on the
3669 2007-05-04 Ulrich Drepper <drepper@redhat.com>
3670 Jakub Jelinek <jakub@redhat.com>
3672 * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
3673 (__do_global_dtors_aux): Use more paranoid loop to run
3674 destructors if HIDDEN_DTOR_LIST_END.
3675 (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
3677 2007-05-04 Jakub Jelinek <jakub@redhat.com>
3679 * varasm.c (align_variable): Don't increase alignment for
3680 DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
3681 DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
3683 2007-05-04 Josh Conner <jconner@apple.com>
3685 * basic-block.h (cdi_direction): Assign values to all enumeration
3687 (dom_computed): Remove.
3688 (dom_info_state): New.
3689 (set_dom_info_availability): New.
3690 * tree-ssa-loop-im.c (determine_invariantness): Initialize
3691 walk_data.dom_direction.
3692 * cfghooks.c (delete_basic_block): Use dom_info_available_p()
3693 instead of dom_computed[].
3694 (split_edge): Likewise.
3695 (create_basic_block): Likewise.
3696 (merge_blocks): Likewise.
3697 * ifcvt.c (find_if_header): Likewise.
3698 * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
3699 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
3700 * tree-ssa.c (verify_ssa): Likewise.
3701 * tree-cfg.c (tree_verify_flow_info): Likewise.
3702 (remove_edge_and_dominated_blocks): Likewise.
3703 * dominance.c (dom_computed): Make static.
3704 (calc_dfs_tree_nonrec): Change third param to a bool.
3705 (calc_dfs_tree): Change second param to a bool.
3706 (calc_idioms): Change second param to a bool. Use
3707 dom_convert_dir_to_idx.
3708 (init_dom_info): Validate dir before using.
3709 (dom_convert_dir_to_idx): New.
3710 (calculate_dominance_info): Use dom_convert_dir_to_idx. New
3711 variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
3712 (free_dominance_info): Use dom_convert_dir_to_idx.
3713 (get_immediate_dominator): Likewise.
3714 (set_immediate_dominator): Likewise.
3715 (get_dominated_by): Likewise.
3716 (redirect_immediate_dominators): Likewise.
3717 (nearest_common_denominator): Likewise.
3718 (dominated_by_p): Likewise.
3719 (bb_dom_dfs_in): Likewise.
3720 (bb_dom_dfs_out): Likewise.
3721 (recount_dominator): Likewise.
3722 (iterate_fix_dominators): Likewise.
3723 (add_to_dominance_info): Likewise.
3724 (delete_from_dominance_info): Likewise.
3725 (first_dom_son): Likewise.
3726 (next_dom_son): Likewise.
3727 (dom_info_available_p): Likewise.
3728 (dom_info_state): New.
3729 (set_dom_info_availability): New.
3731 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
3733 * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
3735 ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
3737 2007-05-04 Bob Wilson <bob.wilson@acm.org>
3739 * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
3740 (subdi3, subdi_carry): Delete.
3742 2007-05-04 Jan Hubicka <jh@suse.cz>
3743 Richard Guenther <rguenther@suse.de>
3745 * opts.c (decode_options): Do not fiddle with inlining
3746 parameters in case of optimizing for size.
3747 * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
3748 for size do nothing.
3749 (cgraph_decide_inlining_of_small_function): When optimizing for
3750 size never inline functions increasing caller size.
3751 (cgraph_early_inlining): Inline for size when optimizing for size.
3753 2007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
3755 * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
3756 logical operations piecewise.
3757 (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
3758 zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
3759 subdi_sesidi_di): Delete.
3760 (add_with_carry): Produce carry in CC instead of a DREG to shorten
3761 the generated sequence. Allow three-reg add in constraints. Rewrite
3762 the rtl expression for carry to avoid zero_extend of a constant.
3763 (sub_with_carry): New pattern.
3764 (adddi3, subdi3): Change into define_expand. For subtract, generate a
3765 different sequence not involving jumps.
3766 (notbi): Now a named pattern.
3768 2007-05-04 Bradley Lucier <lucier@math.purdue.edu>
3770 * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
3771 Add the note about a significant loss of accuracy of some
3772 mathematical routines when these options are used.
3774 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3776 * haifa-sched.c (rtx_vec_t): New typedef.
3777 (contributes_to_priority_p): Extract piece of priority () into new
3779 (priority): Use the function. Add assertion.
3780 (rank_for_schedule, set_priorities): Add assertion to check that
3781 insn's priority is initialized.
3782 (clear_priorities, calc_priorities): Change signature. Make it update
3783 all relevant insns. Update all callers ('add_to_speculative_block ()'
3784 and 'create_block_check_twin ()').
3785 * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
3786 Add new field 'priority_status'.
3787 (INSN_PRIORITY_STATUS): New macro.
3788 (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
3790 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3792 * sched-ebb.c (debug_ebb_dependencies): New static function.
3793 (init_ready_list): Use it.
3795 * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
3796 with changed signature and 'debug_rgn_dependencies ()'.
3797 (debug_rgn_dependencies): New static function.
3798 (init_ready_list): Use it.
3800 * sched-int.h (debug_dependencies): Declare.
3802 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
3804 * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
3806 2007-05-04 Dirk Mueller <dmueller@suse.de>
3808 * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
3810 2007-05-03 Jan Hubicka <jh@suse.cz>
3812 * fold-const.c (fold_unary): Convert (T1)(X op Y) into ((T1)X op (T1)Y),
3813 for pointer type in more cases than before.
3815 * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
3817 * tree-object-size.c (plus_expr_object_size): When operand size is
3818 unknown, return unknown.
3820 2007-05-03 Dirk Mueller <dmueller@suse.de>
3822 * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
3824 * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
3827 * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
3829 2007-05-03 Janis Johnson <janis187@us.ibm.com>
3831 * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
3833 2007-05-03 Joseph Myers <joseph@codesourcery.com>
3835 * config/soft-fp/double.h, config/soft-fp/extended.h,
3836 config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
3837 config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
3838 config/soft-fp/op-2.h, config/soft-fp/op-4.h,
3839 config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
3842 2007-05-03 Ian Lance Taylor <iant@google.com>
3844 * config/rs6000/rs6000.c (rs6000_override_options): Don't set
3845 MASK_PPC_GFXOPT for 8540 or 8548.
3847 2007-05-03 Uros Bizjak <ubizjak@gmail.com>
3849 * tree-vect-transform.c (vect_update_inits_of_drs): Use
3850 vect_print_dump_info() to output debug information.
3852 2007-05-03 Uros Bizjak <ubizjak@gmail.com>
3855 * config/i386/i386.c (print_operand) ['z']: Output 'w' for
3856 operands of size 2 when operand is not MEM_P.
3858 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
3860 PR tree-optimization/30565
3861 * lambda-code.c (perfect_nestify): Fix updating of dominators.
3863 2007-05-03 Bernd Schmidt <bernd.schmidt@analog.com>
3865 * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
3866 (umulsi3_highpart): Use them.
3867 * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
3868 for final accumulator to D regisster tranfser.
3870 2007-05-03 Dorit Nuzman <dorit@il.ibm.com>
3872 PR tree-optimization/31699
3873 * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove wrong
3875 (vect_enhance_data_refs_alignment): Compute peel amount using
3876 TYPE_VECTOR_SUBPARTS instead of vf.
3877 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
3879 2007-05-02 Brooks Moses <brooks.moses@codesourcery.com>
3882 * system.h: Remove inclusion of double-int.h
3883 * tree.h: Include double-int.h
3884 * gengtype.c: Likewise
3885 * cfgloop.h: Likewise
3886 * Makefile.in: Adjust dependencies on double-int.h
3888 2007-05-02 Eric Christopher <echristo@apple.com>
3890 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
3891 -shared to -Zdynamiclib.
3893 2007-05-02 Seongbae Park <seongbae.park@gmail.com>
3896 * c-common.c (strip_pointer_or_array_types): New function.
3897 * c-common.h (strip_pointer_or_array_types): New function declaration.
3899 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
3901 PR tree-optimization/31771
3902 * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
3904 2007-05-02 Paul Brook <paul@codesourcery.com>
3906 * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
3908 2007-05-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
3911 * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
3914 2007-05-02 Nick Clifton <nickc@redhat.com>
3916 * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
3918 2007-05-02 Richard Guenther <rguenther@suse.de>
3920 PR tree-optimization/31146
3921 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
3922 argument, single_use_p. If we have a single use that is
3923 a conversion to the definition rhs type, propagate that rhs.
3924 (forward_propagate_addr_expr): Pass single_use_p argument
3925 to forward_propagate_addr_expr_1.
3927 2007-05-01 H.J. Lu <hongjiu.lu@intel.com>
3929 * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
3932 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3934 * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
3935 'AMD Family 10 core'.
3937 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3939 * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
3940 and athlon64-sse3 as improved versions of k8, opteron and athlon64
3941 with SSE3 instruction set support.
3942 * doc/invoke.texi: Likewise.
3944 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3946 * config/i386/i386.c (override_options): Tuning 32-byte loop
3947 alignment for amdfam10 architecture. Increasing the max loop
3948 alignment to 24 bytes.
3950 2007-05-01 Kazu Hirata <kazu@codesourcery.com>
3952 * config/m68k/constraints.md: New.
3953 * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
3954 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
3955 EXTRA_CONSTRAINT): Remove.
3956 * config/m68k/m68k.md: Include constraints.md.
3957 * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
3959 2007-05-01 Ian Lance Taylor <iant@google.com>
3961 PR tree-optimization/31739
3962 * tree-vrp.c (vrp_val_is_max): New static function.
3963 (vrp_val_is_min): New static function.
3964 (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
3966 (set_value_range): Use vrp_val_is_{max,min}.
3967 (extract_range_from_assert): Likewise.
3968 (extract_range_from_binary_expr): Likewise.
3969 (extract_range_from_unary_expr): Likewise.
3970 (dump_value_range, vrp_meet): Likewise.