1 2006-11-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3 * builtins.c (integer_valued_real_p): Handle fmin/fmax.
4 (fold_builtin_fmin_fmax): New.
5 (fold_builtin_1): Use it.
7 * fold-const.c (fold_strip_sign_ops): Handle copysign.
9 2006-11-18 Richard Guenther <rguenther@suse.de>
11 * config/i386/i386.c (ix86_builtins): New array for ix86
12 builtin function decls.
13 (def_builtin): New function.
14 (def_builtin_const): Likewise.
15 (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const.
17 2006-11-18 Vladimir Makarov <vmakarov@redhat.com>
19 * doc/invoke.texi (core2): Add item.
21 * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New
23 (TARGET_CPU_CPP_BUILTINS): Add code for core2.
24 (TARGET_CPU_DEFAULT_generic): Change value.
25 (TARGET_CPU_DEFAULT_NAMES): Add core2.
26 (processor_type): Add new constant PROCESSOR_CORE2.
28 * config/i386/i386.md (cpu): Add core2.
30 * config/i386/i386.c (core2_cost): New initialized variable.
32 (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
33 x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop,
34 x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
35 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
36 x86_partial_reg_dependency, x86_memory_mismatch_stall,
37 x86_accumulate_outgoing_args, x86_prologue_using_move,
38 x86_epilogue_using_move, x86_arch_always_fancy_math_387,
39 x86_sse_partial_reg_dependency, x86_rep_movl_optimal,
40 x86_use_incdec, x86_four_jump_limit, x86_schedule,
41 x86_pad_returns): Add m_CORE2.
42 (override_options): Add entries for Core2.
43 (ix86_issue_rate): Add case for Core2.
45 2006-11-18 Aldy Hernandez <aldyh@redhat.com>
47 * doc/invoke.texi: Fix mno-isel typo.
49 2006-11-18 Joseph Myers <joseph@codesourcery.com>
51 * config/rs6000/spe.md (movv4hi_internal): Add alternative for
52 easy vector constant loads.
54 2006-11-18 Joseph Myers <joseph@codesourcery.com>
56 * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
57 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
58 __NO_LWSYNC__ if TARGET_NO_LWSYNC.
59 * config/rs6000/sync.md (lwsync): Emit plain sync if
62 2006-11-17 DJ Delorie <dj@redhat.com>
64 * reload1.c (reloads_unique_chain): New.
65 (reloads_conflict): Call it.
67 2006-11-17 Bob Wilson <bob.wilson@acm.org>
69 * config/xtensa/predicates.md (addsubx_operand): New.
70 * config/xtensa/xtensa.c (xtensa_emit_branch): New.
71 (xtensa_emit_bit_branch): New.
72 (xtensa_emit_movcc): New.
73 * config/xtensa/xtensa.md (any_minmax): New code macro.
74 (minmax): New code attribute.
75 (any_cond, any_scc, any_scc_sf): New code macros.
76 (*addx2, *addx4, *addx8): Delete.
78 (*subx2, *subx4, *subx8): Delete.
80 (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro.
81 (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond.
82 (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch.
83 (*bittrue, *bitfalse): Use xtensa_emit_bit_branch.
84 (seq, sne, sgt, sge, slt, sle): Use any_scc macro.
85 (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc.
86 (movsfcc_internal0, movsfcc_internal1): Likewise.
87 (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro.
88 * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New.
89 (xtensa_emit_bit_branch): New.
90 (xtensa_emit_movcc): New.
91 (function_arg_boundary): Add missing prototype.
93 2006-11-17 Bob Wilson <bob.wilson@acm.org>
95 * config/xtensa/xtensa.md (tstsi): Delete
97 2006-11-17 Bob Wilson <bob.wilson@acm.org>
99 * config/xtensa/xtensa.md (entry): Do not emit .frame directive.
101 2006-11-17 Bob Wilson <bob.wilson@acm.org>
103 * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
105 2006-11-17 Bob Wilson <bob.wilson@acm.org>
107 * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit.
109 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
111 * tree-vrp.c (execute_vrp): Do not update current_loops.
112 * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with.
113 * doc/loop.texi: Remove documentation for cancelled functions.
114 * tree-ssa-loop-im.c (loop_commit_inserts): Removed.
115 (move_computations, determine_lsm): Use bsi_commit_edge_inserts
117 * cfgloopmanip.c (remove_bbs): Do not update loops explicitly.
118 (remove_path): Ensure that in delete_basic_blocks, the loops
120 (add_loop): Work on valid loop structures.
121 (loopify): Modify call of add_loop.
122 (mfb_update_loops): Removed.
123 (create_preheader): Do not update loops explicitly.
124 (force_single_succ_latches, loop_version): Do not use
125 loop_split_edge_with.
126 (loop_split_edge_with): Removed.
127 * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions):
128 Do not use bsi_insert_on_edge_immediate_loop.
129 (split_loop_exit_edge, tree_unroll_loop): Do not use
130 loop_split_edge_with.
131 (bsi_insert_on_edge_immediate_loop): Removed.
132 * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops. Do not
133 use loop_split_edge_with.
134 * cfghooks.c: Include cfgloop.h.
135 (verify_flow_info): Verify that loop_father is filled iff current_loops
137 (redirect_edge_and_branch_force, split_block, delete_basic_block,
138 split_edge, merge_blocks, make_forwarder_block, duplicate_block):
140 * cfgloopanal.c (mark_irreducible_loops): Work if the function contains
142 * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use
143 loop_split_edge_with.
144 (sms_schedule): Use current_loops.
145 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops.
146 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set
148 (rtl_loop_init, rtl_loop_done): Do not set current_loops.
149 * tree-ssa-sink.c (execute_sink_code): Use current_loops.
150 * ifcvt.c (if_convert): Ditto.
151 * predict.c (predict_loops): Do not clear current_loops.
152 (tree_estimate_probability): Use current_loops.
153 (propagate_freq): Receive head of the region to propagate instead of
155 (estimate_loops_at_level): Do not use shared to_visit bitmap.
156 (estimate_loops): New function. Handle case current_loops == NULL.
157 (estimate_bb_frequencies): Do not allocate tovisit. Use
159 * tree-ssa-loop.c (current_loops): Removed.
160 (tree_loop_optimizer_init): Do not return loops.
161 (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops.
162 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1,
163 slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge):
164 Do not update loops explicitly.
165 * function.h (struct function): Add x_current_loops field.
166 (current_loops): New macro.
167 * tree-if-conv.c (combine_blocks): Do not update loops explicitly.
168 * loop-unroll.c (split_edge_and_insert): New function.
169 (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not
170 use loop_split_edge_with.
171 * loop-doloop.c (add_test, doloop_modify): Ditto.
172 * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops.
173 * cfglayout.c (copy_bbs): Do not update loops explicitly.
174 * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with.
175 * tree-vect-transform.c (vect_transform_loop): Do not update loops
177 * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order.
178 (flow_loops_free): Do not free dfs_order and rc_order.
179 (flow_loops_find): Do not set dfs_order and rc_order in loops
180 structure. Do not call loops and flow info verification.
181 (add_bb_to_loop, remove_bb_from_loops): Check whether the block
182 already belongs to some loop.
183 * cfgloop.h (struct loops): Remove struct cfg.
184 (current_loops, loop_split_edge_with): Declaration removed.
185 (loop_optimizer_init, loop_optimizer_finalize): Declaration changed.
186 * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop):
188 * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency.
189 * basic-block.h (split_edge_and_insert): Declare.
190 * tree-cfg.c (remove_bb): Do not update loops explicitly.
192 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
194 PR tree-optimization/29801
195 * tree-ssa-ccp.c (get_symbol_constant_value): New function.
196 (get_default_value): Use get_symbol_constant_value.
197 (set_lattice_value): ICE when the value of the constant is
199 (visit_assignment): Ignore VDEFs of read-only variables.
201 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
203 * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix
205 (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
206 vect_gen_niters_for_prolog_loop): Fold the emited expressions.
208 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
210 * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to
211 select subvars of var.
213 2006-11-17 Jakub Jelinek <jakub@redhat.com>
216 * tree-ssa-forwprop.c (simplify_switch_expr): Don't
217 optimize if DEF doesn't have integral type.
219 2006-11-16 Mike Stump <mrs@apple.com>
221 * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on
222 pre-darwin9 system, unless the user asks for it directly.
223 (PREFERRED_DEBUGGING_TYPE): Likewise.
224 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise.
225 * config.gcc: Add suppport for darwin9.h.
226 * config/darwin9.h: Add.
227 * doc/install.texi (Specific): Clarify darwin documentation.
229 2006-11-16 Richard Earnshaw <rearnsha@arm.com>
231 * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when
234 2006-11-16 Mike Stump <mrs@apple.com>
236 * Makefile.in (targhooks.o): Add $(OPTABS_H).
238 2006-11-16 Dirk Mueller <dmueller@suse.de>
240 * tree-vrp.c (get_value_range): Use XCNEW instead
242 (insert_range_assertions): Use XCNEWVEC instead
243 of XNEWVEC and memset.
244 (vrp_initialize): Same.
245 (vrp_finalize): Same.
246 * tree-ssa-ccp.c (ccp_initialize): Same.
247 * predict.c (tree_bb_level_predictions): Same.
248 * calls.c (expand_call): Same.
249 * tree-ssa-copy.c (init_copy_prop): Same.
250 (fini_copy_prop): Same.
251 * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead
252 of GGC_NEW and memset.
254 2006-11-16 Eric Botcazou <ebotcazou@adacore.com>
257 * gimplify.c (gimplify_expr): Only force a load for references to
258 non-BLKmode volatile values.
259 * doc/implement-c.texi (Qualifiers implementation): Document the
260 interpretation of what a volatile access is.
261 * doc/extend.texi (C++ Extensions): Rework same documentation.
263 2006-11-16 Joseph Myers <joseph@codesourcery.com>
265 * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
268 2006-11-16 Richard Earnshaw <rearnsha@arm.com>
270 * arm.md (abssi2): Allow Thumb as well. Use an SImode scratch for
272 (arm_neg_abssi2): Renamed from neg_abssi2.
273 (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters.
275 2006-11-16 Uros Bizjak <ubizjak@gmail.com>
277 * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
278 number of arguments passed to local functions in SSE registers is 3.
280 * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
281 number of arguments passed in SSE registers to 3.
283 2006-11-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
286 * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
288 (get_last_bb_insn): ... new global function.
289 (basic_block.h): Declare it.
290 * haifa-sched.c (create_recovery_block): Use it.
292 2006-11-15 H.J. Lu <hongjiu.lu@intel.com>
295 * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert.
297 2006-11-15 Paul Brook <paul@codesourcery.com>
299 * config/arm/unwind-arm.c (_Unwind_GetDataRelBase,
300 _Unwind_GetTextRelBase): Move from here ...
301 * config/arm/pr-support.c (_Unwind_GetDataRelBase,
302 _Unwind_GetTextRelBase): ... To here.
304 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
306 * tree-ssa-loop-ivopts.c (get_address_cost): Make sure memory
307 addresses we generate for testing are aligned.
309 2006-11-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
312 * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
313 to what is the const decl is a place holder for.
315 2006-11-15 Uros Bizjak <ubizjak@gmail.com>
317 * config/i386/i386.opt: New target option -mx87regparm.
319 * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno
320 and float_in_x87 variables. mmx_words, sse_words: Remove.
321 (X87_REGPARM_MAX): Define.
323 * config/i386/i386.c (override_options): Error out for
324 -mx87regparm but no 80387 support.
325 (ix86_attribute_table): Add x87regparm.
326 (ix86_handle_cconv_attribute): Update comments for x87regparm.
327 (ix86_comp_type_attributes): Check for mismatched x87regparm types.
328 (ix86_function_x87regparm): New function.
329 (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
331 (init_cumulative_args): Initialize x87_nregs and float_in_x87
333 (function_arg_advance): Process x87_nregs and x87_regno when
334 floating point argument is to be passed in 80387 register.
335 (function_arg): Pass XFmode arguments in 80387 registers for local
336 functions. Pass SFmode and DFmode arguments to local functions
337 in 80387 registers when flag_unsafe_math_optimizations is set.
339 * reg-stack.c (convert_regs_entry): Disable NaN load for
340 stack registers that are used for argument passing.
342 * doc/extend.texi: Document x87regparm function attribute.
343 * doc/invoke.texi: Document -mx87regparm.
345 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
347 * tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype.
348 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New
349 arg MODE; all callers changed. Use it to determine validity per
350 machine mode instead of using Pmode for all memory references.
351 (get_address_cost): Likewise add and use new arg MEM_MODE.
353 2006-11-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
354 J"orn Rennecke <joern.rennecke@st.com>
356 * combine.c (likely_spilled_retval_1): Fix masking operation.
357 (likely_spilled_retval_p): Use proper pattern for call to
358 likely_spilled_retval_1.
360 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
362 * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting.
364 * config/bfin/bfin.c (legitimize_pic_address): Lose dead code
365 that tests for CONSTANT_POOL_ADDRESS_P.
367 2006-11-15 Jakub Jelinek <jakub@redhat.com>
369 PR tree-optimization/29581
370 * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
371 REPLACEMENTS, FIRSTBSI arguments. If initial condition or
372 type is different between Y and USE, create a temporary
373 variable, initialize it at the beginning of the body bb
374 and use it as replacement instead of Y.
376 2006-11-15 Paolo Bonzini <bonzini@gnu.org>
379 * gimplify.c (fold_indirect_ref_rhs): Use
380 STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
382 2006-11-14 Richard Earnshaw <rearnsha@arm.com>
384 * expmed.c (emit_store_flag_1): New function.
385 (emit_store_flag): Call it. If we can't find a suitable scc insn,
387 * expr.c (do_store_flag): If we can't find a scc insn, try cstore.
388 Use do_compare_rtx_and_jump.
389 * arm.h (BRANCH_COST): Increase to 2 on Thumb.
390 * arm.md (cstoresi4): New define_expand.
391 (cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise.
392 (cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns.
393 (cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns.
395 2006-11-14 Caroline Tice <ctice@apple.com>
397 * dwarf2out.c (debug_pubtypes_section): New static global variable.
398 (pubname_entry): Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for
400 (pubname_table): Redefine as a vector.
401 (pubtype_table): New static global variable, defined as a vector.
402 (pubname_table_allocated): Remove static global variable.
403 (pubname_table_in_use): Remove static global variable.
404 (PUBNAME_TABLE_INCREMENT): Remove constant.
405 (size_of_pubnames): Add parameter to deal with either pubnames or
406 pubtypes, and change code to deal with table being a vector.
407 (add_pubname): Change to deal with table being a vector.
408 (add_pubtype): New function.
409 (output_pubnames): Add parameter to deal with either pubnames or
410 pubtypes, and change code to deal with table being a vector.
411 (gen_array_type_die): Add call to add_pubtype.
412 (gen_enumeration_type_die): Add call to add_pubtype.
413 (gen_struct_or_union_type_die): Add call to add_pubtype.
414 (gen_subroutine_type_die): Add call to add_pubtype.
415 (gen_typedef_die): Add call to add_pubtype.
416 (dwarf2out_init): Add code to initialize pubname_table and
417 pubtype_table vectors; also initialize debug_pubtypes_section.
418 (prune_unused_types): Change to deal with pubnames being a vector.
419 (dwarf2out_finish): Change to deal with pubnames being a vector; add
420 pubnames table to call to output_pubnames; Add code to output pubtypes
421 table if DEBUG_PUBTYPES_SECTION is defined.
422 * config/darwin.c (darwin_file_start): Add DEBUG_PUBTYPES_SECTION to
424 * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable.
426 2006-11-14 Joseph Myers <joseph@codesourcery.com>
428 * config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust
429 iwmmxt_nregs if TARGET_IWMMXT_ABI.
430 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
431 movv2si_internal): Support moves between core registers.
433 2006-11-14 Eric Christopher <echristo@apple.com>
435 * configure: Regenerate with autoconf 2.59.
437 2006-11-14 Daniel Berlin <dberlin@dberlin.org>
439 Fix PR tree-optimization/27755
441 * tree-ssa-pre.c: Update comments.
442 (bb_bitmap_sets): Add pa_in and deferred member.
443 (BB_DEFERRED): New macro.
444 (maximal_set): New variable.
445 (pre_stats): Add pa_insert member.
446 (bitmap_set_and): Short circuit orig == dest.
447 (bitmap_set_subtract_values): New function.
448 (bitmap_set_contains_expr): Ditto.
449 (translate_vuses_through_block): Add phiblock argument.
450 (dependent_clean): New function.
451 (compute_antic_aux): Update for maximal_set changes.
452 (compute_partial_antic_aux): New function.
453 (compute_antic): Handle partial anticipation.
454 (do_partial_partial_insertion): New function.
455 (insert_aux): Handle partial anticipation.
456 (add_to_sets): Add to maximal set.
457 (compute_avail): Ditto.
458 (init_pre): Initialize maximal_set.
459 (execute_pre): Do partial anticipation if -O3+.
461 2006-11-14 Paolo Bonzini <bonzini@gnu.org>
463 PR rtl-optimization/29798
465 * fwprop.c (use_killed_between): Check that DEF_INSN dominates
466 TARGET_INSN before any other check.
467 (fwprop_init): Always calculate dominators.
468 (fwprop_done): Always free them.
470 2006-11-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
472 * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and
475 2006-11-13 DJ Delorie <dj@redhat.com>
477 * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
478 temporary for intermediates.
480 2006-11-13 Kaz Kojima <kkojima@gcc.gnu.org>
482 * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
483 (sh_optimize_target_register_callee_saved): #if 0 the code
484 using NOTE_INSN_LOOP_{BEG,END}.
486 2006-11-13 Roger Sayle <roger@eyesopen.com>
488 * fold-const.c (optimize_bit_field_compare): Recursively call
489 fold when simplifying non-constant comparisons between bit-fields.
491 2006-11-13 Jakub Jelinek <jakub@redhat.com>
493 * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
495 * configure: Rebuilt.
497 2006-11-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
499 * config/rs6000/cell.md: New file.
500 * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
502 (ppccell_cost): New cost matrix.
503 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
504 (rs6000_override_options): Set rs6000_always_hint to false
505 for cell. Also align functions/lables/loops to 8byte
506 for the Cell. Use PROCESSOR_CELL.
507 (rs6000_emit_epilogue): Rename using_mfcr_multiple to
509 (rs6000_variable_issue): If the insn is a nonpipelined instruction
510 on the Cell, return 0.
511 (rs6000_adjust_cost): Add Cell cost adjustments.
512 (is_microcoded_insn): Return true for Cell microcoded
514 (is_nonpipeline_insn): New function.
515 (rs6000_issue_rate): Add PROCESSOR_CELL.
516 (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
518 (rs6000_use_sched_lookahead_guard): New function.
519 (rs6000_sched_reorder): Reorder the ready list, if the second
520 to last ready insn is a nonepipeline insn on the Cell.
521 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
522 (ASM_CPU_SPEC): Add Cell.
523 * config/rs6000/rs6000.md (cpu): Add Cell.
524 (cell_micro): New Attr.
527 2006-11-13 Jakub Jelinek <jakub@redhat.com>
529 * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
531 * configure: Rebuilt.
533 2006-11-13 Richard Guenther <rguenther@suse.de>
535 * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
537 (ix86_expand_lfloorceil): Likewise.
538 (ix86_expand_rint): Likewise.
539 (ix86_expand_floorceildf_32): Likewise.
540 (ix86_expand_floorceil): Likewise.
541 (ix86_expand_rounddf_32): Likewise.
542 (ix86_expand_truncdf_32): Likewise.
543 (ix86_expand_round): Likewise.
545 2006-11-13 Carlos O'Donell <carlos@codesourcery.com>
546 Mark Mitchell <mark@codesourcery.com>
548 * gcc.c: Organize search path variables into $prefix relative,
549 and well-known native. Add comments.
550 (add_sysrooted_prefix): Add comment.
551 (process_command): If !gcc_exec_prefix add $prefix based paths.
552 If *cross_compile == '0', add native well-known paths.
553 Assert tooldir_base_prefix is always relative.
554 (main): If print_search_dirs, and if gcc_exec_prefix is set,
555 use this value for 'install:' path.
556 * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
558 2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
560 * config/i386/i386.c: Fix a typo in comment.
562 2006-11-13 Michael Matz <matz@suse.de>
564 * genemit.c (gen_expand): Allocate enough memory.
566 2006-11-13 Joseph Myers <joseph@codesourcery.com>
568 * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
569 __GXX_TYPEINFO_EQUALITY_INLINE but not
570 __GXX_MERGED_TYPEINFO_NAMES.
571 * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
572 __GXX_MERGED_TYPEINFO_NAMES.
573 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
574 __GXX_TYPEINFO_EQUALITY_INLINE.
576 2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
577 Zdenek Dvorak <dvorakz@suse.cz>
579 PR tree-optimization/29680
580 * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
583 2006-11-12 Jason Merrill <jason@redhat.com>
584 Andrew Pinski <pinskia@physics.uc.edu>
587 * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
589 * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
591 * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
592 * tree.c (build_vector): Handle non-_CST elements.
594 2006-11-12 Kaz Kojima <kkojima@gcc.gnu.org>
596 * genemit.c (gen_insn): Call gen_exp with a non-null used
597 when handling multiple insns.
598 (gen_expand): Likewise.
599 * reorg.c (emit_delay_sequence): Copy the delay slot insn.
600 * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
601 (movsi_const_16bit+1): Copy operands[1].
602 (call_pcrel): Copy the call_site pattern.
603 (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
605 2006-11-12 Roger Sayle <roger@eyesopen.com>
607 * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
608 condition for transformations. Use !HONOR_SIGN_DEPENDENT_ROUNDING
609 && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
610 (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
612 2006-11-12 Daniel Berlin <dberlin@dberlin.org>
614 Fix PR tree-optimization/29587
615 * tree-ssa-structalias.c (process_constraint): Don't
616 mark address taken due only to escaped vars constraint.
618 2006-11-12 Michael Matz <matz@suse.de>
619 Roger Sayle <roger@eyesopen.com>
621 PR rtl-optimization/29797
622 * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
623 BITS_BIG_ENDIAN targets.
625 2006-11-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
627 * builtins.c (fold_builtin_cosh): New.
628 (fold_builtin_1): Use it.
629 * fold-const.c (negate_mathfn_p): Add llround, lround, round,
630 trunc to the list of "odd" functions. Also add llrint, lrint,
631 rint and nearbyint when flag_rounding_math is false.
633 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
635 * tree-flow.h (name_mappings_registered_p): Declare.
636 * tree-into-ssa.c (name_mappings_registered_p): New function.
637 * tree-cfg.c (tree_can_merge_blocks_p): Check
638 name_mappings_registered_p instead of need_ssa_update_p.
640 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
642 * tree-ssa-loop.c (tree_vectorize): Return the result of
644 * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
646 * tree-vectorizer.h (vectorize_loops): Declaration removed.
647 * tree-flow.h (vectorize_loops): Declaration changed.
649 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
651 * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
653 (issue_prefetch_ref): Move assignment to write_p out of loop.
654 (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
655 SIMULTANEOUS_PREFETCHES into account.
656 (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
657 * lambda-code.c (lcm): Renamed to ...
658 (least_common_multiple): ... and exported.
659 * tree-flow.h (least_common_multiple): Declare.
661 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
663 * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
664 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Follow
665 ud-chains. Handle AND_EXPR.
666 (record_estimate): Record whether the estimate is realistic
667 and whether it is derived from a loop exit.
668 (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
669 infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
671 (compute_estimated_nb_iterations): Take only realistic bounds into
672 account. Set estimate_state. Use double_ints.
673 (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
674 and infer_loop_bounds_from_signedness. Do not consider basic blocks
675 that do not have to be always executed.
676 (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
677 to determine whether to call infer_loop_bounds_from_undefined
678 and compute_estimated_nb_iterations.
679 (n_of_executions_at_most): Use double_ints.
680 (free_numbers_of_iterations_estimates_loop): Set estimate_state.
681 (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
682 * double-int.c (double_int_to_tree): Improve comment.
683 (double_int_fits_to_tree_p): New function.
684 * double-int.h (double_int_fits_to_tree_p): Declare.
685 * tree-data-ref.c: Include langhooks.h.
686 (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
687 (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
688 (analyze_array): Do not pass estimate_only argument to
689 analyze_array_indexes.
690 (get_number_of_iters_for_loop): Build tree from the stored double_int
692 (get_references_in_stmt, find_data_references_in_stmt): New functions.
693 (find_data_references_in_loop): Use find_data_references_in_stmt.
694 * tree-data-ref.h (struct data_ref_loc_d): New.
695 (get_references_in_stmt): Declare.
696 (estimate_iters_using_array): Declaration removed.
697 * cfgloop.h (struct nb_iter_bound): Change type of bound to
698 double_int. Improve comments. Add is_exit and realistic
700 (struct loop): Changed type of estimated_nb_iterations to double_int.
701 Added estimate_state field.
702 (record_estimate): Declaration removed.
704 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
706 * params.c (set_param_value): Initialize the "set" field.
707 * params.h (struct param_info): Add "set" field.
708 (PARAM_SET_P): New macro.
709 (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
710 L1_CACHE_LINE_SIZE): New macros.
711 * toplev.c (DEFPARAM): Initialize the "set" field.
712 * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
713 SIMULTANEOUS_PREFETCHES): Removed.
714 (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
715 (tree_ssa_prefetch_arrays): Dump the values of the parameters.
716 * config/sparc/sparc.c: Include params.h.
717 (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
718 L1_CACHE_LINE_SIZE parameters.
719 * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
721 * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
723 * config/i386/i386.c: Include params.h.
724 (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
725 (override_options): Set SIMULTANEOUS_PREFETCHES and
726 L1_CACHE_LINE_SIZE parameters.
727 * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
728 (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
729 L1_CACHE_LINE_SIZE parameters.
730 * config/ia64/ia64.c (ia64_optimization_options): Set
731 SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
732 * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
734 * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
735 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
736 * doc/invoke.texi: Document new params.
738 2006-11-12 Roger Sayle <roger@eyesopen.com>
740 PR tree-optimization/13827
741 * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
744 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
746 * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
747 update_single_exit_for_duplicated_loops): New functions.
748 (duplicate_loop_to_header_edge): Use
749 update_single_exit_for_duplicated_loops.
750 * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
751 functions only with ENABLE_CHECKING.
753 2006-11-12 Andreas Schwab <schwab@suse.de>
755 * except.c (sjlj_emit_function_enter): Remove unused variable.
757 2006-11-11 Roger Sayle <roger@eyesopen.com>
759 * fold-const.c (int_binop_types_match_p): New function.
760 (size_binop): Relax constraint that both arguments must both have
761 exactly the same sizetype type. Instead use int_binop_types_match_p.
762 (size_diffop): Likewise.
764 (make_range): Use build_int_cst instead of fold_convert.
765 (fold_cond_expr_with_comparison): Use build_int_cst to construct
766 integer constants of the correct type.
767 (fold_div_compare): Likewise.
768 (fold_single_bit_test): Likewise.
769 (fold_binary): Likewise.
770 * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
771 has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
773 2006-11-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
776 * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
777 non null value if the struct memory access is in the 0th
780 2006-11-12 Jie Zhang <jie.zhang@analog.com>
783 2006-11-11 Jie Zhang <jie.zhang@analog.com>
784 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
787 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
788 instead of builtin_define for bfin and BFIN.
790 2006-11-11 Jie Zhang <jie.zhang@analog.com>
792 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
795 2006-11-11 Jan Hubicka <jh@suse.cz>
797 * extended.texi (__builtin_expect): We no longer require second argument
799 * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
800 * builtins.c (expand_builtin_expect): Simplify.
801 (expand_builtin_expect_jump): Kill.
802 * final.c (final_scan_insn): Do not skip the removed notes.
803 * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
804 EXPECTED_VALUE): Remove.
805 * dojump.c (do_jump): Do not care about __builtin_expect.
806 * predict.c (expected_value_to_br_prob): Kill.
807 * function.c (expand_function_end): Do not expand
808 NOTE_INSN_REPEATED_LINE_NUMBER.
809 * print-rtl.c (print_rtx): Do not pretty print the removed notes.
810 * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
811 * cfgexpand.c (add_reg_br_prob_note): Export.
812 * cfgcleanup.c (rest_of_handle_jump2): Do not call
813 expected_value_to_br_prob.
814 * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
815 * rtl.h (add_reg_br_prob_note): Declare.
817 2006-11-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
819 * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
821 2006-11-11 Jan Hubicka <jh@suse.cz>
823 * predict.c (predict_loops): Kill RTL variant.
825 2006-11-11 Jan Hubicka <jh@suse.cz>
827 * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
828 * modulo-sched.c (find_line_note): Remove.
829 (loop_canon_p): Do not worry about line number notes.
830 (sms_schedule): Likewise.
831 * cse.c (cse_main): Likewise.
832 * regmove.c (fixup_match_1): Likewise
833 * function.c (emit_return_info_block): Likewise.
834 (expand_function_end): Likewise.
835 (thread_prologue_an_epilogue_insns): Likewise.
836 * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
838 * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
839 emit_note_copy_after): Kill.
840 (emit_note_copy): Do not worry about line numbers.
841 * jump.c (purge_line_number_notes): Kill.
842 (pass_purge_lineno_notes): Kill.
843 * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
845 * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
846 * passes.c (init_optimization_passes): Don't purge_lineno_notes.
847 * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
848 * tree-pass.h (pass_purge_lineno_notes): Kill.
849 * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
850 rm_redundant_line_notes.
851 * sched-rgb.c (schedule_region): Don't rm_line_notes,
852 rm_redundant_line_notes.
853 * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
854 * haifa-sched.c: Update comment about handling notes.
855 (unlink_line_notes): Kill.
856 (rm_line_notes): Kill.
857 (save_line_notes): Simplify.
858 (rm_redundant_line_notes): Kill.
860 2006-11-11 Richard Guenther <rguenther@suse.de>
862 * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
863 Remove unused tree codes.
864 * tree-vrp.c (extract_range_from_unary_expr): Remove handling
865 of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
866 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
867 * tree.c (stabilize_reference): Likewise.
868 * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
869 fold_unary): Likewise.
870 * tree-gimple.c (is_gimple_cast): Likewise.
871 * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
872 * expr.c (expand_expr_real_1): Likewise.
873 * tree-eh.c (tree_could_trap_p): Likewise.
874 * gimplify.c (gimplify_expr): Likewise.
875 * tree-inline.c (estimate_num_insns_1): Likewise.
876 * tree-cfg.c (verify_expr): Likewise.
878 2006-11-11 Zdenek Dvorak <dvorakz@suse.cz>
880 * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
881 * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
882 (tree_ssa_prefetch_arrays): Do not dump for removed loops.
884 2006-11-11 Richard Sandiford <richard@codesourcery.com>
887 * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
888 constraints accept neither registers or memories.
890 2006-11-11 Jie Zhang <jie.zhang@analog.com>
892 * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
893 (NO_PROFILE_COUNTERS): Define as 1.
895 2006-11-10 Roger Sayle <roger@eyesopen.com>
897 * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
898 Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
900 2006-11-10 Peter Bergner <bergner@vnet.ibm.com>
902 * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
904 2006-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
906 * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
907 (fold_builtin_hypot): Likewise.
908 * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
910 * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
912 2006-11-10 Roger Sayle <roger@eyesopen.com>
914 * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
915 when attempting to build INTEGER_CSTs of non-integral types.
916 * expmed.c (make_tree): Use the correct type, i.e. the inner
917 type, when constructing the individual elements of a CONST_VECTOR.
919 2006-11-10 Jan Hubicka <jh@suse.cz>
921 * cse.c (cse_process_notes): Copy the propagated value.
922 * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
924 * gcse.c (try_replace_reg): Copy the replacement.
925 * i386.c (emit_i387_cw_initialization): Copy stored_mode.
926 (assign_386_stack_local): Always return copied memory expression
927 * function.c (instantiate_virtual_regs_in_insn): Copy the operand
930 2006-11-10 Jan Hubicka <jh@suse.cz>
932 * final.c (final): Walk from first instruction.
933 * cfglayout.c (insn_locators_initialize): Remove line number notes.
935 2006-11-10 Uros Bizjak <ubizjak@gmail.com>
938 * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
940 (umulv8hi3_highpart): Ditto.
941 (vec_widen_smult_hi_v8hi): New expander.
942 (vec_widen_smult_lo_v8hi): Ditto.
944 2006-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
947 * builtins.c (do_mpfr_arg3): New.
948 (fold_builtin_1): Handle builtins fma, fmin and fmax.
950 2006-11-09 Eric Christopher <echristo@apple.com>
955 * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
956 * config.gcc (powerpc64-*-darwin*): New target.
957 * config.host: Ditto.
958 * config/rs6000/darwin64.h: New file.
959 * config/rs6000/x-darwin64: Ditto.
960 * config/rs6000/host-ppc64-darwin.c: Ditto.
962 2006-11-09 Steve Ellcey <sje@cup.hp.com>
964 * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode
965 routines for integer division.
967 2006-11-09 Daniel Jacobowitz <dan@codesourcery.com>
969 * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
971 2006-11-09 Serge Belyshev <belyshev@depni.sinp.msu.ru>
974 * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
976 2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
978 * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
979 simplify_subreg with BLKmode outer mode.
981 2006-11-08 Brooks Moses <brooks.moses@codesourcery.com>
983 * doc/invoke.texi: Minor formatting fixes in option lists.
985 2006-11-08 Zdenek Dvorak <dvorakz@suse.cz>
987 PR tree-optimization/29738
988 * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
989 (ccp_lattice_t): Remove UNKNOWN_VAL.
990 (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
991 Do not handle UNKNOWN_VAL.
992 (get_default_value): Set initial value of virtual operands to
994 (get_value): Always use get_default_value on uninitialized
996 (set_value_varying, surely_varying_stmt_p): New functions.
997 (set_lattice_value): Do not pass argument to get_value.
998 Do not handle UNKNOWN_VAL.
999 (likely_value): Follow the semantics described in the comment.
1000 (ccp_initialize): Use surely_varying_stmt_p. Do not mark
1001 phi nodes DONT_SIMULATE_AGAIN.
1002 (ccp_fold): Do not pass argument to get_value.
1003 (fold_const_aggregate_ref, visit_assignment): Ditto. Do not
1006 2006-11-08 Andrew Pinski <Andrew_Pinski@playstation.sony.com>
1008 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
1009 HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
1011 2006-11-08 Roger Sayle <roger@eyesopen.com>
1013 * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
1014 test for inclusion rather than as a test for exclusion.
1015 * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
1016 the condition after calling fold_binary.
1017 * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
1018 (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
1019 * builtins.c (fold_builtin_isascii): Likewise.
1020 (fold_builtin_isdigit): Likewise.
1022 2006-11-08 Carlos O'Donell <carlos@codesourcery.com>
1024 * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
1025 * configure: Regenerate.
1027 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
1029 * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
1030 enum argument instead of bool.
1031 (vect_analyze_operations): Call vectorizable_type_promotion.
1032 * tree-vectorizer.h (type_promotion_vec_info_type): New enum
1033 stmt_vec_info_type value.
1034 (supportable_widening_operation, vectorizable_type_promotion): New
1035 function declarations.
1036 * tree-vect-transform.c (vect_gen_widened_results_half): New function.
1037 (vectorizable_type_promotion): New function.
1038 (vect_transform_stmt): Call vectorizable_type_promotion.
1039 * tree-vect-analyze.c (supportable_widening_operation): New function.
1040 * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
1042 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
1045 * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
1046 (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
1047 * tree-inline.c (estimate_num_insns_1): Add cases for above new
1049 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1050 * expr.c (expand_expr_real_1): Likewise.
1051 * optabs.c (optab_for_tree_code): Likewise.
1052 (init_optabs): Initialize new optabs.
1053 * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
1054 vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
1055 vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
1056 vec_unpacku_lo_optab): Initialize new optabs.
1057 * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
1058 (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
1059 OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
1061 (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
1062 (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
1063 (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
1064 (vec_unpacku_lo_optab): New optabs.
1065 * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
1066 (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
1067 (vec_widen_smult_hi, vec_widen_smult_lo): New.
1068 * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
1069 (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
1070 (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
1072 * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
1073 (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
1074 (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
1075 (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
1076 (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
1077 implement the unsigned unpacking patterns.
1078 (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
1079 (vec_unpacks_lo_v8hi): New signed unpacking patterns.
1080 (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
1081 (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
1082 (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
1083 (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
1084 (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
1085 (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
1086 multiplication patterns.
1088 * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
1089 * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
1090 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
1091 * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
1092 (rs6000_builtin_mul_widen_odd): New.
1093 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
1094 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
1095 * tree-vectorizer.h (enum vect_relevant): New enum type.
1096 (_stmt_vec_info): Field relevant chaned from bool to enum
1098 (STMT_VINFO_RELEVANT_P): Updated.
1099 (STMT_VINFO_RELEVANT): New.
1100 * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
1101 instead of STMT_VINFO_RELEVANT_P.
1102 * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
1103 Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
1104 and boolean variable with enum vect_relevant.
1105 (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
1106 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
1107 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
1109 2006-11-08 Richard Henderson <rth@redhat.com>
1111 * config/i386/sse.md (vec_widen_umult_hi_v8hi,
1112 vec_widen_umult_lo_v8hi): New.
1113 (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
1114 vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
1116 * config/i386/i386.c (ix86_expand_sse_unpack): New.
1117 * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
1118 * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
1119 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
1120 vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
1121 vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
1122 vec_unpacks_lo_v4si): New.
1124 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
1126 * tree-vect-transform.c (vectorizable_type_demotion): New function.
1127 (vect_transform_stmt): Add case for type_demotion_vec_info_type.
1128 (vect_analyze_operations): Call vectorizable_type_demotion.
1129 * tree-vectorizer.h (type_demotion_vec_info_type): New enum
1130 stmt_vec_info_type value.
1131 (vectorizable_type_demotion): New function declaration.
1132 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
1135 * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
1136 * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
1138 * tree-iniline.c (estimate_num_insns_1): Likewise.
1139 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1140 * optabs.c (optab_for_tree_code): Likewise.
1142 * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
1143 compared against the predicate of the result is not 'mode' (the input
1144 to the function) but a mode with half the size of 'mode'.
1145 (init_optab): Initialize new optabs.
1146 * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
1148 (vec_pack_mod_optab, vec_pack_ssat_optab, vec_pack_usat_optab): New
1150 * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
1151 (vec_pack_usat_optab): Initialize new optabs.
1152 * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
1153 * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
1155 2006-11-08 Richard Henderson <rth@redehat.com>
1157 * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
1158 (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
1159 (vec_interleave_highv8hi, vec_interleave_lowv8hi):
1160 (vec_interleave_highv4si, vec_interleave_lowv4si):
1161 (vec_interleave_highv2di, vec_interleave_lowv2di): New.
1163 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
1165 * tree-vect-transform.c (vectorizable_reduction): Support multiple
1167 (vect_transform_stmt): Removed redundant code.
1169 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
1171 * tree-vect-transform.c (vectorizable_operation): Support multiple
1174 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
1176 * tree-vect-transform.c (vect_align_data_ref): Removed.
1177 (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
1178 Updated function documentation. Return the increment stmt in ptr_incr.
1179 (bump_vector_ptr): New function.
1180 (vect_get_vec_def_for_stmt_copy): New function.
1181 (vect_finish_stmt_generation): Create a stmt_info to newly created
1183 (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
1185 (vectorizable_reduction, vectorizable_assignment): Not supported yet if
1186 VF is greater than the number of elements that can fit in one vector
1188 (vectorizable_operation, vectorizable_condition): Likewise.
1189 (vectorizable_store, vectorizable_load): Support the case that the VF
1190 is greater than the number of elements that can fit in one vector word.
1191 (vect_transform_loop): Don't fail in case of multiple data-types.
1192 * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
1193 in case of multiple data-types; the smallest type determines the VF.
1194 (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
1195 if they are of different sizes.
1196 (vect_update_misalignment_for_peel): Compare misalignments in terms of
1197 number of elements rather than number of bytes.
1198 (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
1199 (vect_can_advance_ivs_p): Fix a dump printout
1201 2006-11-07 Eric Christopher <echristo@apple.com>
1203 * libgcc2.c (__bswapdi2): Rename from bswapDI2.
1204 (__bswapsi2): Ditto.
1205 * libgcc2.h: Remove transformation of bswap routines.
1206 * config/i386/i386.md (bswapsi2): New.
1209 2006-11-07 Jakub Jelinek <jakub@redhat.com>
1211 * c-common.c (c_common_attributes): Add gnu_inline attribyte.
1212 (handle_gnu_inline_attribute): New function.
1213 * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
1214 (merge_decls, start_decl, start_function): Likewise.
1215 * doc/extend.texi: Document gnu_inline attribute.
1217 2006-11-07 Steve Ellcey <sje@cup.hp.com>
1220 * config/ia64/t-hpux (LIB1ASMFUNCS): Filter out _fixtfdi,
1221 _fixunstfdi, and _floatditf
1223 2006-11-06 Anatoly Sokolov <aesok@post.ru>
1225 * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
1227 * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
1228 (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
1229 lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
1230 which start in an odd register.
1232 2006-11-07 Richard Sandiford <richard@codesourcery.com>
1234 * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
1236 2006-11-07 Josh Conner <jconner@apple.com>
1238 * doc/invoke.texi (fstrict-aliasing): Move implementation
1240 * doc/tree-ssa.texi (Alias analysis): ...here.
1242 2006-11-07 Richard Guenther <rguenther@suse.de>
1244 PR tree-optimization/29610
1245 * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
1246 of tree_purge_dead_eh_edges as it may free dominators.
1248 * g++.dg/other/pr29610.C: New testcase.
1250 2006-11-07 David Ung <davidu@mips.com>
1252 * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
1253 costs when optimizing for size.
1254 (override_options): Use mips_rtx_cost_optimize_size table for cost
1257 2006-11-07 Jie Zhang <jie.zhang@analog.com>
1259 * gcc.c (process_command): Treat -b as normal switch if its argument
1262 2006-11-07 David Ung <davidu@mips.com>
1264 * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
1267 2006-11-06 Eric Christopher <echristo@apple.com>
1269 * config.gcc: Add x86_64-darwin host support.
1270 * config.host: Ditto.
1271 * config/i386/darwin64.h: New file.
1272 * config/i386/t-darwin64: Ditto.
1274 2006-11-06 Janis Johnson <janis187@us.ibm.com>
1276 * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
1277 and output-exists-not.
1279 2006-11-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
1282 * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
1283 checking for overflow.
1285 2006-11-06 Jan van Dijk <jan@etpmod.phys.tue.nl>
1287 * configure.ac: Fixed typo in case statement: :: changed to ;;
1289 2006-11-06 Bob Wilson <bob.wilson@acm.org>
1291 * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
1292 count_leading_zeros, and count_trailing_zeros.
1293 * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
1294 (TARGET_FOLD_BUILTIN): Define.
1295 (TARGET_EXPAND_BUILTIN): Define.
1296 (xtensa_init_builtins): New.
1297 (xtensa_fold_builtin): New.
1298 (xtensa_expand_builtin): New.
1299 (xtensa_rtx_costs): Add CTZ and CLZ. Adjust costs for MULT.
1300 * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
1301 (CLZ_DEFINED_VALUE_AT_ZERO): Define.
1302 (CTZ_DEFINED_VALUE_AT_ZERO): Define.
1303 * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
1304 (any_extend): New code macro.
1305 (u, su): New code attributes.
1306 (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
1307 (nsau): Remove; replaced by clzsi2.
1308 (ffssi2): Use clzsi2.
1309 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
1310 _clzsi2, _ctzsi2, and _ffssi2. Rename _nsau to _clz.
1311 * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
1312 (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
1313 (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
1315 2006-11-06 Vladimir Prus <vladimir@codesourcery.com>
1317 * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
1319 * config/arm/t-strongarm-elf: Likewise.
1320 * config/arm/t-pe: Likewise.
1321 * config/arm/t-arm-elf: Likewise.
1322 * config/arm/t-xscale-elf: Likewise.
1323 * config/arm/t-arm-coff: Likewise.
1324 * config/arm/t-xscale-coff: Likewise.
1325 * config/arm/t-wince-pe: Likewise.
1327 2006-11-05 Kaz Kojima <kkojima@gcc.gnu.org>
1329 * config/sh/lib1funcs-4-300.asm: Guard entire file with
1332 2006-11-05 Jakub Jelinek <jakub@redhat.com>
1335 * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
1338 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
1341 * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
1342 as a valid 80387 constant.
1343 (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
1344 * config/i386/i386.md (unnamed splitter): Split the load of
1345 constant -0.0 or -1.0 into the load of 0.0 or 1.0, followed
1348 2006-11-04 Richard Earnshaw <rearnsha@arm.com>
1350 * arm.c (thumb_legitimate_addres_p): Allow any constant offset
1351 from the soft-frame, argument and virtual registers.
1353 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
1355 * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
1356 patterns for standard 80387 constants.
1358 2006-11-03 Paolo Bonzini <bonzini@gnu.org>
1359 Steven Bosscher <steven@gcc.gnu.org>
1361 * fwprop.c: New file.
1362 * Makefile.in: Add fwprop.o.
1363 * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
1364 * passes.c (init_optimization_passes): Schedule forward propagation.
1365 * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
1367 * timevar.def (TV_FWPROP): New.
1368 * common.opt (-fforward-propagate): New.
1369 * opts.c (decode_options): Enable forward propagation at -O2.
1370 * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
1371 * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
1372 canon_for_address, table_size): Remove.
1373 (new_basic_block, insert, remove_from_table): Remove references to
1375 (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
1376 simplification loop more straightforward by not calling fold_rtx
1378 (equiv_constant): Move here a small part of fold_rtx_subreg,
1379 do not call fold_rtx. Call avoid_constant_pool_reference
1381 * recog.h (canonicalize_change_group): New.
1383 * doc/invoke.texi (Optimization Options): Document fwprop.
1384 * doc/passes.texi (RTL passes): Document fwprop.
1386 2006-11-03 Geoffrey Keating <geoffk@apple.com>
1388 * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
1389 (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
1390 (grokdeclarator): Likewise.
1392 2006-11-03 Steven Bosscher <steven@gcc.gnu.org>
1394 * tree-dump.c (dump_enable_all): Rename local variable
1395 ir_type to avoid name conflicts.
1396 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
1397 instead of using ir_type().
1398 * profile.c (tree_register_profile_hooks): Likewise.
1399 * value-prof.c (tree_register_value_prof_hooks): Likewise.
1400 * basic-block.h (struct edge_def): Likewise.
1401 * config/arm/arm.c (legitimize_pic_address): Likewise.
1402 * coretypes.h (ir_type): New enum of all intermediate languages
1404 * cfghooks.c (ir_type): Rename to...
1405 (current_ir_type): ...this. Distinguish between cfgrtl and
1406 cfglayout mode when the current IR is RTL. Return enum ir_type.
1407 * cfghooks.h (ir_type): Replace with current_ir_type prototype.
1409 2006-11-03 Paul Brook <paul@codesourcery.com>
1411 * config/arm/arm.c (arm_file_start): New function.
1412 (TARGET_ASM_FILE_START): Define.
1413 (arm_default_cpu): New variable.
1414 (arm_override_options): Set arm_default_cpu.
1416 2006-11-03 David Ung <davidu@mips.com>
1418 * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
1419 PROCESSOR_24KC and PROCESSOR_24KF.
1420 * config/mips/mips.c (mips_cpu_info_table): Add processor names
1421 and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
1422 (mips_rtx_cost_data): Add costs for the 24kc.
1423 * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
1424 * config/mips/24k.md: Remove references to 24k and replace with
1425 uses of 24kc/24kf in the appropriate reservations.
1426 * doc/invoke.texi (MIPS Options): Updated.
1428 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
1430 * config/sh/crt1.asm: Fix #ifdef indent.
1432 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
1433 Merged from STMicroelectronics sources:
1434 2006-10-06 Andrew Stubbs <andrew.stubbs@st.com>
1435 * config/sh/crt1.asm (vbr_600): Add missing #if.
1436 2006-08-03 J"orn Rennecke <joern.rennecke@st.com>
1437 * sh.opt (mfused-madd): New option.
1438 * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
1439 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
1440 * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
1441 Remove pointless handler at VBR+0.
1442 (vbr_200, vbr_300, vbr_500): Remove pointless handler.
1443 (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
1444 fr7. Make sure the timer handler is called with the correct FPU
1445 precision setting, according to the ABI.
1446 2006-06-14 J"orn Rennecke <joern.rennecke@st.com>
1447 * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
1448 * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
1449 (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
1450 2006-06-09 J"orn Rennecke <joern.rennecke@st.com>
1451 * sh.md (cmpgeusi_t): Change into define_insn_and_split. Accept
1452 zero as second operand.
1453 2006-04-28 J"orn Rennecke <joern.rennecke@st.com>
1454 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
1455 Fixed some bugs related to negative values, in particular -0
1456 and overflow at -0x80000000.
1457 * config/sh/divcost-analysis: Added sh4-300 figures.
1458 2006-04-27 J"orn Rennecke <joern.rennecke@st.com>
1459 * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
1460 2006-04-26 J"orn Rennecke <joern.rennecke@st.com>
1461 * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
1462 ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
1463 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
1465 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
1467 2006-04-24 J"orn Rennecke <joern.rennecke@st.com>
1468 SH4-300 scheduling description & fixes to SH4-[12]00 description:
1469 * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
1470 mac_mem, mem_mac, dfp_mul, fp_cmp.
1471 (insn_class, dfp_comp, any_fp_comp): Update.
1472 (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
1473 (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
1474 (muldf3_i): Likewise.
1475 (movsi_i): Split rI08 alternative into two separate alternatives.
1477 (movsi_ie, movsi_i_lowpart): Likewise.
1478 (movqi_i): Split ri alternative into two separate alternatives.
1480 * sh1.md (sh1_load_store, sh1_fp): Update.
1481 * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
1482 (mac_mem, sh4_fpscr_toggle): New insn_reservations.
1483 * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
1484 (sh4a_fp_double_arith): Likewise.
1485 * sh4-300.md: New file.
1486 * sh.c (sh_handle_option): Handle m4-300* options.
1487 (sh_adjust_cost): Fix latency of auto-increments.
1488 Handle SH4-300 differently than other SH4s. Check for new insn types.
1489 * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
1490 been set by an option.
1491 * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
1492 (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
1493 (mbranch-cost=): Likewise.
1494 * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
1496 * sh.md (mulsf3): Remove special expansion code.
1497 (mulsf3_ie): Now a define_insn_and_split.
1498 (macsf3): Allow for TARGET_SH4.
1500 * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
1501 * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
1502 (expand_cbranchdi4): Likewise.
1503 (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
1504 CONST_DOUBLE if the outer code is COMPARE.
1505 * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
1506 TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
1507 (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
1508 (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
1509 Remove redundant fp_{zero,one}_operand checks.
1510 * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
1511 * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
1512 (expand_cbranchdi4): Likewise.
1513 2006-04-20 J"orn Rennecke <joern.rennecke@st.com>
1514 * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
1516 2006-11-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
1518 * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
1521 2006-11-02 Brooks Moses <brooks.moses@codesourcery.com>
1523 * doc/invoke.texi: Fix mfp-trap-mode typo.
1525 2006-11-02 Carlos O'Donell <carlos@codesourcery.com>
1527 * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
1528 * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
1529 file_end_indicate_exec_stack.
1530 * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
1532 * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
1533 for a non-executable stack.
1534 * crti.asm: Likewise.
1535 * crtn.asm: Likewise.
1536 * libunwind.S: Likewise.
1538 2006-11-02 Ben Elliston <bje@au.ibm.com>
1540 * tree-ssa.c (warn_uninit): Use expand_location variables for
1541 locus and declaration locus.
1543 2006-11-02 Kaz Kojima <kkojima@gcc.gnu.org>
1546 * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
1547 (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
1548 cmp{eq,gt,gtu}{si,di}_media.
1549 (*cmpne0si_media): Remove.
1550 (*movsicc_umin): Adjust gen_cmp*_media call.
1551 (unordered): Change the mode of unordered and operands[1] to
1553 (seq): Adjust gen_cmp*_media calls. Make the mode of
1554 a temporary result of compare SImode if needed. If the mode
1555 of operands[0] is DImode, extend the temporary result to DImode.
1556 (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
1557 (sunorderd): Change the mode of match_operand and unorderd to
1559 (cmpeq{sf,df}_media): Remove.
1560 (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
1561 (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
1562 and compare operation to SImode.
1564 2006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
1566 * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
1568 (sparc64-sun-solaris2*): Likewise.
1570 2006-11-02 Paul Brook <paul@codesourcery.com>
1572 * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
1573 from priority argument. Use different section for non-default
1575 * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
1577 2006-11-02 Eric Botcazou <ebotcazou@adacore.com>
1580 * except.c (switch_to_exception_section): Do not cache the section
1581 if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
1582 and flag_function_sections is set.
1584 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1587 * builtins.c (do_mpfr_sincos): New.
1588 (fold_builtin_1): Use it to fold builtin sincos.
1590 2006-11-01 Roger Sayle <roger@eyesopen.com>
1592 * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
1593 it into -D_REENTRANT.
1595 2006-11-01 Roger Sayle <roger@eyesopen.com>
1597 * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
1598 whether the assembler supports taking the difference of symbols in
1599 different sections. On x86/Solaris, GAS does but Solaris as doesn't.
1600 * configure: Regenerate.
1601 * config.in: Regenerate.
1602 * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
1603 the assembler doesn't support taking the difference of symbols in
1604 different sections, i.e. we're using the native solaris assembler.
1606 2006-11-01 Pete Steinmetz <steinmtz@us.ibm.com>
1607 Peter Bergner <bergner@vnet.ibm.com>
1609 * doc/invoke.texi: Add cpu_type power6x
1610 (RS/6000 and PowerPC Options): Add -mmfpgpr.
1611 * config.gcc: Add cpu_type power6x.
1612 * configure.ac: Add test for mf{t,f}gpr instructions.
1613 (HAVE_AS_MFPGPR): New.
1614 * config.in: Regenerate.
1615 * configure: Regenerate.
1616 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
1617 * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
1618 shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
1619 and mftgpr attributes.
1620 (define_attr "cpu"): Add power6.
1621 Change instruction sequences to use new attributes.
1622 (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
1623 (fix_truncdfsi2_mfpgpr): New.
1624 (floatsidf_ppc64_mfpgpr): New.
1625 (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
1626 (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
1627 (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
1628 (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
1629 (fix_truncdfsi2): Use gpc_reg_operand constraint.
1630 * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
1631 7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
1632 Add descriptions for insert_dword, shift,trap,var_shift_rotate,
1633 cntlz,exts and var_delayed_compare.
1634 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1635 _ARCH_PWR6X, if features enabled.
1636 * config/rs6000/rs6000.opt (mmfpgpr): New.
1637 * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
1638 (cached_can_issue_more): New variable.
1639 (processor_costs): Add power6_cost.
1640 (rs6000_sched_init): New function.
1641 (is_dispatch_slot_restricted): Deleted.
1642 (set_to_load_agen): New function.
1643 (is_load_insn,is_store_insn): New functions.
1644 (adjacent_mem_locations): New function.
1645 (insn_must_be_first_in_group): New function.
1646 (insn_must_be_last_in_group): New function.
1647 (rs6000_sched_reorder): New function.
1648 (rs6000_sched_reorder2): New function.
1649 (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
1650 TARGET_SCHED_REORDER2): Define.
1651 (processor_target_table): Use PROCESSOR_POWER6 for power6.
1652 Add power6x. Add MASK_MFPGPR for power6x.
1653 (POWERPC_MASKS): Add MASK_MFPGPR.
1654 (rs6000_override_options): Set rs6000_always_hint to false
1655 for power6. Set rs6000_align_branch_targets. Replace
1656 rs6000_sched_groups check with rs6000_align_branch_targets.
1657 Use PROCESSOR_POWER6.
1658 (last_scheduled_insn): New variable.
1659 (load_store_pendulum): New variable.
1660 (rs6000_variable_issue): Set last_scheduled_insn and
1661 cached_can_issue_more.
1662 (rs6000_adjust_cost): Add power6 cost adjustments.
1663 (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
1664 with insn_must_be_first_in_group. Add power6 priority adjustments.
1665 (rs6000_issue_rate): Add CPU_POWER6.
1666 (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
1667 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
1668 (TARGET_MFPGPR): New.
1669 (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
1670 (ASM_CPU_SPEC): Add power6x.
1671 (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
1673 * config/rs6000/power6.md: New file.
1675 2006-11-01 Adam Nemet <anemet@caviumnetworks.com>
1677 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
1678 HOST_WIDE_INT_PRINT to print high and low parts. Use
1679 HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT. When
1680 printing a hexadecimal number prefix it with 0x.
1682 2006-11-01 Chris Johns <chris@contemporary.net.au>
1685 * Makefile.in (install-driver): Use exeext when installing
1686 $target-gcc-$version.
1688 2006-11-01 Douglas Gregor <doug.gregor@gmail.com>
1690 * c-common.c (flag_cpp0x): New.
1691 * c-common.h (flag_cpp0x): New.
1692 * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
1693 supported, define __GXX_EXPERIMENTAL_CPP0X__.
1694 * c-opts.c (set_std_cxx0x): New.
1695 (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
1696 * c.opt (std=c++0x): Document.
1697 (std=gnu++0x): Ditto.
1698 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
1699 * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
1701 2006-11-01 Richard Guenther <rguenther@suse.de>
1703 * config/i386/i386.c (ix86_expand_rint): Fix issues with
1705 (ix86_expand_floorceildf_32): Likewise.
1706 (ix86_expand_floorceil): Likewise.
1707 (ix86_expand_trunc): Likewise.
1709 2006-10-31 Andrew Pinski <pinskia@gmail.com>
1711 * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
1714 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
1716 * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
1718 * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
1720 * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
1722 * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
1723 * configure.ac (use_cxa_atexit): As a special case, don't test
1724 for libc definition of __cxa_atexit on mingw32
1725 * configure: Regenerate.
1726 * config.gcc (i[34567]86-pc-mingw32): Default to
1727 enable__cxa_atexit=yes.
1729 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1731 * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
1733 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1736 * c-decl.c (start_struct): Don't create self-containing
1738 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
1740 * config/rs6000/rs6000-protos.h
1741 (darwin_rs6000_special_round_type_align): New.
1742 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
1743 (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
1745 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1747 * toplev.c (compile_file): Call final_write_globals
1748 even if there have been errors.
1750 2006-10-31 Eric Christopher <echristo@apple.com>
1751 Falk Hueffner <falk@debian.org>
1753 * doc/extend.texi (__builtin_bswap32): Document.
1754 (__builtin_bswap64): Ditto.
1755 * doc/libgcc.texi (bswapsi2): Document.
1757 * doc/rtl.texi (bswap): Document.
1758 * optabs.c (expand_unop): Don't widen a bswap.
1759 (init_optabs): Init bswap. Set libfuncs explicitly
1760 for bswapsi2 and bswapdi2.
1761 * optabs.h (OTI_bswap): New.
1762 (bswap_optab): Ditto.
1763 * genopinit.c (optabs): Handle bswap_optab.
1764 * tree.h (tree_index): Add TI_UINT32_TYPE and
1766 (uint32_type_node): New.
1767 (uint64_type_node): Ditto.
1768 * tree.c (build_common_tree_nodes_2): Initialize
1769 uint32_type_node and uint64_type_node.
1770 * builtins.c (expand_builtin_bswap): New.
1771 (expand_builtin): Call.
1772 (fold_builtin_bswap): New.
1773 (fold_builtin_1): Call.
1774 * fold-const.c (tree_expr_nonnegative_p): Return true
1776 * builtin-types.def (BT_UINT32): New.
1778 (BT_FN_UINT32_UINT32): Ditto.
1779 (BT_FN_UINT64_UINT64): Ditto.
1780 * builtins.def (BUILT_IN_BSWAP32): New.
1781 (BUILT_IN_BSWAP64): Ditto.
1782 * rtl.def (BSWAP): New.
1783 * genattrtab.c (check_attr_value): New.
1784 * libgcc2.c (__bswapSI2): New.
1785 (__bswapDI2): Ditto.
1786 * libgcc2.h (__bswapSI2): Declare.
1787 (__bswapDI2): Ditto.
1788 * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
1789 * simplify-rtx.c (simplify_const_unary_operation): Return
1791 * libgcc-std.ver (__bwapsi2): Add.
1792 (__bswapdi2): Ditto.
1793 * reload1.c (eliminate_regs_1): Add bswap.
1794 (elimination_effects): Ditto.
1795 * config/i386/i386.h (x86_bswap): New.
1796 (TARGET_BSWAP): Use.
1797 * config/i386/i386.c (x86_bswap): Set.
1799 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1801 * coverage.c (coverage_checksum_string): Update comment.
1802 * dwarf2out.c (switch_to_eh_frame_section): Update for removal
1803 of get_file_function_name.
1804 * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
1805 of get_file_function_name_long.
1806 * tree.c (get_file_function_name): Rename from
1807 get_file_function_name_long; improve comment; handle 'I' and 'D'
1808 specially when the target has ctor/dtor support; remove special
1810 (get_file_function_name): Remove.
1811 * tree.h (get_file_function_name): Rename from
1812 get_file_function_name_long.
1813 (get_file_function_name): Remove prototype.
1815 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1817 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
1818 * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
1820 * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
1821 Call dsymutil when compiling and linking one or more source files
1824 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1827 * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
1829 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1831 * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
1832 inline static functions in c99 mode.
1835 * doc/extend.texi (Inline): Update.
1836 * c-tree.h (struct language_function): Remove field 'extern_inline'.
1837 * c-decl.c (current_extern_inline): Delete.
1838 (pop_scope): Adjust test for an undefined nested function.
1839 Add warning about undeclared inline function.
1840 (diagnose_mismatched_decls): Update comments. Disallow overriding
1841 of inline functions in a translation unit in C99. Allow inline
1842 declarations in C99 at any time.
1843 (merge_decls): Boolize variables. Handle C99 'extern inline'
1845 (grokdeclarator): Set DECL_EXTERNAL here for functions. Handle
1846 C99 inline semantics.
1847 (start_function): Don't clear current_extern_inline. Don't set
1849 (c_push_function_context): Don't push current_extern_inline.
1850 (c_pop_function_context): Don't restore current_extern_inline.
1853 * c-typeck.c (build_external_ref): Warn about static variables
1854 used in extern inline functions.
1855 * c-decl.c (start_decl): Warn about static variables declared
1856 in extern inline functions.
1858 2006-10-31 Roger Sayle <roger@eyesopen.com>
1861 * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
1862 * fold-const.c (tree_expr_nonnegative_p): Likewise. Consider
1863 pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
1864 or y is an even integer.
1866 2006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr>
1869 * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
1870 * gthr-posix95.h (__gthread_active_p): Likewise.
1872 2006-10-31 Richard Guenther <rguenther@suse.de>
1874 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
1875 acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
1876 expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
1877 exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
1878 ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
1879 lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
1880 lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
1881 btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
1884 2006-10-31 Steven Bosscher <steven@gcc.gnu.org>
1886 * opts.c (decode_options): Disable CSE skip blocks.
1888 2006-10-30 Dirk Mueller <dmueller@suse.de>
1890 * c-common.h (strict_aliasing_warning): Fix whitespace.
1891 * c-decl (start_function): Move code for main decl warning ..
1892 * c-common.c (check_main_parameter_types): .. here.
1893 * c-common.h (check_main_parameter_types): Declare.
1895 2006-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1898 * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
1900 2006-10-30 Pete Steinmetz <steinmtz@us.ibm.com>
1902 * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
1903 be a PARALLEL containing sets. Return false when out_pat is not
1906 2006-10-30 Richard Sandiford <richard@codesourcery.com>
1908 * config/mips/mips.md (mul<mode>3): Split into...
1909 (mulsi3, muldi3): ...these separate patterns.
1911 2006-10-30 Richard Sandiford <richard@codesourcery.com>
1913 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
1914 but with each set of options separated by spaces.
1916 2006-10-30 J"orn Rennecke <joern.rennecke@st.com>
1918 * unwind-dw2.c (uw_init_context_1): Fix test that checks if
1919 dwarf_reg_size_table has been initialized.
1921 2006-10-30 Roger Sayle <roger@eyesopen.com>
1923 * builtins.c (expand_builtin_mathfn_3): Correct coding style.
1924 * ddg.c (print_ddg_edge): Likewise.
1925 * dwarf2out.c (prune_unused_types_walk): Likewise.
1926 * ifcvt.c (noce_try_cmove_arith): Likewise.
1927 * langhooks.c (add_builtin_function): Likewise.
1928 * reg-stack.c (subst_stack_regs_pat): Likewise.
1929 * tree.c (expanded_location): Likewise.
1930 * tree-dump.c (dequeue_and_dump): Likewise.
1932 2006-10-30 David Daney <ddaney@avtrex.com>
1934 * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
1936 2006-10-30 Jakub Jelinek <jakub@redhat.com>
1938 PR tree-optimization/29637
1939 * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
1940 of the innertype is the innertype itself.
1942 2006-10-30 Danny Smith <dannysmith@users.sourceforge.net>
1944 * dwarf2out.c (file_name_acquire): Correct typo.
1946 2006-10-29 Daniel Berlin <dberlin@dberlin.org>
1948 * tree.h (tree_value_handle): Remove struct value_set declaration.
1949 Change value_set to bitmap_set.
1950 * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
1951 * tree-vn.c (get_value_handle): Made inline and moved to
1953 * tree-flow-inline.h: (has_stmt_ann): New function.
1954 * tree-ssa-pre.c (expressions): New variable.
1955 (next_expression_id): Ditto.
1956 (alloc_expression_id): New function.
1957 (struct value_set): Remove.
1958 (get_expression_id): New function.
1959 (get_or_alloc_expression_id): Ditto.
1960 (expression_for_id): Ditto.
1961 (clear_expression_ids): Ditto.
1962 (FOR_EACH_EXPR_ID_IN_SET): New macro.
1963 (bb_value_sets): Renamed to bb_bitmap_sets.
1964 All value sets replaced with bitmap_sets.
1966 (BB_VISITED): New macro.
1967 (postorder): New variable.
1968 (add_to_value): Removed.
1969 (value_exists_in_set_bitmap): Ditto.
1970 (value_insert_into_set_bitmap): Ditto.
1973 (set_remove): Ditto.
1974 (set_contains_value): Ditto.
1975 (insert_into_set): Ditto.
1977 (find_leader): Ditto.
1978 (bitmap_set_subtract_from_value_set): Ditto.
1979 (value_insert_into_set): Ditto.
1980 (print_value_set): Ditto.
1981 (debug_value_set): Ditto.
1982 (constant_expr_p): New function.
1983 (bitmap_remove_from_set): Ditto.
1984 (bitmap_insert_into_set): Ditto.
1985 (bitmap_set_free): Ditto.
1986 (vh_compare): Ditto.
1987 (sorted_array_from_bitmap_set): Ditto.
1988 (bitmap_set_subtract): Ditto.
1989 (bitmap_set_equal): Ditto.
1990 (debug_bitmap_set): Ditto.
1991 (find_leader_in_sets): Ditto.
1992 (bitmap_set_replace_value): Modify for bitmapped sets.
1993 (phi_translate): Ditto.
1994 (phi_translate_set): Ditto.
1995 (bitmap_find_leader): Ditto.
1996 (valid_in_sets): Ditto.
1997 (union_contains_value): Ditto.
1999 (compute_antic_aux): Ditto. Mark changed blocks.
2000 (compute_antic): Ditto. Iterate in postorder and only over
2002 (compute_rvuse_and_antic_safe): Reuse postorder.
2003 (create_component_ref_by_pieces): Modify for bitmapped sets.
2004 (find_or_generate_expression): Ditto.
2005 (create_expression_by_pieces): Ditto.
2006 (insert_into_preds_of_block): Ditto.
2007 (changed_blocks): New variable.
2008 (do_regular_insertion): Broken out from insert_aux.
2009 (insert_aux): Modified for bitmapped sets.
2010 (find_existing_value_expr): New function.
2011 (create_value_expr_from): Use it.
2012 (insert_extra_phis): Removed.
2013 (print_bitmap_set): Renamed from bitmap_print_value_set.
2014 (compute_avail): Handle RETURN_EXPR.
2015 (init_pre): Modify for bitmapped sets.
2016 * tree-flow.h (has_stmt_ann): New function.
2018 2006-10-29 Roger Sayle <roger@eyesopen.com>
2020 * builtins.c (fold_builtin_floor): Check for the availability of
2021 the C99 trunc function before transforming floor into trunc.
2023 2006-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2025 * builtins.c (fold_builtin_hypot): Rearrange recursive
2026 transformation before others, and also do ABS_EXPR. When
2027 necessary, check flag_unsafe_math_optimizations. When necessary,
2030 2006-10-29 Roger Sayle <roger@eyesopen.com>
2032 * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
2033 Fold ~X op C as X op' ~C, where op' is the swapped comparison.
2034 (fold_binary): ~X eq/ne C is now handled in fold_comparison.
2035 Fold -X eq/ne -Y as X eq/ne Y.
2037 2006-10-29 Richard Sandiford <richard@codesourcery.com>
2039 * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
2040 GENERATE_MULT3_<MODE>. Restrict the test to SImode. Use ISA_HAS_MUL3
2041 rather than GENERATE_MULT3_SI in the various define_peephole2s.
2042 (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
2043 Use an inclusive test for "mult" rather than "mul".
2044 (rotr<mode>3): Depend on ISA_HAS_ROR.
2045 * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
2047 (GENERATE_MULT3_DI): Delete.
2048 (ISA_HAS_64BIT_REGS): Use consistent formatting.
2049 (ISA_HAS_MUL3): New macro.
2050 (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
2051 (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
2052 (ISA_HAS_CLZ_CLO): Likewise.
2053 (ISA_HAS_DCLZ_DCLO): Delete.
2054 (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
2055 (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
2056 the VR4120 and VR4130.
2057 (ISA_HAS_MACCHI): Use consistent formatting.
2058 (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
2059 (ISA_HAS_ROR): ...this new macro.
2060 (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
2061 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
2062 (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
2064 2006-10-29 Roger Sayle <roger@eyesopen.com>
2066 PR tree-optimization/15458
2067 * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
2070 2006-10-29 Richard Guenther <rguenther@suse.de>
2072 * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
2073 (ix86_expand_truncdf_32): Likewise.
2074 * config/i386/i386.c (ix86_expand_trunc): New function expanding
2075 trunc inline for SSE math and -fno-trapping-math and if not
2076 optimizing for size.
2077 (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
2078 * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
2079 for expanding btrunc inline for SSE math.
2081 2006-10-29 Joseph Myers <joseph@codesourcery.com>
2083 * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
2084 Handle tuning for bi-arch i[34567]86-*-linux* like that for
2085 i[34567]86-*-solaris2.1[0-9]*.
2086 * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
2087 Define conditionally depending on TARGET_64BIT_DEFAULT.
2088 (SPEC_32, SPEC_64): Define.
2089 (LINK_SPEC): Use them.
2090 * doc/install.texi (--enable-targets=all): Document for x86-linux.
2092 2006-10-29 Richard Guenther <rguenther@suse.de>
2094 * config/i386/i386-protos.h (ix86_expand_round): Declare.
2095 (ix86_expand_rounddf_32): Likewise.
2096 * config/i386/i386.c (ix86_expand_round): New function expanding
2097 round inline for SSE math and -fno-trapping-math and if not
2098 optimizing for size.
2099 (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
2100 * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
2101 round via ix86_expand_round.
2103 2006-10-29 Richard Guenther <rguenther@suse.de>
2105 * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
2106 (ix86_expand_floorceildf_32): Likewise.
2107 * config/i386/i386.c (ix86_expand_sse_compare_mask): New
2108 static helper function.
2109 (ix86_expand_floorceil): Expander for floor and ceil to SSE
2111 (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
2112 * config/i386/i386.md (floordf2): Adjust to enable floor
2113 expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
2114 -fno-trapping-math is enabled and if not optimizing for size.
2115 (floorsf2, ceildf2, ceilsf2): Likewise.
2116 * config/i386/sse.md (sse_maskcmpsf3): New insn.
2117 (sse2_maskcmpdf3): Likewise.
2119 2006-10-29 Richard Guenther <rguenther@suse.de>
2121 * builtins.c (expand_builtin_mathfn): Expand nearbyint as
2122 rint in case -fno-trapping-math is enabled.
2123 * config/i386/i386-protos.h (ix86_expand_rint): Declare.
2124 * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
2125 (ix86_expand_sse_fabs): Likewise.
2126 (ix86_expand_rint): New function expanding rint to x87 or SSE math.
2127 * config/i386/i386.md (rintdf2): Enable for SSE math if
2128 -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
2129 (rintsf2): Likewise.
2131 2006-10-29 Richard Guenther <rguenther@suse.de>
2133 * genopinit.c (optabs): Change lfloor_optab and lceil_optab
2134 to conversion optabs.
2135 * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
2136 as conversion optab.
2137 * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
2138 (enum convert_optab_index): Add COI_lfloor and COI_lceil.
2139 (lfloor_optab, lceil_optab): Adjust defines.
2140 * builtins.c (expand_builtin_int_roundingfn): Adjust for
2141 lfloor and lceil optabs now being conversion optabs.
2142 * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
2143 * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
2144 New static helper function.
2145 (ix86_expand_lfloorceil): New function to expand lfloor and
2147 * config/i386/i386.md (lfloor<mode>2): Split into ...
2148 (lfloorxf<mode>2): ... x87 variant
2149 (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
2150 using ix86_expand_lfloorceil.
2151 (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
2153 * doc/md.texi (lfloorMN, lceilMN): Document.
2155 2006-10-29 Richard Sandiford <richard@codesourcery.com>
2157 * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the
2158 -mno-shared assembler option on mips targets.
2159 * configure, config.in: Regenerate.
2160 * config/mips/linux.h (NO_SHARED_SPECS): New macro.
2161 (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
2162 * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
2164 2006-10-29 Richard Sandiford <richard@codesourcery.com>
2166 * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
2167 as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
2169 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
2171 * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
2172 config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
2175 2006-10-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2178 * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
2179 (fold_builtin_pow): Evaluate constant arguments at compile-time
2181 (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
2182 (do_mpfr_ckconv): New helper function.
2183 (do_mpfr_arg1): Use do_mpfr_ckconv.
2184 (do_mpfr_arg2): New.
2186 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2189 * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
2190 (-fdump-rtl-sched): Rename to ..
2191 (-fdump-rtl-sched1): here. Also fix file extension number.
2193 2006-10-28 Richard Guenther <rguenther@suse.de>
2195 * fold-const.c (maybe_canonicalize_comparison): Fix code
2198 2006-10-28 Uros Bizjak <uros@kss-loka.si>
2200 * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
2201 (NON_QI_REG_P): Use IN_RANGE.
2202 (REX_INT_REGNO_P): Use IN_RANGE.
2203 (FP_REGNO_P): Use IN_RANGE.
2204 (SSE_REGNO_P): Use IN_RANGE.
2205 (REX_SSE_REGNO_P): Use IN_RANGE.
2206 (MMX_REGNO_P): Use IN_RANGE.
2207 (STACK_REGNO_P): New macro.
2208 (STACK_REG_P): Use STACK_REGNO_P.
2209 (NON_STACK_REG_P): Use STACK_REGNO_P.
2210 (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
2211 (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
2212 (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
2213 (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
2214 (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
2216 2006-10-28 Eric Botcazou <ebotcazou@adacore.com>
2218 * except.h (output_function_exception_table): Add 'const char*' param.
2219 * except.c (switch_to_exception_section): Add 'const char*' param.
2220 If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
2221 and flag_function_sections is set, use a function-specific section.
2222 (output_function_exception_table): Add 'const char*' param.
2223 Adjust call to switch_to_exception_section.
2224 * final.c (rest_of_handle_final): Adjust calls to
2225 output_function_exception_table.
2226 * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
2227 * config.in: Regenerate.
2228 * configure: Likewise.
2230 2006-10-28 Richard Guenther <rguenther@suse.de>
2233 * fold-const.c (maybe_canonicalize_comparison_1): Helper
2234 for maybe_canonicalize_comparison.
2235 (maybe_canonicalize_comparison): New function for canonicalizing
2237 (fold_comparison): Call it to canonicalize comparisons with
2240 2006-10-28 Richard Guenther <rguenther@suse.de>
2243 * builtins.c (expand_builtin_int_roundingfn_2): Expand
2244 BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
2245 (expand_builtin): Adjust likewise.
2246 * genopinit.c (optabs[]): Add lround optab.
2247 * optabs.c (init_optabs): Initialize lround_optab.
2248 * optabs.h (enum convert_optab_index): Add COI_lround.
2249 (lround_optab): Define.
2250 * config/i386/i386-protos.h (ix86_expand_lround): Declare.
2251 * config/i386/i386.c (ix86_sse_copysign_to_positive): New
2253 (ix86_expand_lround): New function.
2254 * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
2256 * doc/md.texi (lroundMN2): Document.
2258 2006-10-28 Uros Bizjak <uros@kss-loka.si>
2261 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
2262 argument to HOST_WIDE_INT. Update function prototype.
2263 (round_frame_size): Change return type to HOST_WIDE_INT. Change
2264 "size" argument to HOST_WIDE_INT. Update function prototype.
2266 2006-10-28 Uros Bizjak <uros@kss-loka.si>
2268 * config/i386/i386.c (output_387_ffreep): Create output from a
2269 template string for !HAVE_AS_IX86_FFREEP.
2271 2006-10-27 Eric Christopher <echristo@apple.com>
2273 * config/darwin.c: Fix formatting and grammar.
2275 2006-10-27 Jan Hubicka <jh@suse.cz>
2277 * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
2278 to be thrown away soon when IGNORE is set.
2279 * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
2280 indicating when return value shall not be computed.
2281 * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
2283 2006-10-27 Vladimir Makarov <vmakarov@redhat.com>
2285 * config/i386/i386.h (TARGET_GEODE):
2286 (TARGET_CPU_CPP_BUILTINS): Add code for geode.
2287 (TARGET_CPU_DEFAULT_geode): New macro.
2288 (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
2289 TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
2290 TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
2291 TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
2292 TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
2294 (TARGET_CPU_DEFAULT_NAMES): Add geode.
2295 (processor_type): Add PROCESSOR_GEODE.
2297 * config/i386/i386.md: Include geode.md.
2300 * config/i386/i386.c (geode_cost): New initialized global
2302 (m_GEODE, m_K6_GEODE): New macros.
2303 (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
2304 x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
2305 x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
2306 x86_schedule): Use m_K6_GEODE instead of m_K6.
2307 (x86_movx, x86_cmove): Set up m_GEODE.
2308 (x86_integer_DFmode_moves): Clear m_GEODE.
2309 (processor_target_table): Add entry for geode.
2310 (processor_alias_table): Ditto.
2312 * config/i386/geode.md: New file.
2314 * doc/invoke.texi: Add entry about geode processor.
2316 2006-10-27 Mike Stump <mrs@apple.com>
2318 * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
2319 __DYNAMIC__ from here back to ...
2320 * config/darwin.h (CPP_SPEC): ... here.
2322 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
2323 Nathan Sidwell <nathan@codesourcery.com>
2325 * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
2326 when choosing the minimum heapsize.
2328 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
2330 * gcc/unwind-dw2.h: Move cfa-related variables into
2331 struct frame_state_reg_info to ensure that the CFA is properly
2332 handled when executing DW_CFA_{remember,restore}_state.
2333 * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
2334 gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
2335 gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
2336 gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
2337 gcc/config/rs6000/linux-unwind.h,
2338 gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
2339 gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
2340 Modify to use new cfa_* fields.
2342 2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
2344 * config/s390/s390.c (s390_init_frame_layout): Check positive
2347 2006-10-26 Ben Elliston <bje@au.ibm.com>
2349 * gimplify.c (get_name): Remove extraneous break.
2350 (gimplify_omp_for): Initialise ret with GS_OK.
2352 2006-10-25 Steve Ellcey <sje@cup.hp.com>
2354 * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
2355 Add unix98.o to link line.
2357 2006-10-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2360 * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
2361 Calculate compile-time constants using MPFR.
2362 (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
2363 BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
2365 2006-10-25 Bob Wilson <bob.wilson@acm.org>
2367 * config/xtensa/lib2funcs.S: Use C-style comments.
2369 2006-10-24 Nathan Froyd <froydnj@codesourcery.com>
2371 * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
2372 (file_table_relative_p): Likewise.
2373 (dwarf2out_finish): Likewise.
2374 (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
2376 2006-10-25 Daniel Berlin <dberlin@dberlin.org>
2378 * tree-ssa-structalias.c (intra_create_variable_infos):
2379 Don't recreate nonlocal_all if it already exists.
2381 2006-10-25 Richard Guenther <rguenther@suse.de>
2384 * optabs.h (enum optab_index): Remove OTI_lrint.
2385 (enum convert_optab_index): Add COI_lrint.
2386 (lrint_optab): Adjust.
2387 (expand_sfix_optab): Declare.
2388 * optabs.c (expand_sfix_optab): New function.
2389 (init_optabs): Init lrint_optab as conversion optab.
2390 * genopinit.c (lrint_optab): Change to a conversion optab.
2391 * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
2392 expansion via conversion optab.
2393 * config/i386/i386.md (*fistdi2_1): Remove
2394 flag_unsafe_math_optimizations guard.
2395 (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
2396 fist<mode>2_with_temp): Likewise.
2397 (lrint<mode>2): Split into...
2398 (lrintxf<mode>2): ... x87 part
2399 (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
2400 * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
2401 sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
2402 UNSPEC_FIX_NOTRUNC matching non-vector float modes.
2403 * doc/md.texi (lrintMN2): Document.
2405 2006-10-25 Uros Bizjak <uros@kss-loka.si>
2408 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
2409 Use inc and dec instructions for TARGET_USE_INCDEC.
2410 ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
2411 ("sync_double_compare_and_swap<mode>"): Likewise.
2412 ("*sync_double_compare_and_swapdi_pic"): Likewise.
2413 ("*sync_compare_and_swap_cc<mode>"): Likewise.
2414 ("sync_double_compare_and_swap_cc<mode>"): Likewise.
2415 ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
2416 ("sync_old_add<mode>"): Likewise.
2417 ("sync_lock_test_and_set<mode>"): Likewise.
2418 ("sync_lock_test_and_set<mode>"): Likewise.
2419 ("sync_add<mode>"): Likewise.
2420 ("sync_sub<mode>"): Likewise.
2421 ("sync_ior<mode>"): Likewise.
2422 ("sync_and<mode>"): Likewise.
2423 ("sync_xor<mode>"): Likewise.
2425 2006-10-25 Uros Bizjak <uros@kss-loka.si>
2427 * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
2428 (remainder_optab): Define corresponding macro.
2429 (drem_optab): Remove.
2430 * optabs.c (init_optabs): Initialize remainder_optab. Remove
2431 drem_optab initialization.
2432 * genopinit.c (optabs): Implement remainder_optab using
2433 remainder?f3 patterns. Remove drem_optab.
2434 * builtins.c (expand_builtin_mathfn_2): Handle
2435 BUILT_IN_REMAINDER{,F,L} using remainder_optab.
2436 (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
2437 expand_builtin_mathfn_2.
2439 (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
2440 depend on flag_unsafe_math_optimizations.
2442 * config/i386/i386.md ("remaindersf3", "remainderdf3")
2443 ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
2444 Do not depend on flag_unsafe_math_optimizations. Use
2445 truncxf?f expander instead of truncxf?f_i387_noop.
2447 ("fpremxf4", "fprem1xf4"): Do not depend on
2448 flag_unsafe_math_optimizations.
2449 ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
2450 flag_unsafe_math_optimizations. Use truncxf?f expander
2451 instead of truncxf?f_i387_noop.
2453 * doc/md.texi (fmod, remainder): Document standard named pattern.
2455 2006-10-24 Richard Sandiford <richard@codesourcery.com>
2456 David Daney <ddaney@avtrex.com>
2459 * rtlanal.c (nonzero_address_p): Remove check for values wrapping.
2461 2006-10-25 Ben Elliston <bje@au.ibm.com>
2463 * doc/extend.texi (Variable Attributes): Typo fix.
2465 2006-10-24 Uros Bizjak <uros@kss-loka.si>
2467 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
2468 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
2469 (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
2470 (FRAME_POINTER_REGNUM): Update register number to 21.
2471 (REG_CLASS_CONTENTS): Update contents for added fpcr register.
2472 (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
2474 * config/i386/i386.c (regclass_map): Add fpcr entry.
2475 (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
2477 (print_reg): Assert REGNO (x) != FPCR_REG.
2479 * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
2480 (DIRFLAG_REG): Renumber.
2481 (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
2482 (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
2483 (sse_prologue_save, *sse_prologue_save_insn): Renumber
2484 hardcoded SSE register numbers.
2486 * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
2487 hardcoded MMX register numbers.
2489 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2492 * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
2493 (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
2495 (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
2496 (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
2497 BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
2498 BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
2500 2006-10-24 Richard Guenther <rguenther@suse.de>
2503 * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
2504 and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
2505 for deciding optimizations in consistency with fold-const.c
2506 (fold_builtin_unordered_cmp): Likewise.
2508 2006-10-24 Richard Guenther <rguenther@suse.de>
2510 * builtins.c (fold_builtin_floor): Fold floor (x) where
2511 x is nonnegative to trunc (x).
2512 (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
2513 nonnegative to FIX_TRUNC_EXPR.
2515 2006-10-24 Richard Guenther <rguenther@suse.de>
2517 PR tree-optimization/29567
2518 * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
2519 for TRUTH_NOT_EXPR. Clarify comments.
2521 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2524 * builtins.c (fold_builtin_exponent): Evaluate constant arguments
2525 at compile-time using MPFR. Change parameter VALUE to FUNC,
2527 (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check
2528 for overflow and underflow at all times and avoid folding in
2531 2006-10-24 Ben Elliston <bje@au.ibm.com>
2533 * reload1.c: Formatting fixes.
2535 2006-10-23 Zdenek Dvorak <dvorakz@suse.cz>
2537 PR tree-optimization/14784
2538 * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
2539 * tree-ssa-structalias.c (get_constraint_for,
2540 intra_create_variable_infos): Set is_heapvar.
2541 * tree-ssa-operands.c (access_can_touch_variable): Do not handle
2542 non-heapvar pointer variables specially.
2544 2006-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2547 * builtins.c (fold_builtin_sin, fold_builtin_cos,
2548 fold_builtin_tan): Fold all constant arguments. Take a "type"
2549 argument as necessary.
2550 (do_mpfr_arg1): New.
2551 * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
2553 2006-10-23 Bob Wilson <bob.wilson@acm.org>
2555 * config/xtensa/lib1funcs.asm: Use C-style comments.
2557 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
2559 * tree.c (local_define_builtin): Replace calls to
2560 lang_hooks.builtin_function with add_builtin_function.
2561 * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
2563 * c-tree.h (builtin_function): Rename to c_builtin_function. Change
2565 * c-decl.c (builtin_function): Rename to c_builtin_function. Move
2566 common code to add_builtin_function.
2567 * langhooks.c (add_builtin_function): New function.
2568 (lhd_builtin_function): New function.
2569 * langhooks.h (struct lang_hooks): Change the signature of
2571 (add_builtin_function): New function.
2572 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
2573 calls to lang_hooks.builtin_function with add_builtin_function.
2574 * c-common.c (decl_builtin_1): Replace calls to
2575 lang_hooks.builtin_function with add_builtin_function.
2576 * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
2577 lang_hooks.builtin_function with add_builtin_function.
2578 * config/frv/frv.c (def_builtin): Replace calls to
2579 lang_hooks.builtin_function with add_builtin_function.
2580 * config/s390/s390.c (s390_init_builtins): Replace calls to
2581 lang_hooks.builtin_function with add_builtin_function.
2582 * config/sparc/sparc.c (def_builtin): Replace calls to
2583 lang_hooks.builtin_function with add_builtin_function.
2584 * config/i386/i386.c (def_builtin): Replace calls to
2585 lang_hooks.builtin_function with add_builtin_function.
2586 * config/sh/sh.c (sh_media_init_builtins): Replace calls to
2587 lang_hooks.builtin_function with add_builtin_function.
2588 * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
2589 lang_hooks.builtin_function with add_builtin_function.
2590 * config/stormy16/stormy16.c (xstormy16_init_builtins):
2591 Replace calls to lang_hooks.builtin_function with
2592 add_builtin_function.
2593 * config/iq2000/iq2000.c (def_builtin):
2594 Replace calls to lang_hooks.builtin_function with
2595 add_builtin_function.
2596 * config/ia64/ia64.c (def_builtin): Replace calls to
2597 lang_hooks.builtin_function with add_builtin_function.
2598 * config/rs6000/rs6000.c (def_builtin): Replace calls to
2599 lang_hooks.builtin_function with add_builtin_function.
2600 (altivec_init_builtins): Replace calls to
2601 lang_hooks.builtin_function with add_builtin_function.
2602 * config/arm/arm.c (def_mbuiltin): Replace calls to
2603 lang_hooks.builtin_function with add_builtin_function.
2604 (arm_init_tls_builtins): Replace calls to
2605 lang_hooks.builtin_function with add_builtin_function.
2606 * config/mips/mips.c (mips_init_builtins): Replace calls to
2607 lang_hooks.builtin_function with add_builtin_function.
2608 * config/bfin/bfin.c (def_builtin): Replace calls to
2609 lang_hooks.builtin_function with add_builtin_function.
2610 * langhooks-def.h (lhd_builtin_function): New function.
2611 (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
2613 2006-10-23 Jakub Jelinek <jakub@redhat.com>
2615 * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
2616 BUILT_IN_STRNCAT_CHK.
2618 2006-10-23 Jan Hubicka <jh@suse.cz>
2620 * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
2621 don't do conversion from memmove to memcpy here.
2622 (expand_builtin_bcopy, expand_builtin): Update call of
2623 expand_builtin_memmove.
2624 (fold_builtin_memory_op): Do folding of memmove to memcpy here.
2626 2006-10-23 Paul Brook <paul@codesourcery.com>
2628 * stor-layout.c (start_record_layout): maximum_field_alignment
2629 overrides STRUCTURE_SIZE_BOUNDARY.
2631 2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
2633 * config/s390/predicates.md ("bras_sym_operand"): Do not accept
2634 nonlocal function symbols if flag_pic.
2636 2006-10-23 Richard Guenther <rguenther@suse.de>
2640 * builtins.c (fold_binary): Remove checks for flag_wrapv
2641 and flag_trapv where negate_expr_p covers these cases.
2643 2006-10-23 Richard Guenther <rguenther@suse.de>
2646 * fold-const.c (fold_plusminus_mult_expr): Check exact power
2647 of two on the absolute value.
2648 (fold_binary): Fold x * -C to -x * C if x is easily negatable
2649 and negating -C does not overflow.
2651 2006-10-23 Richard Guenther <rguenther@suse.de>
2654 * convert.c (convert_to_real): Fold (float)-x to -(float)x
2655 only if not flag_rounding_math.
2657 2006-10-22 Richard Sandiford <richard@codesourcery.com>
2658 Kaz Kojima <kkojima@gcc.gnu.org>
2661 * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
2662 SImode memory reference for the source of a movua.
2663 * config/sh/sh.md (UNSPEC_MOVUA): New macro.
2664 (movua): Use an unspec instead of sign_extract. Expect the source
2665 to have mode BLKmode.
2666 (extv, insv): Use a BLKmode rather than SImode memory reference
2667 for the source of a movua.
2669 2006-10-22 Jeff Law <law@redhat.com>
2670 Richard Guenther <rguenther@suse.de>
2672 PR tree-optimization/15911
2673 * tree-vrp.c (extract_code_and_val_from_cond): New function.
2674 (register_edge_assert_for_1): Likewise.
2675 (register_edge_assert_for): Handle &&/&/||/| in conditionals.
2676 (find_conditional_asserts): Adjust for new function signature.
2677 (find_assert_locations): Likewise.
2679 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
2681 * config/i386/tmmintrin.h: Remove the duplicated content.
2683 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
2685 * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
2686 (x86_64-*-*): Likewise.
2688 * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
2689 (override_options): Check SSSE3.
2690 (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
2691 IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
2692 IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
2693 IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
2694 IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
2695 IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
2696 IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
2697 IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
2698 IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
2699 IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
2700 IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
2701 IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
2702 IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
2703 IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
2704 IX86_BUILTIN_PABSD128.
2705 (bdesc_2arg): Add SSSE3.
2706 (bdesc_1arg): Likewise.
2707 (ix86_init_mmx_sse_builtins): Support SSSE3.
2708 (ix86_expand_builtin): Likewise.
2709 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
2711 * config/i386/i386.md (UNSPEC_PSHUFB): New.
2712 (UNSPEC_PSIGN): Likewise.
2713 (UNSPEC_PALIGNR): Likewise.
2714 Include mmx.md before sse.md.
2716 * config/i386/i386.opt: Add -mssse3.
2718 * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
2719 (ssse3_phaddwv4hi3): Likewise.
2720 (ssse3_phadddv4si3): Likewise.
2721 (ssse3_phadddv2si3): Likewise.
2722 (ssse3_phaddswv8hi3): Likewise.
2723 (ssse3_phaddswv4hi3): Likewise.
2724 (ssse3_phsubwv8hi3): Likewise.
2725 (ssse3_phsubwv4hi3): Likewise.
2726 (ssse3_phsubdv4si3): Likewise.
2727 (ssse3_phsubdv2si3): Likewise.
2728 (ssse3_phsubswv8hi3): Likewise.
2729 (ssse3_phsubswv4hi3): Likewise.
2730 (ssse3_pmaddubswv8hi3): Likewise.
2731 (ssse3_pmaddubswv4hi3): Likewise.
2732 (ssse3_pmulhrswv8hi3): Likewise.
2733 (ssse3_pmulhrswv4hi3): Likewise.
2734 (ssse3_pshufbv16qi3): Likewise.
2735 (ssse3_pshufbv8qi3): Likewise.
2736 (ssse3_psign<mode>3): Likewise.
2737 (ssse3_psign<mode>3): Likewise.
2738 (ssse3_palignrti): Likewise.
2739 (ssse3_palignrdi): Likewise.
2740 (abs<mode>2): Likewise.
2741 (abs<mode>2): Likewise.
2743 * config/i386/tmmintrin.h: New file.
2745 * doc/extend.texi: Document SSSE3 built-in functions.
2747 * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
2749 2006-10-22 Ira Rosen <irar@il.ibm.com>
2751 * tree-vect-transform.c (vectorizable_load): Use the type of the
2752 return value of the mask_for_load builtin to create realign_load
2755 2006-10-22 Richard Sandiford <richard@codesourcery.com>
2757 * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
2760 2006-10-21 H.J. Lu <hongjiu.lu@intel.com>
2762 * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
2763 (UNSPEC_LDDQU): This.
2764 * config/i386/sse.md (sse3_lddqu): Updated.
2766 2006-10-21 Richard Guenther <rguenther@suse.de>
2768 * builtins.c (expand_builtin_int_roundingfn_2): New function.
2769 (expand_builtin): Use it to expand lrint instead of
2770 expand_builtin_mathfn.
2772 2006-10-21 Uros Bizjak <uros@kss-loka.si>
2775 * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
2776 flag_unsafe_math_optimizations is set.
2778 2006-10-21 Uros Bizjak <uros@kss-loka.si>
2781 * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
2782 patterns to use memory input operand in x87->mem->XMM
2783 reload sequences. Skip transformation for TARGET_K8.
2785 2006-10-21 Uros Bizjak <uros@kss-loka.si>
2787 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
2788 force operand1 to register if both operands are memory operands.
2789 (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
2790 (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
2791 if both operands are memory operands.
2792 (truncdfsf2): Do not force operand1 to register if both operands
2793 are memory operands.
2795 2006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2797 * Makefile.in (LIBS): Add $(GMPLIBS).
2798 * doc/install.texi: Update GMP and MPFR requirements.
2799 * doc/sourcebuild.texi (need_gmp): Delete.
2801 2006-10-21 Richard Guenther <rguenther@suse.de>
2803 PR tree-optimization/3511
2804 * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
2805 got new invariant arguments during PHI translation.
2807 2006-10-21 Richard Guenther <rguenther@suse.de>
2810 * fold-const.c (fold_comparison): Fold signed comparisons
2811 of the form X +- C1 CMP Y +- C2.
2813 2006-10-21 Richard Guenther <rguenther@suse.de>
2816 * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
2817 if flag_unsafe_math_optimizations is specified. We have
2818 flag_finite_math_only for that.
2819 * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
2820 or flag_unsafe_math_optimizations.
2822 2006-10-21 Richard Guenther <rguenther@suse.de>
2824 * builtins.c (fold_builtin_classify): Fix typo.
2826 2006-10-21 Richard Guenther <rguenther@suse.de>
2829 * simplify-rtx.c (simplify_const_relational_operation):
2830 Do not constant-fold ORDERED and UNORDERED for
2831 flag_unsafe_math_optimizations but only we do not need to
2832 honor NaNs for the given mode.
2834 2006-10-21 Richard Guenther <rguenther@suse.de>
2837 * config/i386/i386.c (classify_argument): Remove redundant
2838 walking of the BINFOs.
2839 (contains_128bit_aligned_vector_p): Likewise.
2841 2006-10-20 Mark Mitchell <mark@codesourcery.com>
2843 * BASE-VER: Set to 4.3.0.
2845 2006-10-20 Daniel Berlin <dberlin@dberlin.org>
2847 * tree.h (DECL_PTA_ARTIFICIAL): Remove.
2848 (tree_decl_with_vis): Remove artificial_pta_var flag.
2849 * tree-flow.h (referenced_var_check_and_insert): Expose.
2850 (nonlocal_all): New prototype.
2851 * tree-ssa-structalias.c (nonlocal_for_type): Remove.
2852 (nonlocal_all): Make global.
2853 (nonlocal_lookup): Remove.
2854 (nonlocal_insert): Ditto.
2855 (create_nonlocal_var): Do not call nonlocal_insert.
2856 (get_nonlocal_id_for_type): Remove.
2857 (find_global_initializers): Mark new vars we find for renaming.
2858 (intra_create_variable_infos): Only create one nonlocal.
2859 (expand_nonlocal_solutions): Remove.
2860 (compute_points_to_sets): Don't call it.
2861 (ipa_pta_execute): Ditto.
2862 (init_alias_heapvars): Don't create nonlocal_for_type.
2863 (delete_alias_heapvars): Don't remove it.
2864 * tree-ssa-operands.c (access_can_touch_variable): Don't prune
2867 2006-10-19 Brooks Moses <bmoses@stanford.edu>
2869 * doc/install.texi (Downloading GCC): Clarify mention of
2870 Fortran in the "full distribution" description.
2872 2006-10-19 Daniel Berlin <dberlin@dberlin.org>
2874 Fix PR tree-optimization/28778
2875 Fix PR tree-optimization/29156
2876 Fix PR tree-optimization/29415
2877 * tree.h (DECL_PTA_ARTIFICIAL): New macro.
2878 (tree_decl_with_vis): Add artificial_pta_var flag.
2879 * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
2880 pushed into callers.
2881 * tree-ssa-structalias.c (nonlocal_for_type): New variable.
2882 (nonlocal_all): Ditto.
2883 (struct variable_info): Add directly_dereferenced member.
2884 (var_escaped_vars): New variable.
2885 (escaped_vars_tree): Ditto.
2886 (escaped_vars_id): Ditto.
2887 (nonlocal_vars_id): Ditto.
2888 (new_var_info): Set directly_dereferenced.
2889 (graph_size): New variable
2890 (build_constraint_graph): Use graph_size.
2891 (solve_graph): Don't process constraints that cannot change the
2892 solution, don't try to propagate an empty solution to our
2894 (process_constraint): Set directly_dereferenced.
2895 (could_have_pointers): New function.
2896 (get_constraint_for_component_ref): Don't process STRING_CST.
2897 (nonlocal_lookup): New function.
2898 (nonlocal_insert): Ditto.
2899 (create_nonlocal_var): Ditto.
2900 (get_nonlocal_id_for_type): Ditto.
2901 (get_constraint_for): Allow results vector to be empty in the case
2902 of string constants.
2903 Handle results of calls properly.
2904 (update_alias_info): Update alias info stats on number and type of
2906 (find_func_aliases): Use could_have_pointers.
2907 (make_constraint_from_escaped): Renamed from
2908 make_constraint_to_anything, and changed to make constraints from
2910 (make_constraint_to_escaped): New function.
2911 (find_global_initializers): Ditto.
2912 (create_variable_info_for): Make constraint from escaped to any
2913 global variable, and from any global variable to the set of
2915 (intra_create_variable_infos): Deal with escaped instead of
2916 pointing to anything.
2917 (set_uids_in_ptset): Do type pruning on directly dereferenced
2919 (find_what_p_points_to): Adjust call to set_uids_with_ptset.
2920 (init_base_vars): Fix comment, and initialize escaped_vars.
2921 (need_to_solve): Removed.
2922 (find_escape_constraints): New function.
2923 (expand_nonlocal_solutions): Ditto.
2924 (compute_points_to_sets): Call find_escape_constraints and
2925 expand_nonlocal_solutions.
2926 (delete_points_to_sets): Don't fall off the end of the graph.
2927 (init_alias_heapvars): Initialize nonlocal_for_type and
2929 (delete_alias_heapvars): Free nonlocal_for_type and null out
2932 2006-10-19 Eric Botcazou <ebotcazou@adacore.com>
2934 * fold-const.c (add_double): Rename to add_double_with_sign.
2935 Add 'unsigned_p' parameter and take it into account for the overflow.
2936 (mul_double): Rename to mul_double_with_sign.
2937 Add 'unsigned_p' parameter and take it into account for the overflow.
2938 (fold_div_compare): Call add_double_with_sign instead of add_double
2939 and mul_double_with_sign instead of mul_double, passing them the
2940 unsignedness of the type.
2941 * tree.h (add_double): Macroize.
2942 (add_double_with_sign): New prototype.
2943 (mul_double): Macroize.
2944 (mul_double_with_sign): New prototype.
2946 2006-10-19 Chen Liqin <liqin@sunnorth.com.cn>
2948 * config/score/crti.asm: New file.
2949 * config/score/crtn.asm: New file.
2950 * config/score/elf.h: New file.
2951 * config/score/mac.md: New file.
2952 * config/score/misc.md: New file.
2953 * config/score/mul-div.S: New file.
2954 * config/score/predicates.md: New file.
2955 * config/score/score7.md: New file.
2956 * config/score/score.c: New file.
2957 * config/score/score-conv.h: New file.
2958 * config/score/score.h: New file.
2959 * config/score/score.md: New file.
2960 * config/score/score-mdaux.c: New file.
2961 * config/score/score-mdaux.h: New file.
2962 * config/score/score-modes.def: New file.
2963 * config/score/score.opt: New file.
2964 * config/score/score-protos.h: New file.
2965 * config/score/score-version.h: New file.
2966 * config/score/t-score-elf: New file.
2967 * config.gcc: Add score*-*-* configurations(Update before).
2968 * doc/invoke.texi (Score Options): New section.
2969 * doc/md.texi (Score family): New section to document constraints.
2971 2006-10-19 Nick Clifton <nickc@redhat.com>
2973 * config/arm/arm.c: Fix spelling typo.
2975 2006-10-18 Tom Tromey <tromey@redhat.com>
2977 * doc/install.texi (Prerequisites): Mention automake 1.9.6.
2979 2006-10-18 Jan Hubicka <jh@suse.cz>
2982 * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
2985 2006-10-18 Marcin Dalecki <martin@dalecki.de>
2987 * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
2988 TSI_SAME_STMT, since that's the desired entity.
2990 2006-10-17 Wolfgang Gellerich <gellerich@de.ibm.com>
2992 * config/s390/contraints.md: New file.
2993 * config/s390/s390-protos.h (s390_mem_constraint,
2994 s390_O_constraint_str, s390_N_constraint_str,
2995 s390_float_const_zero_p): Function prototypes added.
2996 * config/s390/s390.c (s390_extra_constraint_str,
2997 s390_const_double_ok_for_constraint_p,
2998 s390_const_ok_for_constraint_p): Functions removed.
2999 (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
3000 s390_float_const_zero_p): New functions.
3001 * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
3002 CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
3003 EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
3004 Macro definitions removed.
3005 (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
3006 s390_extra_constraint_str): Functions removed.
3008 2006-10-17 Andrew Pinsiki <pinskia@gmail.com>
3009 Richard Sandiford <richard@codesourcery.com>
3012 * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
3013 * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
3015 2006-10-16 Geoffrey Keating <geoffk@apple.com>
3017 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
3018 (DWARF2_FRAME_REG_OUT): Likewise.
3019 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
3020 (DWARF2_FRAME_REG_OUT): Likewise.
3022 2006-10-17 Paul Brook <paul@codesourcery.com>
3024 * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
3026 2006-10-16 Brooks Moses <bmoses@stanford.edu>
3028 * doc/contrib.texi, doc/install.texi, doc/standards.texi:
3029 Standardize on "GNU Fortran" as the official name of the Fortran
3032 2006-10-16 Mike Stump <mrs@apple.com>
3034 * doc/invoke.texi (Darwin Options): Document -mkernel.
3035 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
3037 (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support. Add
3038 SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
3039 (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
3040 (OS_MISSING_ALTIVEC): Add.
3041 * config/i386/i386.c (override_options): Add
3042 SUBSUBTARGET_OVERRIDE_OPTIONS callout.
3043 * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
3044 -mkernel, -static or -mdynamic-no-pic is given.
3045 (C_COMMON_OVERRIDE_OPTIONS): Add.
3046 * config/darwin.opt (fapple-kext): Add.
3048 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
3049 -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
3051 (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
3052 (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
3053 (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
3054 (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
3055 (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
3056 (flag_mkernel): Add.
3057 (flag_apple_kext): Add.
3058 (TARGET_KEXTABI): Add.
3059 * config/darwin.c (darwin_handle_kext_attribute): Add.
3060 (DARWIN_VTABLE_P): Add.
3061 (darwin_binds_local_p): Add partial support for rebinding vtables
3063 (darwin_kextabi_p): Add.
3064 (darwin_override_options): Add.
3065 * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
3066 (darwin_kextabi_p): Add.
3067 (darwin_override_options): Add.
3068 * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
3069 __DYNAMIC__ and __STATIC__ here.
3071 2006-10-16 Brooks Moses <bmoses@stanford.edu>
3073 * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
3074 Added mention of "make pdf" target, and Texinfo requirements for
3077 2006-10-16 DJ Delorie <dj@redhat.com>
3079 * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
3080 into the GOT in case we need a subreg of the address.
3082 2006-10-16 Richard Guenther <rguenther@suse.de>
3085 * doc/extend.texi (X86 Built-in Functions): Fix typos in
3086 SSE builtin documentation. Document SSE2 builtins.
3088 2006-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3090 * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
3091 symbol in the output file for non-shared links when -nostdlib or
3092 -nodefaultlibs isn't specified.
3094 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
3095 posix thread support.
3097 2006-10-15 Jan Hubicka <jh@suse.cz>
3100 * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
3101 declared always_inline even when not inlining.
3103 2006-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
3104 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3105 Andrew Pinski <pinskia@gmail.com>
3108 * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
3110 2006-10-15 Jan Hubicka <jh@suse.cz>
3111 Richard Guenther <rguenther@suse.de>
3114 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
3115 process_function_and_variable_attributes on all variables, including
3116 those discovered during cgraph construction phase.
3118 2006-10-15 Bernhard Fischer <aldot@gcc.gnu.org>
3120 * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
3122 2006-10-14 Uros Bizjak <uros@kss-loka.si>
3124 * config/i386/athlon.md (athlon_fist): Add fisttp.
3126 2006-10-13 David Edelsohn <edelsohn@gnu.org>
3127 Ian Lance Taylor <ian@airs.com>
3130 * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
3131 CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
3134 2006-10-14 Kazu Hirata <kazu@codesourcery.com>
3136 * config/score/score.c, config/score/score.h: Fix comment
3139 2006-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3142 * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
3145 2006-10-13 Eric Christopher <echristo@apple.com>
3147 * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3149 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
3152 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
3153 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
3154 alignment supported by 32-bit ELF.
3156 2006-10-13 Eric Christopher <echristo@apple.com>
3158 * config/darwin.c (darwin_emit_unwind_label): Strip
3159 name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
3161 2006-10-13 Richard Guenther <rguenther@suse.de>
3163 PR tree-optimization/29446
3164 * tree-vrp.c (fix_equivalence_set): Remove.
3165 (extract_range_from_assert): Do not call fix_equivalence_set.
3166 (debug_value_range): Print a newline.
3167 (compare_name_with_value): For equivalence sets with
3168 inconsistent value ranges conservatively bail out.
3169 (compare_names): Likewise.
3171 2006-10-13 David Edelsohn <edelsohn@gnu.org>
3173 * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
3174 and MPFR for gfortran.
3176 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
3178 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
3179 alignment supported by 32-bit ELF.
3181 2006-10-13 Paolo Bonzini <bonzini@gnu.org>
3185 * c-typeck.c (digest_init): Always allow initializing vectors
3186 that have static storage duration with compound literals.
3187 * tree.c (build_type_attribute_qual_variant): New, based on
3188 build_type_attribute_variant.
3189 (build_type_attribute_variant): Rewrite using the former.
3190 (make_vector_type): Use build_type_attribute_qual_variant to build
3191 type variants. Use type_hash_canon on the others.
3193 2006-10-13 Daniel Berlin <dberlin@dberlin.org>
3194 Ramana Radhakrishnan <ramana.radhakrishnan@celunite.com>
3196 * tree-flow-inline.h (zero_ssa_operands): Fix comment.
3198 2006-10-12 Jan Hubicka <jh@suse.cz>
3201 * c-decl.c (c_make_fname_decl): Do not segfault in case where
3202 current_function_decl is set but current_function_scope is not.
3204 2006-10-12 Jie Zhang <jie.zhang@analog.com>
3206 * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
3207 emit_insn to emit eh_return_internal instruction.
3208 (eh_return_internal): Explicitly set pc.
3210 2006-10-11 Richard Guenther <rguenther@suse.de>
3212 PR tree-optimization/28230
3213 * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
3214 to the correct place.
3216 2006-10-11 Richard Guenther <rguenther@suse.de>
3219 * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
3222 2006-10-10 Brooks Moses <bmoses@stanford.edu>
3224 * configure.ac: Added pdf to "Make-hooks"
3225 * Makefile.in: Added TEXI2PDF definition, and various pdf-file
3226 targets and *.pdf file patterns in cleanup targets.
3227 * configure: Regenerated.
3229 2006-10-10 Anatoly Sokolov <aesok@post.ru>
3231 * config/avr/predicates.md: New file.
3232 * config/avr/avr.md: Include it.
3233 (REG_SP): New constant.
3234 (peepholes): Use predicates.
3235 (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
3236 difficult_branch, difficult_rvbranch, cbi, sbi, sbix_branch,
3237 sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
3239 2006-10-10 Adam Nemet <anemet@caviumnetworks.com>
3241 * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
3244 2006-10-10 Jakub Jelinek <jakub@redhat.com>
3247 * builtins.c (var_decl_component_p): New function.
3248 (fold_builtin_memset, fold_builtin_memory_op): Restrict
3249 single entry optimization to variables and components thereof.
3251 2006-10-10 Richard Guenther <rguenther@suse.de>
3253 PR rtl-optimization/29323
3254 * except.c (set_nothrow_function_flags): For functions
3255 that do not bind local bail out early.
3257 2006-10-10 Ben Elliston <bje@au.ibm.com>
3259 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
3262 2006-10-09 Richard Henderson <rth@redhat.com>
3264 Revert emutls patch.
3266 2006-10-09 Richard Guenther <rguenther@suse.de>
3269 * cgraphunit.c (verify_cgraph_node): Bail out on earlier
3272 2006-10-09 Steve Ellcey <sje@cup.hp.com>
3275 * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
3276 * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
3277 * configure: Regenerate.
3278 * config.in: Regenerate.
3280 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
3282 * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
3284 2006-10-08 Richard Sandiford <richard@codesourcery.com>
3286 * config/mips/mips.c (mips_legitimize_tls_address): Implement
3287 all TLS models in the same way as local exec if !TARGET_ABICALLS.
3288 Remove stray newline.
3290 2006-10-08 Richard Sandiford <richard@codesourcery.com>
3292 * config/mips/mips.c (mips_classify_symbol): Do not return
3293 SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
3294 (mips_in_small_data_p): Tweak comments.
3296 2006-10-08 Richard Sandiford <richard@codesourcery.com>
3298 * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
3300 2006-10-07 Kazu Hirata <kazu@codesourcery.com>
3302 * gimplify.c, sched-int.h: Fix comment typos.
3304 * sched-int.h: Fix comment typos.
3306 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3308 * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
3310 * sched-ebb.c (begin_schedule_ready): Use them.
3311 * haifa-sched.c (schedule_insn, move_insn, try_ready,
3312 add_to_speculative_block, create_check_block_twin, speculate_insn,
3313 fix_jump_move, move_block_after_check): Ditto.
3314 * sched-rgn.c (new_ready): Ditto.
3316 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3318 PR rtl-optimization/29128
3319 * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
3320 * sched-ebb.c (advance_target_bb): Use it to fix condition to
3321 allow interblock movement of speculation checks.
3323 2006-10-06 Zdenek Dvorak <dvorakz@suse.cz>
3326 * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
3327 casted to integer type.
3328 (get_address_cost): Decrease cost of [symbol + index] addressing modes
3329 if they are significantly more expensive than [reg + index] ones.
3331 2006-10-06 Jakub Jelinek <jakub@redhat.com>
3333 PR tree-optimization/29330
3334 * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
3335 (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
3336 on newly allocated ddrs.
3337 (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
3338 to VEC (loop_p, heap) pointer.
3339 (compute_data_dependences_for_loop): Adjust caller.
3340 (free_dependence_relations): Free DDR_LOOP_NEST.
3342 * tree-loop-linear.c (linear_transform_loops): Don't forget to
3343 free DEPENDENCE_RELATIONS and DATAREFS.
3346 * builtins.c (expand_builtin_sync_operation,
3347 expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
3348 Use convert_to_mode to handle promoted arguments.
3350 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
3352 * print-tree.c (print_node_brief, print_node): Print sign of Inf.
3354 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
3356 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
3358 2006-10-05 Uros Bizjak <uros@kss-loka.si>
3360 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
3361 "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
3362 Use <modeconstraint> instead of "r" as operand 1 constraint.
3364 2006-10-06 Olivier Hainque <hainque@adacore.com>
3366 * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
3367 Don't recurse on the pointed-to type.
3368 * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
3369 DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
3370 types with components of variable size.
3372 2006-10-06 Danny Smith <dannysmith@users.sourceforge.net>
3374 * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
3376 2006-10-06 Jakub Jelinek <jakub@redhat.com>
3378 PR tree-optimization/29290
3379 * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
3383 * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
3384 * config/i386/predicates.md (local_symbolic_operand): Likewise.
3387 * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
3388 the number of vector elements fill the rest with zeros.
3390 2006-10-05 Richard Sandiford <richard@codesourcery.com>
3392 * config/mips/mips.c (mips_pass_by_reference): Do not return false
3393 for EABI if type is NULL. Use a size check based on GET_MODE_SIZE
3396 2006-10-05 Bernd Schmidt <bernd.schmidt@analog.com>
3398 * config/bfin/bfin.md (subsi3): Lose expander, change previously
3399 unnamed pattern into subsi3. Use correct constraints/predicates.
3400 * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
3401 * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
3403 2006-10-05 Ira Rosen <irar@il.ibm.com>
3405 * doc/loop.texi: Add data references analysis description.
3407 2006-10-04 Brooks Moses <bmoses@stanford.edu>
3409 * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
3411 2006-10-04 Richard Henderson <rth@redhat.com>
3412 Jakub Jelinek <jakub@redhat.com>
3414 * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
3415 * builtin-types.def (BT_WORD): Make unsigned.
3416 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
3417 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
3418 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
3419 * c-decl.c (grokdeclarator): Don't error if !have_tls.
3420 * c-parser.c (c_parser_omp_threadprivate): Likewise.
3421 * cgraph.c (decide_is_variable_needed): Look at force_output.
3422 Recurse for emulated tls.
3423 * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
3424 checks redundant with decide_is_variable_needed.
3425 (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
3426 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
3428 * expr.c (emutls_var_address): New.
3429 (expand_expr_real_1): Expand emulated tls.
3430 (expand_expr_addr_expr_1): Likewise.
3431 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
3432 * output.h (emutls_finish): Declare.
3433 * toplev.c (compile_file): Call it.
3434 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
3435 address before wrapping in CONST.
3436 * varasm.c (emutls_htab, emutls_object_type): New.
3437 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
3438 (get_emutls_object_name, get_emutls_object_type): New.
3439 (get_emutls_init_templ_addr, emutls_decl): New.
3440 (emutls_common_1, emutls_finish): New.
3441 (assemble_variable): When emulating tls, swap decls; generate
3442 constructor for the emutls objects.
3443 (do_assemble_alias): When emulating tls, swap decl and target name.
3444 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
3446 * emutls.c: New file.
3447 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
3448 tls_object for real tls.
3450 2006-10-04 Zack Weinberg <zackw@panix.com>
3452 Fix bug in constraint-check generator, reported by Rask Ingemann
3454 * genpreds.c (add_constraint): Don't remove anything from the
3456 (write_tm_constrs_h): Detect whether "op" argument is used, and
3457 mark it ARG_UNUSED if it isn't.
3458 (write_insn_const_int_ok_for_constraint): Skip the part of the
3459 expression that would test whether "op" (which is not available
3460 here) is a CONST_INT.
3462 2006-10-04 Ryan Mansfield <rmansfield@qnx.com>
3465 * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
3467 2006-10-03 Geoffrey Keating <geoffk@apple.com>
3469 * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
3470 current Leopard versions.
3471 * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
3473 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
3475 * doc/install.texi: Fix typos.
3477 2006-10-03 Eric Botcazou <ebotcazou@libertysurf.fr>
3479 * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
3480 * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
3481 * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
3483 2006-10-02 Jack Howarth <howarth@bromo.med.uc.edu>
3485 * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
3486 arg to be struct mach_header_64* instead.
3488 2006-10-02 Jakub Jelinek <jakub@redhat.com>
3491 * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
3492 side effects after the outer expression's post side effects.
3494 2006-10-01 Sandra Loosemore <sandra@codesourcery.com>
3496 * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix
3497 comments to reflect actual behavior and relationship between
3498 DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
3500 * doc/c-tree.texi (Working with declarations): Fix documentation
3501 of FIELD_DECL likewise.
3503 2006-10-01 Ryan Mansfield <rmansfield@qnx.com>
3506 * doc/extend.texi: Add used variable attribute description.
3508 2006-09-30 Joseph S. Myers <joseph@codesourcery.com>
3511 * c.opt (Woverride-init): New.
3512 * c-opts.c (c_common_post_options): Default warn_override_init to
3514 * c-typeck.c (add_pending_init, output_init_element): Warn for
3515 overriding initializers without side effects.
3516 * doc/invoke.texi (-Woverride-init): Document.
3519 2006-09-30 Eric Botcazou <ebotcazou@libertysurf.fr>
3521 PR rtl-optimization/28096
3522 * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
3523 assignment has already been used as a destination earlier in the block.
3525 2006-09-29 Eric Botcazou <ebotcazou@adacore.com>
3527 * builtins.c (expand_builtin_setjmp): Delete.
3528 (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
3529 <BUILT_IN_SETJMP_SETUP>: New case.
3530 <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
3531 <BUILT_IN_SETJMP_RECEIVER>: Likewise.
3532 * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
3533 (BUILT_IN_SETJMP_DISPATCHER): Likewise.
3534 (BUILT_IN_SETJMP_RECEIVER): Likewise.
3535 * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
3536 (lower_function_body): Initialize it to false. If it is set to true
3537 at the end of the processing, emit the setjmp dispatcher.
3538 (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
3539 is __builtin_setjmp and set calls_builtin_setjmp to true as well.
3540 <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
3541 on the rhs of the assignment.
3542 (lower_builtin_setjmp): New function.
3543 * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
3544 BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
3545 * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
3546 to detect calls that can go to non-local labels. Use specific
3547 helper to create the abnormal edges associated with them.
3548 <MODIFY_EXPR>: Likewise.
3549 (make_abnormal_goto_edges): New function extracted from...
3550 (make_goto_expr_edges): ...here. Call it for computed gotos.
3551 (simple_goto_p): Minor tweak.
3552 (tree_can_make_abnormal_goto): New predicate.
3553 (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
3554 (tree_purge_dead_abnormal_call_edges): New function.
3555 * tree-flow.h (tree_can_make_abnormal_goto): Declare.
3556 (tree_purge_dead_abnormal_call_edges): Likewise.
3557 (make_abnormal_goto_edges): Likewise.
3558 * tree-inline.c (expand_call_inline): Simplify statement frobbing.
3559 Purge all dead abnormal edges if the call was in the last statement.
3560 * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
3561 (execute_fixup_cfg): If there are non-local labels in the function,
3562 scan the basic blocks and split them at calls that can go to non-local
3563 labels or add missing abnormal call edges. Write down the CFG in the
3565 (pass_fixup_cfg): Remove TODO_dump_func flag.
3566 * unwind-sjlj.c: Poison setjmp.
3567 * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
3568 * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
3569 (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
3570 (DONT_USE_BUILTIN_SETJMP): Document it.
3572 2006-09-28 Geoffrey Keating <geoffk@apple.com>
3575 * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
3576 to 1 when __ppc64__ is defined.
3577 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
3579 * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
3581 2006-09-28 Steve Ellcey <sje@cup.hp.com>
3583 * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
3584 * config/ia64/unwind-hpux.c: Delete.
3586 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
3588 * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
3589 on the element before gimplifying it, instead of punting if it is of
3592 2006-09-28 Zdenek Dvorak <dvorakz@suse.cz>
3594 * doc/loop.texi: New file.
3595 * doc/gccint.texi: Reference loop.texi.
3596 * Makefile.in (loop.texi): Add.
3598 2006-09-27 Geoffrey Keating <geoffk@apple.com>
3600 * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
3602 * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
3603 * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
3605 2006-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
3607 * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
3609 2006-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
3611 * doc/install.texi: Document required versions of GMP and MPFR.
3613 2006-09-27 Paul Brook <paul@codesourcery.com>
3616 * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
3618 2006-09-27 Richard Sandiford <richard@codesourcery.com>
3620 * reload1.c (alter_reg): Require the alignment of the stack slot to
3621 be at least reg_max_ref_width bytes.
3622 (scan_paradoxical_subregs): Record the largest width in
3625 2006-09-26 Jakub Jelinek <jakub@redhat.com>
3629 * tree-nested.c (struct nesting_info): Added static_chain_added.
3630 (convert_call_expr): Set static_chain_added when adding static
3631 chain. Handle OMP_PARALLEL and OMP_SECTION.
3633 2006-09-25 Matthias Klose <doko@debian.org>
3635 * doc/invoke.texi: Add missing full stop.
3637 2006-09-25 Richard Henderson <rth@redhat.com>
3639 * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
3640 before cgraph_function_flags_ready.
3642 2006-09-24 Zdenek Dvorak <dvorakz@suse.cz>
3643 Adam Nemet <anemet@caviumnetworks.com>
3645 * tree-ssa-loop-ivopts.c (aff_combination_convert,
3646 determine_common_wider_type): New functions.
3647 (get_computation_aff): Use them to simplify arithmetic between
3648 UBASE and CBASE if they are shortened from the same type.
3650 2006-09-24 Kazu Hirata <kazu@codesourcery.com>
3653 * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
3654 -2147483647 - 1 instead of 0x80000000.
3656 2006-09-23 Revital1 Eres <ERES@il.ibm.com>
3658 * flags.h (HONOR_NANS): Fix typo in comment.
3660 2006-09-23 Uros Bizjak <uros@kss-loka.si>
3662 * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
3664 2006-09-23 Jakub Jelinek <jakub@redhat.com>
3668 * tree.c (merge_attributes, attribute_list_contained): If both
3669 TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
3671 * c-typeck.c (comptypes_internal): Don't consider aggregates
3672 in different TUs as compatible if there one set of attributes is
3673 not a subset of the other type's attributes.
3674 (composite_type): Try harder not to create a new aggregate type.
3676 2006-09-22 Geoffrey Keating <geoffk@apple.com>
3678 * config/i386/driver-i386.c: Always define host_detect_local_cpu.
3679 * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
3680 or x86_64 host. Define HAVE_LOCAL_CPU_DETECT.
3681 (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
3682 than replicating condition above.
3683 * config.host (i[34567]86-*-*): Always use driver-i386.o.
3685 * config/darwin.h (LINK_SYSROOT_SPEC): New.
3686 (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
3687 the linker by default.
3689 2006-09-22 Mike Stump <mrs@apple.com>
3691 * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
3694 2006-09-22 Richard Guenther <rguenther@suse.de>
3697 * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
3698 sort of stack variables stable.
3700 2006-09-22 Peter Bergner <bergner@vnet.ibm.com>
3703 * explow.c (force_reg): Set REG_POINTER flag according to
3706 2006-09-22 Zdenek Dvorak <dvorakz@suse.cz>
3708 PR tree-optimization/28888
3709 * tree-if-conv.c (combine_blocks): Rewritten.
3710 * tree-cfg.c (tree_verify_flow_info): Check that edges with
3711 EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
3713 2006-09-22 Jakub Jelinek <jakub@redhat.com>
3715 * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
3718 2006-09-21 Richard Sandiford <richard@codesourcery.com>
3720 * varasm.c (copy_constant): Fix reversed gcc_assert check.
3722 2006-09-21 Janis Johnson <janis187@us.ibm.com>
3724 * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
3726 2006-09-21 Roger Sayle <roger@eyesopen.com>
3729 * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
3730 dw_fde_current_label, to be the start of the function, i.e. the same
3731 value as dw_fde_begin.
3733 2006-09-20 Richard Sandiford <richard@codesourcery.com>
3735 * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
3736 * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
3737 (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
3738 (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
3739 (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
3740 (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
3741 (abs<mode>2, neg<mode>2): Likewise.
3742 * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
3743 (*mips_abs_ps): New define_insn.
3745 2006-09-20 Josh Conner <jconner@apple.com>
3748 * calls.c (expand_call): Allow reuse of structure return stack
3751 2006-09-20 Paul Brook <paul@codesourcery.com>
3753 * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
3756 2006-09-20 Janis Johnson <janis187@us.ibm.com>
3758 * doc/extend.texi (Decimal Float): Update for latest draft TR,
3759 clean up terminology.
3761 2006-09-20 Steve Ellcey <sje@cup.hp.com>
3764 * ifcvt.c (dead_or_predicable): Don't predicate then blocks
3765 with tablejumps in them.
3767 2006-09-20 Jakub Jelinek <jakub@redhat.com>
3770 * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
3771 wrap it into TARGET_EXPR.
3773 2006-09-20 Eric Christopher <echristo@apple.com>
3775 * config/i386/i386.c (x86_fisttp): Remove.
3776 * config/i386/i386.h (x86_fisttp): Ditto.
3777 (TARGET_FISTTP): Ditto.
3779 2006-09-19 Eric Christopher <echristo@apple.com>
3781 * doc/tm.texi (OBJC_JBLEN): Describe.
3782 * config/i386/darwin.h (OBJC_JBLEN): Define.
3783 * config/rs6000/darwin.h: Ditto.
3785 2006-09-19 Steven Bosscher <steven@gcc.gnu.org>
3787 PR rtl-optimization/21299
3788 * reload1.c (reload): Purge invalid ASMs in the final pass.
3790 2006-09-19 Steve Ellcey <sje@cup.hp.com>
3793 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
3794 pointers as legitimate constants.
3796 2006-09-19 Paul Brook <paul@codesourcery.com>
3799 * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
3801 2006-09-17 Zdenek Dvorak <dvorakz@suse.cz>
3803 PR tree-optimization/28887
3804 * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
3805 component parts from the reference.
3806 (gather_memory_references_ref): Record the reference without the
3807 nonaddressable component parts.
3809 2006-09-17 Steven Bosscher <steven@gcc.gnu.org>
3812 * c-opts.c (c_common_handle_option): Ignore the -std options
3813 if the input language is assembly.
3815 2006-09-17 Ira Rosen <irar@il.ibm.com>
3818 * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
3820 (ptr_ptr_may_alias_p): Likewise.
3821 (record_record_differ_p): New function.
3822 (base_object_differ_p): Call record_record_differ_p.
3824 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
3827 * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
3828 away for the expr argument.
3830 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
3833 * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
3834 before using it for dumping after vectorizing loops.
3836 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
3837 Jack Howarth <howarth@bromo.med.uc.edu>
3840 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
3841 skip on error_mark_node.
3842 (rs6000_darwin64_record_arg_recurse): Likewise.
3844 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
3846 * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
3847 * doc/rtl.texi: Remove related documentation.
3849 2006-09-16 Bernd Schmidt <bernd.schmidt@analog.com>
3851 * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
3854 2006-09-15 Jim Wilson <wilson@specifix.com>
3856 * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
3857 Handle symbol offsets same as they are handled in ia64_expand_move
3860 2006-09-16 Andreas Tobler <a.tobler@schweiz.org>
3862 * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
3863 Add forgotten parameter to the fprintf call.
3865 2006-09-15 Steve Ellcey <sje@cup.hp.com>
3867 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
3869 2006-09-15 Uros Bizjak <uros@kss-loka.si>
3871 * doc/contrib.texi: Add my entry.
3873 2006-09-15 Nick Clifton <nickc@redhat.com>
3875 * doc/md.texi (Processor pipeline description): Fix typo in
3876 example of how to use the absence_set directive and reword the
3877 description to make it slightly easier to read.
3879 2006-09-15 Bernd Schmidt <bernd.schmidt@analog.com>
3881 * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
3882 * loop-doloop.c (doloop_optimize): Use it to limit costs of
3883 expanding the number of iterations.
3884 * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
3886 * cfgrtl.c (emit_insn_at_entry): New function.
3887 * rtl.h (emit_insn_at_entry): Declare it.
3888 * integrate.c (emit_initial_value_sets): Use it.
3890 * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
3892 * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
3894 (struct loop_work and related VEC declarations): Delete.
3895 (bfin_dump_loops): Print out new member bad.
3896 (bfin_bb_in_loop): Use plain bitmap test. Don't recurse.
3897 (bfin_scan_loop): Don't recurse.
3898 (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
3899 loops. No longer need to update outer loops if the current one is
3900 found bad. Move some validitiy checks to bfin_discover_loop.
3901 (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
3902 but changed not to check for nesting. Also changed to use the new bad
3904 (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
3905 time. Use bitmap based test to discover loop nesting.
3907 2006-09-15 Kazu Hirata <kazu@codesourcery.com>
3909 * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
3912 2006-09-14 Richard Guenther <rguenther@suse.de>
3913 Kazu Hirata <kazu@codesourcery.com>
3915 PR middle-end/28884.
3916 * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
3917 (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
3918 Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
3919 with TARGET_FUNCTION_VALUE.
3921 2006-09-14 Anatoly Sokolov <aesok@post.ru>
3924 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
3926 2006-09-13 Aldy Hernandez <aldyh@redhat.com>
3928 * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
3931 2006-09-13 Andrew Pinski <pinskia@physics.uc.edu>
3934 * dwarf2out.c (loc_descriptor_from_tree_1): Handle
3937 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
3939 * basic_block.h (bb_has_eh_pred): Fix comment.
3941 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
3943 * flow.c (calculate_global_regs_live): Invalidate eh registers
3944 on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
3945 (propagate_block): Handle eh registers as if they were set at basic
3947 * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
3949 * global.c (global_conflicts): Make eh registers to conflict with
3950 pseudos live at basic block begin.
3951 * basic_block.h (bb_has_eh_pred): New function.
3953 2006-09-13 Richard Sandiford <richard@codesourcery.com>
3955 PR rtl-optimization/28982
3956 * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
3957 index of a PRE_MODIFY or POST_MODIFY address.
3958 * reload1.c (inc_for_reload): Use find_replacement on the original
3959 base and index registers.
3961 2006-09-12 H.J. Lu <hongjiu.lu@intel.com>
3963 * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
3964 for -Os. Update __m128 alignment requirement.
3966 2006-09-13 Jan Hubicka <jh@suse.cz>
3968 * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
3970 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3972 PR rtl-optimization/28243
3973 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
3974 the insn to which the note was originally attached.
3976 2006-09-12 Andrew Pinski <pinskia@physics.uc.edu>
3977 Roger Sayle <roger@eyesopen.com>
3979 * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
3980 outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
3981 on platforms that don't use dwarf for debug info.
3983 2006-09-12 Jason Merrill <jason@redhat.com>
3986 * builtins.c (expand_builtin_setjmp_receiver): Clobber
3987 hard_frame_pointer_rtx after using it to update the frame pointer.
3989 2006-09-12 Roger Sayle <roger@eyesopen.com>
3991 * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
3992 (TARGET_ASM_CLOSE_PAREN): Likewise.
3993 * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
3994 (TARGET_ASM_CLOSE_PAREN): Likewise.
3996 2006-09-12 Roger Sayle <roger@eyesopen.com>
3999 * config/alpha/alpha.c (alpha_start_function): Don't emit stack
4000 frame information for frames larger than 512 Kbytes on Tru64 when
4001 using the native assembler.
4003 2006-09-12 Roger Sayle <roger@eyesopen.com>
4007 * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
4008 and symbols. Instead use the implementation from cse.c's hash_rtx.
4010 2006-09-12 Jan Hubicka <jh@suse.cz>
4012 PR rtl-optimization/28071
4013 * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
4014 (vect_transform_loop): Likewise.
4015 * tree-vectorizer.c (new_loop_vec_info): Likewise.
4016 (new_loop_vec_info): Likewise.
4017 (destroy_loop_vec_info): Likewise.
4018 * tree-dfa.c (create_var_ann): Use GCC_CNEW.
4019 (create_stmt_ann): Likewise.
4020 (create_tree_ann): Rename to ...
4021 (create_tree_common_ann): ... this one; allocate only the common part
4023 * tree-vn.c (set_value_handle): Use get_tree_common_ann.
4024 (get_value_handle): Likewise.
4025 * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
4026 get_tree_common_ann.
4027 * tree-vectorizer.h (set_stmt_info): Take stmt annotation.