1 2006-11-27 Michael Matz <matz@suse.de>
2 Andreas Krebbel <krebbel1@de.ibm.com>
5 * config/s390/predicates.md (larl_operand): Check addend of larl
6 operand to be in range of -/+2GB.
7 * config/s390/s390.c (legitimize_pic_address): Likewise.
8 Changed type of variable even to HOST_WIDE_INT.
10 2006-11-27 Jan Hubicka <jh@suse.cz>
12 * expr.c (emit_block_move_via_libcall): Export.
13 (clear_storage_via_libcall): Rename to ...
14 (set_storage_via_libcall): ... this one; handle arbitrary value to set.
15 (clear_storage): Update to set_storage_via_libcall.
16 * expr.h (emit_block_move_via_libcall): Declare
17 * config/i386/i386.h (stringop_alg): New enum.
18 (MAX_STRINGOP_ALGS): New constant.
19 (stringop_algs): New struct.
20 (processor_costs): Add memcpy/memset descriptors.
21 (TARGET_REP_MOVEL_OPTIMAL): Remove.
22 * config/i386/i386.md (movsi_insv_1_rex64): New pattern.
23 (strmovsi, strmovdi, strsetsi, strsetdi): Update; accept all operands
25 * config/i386/i386.opt (minline-stringops-dynamically,
26 mstringop-strategy): New
28 * config/i386/i386-prostos.h (ix86_expand_movmem): Update prototype.
29 (ix86_expand-clrmem): Rename to ...
30 (ix86_expand_setmem): ... this one; update prototype.
31 * config/i386/i386.c (DUMMY_STRINGOP_ALGS): New constant.
32 (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
33 geode_cost, k6_cost, athlon_cost, k8_cost, pentium4_cost,
34 nocona_cost, core2_cost, generic_cost, generic64_cost,
35 generic32_cost): Add memcpy/memset descriptors.
36 (x86_rep_movl_optimal): Remove.
37 (stringop_alg): New static variable.
38 (ix86_expand_aligntest): Handle predictions.
39 (override_options): Add strgop_alg handling.
40 (predict_jump): New function.
41 (scale_counter): New function.
42 (expand_set_or_movmem_via_loop): New function.
43 (expand_movmem_via_rep_mov): New function.
44 (expand_setmem_via_rep_stots): New function.
45 (emit_strmov): New function.
46 (expand_movmem_epilogue): New function.
47 (expand_setmem_epilogue_via_loop): New function.
48 (expand_setmem_epilogue): New function.
49 (expand_movmem_prologue): New function.
50 (expand_setmem_prologue): New function.
51 (decide_alg): New function.
52 (decide_alignment): New function.
53 (ix86_exand_movmem): Rewrite.
54 (promote_duplicated_reg): New function.
55 (ix86_expand_clrmem): Rename to ...
56 (ix86_expand_setmem): ... this one. Rewrite.
58 * invoke.texi (minline-stringops-dynamically): New command line option.
59 (mstringop-strategy): Likewise.
61 2006-11-27 Jan Hubicka <jh@suse.cz>
63 * cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
64 * rtl.texi (NOTE_INSN_FUNCTION_END): Remove.
65 * final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END.
66 * insn-notes.def (FUNCTION_END): Remove.
67 * jump.c (delete_related_insns): Don't worry about FUNCTION_END.
68 (redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END
70 * ifcvt.c (dead_or_predictable): Update call of redirect_jump_2.
71 * function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END
72 * cfglayout.c (duplicate_insn_chain): Don't worry about
75 2006-11-27 Richard Guenther <rguenther@suse.de>
76 Zdenek Dvorak <dvorakz@suse.cz>
78 * target.h (struct gcc_target): Add builtin_vectorized_function
80 * target-def.h (TARGET_VECTORIZE): Likewise.
81 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
82 Document new target hook.
83 * targhooks.h (default_builtin_vectorized_function): Declare.
84 * targhooks.c (default_builtin_vectorized_function): Define.
85 * tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type.
86 (vectorizable_call): Declare.
87 * tree-vect-analyze.c (vect_analyze_operations): Call
89 * tree-vect-transform.c (vectorizable_function): New static function.
90 (build_vectorized_function_call): Likewise.
91 (vectorizable_call): New function.
92 (vect_transform_stmt): Handle vectorizable calls.
94 2006-11-27 Richard Guenther <rguenther@suse.de>
97 * builtins.c (expand_builtin_pow): Optimize non integer valued
98 constant exponents using sqrt or cbrt if possible. Always fall back
99 to expanding via optabs.
101 2006-11-27 Ira Rosen <irar@il.ibm.com>
103 PR tree-optimization/22372
104 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert
105 the type of the base address.
106 (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use
107 it in the data-ref pointer creation.
108 (vect_init_vector): Add an argument, type of the init vector. Use it in
110 (vect_get_vec_def_for_operand): Fix calls to vect_init_vector.
111 (get_initial_def_for_reduction): Likewise.
112 (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to
114 (vectorizable_assignment, vect_permute_store_chain): Likewise.
115 (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the
116 correct type in stmt creation.
117 (vect_setup_realignment): Use the correct type in stmt creation.
118 (vect_permute_load_chain): Change type of MODIFY_EXPR to
120 (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type
121 of MODIFY_EXPR to void_type_node.
122 (vectorizable_condition): Change type of MODIFY_EXPR to
124 (vect_update_ivs_after_vectorizer): Use the correct type in stmt
127 2006-11-27 Uros Bizjak <ubizjak@gmail.com>
130 2006-05-08 Uros Bizjak <uros@kss-loka.si>
131 * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
132 standard 80387 constants, raise the cost to prevent
133 compress_float_constant() to generate load from memory.
135 * config/i386/i386.md: Add new splitter pattern to split
136 float_extended load of constant from constant pool into
139 2006-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
141 * doc/install.texi: Move GMP/MPFR configure options from Fortran
142 section to general section. Remove documentation for
143 --with-mpfr-dir and --with-gmp-dir, add documentation for
144 --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and
147 * builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments.
149 2006-11-26 Razya Ladklesky <razya@il.ibm.com>
151 * testsuite/gcc.dg/ipa/ipa-6.c: New.
153 2006-11-26 Razya Ladklesky <razya@il.ibm.com>
155 PR tree-optimization/29122
156 * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME
157 for the new version. Assign NULL to DECL_RTL of the new version.
159 2006-11-25 Uros Bizjak <ubizjak@gmail.com>
161 * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling.
163 2006-11-25 Steven Bosscher <steven@gcc.gnu.org>
165 * cse.c (cse_altered): Remove.
166 (record_jump_equiv): Make true/false argument a bool instead
168 (cse_insn): Don't set cse_altered. Use delete_insn_and_edges
169 where appropriate. Emit a new jump before the existing one
170 instead of after so that delete_insn_and_edges removes the
171 dead edges properly. Check any_condjump_p before calling
173 (cse_basic_block): Check any_condjump_p before calling
175 (cse_main): Don't set/check cse_altered. Remove USE_C_ALLOCA.
177 2006-11-25 Brooks Moses <brooks.moses@codesourcery.com>
179 * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
180 -ffixed-line-length-* options.
182 2006-11-25 Uros Bizjak <ubizjak@gmail.com>
184 * config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387.
185 (fprem1xf4): Rename to fprem1xf4_i387.
187 (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro.
188 Rename patterns to fmod<mode>3. Use general_operand operand
189 constraint for operands 1 and 2. Use SSE_FLOAT_MODE_P to disable
190 patterns for SSE math.
191 (remaindersf3, remainderdf3): Ditto.
193 2006-11-25 Joseph Myers <joseph@codesourcery.com>
195 * function.c (instantiate_virtual_regs_in_insn): Call force_reg
196 inside start_sequence / end_sequence pair.
198 2006-11-25 Steven Bosscher <steven@gcc.gnu.org>
200 * jump.c (mark_all_labels): Work in cfglayout mode.
201 * cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables
202 when in cfglayout mode, because there are no dead jumptables
204 * cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when
206 (commit_edge_insertions): Do not allow insertion of instructions
207 with control flow insns when in cfglayout mode.
209 2006-11-25 Zdenek Dvorak <dvorakz@suse.cz>
211 * tree-vrp.c (execute_vrp): Do not pass loops structure through
213 * loop-unswitch.c (unswitch_loops, unswitch_single_loop,
214 unswitch_loop): Ditto.
215 * tree-loop-linear.c (linear_transform_loops): Ditto.
216 * tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
217 tree_ssa_lim): Ditto.
218 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
219 free_numbers_of_iterations_estimates): Ditto.
220 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
221 tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
222 * cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
223 remove_path, add_loop, loopify, unloop, fix_loop_placements,
224 place_new_loop, duplicate_loop, duplicate_subloops,
225 update_single_exit_for_duplicated_loops, copy_loops_to,
226 duplicate_loop_to_header_edge, create_preheaders,
227 force_single_succ_latches, loop_version, fix_loop_structure):
229 * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
230 tree_unroll_loop): Ditto.
231 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
232 * tree-scalar-evolution.c (select_loops_exit_conditions,
233 scev_initialize, scev_analysis): Ditto.
234 * tree-scalar-evolution.h (scev_initialize): Ditto.
235 * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
236 * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
237 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
238 * modulo-sched.c (sms_schedule): Ditto.
239 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
240 * loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
241 rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
242 * ifcvt.c (if_convert): Ditto.
243 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
244 canonicalize_loop_induction_variables,
245 canonicalize_induction_variables,
246 tree_unroll_loops_completely, remove_empty_loops): Ditto.
247 * tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
248 tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
249 tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
250 tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
251 tree_ssa_loop_done): Ditto.
252 * predict.c (predict_loops, tree_estimate_probability, estimate_loops,
253 estimate_bb_frequencies): Ditto.
254 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
255 slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
256 * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
257 decide_unrolling_and_peeling, peel_loop_completely,
258 unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
259 peel_loop_simple, unroll_loop_stupid): Ditto.
260 * loop-doloop.c (doloop_optimize_loops): Ditto.
261 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
262 * loop-invariant.c (move_loop_invariants): Ditto.
263 * tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
264 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
265 tree_ssa_prefetch_arrays): Ditto.
266 * lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
268 * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
269 vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
270 * cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
271 mark_single_exit_loops, cancel_loop, cancel_loop_tree,
272 verify_loop_structure): Ditto.
273 * tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
274 canonicalize_induction_variables, tree_unroll_loops_completely,
275 tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
276 estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
277 tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
278 tree_unroll_loop, linear_transform_loops): Declaration changed.
279 * basic-block.h: Remove declaration of struct loops.
280 * cfghooks.h (struct cfg_hooks): Change type of
281 cfg_hook_duplicate_loop_to_header_edge.
282 (cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
283 * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
284 vect_transform_loop): Declaration changed.
285 * lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
286 * cfgloop.h (flow_loops_dump, fix_loop_structure,
287 mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
288 cancel_loop_tree, create_preheaders, force_single_succ_latches,
289 verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
290 loopify, loop_version, remove_path, unswitch_loops,
291 unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
294 2006-11-24 Uros Bizjak <ubizjak@gmail.com>
296 * config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition.
297 (X87MODEF): New mode macro.
298 (ssemodefsuffix): New mode attribute.
299 (truncxf<mode>2_i387_noop_unspec): New insn pattern.
300 (sqrt_extend<mode>xf2_i387): New insn pattern.
301 (sqrt<mode>2): For non-SSE sqrt, emit sqrt_extend<mode>xf2_i387
302 insn and truncate result back to original mode using
303 UNSPEC_TRUNC_NOOP truncation.
304 (*sqrt<mode>2_sse): Implement using SSEMODEF mode macro and
305 ssemodefsuffix mode attribute.
306 (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387)
307 (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387)
308 (*sqrtextenddfxf2_i387): Remove insn patterns.
310 (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop
313 * reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP.
315 2006-11-24 Jakub Jelinek <jakub@redhat.com>
318 * c-tree.h (c_maybe_initialize_eh): New prototype.
319 * c-decl.c (finish_decl): Move EH initialization...
320 (c_maybe_initialize_eh): ... here. New function.
321 * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh
322 if not #pragma omp atomic.
325 * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
326 or UNION_TYPE inner types.
328 2006-11-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
331 * ipa-pure-const.c (check_tree): If the original tree
332 is volatile return early and say the function is not pure
333 nor const. Remove the volatile check for writes.
334 (analyze_function): Print out the result of the local
337 2006-11-24 Joseph Myers <joseph@codesourcery.com>
339 * config/rs6000/eabispe.h (TARGET_DEFAULT): Include
341 * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
342 * config/rs6000/rs6000.c (rs6000_override_options): Use
343 MASK_STRICT_ALIGN for 8540 and 8548. Add MASK_STRICT_ALIGN to
346 2006-11-24 Andreas Krebbel <krebbel1@de.ibm.com>
348 * config/s390.c (s390_emit_compare_and_swap): New function.
349 (s390_expand_cs_hqi, s390_expand_atomic): Call
350 s390_emit_compare_and_swap.
352 2006-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
354 * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
356 2006-11-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
360 * c-common.c (conversion_warning): New.
361 (convert_and_check): Call conversion_warning unless there is an
363 * doc/invoke.texi (-Wconversion): Update description.
365 2006-11-23 Daniel Berlin <dberlin@dberlin.org>
367 * tree-ssa-alias.c (tree_pointer_compare): New function.
368 (compact_name_tags): New function.
369 (group_aliases): Call compact_name_tags.
371 2006-11-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
373 * real.h (real_isinteger): Declare.
374 * real.c (real_isinteger): Define.
375 * builtins.c (integer_valued_real_p): Use it.
377 2006-11-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
380 * c.opt (Wtraditional-conversion): New.
381 (Wconversion): Update description.
382 * c-typeck.c (convert_arguments): Warnings for prototypes causing
383 type conversions different from what would happen in the absence
384 of prototype are now handled by Wtraditional-conversion.
385 * doc/invoke.texi (Wtraditional-conversion): New.
386 (Wconversion): Update description.
387 * doc/trouble.texi (Wconversion): Replace Wconversion by
388 Wtraditional-conversion.
390 2006-11-23 Andrew Pinski <pinskia@gmail.com>
392 * predict.c (tree_estimate_probability): Check to make
393 sure current_loops is non null before calling flow_loops_dump.
395 2006-11-23 Bernd Schmidt <bernd.schmidt@analog.com>
397 * var-tracking.c (emit_note_insn_var_location): Revert previous patch.
399 2006-11-23 David Ung <davidu@mips.com>
401 * config/mips/mips.h (ISA_HAS_FP4): Add MIPS32R2 + 64bit fpu
403 (ISA_HAS_MXHC1): True if ISA supports mfhc1 and mthc1 opcodes.
404 (ASM_SPEC): Pass along -mfp32 and -mfp64.
405 * config/mips/mips.c (mips_split_64bit_move): Use gen_mthc1 to set
406 high part of FP register when in 64-bit FP register mode. Similarly
407 use gen_mfhc1 to load high part of FP register.
408 (override_options): Allow -mgp32 and -mfp64 combination if
409 ISA_HAS_MXHC1 (currently for O32 only).
410 (mips_cannot_change_mode_class): If floating-point registers are
411 bigger than word size. disallow conversion of float register from a
412 large integer mode to a float mode smaller than the float register
414 (mips_class_max_nregs): Handle float registers case seperately.
415 * config/mips/mips.md (define_constants): Add UNSPEC_MFHC1,
417 (movdi_32bit): Use !TARGET_FLOAT64 in condition pattern.
418 (movdf_hardfloat_32bit): Similarly.
419 (movdi_gp32_fp64): New DImode pattern for MIPS32R2 which optionally
420 support a full 64-bit fpu.
421 (mthc1): New pattern to generate MTHC1 instruction.
422 (mfhc1): New pattern to generate MFHC1 instruction.
423 * doc/invoke.texi (MIPS Options): Document the -mgp32 -mfp64
424 option for the MIPS32R2 and mention its use under O32 ABI.
426 2006-11-23 Bernd Schmidt <bernd.schmidt@analog.com>
428 * var-tracking.c (emit_note_insn_var_location): Take care not to
429 cause verify_flow_info failures.
431 2006-11-22 Daniel Berlin <dberlin@dberlin.org>
433 * tree-ssa-structalias.c: Remove edge weights in favor of just
434 processing them as complex constraints.
435 (struct constraint_graph): Remove weighted succs and preds. Rename
436 nonweighted succs and preds.
437 (constraint_edge): Removed.
438 (constraint_edge_t): Ditto.
439 (constraint_edge_pool): Ditto.
440 (new_constraint_edge): Ditto.
441 (constraint_edge_equal): Ditto.
442 (constraint_edge_less): Ditto.
443 (constraint_edge_vec_find): Ditto.
444 (erase_self_graph_edge): Ditto.
445 (add_graph_edge): Removed.
446 (get_graph_weights): Ditto.
447 (allocate_graph_weights): Ditto.
448 (valid_weighted_graph_edge): Ditto
449 (bitmap_other_than_zero_bit_set): Ditto.
450 (int_add_graph_edge): Renamed to add_graph_edge.
451 (clear_edges_for_node): Remove support for weighted edges.
452 (merge_graph_nodes): Ditto.
453 (valid_graph_edge): Ditto.
454 (build_constraint_graph): Ditto.
456 (collapse_nodes): Ditto.
457 (process_unification_queue): Ditto.
459 (do_ds_constraint): Ditto.
460 (perform_var_subsitution): Ditto.
461 (solve_graph): Ditto.
462 (init_alias_vars): Ditto.
463 (delete_points_to_sets): Ditto.
464 (do_complex_constraint): Support offsetted copies here.
466 2006-11-23 Ulrich Weigand <uweigand@de.ibm.com>
468 * config/spu/spu_intrinsics.h (SPU_RdEventStatMask): Rename to
470 * config/spu/spu_mfcio.h (spu_read_event_mask): Update.
472 * config/spu/spu_mfcio.h (struct mfc_list_element): Change width
475 2006-11-23 Ben Elliston <bje@au.ibm.com>
477 * config/spu/spu-elf.h (LIB_SPEC): Do not link with -lc_p.
479 2006-11-23 Zdenek Dvorak <dvorakz@suse.cz>
481 PR tree-optimization/29921
482 * fold-const.c (operand_equal_p): Without HONOR_SIGNED_ZEROS, consider
483 signed and unsigned zero equal.
485 2006-11-22 Peter Bergner <bergner@vnet.ibm.com>
487 * config/rs6000/rs6000.c (get_store_dest): New.
488 (adjacent_mem_locations): Use get_store_dest() to get
489 the rtl of the store destination.
491 2006-11-22 Joseph Myers <joseph@codesourcery.com>
493 * config/rs6000/spe.md (SPE64): New mode macro.
494 (mov_sidf_e500_subreg0): Change to mov_si<mode>_e500_subreg0. Add
496 (mov_si<mode>_e500_subreg0_2): New.
497 (mov_sidf_e500_subreg4): Change to mov_si<mode>_e500_subreg4. Add
499 (mov_si<mode>_e500_subreg4_2): New.
500 * config/rs6000/predicates.md (input_operand): Do not allow
501 invalid E500 subregs.
502 (rs6000_nonimmediate_operand): Check for invalid E500 subregs also
504 * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
505 involving DFmode if TARGET_E500_DOUBLE. Check for subregs
506 involving vector modes if TARGET_SPE.
508 2006-11-22 Kaz Kojima <kkojima@gcc.gnu.org>
511 2006-11-12 Kaz Kojima <kkojima@gcc.gnu.org>
512 * reorg.c (emit_delay_sequence): Copy the delay slot insn.
514 2006-11-22 Bernd Schmidt <bernd.schmidt@analog.com>
516 * config/bfin/predicates.md (d_register_operand, mem_p_address_operand,
517 mem_i_address_operand): New predicates.
518 * config/bfin/bfin.c (bfin_issue_rate): New function.
519 (TARGET_SCHED_ISSUE_RATE): New macro.
520 * config/bfin/bfin.md (addrtype): New attribute.
521 (slot0, slot1, slot2, store, pregs): New cpu_units.
522 (core): Now a define_reservation.
523 (alu): Remove some insn types from this reservation.
524 (dsp32, load32, loadp, loadi, store32, storep, storei, multi): New
526 (dummy reservation): Don't trigger for mcld insns.
527 (absence_sets): Two new absence sets to enforce slot ordering.
528 (popsi_insn): Set addrtype.
530 2006-11-22 Ira Rosen <irar@il.ibm.com>
532 * doc/c-tree.texi: Document new tree codes.
533 * doc/md.texi: Document new optabs.
534 * tree-pretty-print.c (dump_generic_node): Handle print of new tree
536 * optabs.c (optab_for_tree_code, init_optabs): Handle new optabs.
537 * optabs.h (optab_index): Add new.
538 (vec_extract_even_optab, vec_extract_odd_optab,
539 vec_interleave_high_optab, vec_interleave_low_optab): New optabs.
540 * genopinit.c (vec_extract_even_optab, vec_extract_odd_optab,
541 vec_interleave_high_optab, vec_interleave_low_optab): Initialize
543 * expr.c (expand_expr_real_1): Add implementation for new tree codes.
544 * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
545 * tree-vectorizer.h (stmt_vec_info): Add new fields for interleaving
546 along with macros for their access.
547 * tree-data-ref.h (first_location_in_loop, data_reference): Update
549 * tree-vect-analyze.c (toplev.h): Include.
550 (vect_determine_vectorization_factor): Fix indentation.
551 (vect_insert_into_interleaving_chain,
552 vect_update_interleaving_chain, vect_equal_offsets): New functions.
553 (vect_analyze_data_ref_dependence): Add argument for interleaving
554 check. Check for interleaving if it's true.
555 (vect_check_dependences): New function.
556 (vect_analyze_data_ref_dependences): Call vect_check_dependences for
557 every ddr. Call vect_analyze_data_ref_dependence with new argument.
558 (vect_update_misalignment_for_peel): Update for interleaving.
559 (vect_verify_datarefs_alignment): Check only first data-ref for
561 (vect_enhance_data_refs_alignment): Update for interleaving. Check
562 only first data-ref for interleaving.
563 (vect_analyze_data_ref_access): Check interleaving, update
565 (vect_analyze_data_refs): Call compute_data_dependences_for_loop
566 with different parameters.
567 * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR,
568 VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): New tree codes.
569 * tree-inline.c (estimate_num_insns_1): Add cases for new codes.
570 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
571 Update step in case of interleaving.
572 (vect_strided_store_supported, vect_permute_store_chain): New
574 (vectorizable_store): Handle strided stores.
575 (vect_strided_load_supported, vect_permute_load_chain,
576 vect_transform_strided_load): New functions.
577 (vectorizable_load): Handle strided loads.
578 (vect_transform_stmt): Add argument. Handle strided stores. Check
579 that vectorized stmt exists for patterns.
580 (vect_gen_niters_for_prolog_loop): Update calculation for
582 (vect_transform_loop): Remove stmt_vec_info for strided stores after
583 whole chain vectorization.
584 * config/rs6000/altivec.md (UNSPEC_EXTEVEN, UNSPEC_EXTODD,
585 UNSPEC_INTERHI, UNSPEC_INTERLO): New constants.
586 (vpkuhum_nomode, vpkuwum_nomode, vec_extract_even<mode>,
587 vec_extract_odd<mode>, altivec_vmrghsf, altivec_vmrglsf,
588 vec_interleave_high<mode>, vec_interleave_low<mode>): Implement.
590 2006-11-22 Steven Bosscher <steven@gcc.gnu.org>
592 * cse.c (enum taken): Remove PATH_AROUND.
593 (addr_affects_sp_p, invalidate_skipped_set,
594 invalidate_skipped_block): Remove.
595 (cse_end_of_basic_block): Remove skip_blocks and related code.
596 (cse_main): Don't test for flag_cse_skip_blocks.
597 Update cse_end_of_basic_block call.
598 (cse_basic_block): Likewise. Remove PATH_AROUND case. Remove
599 code to lengthen the path if a jump was simplified.
601 2006-11-22 Zdenek Dvorak <dvorakz@suse.cz>
603 PR rtl-optimization/29924
604 * loop-unroll.c (split_edge_and_insert): Handle the case insns is NULL.
605 (unroll_loop_runtime_iterations): Assert that the argument passed to
606 split_edge_and_insert is not NULL.
607 * loop-doloop.c (add_test): Ditto.
609 2006-11-22 Zdenek Dvorak <dvorakz@suse.cz>
611 * tree-loop-linear.c (linear_transform_loops): Use single_exit accessor
613 * tree-ssa-loop-niter.c (loop_only_exit_p): Ditto.
614 * cfgloopmanip.c (update_single_exits_after_duplication,
615 update_single_exit_for_duplicated_loop, loop_version): Ditto.
616 * tree-scalar-evolution.c (get_loop_exit_condition,
617 get_exit_conditions_rec, loop_closed_phi_def,
618 number_of_iterations_in_loop, scev_const_prop): Ditto.
619 * tree-ssa-loop-ivopts.c (single_dom_exit): Ditto.
620 * modulo-sched.c (generate_prolog_epilog, loop_canon_p, sms_schedule):
622 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
624 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
625 slpeel_update_phi_nodes_for_guard1, slpeel_update_phi_nodes_for_guard2,
626 slpeel_make_loop_iterate_ntimes,
627 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_can_duplicate_loop_p,
628 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
630 * tree-if-conv.c (if_convertible_loop_p): Ditto.
631 * tree-vect-analyze.c (vect_analyze_operations, vect_stmt_relevant_p,
632 vect_analyze_loop_form): Ditto.
633 * lambda-code.c (lambda_loopnest_to_gcc_loopnest, exit_phi_for_loop_p,
634 can_convert_to_perfect_nest, perfect_nestify): Ditto.
635 * tree-vect-transform.c (vect_create_epilog_for_reduction,
636 vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
637 vect_transform_loop): Ditto.
638 * cfgloop.c (mark_single_exit_loops, verify_loop_structure): Ditto.
639 (single_exit, set_single_exit): New functions.
640 * cfgloop.h (struct loop): Rename single_exit field to single_exit_.
641 (single_exit, set_single_exit): Declare.
642 * doc/loop.texi: Undocument single_exit field. Document single_exit
645 2006-11-22 Zdenek Dvorak <dvorakz@suse.cz>
647 PR tree-optimization/29902
648 * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
649 any involved ssa name appears in abnormal phi node.
651 2006-11-21 Bob Wilson <bob.wilson@acm.org>
653 * config/xtensa/xtensa.c (xtensa_char_to_class): Delete.
654 (xtensa_const_ok_for_letter_p): Delete.
655 (xtensa_extra_constraint): Delete.
656 (override_options): Delete xtensa_char_to_class initialization.
657 * config/xtensa/xtensa.h (REG_CLASS_FROM_LETTER): Delete.
658 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
659 (EXTRA_CONSTRAINT): Delete.
660 * config/xtensa/xtensa.md: Include constraints.md.
661 (call_internal): Combine alternatives.
662 (call_value_internal): Likewise, and remove invalid constraints.
663 * config/xtensa/constraints.md: New file.
664 * config/xtensa/xtensa-protos.h (xtensa_const_ok_for_letter_p): Delete.
665 (xtensa_extra_constraint): Delete.
666 * doc/md.texi (Machine Constraints): Refer to constraints.md for
669 2006-11-21 Janis Johnson <janis187@us.ibm.com>
671 * config/dfp-bits.c (DFP_TO_INT): Remove code to saturate result
672 of conversion that doesn't fit.
674 * config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete.
675 * config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op,
676 DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE.
678 * config/dfp-bit.c (dfp_binary_func): Fix typedef.
680 2006-11-21 Douglas Gregor <doug.gregor@gmail.com>
682 * c-common.h (enum rid): Add RID_STATIC_ASSERT.
684 2006-11-21 Richard Guenther <rguenther@suse.de>
686 * tree-vectorizer.h (NUM_PATTERNS): Increase.
687 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
688 vect_recog_pow_pattern.
689 (vect_recog_pow_pattern): New function.
691 2006-11-21 Bernd Schmidt <bernd.schmidt@analog.com>
693 * config/bfin/bfin.opt (mstack-check-l1): New.
694 * doc/invoke.texi (Blackfin Options): Document it.
695 * config/bfin/bfin.c (bfin_expand_prologue): Generate code to use
696 stack bounds in L1 memory if the new option is enabled.
697 (override_options): Don't allow combinations of -fstack-limit and
699 (add_to_reg): Renamed from add_to_sp. All callers changed. Lose some
702 * config/bfin/bfin.c (hard_regno_mode_ok): Only allow first 31
704 (bfin_register_move_cost): Bump costs if trying to move plain
705 integer values through accumulators.
707 2006-11-21 Ben Elliston <bje@au.ibm.com>
709 * config/spu/spu.c (spu_expand_vector_init): Initialise x.
711 2006-11-20 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
712 Russell Olsen <Russell_Olsen@playstation.sony.com>
713 Dmitri Makarov <Dmitri_Makarov@playstation.sony.com>
714 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
715 Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
716 Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
717 Andrew Pinski <Andrew_Pinski@playstation.sony.com>
719 * config.gcc: Add target for SPU.
720 * config/spu/constraints.md: New file.
721 * config/spu/crt0.c: New file.
722 * config/spu/crtend.c: New file.
723 * config/spu/crti.asm: New file.
724 * config/spu/crtn.asm: New file.
725 * config/spu/float_unsdidf.c: New file.
726 * config/spu/float_unssidf.c: New file.
727 * config/spu/predicates.md: New file.
728 * config/spu/spu-builtins.def: New file.
729 * config/spu/spu-builtins.h: New file.
730 * config/spu/spu-builtins.md: New file.
731 * config/spu/spu-c.c: New file.
732 * config/spu/spu-elf.h: New file.
733 * config/spu/spu-modes.def: New file.
734 * config/spu/spu-protos.h: New file.
735 * config/spu/spu.c: New file.
736 * config/spu/spu.h: New file.
737 * config/spu/spu.md: New file.
738 * config/spu/spu.opt: New file.
739 * config/spu/spu_internals.h: New file.
740 * config/spu/spu_intrinsics.h: New file.
741 * config/spu/spu_mfcio.h: New file.
742 * config/spu/t-spu-elf: New file.
743 * config/spu/vec_types.h: New file.
744 * config/spu/vmx2spu.h: New file.
745 * doc/contrib.texi: Document SPU contributor.
746 * doc/extend.texi: Document SPU extensions.
747 * doc/invoke.texi: Document SPU options.
748 * doc/md.texi: Document SPU constraints.
750 2006-11-21 Zdenek Dvorak <dvorakz@suse.cz>
752 * cfgloopmanip.c (add_loop, duplicate_loop): Do not set level
754 * cfgloop.c (flow_loop_level_compute, flow_loops_level_compute):
756 (flow_loop_dump): Do not dump loop level.
757 (flow_loops_find): Do not call flow_loops_level_compute.
758 * cfgloop.h (struct loop): Remove level field.
760 2006-11-21 Zdenek Dvorak <dvorakz@suse.cz>
762 * tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref,
763 hoist_memory_references, loop_suitable_for_sm, determine_lsm_loop):
764 Use vector of edges instead of array.
765 * tree-ssa-loop-niter.c (find_loop_niter, find_loop_niter_by_eval,
766 estimate_numbers_of_iterations_loop): Ditto.
767 * predict.c (predict_loops): Ditto.
768 * loop-unroll.c (analyze_insns_in_loop): Ditto.
769 * tree-ssa-threadupdate.c: Remove declaration of heap allocation for
771 * basic-block.h: Declare heap allocation for edge vectors.
772 * tree-outof-ssa.c: Ditto.
773 * cfgloop.c (get_loop_exit_edges): Return vector of edges.
774 * cfgloop.h (get_loop_exit_edges): Declaration changed.
776 2006-11-20 Zack Weinberg <zackw@panix.com>
778 * gengtype.c (process_gc_options): Remove unnecessary forward decl.
779 Add another out parameter, "skip".
780 (set_gc_used_type): Adjust calls to process_gc_options. If a field
781 is tagged "skip", do not mark its type used.
783 2006-11-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
786 * tree-sra.c (single_scalar_field_in_record_p): New function.
787 (decide_block_copy): Use it.
789 2006-11-20 David Daney <ddaney@avtrex.com>
791 * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
792 PC to point to following instruction.
794 2006-11-20 Anatoly Sokolov <aesok@post.ru>
798 * config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
800 * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
802 2006-11-20 J"orn Rennecke <joern.rennecke@st.com>
804 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
805 Add sh/superh.h to tm_file.
807 2006-11-20 Carlos O'Donell <carlos@codesourcery.com>
808 Mark Mitchell <mark@codesourcery.com>
810 * cppdefault.c: Define cpp_PREFIX, cpp_PREFIX_len, and
812 (cpp_relocated): New function.
813 * cppdefault.h: Declare cpp_PREFIX, cpp_PREFIX_len, gcc_exec_prefix
815 * Makefile.in (PREPROCESSOR_DEFINES): Add -DPREFIX option.
816 * c-incpath.c (add_standard_paths): Call cpp_relocated. If relocated,
817 replace configured prefix with gcc_exec_prefix.
819 2006-11-20 Bernd Schmidt <bernd.schmidt@analog.com>
821 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Call
822 bfin_legitimate_constant_p.
823 * config/bfin/bfin.md (movsi expander): Check return value of
825 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Declare.
826 (expand_move): Adjust prototype.
827 * config/bfin/bfin.c (expand_move): Now returns bool. Handle
828 invalid constants specially.
829 (bfin_cannot_force_const_mem, bfin_legitimate_constant_p): New
831 (TARGET_CANNOT_FORCE_CONST_MEM): New macro.
833 * config/bfin/bfin.md (call_symbol, call_value_symbol, sibcall_symbol,
834 sibcall_value_symbol): Allow these patterns if
835 TARGET_LEAF_ID_SHARED_LIBRARY.
836 * config/bfin/bfin.c (bfin_expand_call): Allow them here as well.
837 (override_options): Turn on id shared library flags if -msep-data,
838 but disallow the combination of these options on the command line.
839 * config/bfin/bfin.h (TARGET_LEAF_ID_SHARED_LIBRARY, MASK_SEP_DATA
840 MASK_LEAF_ID_SHARED_LIBRARY, TARGET_SEP_DATA): New macros.
841 (DRIVER_SELF_SPECS): -mleaf-id-shared-library implies
843 (TARGET_SWITCHES): Add -mleaf-id-shared-library and -msep-data.
844 * doc/invoke.texi (Blackfin Options): Document new switches.
846 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some
847 edge cases with local functions and TARGET_ID_SHARED_LIBRARY.
849 * tree-ssa-loop-ivopts.c (get_address_cost): Do not artificially
850 inflate costs for addresses with an out-of-bounds address.
852 2006-11-19 Andrew Pinski <pinskia@gmail.com>
855 * fwprop.c (loops): Remove.
856 (forward_propagate_into): Use current_loops instead of
858 (fwprop_init): Call loop_optimizer_init instead of
860 (fwprop_done): Call loop_optimizer_finalize instead of
862 (fwprop): Use current_loops instead of loops.
864 2006-11-19 Gabriel Dos Reis <gdr@integrable-solutions.net>
867 * c-opts.c (c_common_handle_option): Enable -Wwrite-strings if -Wall.
869 2006-11-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
872 * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
873 larger than BITS_PER_WORD.
875 2006-11-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
879 * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
880 to MAX_FIXED_MODE_SIZE.
882 2006-11-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
884 * builtins.c (integer_valued_real_p): Handle fmin/fmax.
885 (fold_builtin_fmin_fmax): New.
886 (fold_builtin_1): Use it.
888 * fold-const.c (fold_strip_sign_ops): Handle copysign.
890 2006-11-18 Richard Guenther <rguenther@suse.de>
892 * config/i386/i386.c (ix86_builtins): New array for ix86
893 builtin function decls.
894 (def_builtin): New function.
895 (def_builtin_const): Likewise.
896 (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const.
898 2006-11-18 Vladimir Makarov <vmakarov@redhat.com>
900 * doc/invoke.texi (core2): Add item.
902 * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New
904 (TARGET_CPU_CPP_BUILTINS): Add code for core2.
905 (TARGET_CPU_DEFAULT_generic): Change value.
906 (TARGET_CPU_DEFAULT_NAMES): Add core2.
907 (processor_type): Add new constant PROCESSOR_CORE2.
909 * config/i386/i386.md (cpu): Add core2.
911 * config/i386/i386.c (core2_cost): New initialized variable.
912 (m_CORE2): New macro.
913 (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
914 x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop,
915 x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
916 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
917 x86_partial_reg_dependency, x86_memory_mismatch_stall,
918 x86_accumulate_outgoing_args, x86_prologue_using_move,
919 x86_epilogue_using_move, x86_arch_always_fancy_math_387,
920 x86_sse_partial_reg_dependency, x86_rep_movl_optimal,
921 x86_use_incdec, x86_four_jump_limit, x86_schedule,
922 x86_pad_returns): Add m_CORE2.
923 (override_options): Add entries for Core2.
924 (ix86_issue_rate): Add case for Core2.
926 2006-11-18 Aldy Hernandez <aldyh@redhat.com>
928 * doc/invoke.texi: Fix mno-isel typo.
930 2006-11-18 Joseph Myers <joseph@codesourcery.com>
932 * config/rs6000/spe.md (movv4hi_internal): Add alternative for
933 easy vector constant loads.
935 2006-11-18 Joseph Myers <joseph@codesourcery.com>
937 * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
938 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
939 __NO_LWSYNC__ if TARGET_NO_LWSYNC.
940 * config/rs6000/sync.md (lwsync): Emit plain sync if
943 2006-11-17 DJ Delorie <dj@redhat.com>
945 * reload1.c (reloads_unique_chain): New.
946 (reloads_conflict): Call it.
948 2006-11-17 Bob Wilson <bob.wilson@acm.org>
950 * config/xtensa/predicates.md (addsubx_operand): New.
951 * config/xtensa/xtensa.c (xtensa_emit_branch): New.
952 (xtensa_emit_bit_branch): New.
953 (xtensa_emit_movcc): New.
954 * config/xtensa/xtensa.md (any_minmax): New code macro.
955 (minmax): New code attribute.
956 (any_cond, any_scc, any_scc_sf): New code macros.
957 (*addx2, *addx4, *addx8): Delete.
959 (*subx2, *subx4, *subx8): Delete.
961 (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro.
962 (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond.
963 (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch.
964 (*bittrue, *bitfalse): Use xtensa_emit_bit_branch.
965 (seq, sne, sgt, sge, slt, sle): Use any_scc macro.
966 (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc.
967 (movsfcc_internal0, movsfcc_internal1): Likewise.
968 (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro.
969 * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New.
970 (xtensa_emit_bit_branch): New.
971 (xtensa_emit_movcc): New.
972 (function_arg_boundary): Add missing prototype.
974 2006-11-17 Bob Wilson <bob.wilson@acm.org>
976 * config/xtensa/xtensa.md (tstsi): Delete
978 2006-11-17 Bob Wilson <bob.wilson@acm.org>
980 * config/xtensa/xtensa.md (entry): Do not emit .frame directive.
982 2006-11-17 Bob Wilson <bob.wilson@acm.org>
984 * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
986 2006-11-17 Bob Wilson <bob.wilson@acm.org>
988 * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit.
990 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
992 * tree-vrp.c (execute_vrp): Do not update current_loops.
993 * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with.
994 * doc/loop.texi: Remove documentation for cancelled functions.
995 * tree-ssa-loop-im.c (loop_commit_inserts): Removed.
996 (move_computations, determine_lsm): Use bsi_commit_edge_inserts
998 * cfgloopmanip.c (remove_bbs): Do not update loops explicitly.
999 (remove_path): Ensure that in delete_basic_blocks, the loops
1000 are still allocated.
1001 (add_loop): Work on valid loop structures.
1002 (loopify): Modify call of add_loop.
1003 (mfb_update_loops): Removed.
1004 (create_preheader): Do not update loops explicitly.
1005 (force_single_succ_latches, loop_version): Do not use
1006 loop_split_edge_with.
1007 (loop_split_edge_with): Removed.
1008 * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions):
1009 Do not use bsi_insert_on_edge_immediate_loop.
1010 (split_loop_exit_edge, tree_unroll_loop): Do not use
1011 loop_split_edge_with.
1012 (bsi_insert_on_edge_immediate_loop): Removed.
1013 * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops. Do not
1014 use loop_split_edge_with.
1015 * cfghooks.c: Include cfgloop.h.
1016 (verify_flow_info): Verify that loop_father is filled iff current_loops
1018 (redirect_edge_and_branch_force, split_block, delete_basic_block,
1019 split_edge, merge_blocks, make_forwarder_block, duplicate_block):
1021 * cfgloopanal.c (mark_irreducible_loops): Work if the function contains
1023 * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use
1024 loop_split_edge_with.
1025 (sms_schedule): Use current_loops.
1026 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops.
1027 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set
1029 (rtl_loop_init, rtl_loop_done): Do not set current_loops.
1030 * tree-ssa-sink.c (execute_sink_code): Use current_loops.
1031 * ifcvt.c (if_convert): Ditto.
1032 * predict.c (predict_loops): Do not clear current_loops.
1033 (tree_estimate_probability): Use current_loops.
1034 (propagate_freq): Receive head of the region to propagate instead of
1036 (estimate_loops_at_level): Do not use shared to_visit bitmap.
1037 (estimate_loops): New function. Handle case current_loops == NULL.
1038 (estimate_bb_frequencies): Do not allocate tovisit. Use
1040 * tree-ssa-loop.c (current_loops): Removed.
1041 (tree_loop_optimizer_init): Do not return loops.
1042 (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops.
1043 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1,
1044 slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge):
1045 Do not update loops explicitly.
1046 * function.h (struct function): Add x_current_loops field.
1047 (current_loops): New macro.
1048 * tree-if-conv.c (combine_blocks): Do not update loops explicitly.
1049 * loop-unroll.c (split_edge_and_insert): New function.
1050 (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not
1051 use loop_split_edge_with.
1052 * loop-doloop.c (add_test, doloop_modify): Ditto.
1053 * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops.
1054 * cfglayout.c (copy_bbs): Do not update loops explicitly.
1055 * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with.
1056 * tree-vect-transform.c (vect_transform_loop): Do not update loops
1058 * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order.
1059 (flow_loops_free): Do not free dfs_order and rc_order.
1060 (flow_loops_find): Do not set dfs_order and rc_order in loops
1061 structure. Do not call loops and flow info verification.
1062 (add_bb_to_loop, remove_bb_from_loops): Check whether the block
1063 already belongs to some loop.
1064 * cfgloop.h (struct loops): Remove struct cfg.
1065 (current_loops, loop_split_edge_with): Declaration removed.
1066 (loop_optimizer_init, loop_optimizer_finalize): Declaration changed.
1067 * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop):
1068 Declaration removed.
1069 * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency.
1070 * basic-block.h (split_edge_and_insert): Declare.
1071 * tree-cfg.c (remove_bb): Do not update loops explicitly.
1073 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
1075 PR tree-optimization/29801
1076 * tree-ssa-ccp.c (get_symbol_constant_value): New function.
1077 (get_default_value): Use get_symbol_constant_value.
1078 (set_lattice_value): ICE when the value of the constant is
1080 (visit_assignment): Ignore VDEFs of read-only variables.
1082 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
1084 * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix
1086 (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
1087 vect_gen_niters_for_prolog_loop): Fold the emited expressions.
1089 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
1091 * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to
1092 select subvars of var.
1094 2006-11-17 Jakub Jelinek <jakub@redhat.com>
1097 * tree-ssa-forwprop.c (simplify_switch_expr): Don't
1098 optimize if DEF doesn't have integral type.
1100 2006-11-16 Mike Stump <mrs@apple.com>
1102 * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on
1103 pre-darwin9 system, unless the user asks for it directly.
1104 (PREFERRED_DEBUGGING_TYPE): Likewise.
1105 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise.
1106 * config.gcc: Add suppport for darwin9.h.
1107 * config/darwin9.h: Add.
1108 * doc/install.texi (Specific): Clarify darwin documentation.
1110 2006-11-16 Richard Earnshaw <rearnsha@arm.com>
1112 * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when
1113 optimizing for size.
1115 2006-11-16 Mike Stump <mrs@apple.com>
1117 * Makefile.in (targhooks.o): Add $(OPTABS_H).
1119 2006-11-16 Dirk Mueller <dmueller@suse.de>
1121 * tree-vrp.c (get_value_range): Use XCNEW instead
1123 (insert_range_assertions): Use XCNEWVEC instead
1124 of XNEWVEC and memset.
1125 (vrp_initialize): Same.
1126 (vrp_finalize): Same.
1127 * tree-ssa-ccp.c (ccp_initialize): Same.
1128 * predict.c (tree_bb_level_predictions): Same.
1129 * calls.c (expand_call): Same.
1130 * tree-ssa-copy.c (init_copy_prop): Same.
1131 (fini_copy_prop): Same.
1132 * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead
1133 of GGC_NEW and memset.
1135 2006-11-16 Eric Botcazou <ebotcazou@adacore.com>
1138 * gimplify.c (gimplify_expr): Only force a load for references to
1139 non-BLKmode volatile values.
1140 * doc/implement-c.texi (Qualifiers implementation): Document the
1141 interpretation of what a volatile access is.
1142 * doc/extend.texi (C++ Extensions): Rework same documentation.
1144 2006-11-16 Joseph Myers <joseph@codesourcery.com>
1146 * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
1149 2006-11-16 Richard Earnshaw <rearnsha@arm.com>
1151 * arm.md (abssi2): Allow Thumb as well. Use an SImode scratch for
1153 (arm_neg_abssi2): Renamed from neg_abssi2.
1154 (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters.
1156 2006-11-16 Uros Bizjak <ubizjak@gmail.com>
1158 * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
1159 number of arguments passed to local functions in SSE registers is 3.
1161 * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
1162 number of arguments passed in SSE registers to 3.
1164 2006-11-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1167 * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
1169 (get_last_bb_insn): ... new global function.
1170 (basic_block.h): Declare it.
1171 * haifa-sched.c (create_recovery_block): Use it.
1173 2006-11-15 H.J. Lu <hongjiu.lu@intel.com>
1176 * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert.
1178 2006-11-15 Paul Brook <paul@codesourcery.com>
1180 * config/arm/unwind-arm.c (_Unwind_GetDataRelBase,
1181 _Unwind_GetTextRelBase): Move from here ...
1182 * config/arm/pr-support.c (_Unwind_GetDataRelBase,
1183 _Unwind_GetTextRelBase): ... To here.
1185 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
1187 * tree-ssa-loop-ivopts.c (get_address_cost): Make sure memory
1188 addresses we generate for testing are aligned.
1190 2006-11-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
1193 * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
1194 to what is the const decl is a place holder for.
1196 2006-11-15 Uros Bizjak <ubizjak@gmail.com>
1198 * config/i386/i386.opt: New target option -mx87regparm.
1200 * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno
1201 and float_in_x87 variables. mmx_words, sse_words: Remove.
1202 (X87_REGPARM_MAX): Define.
1204 * config/i386/i386.c (override_options): Error out for
1205 -mx87regparm but no 80387 support.
1206 (ix86_attribute_table): Add x87regparm.
1207 (ix86_handle_cconv_attribute): Update comments for x87regparm.
1208 (ix86_comp_type_attributes): Check for mismatched x87regparm types.
1209 (ix86_function_x87regparm): New function.
1210 (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
1212 (init_cumulative_args): Initialize x87_nregs and float_in_x87
1214 (function_arg_advance): Process x87_nregs and x87_regno when
1215 floating point argument is to be passed in 80387 register.
1216 (function_arg): Pass XFmode arguments in 80387 registers for local
1217 functions. Pass SFmode and DFmode arguments to local functions
1218 in 80387 registers when flag_unsafe_math_optimizations is set.
1220 * reg-stack.c (convert_regs_entry): Disable NaN load for
1221 stack registers that are used for argument passing.
1223 * doc/extend.texi: Document x87regparm function attribute.
1224 * doc/invoke.texi: Document -mx87regparm.
1226 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
1228 * tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype.
1229 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New
1230 arg MODE; all callers changed. Use it to determine validity per
1231 machine mode instead of using Pmode for all memory references.
1232 (get_address_cost): Likewise add and use new arg MEM_MODE.
1234 2006-11-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
1235 J"orn Rennecke <joern.rennecke@st.com>
1237 * combine.c (likely_spilled_retval_1): Fix masking operation.
1238 (likely_spilled_retval_p): Use proper pattern for call to
1239 likely_spilled_retval_1.
1241 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
1243 * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting.
1245 * config/bfin/bfin.c (legitimize_pic_address): Lose dead code
1246 that tests for CONSTANT_POOL_ADDRESS_P.
1248 2006-11-15 Jakub Jelinek <jakub@redhat.com>
1250 PR tree-optimization/29581
1251 * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
1252 REPLACEMENTS, FIRSTBSI arguments. If initial condition or
1253 type is different between Y and USE, create a temporary
1254 variable, initialize it at the beginning of the body bb
1255 and use it as replacement instead of Y.
1257 2006-11-15 Paolo Bonzini <bonzini@gnu.org>
1260 * gimplify.c (fold_indirect_ref_rhs): Use
1261 STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
1263 2006-11-14 Richard Earnshaw <rearnsha@arm.com>
1265 * expmed.c (emit_store_flag_1): New function.
1266 (emit_store_flag): Call it. If we can't find a suitable scc insn,
1268 * expr.c (do_store_flag): If we can't find a scc insn, try cstore.
1269 Use do_compare_rtx_and_jump.
1270 * arm.h (BRANCH_COST): Increase to 2 on Thumb.
1271 * arm.md (cstoresi4): New define_expand.
1272 (cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise.
1273 (cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns.
1274 (cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns.
1276 2006-11-14 Caroline Tice <ctice@apple.com>
1278 * dwarf2out.c (debug_pubtypes_section): New static global variable.
1279 (pubname_entry): Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for
1281 (pubname_table): Redefine as a vector.
1282 (pubtype_table): New static global variable, defined as a vector.
1283 (pubname_table_allocated): Remove static global variable.
1284 (pubname_table_in_use): Remove static global variable.
1285 (PUBNAME_TABLE_INCREMENT): Remove constant.
1286 (size_of_pubnames): Add parameter to deal with either pubnames or
1287 pubtypes, and change code to deal with table being a vector.
1288 (add_pubname): Change to deal with table being a vector.
1289 (add_pubtype): New function.
1290 (output_pubnames): Add parameter to deal with either pubnames or
1291 pubtypes, and change code to deal with table being a vector.
1292 (gen_array_type_die): Add call to add_pubtype.
1293 (gen_enumeration_type_die): Add call to add_pubtype.
1294 (gen_struct_or_union_type_die): Add call to add_pubtype.
1295 (gen_subroutine_type_die): Add call to add_pubtype.
1296 (gen_typedef_die): Add call to add_pubtype.
1297 (dwarf2out_init): Add code to initialize pubname_table and
1298 pubtype_table vectors; also initialize debug_pubtypes_section.
1299 (prune_unused_types): Change to deal with pubnames being a vector.
1300 (dwarf2out_finish): Change to deal with pubnames being a vector; add
1301 pubnames table to call to output_pubnames; Add code to output pubtypes
1302 table if DEBUG_PUBTYPES_SECTION is defined.
1303 * config/darwin.c (darwin_file_start): Add DEBUG_PUBTYPES_SECTION to
1305 * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable.
1307 2006-11-14 Joseph Myers <joseph@codesourcery.com>
1309 * config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust
1310 iwmmxt_nregs if TARGET_IWMMXT_ABI.
1311 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
1312 movv2si_internal): Support moves between core registers.
1314 2006-11-14 Eric Christopher <echristo@apple.com>
1316 * configure: Regenerate with autoconf 2.59.
1318 2006-11-14 Daniel Berlin <dberlin@dberlin.org>
1320 Fix PR tree-optimization/27755
1322 * tree-ssa-pre.c: Update comments.
1323 (bb_bitmap_sets): Add pa_in and deferred member.
1324 (BB_DEFERRED): New macro.
1325 (maximal_set): New variable.
1326 (pre_stats): Add pa_insert member.
1327 (bitmap_set_and): Short circuit orig == dest.
1328 (bitmap_set_subtract_values): New function.
1329 (bitmap_set_contains_expr): Ditto.
1330 (translate_vuses_through_block): Add phiblock argument.
1331 (dependent_clean): New function.
1332 (compute_antic_aux): Update for maximal_set changes.
1333 (compute_partial_antic_aux): New function.
1334 (compute_antic): Handle partial anticipation.
1335 (do_partial_partial_insertion): New function.
1336 (insert_aux): Handle partial anticipation.
1337 (add_to_sets): Add to maximal set.
1338 (compute_avail): Ditto.
1339 (init_pre): Initialize maximal_set.
1340 (execute_pre): Do partial anticipation if -O3+.
1342 2006-11-14 Paolo Bonzini <bonzini@gnu.org>
1344 PR rtl-optimization/29798
1346 * fwprop.c (use_killed_between): Check that DEF_INSN dominates
1347 TARGET_INSN before any other check.
1348 (fwprop_init): Always calculate dominators.
1349 (fwprop_done): Always free them.
1351 2006-11-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1353 * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and
1356 2006-11-13 DJ Delorie <dj@redhat.com>
1358 * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
1359 temporary for intermediates.
1361 2006-11-13 Kaz Kojima <kkojima@gcc.gnu.org>
1363 * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
1364 (sh_optimize_target_register_callee_saved): #if 0 the code
1365 using NOTE_INSN_LOOP_{BEG,END}.
1367 2006-11-13 Roger Sayle <roger@eyesopen.com>
1369 * fold-const.c (optimize_bit_field_compare): Recursively call
1370 fold when simplifying non-constant comparisons between bit-fields.
1372 2006-11-13 Jakub Jelinek <jakub@redhat.com>
1374 * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
1376 * configure: Rebuilt.
1378 2006-11-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
1380 * config/rs6000/cell.md: New file.
1381 * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
1383 (ppccell_cost): New cost matrix.
1384 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
1385 (rs6000_override_options): Set rs6000_always_hint to false
1386 for cell. Also align functions/lables/loops to 8byte
1387 for the Cell. Use PROCESSOR_CELL.
1388 (rs6000_emit_epilogue): Rename using_mfcr_multiple to
1389 using_mtcr_multiple.
1390 (rs6000_variable_issue): If the insn is a nonpipelined instruction
1391 on the Cell, return 0.
1392 (rs6000_adjust_cost): Add Cell cost adjustments.
1393 (is_microcoded_insn): Return true for Cell microcoded
1395 (is_nonpipeline_insn): New function.
1396 (rs6000_issue_rate): Add PROCESSOR_CELL.
1397 (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
1399 (rs6000_use_sched_lookahead_guard): New function.
1400 (rs6000_sched_reorder): Reorder the ready list, if the second
1401 to last ready insn is a nonepipeline insn on the Cell.
1402 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
1403 (ASM_CPU_SPEC): Add Cell.
1404 * config/rs6000/rs6000.md (cpu): Add Cell.
1405 (cell_micro): New Attr.
1408 2006-11-13 Jakub Jelinek <jakub@redhat.com>
1410 * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
1412 * configure: Rebuilt.
1414 2006-11-13 Richard Guenther <rguenther@suse.de>
1416 * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
1418 (ix86_expand_lfloorceil): Likewise.
1419 (ix86_expand_rint): Likewise.
1420 (ix86_expand_floorceildf_32): Likewise.
1421 (ix86_expand_floorceil): Likewise.
1422 (ix86_expand_rounddf_32): Likewise.
1423 (ix86_expand_truncdf_32): Likewise.
1424 (ix86_expand_round): Likewise.
1426 2006-11-13 Carlos O'Donell <carlos@codesourcery.com>
1427 Mark Mitchell <mark@codesourcery.com>
1429 * gcc.c: Organize search path variables into $prefix relative,
1430 and well-known native. Add comments.
1431 (add_sysrooted_prefix): Add comment.
1432 (process_command): If !gcc_exec_prefix add $prefix based paths.
1433 If *cross_compile == '0', add native well-known paths.
1434 Assert tooldir_base_prefix is always relative.
1435 (main): If print_search_dirs, and if gcc_exec_prefix is set,
1436 use this value for 'install:' path.
1437 * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
1439 2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
1441 * config/i386/i386.c: Fix a typo in comment.
1443 2006-11-13 Michael Matz <matz@suse.de>
1445 * genemit.c (gen_expand): Allocate enough memory.
1447 2006-11-13 Joseph Myers <joseph@codesourcery.com>
1449 * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
1450 __GXX_TYPEINFO_EQUALITY_INLINE but not
1451 __GXX_MERGED_TYPEINFO_NAMES.
1452 * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
1453 __GXX_MERGED_TYPEINFO_NAMES.
1454 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
1455 __GXX_TYPEINFO_EQUALITY_INLINE.
1457 2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
1458 Zdenek Dvorak <dvorakz@suse.cz>
1460 PR tree-optimization/29680
1461 * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
1464 2006-11-12 Jason Merrill <jason@redhat.com>
1465 Andrew Pinski <pinskia@physics.uc.edu>
1468 * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
1470 * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
1472 * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
1473 * tree.c (build_vector): Handle non-_CST elements.
1475 2006-11-12 Kaz Kojima <kkojima@gcc.gnu.org>
1477 * genemit.c (gen_insn): Call gen_exp with a non-null used
1478 when handling multiple insns.
1479 (gen_expand): Likewise.
1480 * reorg.c (emit_delay_sequence): Copy the delay slot insn.
1481 * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
1482 (movsi_const_16bit+1): Copy operands[1].
1483 (call_pcrel): Copy the call_site pattern.
1484 (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
1486 2006-11-12 Roger Sayle <roger@eyesopen.com>
1488 * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
1489 condition for transformations. Use !HONOR_SIGN_DEPENDENT_ROUNDING
1490 && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
1491 (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
1493 2006-11-12 Daniel Berlin <dberlin@dberlin.org>
1495 Fix PR tree-optimization/29587
1496 * tree-ssa-structalias.c (process_constraint): Don't
1497 mark address taken due only to escaped vars constraint.
1499 2006-11-12 Michael Matz <matz@suse.de>
1500 Roger Sayle <roger@eyesopen.com>
1502 PR rtl-optimization/29797
1503 * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
1504 BITS_BIG_ENDIAN targets.
1506 2006-11-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1508 * builtins.c (fold_builtin_cosh): New.
1509 (fold_builtin_1): Use it.
1510 * fold-const.c (negate_mathfn_p): Add llround, lround, round,
1511 trunc to the list of "odd" functions. Also add llrint, lrint,
1512 rint and nearbyint when flag_rounding_math is false.
1514 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1516 * tree-flow.h (name_mappings_registered_p): Declare.
1517 * tree-into-ssa.c (name_mappings_registered_p): New function.
1518 * tree-cfg.c (tree_can_merge_blocks_p): Check
1519 name_mappings_registered_p instead of need_ssa_update_p.
1521 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1523 * tree-ssa-loop.c (tree_vectorize): Return the result of
1525 * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
1526 if anything changed.
1527 * tree-vectorizer.h (vectorize_loops): Declaration removed.
1528 * tree-flow.h (vectorize_loops): Declaration changed.
1530 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1532 * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
1534 (issue_prefetch_ref): Move assignment to write_p out of loop.
1535 (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
1536 SIMULTANEOUS_PREFETCHES into account.
1537 (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
1538 * lambda-code.c (lcm): Renamed to ...
1539 (least_common_multiple): ... and exported.
1540 * tree-flow.h (least_common_multiple): Declare.
1542 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1544 * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
1545 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Follow
1546 ud-chains. Handle AND_EXPR.
1547 (record_estimate): Record whether the estimate is realistic
1548 and whether it is derived from a loop exit.
1549 (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
1550 infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
1552 (compute_estimated_nb_iterations): Take only realistic bounds into
1553 account. Set estimate_state. Use double_ints.
1554 (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
1555 and infer_loop_bounds_from_signedness. Do not consider basic blocks
1556 that do not have to be always executed.
1557 (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
1558 to determine whether to call infer_loop_bounds_from_undefined
1559 and compute_estimated_nb_iterations.
1560 (n_of_executions_at_most): Use double_ints.
1561 (free_numbers_of_iterations_estimates_loop): Set estimate_state.
1562 (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
1563 * double-int.c (double_int_to_tree): Improve comment.
1564 (double_int_fits_to_tree_p): New function.
1565 * double-int.h (double_int_fits_to_tree_p): Declare.
1566 * tree-data-ref.c: Include langhooks.h.
1567 (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
1568 (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
1569 (analyze_array): Do not pass estimate_only argument to
1570 analyze_array_indexes.
1571 (get_number_of_iters_for_loop): Build tree from the stored double_int
1573 (get_references_in_stmt, find_data_references_in_stmt): New functions.
1574 (find_data_references_in_loop): Use find_data_references_in_stmt.
1575 * tree-data-ref.h (struct data_ref_loc_d): New.
1576 (get_references_in_stmt): Declare.
1577 (estimate_iters_using_array): Declaration removed.
1578 * cfgloop.h (struct nb_iter_bound): Change type of bound to
1579 double_int. Improve comments. Add is_exit and realistic
1581 (struct loop): Changed type of estimated_nb_iterations to double_int.
1582 Added estimate_state field.
1583 (record_estimate): Declaration removed.
1585 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1587 * params.c (set_param_value): Initialize the "set" field.
1588 * params.h (struct param_info): Add "set" field.
1589 (PARAM_SET_P): New macro.
1590 (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
1591 L1_CACHE_LINE_SIZE): New macros.
1592 * toplev.c (DEFPARAM): Initialize the "set" field.
1593 * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
1594 SIMULTANEOUS_PREFETCHES): Removed.
1595 (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
1596 (tree_ssa_prefetch_arrays): Dump the values of the parameters.
1597 * config/sparc/sparc.c: Include params.h.
1598 (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
1599 L1_CACHE_LINE_SIZE parameters.
1600 * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
1602 * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
1604 * config/i386/i386.c: Include params.h.
1605 (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
1606 (override_options): Set SIMULTANEOUS_PREFETCHES and
1607 L1_CACHE_LINE_SIZE parameters.
1608 * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
1609 (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
1610 L1_CACHE_LINE_SIZE parameters.
1611 * config/ia64/ia64.c (ia64_optimization_options): Set
1612 SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
1613 * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
1615 * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
1616 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
1617 * doc/invoke.texi: Document new params.
1619 2006-11-12 Roger Sayle <roger@eyesopen.com>
1621 PR tree-optimization/13827
1622 * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
1625 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1627 * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
1628 update_single_exit_for_duplicated_loops): New functions.
1629 (duplicate_loop_to_header_edge): Use
1630 update_single_exit_for_duplicated_loops.
1631 * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
1632 functions only with ENABLE_CHECKING.
1634 2006-11-12 Andreas Schwab <schwab@suse.de>
1636 * except.c (sjlj_emit_function_enter): Remove unused variable.
1638 2006-11-11 Roger Sayle <roger@eyesopen.com>
1640 * fold-const.c (int_binop_types_match_p): New function.
1641 (size_binop): Relax constraint that both arguments must both have
1642 exactly the same sizetype type. Instead use int_binop_types_match_p.
1643 (size_diffop): Likewise.
1645 (make_range): Use build_int_cst instead of fold_convert.
1646 (fold_cond_expr_with_comparison): Use build_int_cst to construct
1647 integer constants of the correct type.
1648 (fold_div_compare): Likewise.
1649 (fold_single_bit_test): Likewise.
1650 (fold_binary): Likewise.
1651 * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
1652 has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
1654 2006-11-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
1657 * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
1658 non null value if the struct memory access is in the 0th
1661 2006-11-12 Jie Zhang <jie.zhang@analog.com>
1664 2006-11-11 Jie Zhang <jie.zhang@analog.com>
1665 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
1668 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
1669 instead of builtin_define for bfin and BFIN.
1671 2006-11-11 Jie Zhang <jie.zhang@analog.com>
1673 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
1676 2006-11-11 Jan Hubicka <jh@suse.cz>
1678 * extend.texi (__builtin_expect): We no longer require second argument
1680 * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
1681 * builtins.c (expand_builtin_expect): Simplify.
1682 (expand_builtin_expect_jump): Kill.
1683 * final.c (final_scan_insn): Do not skip the removed notes.
1684 * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
1685 EXPECTED_VALUE): Remove.
1686 * dojump.c (do_jump): Do not care about __builtin_expect.
1687 * predict.c (expected_value_to_br_prob): Kill.
1688 * function.c (expand_function_end): Do not expand
1689 NOTE_INSN_REPEATED_LINE_NUMBER.
1690 * print-rtl.c (print_rtx): Do not pretty print the removed notes.
1691 * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
1692 * cfgexpand.c (add_reg_br_prob_note): Export.
1693 * cfgcleanup.c (rest_of_handle_jump2): Do not call
1694 expected_value_to_br_prob.
1695 * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
1696 * rtl.h (add_reg_br_prob_note): Declare.
1698 2006-11-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1700 * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
1702 2006-11-11 Jan Hubicka <jh@suse.cz>
1704 * predict.c (predict_loops): Kill RTL variant.
1706 2006-11-11 Jan Hubicka <jh@suse.cz>
1708 * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
1709 * modulo-sched.c (find_line_note): Remove.
1710 (loop_canon_p): Do not worry about line number notes.
1711 (sms_schedule): Likewise.
1712 * cse.c (cse_main): Likewise.
1713 * regmove.c (fixup_match_1): Likewise
1714 * function.c (emit_return_info_block): Likewise.
1715 (expand_function_end): Likewise.
1716 (thread_prologue_an_epilogue_insns): Likewise.
1717 * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
1719 * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
1720 emit_note_copy_after): Kill.
1721 (emit_note_copy): Do not worry about line numbers.
1722 * jump.c (purge_line_number_notes): Kill.
1723 (pass_purge_lineno_notes): Kill.
1724 * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
1726 * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
1727 * passes.c (init_optimization_passes): Don't purge_lineno_notes.
1728 * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
1729 * tree-pass.h (pass_purge_lineno_notes): Kill.
1730 * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
1731 rm_redundant_line_notes.
1732 * sched-rgb.c (schedule_region): Don't rm_line_notes,
1733 rm_redundant_line_notes.
1734 * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
1735 * haifa-sched.c: Update comment about handling notes.
1736 (unlink_line_notes): Kill.
1737 (rm_line_notes): Kill.
1738 (save_line_notes): Simplify.
1739 (rm_redundant_line_notes): Kill.
1741 2006-11-11 Richard Guenther <rguenther@suse.de>
1743 * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
1744 Remove unused tree codes.
1745 * tree-vrp.c (extract_range_from_unary_expr): Remove handling
1746 of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1747 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1748 * tree.c (stabilize_reference): Likewise.
1749 * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
1750 fold_unary): Likewise.
1751 * tree-gimple.c (is_gimple_cast): Likewise.
1752 * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
1753 * expr.c (expand_expr_real_1): Likewise.
1754 * tree-eh.c (tree_could_trap_p): Likewise.
1755 * gimplify.c (gimplify_expr): Likewise.
1756 * tree-inline.c (estimate_num_insns_1): Likewise.
1757 * tree-cfg.c (verify_expr): Likewise.
1759 2006-11-11 Zdenek Dvorak <dvorakz@suse.cz>
1761 * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
1762 * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
1763 (tree_ssa_prefetch_arrays): Do not dump for removed loops.
1765 2006-11-11 Richard Sandiford <richard@codesourcery.com>
1768 * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
1769 constraints accept neither registers or memories.
1771 2006-11-11 Jie Zhang <jie.zhang@analog.com>
1773 * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
1774 (NO_PROFILE_COUNTERS): Define as 1.
1776 2006-11-10 Roger Sayle <roger@eyesopen.com>
1778 * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
1779 Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
1781 2006-11-10 Peter Bergner <bergner@vnet.ibm.com>
1783 * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
1785 2006-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1787 * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
1788 (fold_builtin_hypot): Likewise.
1789 * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
1791 * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
1793 2006-11-10 Roger Sayle <roger@eyesopen.com>
1795 * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
1796 when attempting to build INTEGER_CSTs of non-integral types.
1797 * expmed.c (make_tree): Use the correct type, i.e. the inner
1798 type, when constructing the individual elements of a CONST_VECTOR.
1800 2006-11-10 Jan Hubicka <jh@suse.cz>
1802 * cse.c (cse_process_notes): Copy the propagated value.
1803 * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
1805 * gcse.c (try_replace_reg): Copy the replacement.
1806 * i386.c (emit_i387_cw_initialization): Copy stored_mode.
1807 (assign_386_stack_local): Always return copied memory expression
1808 * function.c (instantiate_virtual_regs_in_insn): Copy the operand
1811 2006-11-10 Jan Hubicka <jh@suse.cz>
1813 * final.c (final): Walk from first instruction.
1814 * cfglayout.c (insn_locators_initialize): Remove line number notes.
1816 2006-11-10 Uros Bizjak <ubizjak@gmail.com>
1819 * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
1821 (umulv8hi3_highpart): Ditto.
1822 (vec_widen_smult_hi_v8hi): New expander.
1823 (vec_widen_smult_lo_v8hi): Ditto.
1825 2006-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1828 * builtins.c (do_mpfr_arg3): New.
1829 (fold_builtin_1): Handle builtins fma, fmin and fmax.
1831 2006-11-09 Eric Christopher <echristo@apple.com>
1836 * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
1837 * config.gcc (powerpc64-*-darwin*): New target.
1838 * config.host: Ditto.
1839 * config/rs6000/darwin64.h: New file.
1840 * config/rs6000/x-darwin64: Ditto.
1841 * config/rs6000/host-ppc64-darwin.c: Ditto.
1843 2006-11-09 Steve Ellcey <sje@cup.hp.com>
1845 * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode
1846 routines for integer division.
1848 2006-11-09 Daniel Jacobowitz <dan@codesourcery.com>
1850 * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
1852 2006-11-09 Serge Belyshev <belyshev@depni.sinp.msu.ru>
1855 * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
1857 2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
1859 * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
1860 simplify_subreg with BLKmode outer mode.
1862 2006-11-08 Brooks Moses <brooks.moses@codesourcery.com>
1864 * doc/invoke.texi: Minor formatting fixes in option lists.
1866 2006-11-08 Zdenek Dvorak <dvorakz@suse.cz>
1868 PR tree-optimization/29738
1869 * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
1870 (ccp_lattice_t): Remove UNKNOWN_VAL.
1871 (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
1872 Do not handle UNKNOWN_VAL.
1873 (get_default_value): Set initial value of virtual operands to
1875 (get_value): Always use get_default_value on uninitialized
1877 (set_value_varying, surely_varying_stmt_p): New functions.
1878 (set_lattice_value): Do not pass argument to get_value.
1879 Do not handle UNKNOWN_VAL.
1880 (likely_value): Follow the semantics described in the comment.
1881 (ccp_initialize): Use surely_varying_stmt_p. Do not mark
1882 phi nodes DONT_SIMULATE_AGAIN.
1883 (ccp_fold): Do not pass argument to get_value.
1884 (fold_const_aggregate_ref, visit_assignment): Ditto. Do not
1887 2006-11-08 Andrew Pinski <Andrew_Pinski@playstation.sony.com>
1889 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
1890 HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
1892 2006-11-08 Roger Sayle <roger@eyesopen.com>
1894 * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
1895 test for inclusion rather than as a test for exclusion.
1896 * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
1897 the condition after calling fold_binary.
1898 * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
1899 (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
1900 * builtins.c (fold_builtin_isascii): Likewise.
1901 (fold_builtin_isdigit): Likewise.
1903 2006-11-08 Carlos O'Donell <carlos@codesourcery.com>
1905 * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
1906 * configure: Regenerate.
1908 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
1910 * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
1911 enum argument instead of bool.
1912 (vect_analyze_operations): Call vectorizable_type_promotion.
1913 * tree-vectorizer.h (type_promotion_vec_info_type): New enum
1914 stmt_vec_info_type value.
1915 (supportable_widening_operation, vectorizable_type_promotion): New
1916 function declarations.
1917 * tree-vect-transform.c (vect_gen_widened_results_half): New function.
1918 (vectorizable_type_promotion): New function.
1919 (vect_transform_stmt): Call vectorizable_type_promotion.
1920 * tree-vect-analyze.c (supportable_widening_operation): New function.
1921 * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
1923 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
1926 * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
1927 (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
1928 * tree-inline.c (estimate_num_insns_1): Add cases for above new
1930 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1931 * expr.c (expand_expr_real_1): Likewise.
1932 * optabs.c (optab_for_tree_code): Likewise.
1933 (init_optabs): Initialize new optabs.
1934 * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
1935 vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
1936 vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
1937 vec_unpacku_lo_optab): Initialize new optabs.
1938 * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
1939 (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
1940 OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
1942 (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
1943 (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
1944 (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
1945 (vec_unpacku_lo_optab): New optabs.
1946 * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
1947 (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
1948 (vec_widen_smult_hi, vec_widen_smult_lo): New.
1949 * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
1950 (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
1951 (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
1953 * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
1954 (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
1955 (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
1956 (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
1957 (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
1958 implement the unsigned unpacking patterns.
1959 (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
1960 (vec_unpacks_lo_v8hi): New signed unpacking patterns.
1961 (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
1962 (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
1963 (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
1964 (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
1965 (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
1966 (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
1967 multiplication patterns.
1969 * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
1970 * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
1971 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
1972 * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
1973 (rs6000_builtin_mul_widen_odd): New.
1974 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
1975 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
1976 * tree-vectorizer.h (enum vect_relevant): New enum type.
1977 (_stmt_vec_info): Field relevant chaned from bool to enum
1979 (STMT_VINFO_RELEVANT_P): Updated.
1980 (STMT_VINFO_RELEVANT): New.
1981 * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
1982 instead of STMT_VINFO_RELEVANT_P.
1983 * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
1984 Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
1985 and boolean variable with enum vect_relevant.
1986 (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
1987 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
1988 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
1990 2006-11-08 Richard Henderson <rth@redhat.com>
1992 * config/i386/sse.md (vec_widen_umult_hi_v8hi,
1993 vec_widen_umult_lo_v8hi): New.
1994 (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
1995 vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
1997 * config/i386/i386.c (ix86_expand_sse_unpack): New.
1998 * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
1999 * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
2000 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
2001 vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
2002 vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
2003 vec_unpacks_lo_v4si): New.
2005 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
2007 * tree-vect-transform.c (vectorizable_type_demotion): New function.
2008 (vect_transform_stmt): Add case for type_demotion_vec_info_type.
2009 (vect_analyze_operations): Call vectorizable_type_demotion.
2010 * tree-vectorizer.h (type_demotion_vec_info_type): New enum
2011 stmt_vec_info_type value.
2012 (vectorizable_type_demotion): New function declaration.
2013 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
2016 * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
2017 * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
2019 * tree-iniline.c (estimate_num_insns_1): Likewise.
2020 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2021 * optabs.c (optab_for_tree_code): Likewise.
2023 * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
2024 compared against the predicate of the result is not 'mode' (the input
2025 to the function) but a mode with half the size of 'mode'.
2026 (init_optab): Initialize new optabs.
2027 * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
2029 (vec_pack_mod_optab, vec_pack_ssat_optab, vec_pack_usat_optab): New
2031 * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
2032 (vec_pack_usat_optab): Initialize new optabs.
2033 * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
2034 * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
2036 2006-11-08 Richard Henderson <rth@redehat.com>
2038 * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
2039 (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
2040 (vec_interleave_highv8hi, vec_interleave_lowv8hi):
2041 (vec_interleave_highv4si, vec_interleave_lowv4si):
2042 (vec_interleave_highv2di, vec_interleave_lowv2di): New.
2044 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
2046 * tree-vect-transform.c (vectorizable_reduction): Support multiple
2048 (vect_transform_stmt): Removed redundant code.
2050 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
2052 * tree-vect-transform.c (vectorizable_operation): Support multiple
2055 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
2057 * tree-vect-transform.c (vect_align_data_ref): Removed.
2058 (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
2059 Updated function documentation. Return the increment stmt in ptr_incr.
2060 (bump_vector_ptr): New function.
2061 (vect_get_vec_def_for_stmt_copy): New function.
2062 (vect_finish_stmt_generation): Create a stmt_info to newly created
2064 (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
2066 (vectorizable_reduction, vectorizable_assignment): Not supported yet if
2067 VF is greater than the number of elements that can fit in one vector
2069 (vectorizable_operation, vectorizable_condition): Likewise.
2070 (vectorizable_store, vectorizable_load): Support the case that the VF
2071 is greater than the number of elements that can fit in one vector word.
2072 (vect_transform_loop): Don't fail in case of multiple data-types.
2073 * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
2074 in case of multiple data-types; the smallest type determines the VF.
2075 (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
2076 if they are of different sizes.
2077 (vect_update_misalignment_for_peel): Compare misalignments in terms of
2078 number of elements rather than number of bytes.
2079 (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
2080 (vect_can_advance_ivs_p): Fix a dump printout
2082 2006-11-07 Eric Christopher <echristo@apple.com>
2084 * libgcc2.c (__bswapdi2): Rename from bswapDI2.
2085 (__bswapsi2): Ditto.
2086 * libgcc2.h: Remove transformation of bswap routines.
2087 * config/i386/i386.md (bswapsi2): New.
2090 2006-11-07 Jakub Jelinek <jakub@redhat.com>
2092 * c-common.c (c_common_attributes): Add gnu_inline attribyte.
2093 (handle_gnu_inline_attribute): New function.
2094 * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
2095 (merge_decls, start_decl, start_function): Likewise.
2096 * doc/extend.texi: Document gnu_inline attribute.
2098 2006-11-07 Steve Ellcey <sje@cup.hp.com>
2101 * config/ia64/t-hpux (LIB1ASMFUNCS): Filter out _fixtfdi,
2102 _fixunstfdi, and _floatditf
2104 2006-11-06 Anatoly Sokolov <aesok@post.ru>
2106 * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
2108 * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
2109 (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
2110 lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
2111 which start in an odd register.
2113 2006-11-07 Richard Sandiford <richard@codesourcery.com>
2115 * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
2117 2006-11-07 Josh Conner <jconner@apple.com>
2119 * doc/invoke.texi (fstrict-aliasing): Move implementation
2121 * doc/tree-ssa.texi (Alias analysis): ...here.
2123 2006-11-07 Richard Guenther <rguenther@suse.de>
2125 PR tree-optimization/29610
2126 * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
2127 of tree_purge_dead_eh_edges as it may free dominators.
2129 * g++.dg/other/pr29610.C: New testcase.
2131 2006-11-07 David Ung <davidu@mips.com>
2133 * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
2134 costs when optimizing for size.
2135 (override_options): Use mips_rtx_cost_optimize_size table for cost
2138 2006-11-07 Jie Zhang <jie.zhang@analog.com>
2140 * gcc.c (process_command): Treat -b as normal switch if its argument
2143 2006-11-07 David Ung <davidu@mips.com>
2145 * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
2148 2006-11-06 Eric Christopher <echristo@apple.com>
2150 * config.gcc: Add x86_64-darwin host support.
2151 * config.host: Ditto.
2152 * config/i386/darwin64.h: New file.
2153 * config/i386/t-darwin64: Ditto.
2155 2006-11-06 Janis Johnson <janis187@us.ibm.com>
2157 * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
2158 and output-exists-not.
2160 2006-11-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
2163 * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
2164 checking for overflow.
2166 2006-11-06 Jan van Dijk <jan@etpmod.phys.tue.nl>
2168 * configure.ac: Fixed typo in case statement: :: changed to ;;
2170 2006-11-06 Bob Wilson <bob.wilson@acm.org>
2172 * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
2173 count_leading_zeros, and count_trailing_zeros.
2174 * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
2175 (TARGET_FOLD_BUILTIN): Define.
2176 (TARGET_EXPAND_BUILTIN): Define.
2177 (xtensa_init_builtins): New.
2178 (xtensa_fold_builtin): New.
2179 (xtensa_expand_builtin): New.
2180 (xtensa_rtx_costs): Add CTZ and CLZ. Adjust costs for MULT.
2181 * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
2182 (CLZ_DEFINED_VALUE_AT_ZERO): Define.
2183 (CTZ_DEFINED_VALUE_AT_ZERO): Define.
2184 * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
2185 (any_extend): New code macro.
2186 (u, su): New code attributes.
2187 (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
2188 (nsau): Remove; replaced by clzsi2.
2189 (ffssi2): Use clzsi2.
2190 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
2191 _clzsi2, _ctzsi2, and _ffssi2. Rename _nsau to _clz.
2192 * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
2193 (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
2194 (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
2196 2006-11-06 Vladimir Prus <vladimir@codesourcery.com>
2198 * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
2200 * config/arm/t-strongarm-elf: Likewise.
2201 * config/arm/t-pe: Likewise.
2202 * config/arm/t-arm-elf: Likewise.
2203 * config/arm/t-xscale-elf: Likewise.
2204 * config/arm/t-arm-coff: Likewise.
2205 * config/arm/t-xscale-coff: Likewise.
2206 * config/arm/t-wince-pe: Likewise.
2208 2006-11-05 Kaz Kojima <kkojima@gcc.gnu.org>
2210 * config/sh/lib1funcs-4-300.asm: Guard entire file with
2213 2006-11-05 Jakub Jelinek <jakub@redhat.com>
2216 * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
2219 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
2222 * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
2223 as a valid 80387 constant.
2224 (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
2225 * config/i386/i386.md (unnamed splitter): Split the load of
2226 constant -0.0 or -1.0 into the load of 0.0 or 1.0, followed
2229 2006-11-04 Richard Earnshaw <rearnsha@arm.com>
2231 * arm.c (thumb_legitimate_addres_p): Allow any constant offset
2232 from the soft-frame, argument and virtual registers.
2234 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
2236 * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
2237 patterns for standard 80387 constants.
2239 2006-11-03 Paolo Bonzini <bonzini@gnu.org>
2240 Steven Bosscher <steven@gcc.gnu.org>
2242 * fwprop.c: New file.
2243 * Makefile.in: Add fwprop.o.
2244 * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
2245 * passes.c (init_optimization_passes): Schedule forward propagation.
2246 * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
2248 * timevar.def (TV_FWPROP): New.
2249 * common.opt (-fforward-propagate): New.
2250 * opts.c (decode_options): Enable forward propagation at -O2.
2251 * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
2252 * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
2253 canon_for_address, table_size): Remove.
2254 (new_basic_block, insert, remove_from_table): Remove references to
2256 (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
2257 simplification loop more straightforward by not calling fold_rtx
2259 (equiv_constant): Move here a small part of fold_rtx_subreg,
2260 do not call fold_rtx. Call avoid_constant_pool_reference
2262 * recog.h (canonicalize_change_group): New.
2264 * doc/invoke.texi (Optimization Options): Document fwprop.
2265 * doc/passes.texi (RTL passes): Document fwprop.
2267 2006-11-03 Geoffrey Keating <geoffk@apple.com>
2269 * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
2270 (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
2271 (grokdeclarator): Likewise.
2273 2006-11-03 Steven Bosscher <steven@gcc.gnu.org>
2275 * tree-dump.c (dump_enable_all): Rename local variable
2276 ir_type to avoid name conflicts.
2277 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
2278 instead of using ir_type().
2279 * profile.c (tree_register_profile_hooks): Likewise.
2280 * value-prof.c (tree_register_value_prof_hooks): Likewise.
2281 * basic-block.h (struct edge_def): Likewise.
2282 * config/arm/arm.c (legitimize_pic_address): Likewise.
2283 * coretypes.h (ir_type): New enum of all intermediate languages
2285 * cfghooks.c (ir_type): Rename to...
2286 (current_ir_type): ...this. Distinguish between cfgrtl and
2287 cfglayout mode when the current IR is RTL. Return enum ir_type.
2288 * cfghooks.h (ir_type): Replace with current_ir_type prototype.
2290 2006-11-03 Paul Brook <paul@codesourcery.com>
2292 * config/arm/arm.c (arm_file_start): New function.
2293 (TARGET_ASM_FILE_START): Define.
2294 (arm_default_cpu): New variable.
2295 (arm_override_options): Set arm_default_cpu.
2297 2006-11-03 David Ung <davidu@mips.com>
2299 * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
2300 PROCESSOR_24KC and PROCESSOR_24KF.
2301 * config/mips/mips.c (mips_cpu_info_table): Add processor names
2302 and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
2303 (mips_rtx_cost_data): Add costs for the 24kc.
2304 * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
2305 * config/mips/24k.md: Remove references to 24k and replace with
2306 uses of 24kc/24kf in the appropriate reservations.
2307 * doc/invoke.texi (MIPS Options): Updated.
2309 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
2311 * config/sh/crt1.asm: Fix #ifdef indent.
2313 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
2314 Merged from STMicroelectronics sources:
2315 2006-10-06 Andrew Stubbs <andrew.stubbs@st.com>
2316 * config/sh/crt1.asm (vbr_600): Add missing #if.
2317 2006-08-03 J"orn Rennecke <joern.rennecke@st.com>
2318 * sh.opt (mfused-madd): New option.
2319 * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
2320 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
2321 * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
2322 Remove pointless handler at VBR+0.
2323 (vbr_200, vbr_300, vbr_500): Remove pointless handler.
2324 (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
2325 fr7. Make sure the timer handler is called with the correct FPU
2326 precision setting, according to the ABI.
2327 2006-06-14 J"orn Rennecke <joern.rennecke@st.com>
2328 * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
2329 * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
2330 (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
2331 2006-06-09 J"orn Rennecke <joern.rennecke@st.com>
2332 * sh.md (cmpgeusi_t): Change into define_insn_and_split. Accept
2333 zero as second operand.
2334 2006-04-28 J"orn Rennecke <joern.rennecke@st.com>
2335 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
2336 Fixed some bugs related to negative values, in particular -0
2337 and overflow at -0x80000000.
2338 * config/sh/divcost-analysis: Added sh4-300 figures.
2339 2006-04-27 J"orn Rennecke <joern.rennecke@st.com>
2340 * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
2341 2006-04-26 J"orn Rennecke <joern.rennecke@st.com>
2342 * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
2343 ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
2344 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
2346 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
2348 2006-04-24 J"orn Rennecke <joern.rennecke@st.com>
2349 SH4-300 scheduling description & fixes to SH4-[12]00 description:
2350 * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
2351 mac_mem, mem_mac, dfp_mul, fp_cmp.
2352 (insn_class, dfp_comp, any_fp_comp): Update.
2353 (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
2354 (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
2355 (muldf3_i): Likewise.
2356 (movsi_i): Split rI08 alternative into two separate alternatives.
2358 (movsi_ie, movsi_i_lowpart): Likewise.
2359 (movqi_i): Split ri alternative into two separate alternatives.
2361 * sh1.md (sh1_load_store, sh1_fp): Update.
2362 * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
2363 (mac_mem, sh4_fpscr_toggle): New insn_reservations.
2364 * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
2365 (sh4a_fp_double_arith): Likewise.
2366 * sh4-300.md: New file.
2367 * sh.c (sh_handle_option): Handle m4-300* options.
2368 (sh_adjust_cost): Fix latency of auto-increments.
2369 Handle SH4-300 differently than other SH4s. Check for new insn types.
2370 * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
2371 been set by an option.
2372 * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
2373 (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
2374 (mbranch-cost=): Likewise.
2375 * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
2377 * sh.md (mulsf3): Remove special expansion code.
2378 (mulsf3_ie): Now a define_insn_and_split.
2379 (macsf3): Allow for TARGET_SH4.
2381 * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
2382 * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
2383 (expand_cbranchdi4): Likewise.
2384 (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
2385 CONST_DOUBLE if the outer code is COMPARE.
2386 * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
2387 TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
2388 (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
2389 (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
2390 Remove redundant fp_{zero,one}_operand checks.
2391 * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
2392 * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
2393 (expand_cbranchdi4): Likewise.
2394 2006-04-20 J"orn Rennecke <joern.rennecke@st.com>
2395 * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
2397 2006-11-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
2399 * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
2402 2006-11-02 Brooks Moses <brooks.moses@codesourcery.com>
2404 * doc/invoke.texi: Fix mfp-trap-mode typo.
2406 2006-11-02 Carlos O'Donell <carlos@codesourcery.com>
2408 * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
2409 * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
2410 file_end_indicate_exec_stack.
2411 * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
2413 * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
2414 for a non-executable stack.
2415 * crti.asm: Likewise.
2416 * crtn.asm: Likewise.
2417 * libunwind.S: Likewise.
2419 2006-11-02 Ben Elliston <bje@au.ibm.com>
2421 * tree-ssa.c (warn_uninit): Use expand_location variables for
2422 locus and declaration locus.
2424 2006-11-02 Kaz Kojima <kkojima@gcc.gnu.org>
2427 * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
2428 (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
2429 cmp{eq,gt,gtu}{si,di}_media.
2430 (*cmpne0si_media): Remove.
2431 (*movsicc_umin): Adjust gen_cmp*_media call.
2432 (unordered): Change the mode of unordered and operands[1] to
2434 (seq): Adjust gen_cmp*_media calls. Make the mode of
2435 a temporary result of compare SImode if needed. If the mode
2436 of operands[0] is DImode, extend the temporary result to DImode.
2437 (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
2438 (sunorderd): Change the mode of match_operand and unorderd to
2440 (cmpeq{sf,df}_media): Remove.
2441 (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
2442 (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
2443 and compare operation to SImode.
2445 2006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
2447 * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
2449 (sparc64-sun-solaris2*): Likewise.
2451 2006-11-02 Paul Brook <paul@codesourcery.com>
2453 * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
2454 from priority argument. Use different section for non-default
2456 * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
2458 2006-11-02 Eric Botcazou <ebotcazou@adacore.com>
2461 * except.c (switch_to_exception_section): Do not cache the section
2462 if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
2463 and flag_function_sections is set.
2465 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2468 * builtins.c (do_mpfr_sincos): New.
2469 (fold_builtin_1): Use it to fold builtin sincos.
2471 2006-11-01 Roger Sayle <roger@eyesopen.com>
2473 * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
2474 it into -D_REENTRANT.
2476 2006-11-01 Roger Sayle <roger@eyesopen.com>
2478 * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
2479 whether the assembler supports taking the difference of symbols in
2480 different sections. On x86/Solaris, GAS does but Solaris as doesn't.
2481 * configure: Regenerate.
2482 * config.in: Regenerate.
2483 * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
2484 the assembler doesn't support taking the difference of symbols in
2485 different sections, i.e. we're using the native solaris assembler.
2487 2006-11-01 Pete Steinmetz <steinmtz@us.ibm.com>
2488 Peter Bergner <bergner@vnet.ibm.com>
2490 * doc/invoke.texi: Add cpu_type power6x
2491 (RS/6000 and PowerPC Options): Add -mmfpgpr.
2492 * config.gcc: Add cpu_type power6x.
2493 * configure.ac: Add test for mf{t,f}gpr instructions.
2494 (HAVE_AS_MFPGPR): New.
2495 * config.in: Regenerate.
2496 * configure: Regenerate.
2497 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
2498 * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
2499 shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
2500 and mftgpr attributes.
2501 (define_attr "cpu"): Add power6.
2502 Change instruction sequences to use new attributes.
2503 (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
2504 (fix_truncdfsi2_mfpgpr): New.
2505 (floatsidf_ppc64_mfpgpr): New.
2506 (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
2507 (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
2508 (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
2509 (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
2510 (fix_truncdfsi2): Use gpc_reg_operand constraint.
2511 * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
2512 7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
2513 Add descriptions for insert_dword, shift,trap,var_shift_rotate,
2514 cntlz,exts and var_delayed_compare.
2515 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2516 _ARCH_PWR6X, if features enabled.
2517 * config/rs6000/rs6000.opt (mmfpgpr): New.
2518 * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
2519 (cached_can_issue_more): New variable.
2520 (processor_costs): Add power6_cost.
2521 (rs6000_sched_init): New function.
2522 (is_dispatch_slot_restricted): Deleted.
2523 (set_to_load_agen): New function.
2524 (is_load_insn,is_store_insn): New functions.
2525 (adjacent_mem_locations): New function.
2526 (insn_must_be_first_in_group): New function.
2527 (insn_must_be_last_in_group): New function.
2528 (rs6000_sched_reorder): New function.
2529 (rs6000_sched_reorder2): New function.
2530 (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
2531 TARGET_SCHED_REORDER2): Define.
2532 (processor_target_table): Use PROCESSOR_POWER6 for power6.
2533 Add power6x. Add MASK_MFPGPR for power6x.
2534 (POWERPC_MASKS): Add MASK_MFPGPR.
2535 (rs6000_override_options): Set rs6000_always_hint to false
2536 for power6. Set rs6000_align_branch_targets. Replace
2537 rs6000_sched_groups check with rs6000_align_branch_targets.
2538 Use PROCESSOR_POWER6.
2539 (last_scheduled_insn): New variable.
2540 (load_store_pendulum): New variable.
2541 (rs6000_variable_issue): Set last_scheduled_insn and
2542 cached_can_issue_more.
2543 (rs6000_adjust_cost): Add power6 cost adjustments.
2544 (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
2545 with insn_must_be_first_in_group. Add power6 priority adjustments.
2546 (rs6000_issue_rate): Add CPU_POWER6.
2547 (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
2548 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
2549 (TARGET_MFPGPR): New.
2550 (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
2551 (ASM_CPU_SPEC): Add power6x.
2552 (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
2554 * config/rs6000/power6.md: New file.
2556 2006-11-01 Adam Nemet <anemet@caviumnetworks.com>
2558 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
2559 HOST_WIDE_INT_PRINT to print high and low parts. Use
2560 HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT. When
2561 printing a hexadecimal number prefix it with 0x.
2563 2006-11-01 Chris Johns <chris@contemporary.net.au>
2566 * Makefile.in (install-driver): Use exeext when installing
2567 $target-gcc-$version.
2569 2006-11-01 Douglas Gregor <doug.gregor@gmail.com>
2571 * c-common.c (flag_cpp0x): New.
2572 * c-common.h (flag_cpp0x): New.
2573 * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
2574 supported, define __GXX_EXPERIMENTAL_CPP0X__.
2575 * c-opts.c (set_std_cxx0x): New.
2576 (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
2577 * c.opt (std=c++0x): Document.
2578 (std=gnu++0x): Ditto.
2579 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
2580 * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
2582 2006-11-01 Richard Guenther <rguenther@suse.de>
2584 * config/i386/i386.c (ix86_expand_rint): Fix issues with
2586 (ix86_expand_floorceildf_32): Likewise.
2587 (ix86_expand_floorceil): Likewise.
2588 (ix86_expand_trunc): Likewise.
2590 2006-10-31 Andrew Pinski <pinskia@gmail.com>
2592 * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
2595 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
2597 * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
2599 * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
2601 * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
2603 * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
2604 * configure.ac (use_cxa_atexit): As a special case, don't test
2605 for libc definition of __cxa_atexit on mingw32
2606 * configure: Regenerate.
2607 * config.gcc (i[34567]86-pc-mingw32): Default to
2608 enable__cxa_atexit=yes.
2610 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2612 * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
2614 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2617 * c-decl.c (start_struct): Don't create self-containing
2619 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
2621 * config/rs6000/rs6000-protos.h
2622 (darwin_rs6000_special_round_type_align): New.
2623 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
2624 (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
2626 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2628 * toplev.c (compile_file): Call final_write_globals
2629 even if there have been errors.
2631 2006-10-31 Eric Christopher <echristo@apple.com>
2632 Falk Hueffner <falk@debian.org>
2634 * doc/extend.texi (__builtin_bswap32): Document.
2635 (__builtin_bswap64): Ditto.
2636 * doc/libgcc.texi (bswapsi2): Document.
2638 * doc/rtl.texi (bswap): Document.
2639 * optabs.c (expand_unop): Don't widen a bswap.
2640 (init_optabs): Init bswap. Set libfuncs explicitly
2641 for bswapsi2 and bswapdi2.
2642 * optabs.h (OTI_bswap): New.
2643 (bswap_optab): Ditto.
2644 * genopinit.c (optabs): Handle bswap_optab.
2645 * tree.h (tree_index): Add TI_UINT32_TYPE and
2647 (uint32_type_node): New.
2648 (uint64_type_node): Ditto.
2649 * tree.c (build_common_tree_nodes_2): Initialize
2650 uint32_type_node and uint64_type_node.
2651 * builtins.c (expand_builtin_bswap): New.
2652 (expand_builtin): Call.
2653 (fold_builtin_bswap): New.
2654 (fold_builtin_1): Call.
2655 * fold-const.c (tree_expr_nonnegative_p): Return true
2657 * builtin-types.def (BT_UINT32): New.
2659 (BT_FN_UINT32_UINT32): Ditto.
2660 (BT_FN_UINT64_UINT64): Ditto.
2661 * builtins.def (BUILT_IN_BSWAP32): New.
2662 (BUILT_IN_BSWAP64): Ditto.
2663 * rtl.def (BSWAP): New.
2664 * genattrtab.c (check_attr_value): New.
2665 * libgcc2.c (__bswapSI2): New.
2666 (__bswapDI2): Ditto.
2667 * libgcc2.h (__bswapSI2): Declare.
2668 (__bswapDI2): Ditto.
2669 * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
2670 * simplify-rtx.c (simplify_const_unary_operation): Return
2672 * libgcc-std.ver (__bwapsi2): Add.
2673 (__bswapdi2): Ditto.
2674 * reload1.c (eliminate_regs_1): Add bswap.
2675 (elimination_effects): Ditto.
2676 * config/i386/i386.h (x86_bswap): New.
2677 (TARGET_BSWAP): Use.
2678 * config/i386/i386.c (x86_bswap): Set.
2680 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2682 * coverage.c (coverage_checksum_string): Update comment.
2683 * dwarf2out.c (switch_to_eh_frame_section): Update for removal
2684 of get_file_function_name.
2685 * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
2686 of get_file_function_name_long.
2687 * tree.c (get_file_function_name): Rename from
2688 get_file_function_name_long; improve comment; handle 'I' and 'D'
2689 specially when the target has ctor/dtor support; remove special
2691 (get_file_function_name): Remove.
2692 * tree.h (get_file_function_name): Rename from
2693 get_file_function_name_long.
2694 (get_file_function_name): Remove prototype.
2696 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2698 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
2699 * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
2701 * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
2702 Call dsymutil when compiling and linking one or more source files
2705 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2708 * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
2710 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2712 * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
2713 inline static functions in c99 mode.
2716 * doc/extend.texi (Inline): Update.
2717 * c-tree.h (struct language_function): Remove field 'extern_inline'.
2718 * c-decl.c (current_extern_inline): Delete.
2719 (pop_scope): Adjust test for an undefined nested function.
2720 Add warning about undeclared inline function.
2721 (diagnose_mismatched_decls): Update comments. Disallow overriding
2722 of inline functions in a translation unit in C99. Allow inline
2723 declarations in C99 at any time.
2724 (merge_decls): Boolize variables. Handle C99 'extern inline'
2726 (grokdeclarator): Set DECL_EXTERNAL here for functions. Handle
2727 C99 inline semantics.
2728 (start_function): Don't clear current_extern_inline. Don't set
2730 (c_push_function_context): Don't push current_extern_inline.
2731 (c_pop_function_context): Don't restore current_extern_inline.
2734 * c-typeck.c (build_external_ref): Warn about static variables
2735 used in extern inline functions.
2736 * c-decl.c (start_decl): Warn about static variables declared
2737 in extern inline functions.
2739 2006-10-31 Roger Sayle <roger@eyesopen.com>
2742 * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
2743 * fold-const.c (tree_expr_nonnegative_p): Likewise. Consider
2744 pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
2745 or y is an even integer.
2747 2006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr>
2750 * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
2751 * gthr-posix95.h (__gthread_active_p): Likewise.
2753 2006-10-31 Richard Guenther <rguenther@suse.de>
2755 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
2756 acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
2757 expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
2758 exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
2759 ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
2760 lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
2761 lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
2762 btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
2765 2006-10-31 Steven Bosscher <steven@gcc.gnu.org>
2767 * opts.c (decode_options): Disable CSE skip blocks.
2769 2006-10-30 Dirk Mueller <dmueller@suse.de>
2771 * c-common.h (strict_aliasing_warning): Fix whitespace.
2772 * c-decl (start_function): Move code for main decl warning ..
2773 * c-common.c (check_main_parameter_types): .. here.
2774 * c-common.h (check_main_parameter_types): Declare.
2776 2006-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2779 * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
2781 2006-10-30 Pete Steinmetz <steinmtz@us.ibm.com>
2783 * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
2784 be a PARALLEL containing sets. Return false when out_pat is not
2787 2006-10-30 Richard Sandiford <richard@codesourcery.com>
2789 * config/mips/mips.md (mul<mode>3): Split into...
2790 (mulsi3, muldi3): ...these separate patterns.
2792 2006-10-30 Richard Sandiford <richard@codesourcery.com>
2794 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
2795 but with each set of options separated by spaces.
2797 2006-10-30 J"orn Rennecke <joern.rennecke@st.com>
2799 * unwind-dw2.c (uw_init_context_1): Fix test that checks if
2800 dwarf_reg_size_table has been initialized.
2802 2006-10-30 Roger Sayle <roger@eyesopen.com>
2804 * builtins.c (expand_builtin_mathfn_3): Correct coding style.
2805 * ddg.c (print_ddg_edge): Likewise.
2806 * dwarf2out.c (prune_unused_types_walk): Likewise.
2807 * ifcvt.c (noce_try_cmove_arith): Likewise.
2808 * langhooks.c (add_builtin_function): Likewise.
2809 * reg-stack.c (subst_stack_regs_pat): Likewise.
2810 * tree.c (expanded_location): Likewise.
2811 * tree-dump.c (dequeue_and_dump): Likewise.
2813 2006-10-30 David Daney <ddaney@avtrex.com>
2815 * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
2817 2006-10-30 Jakub Jelinek <jakub@redhat.com>
2819 PR tree-optimization/29637
2820 * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
2821 of the innertype is the innertype itself.
2823 2006-10-30 Danny Smith <dannysmith@users.sourceforge.net>
2825 * dwarf2out.c (file_name_acquire): Correct typo.
2827 2006-10-29 Daniel Berlin <dberlin@dberlin.org>
2829 * tree.h (tree_value_handle): Remove struct value_set declaration.
2830 Change value_set to bitmap_set.
2831 * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
2832 * tree-vn.c (get_value_handle): Made inline and moved to
2834 * tree-flow-inline.h: (has_stmt_ann): New function.
2835 * tree-ssa-pre.c (expressions): New variable.
2836 (next_expression_id): Ditto.
2837 (alloc_expression_id): New function.
2838 (struct value_set): Remove.
2839 (get_expression_id): New function.
2840 (get_or_alloc_expression_id): Ditto.
2841 (expression_for_id): Ditto.
2842 (clear_expression_ids): Ditto.
2843 (FOR_EACH_EXPR_ID_IN_SET): New macro.
2844 (bb_value_sets): Renamed to bb_bitmap_sets.
2845 All value sets replaced with bitmap_sets.
2847 (BB_VISITED): New macro.
2848 (postorder): New variable.
2849 (add_to_value): Removed.
2850 (value_exists_in_set_bitmap): Ditto.
2851 (value_insert_into_set_bitmap): Ditto.
2854 (set_remove): Ditto.
2855 (set_contains_value): Ditto.
2856 (insert_into_set): Ditto.
2858 (find_leader): Ditto.
2859 (bitmap_set_subtract_from_value_set): Ditto.
2860 (value_insert_into_set): Ditto.
2861 (print_value_set): Ditto.
2862 (debug_value_set): Ditto.
2863 (constant_expr_p): New function.
2864 (bitmap_remove_from_set): Ditto.
2865 (bitmap_insert_into_set): Ditto.
2866 (bitmap_set_free): Ditto.
2867 (vh_compare): Ditto.
2868 (sorted_array_from_bitmap_set): Ditto.
2869 (bitmap_set_subtract): Ditto.
2870 (bitmap_set_equal): Ditto.
2871 (debug_bitmap_set): Ditto.
2872 (find_leader_in_sets): Ditto.
2873 (bitmap_set_replace_value): Modify for bitmapped sets.
2874 (phi_translate): Ditto.
2875 (phi_translate_set): Ditto.
2876 (bitmap_find_leader): Ditto.
2877 (valid_in_sets): Ditto.
2878 (union_contains_value): Ditto.
2880 (compute_antic_aux): Ditto. Mark changed blocks.
2881 (compute_antic): Ditto. Iterate in postorder and only over
2883 (compute_rvuse_and_antic_safe): Reuse postorder.
2884 (create_component_ref_by_pieces): Modify for bitmapped sets.
2885 (find_or_generate_expression): Ditto.
2886 (create_expression_by_pieces): Ditto.
2887 (insert_into_preds_of_block): Ditto.
2888 (changed_blocks): New variable.
2889 (do_regular_insertion): Broken out from insert_aux.
2890 (insert_aux): Modified for bitmapped sets.
2891 (find_existing_value_expr): New function.
2892 (create_value_expr_from): Use it.
2893 (insert_extra_phis): Removed.
2894 (print_bitmap_set): Renamed from bitmap_print_value_set.
2895 (compute_avail): Handle RETURN_EXPR.
2896 (init_pre): Modify for bitmapped sets.
2897 * tree-flow.h (has_stmt_ann): New function.
2899 2006-10-29 Roger Sayle <roger@eyesopen.com>
2901 * builtins.c (fold_builtin_floor): Check for the availability of
2902 the C99 trunc function before transforming floor into trunc.
2904 2006-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2906 * builtins.c (fold_builtin_hypot): Rearrange recursive
2907 transformation before others, and also do ABS_EXPR. When
2908 necessary, check flag_unsafe_math_optimizations. When necessary,
2911 2006-10-29 Roger Sayle <roger@eyesopen.com>
2913 * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
2914 Fold ~X op C as X op' ~C, where op' is the swapped comparison.
2915 (fold_binary): ~X eq/ne C is now handled in fold_comparison.
2916 Fold -X eq/ne -Y as X eq/ne Y.
2918 2006-10-29 Richard Sandiford <richard@codesourcery.com>
2920 * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
2921 GENERATE_MULT3_<MODE>. Restrict the test to SImode. Use ISA_HAS_MUL3
2922 rather than GENERATE_MULT3_SI in the various define_peephole2s.
2923 (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
2924 Use an inclusive test for "mult" rather than "mul".
2925 (rotr<mode>3): Depend on ISA_HAS_ROR.
2926 * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
2928 (GENERATE_MULT3_DI): Delete.
2929 (ISA_HAS_64BIT_REGS): Use consistent formatting.
2930 (ISA_HAS_MUL3): New macro.
2931 (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
2932 (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
2933 (ISA_HAS_CLZ_CLO): Likewise.
2934 (ISA_HAS_DCLZ_DCLO): Delete.
2935 (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
2936 (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
2937 the VR4120 and VR4130.
2938 (ISA_HAS_MACCHI): Use consistent formatting.
2939 (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
2940 (ISA_HAS_ROR): ...this new macro.
2941 (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
2942 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
2943 (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
2945 2006-10-29 Roger Sayle <roger@eyesopen.com>
2947 PR tree-optimization/15458
2948 * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
2951 2006-10-29 Richard Guenther <rguenther@suse.de>
2953 * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
2954 (ix86_expand_truncdf_32): Likewise.
2955 * config/i386/i386.c (ix86_expand_trunc): New function expanding
2956 trunc inline for SSE math and -fno-trapping-math and if not
2957 optimizing for size.
2958 (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
2959 * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
2960 for expanding btrunc inline for SSE math.
2962 2006-10-29 Joseph Myers <joseph@codesourcery.com>
2964 * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
2965 Handle tuning for bi-arch i[34567]86-*-linux* like that for
2966 i[34567]86-*-solaris2.1[0-9]*.
2967 * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
2968 Define conditionally depending on TARGET_64BIT_DEFAULT.
2969 (SPEC_32, SPEC_64): Define.
2970 (LINK_SPEC): Use them.
2971 * doc/install.texi (--enable-targets=all): Document for x86-linux.
2973 2006-10-29 Richard Guenther <rguenther@suse.de>
2975 * config/i386/i386-protos.h (ix86_expand_round): Declare.
2976 (ix86_expand_rounddf_32): Likewise.
2977 * config/i386/i386.c (ix86_expand_round): New function expanding
2978 round inline for SSE math and -fno-trapping-math and if not
2979 optimizing for size.
2980 (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
2981 * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
2982 round via ix86_expand_round.
2984 2006-10-29 Richard Guenther <rguenther@suse.de>
2986 * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
2987 (ix86_expand_floorceildf_32): Likewise.
2988 * config/i386/i386.c (ix86_expand_sse_compare_mask): New
2989 static helper function.
2990 (ix86_expand_floorceil): Expander for floor and ceil to SSE
2992 (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
2993 * config/i386/i386.md (floordf2): Adjust to enable floor
2994 expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
2995 -fno-trapping-math is enabled and if not optimizing for size.
2996 (floorsf2, ceildf2, ceilsf2): Likewise.
2997 * config/i386/sse.md (sse_maskcmpsf3): New insn.
2998 (sse2_maskcmpdf3): Likewise.
3000 2006-10-29 Richard Guenther <rguenther@suse.de>
3002 * builtins.c (expand_builtin_mathfn): Expand nearbyint as
3003 rint in case -fno-trapping-math is enabled.
3004 * config/i386/i386-protos.h (ix86_expand_rint): Declare.
3005 * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
3006 (ix86_expand_sse_fabs): Likewise.
3007 (ix86_expand_rint): New function expanding rint to x87 or SSE math.
3008 * config/i386/i386.md (rintdf2): Enable for SSE math if
3009 -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
3010 (rintsf2): Likewise.
3012 2006-10-29 Richard Guenther <rguenther@suse.de>
3014 * genopinit.c (optabs): Change lfloor_optab and lceil_optab
3015 to conversion optabs.
3016 * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
3017 as conversion optab.
3018 * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
3019 (enum convert_optab_index): Add COI_lfloor and COI_lceil.
3020 (lfloor_optab, lceil_optab): Adjust defines.
3021 * builtins.c (expand_builtin_int_roundingfn): Adjust for
3022 lfloor and lceil optabs now being conversion optabs.
3023 * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
3024 * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
3025 New static helper function.
3026 (ix86_expand_lfloorceil): New function to expand lfloor and
3028 * config/i386/i386.md (lfloor<mode>2): Split into ...
3029 (lfloorxf<mode>2): ... x87 variant
3030 (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
3031 using ix86_expand_lfloorceil.
3032 (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
3034 * doc/md.texi (lfloorMN, lceilMN): Document.
3036 2006-10-29 Richard Sandiford <richard@codesourcery.com>
3038 * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the
3039 -mno-shared assembler option on mips targets.
3040 * configure, config.in: Regenerate.
3041 * config/mips/linux.h (NO_SHARED_SPECS): New macro.
3042 (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
3043 * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
3045 2006-10-29 Richard Sandiford <richard@codesourcery.com>
3047 * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
3048 as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
3050 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
3052 * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
3053 config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
3056 2006-10-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3059 * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
3060 (fold_builtin_pow): Evaluate constant arguments at compile-time
3062 (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
3063 (do_mpfr_ckconv): New helper function.
3064 (do_mpfr_arg1): Use do_mpfr_ckconv.
3065 (do_mpfr_arg2): New.
3067 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
3070 * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
3071 (-fdump-rtl-sched): Rename to ..
3072 (-fdump-rtl-sched1): here. Also fix file extension number.
3074 2006-10-28 Richard Guenther <rguenther@suse.de>
3076 * fold-const.c (maybe_canonicalize_comparison): Fix code
3079 2006-10-28 Uros Bizjak <uros@kss-loka.si>
3081 * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
3082 (NON_QI_REG_P): Use IN_RANGE.
3083 (REX_INT_REGNO_P): Use IN_RANGE.
3084 (FP_REGNO_P): Use IN_RANGE.
3085 (SSE_REGNO_P): Use IN_RANGE.
3086 (REX_SSE_REGNO_P): Use IN_RANGE.
3087 (MMX_REGNO_P): Use IN_RANGE.
3088 (STACK_REGNO_P): New macro.
3089 (STACK_REG_P): Use STACK_REGNO_P.
3090 (NON_STACK_REG_P): Use STACK_REGNO_P.
3091 (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
3092 (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
3093 (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
3094 (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
3095 (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
3097 2006-10-28 Eric Botcazou <ebotcazou@adacore.com>
3099 * except.h (output_function_exception_table): Add 'const char*' param.
3100 * except.c (switch_to_exception_section): Add 'const char*' param.
3101 If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
3102 and flag_function_sections is set, use a function-specific section.
3103 (output_function_exception_table): Add 'const char*' param.
3104 Adjust call to switch_to_exception_section.
3105 * final.c (rest_of_handle_final): Adjust calls to
3106 output_function_exception_table.
3107 * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
3108 * config.in: Regenerate.
3109 * configure: Likewise.
3111 2006-10-28 Richard Guenther <rguenther@suse.de>
3114 * fold-const.c (maybe_canonicalize_comparison_1): Helper
3115 for maybe_canonicalize_comparison.
3116 (maybe_canonicalize_comparison): New function for canonicalizing
3118 (fold_comparison): Call it to canonicalize comparisons with
3121 2006-10-28 Richard Guenther <rguenther@suse.de>
3124 * builtins.c (expand_builtin_int_roundingfn_2): Expand
3125 BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
3126 (expand_builtin): Adjust likewise.
3127 * genopinit.c (optabs[]): Add lround optab.
3128 * optabs.c (init_optabs): Initialize lround_optab.
3129 * optabs.h (enum convert_optab_index): Add COI_lround.
3130 (lround_optab): Define.
3131 * config/i386/i386-protos.h (ix86_expand_lround): Declare.
3132 * config/i386/i386.c (ix86_sse_copysign_to_positive): New
3134 (ix86_expand_lround): New function.
3135 * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
3137 * doc/md.texi (lroundMN2): Document.
3139 2006-10-28 Uros Bizjak <uros@kss-loka.si>
3142 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
3143 argument to HOST_WIDE_INT. Update function prototype.
3144 (round_frame_size): Change return type to HOST_WIDE_INT. Change
3145 "size" argument to HOST_WIDE_INT. Update function prototype.
3147 2006-10-28 Uros Bizjak <uros@kss-loka.si>
3149 * config/i386/i386.c (output_387_ffreep): Create output from a
3150 template string for !HAVE_AS_IX86_FFREEP.
3152 2006-10-27 Eric Christopher <echristo@apple.com>
3154 * config/darwin.c: Fix formatting and grammar.
3156 2006-10-27 Jan Hubicka <jh@suse.cz>
3158 * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
3159 to be thrown away soon when IGNORE is set.
3160 * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
3161 indicating when return value shall not be computed.
3162 * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
3164 2006-10-27 Vladimir Makarov <vmakarov@redhat.com>
3166 * config/i386/i386.h (TARGET_GEODE):
3167 (TARGET_CPU_CPP_BUILTINS): Add code for geode.
3168 (TARGET_CPU_DEFAULT_geode): New macro.
3169 (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
3170 TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
3171 TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
3172 TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
3173 TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
3175 (TARGET_CPU_DEFAULT_NAMES): Add geode.
3176 (processor_type): Add PROCESSOR_GEODE.
3178 * config/i386/i386.md: Include geode.md.
3181 * config/i386/i386.c (geode_cost): New initialized global
3183 (m_GEODE, m_K6_GEODE): New macros.
3184 (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
3185 x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
3186 x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
3187 x86_schedule): Use m_K6_GEODE instead of m_K6.
3188 (x86_movx, x86_cmove): Set up m_GEODE.
3189 (x86_integer_DFmode_moves): Clear m_GEODE.
3190 (processor_target_table): Add entry for geode.
3191 (processor_alias_table): Ditto.
3193 * config/i386/geode.md: New file.
3195 * doc/invoke.texi: Add entry about geode processor.
3197 2006-10-27 Mike Stump <mrs@apple.com>
3199 * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
3200 __DYNAMIC__ from here back to ...
3201 * config/darwin.h (CPP_SPEC): ... here.
3203 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
3204 Nathan Sidwell <nathan@codesourcery.com>
3206 * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
3207 when choosing the minimum heapsize.
3209 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
3211 * gcc/unwind-dw2.h: Move cfa-related variables into
3212 struct frame_state_reg_info to ensure that the CFA is properly
3213 handled when executing DW_CFA_{remember,restore}_state.
3214 * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
3215 gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
3216 gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
3217 gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
3218 gcc/config/rs6000/linux-unwind.h,
3219 gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
3220 gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
3221 Modify to use new cfa_* fields.
3223 2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
3225 * config/s390/s390.c (s390_init_frame_layout): Check positive
3228 2006-10-26 Ben Elliston <bje@au.ibm.com>
3230 * gimplify.c (get_name): Remove extraneous break.
3231 (gimplify_omp_for): Initialise ret with GS_OK.
3233 2006-10-25 Steve Ellcey <sje@cup.hp.com>
3235 * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
3236 Add unix98.o to link line.
3238 2006-10-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3241 * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
3242 Calculate compile-time constants using MPFR.
3243 (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
3244 BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
3246 2006-10-25 Bob Wilson <bob.wilson@acm.org>
3248 * config/xtensa/lib2funcs.S: Use C-style comments.
3250 2006-10-24 Nathan Froyd <froydnj@codesourcery.com>
3252 * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
3253 (file_table_relative_p): Likewise.
3254 (dwarf2out_finish): Likewise.
3255 (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
3257 2006-10-25 Daniel Berlin <dberlin@dberlin.org>
3259 * tree-ssa-structalias.c (intra_create_variable_infos):
3260 Don't recreate nonlocal_all if it already exists.
3262 2006-10-25 Richard Guenther <rguenther@suse.de>
3265 * optabs.h (enum optab_index): Remove OTI_lrint.
3266 (enum convert_optab_index): Add COI_lrint.
3267 (lrint_optab): Adjust.
3268 (expand_sfix_optab): Declare.
3269 * optabs.c (expand_sfix_optab): New function.
3270 (init_optabs): Init lrint_optab as conversion optab.
3271 * genopinit.c (lrint_optab): Change to a conversion optab.
3272 * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
3273 expansion via conversion optab.
3274 * config/i386/i386.md (*fistdi2_1): Remove
3275 flag_unsafe_math_optimizations guard.
3276 (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
3277 fist<mode>2_with_temp): Likewise.
3278 (lrint<mode>2): Split into...
3279 (lrintxf<mode>2): ... x87 part
3280 (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
3281 * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
3282 sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
3283 UNSPEC_FIX_NOTRUNC matching non-vector float modes.
3284 * doc/md.texi (lrintMN2): Document.
3286 2006-10-25 Uros Bizjak <uros@kss-loka.si>
3289 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
3290 Use inc and dec instructions for TARGET_USE_INCDEC.
3291 ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
3292 ("sync_double_compare_and_swap<mode>"): Likewise.
3293 ("*sync_double_compare_and_swapdi_pic"): Likewise.
3294 ("*sync_compare_and_swap_cc<mode>"): Likewise.
3295 ("sync_double_compare_and_swap_cc<mode>"): Likewise.
3296 ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
3297 ("sync_old_add<mode>"): Likewise.
3298 ("sync_lock_test_and_set<mode>"): Likewise.
3299 ("sync_lock_test_and_set<mode>"): Likewise.
3300 ("sync_add<mode>"): Likewise.
3301 ("sync_sub<mode>"): Likewise.
3302 ("sync_ior<mode>"): Likewise.
3303 ("sync_and<mode>"): Likewise.
3304 ("sync_xor<mode>"): Likewise.
3306 2006-10-25 Uros Bizjak <uros@kss-loka.si>
3308 * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
3309 (remainder_optab): Define corresponding macro.
3310 (drem_optab): Remove.
3311 * optabs.c (init_optabs): Initialize remainder_optab. Remove
3312 drem_optab initialization.
3313 * genopinit.c (optabs): Implement remainder_optab using
3314 remainder?f3 patterns. Remove drem_optab.
3315 * builtins.c (expand_builtin_mathfn_2): Handle
3316 BUILT_IN_REMAINDER{,F,L} using remainder_optab.
3317 (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
3318 expand_builtin_mathfn_2.
3320 (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
3321 depend on flag_unsafe_math_optimizations.
3323 * config/i386/i386.md ("remaindersf3", "remainderdf3")
3324 ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
3325 Do not depend on flag_unsafe_math_optimizations. Use
3326 truncxf?f expander instead of truncxf?f_i387_noop.
3328 ("fpremxf4", "fprem1xf4"): Do not depend on
3329 flag_unsafe_math_optimizations.
3330 ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
3331 flag_unsafe_math_optimizations. Use truncxf?f expander
3332 instead of truncxf?f_i387_noop.
3334 * doc/md.texi (fmod, remainder): Document standard named pattern.
3336 2006-10-24 Richard Sandiford <richard@codesourcery.com>
3337 David Daney <ddaney@avtrex.com>
3340 * rtlanal.c (nonzero_address_p): Remove check for values wrapping.
3342 2006-10-25 Ben Elliston <bje@au.ibm.com>
3344 * doc/extend.texi (Variable Attributes): Typo fix.
3346 2006-10-24 Uros Bizjak <uros@kss-loka.si>
3348 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
3349 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
3350 (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
3351 (FRAME_POINTER_REGNUM): Update register number to 21.
3352 (REG_CLASS_CONTENTS): Update contents for added fpcr register.
3353 (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
3355 * config/i386/i386.c (regclass_map): Add fpcr entry.
3356 (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
3358 (print_reg): Assert REGNO (x) != FPCR_REG.
3360 * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
3361 (DIRFLAG_REG): Renumber.
3362 (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
3363 (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
3364 (sse_prologue_save, *sse_prologue_save_insn): Renumber
3365 hardcoded SSE register numbers.
3367 * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
3368 hardcoded MMX register numbers.
3370 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3373 * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
3374 (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
3376 (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
3377 (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
3378 BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
3379 BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
3381 2006-10-24 Richard Guenther <rguenther@suse.de>
3384 * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
3385 and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
3386 for deciding optimizations in consistency with fold-const.c
3387 (fold_builtin_unordered_cmp): Likewise.
3389 2006-10-24 Richard Guenther <rguenther@suse.de>
3391 * builtins.c (fold_builtin_floor): Fold floor (x) where
3392 x is nonnegative to trunc (x).
3393 (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
3394 nonnegative to FIX_TRUNC_EXPR.
3396 2006-10-24 Richard Guenther <rguenther@suse.de>
3398 PR tree-optimization/29567
3399 * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
3400 for TRUTH_NOT_EXPR. Clarify comments.
3402 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3405 * builtins.c (fold_builtin_exponent): Evaluate constant arguments
3406 at compile-time using MPFR. Change parameter VALUE to FUNC,
3408 (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check
3409 for overflow and underflow at all times and avoid folding in
3412 2006-10-24 Ben Elliston <bje@au.ibm.com>
3414 * reload1.c: Formatting fixes.
3416 2006-10-23 Zdenek Dvorak <dvorakz@suse.cz>
3418 PR tree-optimization/14784
3419 * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
3420 * tree-ssa-structalias.c (get_constraint_for,
3421 intra_create_variable_infos): Set is_heapvar.
3422 * tree-ssa-operands.c (access_can_touch_variable): Do not handle
3423 non-heapvar pointer variables specially.
3425 2006-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3428 * builtins.c (fold_builtin_sin, fold_builtin_cos,
3429 fold_builtin_tan): Fold all constant arguments. Take a "type"
3430 argument as necessary.
3431 (do_mpfr_arg1): New.
3432 * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
3434 2006-10-23 Bob Wilson <bob.wilson@acm.org>
3436 * config/xtensa/lib1funcs.asm: Use C-style comments.
3438 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
3440 * tree.c (local_define_builtin): Replace calls to
3441 lang_hooks.builtin_function with add_builtin_function.
3442 * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
3444 * c-tree.h (builtin_function): Rename to c_builtin_function. Change
3446 * c-decl.c (builtin_function): Rename to c_builtin_function. Move
3447 common code to add_builtin_function.
3448 * langhooks.c (add_builtin_function): New function.
3449 (lhd_builtin_function): New function.
3450 * langhooks.h (struct lang_hooks): Change the signature of
3452 (add_builtin_function): New function.
3453 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
3454 calls to lang_hooks.builtin_function with add_builtin_function.
3455 * c-common.c (decl_builtin_1): Replace calls to
3456 lang_hooks.builtin_function with add_builtin_function.
3457 * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
3458 lang_hooks.builtin_function with add_builtin_function.
3459 * config/frv/frv.c (def_builtin): Replace calls to
3460 lang_hooks.builtin_function with add_builtin_function.
3461 * config/s390/s390.c (s390_init_builtins): Replace calls to
3462 lang_hooks.builtin_function with add_builtin_function.
3463 * config/sparc/sparc.c (def_builtin): Replace calls to
3464 lang_hooks.builtin_function with add_builtin_function.
3465 * config/i386/i386.c (def_builtin): Replace calls to
3466 lang_hooks.builtin_function with add_builtin_function.
3467 * config/sh/sh.c (sh_media_init_builtins): Replace calls to
3468 lang_hooks.builtin_function with add_builtin_function.
3469 * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
3470 lang_hooks.builtin_function with add_builtin_function.
3471 * config/stormy16/stormy16.c (xstormy16_init_builtins):
3472 Replace calls to lang_hooks.builtin_function with
3473 add_builtin_function.
3474 * config/iq2000/iq2000.c (def_builtin):
3475 Replace calls to lang_hooks.builtin_function with
3476 add_builtin_function.
3477 * config/ia64/ia64.c (def_builtin): Replace calls to
3478 lang_hooks.builtin_function with add_builtin_function.
3479 * config/rs6000/rs6000.c (def_builtin): Replace calls to
3480 lang_hooks.builtin_function with add_builtin_function.
3481 (altivec_init_builtins): Replace calls to
3482 lang_hooks.builtin_function with add_builtin_function.
3483 * config/arm/arm.c (def_mbuiltin): Replace calls to
3484 lang_hooks.builtin_function with add_builtin_function.
3485 (arm_init_tls_builtins): Replace calls to
3486 lang_hooks.builtin_function with add_builtin_function.
3487 * config/mips/mips.c (mips_init_builtins): Replace calls to
3488 lang_hooks.builtin_function with add_builtin_function.
3489 * config/bfin/bfin.c (def_builtin): Replace calls to
3490 lang_hooks.builtin_function with add_builtin_function.
3491 * langhooks-def.h (lhd_builtin_function): New function.
3492 (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
3494 2006-10-23 Jakub Jelinek <jakub@redhat.com>
3496 * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
3497 BUILT_IN_STRNCAT_CHK.
3499 2006-10-23 Jan Hubicka <jh@suse.cz>
3501 * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
3502 don't do conversion from memmove to memcpy here.
3503 (expand_builtin_bcopy, expand_builtin): Update call of
3504 expand_builtin_memmove.
3505 (fold_builtin_memory_op): Do folding of memmove to memcpy here.
3507 2006-10-23 Paul Brook <paul@codesourcery.com>
3509 * stor-layout.c (start_record_layout): maximum_field_alignment
3510 overrides STRUCTURE_SIZE_BOUNDARY.
3512 2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
3514 * config/s390/predicates.md ("bras_sym_operand"): Do not accept
3515 nonlocal function symbols if flag_pic.
3517 2006-10-23 Richard Guenther <rguenther@suse.de>
3521 * builtins.c (fold_binary): Remove checks for flag_wrapv
3522 and flag_trapv where negate_expr_p covers these cases.
3524 2006-10-23 Richard Guenther <rguenther@suse.de>
3527 * fold-const.c (fold_plusminus_mult_expr): Check exact power
3528 of two on the absolute value.
3529 (fold_binary): Fold x * -C to -x * C if x is easily negatable
3530 and negating -C does not overflow.
3532 2006-10-23 Richard Guenther <rguenther@suse.de>
3535 * convert.c (convert_to_real): Fold (float)-x to -(float)x
3536 only if not flag_rounding_math.
3538 2006-10-22 Richard Sandiford <richard@codesourcery.com>
3539 Kaz Kojima <kkojima@gcc.gnu.org>
3542 * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
3543 SImode memory reference for the source of a movua.
3544 * config/sh/sh.md (UNSPEC_MOVUA): New macro.
3545 (movua): Use an unspec instead of sign_extract. Expect the source
3546 to have mode BLKmode.
3547 (extv, insv): Use a BLKmode rather than SImode memory reference
3548 for the source of a movua.
3550 2006-10-22 Jeff Law <law@redhat.com>
3551 Richard Guenther <rguenther@suse.de>
3553 PR tree-optimization/15911
3554 * tree-vrp.c (extract_code_and_val_from_cond): New function.
3555 (register_edge_assert_for_1): Likewise.
3556 (register_edge_assert_for): Handle &&/&/||/| in conditionals.
3557 (find_conditional_asserts): Adjust for new function signature.
3558 (find_assert_locations): Likewise.
3560 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
3562 * config/i386/tmmintrin.h: Remove the duplicated content.
3564 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
3566 * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
3567 (x86_64-*-*): Likewise.
3569 * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
3570 (override_options): Check SSSE3.
3571 (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
3572 IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
3573 IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
3574 IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
3575 IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
3576 IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
3577 IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
3578 IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
3579 IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
3580 IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
3581 IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
3582 IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
3583 IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
3584 IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
3585 IX86_BUILTIN_PABSD128.
3586 (bdesc_2arg): Add SSSE3.
3587 (bdesc_1arg): Likewise.
3588 (ix86_init_mmx_sse_builtins): Support SSSE3.
3589 (ix86_expand_builtin): Likewise.
3590 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
3592 * config/i386/i386.md (UNSPEC_PSHUFB): New.
3593 (UNSPEC_PSIGN): Likewise.
3594 (UNSPEC_PALIGNR): Likewise.
3595 Include mmx.md before sse.md.
3597 * config/i386/i386.opt: Add -mssse3.
3599 * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
3600 (ssse3_phaddwv4hi3): Likewise.
3601 (ssse3_phadddv4si3): Likewise.
3602 (ssse3_phadddv2si3): Likewise.
3603 (ssse3_phaddswv8hi3): Likewise.
3604 (ssse3_phaddswv4hi3): Likewise.
3605 (ssse3_phsubwv8hi3): Likewise.
3606 (ssse3_phsubwv4hi3): Likewise.
3607 (ssse3_phsubdv4si3): Likewise.
3608 (ssse3_phsubdv2si3): Likewise.
3609 (ssse3_phsubswv8hi3): Likewise.
3610 (ssse3_phsubswv4hi3): Likewise.
3611 (ssse3_pmaddubswv8hi3): Likewise.
3612 (ssse3_pmaddubswv4hi3): Likewise.
3613 (ssse3_pmulhrswv8hi3): Likewise.
3614 (ssse3_pmulhrswv4hi3): Likewise.
3615 (ssse3_pshufbv16qi3): Likewise.
3616 (ssse3_pshufbv8qi3): Likewise.
3617 (ssse3_psign<mode>3): Likewise.
3618 (ssse3_psign<mode>3): Likewise.
3619 (ssse3_palignrti): Likewise.
3620 (ssse3_palignrdi): Likewise.
3621 (abs<mode>2): Likewise.
3622 (abs<mode>2): Likewise.
3624 * config/i386/tmmintrin.h: New file.
3626 * doc/extend.texi: Document SSSE3 built-in functions.
3628 * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
3630 2006-10-22 Ira Rosen <irar@il.ibm.com>
3632 * tree-vect-transform.c (vectorizable_load): Use the type of the
3633 return value of the mask_for_load builtin to create realign_load
3636 2006-10-22 Richard Sandiford <richard@codesourcery.com>
3638 * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
3641 2006-10-21 H.J. Lu <hongjiu.lu@intel.com>
3643 * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
3644 (UNSPEC_LDDQU): This.
3645 * config/i386/sse.md (sse3_lddqu): Updated.
3647 2006-10-21 Richard Guenther <rguenther@suse.de>
3649 * builtins.c (expand_builtin_int_roundingfn_2): New function.
3650 (expand_builtin): Use it to expand lrint instead of
3651 expand_builtin_mathfn.
3653 2006-10-21 Uros Bizjak <uros@kss-loka.si>
3656 * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
3657 flag_unsafe_math_optimizations is set.
3659 2006-10-21 Uros Bizjak <uros@kss-loka.si>
3662 * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
3663 patterns to use memory input operand in x87->mem->XMM
3664 reload sequences. Skip transformation for TARGET_K8.
3666 2006-10-21 Uros Bizjak <uros@kss-loka.si>
3668 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
3669 force operand1 to register if both operands are memory operands.
3670 (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
3671 (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
3672 if both operands are memory operands.
3673 (truncdfsf2): Do not force operand1 to register if both operands
3674 are memory operands.
3676 2006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3678 * Makefile.in (LIBS): Add $(GMPLIBS).
3679 * doc/install.texi: Update GMP and MPFR requirements.
3680 * doc/sourcebuild.texi (need_gmp): Delete.
3682 2006-10-21 Richard Guenther <rguenther@suse.de>
3684 PR tree-optimization/3511
3685 * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
3686 got new invariant arguments during PHI translation.
3688 2006-10-21 Richard Guenther <rguenther@suse.de>
3691 * fold-const.c (fold_comparison): Fold signed comparisons
3692 of the form X +- C1 CMP Y +- C2.
3694 2006-10-21 Richard Guenther <rguenther@suse.de>
3697 * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
3698 if flag_unsafe_math_optimizations is specified. We have
3699 flag_finite_math_only for that.
3700 * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
3701 or flag_unsafe_math_optimizations.
3703 2006-10-21 Richard Guenther <rguenther@suse.de>
3705 * builtins.c (fold_builtin_classify): Fix typo.
3707 2006-10-21 Richard Guenther <rguenther@suse.de>
3710 * simplify-rtx.c (simplify_const_relational_operation):
3711 Do not constant-fold ORDERED and UNORDERED for
3712 flag_unsafe_math_optimizations but only we do not need to
3713 honor NaNs for the given mode.
3715 2006-10-21 Richard Guenther <rguenther@suse.de>
3718 * config/i386/i386.c (classify_argument): Remove redundant
3719 walking of the BINFOs.
3720 (contains_128bit_aligned_vector_p): Likewise.
3722 2006-10-20 Mark Mitchell <mark@codesourcery.com>
3724 * BASE-VER: Set to 4.3.0.
3726 2006-10-20 Daniel Berlin <dberlin@dberlin.org>
3728 * tree.h (DECL_PTA_ARTIFICIAL): Remove.
3729 (tree_decl_with_vis): Remove artificial_pta_var flag.
3730 * tree-flow.h (referenced_var_check_and_insert): Expose.
3731 (nonlocal_all): New prototype.
3732 * tree-ssa-structalias.c (nonlocal_for_type): Remove.
3733 (nonlocal_all): Make global.
3734 (nonlocal_lookup): Remove.
3735 (nonlocal_insert): Ditto.
3736 (create_nonlocal_var): Do not call nonlocal_insert.
3737 (get_nonlocal_id_for_type): Remove.
3738 (find_global_initializers): Mark new vars we find for renaming.
3739 (intra_create_variable_infos): Only create one nonlocal.
3740 (expand_nonlocal_solutions): Remove.
3741 (compute_points_to_sets): Don't call it.
3742 (ipa_pta_execute): Ditto.
3743 (init_alias_heapvars): Don't create nonlocal_for_type.
3744 (delete_alias_heapvars): Don't remove it.
3745 * tree-ssa-operands.c (access_can_touch_variable): Don't prune
3748 2006-10-19 Brooks Moses <bmoses@stanford.edu>
3750 * doc/install.texi (Downloading GCC): Clarify mention of
3751 Fortran in the "full distribution" description.
3753 2006-10-19 Daniel Berlin <dberlin@dberlin.org>
3755 Fix PR tree-optimization/28778
3756 Fix PR tree-optimization/29156
3757 Fix PR tree-optimization/29415
3758 * tree.h (DECL_PTA_ARTIFICIAL): New macro.
3759 (tree_decl_with_vis): Add artificial_pta_var flag.
3760 * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
3761 pushed into callers.
3762 * tree-ssa-structalias.c (nonlocal_for_type): New variable.
3763 (nonlocal_all): Ditto.
3764 (struct variable_info): Add directly_dereferenced member.
3765 (var_escaped_vars): New variable.
3766 (escaped_vars_tree): Ditto.
3767 (escaped_vars_id): Ditto.
3768 (nonlocal_vars_id): Ditto.
3769 (new_var_info): Set directly_dereferenced.
3770 (graph_size): New variable
3771 (build_constraint_graph): Use graph_size.
3772 (solve_graph): Don't process constraints that cannot change the
3773 solution, don't try to propagate an empty solution to our
3775 (process_constraint): Set directly_dereferenced.
3776 (could_have_pointers): New function.
3777 (get_constraint_for_component_ref): Don't process STRING_CST.
3778 (nonlocal_lookup): New function.
3779 (nonlocal_insert): Ditto.
3780 (create_nonlocal_var): Ditto.
3781 (get_nonlocal_id_for_type): Ditto.
3782 (get_constraint_for): Allow results vector to be empty in the case
3783 of string constants.
3784 Handle results of calls properly.
3785 (update_alias_info): Update alias info stats on number and type of
3787 (find_func_aliases): Use could_have_pointers.
3788 (make_constraint_from_escaped): Renamed from
3789 make_constraint_to_anything, and changed to make constraints from
3791 (make_constraint_to_escaped): New function.
3792 (find_global_initializers): Ditto.
3793 (create_variable_info_for): Make constraint from escaped to any
3794 global variable, and from any global variable to the set of
3796 (intra_create_variable_infos): Deal with escaped instead of
3797 pointing to anything.
3798 (set_uids_in_ptset): Do type pruning on directly dereferenced
3800 (find_what_p_points_to): Adjust call to set_uids_with_ptset.
3801 (init_base_vars): Fix comment, and initialize escaped_vars.
3802 (need_to_solve): Removed.
3803 (find_escape_constraints): New function.
3804 (expand_nonlocal_solutions): Ditto.
3805 (compute_points_to_sets): Call find_escape_constraints and
3806 expand_nonlocal_solutions.
3807 (delete_points_to_sets): Don't fall off the end of the graph.
3808 (init_alias_heapvars): Initialize nonlocal_for_type and
3810 (delete_alias_heapvars): Free nonlocal_for_type and null out
3813 2006-10-19 Eric Botcazou <ebotcazou@adacore.com>
3815 * fold-const.c (add_double): Rename to add_double_with_sign.
3816 Add 'unsigned_p' parameter and take it into account for the overflow.
3817 (mul_double): Rename to mul_double_with_sign.
3818 Add 'unsigned_p' parameter and take it into account for the overflow.
3819 (fold_div_compare): Call add_double_with_sign instead of add_double
3820 and mul_double_with_sign instead of mul_double, passing them the
3821 unsignedness of the type.
3822 * tree.h (add_double): Macroize.
3823 (add_double_with_sign): New prototype.
3824 (mul_double): Macroize.
3825 (mul_double_with_sign): New prototype.
3827 2006-10-19 Chen Liqin <liqin@sunnorth.com.cn>
3829 * config/score/crti.asm: New file.
3830 * config/score/crtn.asm: New file.
3831 * config/score/elf.h: New file.
3832 * config/score/mac.md: New file.
3833 * config/score/misc.md: New file.
3834 * config/score/mul-div.S: New file.
3835 * config/score/predicates.md: New file.
3836 * config/score/score7.md: New file.
3837 * config/score/score.c: New file.
3838 * config/score/score-conv.h: New file.
3839 * config/score/score.h: New file.
3840 * config/score/score.md: New file.
3841 * config/score/score-mdaux.c: New file.
3842 * config/score/score-mdaux.h: New file.
3843 * config/score/score-modes.def: New file.
3844 * config/score/score.opt: New file.
3845 * config/score/score-protos.h: New file.
3846 * config/score/score-version.h: New file.
3847 * config/score/t-score-elf: New file.
3848 * config.gcc: Add score*-*-* configurations(Update before).
3849 * doc/invoke.texi (Score Options): New section.
3850 * doc/md.texi (Score family): New section to document constraints.
3852 2006-10-19 Nick Clifton <nickc@redhat.com>
3854 * config/arm/arm.c: Fix spelling typo.
3856 2006-10-18 Tom Tromey <tromey@redhat.com>
3858 * doc/install.texi (Prerequisites): Mention automake 1.9.6.
3860 2006-10-18 Jan Hubicka <jh@suse.cz>
3863 * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
3866 2006-10-18 Marcin Dalecki <martin@dalecki.de>
3868 * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
3869 TSI_SAME_STMT, since that's the desired entity.
3871 2006-10-17 Wolfgang Gellerich <gellerich@de.ibm.com>
3873 * config/s390/contraints.md: New file.
3874 * config/s390/s390-protos.h (s390_mem_constraint,
3875 s390_O_constraint_str, s390_N_constraint_str,
3876 s390_float_const_zero_p): Function prototypes added.
3877 * config/s390/s390.c (s390_extra_constraint_str,
3878 s390_const_double_ok_for_constraint_p,
3879 s390_const_ok_for_constraint_p): Functions removed.
3880 (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
3881 s390_float_const_zero_p): New functions.
3882 * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
3883 CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
3884 EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
3885 Macro definitions removed.
3886 (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
3887 s390_extra_constraint_str): Functions removed.
3889 2006-10-17 Andrew Pinsiki <pinskia@gmail.com>
3890 Richard Sandiford <richard@codesourcery.com>
3893 * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
3894 * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
3896 2006-10-16 Geoffrey Keating <geoffk@apple.com>
3898 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
3899 (DWARF2_FRAME_REG_OUT): Likewise.
3900 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
3901 (DWARF2_FRAME_REG_OUT): Likewise.
3903 2006-10-17 Paul Brook <paul@codesourcery.com>
3905 * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
3907 2006-10-16 Brooks Moses <bmoses@stanford.edu>
3909 * doc/contrib.texi, doc/install.texi, doc/standards.texi:
3910 Standardize on "GNU Fortran" as the official name of the Fortran
3913 2006-10-16 Mike Stump <mrs@apple.com>
3915 * doc/invoke.texi (Darwin Options): Document -mkernel.
3916 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
3918 (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support. Add
3919 SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
3920 (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
3921 (OS_MISSING_ALTIVEC): Add.
3922 * config/i386/i386.c (override_options): Add
3923 SUBSUBTARGET_OVERRIDE_OPTIONS callout.
3924 * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
3925 -mkernel, -static or -mdynamic-no-pic is given.
3926 (C_COMMON_OVERRIDE_OPTIONS): Add.
3927 * config/darwin.opt (fapple-kext): Add.
3929 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
3930 -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
3932 (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
3933 (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
3934 (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
3935 (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
3936 (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
3937 (flag_mkernel): Add.
3938 (flag_apple_kext): Add.
3939 (TARGET_KEXTABI): Add.
3940 * config/darwin.c (darwin_handle_kext_attribute): Add.
3941 (DARWIN_VTABLE_P): Add.
3942 (darwin_binds_local_p): Add partial support for rebinding vtables
3944 (darwin_kextabi_p): Add.
3945 (darwin_override_options): Add.
3946 * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
3947 (darwin_kextabi_p): Add.
3948 (darwin_override_options): Add.
3949 * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
3950 __DYNAMIC__ and __STATIC__ here.
3952 2006-10-16 Brooks Moses <bmoses@stanford.edu>
3954 * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
3955 Added mention of "make pdf" target, and Texinfo requirements for
3958 2006-10-16 DJ Delorie <dj@redhat.com>
3960 * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
3961 into the GOT in case we need a subreg of the address.
3963 2006-10-16 Richard Guenther <rguenther@suse.de>
3966 * doc/extend.texi (X86 Built-in Functions): Fix typos in
3967 SSE builtin documentation. Document SSE2 builtins.
3969 2006-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3971 * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
3972 symbol in the output file for non-shared links when -nostdlib or
3973 -nodefaultlibs isn't specified.
3975 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
3976 posix thread support.
3978 2006-10-15 Jan Hubicka <jh@suse.cz>