1 2006-11-22 Steven Bosscher <steven@gcc.gnu.org>
3 * cse.c (enum taken): Remove PATH_AROUND.
4 (addr_affects_sp_p, invalidate_skipped_set,
5 invalidate_skipped_block): Remove.
6 (cse_end_of_basic_block): Remove skip_blocks and related code.
7 (cse_main): Don't test for flag_cse_skip_blocks.
8 Update cse_end_of_basic_block call.
9 (cse_basic_block): Likewise. Remove PATH_AROUND case. Remove
10 code to lengthen the path if a jump was simplified.
12 2006-11-22 Zdenek Dvorak <dvorakz@suse.cz>
14 PR rtl-optimization/29924
15 * loop-unroll.c (split_edge_and_insert): Handle the case insns is NULL.
16 (unroll_loop_runtime_iterations): Assert that the argument passed to
17 split_edge_and_insert is not NULL.
18 * loop-doloop.c (add_test): Ditto.
20 2006-11-22 Zdenek Dvorak <dvorakz@suse.cz>
22 * tree-loop-linear.c (linear_transform_loops): Use single_exit accessor
24 * tree-ssa-loop-niter.c (loop_only_exit_p): Ditto.
25 * cfgloopmanip.c (update_single_exits_after_duplication,
26 update_single_exit_for_duplicated_loop, loop_version): Ditto.
27 * tree-scalar-evolution.c (get_loop_exit_condition,
28 get_exit_conditions_rec, loop_closed_phi_def,
29 number_of_iterations_in_loop, scev_const_prop): Ditto.
30 * tree-ssa-loop-ivopts.c (single_dom_exit): Ditto.
31 * modulo-sched.c (generate_prolog_epilog, loop_canon_p, sms_schedule):
33 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
35 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
36 slpeel_update_phi_nodes_for_guard1, slpeel_update_phi_nodes_for_guard2,
37 slpeel_make_loop_iterate_ntimes,
38 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_can_duplicate_loop_p,
39 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
41 * tree-if-conv.c (if_convertible_loop_p): Ditto.
42 * tree-vect-analyze.c (vect_analyze_operations, vect_stmt_relevant_p,
43 vect_analyze_loop_form): Ditto.
44 * lambda-code.c (lambda_loopnest_to_gcc_loopnest, exit_phi_for_loop_p,
45 can_convert_to_perfect_nest, perfect_nestify): Ditto.
46 * tree-vect-transform.c (vect_create_epilog_for_reduction,
47 vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
48 vect_transform_loop): Ditto.
49 * cfgloop.c (mark_single_exit_loops, verify_loop_structure): Ditto.
50 (single_exit, set_single_exit): New functions.
51 * cfgloop.h (struct loop): Rename single_exit field to single_exit_.
52 (single_exit, set_single_exit): Declare.
53 * doc/loop.texi: Undocument single_exit field. Document single_exit
56 2006-11-22 Zdenek Dvorak <dvorakz@suse.cz>
58 PR tree-optimization/29902
59 * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
60 any involved ssa name appears in abnormal phi node.
62 2006-11-21 Bob Wilson <bob.wilson@acm.org>
64 * config/xtensa/xtensa.c (xtensa_char_to_class): Delete.
65 (xtensa_const_ok_for_letter_p): Delete.
66 (xtensa_extra_constraint): Delete.
67 (override_options): Delete xtensa_char_to_class initialization.
68 * config/xtensa/xtensa.h (REG_CLASS_FROM_LETTER): Delete.
69 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
70 (EXTRA_CONSTRAINT): Delete.
71 * config/xtensa/xtensa.md: Include constraints.md.
72 (call_internal): Combine alternatives.
73 (call_value_internal): Likewise, and remove invalid constraints.
74 * config/xtensa/constraints.md: New file.
75 * config/xtensa/xtensa-protos.h (xtensa_const_ok_for_letter_p): Delete.
76 (xtensa_extra_constraint): Delete.
77 * doc/md.texi (Machine Constraints): Refer to constraints.md for
80 2006-11-21 Janis Johnson <janis187@us.ibm.com>
82 * config/dfp-bits.c (DFP_TO_INT): Remove code to saturate result
83 of conversion that doesn't fit.
85 * config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete.
86 * config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op,
87 DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE.
89 * config/dfp-bit.c (dfp_binary_func): Fix typedef.
91 2006-11-21 Douglas Gregor <doug.gregor@gmail.com>
93 * c-common.h (enum rid): Add RID_STATIC_ASSERT.
95 2006-11-21 Richard Guenther <rguenther@suse.de>
97 * tree-vectorizer.h (NUM_PATTERNS): Increase.
98 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
99 vect_recog_pow_pattern.
100 (vect_recog_pow_pattern): New function.
102 2006-11-21 Bernd Schmidt <bernd.schmidt@analog.com>
104 * config/bfin/bfin.opt (mstack-check-l1): New.
105 * doc/invoke.texi (Blackfin Options): Document it.
106 * config/bfin/bfin.c (bfin_expand_prologue): Generate code to use
107 stack bounds in L1 memory if the new option is enabled.
108 (override_options): Don't allow combinations of -fstack-limit and
110 (add_to_reg): Renamed from add_to_sp. All callers changed. Lose some
113 * config/bfin/bfin.c (hard_regno_mode_ok): Only allow first 31
115 (bfin_register_move_cost): Bump costs if trying to move plain
116 integer values through accumulators.
118 2006-11-21 Ben Elliston <bje@au.ibm.com>
120 * config/spu/spu.c (spu_expand_vector_init): Initialise x.
122 2006-11-20 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
123 Russell Olsen <Russell_Olsen@playstation.sony.com>
124 Dmitri Makarov <Dmitri_Makarov@playstation.sony.com>
125 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
126 Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
127 Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
128 Andrew Pinski <Andrew_Pinski@playstation.sony.com>
130 * config.gcc: Add target for SPU.
131 * config/spu/constraints.md: New file.
132 * config/spu/crt0.c: New file.
133 * config/spu/crtend.c: New file.
134 * config/spu/crti.asm: New file.
135 * config/spu/crtn.asm: New file.
136 * config/spu/float_unsdidf.c: New file.
137 * config/spu/float_unssidf.c: New file.
138 * config/spu/predicates.md: New file.
139 * config/spu/spu-builtins.def: New file.
140 * config/spu/spu-builtins.h: New file.
141 * config/spu/spu-builtins.md: New file.
142 * config/spu/spu-c.c: New file.
143 * config/spu/spu-elf.h: New file.
144 * config/spu/spu-modes.def: New file.
145 * config/spu/spu-protos.h: New file.
146 * config/spu/spu.c: New file.
147 * config/spu/spu.h: New file.
148 * config/spu/spu.md: New file.
149 * config/spu/spu.opt: New file.
150 * config/spu/spu_internals.h: New file.
151 * config/spu/spu_intrinsics.h: New file.
152 * config/spu/spu_mfcio.h: New file.
153 * config/spu/t-spu-elf: New file.
154 * config/spu/vec_types.h: New file.
155 * config/spu/vmx2spu.h: New file.
156 * doc/contrib.texi: Document SPU contributor.
157 * doc/extend.texi: Document SPU extensions.
158 * doc/invoke.texi: Document SPU options.
159 * doc/md.texi: Document SPU constraints.
161 2006-11-21 Zdenek Dvorak <dvorakz@suse.cz>
163 * cfgloopmanip.c (add_loop, duplicate_loop): Do not set level
165 * cfgloop.c (flow_loop_level_compute, flow_loops_level_compute):
167 (flow_loop_dump): Do not dump loop level.
168 (flow_loops_find): Do not call flow_loops_level_compute.
169 * cfgloop.h (struct loop): Remove level field.
171 2006-11-21 Zdenek Dvorak <dvorakz@suse.cz>
173 * tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref,
174 hoist_memory_references, loop_suitable_for_sm, determine_lsm_loop):
175 Use vector of edges instead of array.
176 * tree-ssa-loop-niter.c (find_loop_niter, find_loop_niter_by_eval,
177 estimate_numbers_of_iterations_loop): Ditto.
178 * predict.c (predict_loops): Ditto.
179 * loop-unroll.c (analyze_insns_in_loop): Ditto.
180 * tree-ssa-threadupdate.c: Remove declaration of heap allocation for
182 * basic-block.h: Declare heap allocation for edge vectors.
183 * tree-outof-ssa.c: Ditto.
184 * cfgloop.c (get_loop_exit_edges): Return vector of edges.
185 * cfgloop.h (get_loop_exit_edges): Declaration changed.
187 2006-11-20 Zack Weinberg <zackw@panix.com>
189 * gengtype.c (process_gc_options): Remove unnecessary forward decl.
190 Add another out parameter, "skip".
191 (set_gc_used_type): Adjust calls to process_gc_options. If a field
192 is tagged "skip", do not mark its type used.
194 2006-11-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
197 * tree-sra.c (single_scalar_field_in_record_p): New function.
198 (decide_block_copy): Use it.
200 2006-11-20 David Daney <ddaney@avtrex.com>
202 * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
203 PC to point to following instruction.
205 2006-11-20 Anatoly Sokolov <aesok@post.ru>
209 * config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
211 * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
213 2006-11-20 J"orn Rennecke <joern.rennecke@st.com>
215 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
216 Add sh/superh.h to tm_file.
218 2006-11-20 Carlos O'Donell <carlos@codesourcery.com>
219 Mark Mitchell <mark@codesourcery.com>
221 * cppdefault.c: Define cpp_PREFIX, cpp_PREFIX_len, and
223 (cpp_relocated): New function.
224 * cppdefault.h: Declare cpp_PREFIX, cpp_PREFIX_len, gcc_exec_prefix
226 * Makefile.in (PREPROCESSOR_DEFINES): Add -DPREFIX option.
227 * c-incpath.c (add_standard_paths): Call cpp_relocated. If relocated,
228 replace configured prefix with gcc_exec_prefix.
230 2006-11-20 Bernd Schmidt <bernd.schmidt@analog.com>
232 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Call
233 bfin_legitimate_constant_p.
234 * config/bfin/bfin.md (movsi expander): Check return value of
236 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Declare.
237 (expand_move): Adjust prototype.
238 * config/bfin/bfin.c (expand_move): Now returns bool. Handle
239 invalid constants specially.
240 (bfin_cannot_force_const_mem, bfin_legitimate_constant_p): New
242 (TARGET_CANNOT_FORCE_CONST_MEM): New macro.
244 * config/bfin/bfin.md (call_symbol, call_value_symbol, sibcall_symbol,
245 sibcall_value_symbol): Allow these patterns if
246 TARGET_LEAF_ID_SHARED_LIBRARY.
247 * config/bfin/bfin.c (bfin_expand_call): Allow them here as well.
248 (override_options): Turn on id shared library flags if -msep-data,
249 but disallow the combination of these options on the command line.
250 * config/bfin/bfin.h (TARGET_LEAF_ID_SHARED_LIBRARY, MASK_SEP_DATA
251 MASK_LEAF_ID_SHARED_LIBRARY, TARGET_SEP_DATA): New macros.
252 (DRIVER_SELF_SPECS): -mleaf-id-shared-library implies
254 (TARGET_SWITCHES): Add -mleaf-id-shared-library and -msep-data.
255 * doc/invoke.texi (Blackfin Options): Document new switches.
257 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some
258 edge cases with local functions and TARGET_ID_SHARED_LIBRARY.
260 * tree-ssa-loop-ivopts.c (get_address_cost): Do not artificially
261 inflate costs for addresses with an out-of-bounds address.
263 2006-11-19 Andrew Pinski <pinskia@gmail.com>
266 * fwprop.c (loops): Remove.
267 (forward_propagate_into): Use current_loops instead of
269 (fwprop_init): Call loop_optimizer_init instead of
271 (fwprop_done): Call loop_optimizer_finalize instead of
273 (fwprop): Use current_loops instead of loops.
275 2006-11-19 Gabriel Dos Reis <gdr@integrable-solutions.net>
278 * c-opts.c (c_common_handle_option): Enable -Wwrite-strings if -Wall.
280 2006-11-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
283 * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
284 larger than BITS_PER_WORD.
286 2006-11-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
290 * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
291 to MAX_FIXED_MODE_SIZE.
293 2006-11-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
295 * builtins.c (integer_valued_real_p): Handle fmin/fmax.
296 (fold_builtin_fmin_fmax): New.
297 (fold_builtin_1): Use it.
299 * fold-const.c (fold_strip_sign_ops): Handle copysign.
301 2006-11-18 Richard Guenther <rguenther@suse.de>
303 * config/i386/i386.c (ix86_builtins): New array for ix86
304 builtin function decls.
305 (def_builtin): New function.
306 (def_builtin_const): Likewise.
307 (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const.
309 2006-11-18 Vladimir Makarov <vmakarov@redhat.com>
311 * doc/invoke.texi (core2): Add item.
313 * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New
315 (TARGET_CPU_CPP_BUILTINS): Add code for core2.
316 (TARGET_CPU_DEFAULT_generic): Change value.
317 (TARGET_CPU_DEFAULT_NAMES): Add core2.
318 (processor_type): Add new constant PROCESSOR_CORE2.
320 * config/i386/i386.md (cpu): Add core2.
322 * config/i386/i386.c (core2_cost): New initialized variable.
323 (m_CORE2): New macro.
324 (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
325 x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop,
326 x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
327 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
328 x86_partial_reg_dependency, x86_memory_mismatch_stall,
329 x86_accumulate_outgoing_args, x86_prologue_using_move,
330 x86_epilogue_using_move, x86_arch_always_fancy_math_387,
331 x86_sse_partial_reg_dependency, x86_rep_movl_optimal,
332 x86_use_incdec, x86_four_jump_limit, x86_schedule,
333 x86_pad_returns): Add m_CORE2.
334 (override_options): Add entries for Core2.
335 (ix86_issue_rate): Add case for Core2.
337 2006-11-18 Aldy Hernandez <aldyh@redhat.com>
339 * doc/invoke.texi: Fix mno-isel typo.
341 2006-11-18 Joseph Myers <joseph@codesourcery.com>
343 * config/rs6000/spe.md (movv4hi_internal): Add alternative for
344 easy vector constant loads.
346 2006-11-18 Joseph Myers <joseph@codesourcery.com>
348 * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
349 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
350 __NO_LWSYNC__ if TARGET_NO_LWSYNC.
351 * config/rs6000/sync.md (lwsync): Emit plain sync if
354 2006-11-17 DJ Delorie <dj@redhat.com>
356 * reload1.c (reloads_unique_chain): New.
357 (reloads_conflict): Call it.
359 2006-11-17 Bob Wilson <bob.wilson@acm.org>
361 * config/xtensa/predicates.md (addsubx_operand): New.
362 * config/xtensa/xtensa.c (xtensa_emit_branch): New.
363 (xtensa_emit_bit_branch): New.
364 (xtensa_emit_movcc): New.
365 * config/xtensa/xtensa.md (any_minmax): New code macro.
366 (minmax): New code attribute.
367 (any_cond, any_scc, any_scc_sf): New code macros.
368 (*addx2, *addx4, *addx8): Delete.
370 (*subx2, *subx4, *subx8): Delete.
372 (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro.
373 (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond.
374 (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch.
375 (*bittrue, *bitfalse): Use xtensa_emit_bit_branch.
376 (seq, sne, sgt, sge, slt, sle): Use any_scc macro.
377 (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc.
378 (movsfcc_internal0, movsfcc_internal1): Likewise.
379 (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro.
380 * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New.
381 (xtensa_emit_bit_branch): New.
382 (xtensa_emit_movcc): New.
383 (function_arg_boundary): Add missing prototype.
385 2006-11-17 Bob Wilson <bob.wilson@acm.org>
387 * config/xtensa/xtensa.md (tstsi): Delete
389 2006-11-17 Bob Wilson <bob.wilson@acm.org>
391 * config/xtensa/xtensa.md (entry): Do not emit .frame directive.
393 2006-11-17 Bob Wilson <bob.wilson@acm.org>
395 * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
397 2006-11-17 Bob Wilson <bob.wilson@acm.org>
399 * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit.
401 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
403 * tree-vrp.c (execute_vrp): Do not update current_loops.
404 * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with.
405 * doc/loop.texi: Remove documentation for cancelled functions.
406 * tree-ssa-loop-im.c (loop_commit_inserts): Removed.
407 (move_computations, determine_lsm): Use bsi_commit_edge_inserts
409 * cfgloopmanip.c (remove_bbs): Do not update loops explicitly.
410 (remove_path): Ensure that in delete_basic_blocks, the loops
412 (add_loop): Work on valid loop structures.
413 (loopify): Modify call of add_loop.
414 (mfb_update_loops): Removed.
415 (create_preheader): Do not update loops explicitly.
416 (force_single_succ_latches, loop_version): Do not use
417 loop_split_edge_with.
418 (loop_split_edge_with): Removed.
419 * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions):
420 Do not use bsi_insert_on_edge_immediate_loop.
421 (split_loop_exit_edge, tree_unroll_loop): Do not use
422 loop_split_edge_with.
423 (bsi_insert_on_edge_immediate_loop): Removed.
424 * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops. Do not
425 use loop_split_edge_with.
426 * cfghooks.c: Include cfgloop.h.
427 (verify_flow_info): Verify that loop_father is filled iff current_loops
429 (redirect_edge_and_branch_force, split_block, delete_basic_block,
430 split_edge, merge_blocks, make_forwarder_block, duplicate_block):
432 * cfgloopanal.c (mark_irreducible_loops): Work if the function contains
434 * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use
435 loop_split_edge_with.
436 (sms_schedule): Use current_loops.
437 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops.
438 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set
440 (rtl_loop_init, rtl_loop_done): Do not set current_loops.
441 * tree-ssa-sink.c (execute_sink_code): Use current_loops.
442 * ifcvt.c (if_convert): Ditto.
443 * predict.c (predict_loops): Do not clear current_loops.
444 (tree_estimate_probability): Use current_loops.
445 (propagate_freq): Receive head of the region to propagate instead of
447 (estimate_loops_at_level): Do not use shared to_visit bitmap.
448 (estimate_loops): New function. Handle case current_loops == NULL.
449 (estimate_bb_frequencies): Do not allocate tovisit. Use
451 * tree-ssa-loop.c (current_loops): Removed.
452 (tree_loop_optimizer_init): Do not return loops.
453 (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops.
454 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1,
455 slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge):
456 Do not update loops explicitly.
457 * function.h (struct function): Add x_current_loops field.
458 (current_loops): New macro.
459 * tree-if-conv.c (combine_blocks): Do not update loops explicitly.
460 * loop-unroll.c (split_edge_and_insert): New function.
461 (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not
462 use loop_split_edge_with.
463 * loop-doloop.c (add_test, doloop_modify): Ditto.
464 * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops.
465 * cfglayout.c (copy_bbs): Do not update loops explicitly.
466 * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with.
467 * tree-vect-transform.c (vect_transform_loop): Do not update loops
469 * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order.
470 (flow_loops_free): Do not free dfs_order and rc_order.
471 (flow_loops_find): Do not set dfs_order and rc_order in loops
472 structure. Do not call loops and flow info verification.
473 (add_bb_to_loop, remove_bb_from_loops): Check whether the block
474 already belongs to some loop.
475 * cfgloop.h (struct loops): Remove struct cfg.
476 (current_loops, loop_split_edge_with): Declaration removed.
477 (loop_optimizer_init, loop_optimizer_finalize): Declaration changed.
478 * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop):
480 * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency.
481 * basic-block.h (split_edge_and_insert): Declare.
482 * tree-cfg.c (remove_bb): Do not update loops explicitly.
484 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
486 PR tree-optimization/29801
487 * tree-ssa-ccp.c (get_symbol_constant_value): New function.
488 (get_default_value): Use get_symbol_constant_value.
489 (set_lattice_value): ICE when the value of the constant is
491 (visit_assignment): Ignore VDEFs of read-only variables.
493 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
495 * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix
497 (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
498 vect_gen_niters_for_prolog_loop): Fold the emited expressions.
500 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
502 * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to
503 select subvars of var.
505 2006-11-17 Jakub Jelinek <jakub@redhat.com>
508 * tree-ssa-forwprop.c (simplify_switch_expr): Don't
509 optimize if DEF doesn't have integral type.
511 2006-11-16 Mike Stump <mrs@apple.com>
513 * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on
514 pre-darwin9 system, unless the user asks for it directly.
515 (PREFERRED_DEBUGGING_TYPE): Likewise.
516 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise.
517 * config.gcc: Add suppport for darwin9.h.
518 * config/darwin9.h: Add.
519 * doc/install.texi (Specific): Clarify darwin documentation.
521 2006-11-16 Richard Earnshaw <rearnsha@arm.com>
523 * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when
526 2006-11-16 Mike Stump <mrs@apple.com>
528 * Makefile.in (targhooks.o): Add $(OPTABS_H).
530 2006-11-16 Dirk Mueller <dmueller@suse.de>
532 * tree-vrp.c (get_value_range): Use XCNEW instead
534 (insert_range_assertions): Use XCNEWVEC instead
535 of XNEWVEC and memset.
536 (vrp_initialize): Same.
537 (vrp_finalize): Same.
538 * tree-ssa-ccp.c (ccp_initialize): Same.
539 * predict.c (tree_bb_level_predictions): Same.
540 * calls.c (expand_call): Same.
541 * tree-ssa-copy.c (init_copy_prop): Same.
542 (fini_copy_prop): Same.
543 * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead
544 of GGC_NEW and memset.
546 2006-11-16 Eric Botcazou <ebotcazou@adacore.com>
549 * gimplify.c (gimplify_expr): Only force a load for references to
550 non-BLKmode volatile values.
551 * doc/implement-c.texi (Qualifiers implementation): Document the
552 interpretation of what a volatile access is.
553 * doc/extend.texi (C++ Extensions): Rework same documentation.
555 2006-11-16 Joseph Myers <joseph@codesourcery.com>
557 * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
560 2006-11-16 Richard Earnshaw <rearnsha@arm.com>
562 * arm.md (abssi2): Allow Thumb as well. Use an SImode scratch for
564 (arm_neg_abssi2): Renamed from neg_abssi2.
565 (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters.
567 2006-11-16 Uros Bizjak <ubizjak@gmail.com>
569 * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
570 number of arguments passed to local functions in SSE registers is 3.
572 * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
573 number of arguments passed in SSE registers to 3.
575 2006-11-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
578 * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
580 (get_last_bb_insn): ... new global function.
581 (basic_block.h): Declare it.
582 * haifa-sched.c (create_recovery_block): Use it.
584 2006-11-15 H.J. Lu <hongjiu.lu@intel.com>
587 * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert.
589 2006-11-15 Paul Brook <paul@codesourcery.com>
591 * config/arm/unwind-arm.c (_Unwind_GetDataRelBase,
592 _Unwind_GetTextRelBase): Move from here ...
593 * config/arm/pr-support.c (_Unwind_GetDataRelBase,
594 _Unwind_GetTextRelBase): ... To here.
596 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
598 * tree-ssa-loop-ivopts.c (get_address_cost): Make sure memory
599 addresses we generate for testing are aligned.
601 2006-11-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
604 * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
605 to what is the const decl is a place holder for.
607 2006-11-15 Uros Bizjak <ubizjak@gmail.com>
609 * config/i386/i386.opt: New target option -mx87regparm.
611 * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno
612 and float_in_x87 variables. mmx_words, sse_words: Remove.
613 (X87_REGPARM_MAX): Define.
615 * config/i386/i386.c (override_options): Error out for
616 -mx87regparm but no 80387 support.
617 (ix86_attribute_table): Add x87regparm.
618 (ix86_handle_cconv_attribute): Update comments for x87regparm.
619 (ix86_comp_type_attributes): Check for mismatched x87regparm types.
620 (ix86_function_x87regparm): New function.
621 (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
623 (init_cumulative_args): Initialize x87_nregs and float_in_x87
625 (function_arg_advance): Process x87_nregs and x87_regno when
626 floating point argument is to be passed in 80387 register.
627 (function_arg): Pass XFmode arguments in 80387 registers for local
628 functions. Pass SFmode and DFmode arguments to local functions
629 in 80387 registers when flag_unsafe_math_optimizations is set.
631 * reg-stack.c (convert_regs_entry): Disable NaN load for
632 stack registers that are used for argument passing.
634 * doc/extend.texi: Document x87regparm function attribute.
635 * doc/invoke.texi: Document -mx87regparm.
637 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
639 * tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype.
640 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New
641 arg MODE; all callers changed. Use it to determine validity per
642 machine mode instead of using Pmode for all memory references.
643 (get_address_cost): Likewise add and use new arg MEM_MODE.
645 2006-11-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
646 J"orn Rennecke <joern.rennecke@st.com>
648 * combine.c (likely_spilled_retval_1): Fix masking operation.
649 (likely_spilled_retval_p): Use proper pattern for call to
650 likely_spilled_retval_1.
652 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
654 * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting.
656 * config/bfin/bfin.c (legitimize_pic_address): Lose dead code
657 that tests for CONSTANT_POOL_ADDRESS_P.
659 2006-11-15 Jakub Jelinek <jakub@redhat.com>
661 PR tree-optimization/29581
662 * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
663 REPLACEMENTS, FIRSTBSI arguments. If initial condition or
664 type is different between Y and USE, create a temporary
665 variable, initialize it at the beginning of the body bb
666 and use it as replacement instead of Y.
668 2006-11-15 Paolo Bonzini <bonzini@gnu.org>
671 * gimplify.c (fold_indirect_ref_rhs): Use
672 STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
674 2006-11-14 Richard Earnshaw <rearnsha@arm.com>
676 * expmed.c (emit_store_flag_1): New function.
677 (emit_store_flag): Call it. If we can't find a suitable scc insn,
679 * expr.c (do_store_flag): If we can't find a scc insn, try cstore.
680 Use do_compare_rtx_and_jump.
681 * arm.h (BRANCH_COST): Increase to 2 on Thumb.
682 * arm.md (cstoresi4): New define_expand.
683 (cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise.
684 (cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns.
685 (cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns.
687 2006-11-14 Caroline Tice <ctice@apple.com>
689 * dwarf2out.c (debug_pubtypes_section): New static global variable.
690 (pubname_entry): Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for
692 (pubname_table): Redefine as a vector.
693 (pubtype_table): New static global variable, defined as a vector.
694 (pubname_table_allocated): Remove static global variable.
695 (pubname_table_in_use): Remove static global variable.
696 (PUBNAME_TABLE_INCREMENT): Remove constant.
697 (size_of_pubnames): Add parameter to deal with either pubnames or
698 pubtypes, and change code to deal with table being a vector.
699 (add_pubname): Change to deal with table being a vector.
700 (add_pubtype): New function.
701 (output_pubnames): Add parameter to deal with either pubnames or
702 pubtypes, and change code to deal with table being a vector.
703 (gen_array_type_die): Add call to add_pubtype.
704 (gen_enumeration_type_die): Add call to add_pubtype.
705 (gen_struct_or_union_type_die): Add call to add_pubtype.
706 (gen_subroutine_type_die): Add call to add_pubtype.
707 (gen_typedef_die): Add call to add_pubtype.
708 (dwarf2out_init): Add code to initialize pubname_table and
709 pubtype_table vectors; also initialize debug_pubtypes_section.
710 (prune_unused_types): Change to deal with pubnames being a vector.
711 (dwarf2out_finish): Change to deal with pubnames being a vector; add
712 pubnames table to call to output_pubnames; Add code to output pubtypes
713 table if DEBUG_PUBTYPES_SECTION is defined.
714 * config/darwin.c (darwin_file_start): Add DEBUG_PUBTYPES_SECTION to
716 * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable.
718 2006-11-14 Joseph Myers <joseph@codesourcery.com>
720 * config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust
721 iwmmxt_nregs if TARGET_IWMMXT_ABI.
722 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
723 movv2si_internal): Support moves between core registers.
725 2006-11-14 Eric Christopher <echristo@apple.com>
727 * configure: Regenerate with autoconf 2.59.
729 2006-11-14 Daniel Berlin <dberlin@dberlin.org>
731 Fix PR tree-optimization/27755
733 * tree-ssa-pre.c: Update comments.
734 (bb_bitmap_sets): Add pa_in and deferred member.
735 (BB_DEFERRED): New macro.
736 (maximal_set): New variable.
737 (pre_stats): Add pa_insert member.
738 (bitmap_set_and): Short circuit orig == dest.
739 (bitmap_set_subtract_values): New function.
740 (bitmap_set_contains_expr): Ditto.
741 (translate_vuses_through_block): Add phiblock argument.
742 (dependent_clean): New function.
743 (compute_antic_aux): Update for maximal_set changes.
744 (compute_partial_antic_aux): New function.
745 (compute_antic): Handle partial anticipation.
746 (do_partial_partial_insertion): New function.
747 (insert_aux): Handle partial anticipation.
748 (add_to_sets): Add to maximal set.
749 (compute_avail): Ditto.
750 (init_pre): Initialize maximal_set.
751 (execute_pre): Do partial anticipation if -O3+.
753 2006-11-14 Paolo Bonzini <bonzini@gnu.org>
755 PR rtl-optimization/29798
757 * fwprop.c (use_killed_between): Check that DEF_INSN dominates
758 TARGET_INSN before any other check.
759 (fwprop_init): Always calculate dominators.
760 (fwprop_done): Always free them.
762 2006-11-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
764 * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and
767 2006-11-13 DJ Delorie <dj@redhat.com>
769 * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
770 temporary for intermediates.
772 2006-11-13 Kaz Kojima <kkojima@gcc.gnu.org>
774 * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
775 (sh_optimize_target_register_callee_saved): #if 0 the code
776 using NOTE_INSN_LOOP_{BEG,END}.
778 2006-11-13 Roger Sayle <roger@eyesopen.com>
780 * fold-const.c (optimize_bit_field_compare): Recursively call
781 fold when simplifying non-constant comparisons between bit-fields.
783 2006-11-13 Jakub Jelinek <jakub@redhat.com>
785 * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
787 * configure: Rebuilt.
789 2006-11-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
791 * config/rs6000/cell.md: New file.
792 * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
794 (ppccell_cost): New cost matrix.
795 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
796 (rs6000_override_options): Set rs6000_always_hint to false
797 for cell. Also align functions/lables/loops to 8byte
798 for the Cell. Use PROCESSOR_CELL.
799 (rs6000_emit_epilogue): Rename using_mfcr_multiple to
801 (rs6000_variable_issue): If the insn is a nonpipelined instruction
802 on the Cell, return 0.
803 (rs6000_adjust_cost): Add Cell cost adjustments.
804 (is_microcoded_insn): Return true for Cell microcoded
806 (is_nonpipeline_insn): New function.
807 (rs6000_issue_rate): Add PROCESSOR_CELL.
808 (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
810 (rs6000_use_sched_lookahead_guard): New function.
811 (rs6000_sched_reorder): Reorder the ready list, if the second
812 to last ready insn is a nonepipeline insn on the Cell.
813 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
814 (ASM_CPU_SPEC): Add Cell.
815 * config/rs6000/rs6000.md (cpu): Add Cell.
816 (cell_micro): New Attr.
819 2006-11-13 Jakub Jelinek <jakub@redhat.com>
821 * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
823 * configure: Rebuilt.
825 2006-11-13 Richard Guenther <rguenther@suse.de>
827 * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
829 (ix86_expand_lfloorceil): Likewise.
830 (ix86_expand_rint): Likewise.
831 (ix86_expand_floorceildf_32): Likewise.
832 (ix86_expand_floorceil): Likewise.
833 (ix86_expand_rounddf_32): Likewise.
834 (ix86_expand_truncdf_32): Likewise.
835 (ix86_expand_round): Likewise.
837 2006-11-13 Carlos O'Donell <carlos@codesourcery.com>
838 Mark Mitchell <mark@codesourcery.com>
840 * gcc.c: Organize search path variables into $prefix relative,
841 and well-known native. Add comments.
842 (add_sysrooted_prefix): Add comment.
843 (process_command): If !gcc_exec_prefix add $prefix based paths.
844 If *cross_compile == '0', add native well-known paths.
845 Assert tooldir_base_prefix is always relative.
846 (main): If print_search_dirs, and if gcc_exec_prefix is set,
847 use this value for 'install:' path.
848 * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
850 2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
852 * config/i386/i386.c: Fix a typo in comment.
854 2006-11-13 Michael Matz <matz@suse.de>
856 * genemit.c (gen_expand): Allocate enough memory.
858 2006-11-13 Joseph Myers <joseph@codesourcery.com>
860 * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
861 __GXX_TYPEINFO_EQUALITY_INLINE but not
862 __GXX_MERGED_TYPEINFO_NAMES.
863 * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
864 __GXX_MERGED_TYPEINFO_NAMES.
865 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
866 __GXX_TYPEINFO_EQUALITY_INLINE.
868 2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
869 Zdenek Dvorak <dvorakz@suse.cz>
871 PR tree-optimization/29680
872 * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
875 2006-11-12 Jason Merrill <jason@redhat.com>
876 Andrew Pinski <pinskia@physics.uc.edu>
879 * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
881 * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
883 * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
884 * tree.c (build_vector): Handle non-_CST elements.
886 2006-11-12 Kaz Kojima <kkojima@gcc.gnu.org>
888 * genemit.c (gen_insn): Call gen_exp with a non-null used
889 when handling multiple insns.
890 (gen_expand): Likewise.
891 * reorg.c (emit_delay_sequence): Copy the delay slot insn.
892 * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
893 (movsi_const_16bit+1): Copy operands[1].
894 (call_pcrel): Copy the call_site pattern.
895 (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
897 2006-11-12 Roger Sayle <roger@eyesopen.com>
899 * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
900 condition for transformations. Use !HONOR_SIGN_DEPENDENT_ROUNDING
901 && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
902 (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
904 2006-11-12 Daniel Berlin <dberlin@dberlin.org>
906 Fix PR tree-optimization/29587
907 * tree-ssa-structalias.c (process_constraint): Don't
908 mark address taken due only to escaped vars constraint.
910 2006-11-12 Michael Matz <matz@suse.de>
911 Roger Sayle <roger@eyesopen.com>
913 PR rtl-optimization/29797
914 * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
915 BITS_BIG_ENDIAN targets.
917 2006-11-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
919 * builtins.c (fold_builtin_cosh): New.
920 (fold_builtin_1): Use it.
921 * fold-const.c (negate_mathfn_p): Add llround, lround, round,
922 trunc to the list of "odd" functions. Also add llrint, lrint,
923 rint and nearbyint when flag_rounding_math is false.
925 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
927 * tree-flow.h (name_mappings_registered_p): Declare.
928 * tree-into-ssa.c (name_mappings_registered_p): New function.
929 * tree-cfg.c (tree_can_merge_blocks_p): Check
930 name_mappings_registered_p instead of need_ssa_update_p.
932 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
934 * tree-ssa-loop.c (tree_vectorize): Return the result of
936 * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
938 * tree-vectorizer.h (vectorize_loops): Declaration removed.
939 * tree-flow.h (vectorize_loops): Declaration changed.
941 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
943 * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
945 (issue_prefetch_ref): Move assignment to write_p out of loop.
946 (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
947 SIMULTANEOUS_PREFETCHES into account.
948 (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
949 * lambda-code.c (lcm): Renamed to ...
950 (least_common_multiple): ... and exported.
951 * tree-flow.h (least_common_multiple): Declare.
953 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
955 * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
956 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Follow
957 ud-chains. Handle AND_EXPR.
958 (record_estimate): Record whether the estimate is realistic
959 and whether it is derived from a loop exit.
960 (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
961 infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
963 (compute_estimated_nb_iterations): Take only realistic bounds into
964 account. Set estimate_state. Use double_ints.
965 (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
966 and infer_loop_bounds_from_signedness. Do not consider basic blocks
967 that do not have to be always executed.
968 (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
969 to determine whether to call infer_loop_bounds_from_undefined
970 and compute_estimated_nb_iterations.
971 (n_of_executions_at_most): Use double_ints.
972 (free_numbers_of_iterations_estimates_loop): Set estimate_state.
973 (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
974 * double-int.c (double_int_to_tree): Improve comment.
975 (double_int_fits_to_tree_p): New function.
976 * double-int.h (double_int_fits_to_tree_p): Declare.
977 * tree-data-ref.c: Include langhooks.h.
978 (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
979 (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
980 (analyze_array): Do not pass estimate_only argument to
981 analyze_array_indexes.
982 (get_number_of_iters_for_loop): Build tree from the stored double_int
984 (get_references_in_stmt, find_data_references_in_stmt): New functions.
985 (find_data_references_in_loop): Use find_data_references_in_stmt.
986 * tree-data-ref.h (struct data_ref_loc_d): New.
987 (get_references_in_stmt): Declare.
988 (estimate_iters_using_array): Declaration removed.
989 * cfgloop.h (struct nb_iter_bound): Change type of bound to
990 double_int. Improve comments. Add is_exit and realistic
992 (struct loop): Changed type of estimated_nb_iterations to double_int.
993 Added estimate_state field.
994 (record_estimate): Declaration removed.
996 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
998 * params.c (set_param_value): Initialize the "set" field.
999 * params.h (struct param_info): Add "set" field.
1000 (PARAM_SET_P): New macro.
1001 (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
1002 L1_CACHE_LINE_SIZE): New macros.
1003 * toplev.c (DEFPARAM): Initialize the "set" field.
1004 * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
1005 SIMULTANEOUS_PREFETCHES): Removed.
1006 (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
1007 (tree_ssa_prefetch_arrays): Dump the values of the parameters.
1008 * config/sparc/sparc.c: Include params.h.
1009 (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
1010 L1_CACHE_LINE_SIZE parameters.
1011 * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
1013 * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
1015 * config/i386/i386.c: Include params.h.
1016 (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
1017 (override_options): Set SIMULTANEOUS_PREFETCHES and
1018 L1_CACHE_LINE_SIZE parameters.
1019 * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
1020 (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
1021 L1_CACHE_LINE_SIZE parameters.
1022 * config/ia64/ia64.c (ia64_optimization_options): Set
1023 SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
1024 * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
1026 * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
1027 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
1028 * doc/invoke.texi: Document new params.
1030 2006-11-12 Roger Sayle <roger@eyesopen.com>
1032 PR tree-optimization/13827
1033 * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
1036 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1038 * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
1039 update_single_exit_for_duplicated_loops): New functions.
1040 (duplicate_loop_to_header_edge): Use
1041 update_single_exit_for_duplicated_loops.
1042 * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
1043 functions only with ENABLE_CHECKING.
1045 2006-11-12 Andreas Schwab <schwab@suse.de>
1047 * except.c (sjlj_emit_function_enter): Remove unused variable.
1049 2006-11-11 Roger Sayle <roger@eyesopen.com>
1051 * fold-const.c (int_binop_types_match_p): New function.
1052 (size_binop): Relax constraint that both arguments must both have
1053 exactly the same sizetype type. Instead use int_binop_types_match_p.
1054 (size_diffop): Likewise.
1056 (make_range): Use build_int_cst instead of fold_convert.
1057 (fold_cond_expr_with_comparison): Use build_int_cst to construct
1058 integer constants of the correct type.
1059 (fold_div_compare): Likewise.
1060 (fold_single_bit_test): Likewise.
1061 (fold_binary): Likewise.
1062 * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
1063 has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
1065 2006-11-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
1068 * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
1069 non null value if the struct memory access is in the 0th
1072 2006-11-12 Jie Zhang <jie.zhang@analog.com>
1075 2006-11-11 Jie Zhang <jie.zhang@analog.com>
1076 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
1079 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
1080 instead of builtin_define for bfin and BFIN.
1082 2006-11-11 Jie Zhang <jie.zhang@analog.com>
1084 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
1087 2006-11-11 Jan Hubicka <jh@suse.cz>
1089 * extended.texi (__builtin_expect): We no longer require second argument
1091 * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
1092 * builtins.c (expand_builtin_expect): Simplify.
1093 (expand_builtin_expect_jump): Kill.
1094 * final.c (final_scan_insn): Do not skip the removed notes.
1095 * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
1096 EXPECTED_VALUE): Remove.
1097 * dojump.c (do_jump): Do not care about __builtin_expect.
1098 * predict.c (expected_value_to_br_prob): Kill.
1099 * function.c (expand_function_end): Do not expand
1100 NOTE_INSN_REPEATED_LINE_NUMBER.
1101 * print-rtl.c (print_rtx): Do not pretty print the removed notes.
1102 * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
1103 * cfgexpand.c (add_reg_br_prob_note): Export.
1104 * cfgcleanup.c (rest_of_handle_jump2): Do not call
1105 expected_value_to_br_prob.
1106 * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
1107 * rtl.h (add_reg_br_prob_note): Declare.
1109 2006-11-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1111 * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
1113 2006-11-11 Jan Hubicka <jh@suse.cz>
1115 * predict.c (predict_loops): Kill RTL variant.
1117 2006-11-11 Jan Hubicka <jh@suse.cz>
1119 * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
1120 * modulo-sched.c (find_line_note): Remove.
1121 (loop_canon_p): Do not worry about line number notes.
1122 (sms_schedule): Likewise.
1123 * cse.c (cse_main): Likewise.
1124 * regmove.c (fixup_match_1): Likewise
1125 * function.c (emit_return_info_block): Likewise.
1126 (expand_function_end): Likewise.
1127 (thread_prologue_an_epilogue_insns): Likewise.
1128 * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
1130 * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
1131 emit_note_copy_after): Kill.
1132 (emit_note_copy): Do not worry about line numbers.
1133 * jump.c (purge_line_number_notes): Kill.
1134 (pass_purge_lineno_notes): Kill.
1135 * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
1137 * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
1138 * passes.c (init_optimization_passes): Don't purge_lineno_notes.
1139 * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
1140 * tree-pass.h (pass_purge_lineno_notes): Kill.
1141 * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
1142 rm_redundant_line_notes.
1143 * sched-rgb.c (schedule_region): Don't rm_line_notes,
1144 rm_redundant_line_notes.
1145 * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
1146 * haifa-sched.c: Update comment about handling notes.
1147 (unlink_line_notes): Kill.
1148 (rm_line_notes): Kill.
1149 (save_line_notes): Simplify.
1150 (rm_redundant_line_notes): Kill.
1152 2006-11-11 Richard Guenther <rguenther@suse.de>
1154 * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
1155 Remove unused tree codes.
1156 * tree-vrp.c (extract_range_from_unary_expr): Remove handling
1157 of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1158 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1159 * tree.c (stabilize_reference): Likewise.
1160 * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
1161 fold_unary): Likewise.
1162 * tree-gimple.c (is_gimple_cast): Likewise.
1163 * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
1164 * expr.c (expand_expr_real_1): Likewise.
1165 * tree-eh.c (tree_could_trap_p): Likewise.
1166 * gimplify.c (gimplify_expr): Likewise.
1167 * tree-inline.c (estimate_num_insns_1): Likewise.
1168 * tree-cfg.c (verify_expr): Likewise.
1170 2006-11-11 Zdenek Dvorak <dvorakz@suse.cz>
1172 * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
1173 * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
1174 (tree_ssa_prefetch_arrays): Do not dump for removed loops.
1176 2006-11-11 Richard Sandiford <richard@codesourcery.com>
1179 * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
1180 constraints accept neither registers or memories.
1182 2006-11-11 Jie Zhang <jie.zhang@analog.com>
1184 * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
1185 (NO_PROFILE_COUNTERS): Define as 1.
1187 2006-11-10 Roger Sayle <roger@eyesopen.com>
1189 * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
1190 Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
1192 2006-11-10 Peter Bergner <bergner@vnet.ibm.com>
1194 * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
1196 2006-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1198 * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
1199 (fold_builtin_hypot): Likewise.
1200 * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
1202 * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
1204 2006-11-10 Roger Sayle <roger@eyesopen.com>
1206 * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
1207 when attempting to build INTEGER_CSTs of non-integral types.
1208 * expmed.c (make_tree): Use the correct type, i.e. the inner
1209 type, when constructing the individual elements of a CONST_VECTOR.
1211 2006-11-10 Jan Hubicka <jh@suse.cz>
1213 * cse.c (cse_process_notes): Copy the propagated value.
1214 * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
1216 * gcse.c (try_replace_reg): Copy the replacement.
1217 * i386.c (emit_i387_cw_initialization): Copy stored_mode.
1218 (assign_386_stack_local): Always return copied memory expression
1219 * function.c (instantiate_virtual_regs_in_insn): Copy the operand
1222 2006-11-10 Jan Hubicka <jh@suse.cz>
1224 * final.c (final): Walk from first instruction.
1225 * cfglayout.c (insn_locators_initialize): Remove line number notes.
1227 2006-11-10 Uros Bizjak <ubizjak@gmail.com>
1230 * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
1232 (umulv8hi3_highpart): Ditto.
1233 (vec_widen_smult_hi_v8hi): New expander.
1234 (vec_widen_smult_lo_v8hi): Ditto.
1236 2006-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1239 * builtins.c (do_mpfr_arg3): New.
1240 (fold_builtin_1): Handle builtins fma, fmin and fmax.
1242 2006-11-09 Eric Christopher <echristo@apple.com>
1247 * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
1248 * config.gcc (powerpc64-*-darwin*): New target.
1249 * config.host: Ditto.
1250 * config/rs6000/darwin64.h: New file.
1251 * config/rs6000/x-darwin64: Ditto.
1252 * config/rs6000/host-ppc64-darwin.c: Ditto.
1254 2006-11-09 Steve Ellcey <sje@cup.hp.com>
1256 * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode
1257 routines for integer division.
1259 2006-11-09 Daniel Jacobowitz <dan@codesourcery.com>
1261 * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
1263 2006-11-09 Serge Belyshev <belyshev@depni.sinp.msu.ru>
1266 * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
1268 2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
1270 * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
1271 simplify_subreg with BLKmode outer mode.
1273 2006-11-08 Brooks Moses <brooks.moses@codesourcery.com>
1275 * doc/invoke.texi: Minor formatting fixes in option lists.
1277 2006-11-08 Zdenek Dvorak <dvorakz@suse.cz>
1279 PR tree-optimization/29738
1280 * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
1281 (ccp_lattice_t): Remove UNKNOWN_VAL.
1282 (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
1283 Do not handle UNKNOWN_VAL.
1284 (get_default_value): Set initial value of virtual operands to
1286 (get_value): Always use get_default_value on uninitialized
1288 (set_value_varying, surely_varying_stmt_p): New functions.
1289 (set_lattice_value): Do not pass argument to get_value.
1290 Do not handle UNKNOWN_VAL.
1291 (likely_value): Follow the semantics described in the comment.
1292 (ccp_initialize): Use surely_varying_stmt_p. Do not mark
1293 phi nodes DONT_SIMULATE_AGAIN.
1294 (ccp_fold): Do not pass argument to get_value.
1295 (fold_const_aggregate_ref, visit_assignment): Ditto. Do not
1298 2006-11-08 Andrew Pinski <Andrew_Pinski@playstation.sony.com>
1300 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
1301 HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
1303 2006-11-08 Roger Sayle <roger@eyesopen.com>
1305 * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
1306 test for inclusion rather than as a test for exclusion.
1307 * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
1308 the condition after calling fold_binary.
1309 * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
1310 (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
1311 * builtins.c (fold_builtin_isascii): Likewise.
1312 (fold_builtin_isdigit): Likewise.
1314 2006-11-08 Carlos O'Donell <carlos@codesourcery.com>
1316 * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
1317 * configure: Regenerate.
1319 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
1321 * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
1322 enum argument instead of bool.
1323 (vect_analyze_operations): Call vectorizable_type_promotion.
1324 * tree-vectorizer.h (type_promotion_vec_info_type): New enum
1325 stmt_vec_info_type value.
1326 (supportable_widening_operation, vectorizable_type_promotion): New
1327 function declarations.
1328 * tree-vect-transform.c (vect_gen_widened_results_half): New function.
1329 (vectorizable_type_promotion): New function.
1330 (vect_transform_stmt): Call vectorizable_type_promotion.
1331 * tree-vect-analyze.c (supportable_widening_operation): New function.
1332 * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
1334 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
1337 * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
1338 (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
1339 * tree-inline.c (estimate_num_insns_1): Add cases for above new
1341 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1342 * expr.c (expand_expr_real_1): Likewise.
1343 * optabs.c (optab_for_tree_code): Likewise.
1344 (init_optabs): Initialize new optabs.
1345 * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
1346 vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
1347 vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
1348 vec_unpacku_lo_optab): Initialize new optabs.
1349 * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
1350 (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
1351 OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
1353 (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
1354 (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
1355 (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
1356 (vec_unpacku_lo_optab): New optabs.
1357 * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
1358 (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
1359 (vec_widen_smult_hi, vec_widen_smult_lo): New.
1360 * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
1361 (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
1362 (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
1364 * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
1365 (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
1366 (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
1367 (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
1368 (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
1369 implement the unsigned unpacking patterns.
1370 (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
1371 (vec_unpacks_lo_v8hi): New signed unpacking patterns.
1372 (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
1373 (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
1374 (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
1375 (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
1376 (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
1377 (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
1378 multiplication patterns.
1380 * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
1381 * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
1382 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
1383 * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
1384 (rs6000_builtin_mul_widen_odd): New.
1385 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
1386 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
1387 * tree-vectorizer.h (enum vect_relevant): New enum type.
1388 (_stmt_vec_info): Field relevant chaned from bool to enum
1390 (STMT_VINFO_RELEVANT_P): Updated.
1391 (STMT_VINFO_RELEVANT): New.
1392 * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
1393 instead of STMT_VINFO_RELEVANT_P.
1394 * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
1395 Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
1396 and boolean variable with enum vect_relevant.
1397 (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
1398 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
1399 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
1401 2006-11-08 Richard Henderson <rth@redhat.com>
1403 * config/i386/sse.md (vec_widen_umult_hi_v8hi,
1404 vec_widen_umult_lo_v8hi): New.
1405 (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
1406 vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
1408 * config/i386/i386.c (ix86_expand_sse_unpack): New.
1409 * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
1410 * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
1411 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
1412 vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
1413 vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
1414 vec_unpacks_lo_v4si): New.
1416 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
1418 * tree-vect-transform.c (vectorizable_type_demotion): New function.
1419 (vect_transform_stmt): Add case for type_demotion_vec_info_type.
1420 (vect_analyze_operations): Call vectorizable_type_demotion.
1421 * tree-vectorizer.h (type_demotion_vec_info_type): New enum
1422 stmt_vec_info_type value.
1423 (vectorizable_type_demotion): New function declaration.
1424 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
1427 * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
1428 * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
1430 * tree-iniline.c (estimate_num_insns_1): Likewise.
1431 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1432 * optabs.c (optab_for_tree_code): Likewise.
1434 * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
1435 compared against the predicate of the result is not 'mode' (the input
1436 to the function) but a mode with half the size of 'mode'.
1437 (init_optab): Initialize new optabs.
1438 * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
1440 (vec_pack_mod_optab, vec_pack_ssat_optab, vec_pack_usat_optab): New
1442 * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
1443 (vec_pack_usat_optab): Initialize new optabs.
1444 * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
1445 * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
1447 2006-11-08 Richard Henderson <rth@redehat.com>
1449 * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
1450 (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
1451 (vec_interleave_highv8hi, vec_interleave_lowv8hi):
1452 (vec_interleave_highv4si, vec_interleave_lowv4si):
1453 (vec_interleave_highv2di, vec_interleave_lowv2di): New.
1455 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
1457 * tree-vect-transform.c (vectorizable_reduction): Support multiple
1459 (vect_transform_stmt): Removed redundant code.
1461 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
1463 * tree-vect-transform.c (vectorizable_operation): Support multiple
1466 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
1468 * tree-vect-transform.c (vect_align_data_ref): Removed.
1469 (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
1470 Updated function documentation. Return the increment stmt in ptr_incr.
1471 (bump_vector_ptr): New function.
1472 (vect_get_vec_def_for_stmt_copy): New function.
1473 (vect_finish_stmt_generation): Create a stmt_info to newly created
1475 (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
1477 (vectorizable_reduction, vectorizable_assignment): Not supported yet if
1478 VF is greater than the number of elements that can fit in one vector
1480 (vectorizable_operation, vectorizable_condition): Likewise.
1481 (vectorizable_store, vectorizable_load): Support the case that the VF
1482 is greater than the number of elements that can fit in one vector word.
1483 (vect_transform_loop): Don't fail in case of multiple data-types.
1484 * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
1485 in case of multiple data-types; the smallest type determines the VF.
1486 (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
1487 if they are of different sizes.
1488 (vect_update_misalignment_for_peel): Compare misalignments in terms of
1489 number of elements rather than number of bytes.
1490 (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
1491 (vect_can_advance_ivs_p): Fix a dump printout
1493 2006-11-07 Eric Christopher <echristo@apple.com>
1495 * libgcc2.c (__bswapdi2): Rename from bswapDI2.
1496 (__bswapsi2): Ditto.
1497 * libgcc2.h: Remove transformation of bswap routines.
1498 * config/i386/i386.md (bswapsi2): New.
1501 2006-11-07 Jakub Jelinek <jakub@redhat.com>
1503 * c-common.c (c_common_attributes): Add gnu_inline attribyte.
1504 (handle_gnu_inline_attribute): New function.
1505 * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
1506 (merge_decls, start_decl, start_function): Likewise.
1507 * doc/extend.texi: Document gnu_inline attribute.
1509 2006-11-07 Steve Ellcey <sje@cup.hp.com>
1512 * config/ia64/t-hpux (LIB1ASMFUNCS): Filter out _fixtfdi,
1513 _fixunstfdi, and _floatditf
1515 2006-11-06 Anatoly Sokolov <aesok@post.ru>
1517 * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
1519 * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
1520 (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
1521 lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
1522 which start in an odd register.
1524 2006-11-07 Richard Sandiford <richard@codesourcery.com>
1526 * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
1528 2006-11-07 Josh Conner <jconner@apple.com>
1530 * doc/invoke.texi (fstrict-aliasing): Move implementation
1532 * doc/tree-ssa.texi (Alias analysis): ...here.
1534 2006-11-07 Richard Guenther <rguenther@suse.de>
1536 PR tree-optimization/29610
1537 * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
1538 of tree_purge_dead_eh_edges as it may free dominators.
1540 * g++.dg/other/pr29610.C: New testcase.
1542 2006-11-07 David Ung <davidu@mips.com>
1544 * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
1545 costs when optimizing for size.
1546 (override_options): Use mips_rtx_cost_optimize_size table for cost
1549 2006-11-07 Jie Zhang <jie.zhang@analog.com>
1551 * gcc.c (process_command): Treat -b as normal switch if its argument
1554 2006-11-07 David Ung <davidu@mips.com>
1556 * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
1559 2006-11-06 Eric Christopher <echristo@apple.com>
1561 * config.gcc: Add x86_64-darwin host support.
1562 * config.host: Ditto.
1563 * config/i386/darwin64.h: New file.
1564 * config/i386/t-darwin64: Ditto.
1566 2006-11-06 Janis Johnson <janis187@us.ibm.com>
1568 * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
1569 and output-exists-not.
1571 2006-11-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
1574 * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
1575 checking for overflow.
1577 2006-11-06 Jan van Dijk <jan@etpmod.phys.tue.nl>
1579 * configure.ac: Fixed typo in case statement: :: changed to ;;
1581 2006-11-06 Bob Wilson <bob.wilson@acm.org>
1583 * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
1584 count_leading_zeros, and count_trailing_zeros.
1585 * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
1586 (TARGET_FOLD_BUILTIN): Define.
1587 (TARGET_EXPAND_BUILTIN): Define.
1588 (xtensa_init_builtins): New.
1589 (xtensa_fold_builtin): New.
1590 (xtensa_expand_builtin): New.
1591 (xtensa_rtx_costs): Add CTZ and CLZ. Adjust costs for MULT.
1592 * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
1593 (CLZ_DEFINED_VALUE_AT_ZERO): Define.
1594 (CTZ_DEFINED_VALUE_AT_ZERO): Define.
1595 * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
1596 (any_extend): New code macro.
1597 (u, su): New code attributes.
1598 (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
1599 (nsau): Remove; replaced by clzsi2.
1600 (ffssi2): Use clzsi2.
1601 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
1602 _clzsi2, _ctzsi2, and _ffssi2. Rename _nsau to _clz.
1603 * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
1604 (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
1605 (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
1607 2006-11-06 Vladimir Prus <vladimir@codesourcery.com>
1609 * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
1611 * config/arm/t-strongarm-elf: Likewise.
1612 * config/arm/t-pe: Likewise.
1613 * config/arm/t-arm-elf: Likewise.
1614 * config/arm/t-xscale-elf: Likewise.
1615 * config/arm/t-arm-coff: Likewise.
1616 * config/arm/t-xscale-coff: Likewise.
1617 * config/arm/t-wince-pe: Likewise.
1619 2006-11-05 Kaz Kojima <kkojima@gcc.gnu.org>
1621 * config/sh/lib1funcs-4-300.asm: Guard entire file with
1624 2006-11-05 Jakub Jelinek <jakub@redhat.com>
1627 * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
1630 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
1633 * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
1634 as a valid 80387 constant.
1635 (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
1636 * config/i386/i386.md (unnamed splitter): Split the load of
1637 constant -0.0 or -1.0 into the load of 0.0 or 1.0, followed
1640 2006-11-04 Richard Earnshaw <rearnsha@arm.com>
1642 * arm.c (thumb_legitimate_addres_p): Allow any constant offset
1643 from the soft-frame, argument and virtual registers.
1645 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
1647 * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
1648 patterns for standard 80387 constants.
1650 2006-11-03 Paolo Bonzini <bonzini@gnu.org>
1651 Steven Bosscher <steven@gcc.gnu.org>
1653 * fwprop.c: New file.
1654 * Makefile.in: Add fwprop.o.
1655 * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
1656 * passes.c (init_optimization_passes): Schedule forward propagation.
1657 * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
1659 * timevar.def (TV_FWPROP): New.
1660 * common.opt (-fforward-propagate): New.
1661 * opts.c (decode_options): Enable forward propagation at -O2.
1662 * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
1663 * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
1664 canon_for_address, table_size): Remove.
1665 (new_basic_block, insert, remove_from_table): Remove references to
1667 (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
1668 simplification loop more straightforward by not calling fold_rtx
1670 (equiv_constant): Move here a small part of fold_rtx_subreg,
1671 do not call fold_rtx. Call avoid_constant_pool_reference
1673 * recog.h (canonicalize_change_group): New.
1675 * doc/invoke.texi (Optimization Options): Document fwprop.
1676 * doc/passes.texi (RTL passes): Document fwprop.
1678 2006-11-03 Geoffrey Keating <geoffk@apple.com>
1680 * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
1681 (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
1682 (grokdeclarator): Likewise.
1684 2006-11-03 Steven Bosscher <steven@gcc.gnu.org>
1686 * tree-dump.c (dump_enable_all): Rename local variable
1687 ir_type to avoid name conflicts.
1688 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
1689 instead of using ir_type().
1690 * profile.c (tree_register_profile_hooks): Likewise.
1691 * value-prof.c (tree_register_value_prof_hooks): Likewise.
1692 * basic-block.h (struct edge_def): Likewise.
1693 * config/arm/arm.c (legitimize_pic_address): Likewise.
1694 * coretypes.h (ir_type): New enum of all intermediate languages
1696 * cfghooks.c (ir_type): Rename to...
1697 (current_ir_type): ...this. Distinguish between cfgrtl and
1698 cfglayout mode when the current IR is RTL. Return enum ir_type.
1699 * cfghooks.h (ir_type): Replace with current_ir_type prototype.
1701 2006-11-03 Paul Brook <paul@codesourcery.com>
1703 * config/arm/arm.c (arm_file_start): New function.
1704 (TARGET_ASM_FILE_START): Define.
1705 (arm_default_cpu): New variable.
1706 (arm_override_options): Set arm_default_cpu.
1708 2006-11-03 David Ung <davidu@mips.com>
1710 * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
1711 PROCESSOR_24KC and PROCESSOR_24KF.
1712 * config/mips/mips.c (mips_cpu_info_table): Add processor names
1713 and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
1714 (mips_rtx_cost_data): Add costs for the 24kc.
1715 * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
1716 * config/mips/24k.md: Remove references to 24k and replace with
1717 uses of 24kc/24kf in the appropriate reservations.
1718 * doc/invoke.texi (MIPS Options): Updated.
1720 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
1722 * config/sh/crt1.asm: Fix #ifdef indent.
1724 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
1725 Merged from STMicroelectronics sources:
1726 2006-10-06 Andrew Stubbs <andrew.stubbs@st.com>
1727 * config/sh/crt1.asm (vbr_600): Add missing #if.
1728 2006-08-03 J"orn Rennecke <joern.rennecke@st.com>
1729 * sh.opt (mfused-madd): New option.
1730 * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
1731 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
1732 * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
1733 Remove pointless handler at VBR+0.
1734 (vbr_200, vbr_300, vbr_500): Remove pointless handler.
1735 (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
1736 fr7. Make sure the timer handler is called with the correct FPU
1737 precision setting, according to the ABI.
1738 2006-06-14 J"orn Rennecke <joern.rennecke@st.com>
1739 * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
1740 * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
1741 (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
1742 2006-06-09 J"orn Rennecke <joern.rennecke@st.com>
1743 * sh.md (cmpgeusi_t): Change into define_insn_and_split. Accept
1744 zero as second operand.
1745 2006-04-28 J"orn Rennecke <joern.rennecke@st.com>
1746 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
1747 Fixed some bugs related to negative values, in particular -0
1748 and overflow at -0x80000000.
1749 * config/sh/divcost-analysis: Added sh4-300 figures.
1750 2006-04-27 J"orn Rennecke <joern.rennecke@st.com>
1751 * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
1752 2006-04-26 J"orn Rennecke <joern.rennecke@st.com>
1753 * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
1754 ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
1755 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
1757 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
1759 2006-04-24 J"orn Rennecke <joern.rennecke@st.com>
1760 SH4-300 scheduling description & fixes to SH4-[12]00 description:
1761 * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
1762 mac_mem, mem_mac, dfp_mul, fp_cmp.
1763 (insn_class, dfp_comp, any_fp_comp): Update.
1764 (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
1765 (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
1766 (muldf3_i): Likewise.
1767 (movsi_i): Split rI08 alternative into two separate alternatives.
1769 (movsi_ie, movsi_i_lowpart): Likewise.
1770 (movqi_i): Split ri alternative into two separate alternatives.
1772 * sh1.md (sh1_load_store, sh1_fp): Update.
1773 * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
1774 (mac_mem, sh4_fpscr_toggle): New insn_reservations.
1775 * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
1776 (sh4a_fp_double_arith): Likewise.
1777 * sh4-300.md: New file.
1778 * sh.c (sh_handle_option): Handle m4-300* options.
1779 (sh_adjust_cost): Fix latency of auto-increments.
1780 Handle SH4-300 differently than other SH4s. Check for new insn types.
1781 * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
1782 been set by an option.
1783 * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
1784 (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
1785 (mbranch-cost=): Likewise.
1786 * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
1788 * sh.md (mulsf3): Remove special expansion code.
1789 (mulsf3_ie): Now a define_insn_and_split.
1790 (macsf3): Allow for TARGET_SH4.
1792 * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
1793 * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
1794 (expand_cbranchdi4): Likewise.
1795 (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
1796 CONST_DOUBLE if the outer code is COMPARE.
1797 * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
1798 TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
1799 (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
1800 (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
1801 Remove redundant fp_{zero,one}_operand checks.
1802 * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
1803 * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
1804 (expand_cbranchdi4): Likewise.
1805 2006-04-20 J"orn Rennecke <joern.rennecke@st.com>
1806 * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
1808 2006-11-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
1810 * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
1813 2006-11-02 Brooks Moses <brooks.moses@codesourcery.com>
1815 * doc/invoke.texi: Fix mfp-trap-mode typo.
1817 2006-11-02 Carlos O'Donell <carlos@codesourcery.com>
1819 * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
1820 * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
1821 file_end_indicate_exec_stack.
1822 * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
1824 * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
1825 for a non-executable stack.
1826 * crti.asm: Likewise.
1827 * crtn.asm: Likewise.
1828 * libunwind.S: Likewise.
1830 2006-11-02 Ben Elliston <bje@au.ibm.com>
1832 * tree-ssa.c (warn_uninit): Use expand_location variables for
1833 locus and declaration locus.
1835 2006-11-02 Kaz Kojima <kkojima@gcc.gnu.org>
1838 * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
1839 (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
1840 cmp{eq,gt,gtu}{si,di}_media.
1841 (*cmpne0si_media): Remove.
1842 (*movsicc_umin): Adjust gen_cmp*_media call.
1843 (unordered): Change the mode of unordered and operands[1] to
1845 (seq): Adjust gen_cmp*_media calls. Make the mode of
1846 a temporary result of compare SImode if needed. If the mode
1847 of operands[0] is DImode, extend the temporary result to DImode.
1848 (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
1849 (sunorderd): Change the mode of match_operand and unorderd to
1851 (cmpeq{sf,df}_media): Remove.
1852 (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
1853 (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
1854 and compare operation to SImode.
1856 2006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
1858 * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
1860 (sparc64-sun-solaris2*): Likewise.
1862 2006-11-02 Paul Brook <paul@codesourcery.com>
1864 * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
1865 from priority argument. Use different section for non-default
1867 * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
1869 2006-11-02 Eric Botcazou <ebotcazou@adacore.com>
1872 * except.c (switch_to_exception_section): Do not cache the section
1873 if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
1874 and flag_function_sections is set.
1876 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1879 * builtins.c (do_mpfr_sincos): New.
1880 (fold_builtin_1): Use it to fold builtin sincos.
1882 2006-11-01 Roger Sayle <roger@eyesopen.com>
1884 * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
1885 it into -D_REENTRANT.
1887 2006-11-01 Roger Sayle <roger@eyesopen.com>
1889 * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
1890 whether the assembler supports taking the difference of symbols in
1891 different sections. On x86/Solaris, GAS does but Solaris as doesn't.
1892 * configure: Regenerate.
1893 * config.in: Regenerate.
1894 * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
1895 the assembler doesn't support taking the difference of symbols in
1896 different sections, i.e. we're using the native solaris assembler.
1898 2006-11-01 Pete Steinmetz <steinmtz@us.ibm.com>
1899 Peter Bergner <bergner@vnet.ibm.com>
1901 * doc/invoke.texi: Add cpu_type power6x
1902 (RS/6000 and PowerPC Options): Add -mmfpgpr.
1903 * config.gcc: Add cpu_type power6x.
1904 * configure.ac: Add test for mf{t,f}gpr instructions.
1905 (HAVE_AS_MFPGPR): New.
1906 * config.in: Regenerate.
1907 * configure: Regenerate.
1908 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
1909 * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
1910 shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
1911 and mftgpr attributes.
1912 (define_attr "cpu"): Add power6.
1913 Change instruction sequences to use new attributes.
1914 (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
1915 (fix_truncdfsi2_mfpgpr): New.
1916 (floatsidf_ppc64_mfpgpr): New.
1917 (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
1918 (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
1919 (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
1920 (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
1921 (fix_truncdfsi2): Use gpc_reg_operand constraint.
1922 * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
1923 7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
1924 Add descriptions for insert_dword, shift,trap,var_shift_rotate,
1925 cntlz,exts and var_delayed_compare.
1926 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1927 _ARCH_PWR6X, if features enabled.
1928 * config/rs6000/rs6000.opt (mmfpgpr): New.
1929 * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
1930 (cached_can_issue_more): New variable.
1931 (processor_costs): Add power6_cost.
1932 (rs6000_sched_init): New function.
1933 (is_dispatch_slot_restricted): Deleted.
1934 (set_to_load_agen): New function.
1935 (is_load_insn,is_store_insn): New functions.
1936 (adjacent_mem_locations): New function.
1937 (insn_must_be_first_in_group): New function.
1938 (insn_must_be_last_in_group): New function.
1939 (rs6000_sched_reorder): New function.
1940 (rs6000_sched_reorder2): New function.
1941 (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
1942 TARGET_SCHED_REORDER2): Define.
1943 (processor_target_table): Use PROCESSOR_POWER6 for power6.
1944 Add power6x. Add MASK_MFPGPR for power6x.
1945 (POWERPC_MASKS): Add MASK_MFPGPR.
1946 (rs6000_override_options): Set rs6000_always_hint to false
1947 for power6. Set rs6000_align_branch_targets. Replace
1948 rs6000_sched_groups check with rs6000_align_branch_targets.
1949 Use PROCESSOR_POWER6.
1950 (last_scheduled_insn): New variable.
1951 (load_store_pendulum): New variable.
1952 (rs6000_variable_issue): Set last_scheduled_insn and
1953 cached_can_issue_more.
1954 (rs6000_adjust_cost): Add power6 cost adjustments.
1955 (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
1956 with insn_must_be_first_in_group. Add power6 priority adjustments.
1957 (rs6000_issue_rate): Add CPU_POWER6.
1958 (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
1959 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
1960 (TARGET_MFPGPR): New.
1961 (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
1962 (ASM_CPU_SPEC): Add power6x.
1963 (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
1965 * config/rs6000/power6.md: New file.
1967 2006-11-01 Adam Nemet <anemet@caviumnetworks.com>
1969 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
1970 HOST_WIDE_INT_PRINT to print high and low parts. Use
1971 HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT. When
1972 printing a hexadecimal number prefix it with 0x.
1974 2006-11-01 Chris Johns <chris@contemporary.net.au>
1977 * Makefile.in (install-driver): Use exeext when installing
1978 $target-gcc-$version.
1980 2006-11-01 Douglas Gregor <doug.gregor@gmail.com>
1982 * c-common.c (flag_cpp0x): New.
1983 * c-common.h (flag_cpp0x): New.
1984 * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
1985 supported, define __GXX_EXPERIMENTAL_CPP0X__.
1986 * c-opts.c (set_std_cxx0x): New.
1987 (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
1988 * c.opt (std=c++0x): Document.
1989 (std=gnu++0x): Ditto.
1990 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
1991 * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
1993 2006-11-01 Richard Guenther <rguenther@suse.de>
1995 * config/i386/i386.c (ix86_expand_rint): Fix issues with
1997 (ix86_expand_floorceildf_32): Likewise.
1998 (ix86_expand_floorceil): Likewise.
1999 (ix86_expand_trunc): Likewise.
2001 2006-10-31 Andrew Pinski <pinskia@gmail.com>
2003 * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
2006 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
2008 * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
2010 * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
2012 * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
2014 * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
2015 * configure.ac (use_cxa_atexit): As a special case, don't test
2016 for libc definition of __cxa_atexit on mingw32
2017 * configure: Regenerate.
2018 * config.gcc (i[34567]86-pc-mingw32): Default to
2019 enable__cxa_atexit=yes.
2021 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2023 * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
2025 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2028 * c-decl.c (start_struct): Don't create self-containing
2030 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
2032 * config/rs6000/rs6000-protos.h
2033 (darwin_rs6000_special_round_type_align): New.
2034 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
2035 (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
2037 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2039 * toplev.c (compile_file): Call final_write_globals
2040 even if there have been errors.
2042 2006-10-31 Eric Christopher <echristo@apple.com>
2043 Falk Hueffner <falk@debian.org>
2045 * doc/extend.texi (__builtin_bswap32): Document.
2046 (__builtin_bswap64): Ditto.
2047 * doc/libgcc.texi (bswapsi2): Document.
2049 * doc/rtl.texi (bswap): Document.
2050 * optabs.c (expand_unop): Don't widen a bswap.
2051 (init_optabs): Init bswap. Set libfuncs explicitly
2052 for bswapsi2 and bswapdi2.
2053 * optabs.h (OTI_bswap): New.
2054 (bswap_optab): Ditto.
2055 * genopinit.c (optabs): Handle bswap_optab.
2056 * tree.h (tree_index): Add TI_UINT32_TYPE and
2058 (uint32_type_node): New.
2059 (uint64_type_node): Ditto.
2060 * tree.c (build_common_tree_nodes_2): Initialize
2061 uint32_type_node and uint64_type_node.
2062 * builtins.c (expand_builtin_bswap): New.
2063 (expand_builtin): Call.
2064 (fold_builtin_bswap): New.
2065 (fold_builtin_1): Call.
2066 * fold-const.c (tree_expr_nonnegative_p): Return true
2068 * builtin-types.def (BT_UINT32): New.
2070 (BT_FN_UINT32_UINT32): Ditto.
2071 (BT_FN_UINT64_UINT64): Ditto.
2072 * builtins.def (BUILT_IN_BSWAP32): New.
2073 (BUILT_IN_BSWAP64): Ditto.
2074 * rtl.def (BSWAP): New.
2075 * genattrtab.c (check_attr_value): New.
2076 * libgcc2.c (__bswapSI2): New.
2077 (__bswapDI2): Ditto.
2078 * libgcc2.h (__bswapSI2): Declare.
2079 (__bswapDI2): Ditto.
2080 * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
2081 * simplify-rtx.c (simplify_const_unary_operation): Return
2083 * libgcc-std.ver (__bwapsi2): Add.
2084 (__bswapdi2): Ditto.
2085 * reload1.c (eliminate_regs_1): Add bswap.
2086 (elimination_effects): Ditto.
2087 * config/i386/i386.h (x86_bswap): New.
2088 (TARGET_BSWAP): Use.
2089 * config/i386/i386.c (x86_bswap): Set.
2091 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2093 * coverage.c (coverage_checksum_string): Update comment.
2094 * dwarf2out.c (switch_to_eh_frame_section): Update for removal
2095 of get_file_function_name.
2096 * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
2097 of get_file_function_name_long.
2098 * tree.c (get_file_function_name): Rename from
2099 get_file_function_name_long; improve comment; handle 'I' and 'D'
2100 specially when the target has ctor/dtor support; remove special
2102 (get_file_function_name): Remove.
2103 * tree.h (get_file_function_name): Rename from
2104 get_file_function_name_long.
2105 (get_file_function_name): Remove prototype.
2107 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2109 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
2110 * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
2112 * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
2113 Call dsymutil when compiling and linking one or more source files
2116 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2119 * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
2121 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2123 * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
2124 inline static functions in c99 mode.
2127 * doc/extend.texi (Inline): Update.
2128 * c-tree.h (struct language_function): Remove field 'extern_inline'.
2129 * c-decl.c (current_extern_inline): Delete.
2130 (pop_scope): Adjust test for an undefined nested function.
2131 Add warning about undeclared inline function.
2132 (diagnose_mismatched_decls): Update comments. Disallow overriding
2133 of inline functions in a translation unit in C99. Allow inline
2134 declarations in C99 at any time.
2135 (merge_decls): Boolize variables. Handle C99 'extern inline'
2137 (grokdeclarator): Set DECL_EXTERNAL here for functions. Handle
2138 C99 inline semantics.
2139 (start_function): Don't clear current_extern_inline. Don't set
2141 (c_push_function_context): Don't push current_extern_inline.
2142 (c_pop_function_context): Don't restore current_extern_inline.
2145 * c-typeck.c (build_external_ref): Warn about static variables
2146 used in extern inline functions.
2147 * c-decl.c (start_decl): Warn about static variables declared
2148 in extern inline functions.
2150 2006-10-31 Roger Sayle <roger@eyesopen.com>
2153 * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
2154 * fold-const.c (tree_expr_nonnegative_p): Likewise. Consider
2155 pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
2156 or y is an even integer.
2158 2006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr>
2161 * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
2162 * gthr-posix95.h (__gthread_active_p): Likewise.
2164 2006-10-31 Richard Guenther <rguenther@suse.de>
2166 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
2167 acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
2168 expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
2169 exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
2170 ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
2171 lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
2172 lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
2173 btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
2176 2006-10-31 Steven Bosscher <steven@gcc.gnu.org>
2178 * opts.c (decode_options): Disable CSE skip blocks.
2180 2006-10-30 Dirk Mueller <dmueller@suse.de>
2182 * c-common.h (strict_aliasing_warning): Fix whitespace.
2183 * c-decl (start_function): Move code for main decl warning ..
2184 * c-common.c (check_main_parameter_types): .. here.
2185 * c-common.h (check_main_parameter_types): Declare.
2187 2006-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2190 * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
2192 2006-10-30 Pete Steinmetz <steinmtz@us.ibm.com>
2194 * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
2195 be a PARALLEL containing sets. Return false when out_pat is not
2198 2006-10-30 Richard Sandiford <richard@codesourcery.com>
2200 * config/mips/mips.md (mul<mode>3): Split into...
2201 (mulsi3, muldi3): ...these separate patterns.
2203 2006-10-30 Richard Sandiford <richard@codesourcery.com>
2205 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
2206 but with each set of options separated by spaces.
2208 2006-10-30 J"orn Rennecke <joern.rennecke@st.com>
2210 * unwind-dw2.c (uw_init_context_1): Fix test that checks if
2211 dwarf_reg_size_table has been initialized.
2213 2006-10-30 Roger Sayle <roger@eyesopen.com>
2215 * builtins.c (expand_builtin_mathfn_3): Correct coding style.
2216 * ddg.c (print_ddg_edge): Likewise.
2217 * dwarf2out.c (prune_unused_types_walk): Likewise.
2218 * ifcvt.c (noce_try_cmove_arith): Likewise.
2219 * langhooks.c (add_builtin_function): Likewise.
2220 * reg-stack.c (subst_stack_regs_pat): Likewise.
2221 * tree.c (expanded_location): Likewise.
2222 * tree-dump.c (dequeue_and_dump): Likewise.
2224 2006-10-30 David Daney <ddaney@avtrex.com>
2226 * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
2228 2006-10-30 Jakub Jelinek <jakub@redhat.com>
2230 PR tree-optimization/29637
2231 * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
2232 of the innertype is the innertype itself.
2234 2006-10-30 Danny Smith <dannysmith@users.sourceforge.net>
2236 * dwarf2out.c (file_name_acquire): Correct typo.
2238 2006-10-29 Daniel Berlin <dberlin@dberlin.org>
2240 * tree.h (tree_value_handle): Remove struct value_set declaration.
2241 Change value_set to bitmap_set.
2242 * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
2243 * tree-vn.c (get_value_handle): Made inline and moved to
2245 * tree-flow-inline.h: (has_stmt_ann): New function.
2246 * tree-ssa-pre.c (expressions): New variable.
2247 (next_expression_id): Ditto.
2248 (alloc_expression_id): New function.
2249 (struct value_set): Remove.
2250 (get_expression_id): New function.
2251 (get_or_alloc_expression_id): Ditto.
2252 (expression_for_id): Ditto.
2253 (clear_expression_ids): Ditto.
2254 (FOR_EACH_EXPR_ID_IN_SET): New macro.
2255 (bb_value_sets): Renamed to bb_bitmap_sets.
2256 All value sets replaced with bitmap_sets.
2258 (BB_VISITED): New macro.
2259 (postorder): New variable.
2260 (add_to_value): Removed.
2261 (value_exists_in_set_bitmap): Ditto.
2262 (value_insert_into_set_bitmap): Ditto.
2265 (set_remove): Ditto.
2266 (set_contains_value): Ditto.
2267 (insert_into_set): Ditto.
2269 (find_leader): Ditto.
2270 (bitmap_set_subtract_from_value_set): Ditto.
2271 (value_insert_into_set): Ditto.
2272 (print_value_set): Ditto.
2273 (debug_value_set): Ditto.
2274 (constant_expr_p): New function.
2275 (bitmap_remove_from_set): Ditto.
2276 (bitmap_insert_into_set): Ditto.
2277 (bitmap_set_free): Ditto.
2278 (vh_compare): Ditto.
2279 (sorted_array_from_bitmap_set): Ditto.
2280 (bitmap_set_subtract): Ditto.
2281 (bitmap_set_equal): Ditto.
2282 (debug_bitmap_set): Ditto.
2283 (find_leader_in_sets): Ditto.
2284 (bitmap_set_replace_value): Modify for bitmapped sets.
2285 (phi_translate): Ditto.
2286 (phi_translate_set): Ditto.
2287 (bitmap_find_leader): Ditto.
2288 (valid_in_sets): Ditto.
2289 (union_contains_value): Ditto.
2291 (compute_antic_aux): Ditto. Mark changed blocks.
2292 (compute_antic): Ditto. Iterate in postorder and only over
2294 (compute_rvuse_and_antic_safe): Reuse postorder.
2295 (create_component_ref_by_pieces): Modify for bitmapped sets.
2296 (find_or_generate_expression): Ditto.
2297 (create_expression_by_pieces): Ditto.
2298 (insert_into_preds_of_block): Ditto.
2299 (changed_blocks): New variable.
2300 (do_regular_insertion): Broken out from insert_aux.
2301 (insert_aux): Modified for bitmapped sets.
2302 (find_existing_value_expr): New function.
2303 (create_value_expr_from): Use it.
2304 (insert_extra_phis): Removed.
2305 (print_bitmap_set): Renamed from bitmap_print_value_set.
2306 (compute_avail): Handle RETURN_EXPR.
2307 (init_pre): Modify for bitmapped sets.
2308 * tree-flow.h (has_stmt_ann): New function.
2310 2006-10-29 Roger Sayle <roger@eyesopen.com>
2312 * builtins.c (fold_builtin_floor): Check for the availability of
2313 the C99 trunc function before transforming floor into trunc.
2315 2006-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2317 * builtins.c (fold_builtin_hypot): Rearrange recursive
2318 transformation before others, and also do ABS_EXPR. When
2319 necessary, check flag_unsafe_math_optimizations. When necessary,
2322 2006-10-29 Roger Sayle <roger@eyesopen.com>
2324 * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
2325 Fold ~X op C as X op' ~C, where op' is the swapped comparison.
2326 (fold_binary): ~X eq/ne C is now handled in fold_comparison.
2327 Fold -X eq/ne -Y as X eq/ne Y.
2329 2006-10-29 Richard Sandiford <richard@codesourcery.com>
2331 * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
2332 GENERATE_MULT3_<MODE>. Restrict the test to SImode. Use ISA_HAS_MUL3
2333 rather than GENERATE_MULT3_SI in the various define_peephole2s.
2334 (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
2335 Use an inclusive test for "mult" rather than "mul".
2336 (rotr<mode>3): Depend on ISA_HAS_ROR.
2337 * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
2339 (GENERATE_MULT3_DI): Delete.
2340 (ISA_HAS_64BIT_REGS): Use consistent formatting.
2341 (ISA_HAS_MUL3): New macro.
2342 (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
2343 (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
2344 (ISA_HAS_CLZ_CLO): Likewise.
2345 (ISA_HAS_DCLZ_DCLO): Delete.
2346 (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
2347 (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
2348 the VR4120 and VR4130.
2349 (ISA_HAS_MACCHI): Use consistent formatting.
2350 (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
2351 (ISA_HAS_ROR): ...this new macro.
2352 (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
2353 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
2354 (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
2356 2006-10-29 Roger Sayle <roger@eyesopen.com>
2358 PR tree-optimization/15458
2359 * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
2362 2006-10-29 Richard Guenther <rguenther@suse.de>
2364 * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
2365 (ix86_expand_truncdf_32): Likewise.
2366 * config/i386/i386.c (ix86_expand_trunc): New function expanding
2367 trunc inline for SSE math and -fno-trapping-math and if not
2368 optimizing for size.
2369 (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
2370 * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
2371 for expanding btrunc inline for SSE math.
2373 2006-10-29 Joseph Myers <joseph@codesourcery.com>
2375 * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
2376 Handle tuning for bi-arch i[34567]86-*-linux* like that for
2377 i[34567]86-*-solaris2.1[0-9]*.
2378 * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
2379 Define conditionally depending on TARGET_64BIT_DEFAULT.
2380 (SPEC_32, SPEC_64): Define.
2381 (LINK_SPEC): Use them.
2382 * doc/install.texi (--enable-targets=all): Document for x86-linux.
2384 2006-10-29 Richard Guenther <rguenther@suse.de>
2386 * config/i386/i386-protos.h (ix86_expand_round): Declare.
2387 (ix86_expand_rounddf_32): Likewise.
2388 * config/i386/i386.c (ix86_expand_round): New function expanding
2389 round inline for SSE math and -fno-trapping-math and if not
2390 optimizing for size.
2391 (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
2392 * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
2393 round via ix86_expand_round.
2395 2006-10-29 Richard Guenther <rguenther@suse.de>
2397 * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
2398 (ix86_expand_floorceildf_32): Likewise.
2399 * config/i386/i386.c (ix86_expand_sse_compare_mask): New
2400 static helper function.
2401 (ix86_expand_floorceil): Expander for floor and ceil to SSE
2403 (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
2404 * config/i386/i386.md (floordf2): Adjust to enable floor
2405 expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
2406 -fno-trapping-math is enabled and if not optimizing for size.
2407 (floorsf2, ceildf2, ceilsf2): Likewise.
2408 * config/i386/sse.md (sse_maskcmpsf3): New insn.
2409 (sse2_maskcmpdf3): Likewise.
2411 2006-10-29 Richard Guenther <rguenther@suse.de>
2413 * builtins.c (expand_builtin_mathfn): Expand nearbyint as
2414 rint in case -fno-trapping-math is enabled.
2415 * config/i386/i386-protos.h (ix86_expand_rint): Declare.
2416 * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
2417 (ix86_expand_sse_fabs): Likewise.
2418 (ix86_expand_rint): New function expanding rint to x87 or SSE math.
2419 * config/i386/i386.md (rintdf2): Enable for SSE math if
2420 -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
2421 (rintsf2): Likewise.
2423 2006-10-29 Richard Guenther <rguenther@suse.de>
2425 * genopinit.c (optabs): Change lfloor_optab and lceil_optab
2426 to conversion optabs.
2427 * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
2428 as conversion optab.
2429 * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
2430 (enum convert_optab_index): Add COI_lfloor and COI_lceil.
2431 (lfloor_optab, lceil_optab): Adjust defines.
2432 * builtins.c (expand_builtin_int_roundingfn): Adjust for
2433 lfloor and lceil optabs now being conversion optabs.
2434 * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
2435 * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
2436 New static helper function.
2437 (ix86_expand_lfloorceil): New function to expand lfloor and
2439 * config/i386/i386.md (lfloor<mode>2): Split into ...
2440 (lfloorxf<mode>2): ... x87 variant
2441 (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
2442 using ix86_expand_lfloorceil.
2443 (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
2445 * doc/md.texi (lfloorMN, lceilMN): Document.
2447 2006-10-29 Richard Sandiford <richard@codesourcery.com>
2449 * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the
2450 -mno-shared assembler option on mips targets.
2451 * configure, config.in: Regenerate.
2452 * config/mips/linux.h (NO_SHARED_SPECS): New macro.
2453 (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
2454 * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
2456 2006-10-29 Richard Sandiford <richard@codesourcery.com>
2458 * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
2459 as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
2461 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
2463 * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
2464 config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
2467 2006-10-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2470 * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
2471 (fold_builtin_pow): Evaluate constant arguments at compile-time
2473 (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
2474 (do_mpfr_ckconv): New helper function.
2475 (do_mpfr_arg1): Use do_mpfr_ckconv.
2476 (do_mpfr_arg2): New.
2478 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2481 * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
2482 (-fdump-rtl-sched): Rename to ..
2483 (-fdump-rtl-sched1): here. Also fix file extension number.
2485 2006-10-28 Richard Guenther <rguenther@suse.de>
2487 * fold-const.c (maybe_canonicalize_comparison): Fix code
2490 2006-10-28 Uros Bizjak <uros@kss-loka.si>
2492 * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
2493 (NON_QI_REG_P): Use IN_RANGE.
2494 (REX_INT_REGNO_P): Use IN_RANGE.
2495 (FP_REGNO_P): Use IN_RANGE.
2496 (SSE_REGNO_P): Use IN_RANGE.
2497 (REX_SSE_REGNO_P): Use IN_RANGE.
2498 (MMX_REGNO_P): Use IN_RANGE.
2499 (STACK_REGNO_P): New macro.
2500 (STACK_REG_P): Use STACK_REGNO_P.
2501 (NON_STACK_REG_P): Use STACK_REGNO_P.
2502 (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
2503 (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
2504 (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
2505 (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
2506 (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
2508 2006-10-28 Eric Botcazou <ebotcazou@adacore.com>
2510 * except.h (output_function_exception_table): Add 'const char*' param.
2511 * except.c (switch_to_exception_section): Add 'const char*' param.
2512 If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
2513 and flag_function_sections is set, use a function-specific section.
2514 (output_function_exception_table): Add 'const char*' param.
2515 Adjust call to switch_to_exception_section.
2516 * final.c (rest_of_handle_final): Adjust calls to
2517 output_function_exception_table.
2518 * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
2519 * config.in: Regenerate.
2520 * configure: Likewise.
2522 2006-10-28 Richard Guenther <rguenther@suse.de>
2525 * fold-const.c (maybe_canonicalize_comparison_1): Helper
2526 for maybe_canonicalize_comparison.
2527 (maybe_canonicalize_comparison): New function for canonicalizing
2529 (fold_comparison): Call it to canonicalize comparisons with
2532 2006-10-28 Richard Guenther <rguenther@suse.de>
2535 * builtins.c (expand_builtin_int_roundingfn_2): Expand
2536 BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
2537 (expand_builtin): Adjust likewise.
2538 * genopinit.c (optabs[]): Add lround optab.
2539 * optabs.c (init_optabs): Initialize lround_optab.
2540 * optabs.h (enum convert_optab_index): Add COI_lround.
2541 (lround_optab): Define.
2542 * config/i386/i386-protos.h (ix86_expand_lround): Declare.
2543 * config/i386/i386.c (ix86_sse_copysign_to_positive): New
2545 (ix86_expand_lround): New function.
2546 * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
2548 * doc/md.texi (lroundMN2): Document.
2550 2006-10-28 Uros Bizjak <uros@kss-loka.si>
2553 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
2554 argument to HOST_WIDE_INT. Update function prototype.
2555 (round_frame_size): Change return type to HOST_WIDE_INT. Change
2556 "size" argument to HOST_WIDE_INT. Update function prototype.
2558 2006-10-28 Uros Bizjak <uros@kss-loka.si>
2560 * config/i386/i386.c (output_387_ffreep): Create output from a
2561 template string for !HAVE_AS_IX86_FFREEP.
2563 2006-10-27 Eric Christopher <echristo@apple.com>
2565 * config/darwin.c: Fix formatting and grammar.
2567 2006-10-27 Jan Hubicka <jh@suse.cz>
2569 * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
2570 to be thrown away soon when IGNORE is set.
2571 * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
2572 indicating when return value shall not be computed.
2573 * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
2575 2006-10-27 Vladimir Makarov <vmakarov@redhat.com>
2577 * config/i386/i386.h (TARGET_GEODE):
2578 (TARGET_CPU_CPP_BUILTINS): Add code for geode.
2579 (TARGET_CPU_DEFAULT_geode): New macro.
2580 (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
2581 TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
2582 TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
2583 TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
2584 TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
2586 (TARGET_CPU_DEFAULT_NAMES): Add geode.
2587 (processor_type): Add PROCESSOR_GEODE.
2589 * config/i386/i386.md: Include geode.md.
2592 * config/i386/i386.c (geode_cost): New initialized global
2594 (m_GEODE, m_K6_GEODE): New macros.
2595 (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
2596 x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
2597 x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
2598 x86_schedule): Use m_K6_GEODE instead of m_K6.
2599 (x86_movx, x86_cmove): Set up m_GEODE.
2600 (x86_integer_DFmode_moves): Clear m_GEODE.
2601 (processor_target_table): Add entry for geode.
2602 (processor_alias_table): Ditto.
2604 * config/i386/geode.md: New file.
2606 * doc/invoke.texi: Add entry about geode processor.
2608 2006-10-27 Mike Stump <mrs@apple.com>
2610 * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
2611 __DYNAMIC__ from here back to ...
2612 * config/darwin.h (CPP_SPEC): ... here.
2614 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
2615 Nathan Sidwell <nathan@codesourcery.com>
2617 * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
2618 when choosing the minimum heapsize.
2620 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
2622 * gcc/unwind-dw2.h: Move cfa-related variables into
2623 struct frame_state_reg_info to ensure that the CFA is properly
2624 handled when executing DW_CFA_{remember,restore}_state.
2625 * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
2626 gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
2627 gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
2628 gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
2629 gcc/config/rs6000/linux-unwind.h,
2630 gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
2631 gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
2632 Modify to use new cfa_* fields.
2634 2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
2636 * config/s390/s390.c (s390_init_frame_layout): Check positive
2639 2006-10-26 Ben Elliston <bje@au.ibm.com>
2641 * gimplify.c (get_name): Remove extraneous break.
2642 (gimplify_omp_for): Initialise ret with GS_OK.
2644 2006-10-25 Steve Ellcey <sje@cup.hp.com>
2646 * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
2647 Add unix98.o to link line.
2649 2006-10-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2652 * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
2653 Calculate compile-time constants using MPFR.
2654 (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
2655 BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
2657 2006-10-25 Bob Wilson <bob.wilson@acm.org>
2659 * config/xtensa/lib2funcs.S: Use C-style comments.
2661 2006-10-24 Nathan Froyd <froydnj@codesourcery.com>
2663 * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
2664 (file_table_relative_p): Likewise.
2665 (dwarf2out_finish): Likewise.
2666 (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
2668 2006-10-25 Daniel Berlin <dberlin@dberlin.org>
2670 * tree-ssa-structalias.c (intra_create_variable_infos):
2671 Don't recreate nonlocal_all if it already exists.
2673 2006-10-25 Richard Guenther <rguenther@suse.de>
2676 * optabs.h (enum optab_index): Remove OTI_lrint.
2677 (enum convert_optab_index): Add COI_lrint.
2678 (lrint_optab): Adjust.
2679 (expand_sfix_optab): Declare.
2680 * optabs.c (expand_sfix_optab): New function.
2681 (init_optabs): Init lrint_optab as conversion optab.
2682 * genopinit.c (lrint_optab): Change to a conversion optab.
2683 * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
2684 expansion via conversion optab.
2685 * config/i386/i386.md (*fistdi2_1): Remove
2686 flag_unsafe_math_optimizations guard.
2687 (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
2688 fist<mode>2_with_temp): Likewise.
2689 (lrint<mode>2): Split into...
2690 (lrintxf<mode>2): ... x87 part
2691 (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
2692 * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
2693 sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
2694 UNSPEC_FIX_NOTRUNC matching non-vector float modes.
2695 * doc/md.texi (lrintMN2): Document.
2697 2006-10-25 Uros Bizjak <uros@kss-loka.si>
2700 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
2701 Use inc and dec instructions for TARGET_USE_INCDEC.
2702 ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
2703 ("sync_double_compare_and_swap<mode>"): Likewise.
2704 ("*sync_double_compare_and_swapdi_pic"): Likewise.
2705 ("*sync_compare_and_swap_cc<mode>"): Likewise.
2706 ("sync_double_compare_and_swap_cc<mode>"): Likewise.
2707 ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
2708 ("sync_old_add<mode>"): Likewise.
2709 ("sync_lock_test_and_set<mode>"): Likewise.
2710 ("sync_lock_test_and_set<mode>"): Likewise.
2711 ("sync_add<mode>"): Likewise.
2712 ("sync_sub<mode>"): Likewise.
2713 ("sync_ior<mode>"): Likewise.
2714 ("sync_and<mode>"): Likewise.
2715 ("sync_xor<mode>"): Likewise.
2717 2006-10-25 Uros Bizjak <uros@kss-loka.si>
2719 * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
2720 (remainder_optab): Define corresponding macro.
2721 (drem_optab): Remove.
2722 * optabs.c (init_optabs): Initialize remainder_optab. Remove
2723 drem_optab initialization.
2724 * genopinit.c (optabs): Implement remainder_optab using
2725 remainder?f3 patterns. Remove drem_optab.
2726 * builtins.c (expand_builtin_mathfn_2): Handle
2727 BUILT_IN_REMAINDER{,F,L} using remainder_optab.
2728 (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
2729 expand_builtin_mathfn_2.
2731 (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
2732 depend on flag_unsafe_math_optimizations.
2734 * config/i386/i386.md ("remaindersf3", "remainderdf3")
2735 ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
2736 Do not depend on flag_unsafe_math_optimizations. Use
2737 truncxf?f expander instead of truncxf?f_i387_noop.
2739 ("fpremxf4", "fprem1xf4"): Do not depend on
2740 flag_unsafe_math_optimizations.
2741 ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
2742 flag_unsafe_math_optimizations. Use truncxf?f expander
2743 instead of truncxf?f_i387_noop.
2745 * doc/md.texi (fmod, remainder): Document standard named pattern.
2747 2006-10-24 Richard Sandiford <richard@codesourcery.com>
2748 David Daney <ddaney@avtrex.com>
2751 * rtlanal.c (nonzero_address_p): Remove check for values wrapping.
2753 2006-10-25 Ben Elliston <bje@au.ibm.com>
2755 * doc/extend.texi (Variable Attributes): Typo fix.
2757 2006-10-24 Uros Bizjak <uros@kss-loka.si>
2759 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
2760 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
2761 (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
2762 (FRAME_POINTER_REGNUM): Update register number to 21.
2763 (REG_CLASS_CONTENTS): Update contents for added fpcr register.
2764 (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
2766 * config/i386/i386.c (regclass_map): Add fpcr entry.
2767 (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
2769 (print_reg): Assert REGNO (x) != FPCR_REG.
2771 * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
2772 (DIRFLAG_REG): Renumber.
2773 (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
2774 (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
2775 (sse_prologue_save, *sse_prologue_save_insn): Renumber
2776 hardcoded SSE register numbers.
2778 * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
2779 hardcoded MMX register numbers.
2781 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2784 * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
2785 (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
2787 (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
2788 (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
2789 BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
2790 BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
2792 2006-10-24 Richard Guenther <rguenther@suse.de>
2795 * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
2796 and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
2797 for deciding optimizations in consistency with fold-const.c
2798 (fold_builtin_unordered_cmp): Likewise.
2800 2006-10-24 Richard Guenther <rguenther@suse.de>
2802 * builtins.c (fold_builtin_floor): Fold floor (x) where
2803 x is nonnegative to trunc (x).
2804 (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
2805 nonnegative to FIX_TRUNC_EXPR.
2807 2006-10-24 Richard Guenther <rguenther@suse.de>
2809 PR tree-optimization/29567
2810 * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
2811 for TRUTH_NOT_EXPR. Clarify comments.
2813 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2816 * builtins.c (fold_builtin_exponent): Evaluate constant arguments
2817 at compile-time using MPFR. Change parameter VALUE to FUNC,
2819 (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check
2820 for overflow and underflow at all times and avoid folding in
2823 2006-10-24 Ben Elliston <bje@au.ibm.com>
2825 * reload1.c: Formatting fixes.
2827 2006-10-23 Zdenek Dvorak <dvorakz@suse.cz>
2829 PR tree-optimization/14784
2830 * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
2831 * tree-ssa-structalias.c (get_constraint_for,
2832 intra_create_variable_infos): Set is_heapvar.
2833 * tree-ssa-operands.c (access_can_touch_variable): Do not handle
2834 non-heapvar pointer variables specially.
2836 2006-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2839 * builtins.c (fold_builtin_sin, fold_builtin_cos,
2840 fold_builtin_tan): Fold all constant arguments. Take a "type"
2841 argument as necessary.
2842 (do_mpfr_arg1): New.
2843 * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
2845 2006-10-23 Bob Wilson <bob.wilson@acm.org>
2847 * config/xtensa/lib1funcs.asm: Use C-style comments.
2849 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
2851 * tree.c (local_define_builtin): Replace calls to
2852 lang_hooks.builtin_function with add_builtin_function.
2853 * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
2855 * c-tree.h (builtin_function): Rename to c_builtin_function. Change
2857 * c-decl.c (builtin_function): Rename to c_builtin_function. Move
2858 common code to add_builtin_function.
2859 * langhooks.c (add_builtin_function): New function.
2860 (lhd_builtin_function): New function.
2861 * langhooks.h (struct lang_hooks): Change the signature of
2863 (add_builtin_function): New function.
2864 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
2865 calls to lang_hooks.builtin_function with add_builtin_function.
2866 * c-common.c (decl_builtin_1): Replace calls to
2867 lang_hooks.builtin_function with add_builtin_function.
2868 * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
2869 lang_hooks.builtin_function with add_builtin_function.
2870 * config/frv/frv.c (def_builtin): Replace calls to
2871 lang_hooks.builtin_function with add_builtin_function.
2872 * config/s390/s390.c (s390_init_builtins): Replace calls to
2873 lang_hooks.builtin_function with add_builtin_function.
2874 * config/sparc/sparc.c (def_builtin): Replace calls to
2875 lang_hooks.builtin_function with add_builtin_function.
2876 * config/i386/i386.c (def_builtin): Replace calls to
2877 lang_hooks.builtin_function with add_builtin_function.
2878 * config/sh/sh.c (sh_media_init_builtins): Replace calls to
2879 lang_hooks.builtin_function with add_builtin_function.
2880 * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
2881 lang_hooks.builtin_function with add_builtin_function.
2882 * config/stormy16/stormy16.c (xstormy16_init_builtins):
2883 Replace calls to lang_hooks.builtin_function with
2884 add_builtin_function.
2885 * config/iq2000/iq2000.c (def_builtin):
2886 Replace calls to lang_hooks.builtin_function with
2887 add_builtin_function.
2888 * config/ia64/ia64.c (def_builtin): Replace calls to
2889 lang_hooks.builtin_function with add_builtin_function.
2890 * config/rs6000/rs6000.c (def_builtin): Replace calls to
2891 lang_hooks.builtin_function with add_builtin_function.
2892 (altivec_init_builtins): Replace calls to
2893 lang_hooks.builtin_function with add_builtin_function.
2894 * config/arm/arm.c (def_mbuiltin): Replace calls to
2895 lang_hooks.builtin_function with add_builtin_function.
2896 (arm_init_tls_builtins): Replace calls to
2897 lang_hooks.builtin_function with add_builtin_function.
2898 * config/mips/mips.c (mips_init_builtins): Replace calls to
2899 lang_hooks.builtin_function with add_builtin_function.
2900 * config/bfin/bfin.c (def_builtin): Replace calls to
2901 lang_hooks.builtin_function with add_builtin_function.
2902 * langhooks-def.h (lhd_builtin_function): New function.
2903 (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
2905 2006-10-23 Jakub Jelinek <jakub@redhat.com>
2907 * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
2908 BUILT_IN_STRNCAT_CHK.
2910 2006-10-23 Jan Hubicka <jh@suse.cz>
2912 * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
2913 don't do conversion from memmove to memcpy here.
2914 (expand_builtin_bcopy, expand_builtin): Update call of
2915 expand_builtin_memmove.
2916 (fold_builtin_memory_op): Do folding of memmove to memcpy here.
2918 2006-10-23 Paul Brook <paul@codesourcery.com>
2920 * stor-layout.c (start_record_layout): maximum_field_alignment
2921 overrides STRUCTURE_SIZE_BOUNDARY.
2923 2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
2925 * config/s390/predicates.md ("bras_sym_operand"): Do not accept
2926 nonlocal function symbols if flag_pic.
2928 2006-10-23 Richard Guenther <rguenther@suse.de>
2932 * builtins.c (fold_binary): Remove checks for flag_wrapv
2933 and flag_trapv where negate_expr_p covers these cases.
2935 2006-10-23 Richard Guenther <rguenther@suse.de>
2938 * fold-const.c (fold_plusminus_mult_expr): Check exact power
2939 of two on the absolute value.
2940 (fold_binary): Fold x * -C to -x * C if x is easily negatable
2941 and negating -C does not overflow.
2943 2006-10-23 Richard Guenther <rguenther@suse.de>
2946 * convert.c (convert_to_real): Fold (float)-x to -(float)x
2947 only if not flag_rounding_math.
2949 2006-10-22 Richard Sandiford <richard@codesourcery.com>
2950 Kaz Kojima <kkojima@gcc.gnu.org>
2953 * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
2954 SImode memory reference for the source of a movua.
2955 * config/sh/sh.md (UNSPEC_MOVUA): New macro.
2956 (movua): Use an unspec instead of sign_extract. Expect the source
2957 to have mode BLKmode.
2958 (extv, insv): Use a BLKmode rather than SImode memory reference
2959 for the source of a movua.
2961 2006-10-22 Jeff Law <law@redhat.com>
2962 Richard Guenther <rguenther@suse.de>
2964 PR tree-optimization/15911
2965 * tree-vrp.c (extract_code_and_val_from_cond): New function.
2966 (register_edge_assert_for_1): Likewise.
2967 (register_edge_assert_for): Handle &&/&/||/| in conditionals.
2968 (find_conditional_asserts): Adjust for new function signature.
2969 (find_assert_locations): Likewise.
2971 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
2973 * config/i386/tmmintrin.h: Remove the duplicated content.
2975 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
2977 * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
2978 (x86_64-*-*): Likewise.
2980 * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
2981 (override_options): Check SSSE3.
2982 (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
2983 IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
2984 IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
2985 IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
2986 IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
2987 IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
2988 IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
2989 IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
2990 IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
2991 IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
2992 IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
2993 IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
2994 IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
2995 IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
2996 IX86_BUILTIN_PABSD128.
2997 (bdesc_2arg): Add SSSE3.
2998 (bdesc_1arg): Likewise.
2999 (ix86_init_mmx_sse_builtins): Support SSSE3.
3000 (ix86_expand_builtin): Likewise.
3001 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
3003 * config/i386/i386.md (UNSPEC_PSHUFB): New.
3004 (UNSPEC_PSIGN): Likewise.
3005 (UNSPEC_PALIGNR): Likewise.
3006 Include mmx.md before sse.md.
3008 * config/i386/i386.opt: Add -mssse3.
3010 * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
3011 (ssse3_phaddwv4hi3): Likewise.
3012 (ssse3_phadddv4si3): Likewise.
3013 (ssse3_phadddv2si3): Likewise.
3014 (ssse3_phaddswv8hi3): Likewise.
3015 (ssse3_phaddswv4hi3): Likewise.
3016 (ssse3_phsubwv8hi3): Likewise.
3017 (ssse3_phsubwv4hi3): Likewise.
3018 (ssse3_phsubdv4si3): Likewise.
3019 (ssse3_phsubdv2si3): Likewise.
3020 (ssse3_phsubswv8hi3): Likewise.
3021 (ssse3_phsubswv4hi3): Likewise.
3022 (ssse3_pmaddubswv8hi3): Likewise.
3023 (ssse3_pmaddubswv4hi3): Likewise.
3024 (ssse3_pmulhrswv8hi3): Likewise.
3025 (ssse3_pmulhrswv4hi3): Likewise.
3026 (ssse3_pshufbv16qi3): Likewise.
3027 (ssse3_pshufbv8qi3): Likewise.
3028 (ssse3_psign<mode>3): Likewise.
3029 (ssse3_psign<mode>3): Likewise.
3030 (ssse3_palignrti): Likewise.
3031 (ssse3_palignrdi): Likewise.
3032 (abs<mode>2): Likewise.
3033 (abs<mode>2): Likewise.
3035 * config/i386/tmmintrin.h: New file.
3037 * doc/extend.texi: Document SSSE3 built-in functions.
3039 * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
3041 2006-10-22 Ira Rosen <irar@il.ibm.com>
3043 * tree-vect-transform.c (vectorizable_load): Use the type of the
3044 return value of the mask_for_load builtin to create realign_load
3047 2006-10-22 Richard Sandiford <richard@codesourcery.com>
3049 * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
3052 2006-10-21 H.J. Lu <hongjiu.lu@intel.com>
3054 * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
3055 (UNSPEC_LDDQU): This.
3056 * config/i386/sse.md (sse3_lddqu): Updated.
3058 2006-10-21 Richard Guenther <rguenther@suse.de>
3060 * builtins.c (expand_builtin_int_roundingfn_2): New function.
3061 (expand_builtin): Use it to expand lrint instead of
3062 expand_builtin_mathfn.
3064 2006-10-21 Uros Bizjak <uros@kss-loka.si>
3067 * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
3068 flag_unsafe_math_optimizations is set.
3070 2006-10-21 Uros Bizjak <uros@kss-loka.si>
3073 * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
3074 patterns to use memory input operand in x87->mem->XMM
3075 reload sequences. Skip transformation for TARGET_K8.
3077 2006-10-21 Uros Bizjak <uros@kss-loka.si>
3079 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
3080 force operand1 to register if both operands are memory operands.
3081 (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
3082 (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
3083 if both operands are memory operands.
3084 (truncdfsf2): Do not force operand1 to register if both operands
3085 are memory operands.
3087 2006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3089 * Makefile.in (LIBS): Add $(GMPLIBS).
3090 * doc/install.texi: Update GMP and MPFR requirements.
3091 * doc/sourcebuild.texi (need_gmp): Delete.
3093 2006-10-21 Richard Guenther <rguenther@suse.de>
3095 PR tree-optimization/3511
3096 * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
3097 got new invariant arguments during PHI translation.
3099 2006-10-21 Richard Guenther <rguenther@suse.de>
3102 * fold-const.c (fold_comparison): Fold signed comparisons
3103 of the form X +- C1 CMP Y +- C2.
3105 2006-10-21 Richard Guenther <rguenther@suse.de>
3108 * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
3109 if flag_unsafe_math_optimizations is specified. We have
3110 flag_finite_math_only for that.
3111 * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
3112 or flag_unsafe_math_optimizations.
3114 2006-10-21 Richard Guenther <rguenther@suse.de>
3116 * builtins.c (fold_builtin_classify): Fix typo.
3118 2006-10-21 Richard Guenther <rguenther@suse.de>
3121 * simplify-rtx.c (simplify_const_relational_operation):
3122 Do not constant-fold ORDERED and UNORDERED for
3123 flag_unsafe_math_optimizations but only we do not need to
3124 honor NaNs for the given mode.
3126 2006-10-21 Richard Guenther <rguenther@suse.de>
3129 * config/i386/i386.c (classify_argument): Remove redundant
3130 walking of the BINFOs.
3131 (contains_128bit_aligned_vector_p): Likewise.
3133 2006-10-20 Mark Mitchell <mark@codesourcery.com>
3135 * BASE-VER: Set to 4.3.0.
3137 2006-10-20 Daniel Berlin <dberlin@dberlin.org>
3139 * tree.h (DECL_PTA_ARTIFICIAL): Remove.
3140 (tree_decl_with_vis): Remove artificial_pta_var flag.
3141 * tree-flow.h (referenced_var_check_and_insert): Expose.
3142 (nonlocal_all): New prototype.
3143 * tree-ssa-structalias.c (nonlocal_for_type): Remove.
3144 (nonlocal_all): Make global.
3145 (nonlocal_lookup): Remove.
3146 (nonlocal_insert): Ditto.
3147 (create_nonlocal_var): Do not call nonlocal_insert.
3148 (get_nonlocal_id_for_type): Remove.
3149 (find_global_initializers): Mark new vars we find for renaming.
3150 (intra_create_variable_infos): Only create one nonlocal.
3151 (expand_nonlocal_solutions): Remove.
3152 (compute_points_to_sets): Don't call it.
3153 (ipa_pta_execute): Ditto.
3154 (init_alias_heapvars): Don't create nonlocal_for_type.
3155 (delete_alias_heapvars): Don't remove it.
3156 * tree-ssa-operands.c (access_can_touch_variable): Don't prune
3159 2006-10-19 Brooks Moses <bmoses@stanford.edu>
3161 * doc/install.texi (Downloading GCC): Clarify mention of
3162 Fortran in the "full distribution" description.
3164 2006-10-19 Daniel Berlin <dberlin@dberlin.org>
3166 Fix PR tree-optimization/28778
3167 Fix PR tree-optimization/29156
3168 Fix PR tree-optimization/29415
3169 * tree.h (DECL_PTA_ARTIFICIAL): New macro.
3170 (tree_decl_with_vis): Add artificial_pta_var flag.
3171 * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
3172 pushed into callers.
3173 * tree-ssa-structalias.c (nonlocal_for_type): New variable.
3174 (nonlocal_all): Ditto.
3175 (struct variable_info): Add directly_dereferenced member.
3176 (var_escaped_vars): New variable.
3177 (escaped_vars_tree): Ditto.
3178 (escaped_vars_id): Ditto.
3179 (nonlocal_vars_id): Ditto.
3180 (new_var_info): Set directly_dereferenced.
3181 (graph_size): New variable
3182 (build_constraint_graph): Use graph_size.
3183 (solve_graph): Don't process constraints that cannot change the
3184 solution, don't try to propagate an empty solution to our
3186 (process_constraint): Set directly_dereferenced.
3187 (could_have_pointers): New function.
3188 (get_constraint_for_component_ref): Don't process STRING_CST.
3189 (nonlocal_lookup): New function.
3190 (nonlocal_insert): Ditto.
3191 (create_nonlocal_var): Ditto.
3192 (get_nonlocal_id_for_type): Ditto.
3193 (get_constraint_for): Allow results vector to be empty in the case
3194 of string constants.
3195 Handle results of calls properly.
3196 (update_alias_info): Update alias info stats on number and type of
3198 (find_func_aliases): Use could_have_pointers.
3199 (make_constraint_from_escaped): Renamed from
3200 make_constraint_to_anything, and changed to make constraints from
3202 (make_constraint_to_escaped): New function.
3203 (find_global_initializers): Ditto.
3204 (create_variable_info_for): Make constraint from escaped to any
3205 global variable, and from any global variable to the set of
3207 (intra_create_variable_infos): Deal with escaped instead of
3208 pointing to anything.
3209 (set_uids_in_ptset): Do type pruning on directly dereferenced
3211 (find_what_p_points_to): Adjust call to set_uids_with_ptset.
3212 (init_base_vars): Fix comment, and initialize escaped_vars.
3213 (need_to_solve): Removed.
3214 (find_escape_constraints): New function.
3215 (expand_nonlocal_solutions): Ditto.
3216 (compute_points_to_sets): Call find_escape_constraints and
3217 expand_nonlocal_solutions.
3218 (delete_points_to_sets): Don't fall off the end of the graph.
3219 (init_alias_heapvars): Initialize nonlocal_for_type and
3221 (delete_alias_heapvars): Free nonlocal_for_type and null out
3224 2006-10-19 Eric Botcazou <ebotcazou@adacore.com>
3226 * fold-const.c (add_double): Rename to add_double_with_sign.
3227 Add 'unsigned_p' parameter and take it into account for the overflow.
3228 (mul_double): Rename to mul_double_with_sign.
3229 Add 'unsigned_p' parameter and take it into account for the overflow.
3230 (fold_div_compare): Call add_double_with_sign instead of add_double
3231 and mul_double_with_sign instead of mul_double, passing them the
3232 unsignedness of the type.
3233 * tree.h (add_double): Macroize.
3234 (add_double_with_sign): New prototype.
3235 (mul_double): Macroize.
3236 (mul_double_with_sign): New prototype.
3238 2006-10-19 Chen Liqin <liqin@sunnorth.com.cn>
3240 * config/score/crti.asm: New file.
3241 * config/score/crtn.asm: New file.
3242 * config/score/elf.h: New file.
3243 * config/score/mac.md: New file.
3244 * config/score/misc.md: New file.
3245 * config/score/mul-div.S: New file.
3246 * config/score/predicates.md: New file.
3247 * config/score/score7.md: New file.
3248 * config/score/score.c: New file.
3249 * config/score/score-conv.h: New file.
3250 * config/score/score.h: New file.
3251 * config/score/score.md: New file.
3252 * config/score/score-mdaux.c: New file.
3253 * config/score/score-mdaux.h: New file.
3254 * config/score/score-modes.def: New file.
3255 * config/score/score.opt: New file.
3256 * config/score/score-protos.h: New file.
3257 * config/score/score-version.h: New file.
3258 * config/score/t-score-elf: New file.
3259 * config.gcc: Add score*-*-* configurations(Update before).
3260 * doc/invoke.texi (Score Options): New section.
3261 * doc/md.texi (Score family): New section to document constraints.
3263 2006-10-19 Nick Clifton <nickc@redhat.com>
3265 * config/arm/arm.c: Fix spelling typo.
3267 2006-10-18 Tom Tromey <tromey@redhat.com>
3269 * doc/install.texi (Prerequisites): Mention automake 1.9.6.
3271 2006-10-18 Jan Hubicka <jh@suse.cz>
3274 * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
3277 2006-10-18 Marcin Dalecki <martin@dalecki.de>
3279 * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
3280 TSI_SAME_STMT, since that's the desired entity.
3282 2006-10-17 Wolfgang Gellerich <gellerich@de.ibm.com>
3284 * config/s390/contraints.md: New file.
3285 * config/s390/s390-protos.h (s390_mem_constraint,
3286 s390_O_constraint_str, s390_N_constraint_str,
3287 s390_float_const_zero_p): Function prototypes added.
3288 * config/s390/s390.c (s390_extra_constraint_str,
3289 s390_const_double_ok_for_constraint_p,
3290 s390_const_ok_for_constraint_p): Functions removed.
3291 (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
3292 s390_float_const_zero_p): New functions.
3293 * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
3294 CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
3295 EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
3296 Macro definitions removed.
3297 (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
3298 s390_extra_constraint_str): Functions removed.
3300 2006-10-17 Andrew Pinsiki <pinskia@gmail.com>
3301 Richard Sandiford <richard@codesourcery.com>
3304 * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
3305 * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
3307 2006-10-16 Geoffrey Keating <geoffk@apple.com>
3309 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
3310 (DWARF2_FRAME_REG_OUT): Likewise.
3311 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
3312 (DWARF2_FRAME_REG_OUT): Likewise.
3314 2006-10-17 Paul Brook <paul@codesourcery.com>
3316 * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
3318 2006-10-16 Brooks Moses <bmoses@stanford.edu>
3320 * doc/contrib.texi, doc/install.texi, doc/standards.texi:
3321 Standardize on "GNU Fortran" as the official name of the Fortran
3324 2006-10-16 Mike Stump <mrs@apple.com>
3326 * doc/invoke.texi (Darwin Options): Document -mkernel.
3327 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
3329 (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support. Add
3330 SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
3331 (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
3332 (OS_MISSING_ALTIVEC): Add.
3333 * config/i386/i386.c (override_options): Add
3334 SUBSUBTARGET_OVERRIDE_OPTIONS callout.
3335 * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
3336 -mkernel, -static or -mdynamic-no-pic is given.
3337 (C_COMMON_OVERRIDE_OPTIONS): Add.
3338 * config/darwin.opt (fapple-kext): Add.
3340 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
3341 -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
3343 (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
3344 (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
3345 (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
3346 (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
3347 (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
3348 (flag_mkernel): Add.
3349 (flag_apple_kext): Add.
3350 (TARGET_KEXTABI): Add.
3351 * config/darwin.c (darwin_handle_kext_attribute): Add.
3352 (DARWIN_VTABLE_P): Add.
3353 (darwin_binds_local_p): Add partial support for rebinding vtables
3355 (darwin_kextabi_p): Add.
3356 (darwin_override_options): Add.
3357 * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
3358 (darwin_kextabi_p): Add.
3359 (darwin_override_options): Add.
3360 * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
3361 __DYNAMIC__ and __STATIC__ here.
3363 2006-10-16 Brooks Moses <bmoses@stanford.edu>
3365 * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
3366 Added mention of "make pdf" target, and Texinfo requirements for
3369 2006-10-16 DJ Delorie <dj@redhat.com>
3371 * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
3372 into the GOT in case we need a subreg of the address.
3374 2006-10-16 Richard Guenther <rguenther@suse.de>
3377 * doc/extend.texi (X86 Built-in Functions): Fix typos in
3378 SSE builtin documentation. Document SSE2 builtins.
3380 2006-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3382 * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
3383 symbol in the output file for non-shared links when -nostdlib or
3384 -nodefaultlibs isn't specified.
3386 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
3387 posix thread support.
3389 2006-10-15 Jan Hubicka <jh@suse.cz>
3392 * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
3393 declared always_inline even when not inlining.
3395 2006-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
3396 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3397 Andrew Pinski <pinskia@gmail.com>
3400 * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
3402 2006-10-15 Jan Hubicka <jh@suse.cz>
3403 Richard Guenther <rguenther@suse.de>
3406 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
3407 process_function_and_variable_attributes on all variables, including
3408 those discovered during cgraph construction phase.
3410 2006-10-15 Bernhard Fischer <aldot@gcc.gnu.org>
3412 * final.c: Update Copyright year. Commentary typo fix. Fix whitespace