1 2006-04-05 DJ Delorie <dj@redhat.com>
3 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
6 2006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
8 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
9 got-relative addressing for anything but SImode.
11 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
12 even if the calling function doesn't modify them.
14 2006-04-05 Richard Guenther <rguenther@suse.de>
16 PR tree-optimization/26919
17 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
18 to cgraph_estimate_size_after_inlining.
20 2006-04-05 Alan Modra <amodra@bigpond.net.au>
22 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
24 2006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
26 PR tree-optimization/26996
27 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
28 VECTOR_TYPE variables.
30 2006-04-05 Richard Guenther <rguenther@suse.de>
32 PR tree-optimization/26763
33 * fold-const.c (fold_comparison): Move folding of
34 PTR + CST CMP PTR + CST ...
35 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
37 2006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
39 * doc/install.texi (Prerequisites): Refine some wording on
40 bootstrapping and ksh.
41 Move the version numbers of DejaGnu here from the testing section
42 and fix casing of names.
43 Fix markup and clarify wording for autogen requirements.
44 Refer to GCJ instead of just java.
45 Refer to SVN instead of CVS.
46 Describe diffutils as useful instead of necessary.
47 (Downloading the source): Refer to SVN instead of CVS.
48 Adjust a link to our web site accordingly.
49 (Configuration): Fix casing of Bison.
50 (Building): Refer to SVN instead of CVS.
51 Fix a sentence on the use of Bison and remove duplicate (and
52 incorrect) version number of Bison requirement.
53 Remove one redundant list of packages needed for building.
54 (Specific): Avoid reference to CVS.
56 2006-04-04 Eric Christopher <echristo@apple.com>
58 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
59 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
60 (rs6000_handle_struct_attribute): New.
61 (rs6000_ms_bitfield_layout_p): Ditto.
63 2006-04-04 Geoffrey Keating <geoffk@apple.com>
65 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
66 NULL for dso parameter to atexit_common.
68 2006-04-04 Eric Christopher <echristo@apple.com>
70 * config/i386/i386.c (machopic_output_stub): Output \t
71 between instructions and operands.
73 2006-04-04 David Edelsohn <edelsohn@gnu.org>
75 * config/rs6000/rs6000.c (num_insns_constant_wide): Change
76 satisfies_constraint_[IL] to explicit tests on value.
78 2006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
80 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
81 set_nb_iterations_in_loop): Use build_int_cst instead of
83 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
84 build_int_cst instead of convert.
86 2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
88 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
89 new value 2 for incoming.
90 * function.c (expand_function_start): Call struct_value_rtx
92 * config/sparc/sparc.md: Comment updated_return.
93 * config/sparc/sparc.opt: Add -mstd-struct-return option.
94 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
95 struct return if sparc_std_struct_return and incoming is 2.
96 (print_operand): Do not adjust return if
97 sparc_std_struct_return.
99 2006-04-04 Roger Sayle <roger@eyesopen.com>
101 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
102 convert in the middle-end.
103 * expr.c (store_expr, store_constructor, get_inner_reference,
104 expand_expr_real_1, string_constant, try_casesi, try_tablejump):
106 * tree.c (build_range_type): Likewise.
108 2006-04-04 Tom Tromey <tromey@redhat.com>
110 * doc/install.texi (Prerequisites): Mention jar.
112 2006-04-04 Daniel Berlin <dberlin@dberlin.org>
114 * doc/tree-ssa.texi (Preserving the virtual ssa form): New
117 2006-04-04 Matthias Klose <doko@debian.org>
119 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
121 2006-04-03 Geoffrey Keating <geoffk@apple.com>
123 * doc/extend.texi (Function Attributes): Rewrite visibility
124 attribute documentation.
125 * doc/invoke.texi (C++ Dialect Options): Rewrite
126 -fvisibility-inlines-hidden documentation to describe something
127 entirely different, although in practise compatible.
128 (Code Gen Options): Warn about system headers in -fvisibiltity=
131 * doc/extend.texi (Other Builtins): Document that
132 __builtin_nan is a compile-time constant only when its argument
135 2006-04-03 Adam Nemet <anemet@caviumnetworks.com>
137 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
138 trying to remove TRUNCATE check if all bits outside the new mode
139 are identical to the sign bit.
141 2006-04-03 Jeff Law <law@redhat.com>
143 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
144 and operand scanning in some common cases.
146 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
147 Dale Johannesen <dalej@apple.com>
150 * regclass.c (struct reg_pref): Update documentation.
151 (regclass): Set prefclass to NO_REGS if memory is the best option.
152 (record_reg_classes): Cope with a prefclass set to NO_REGS.
153 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
154 into account. For non-registers, equate an empty preferred
155 reload class to a `!' in the constraint; move the if clause to
156 do so after those that reject the insn.
157 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
159 (find_dummy_reload): Likewise.
160 * doc/tm.texi (Register Classes): Document what it means
161 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
162 * config/i386/i386.c (ix86_preferred_reload_class): Force
163 using SSE registers (and return NO_REGS for floating-point
164 constants) if math is done with SSE.
165 (ix86_preferred_output_reload_class): New.
166 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
167 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
168 * config/i386/i386.md: Remove # register preferences.
170 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
173 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
174 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
176 (instantiate_parameters_1): Convert the operands before calling
177 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
178 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
180 2006-04-02 Roger Sayle <roger@eyesopen.com>
182 * builtins.c (dummy_object): Use build_int_cst instead of convert.
183 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
185 * dojump.c (do_jump): Likewise.
186 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
187 * gimplify.c (gimple_boolify, gimplify_init_constructor,
188 gimplify_boolean_expr): Likewise.
189 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
190 * varasm.c (array_size_for_constructor): Likewise.
191 * tree-object-size.c (compute_object_offset): Likewise.
193 2006-04-02 Roger Sayle <roger@eyesopen.com>
196 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
197 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
199 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
201 PR tree-optimization/26939
202 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
204 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
206 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
207 at_stmt. Convert the type of operands before calling
208 build_polynomial_chrec.
209 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
211 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
212 (instantiate_parameters_1): Convert the type of operands before calling
213 build_polynomial_chrec.
214 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
215 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
216 reset_evolution_in_loop): Insert asserts to check the types of the
218 (chrec_type): Moved...
219 (eq_evolutions_p): Use operand_equal_p.
220 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
221 the types of the operands.
222 (chrec_type): ...here.
223 * tree-data-ref.c (create_data_ref): Convert the operands before
224 calling chrec_replace_initial_condition.
225 (same_access_functions, analyze_subscript_affine_affine,
226 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
227 (compute_subscript_distance, analyze_ziv_subscript,
228 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
229 analyze_miv_subscript): Convert the operands before calling
230 chrec_fold_minus or chrec_fold_plus.
232 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
234 * tree-data-ref.c (compute_all_dependences): Use a pointer to
235 the dependence_relations vector.
236 (compute_data_dependences_for_loop): Adjust call to
237 compute_all_dependences.
239 2006-04-01 Roger Sayle <roger@eyesopen.com>
240 Richard Henderson <rth@redhat.com>
242 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
243 gimple_boolify on the condition before calling gimplify_expr.
245 2006-03-31 Bob Wilson <bob.wilson@acm.org>
247 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
248 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
249 the frame size. Update to use the new macros.
250 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
251 * config/xtensa/ieee754-df.S: Likewise.
253 2006-03-31 Richard Henderson <rth@redhat.com>
255 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
256 (make_edges): ... here. Control fallthru creation with a local
257 variable. Do not play with fake edges.
258 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
259 (make_goto_expr_edges): Don't play with fake edges. Make for_call
262 2006-04-01 Joseph S. Myers <joseph@codesourcery.com>
264 * dwarf2.h (DW64_CIE_ID): Define.
265 * dwarf2out.c (DWARF_CIE_ID): Define.
266 (output_call_frame_info): Output 0xffffffff before standard 8-byte
267 length header. Use DWARF_CIE_ID.
268 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
269 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
271 2006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
273 * config/sh/linux-atomic.asm: New file.
274 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
276 2006-03-31 DJ Delorie <dj@redhat.com>
278 * config/m32c/cond.md: Set condition flags properly throughout.
279 * config/m32c/minmax.md: Likewise.
280 * config/m32c/prologue.md: Likewise.
281 * config/m32c/bitops.md: Likewise.
282 * config/m32c/muldiv.md: Likewise.
283 * config/m32c/mov.md: Likewise.
284 * config/m32c/addsub.md: Likewise.
285 * config/m32c/m32c.md: Likewise.
286 * config/m32c/jump.md: Likewise.
287 * config/m32c/shift.md: Likewise.
289 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
290 conditionally output the pattern for this.
291 * config/m32c/m32c.c (flags_needed_for_conditional): New.
292 (m32c_compare_redundant): New.
293 (m32c_output_compare): New.
294 * config/m32c/m32c-protos.h (m32c_output_compare): New.
296 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
297 dest, not src. Allow other 4-byte modes.
299 2006-03-30 Denis Chertykov <denisc@overta.ru>
301 * doc/md.texi: Refer to avr/constraints.md instead of
304 2006-03-30 Roger Sayle <roger@eyesopen.com>
306 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
307 signed vs. unsigned comparison failures on some hosts.
309 2006-03-31 Alan Modra <amodra@bigpond.net.au>
312 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
313 change to FLOAT_REGS.
315 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
316 (rs6000_override_options): Use it.
317 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
318 only for -mabi=spe/no-spe and -mabi=altivec.
320 2006-03-30 Geoffrey Keating <geoffk@apple.com>
322 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
325 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
327 * Makefile.in: Rename docdir to gcc_docdir.
329 2006-03-30 Roger Sayle <roger@eyesopen.com>
332 * expr.c (emit_group_store): Optimize group stores into a pseudo
333 register by using a paradoxical subreg to initialize the destination
334 if the first or last member of the group specifies a "low part".
336 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
339 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
340 * target.h (struct gcc_target.speculate_insn): Change type of the
341 second parameter to 'int'.
342 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
343 the second operand of the DEPS_LIST.
344 (copy_DEPS_LIST_list): Update reference to the second operand of the
346 * rtl.h (alloc_DEPS_LIST): Update signature.
347 * sched-int.h (ds_t): Change typedef to 'int'.
348 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
350 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
352 * haifa-sched.c (try_ready): Change condition to restore
353 non-speculative pattern of the instruction.
354 (process_insn_depend_be_in_spec): Code to keep probability of the
355 speculative dependence non-decreasing.
357 2006-03-30 Jie Zhang <jie.zhang@analog.com>
359 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
360 (single_move_for_movmem): ... this. Also change all uses.
361 (bfin_expand_strmov): Renamed to...
362 (bfin_expand_movmem): ... this. Also change all uses.
363 * config/bfin/bfin.md (movstrsi): Renamed to...
366 2006-03-30 Paolo Bonzini <bonzini@gnu.org>
368 PR tree-optimization/26830
370 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
371 (copy_prop_visit_stmt): Remove write-only variable ann.
372 (init_copy_prop): Check variable loop depth here. Do not simulate
373 memory-tag and virtual operand PHIs except for store copy prop.
375 2006-03-30 Richard Guenther <rguenther@suse.de>
377 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
378 variants with double arguments.
380 2006-03-29 David Edelsohn <edelsohn@gnu.org>
382 * genpreds.c (write_tm_constrs_h): Delete variable p.
383 * genconditions.c (write_header): Add tm-constrs.h to included
385 * genpeep.c (main): Add toplev.h to included headers.
386 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
387 (build/genpeep.o): Add toplev.h dependency.
388 * config/rs6000/constraints.md: Add "W" constraint.
390 2006-03-29 Roger Sayle <roger@eyesopen.com>
392 * stor-layout.c (mode_for_size_tree): Remove restiction on type
393 sizes by correctly testing whether the size fits a host integer.
394 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
395 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
396 SImode range for the default sizetype and bitsizetype.
398 2006-03-29 Roger Sayle <roger@eyesopen.com>
400 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
401 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
402 quickly if the argument is already of the correct type.
403 Call fold_build1 instead of build1. Tidy up blank lines.
405 2006-03-29 David Edelsohn <edelsohn@gnu.org>
407 * genemit.c (main): Add tm-constrs.h to included headers.
408 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
409 * genpeep.c (main): Add tm-constrs.h to included headers.
410 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
411 (write_tm_constrs_h): this and write complete file.
412 (write_tm_preds_h): Do not emit satisfies_constraint fns.
413 (write_insn_preds_c): Add tm-constrs.h to included headers.
414 (gen_constrs): New variable.
415 (parse_option): Parse "-c".
416 (main): Invoke write_tm_constrs_h.
417 * genrecog.c (write_header): Add tm-constrs.h to included headers.
418 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
419 (object_out_file): Add tm-constrs.h dependency.
421 (insn-output.o): Same.
423 (insn-preds.o): Same.
424 (insn-recog.o): Same.
425 (tm-constsr.h): New target.
426 (s-constrs-h): New target.
428 * config/rs6000/constraints.md: New file.
429 * config/rs6000/rs6000.c: Include tm-constrs.h.
430 (num_insn_constant_wide): Convert to satisfies_constraint.
431 (rs6000_rtx_costs): Convert to satisfies_constraint.
432 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
433 (CONST_OK_FOR_LETTER_P): Delete.
434 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
435 (EXTRA_CONSTRAINT): Delete.
436 (EXTRA_MEMORY_CONSTRAINT): Delete.
437 (EXTRA_ADDRESS_CONSTRAINT): Delete.
438 * config/rs6000/predicates.md: Convert to satisfies_constraint.
439 * config/rs6000/rs6000.md: Include constraints.md. Convert to
440 satisfies_constraint.
442 * config/i386/i386.c: Include tm-constrs.h.
444 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
446 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
447 * tree-data-ref.c (find_data_references_in_loop,
448 compute_data_dependences_for_loop): Use pointers to VEC.
449 (analyze_all_data_dependences): Adjust calls.
450 * tree-data-ref.h (find_data_references_in_loop,
451 compute_data_dependences_for_loop): Adjust declarations.
452 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
453 compute_data_dependences_for_loop.
455 2006-03-29 Paul Brook <paul@codesourcery.com>
457 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
460 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
462 PR tree-optimization/26859
463 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
465 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
466 for the step after fold_convert.
468 2006-03-29 Paul Brook <paul@codesourcery.com>
470 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
471 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
473 2006-03-29 Paul Brook <paul@codesourcery.com>
476 * targhooks.c (default_narrow_bitfield): New fuction.
477 * targhooks.h (default_narrow_bitfield): add prototype.
478 * target.h (gcc_target): Add narrow_volatile_bitfield.
479 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
480 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
481 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
482 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
484 2006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
486 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
488 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
489 (NR_C_MODES): Add TDmode, DDmode and SDmode.
490 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
491 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
492 (s390_function_arg_float): Allow SDmode and DDmode values to be
493 passed in floating point registers.
494 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
495 check with SCALAR_FLOAT_MODE_P.
496 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
498 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
500 PR tree-optimization/25985
501 * tree-ssa-loop-niter.c (number_of_iterations_le,
502 number_of_iterations_ne): Make comments more precise.
503 (number_of_iterations_cond): Add only_exit argument. Use the
504 fact that signed variables do not overflow only when only_exit
506 (loop_only_exit_p): New.
507 (number_of_iterations_exit): Pass result of loop_only_exit_p to
508 number_of_iterations_cond.
510 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
512 PR tree-optimization/26643
513 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
516 2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
518 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
519 (divsi3_i4_int): Likewise.
521 2006-03-28 Roger Sayle <roger@eyesopen.com>
523 * expr.c (emit_group_store): Only create a new pseudo reg if the
524 quantity it needs to hold isn't already a suitable pseudo.
526 2006-03-28 Jeff Law <law@redhat.com>
528 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
529 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
531 2006-03-28 Roger Sayle <roger@eyesopen.com>
533 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
534 the equivalent ~X & Y, and the symmetry related transformations.
535 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
536 ~X & Y, and symmetry related transforms.
538 2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
540 Revert my 2006-03-27 patches.
542 2006-03-28 Roger Sayle <roger@eyesopen.com>
544 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
545 ~(T1)X, when T1 and T2 are integer types of the same precision
546 and (T2)X isn't an extension.
548 2006-03-28 Jeff Law <law@redhat.com>
550 PR tree-optimization/26796
551 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
552 need EH edge cleanups rather than purging them immediately.
553 (eliminate_degenerate_phis): Handle queued EH cleanups.
555 2006-03-28 Daniel Berlin <dberlin@dberlin.org>
557 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
560 2006-03-27 Roger Sayle <roger@eyesopen.com>
563 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
564 cast BIT_NOT_EXPR operand to the correct type.
566 2006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
568 * tree-loop-linear.c: Don't include varray.h.
569 (gather_interchange_stats, try_interchange_loops,
570 linear_transform_loops): Use VEC instead of VARRAY.
571 * lambda-mat.c: Don't include varray.h.
572 * tree-chrec.c: Same.
573 * lambda-trans.c: Same.
574 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
575 VEC instead of VARRAY.
576 * tree-vectorizer.h: Idem.
577 * tree-data-ref.c (dump_data_references,
578 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
579 initialize_data_dependence_relation, finalize_ddr_dependent,
580 compute_all_dependences, find_data_references_in_loop,
581 compute_data_dependences_for_loop, analyze_all_data_dependences,
582 free_dependence_relation, free_dependence_relations,
583 free_data_refs): Idem.
584 * tree-data-ref.h (data_reference_p, subscript_p): New.
585 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
586 VEC instead of VARRAY.
587 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
588 (find_data_references_in_loop, compute_data_dependences_for_loop,
589 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
590 dump_data_dependence_relations, free_dependence_relations,
591 free_data_refs): Adjust declaration.
592 (lambda_transform_legal_p): Move declaration here...
593 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
594 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
595 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
596 vect_analyze_data_refs): Use VEC instead of VARRAY.
597 * lambda.h (lambda_transform_legal_p): ...from here.
598 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
599 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
600 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
601 tree-chrec.o): Don't depend on VARRAY_H.
603 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
605 * rtl.def (Copyright): Update date.
606 (DEPS_LIST): Change type of the second operand to 'int'.
607 * target.h (Copyright): Update date.
608 (struct gcc_target.speculate_insn): Change type of the second parameter
610 * lists.c (Copyright): Update date.
611 (alloc_DEPS_LIST): Change signature. Update reference to the second
612 operand of the DEPS_LIST.
613 (copy_DEPS_LIST_list): Update reference to the second operand of the
615 * rtl.h (Copyright): Update date.
616 (alloc_DEPS_LIST): Update signature.
617 * sched-int.h (Copyright): Update date.
618 (ds_t): Change typedef to 'int'.
619 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
621 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
623 * haifa-sched.c (Copyright): Update date.
624 (try_ready): Change condition to restore non-speculative pattern
626 (process_insn_depend_be_in_spec): Code to keep probability of the
627 speculative dependence non-decreasing.
629 2006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
631 * regrename.c (replace_oldest_value_addr): Initialize a variable to
632 shut up the compiler.
634 2006-03-27 J"orn Rennecke <joern.rennecke@st.com>
636 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
637 to use lib prefix for target.
638 ($(T)libic_invalidate_array_4-200.a): Likewise.
639 ($(T)libic_invalidate_array_4a.a): Likewise.
641 2006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
642 J"orn Rennecke <joern.rennecke@st.com>
644 * superh.opt: New file.
645 * sh.c (boardtype, osruntime): Remove.
646 * superh.h (SUBTARGET_OPTIONS): Remove.
647 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
649 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
650 arguments with ^ and/or [].
652 * config.gcc (sh-*-*): Add quoting to account for quirk of
654 Replace == with = in enable_incomplete_targets test.
656 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
657 with MASK_LITTLE_ENDIAN.
659 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
660 * config/sh/sh.opt: Added to some comments.
661 * config/sh/superh.h: Removed some chaff.
663 * config/sh/sh.opt: Add m4-[1234]00* options.
664 * config/sh/sh.c (sh_handle_option): Likewise.
665 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
666 (ic_invalidate_array_4-100.o): New rule.
667 ($(T)libic_invalidate_array_4-100.a): Likewise.
668 (ic_invalidate_array_4-200.o): Likewise.
669 ($(T)libic_invalidate_array_4-200.a): Likewise.
670 (ic_invalidate_array_4a.o): Likewise.
671 ($(T)libic_invalidate_array_4a.a): Likewise.
672 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
673 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
675 * config/sh/crt1.asm: Merged in profiling code.
676 * config/sh/superh.h (STARTFILE_SPEC): Override.
677 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
678 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
679 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
681 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
682 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
683 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
685 * sh.opt (mpretend-cmove): New option.
686 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
687 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
688 (movsicc): Add TARGET_PRETEND_CMOVE code.
690 2006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
692 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
693 s390_class_max_nregs): New function prototypes.
694 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
695 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
696 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
697 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
699 2006-03-26 Geoffrey Keating <geoffk@apple.com>
701 * dwarf2out.c (add_location_or_const_value_attribute): Call
702 tree_add_const_value_attribute if nothing else works.
703 (reference_to_unused): New.
704 (rtl_for_decl_init): Use reference_to_unused to decide whether
705 to output an initializer.
707 2006-03-27 Alan Modra <amodra@bigpond.net.au>
710 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
711 peephole removing spe frob_di_df_2.
713 2006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
715 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
716 (subscript_dependence_tester_1): Declared.
717 (print_dir_vectors, print_dist_vectors): New.
718 (debug_data_dependence_relation): New.
719 (dump_data_dependence_relation): Print more details.
720 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
721 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
722 (save_dist_v, save_dir_v, add_outer_distances,
723 build_classic_dist_vector_1): New.
724 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
725 Don't test for lambda_vector_lexico_pos.
726 (same_access_functions, add_multivariate_self_dist,
727 add_other_self_distances, dir_from_dist): New.
728 (build_classic_dir_vector): Replace implementation almost identical to
729 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
731 (subscript_dependence_tester_1): New.
732 (subscript_dependence_tester): Handle the lexicographically negative
733 distance vectors by recomputing the dependence relation.
734 (compute_affine_dependence): Remove parameter loop_nest_depth.
735 (compute_self_dependence): Don't call compute_subscript_distance.
736 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
737 Add a parameter for the loop_nest.
738 (find_loop_nest_1, find_loop_nest): New.
739 (compute_data_dependences_for_loop): Compute the loop nest, and give
740 up if the nest is not well formed.
741 * tree-data-ref.h (loop_p): New.
742 (struct data_dependence_relation): Replace size_vect field with
743 loop_nest, a vec of loops.
744 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
745 (DDR_LOOP_NEST): New.
746 (print_dir_vectors, print_dist_vectors,
747 debug_data_dependence_relation): Declared.
748 (index_in_loop_nest): New.
749 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
750 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
753 2006-03-25 Adam Nemet <anemet@caviumnetworks.com>
755 * simplify-rtx.c (simplify_relational_operation): Call
756 simplify_relational_operation_1 even if mode is VOIDmode.
758 2006-03-25 Daniel Berlin <dberlin@dberlin.org>
760 PR tree-optimization/26804
761 * tree.h (DECL_CALL_CLOBBERED): New macro.
762 (tree_decl_common): Add call_clobbered_flag.
763 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
764 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
765 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
766 (mark_non_addressable): Ditto.
767 * tree-ssa.c (verify_call_clobbered): New function.
768 (verify_alias_info): Use it.
769 * tree-pass.h (pass_reset_cc_flags): New prototype.
770 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
771 (reset_cc_flags): New function.
772 * passes.c (init_optimization_passes): Call reset_cc_flags after
773 initializing referenced_vars.
775 2006-03-25 Uros Bizjak <uros@kss-loka.si>
776 Roger Sayle <roger@eyesopen.com>
779 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
780 to 1.0 for non-real operands. Implement A / A optimization for
783 2006-03-25 H.J. Lu <hongjiu.lu@intel.com>
785 * config/i386/i386.c (size_cost): Correct the comment for
786 cost of storing fp registers.
787 (i386_cost): Likewise.
788 (i486_cost): Likewise.
789 (pentium_cost): Likewise.
790 (pentiumpro_cost): Likewise.
792 (athlon_cost): Likewise.
794 (pentium4_cost): Likewise.
795 (nocona_cost): Likewise.
796 (generic64_cost): Likewise.
797 (generic32_cost): Likewise.
799 2006-03-24 Denis Chertykov <denisc@overta.ru>
801 * config/avr/avr-protos.h (extra_constraint): Delete.
802 (extra_constraint_Q): New declaration.
803 * config/avr/constraints.md: New file.
804 * config/avr/avr.md: Include it.
805 (REG_X, REG_Y, REG_Z, REG_W): New constants.
806 (TMP_REGNO, ZERO_REGNO): Likewise.
807 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
808 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
809 (extra_constraint): Delete.
810 (extra_constraint_Q): Test for memory constraint 'Q'.
811 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
812 (REG_CLASS_FROM_LETTER): Delete.
813 (CONST_OK_FOR_LETTER_P): Delete.
814 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
815 (EXTRA_CONSTRAINT): Delete.
817 (ZERO_REGNO): Delete.
819 2006-03-24 Jeff Law <law@redhat.com>
821 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
822 directly. Call mark_new_vars_to_rename slightly earlier.
824 2006-03-24 Geoffrey Keating <geoffk@apple.com>
826 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
828 (gen_compile_unit_die): Use new language types for Objective-C and
830 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
834 * config/t-darwin (crt3.o): Work around bug 26840.
835 * config/darwin-crt3.c: Rewrite.
836 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
838 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
840 * doc/invoke.texi: Document -femit-class-debug-always
841 * common.opt: Add -femit-class-debug-always.
843 2006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
845 * config/s390/s390.c (s390_decompose_address): Allow SImode for
846 index and base register.
847 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
848 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
849 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
850 REGNO_OK_FOR_INDEX_P.
851 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
853 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
854 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
855 REG_OK_FOR_BASE_P): Definitions removed.
857 2006-03-24 Jakub Jelinek <jakub@redhat.com>
860 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
861 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
862 set yet or weren't marked as local yet.
864 2006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
866 * regrename.c (scan_rtx_address): Initialize a variable to shut up
869 2006-03-24 Eric Botcazou <ebotcazou@adacore.com>
871 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
872 (rs6000_legitimate_small_data_p): Delete.
873 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
874 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
875 and make static. Add forward declaration. Update uses.
876 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
877 of offsettable_memref_p.
878 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
879 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
881 2006-03-24 Jeff Law <law@redhat.com>
883 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
884 around bug in immediate-use iterator.
886 2006-03-24 Alan Modra <amodra@bigpond.net.au>
889 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
890 or __LITTLE_ENDIAN__.
892 2006-03-23 J"orn Rennecke <joern.rennecke@st.com>
894 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
895 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
896 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
897 * config/sh/sh.opt (mdiv=): Amend description.
898 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
899 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
900 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
901 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
902 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
903 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
904 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
905 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
906 TARGET_DIVIDE_CALL_FP.
908 2006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
910 * haifa-sched.c (choose_ready): Fix type of the local variable.
911 Move local variables. Add comment.
912 (check_reg_live): Change signature. Make callable from debugger.
913 * sched-int.h (check_reg_live): Update signature.
914 * sched-ebb.c (check_reg_live): Update parameters.
915 * sched-rgn.c (check_reg_live): Ditto.
916 (region_head_or_leaf_p): Check pointer before dereferencing.
917 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
918 before reload on optimization levels below 1.
920 2006-03-23 Richard Henderson <rth@redhat.com>
922 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
926 * config/alpha/predicates.md (local_symbolic_operand): Reject
929 2006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
932 * tree-ssa-pre.c (create_value_expr_from): Don't reject
933 expressions which have overflowed constants.
935 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
937 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
939 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
941 * cfgloopmanip.c (create_loop_notes): Removed.
942 * final.c (final_scan_insn): Do not handle loop notes.
943 * jump.c (squeeze_notes): Ditto.
944 * cfglayout.c (skip_insns_after_block,
945 duplicate_insn_chain): Ditto.
946 * cfgcleanup.c (rest_of_handle_jump2): Do not call
948 * cfgloop.h (create_loop_notes): Declaration removed.
950 2006-03-23 Richard Sandiford <richard@codesourcery.com>
952 * varasm.c (output_constant_pool): Restore fnname and fndecl
954 (assemble_start_function): Adjust call accordingly.
955 (assemble_end_function): Likewise.
957 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
960 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
963 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
965 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
968 * system.h (ICE_EXIT_CODE): New macro.
969 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
970 (diagnostic_action_after_output): Likewise.
971 * gcc.c (fatal_ice): New function.
972 (execute): Use it instead of fatal.
973 (fancy_abort): Likewise.
974 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
976 2006-03-22 Jeff Law <law@redhat.com>
978 * loop-unroll.c (analyze_iv_to_split_insn): Handle
979 iv_analyze_result returning false.
981 2006-03-22 Jie Zhang <jie.zhang@analog.com>
983 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
985 2006-03-22 Richard Henderson <rth@redhat.com>
988 * except.c (duplicate_eh_regions_0): New.
989 (duplicate_eh_region_1): Duplicate the children of the node as
990 well as the node itself. Link them up properly.
991 (duplicate_eh_region_2): Merge into ...
992 (duplicate_eh_regions): ... here. Take copy_region argument, and
993 copy only a sub-tree if asked. Simplify copying and fixup.
994 (eh_region_outer_p): New.
995 * except.h (duplicate_eh_regions): Update decl.
996 (eh_region_outer_p): Declare.
997 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
998 (lower_omp_master): Likewise.
999 (lower_omp_ordered): Likewise.
1000 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
1001 (move_stmt_r): Use it to remap labels. Handle recursion vs
1002 remap_decls_p properly.
1003 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
1004 (find_outermost_region_in_block): New.
1005 (new_label_mapper): New.
1006 (move_sese_region_to_fn): Copy eh information to the new function
1008 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
1010 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
1013 2006-03-22 Richard Sandiford <richard@codesourcery.com>
1015 * doc/md.texi (-mshared): Mention that -mshared code can be linked
1016 into shared libraries.
1018 2006-03-22 Richard Sandiford <richard@codesourcery.com>
1020 * doc/md.texi: Refer to i386/constraints.md instead of
1022 * config/i386/constraints.md: New file, extracted from...
1023 * config/i386/predicates.md: ...here.
1024 * config/i386/i386.md: Include constraints.md.
1026 2006-03-21 Jason Merrill <jason@redhat.com>
1028 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
1031 * expr.c (init_block_move_fn): Force default visibility.
1032 (init_block_clear_fn): Likewise.
1033 * builtins.c (expand_builtin_fork_or_exec): Likewise.
1034 * targhooks.c (default_external_stack_protect_fail): Likewise.
1036 2006-03-21 Richard Sandiford <richard@codesourcery.com>
1038 * config/mips/predicates.md (const_call_insn_operand): Allow direct
1039 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
1040 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
1041 Use TARGET_OLDABI instead of !TARGET_NEWABI.
1042 (loadgp): Use mips_current_loadgp_style.
1043 (loadgp_noshared): New pattern.
1044 (sibcall_internal): Use MIPS_CALL.
1045 (sibcall_value_internal): Likewise.
1046 (sibcall_value_multiple_internal): Likewise.
1047 (call_internal): Likewise.
1048 (call_value_internal): Likewise.
1049 (call_value_multiple_internal): Likewise.
1050 (call_split): Use MIPS_CALL and add an 'S' constraint.
1051 (call_value_split): Likewise.
1052 (call_value_multiple_split): Likewise.
1053 * config/mips/mips.opt (-mabicalls): Tweak docstring.
1054 (-mshared): New option.
1055 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
1056 (mips_current_loadgp_style): Declare.
1057 * config/mips/mips.c (mips_classify_symbol): Avoid using
1058 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
1059 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
1060 TARGET_ABSOLUTE_ABICALLS.
1061 (override_options): Adjust comments. Improve the warning that is
1062 issued when -mabicalls and -G are used together.
1063 (mips_file_start): Remove comment.
1064 (mips_current_loadgp_style): New function.
1065 (mips_gnu_local_gp): New variable.
1066 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
1068 (mips_output_function_prologue): Use mips_current_laodgp_style.
1069 (mips_expand_prologue): Call mips_emit_loadgp before emitting
1070 the cprestore instruction.
1071 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
1072 live for TARGET_ABSOLUTE_ABICALLS.
1073 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
1074 (ASM_SPEC): Pass down -mshared and -mno-shared.
1075 (MIPS_CALL): New macro.
1076 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
1078 * doc/invoke.texi (-mabicalls): Update documentation.
1079 (-mshared): Document.
1081 2006-03-21 Steve Ellcey <sje@cup.hp.com>
1083 * config/ia64/unwind-hpux.c: New file.
1084 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
1086 2006-03-21 Steve Ellcey <sje@cup.hp.com>
1089 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
1091 2006-03-21 Jeff Law <law@redhat.com>
1093 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
1094 type conversions of a VR_VARYING source to a wider type.
1096 2006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
1098 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
1099 tm_file on Solaris 10 and later.
1100 (sparc64-*-solaris2*): Likewise.
1101 (sparc-*-solaris2*): Likewise.
1102 * config/sol26.h: Rename to config/sol2-6.h.
1103 * config/sol2-10.h: New file.
1105 2006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
1108 * tree-ssa-pre.c (create_component_ref_by_pieces):
1111 2006-03-21 Jakub Jelinek <jakub@redhat.com>
1114 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
1115 return it immediately.
1117 2006-03-21 Michael Matz <matz@suse.de>
1119 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
1121 (remove_arc, add_arc): Update num_out_arcs member.
1122 (set_out_arc_insns_equiv_num): Returns nothing instead of number
1124 (cache_presence): New function.
1125 (compare_states_for_equiv): New function.
1126 (state_is_differed): Don't take number of outargs, adjust callers.
1127 Use new invariant for speeding up.
1128 (init_equiv_class): Create initial classes based on sorted
1130 (partition_equiv_class): Don't track out_arcs_num.
1131 (evaluate_equiv_classes): Call cache_presence on all states and
1134 2006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
1136 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
1137 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
1138 (bfin_valid_reg_p): Test for pseudos explicitly and use only
1139 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
1141 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
1142 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
1143 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
1144 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1145 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
1147 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
1148 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
1149 (REGNO_REG_CLASS): ARGP is in PREGS.
1150 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
1152 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
1153 to deal with those addresses.
1154 * addresses.h: New file.
1155 * caller-save.c: Include "addresses.h".
1156 (init_caller_save): Use new base_reg_class function.
1157 * rtl-factoring.c: Include "addresses.h".
1158 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
1159 * recog.c: Include "addresses.h".
1160 (preprocess_constraints): Use new base_reg_class function.
1161 * regrename.c: Include "addresses.h".
1162 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
1163 functions. Keep track of a new var INDEX_CODE to compute valid
1165 (replace_oldest_value_addr): Likewise.
1166 (replace_oldest_value_mem): Use base_reg_class.
1167 * reload.c: Include "addresses.h".
1168 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
1169 (find_reloads): Use new base_reg_class function.
1170 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
1171 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
1172 all callers and prototype changed.
1173 * reload1.c: Include "addresses.h".
1174 (maybe_fix_stack_asms): Use base_reg_class.
1175 * regclass.c: Include "addresses.h".
1176 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
1177 (init_reg_autoinc): Use new base_reg_class function.
1178 (record_reg_classes): Likewise.
1179 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
1180 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
1181 Use new args to compute necessary class.
1183 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
1184 regrename.o, rtl-factoring.o): Update dependencies.
1185 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
1186 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
1187 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
1188 REG_OK_FOR_INDEX_P): Delete documentation.
1190 2006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
1192 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
1193 from V7 to V9 for Solaris 7 and above.
1195 2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
1197 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
1198 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
1199 argument pointers may not alias any other storage.
1200 * common.opt: Define option -fargument-noalias-anything.
1201 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
1202 alias semantics is specified by flag_argument_noalias > 2.
1204 2006-03-20 Jeff Law <law@redhat.com>
1206 * tree-pass.h (pass_phi_only_copy_prop): Delete.
1207 (pass_phi_only_cprop): Declare.
1208 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
1210 * tree-ssa-dom.c (degenerate_phi_result): New function.
1211 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
1212 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
1213 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
1214 (eliminate_degenerate_phis): Likewise.
1215 (pass_phi_only_cprop): New pass descriptor.
1216 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
1217 support code. Callers updated.
1218 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
1219 (store_copy_prop): Likewise.
1220 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
1222 2006-03-20 Jason Merrill <jason@redhat.com>
1225 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
1226 (push_visibility, pop_visibility): Likewise.
1227 * c-pragma.h: Declare them.
1229 2006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
1231 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
1233 * config/sh/sh.c (find_regmode_weight): Change the type of the first
1234 parameter and use get_ebb_head_tail.
1235 (sh_md_init_global): Adjust uses of find_regmode_weight.
1237 2006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
1239 * function.h (struct function) <x_tail_recursion_reentry>:
1240 Rename to x_stack_check_probe_note.
1241 (tail_recursion_reentry): Rename to stack_check_probe_note.
1242 * function.c: Replace tail_recursion_reentry with
1243 stack_check_probe_note everywhere.
1244 (expand_function_start): Only emit a note for
1245 stack_check_probe_note with -fstack-protect.
1246 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
1248 * emit-rtl.c (remove_unnecessary_notes): Remove.
1249 (pass_remove_unnecessary_notes): Remove.
1250 * rtl.h (remove_unnecessary_notes): Remove prototype.
1251 * final.c (final_start_function): Don't call remove_unnecessary_notes.
1252 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
1253 * passes.c (pass_remove_unnecessary_notes): Don't run it.
1255 2006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
1258 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
1259 (valid_in_set): Handle ARRAY_REF.
1260 Change "if min_variant or VH" to asserts.
1261 (create_component_ref_by_pieces): Handle ARRAY_REF.
1262 (create_expression_by_pieces): Likewise.
1263 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
1265 2006-03-20 David Edelsohn <edelsohn@gnu.org>
1267 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
1268 is operand of switch, not str[0].
1270 2006-03-20 Alan Modra <amodra@bigpond.net.au>
1272 * config/rs6000/rs6000.c (rs6000_handle_option): Use
1273 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
1275 2006-03-19 David Edelsohn <edelsohn@gnu.org>
1277 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
1278 end of insn_extra_address_constraint declaration.
1280 2006-03-19 David Edelsohn <edelsohn@gnu.org>
1282 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
1283 (no-sum-in-toc): Same.
1284 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
1286 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
1287 NO_FP_IN_TOC for -fPIC instead of mask.
1289 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
1290 (BOOT_LDFLAGS): Delete.
1292 * config/rs6000/t-aix52: Same.
1294 * config/rs6000/rs6000.md (store_multiple_power): Delete.
1295 (stmsi[345678]_power): New.
1297 2006-03-17 Steve Ellcey <sje@cup.hp.com>
1299 * config/ia64/ia64.opt: Add empty line to end of file.
1301 2006-03-17 Richard Guenther <rguenther@suse.de>
1304 * builtins.c (get_pointer_alignment): For component style references
1305 adjust alignment to the component type alignment. Make sure
1306 to adjust alignment for component access of constants.
1308 2006-03-17 David Edelsohn <edelsohn@gnu.org>
1310 * config/rs6000/rs6000.md (strlensi): Emit barrier after
1313 2006-03-17 Paul Brook <paul@codesourcery.com>
1315 * doc/install.texi: Docuemnt --with-mode.
1316 * config.gcc: Add --with-mode for arm*-*-*.
1317 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
1319 2006-03-17 J"orn Rennecke <joern.rennecke@st.com>
1321 * sh.c (max_labelno_before_reorg): New variable.
1322 (sh_reorg): Initialize it.
1323 (find_barrier): Check max_labelno_before_reorg before using
1324 label_to_alignment. Take length of explicit alignment insns
1325 into account. When seeing a UNSPECV_CONST_END, return it.
1327 * sh.c (fixup_mova): Set mode of affected label to QImode.
1328 (untangle_mova): New function.
1329 (find_barrier): Use it. Check mode of label before decrementing
1331 (sh_reorg): Likewise.
1332 Set mode of all insns back to VOIDmode.
1334 * sh.c (MOVA_LABELREF): New macro.
1335 (mova_p, fixup_mova, sh_reorg): Use it.
1336 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
1337 ADDR_DIFF_VEC matches mova.
1339 2006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
1341 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
1342 with ATTRIBUTE_UNUSED.
1344 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
1346 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
1347 pointer, instead of assuming it is possible to derive the
1348 correct args size from a call insn.
1350 2006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1352 * rtl.h (CONST_INT_P): Define.
1353 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
1354 instead of GET_CODE(x) == CONST_INT.
1355 (vax_rtx_costs): Likewise.
1356 (vax_output_int_move): Likewise.
1357 (vax_output_int_add): Likewise.
1358 (legitimate_constant_address_p): Likewise.
1359 (index_term_p): Likewise.
1360 * config/vax/vax.h (PRINT_OPERAND): Likewise.
1361 * config/vax/vax.md (and<mode>3): Likewise.
1362 (ashrsi3): Likewise.
1364 (movstricthi): Likewise.
1365 (movstrictqi): Likewise.
1366 (rotrsi3): Likewise.
1367 (five unnamed insns): Likewise.
1369 2006-03-16 Geoffrey Keating <geoffk@apple.com>
1371 * doc/tm.texi (SDB and DWARF): Add extra parameter to
1372 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
1373 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
1374 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
1375 Pass to ASM_OUTPUT_DWARF_OFFSET.
1376 * dwarf2out.c (debug_frame_section): New.
1377 (output_call_frame_info): Use debug_frame_section. Pass it to
1378 dw2_asm_output_offset.
1379 (output_die): Pass appropriate section to dw2_asm_output_offset.
1380 (output_compilation_unit_header): Likewise.
1381 (output_pubnames): Likewise.
1382 (output_aranges): Likewise.
1383 (enum dw_val_class): Break dw_val_class_lbl_offset into
1384 dw_val_class_lineptr and dw_val_class_macptr.
1385 (add_AT_lbl_offset): Delete.
1386 (add_AT_lineptr): New.
1387 (add_AT_macptr): New.
1388 (AT_lbl): Expect a lineptr or macptr.
1389 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
1390 (attr_checksum): Likewise.
1391 (same_dw_val_p): Likewise.
1392 (size_of_die): Likewise.
1393 (value_format): Likewise.
1394 (output_die): Likewise.
1395 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
1397 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
1398 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
1399 * config/darwin-protos.h (darwin_file_start): New.
1400 (darwin_asm_output_dwarf_offset): New.
1401 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
1402 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
1404 * config/darwin.c (darwin_emit_unwind_label): Don't output label
1405 if not EH section; simplify.
1406 (darwin_file_start): New.
1407 (darwin_asm_output_dwarf_offset): New.
1408 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
1410 (DEBUG_INFO_SECTION): Likewise.
1411 (DEBUG_ABBREV_SECTION): Likewise.
1412 (DEBUG_ARANGES_SECTION): Likewise.
1413 (DEBUG_MACINFO_SECTION): Likewise.
1414 (DEBUG_LINE_SECTION): Likewise.
1415 (DEBUG_LOC_SECTION): Likewise.
1416 (DEBUG_PUBNAMES_SECTION): Likewise.
1417 (DEBUG_STR_SECTION): Likewise.
1418 (DEBUG_RANGES_SECTION): Likewise.
1419 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
1420 (ASM_OUTPUT_DWARF_OFFSET): New.
1422 2006-03-16 Joseph S. Myers <joseph@codesourcery.com>
1424 * config.gcc (tm_defines): Always add to previous value rather
1427 2006-03-16 Richard Sandiford <richard@codesourcery.com>
1429 * config/mips/predicates.md (splittable_const_int_operand): New,
1430 split from move_operand.
1431 (splittable_symbolic_operand): New.
1432 (move_operand): Add commentary. Use splittable_const_int_operand.
1433 Inline mips_atomic_symbolic_constant_p.
1434 * config/mips/mips.md: Add combine splitters for handling moves
1435 of splittable_const_int_operands and splittable_symbolic_operands.
1436 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
1437 (mips_split_symbol): Declare.
1438 (mips_move_integer): Declare.
1439 * config/mips/mips.c (mips_split_p): Make global.
1440 (TARGET_MIN_ANCHOR_OFFSET): Override default.
1441 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
1442 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
1443 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
1444 (mips_offset_within_object_p): Handle block symbols.
1445 (mips_atomic_symbolic_constant_p): Delete.
1446 (mips_cannot_force_const_mem): Return false for constants that
1447 mips_legitimize_move can handle.
1448 (mips_use_blocks_for_constant_p): New function.
1449 (mips_split_symbol): Make global.
1450 (mips_move_integer): Likewise. Add a temporary register argument.
1451 (mips_legitimize_const_move): Use splittable_const_int_operand and
1452 splittable_symbolic_operand.
1453 (mips_use_anchors_for_symbol_p): New function.
1454 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
1455 (mips_split_p): Declare.
1457 2006-03-16 Richard Sandiford <richard@codesourcery.com>
1459 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
1460 (mips*-*-linux*): Likewise.
1462 2006-03-16 Roger Sayle <roger@eyesopen.com>
1463 Daniel Speyer <dspeyer@wam.umd.edu>
1466 * tree-dump.c (dump_real): New function.
1467 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
1468 * Makefile.in (REAL_H): New macro for dependencies on real.h.
1469 (tree-dump.o): Add $(REAL_H) to the dependencies.
1471 2006-03-16 Roger Sayle <roger@eyesopen.com>
1474 * real.c (real_from_string): If the mantissa is zero, don't bother
1475 parsing the exponent as the result should always be zero.
1477 2006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
1479 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
1481 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1483 * config/ia64/ia64.c (stops_p): Added explicit initialization.
1484 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
1485 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
1486 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
1487 ia64_sched_finish_global): New static functions to implement
1488 hooks from gcc_target.sched.
1489 (spec_check_no, max_uid, pending_data_specs): New static variables.
1490 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
1491 ia64_spec_check_src_p): New static functions.
1492 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
1493 (TARGET_SCHED_ADJUST_COST): Removed.
1494 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
1495 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
1496 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
1497 TARGET_SCHED_GEN_CHECK,
1498 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
1499 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
1500 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
1501 Fixed to handle speculation checks.
1502 (rtx_needs_barrier): Fixed to handle speculative loads and
1504 (ia64_variable_issue): Added code to count speculative loads and their
1506 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
1508 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
1510 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
1512 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
1513 (ia64_reorg): Reset stops_p to NULL after it is freed.
1514 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
1515 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
1516 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
1518 (data_speculative, control_speculative, check_load): New attributes.
1519 (mov<mode>_advanced, mov<mode>_speculative,
1520 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
1521 zero_extend<mode>di2_speculative,
1522 zero_extend<mode>di2_speculative_advanced): New patterns for
1523 data and control speculative loads.
1524 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
1526 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
1527 New pattern for data and control speculation checks.
1528 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
1529 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
1530 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
1531 Auxiliary definitions for the patterns.
1532 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
1533 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
1535 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
1537 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
1538 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
1539 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
1540 New resource constraints.
1541 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
1543 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
1544 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
1545 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
1546 msched-in-control-spec, msched-ldc, msched-control-ldc,
1547 msched-spec-verbose, msched-prefer-non-data-spec-insns,
1548 msched-prefer-non-control-spec-insns,
1549 msched-count-spec-in-critical-path): New flags to tune speculative
1551 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
1552 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
1553 msched-in-control-spec, msched-ldc, msched-control-ldc,
1554 msched-spec-verbose, msched-prefer-non-data-spec-insns,
1555 msched-prefer-non-control-spec-insns,
1556 msched-count-spec-in-critical-path): Document new flags.
1558 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1560 * target.h (struct spec_info_def): New opaque declaration.
1561 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
1562 speculate_insn, needs_block_p, gen_check,
1563 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
1564 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
1565 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
1566 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
1567 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
1568 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
1570 (TARGET_SCHED): Use new macros.
1571 * rtl.h (copy_DEPS_LIST_list): New prototype.
1572 * sched-int.h (struct sched_info): Change signature of new_ready field,
1573 adjust all initializations. New fields: add_remove_insn,
1574 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
1575 region_head_or_leaf_p.
1576 (struct spec_info_def): New structure declaration.
1577 (spec_info_t): New typedef.
1578 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
1579 recovery_block, orig_pat.
1580 (glat_start, glat_end): New variables declaraions.
1581 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
1583 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
1584 DETACH_LIFE_INFO, USE_GLAT.
1585 (enum SPEC_SCHED_FLAGS): New enumeration.
1586 (NOTE_NOTE_BB_P): New macro.
1587 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
1588 attach_life_info, debug_spec_status, check_reg_live): New functions.
1589 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
1590 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
1592 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
1593 * ddg.c (get_block_head_tail): Adjust all uses.
1594 * modulo-sched.c (get_block_head_tail): Adjust all uses.
1595 (sms_sched_info): Initialize new fields.
1596 (contributes_to_priority): Removed.
1597 * haifa-sched.c (params.h): New include.
1598 (get_block_head_tail): Adjust all uses.
1599 (ISSUE_POINTS): New macro.
1600 (glat_start, glat_end): New global variables.
1601 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
1602 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
1603 old_last_basic_block, before_recovery, current_sched_info_var,
1604 rgn_n_insns, luid): New static variables.
1605 (insn_cost1): New function. Move logic from insn_cost to here.
1606 (find_insn_reg_weight1): New function. Move logic from
1607 find_insn_reg_weight to here.
1608 (reemit_notes, move_insn, max_issue): Change signature.
1609 (move_insn1): Removed.
1610 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
1611 extend_bb): New static functions to support extension of scheduler's
1613 (generate_recovery_code, process_insn_depend_be_in_spec,
1614 begin_speculative_block, add_to_speculative_block,
1615 init_before_recovery, create_recovery_block, create_check_block_twin,
1616 fix_recovery_deps): New static functions to support
1617 generation of recovery code.
1618 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
1619 restore_bb_notes, move_block_after_check, move_succs): New static
1620 functions to support ebb scheduling.
1621 (init_glat, init_glat1, attach_life_info1, free_glat): New static
1622 functions to support handling of register live information.
1623 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
1624 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
1625 add_jump_dependencies): New static functions.
1626 (check_cfg, has_edge_p, check_sched_flags): New static functions for
1627 consistancy checking.
1628 (debug_spec_status): New function to call from debugger.
1629 (priority): Added code to handle speculation checks.
1630 (rank_for_schedule): Added code to distinguish speculative instructions.
1631 (schedule_insn): Added code to handle speculation checks.
1632 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
1633 Fixed to handle ebbs.
1634 (move_insn): Added code to handle ebb scheduling.
1635 (max_issue): Added code to use ISSUE_POINTS of instructions.
1636 (choose_ready): Added code to choose between speculative and
1637 non-speculative instructions.
1638 (schedule_block): Added code to handle ebb scheduling and scheduling of
1639 speculative instructions.
1640 (sched_init): Initialize new variables.
1641 (sched_finish): Free new variables. Print statistics.
1642 (try_ready): Added code to handle speculative instructions.
1643 * lists.c (copy_DEPS_LIST_list): New function.
1644 * sched-deps.c (extend_dependency_caches): New function. Move logic
1645 from create_dependency_caches to here.
1646 (get_dep_weak, ds_merge): Make global.
1647 * genattr.c (main): Code to output prototype for
1648 dfa_clear_single_insn_cache.
1649 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
1650 (output_dfa_clean_insn_cache_func): Code to output
1651 dfa_clear_single_insn_cache function.
1652 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
1654 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
1656 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
1657 New static variables.
1658 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
1659 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
1661 (ebb_sched_info): Initialize new fields.
1662 (get_block_head_tail): Adjust all uses.
1663 (compute_jump_reg_dependencies): Fixed to use glat_start.
1664 (schedule_ebb): Code to remove unreachable last block.
1665 (schedule_ebbs): Added code to update register live information.
1666 * sched-rgn.c (region_sched_info): Initialize new fields.
1667 (get_block_head_tail): Adjust all uses.
1668 (last_was_jump): Removed. Adjust users.
1669 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
1670 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
1671 Implement new hooks.
1672 (check_dead_notes1): New static function.
1673 (struct region): New fields: dont_calc_deps, has_real_ebb.
1674 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
1675 (BB_TO_BLOCK): Fixed to handle EBBs.
1676 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
1677 (ebb_head): New static variable.
1678 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
1679 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
1681 (compute_dom_prob_ps): New assertion.
1682 (check_live_1, update_live_1): Fixed to work with glat_start instead of
1683 global_live_at_start.
1684 (init_ready_list): New assertions.
1685 (can_schedule_ready_p): Split update code to begin_schedule_ready.
1686 (new_ready): Add support for BEGIN_CONTROL speculation.
1687 (schedule_insns): Fixed code that updates register live information
1689 (schedule_region): Fixed to handle EBBs.
1690 (init_regions): Use extend_regions and check_dead_notes1.
1691 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
1692 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
1693 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
1694 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
1695 TARGET_SCHED_GEN_CHECK,
1696 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
1697 TARGET_SCHED_SET_SCHED_FLAGS): Document.
1698 * doc/invoke.texi (max-sched-insn-conflict-delay,
1699 sched-spec-prob-cutoff): Document.
1701 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1703 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
1704 inter_tick, queue_index.
1705 (struct sched_info): Change signature of init_ready_list field.
1706 Adjust all initializations.
1707 (RESOLVED_DEPS): New access macro.
1708 (ready_add): Remove prototype.
1709 (try_ready): Add prototype.
1710 * sched-rgn.c (init_ready_list): Use try_ready.
1711 (schedule_region): Initialize
1712 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
1713 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
1714 (init_ready_list): Use try_ready.
1715 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
1716 * lists.c (remove_list_elem): Remove `static'.
1717 (remove_free_INSN_LIST_elem): New function.
1718 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
1719 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
1720 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
1722 (readyp): New variable.
1723 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
1724 change_queue_index, resolve_dep): New static functions.
1725 (try_ready): New function. Adjust callers in sched-rgn.c and
1726 sched-ebb.c to use it instead of ready_add.
1727 (clock_var): Move at the begining of file.
1728 (rank_for_schedule): Fix typo.
1729 (queue_insn): Add assertion. Handle QUEUE_INDEX.
1730 (ready_lastpos): Enforce assertion.
1731 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
1733 (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
1734 (schedule_insn): Rewrite to use try_ready and resolve_dep.
1735 (queue_to_ready): Use free_INSN_LIST_list.
1736 (early_queue_to_ready): Fix typo.
1737 (schedule_block): Init readyp. Move init_ready_list call after the
1738 initialization of clock_var. Fix error in rejecting insn by
1739 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
1740 that previously corrected INSN_TICKs. Add code for handling
1742 (set_priorities): Fix typo.
1743 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
1744 Clarify comment and code that keeps current_sched_info->next_tail
1747 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1749 * sched-rgn.c (extend_rgns): New static function.
1750 (find_rgns): Use it.
1751 (gather_region_statistics, print_region_statistics): New static
1753 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
1754 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
1756 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1757 Andrey Belevantsev <abel@ispras.ru>
1759 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
1760 * lists.c (unused_deps_list): New variable.
1761 (free_list): Add assertions to verify the proper distinguishing
1762 between INSN_LISTs and DEPS_LISTs.
1763 (find_list_elem, remove_list_elem, remove_list_node): New static
1765 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
1766 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
1767 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
1768 (alloc_INSN_LIST): Assert that the list we're working on is indeed
1770 (free_INSN_LIST_node): Likewise.
1771 * modulo-sched.c (current_sched_info): Initialize flags field.
1772 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
1773 * rtl.def (DEPS_LIST): Define.
1774 * rtl.h: Declare new functions from lists.c.
1775 * sched-deps.c (spec_dependency_cache): New static variable.
1776 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
1777 (add_dependence): Change return type to void. Move the logic to ...
1778 (add_or_update_back_dep_1): ... here. Handle speculative dependencies.
1779 (delete_all_dependences): Add comment about forward_dependency_cache.
1780 Handle spec_dependency_cache. Handle DEPS_LISTs.
1781 (fixup_sched_groups): Clarify the change of priority of output
1782 and anti dependencies.
1783 (sched_analyze_2): Adjust add_dependence calls to create data
1784 speculative dependence.
1785 (add_forward_dependence): Renamed to add_forw_dep, change prototype.
1786 Adjust all callers. Handle DEPS_LISTS.
1787 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
1788 presence of speculation.
1789 (init_dependency_caches, free_dependency_caches):
1790 Handle spec_dependency_cache.
1791 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
1792 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
1793 New static functions.
1794 (add_or_update_back_dep, add_or_update_back_forw_dep,
1795 add_back_forw_dep, delete_back_forw_dep): New functions.
1796 * sched-int.h (ds_t, dw_t): New typedefs.
1797 (struct sched_info): Add new field flags.
1798 (struct haifa_insn_data): Add new bitfield has_internal_dep.
1799 Prototype new sched-deps.c functions.
1800 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
1801 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
1802 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
1803 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
1804 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
1805 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
1807 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
1809 * sched-rgn.c (current_sched_info): Initialize flags field.
1810 (schedule_insns): Initialize current_sched_info before the sched_init
1812 * sched-ebb.c (current_sched_info): Initialize flags field.
1813 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
1814 Call add_or_update_back_dep instead of add_dependence.
1815 Create control speculative dependencies.
1816 (schedule_insns): Initialize current_sched_info before the sched_init
1819 2006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
1821 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
1823 (sh_fallback_frame_state): Likewise.
1825 2006-03-15 Geoffrey Keating <geoffk@apple.com>
1827 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
1828 Do switch on default_use_cxa_atexit.
1829 (powerpc*-*-darwin*): Build crt2.o on powerpc.
1830 * config/darwin-crt3.o: New.
1831 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
1832 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
1833 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
1835 * config/rs6000/t-darwin: Move crt2.o building to here.
1836 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
1837 Mac OS version for using __cxa_get_exception_ptr. Don't test versions
1840 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1842 * config/vax/vax.c (nonindexed_address_p): Change logical negation
1843 from '! xxx' to '!xxx' for coding-style conformance.
1844 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
1845 (EXTRA_CONSTRAINT): Likewise.
1846 * config/vax/vax.md (four unnamed insns): Likewise.
1848 2006-03-15 Paul Brook <paul@codesourcery.com>
1850 * config/arm/arm.c (minipool_pad): New.
1851 (add_minipool_forward_ref): Include pool alignment padding in address
1853 (push_minipool_fix): Set minipool_pad.
1854 (minipool_pad): Ditto.
1856 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1858 * config/vax/vax.c (split_quadword_operands): Use MEM_P()
1859 instead of GET_CODE() == MEM and REG_P() instead of
1861 (print_operand_address): Likewise.
1862 (vax_address_cost): Likewise.
1863 (vax_rtx_costs): Likewise.
1864 (vax_notice_update_cc): Likewise.
1865 (vax_output_int_add): Likewise.
1866 (INDEX_REGISTER_P): Likewise.
1867 (BASE_REGISTER_P): Likewise.
1868 (nonindexed_address_p): Likewise.
1869 (vax_mode_dependent_address_p): Likewise.
1870 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
1871 (PRINT_OPERAND): Likewise.
1872 * config/vax/vax.md (ashlsi3): Likewise.
1873 (ashlsi3): Likewise.
1874 (some more unnamed insns): Likewise.
1876 2006-03-15 Kazu Hirata <kazu@codesourcery.com>
1878 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
1879 iterator-style macro.
1880 (mark_control_dependent_edges_necessary): Update the use of
1881 EXECUTE_IF_CONTROL_DEPENDENT.
1883 2006-03-15 J"orn Rennecke <joern.rennecke@st.com>
1885 * config/sh/predicates.md (cache_address_operand): Special.
1886 (ua_address_operand): Likewise.
1888 2006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
1890 * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
1892 * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
1894 2006-03-15 Andreas Schwab <schwab@suse.de>
1896 * gensupport.c (identify_predicable_attribute): Don't free p_false
1897 when it is still in use.
1899 2006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
1901 * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
1902 the default setting here.
1904 2006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
1906 * tree-pass.h (pass_cfg): Remove.
1907 * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
1908 * passes.c (pass_cfg): Don't run it.
1910 2006-03-14 Kazu Hirata <kazu@codesourcery.com>
1912 * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
1913 * reg-stack.c (stack_regs_mentioned_data): Change the type to
1915 (stack_regs_mentioned): Update the uses of
1916 stack_regs_mentioned_data. Don't access the array beyond its
1918 (reg_to_stack): Update the uses of stack_regs_mentioned_data.
1919 Don't include gt-reg-stack.h.
1921 * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
1922 * system.h (UNALIGNED_WORD_ASM_OP): Poison.
1924 * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
1927 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
1930 2006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1932 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
1934 2006-03-14 Richard Guenther <rguenther@suse.de>
1936 PR tree-optimization/26672
1937 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
1940 2006-03-14 Richard Guenther <rguenther@suse.de>
1942 PR tree-optimization/26667
1943 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
1944 node for the callees. Always allow inlining if it will shrink
1947 2006-03-14 Richard Guenther <rguenther@suse.de>
1950 * builtins.c (get_pointer_alignment): Prefer alignment
1951 information from decls over that from types.
1953 2006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
1956 * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
1958 2006-03-14 Joseph S. Myers <joseph@codesourcery.com>
1960 * config/rs6000/rs6000.opt (mdlmzb): New option.
1961 (msched-prolog, msched-epilog): Use Var not Mask.
1962 * doc/invoke.texi (-mdlmzb): Document.
1963 * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1965 (rs6000_override_options): Enable -mdlmzb for 405 and 440.
1966 * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
1968 2006-03-13 Uttam Pawar <uttamp@us.ibm.com>
1970 PR rtl-optimization/25739
1971 * bt-load.c (augment_live_range): Free tos pointer.
1973 * gensupport.c (identify_predicable_attribute): Free
1975 * gcov.c (create_file_names): Free name pointer.
1977 2006-03-13 Roger Sayle <roger@eyesopen.com>
1980 * stmt.c (emit_case_nodes): Handle the case where the index is a
1981 CONST_INT, where the comparison mode is specified by the index type.
1983 2006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1985 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
1988 2006-03-13 Richard Sandiford <richard@codesourcery.com>
1990 * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
1991 (*branch_fp_inverted): Likewise.
1993 2006-03-13 Jakub Jelinek <jakub@redhat.com>
1996 * omp-low.c (expand_omp_for_generic): Mark istart0
1997 and iend0 as addressable.
1999 2006-03-13 Jie Zhang <jie.zhang@analog.com>
2001 * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
2003 2006-03-13 Jeff Law <law@redhat.com>
2005 * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
2006 virtual operands are interesting.
2007 (vrp_visit_stmt): Corresponding changes.
2009 2006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
2011 * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
2013 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
2014 TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
2015 * config/bfin/crti.S: Use it instead of __PIC__.
2016 * config/bfin/crtn.S: Likewise.
2018 * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
2019 call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
2021 Lose 'G' modifier for call operand.
2022 * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
2023 recognize 'G' modifier.
2025 2006-03-13 Eric Botcazou <ebotcazou@adacore.com>
2028 * gimplify.c (gimplify_switch_expr): Discard empty ranges.
2029 * stmt.c (expand_case): Likewise.
2031 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2033 PR rtl-optimization/26254
2034 * loop-invariant.c (seq_insns_valid_p): New function.
2035 (move_invariant_reg): Only emit new code if it is valid.
2037 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2039 * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
2041 (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
2042 (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
2043 (commit_one_edge_insertion): Do not look for loop notes.
2045 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2047 * jump.c (follow_jumps): Do not check for loop notes. Move check for
2048 flag_test_coverage out of loop.
2050 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2052 * final.c (shorten_branches): Remove outdated comment, and turn
2053 the if branch that guards it to continue.
2055 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2057 * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
2058 * cfgloop.h (struct loop): Remove unused fields.
2060 2006-03-13 Kazu Hirata <kazu@codesourcery.com>
2062 * doc/invoke.texi (-fdump-rtl-loop): Remove.
2063 (-dL, -fdump-rtl-loop2): Update the dump file names
2065 * doc/invoke.texi: Update dump file names.
2067 2006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
2069 * predict.c (estimate_probability): Remove.
2070 * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
2071 * basic-block.h (estimate_probability): Remove prototype.
2072 * passes.c (finish_optimization_passes): Dump branch prediction or
2073 profiling heuristics to the .profile tree dump.
2074 (init_optimization_passes): Unqueue pass_branch_prob.
2076 * doc/invoke.texi (-fdump-rtl-bp): Remove.
2078 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
2080 * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
2081 * rtl.h (LABEL_NEXTREF): Remove field accessor.
2083 2006-03-11 Eric Botcazou <ebotcazou@adacore.com>
2085 * function.h (frame_offset_overflow): Declare.
2086 * function.c (frame_offset_overflow): New function.
2087 (assign_stack_local_1): Call it to detect that the offset overflows.
2088 * cfgexpand.c (alloc_stack_frame_space): Likewise.
2090 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
2092 * config/sh/sh.c: Include alloc-pool.h.
2093 (label_ref_list_pool): New alloc pool.
2094 (label_ref_list_t): New type for lists of labels.
2095 (struct pool_node): Make wend a label_ref_list_t.
2096 (add_constant): Use the new type, eradicate LABEL_NEXTREF
2098 (dump_table): Likewise.
2099 (sh_reorg): Set up the alloc pool before using add_constant and
2100 dump_table, and destroy it when finishing.
2102 2006-03-11 Richard Sandiford <richard@codesourcery.com>
2104 * config/mips/mips.c: Remove redundant comment.
2106 2006-03-10 Jason Merrill <jason@redhat.com>
2109 * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
2110 the target was declared 'register'.
2112 2006-03-10 Adam Nemet <anemet@caviumnetworks.com>
2114 * genpreds.c (write_insn_constraint_len): Change definition of
2115 insn_constraint_len to return size_t to match the declaration.
2117 2006-03-10 DJ Delorie <dj@redhat.com>
2119 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
2121 (m32c_expand_insv): Fix test for an AND mask.
2123 2006-03-10 Richard Guenther <rguenther@suse.de>
2126 * builtins.c (get_pointer_alignment): Handle component
2127 references for field alignment.
2129 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
2131 * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
2132 when building with libgloss.
2133 (sh*elf): Implement --without-fp option.
2134 (sh64-superh-linux*): Don't multilib.
2136 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
2138 * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
2140 2006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
2142 * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
2143 Set it when one of the replacement functions returned true.
2144 Return TODO_cleanup_cfg if cfgchanged is true.
2145 (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
2147 2006-03-09 Adam Nemet <anemet@caviumnetworks.com>
2149 * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
2150 instead of gen_lowpart.
2152 2006-03-09 Richard Sandiford <richard@codesourcery.com>
2154 * config/mips/mips-protos.h (mips_output_conditional_branch): Change
2156 (mips_output_order_conditional_branch): Declare.
2157 * config/mips/mips.h (MIPS_BRANCH): New macro.
2158 * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
2159 for the comparison. Use gen_condjump.
2160 (mips_output_conditional_branch): Rework interface to take the
2161 asm templates for a direct branch and the inverse of a direct branch.
2162 (mips_output_order_conditional_branch): New function.
2163 (mips_builtin_branch_and_move): New function.
2164 (mips_expand_builtin_compare): Use it. Use VOIDmode for the
2165 branch condition. Use gen_single_cc as the condition for
2166 __builtin_mips_upper_* or __builtin_mips_lower_*.
2167 (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
2168 Use VOIDmode for the branch condition.
2169 * config/mips/predicates.md (order_operator): New predicate.
2170 * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
2171 (branch_fp): Rename to...
2172 (*branch_fp): ...this. Remove mode from comparison operator.
2173 Use new mips_output_conditional_branch interface.
2174 (branch_fp_inverted): Rename to...
2175 (*branch_fp_inverted): ...this and update as for *branch_fp.
2176 (*branch_zero<mode>): Rename to...
2177 (*branch_order<mode>): ...this. Remove mode from comparison operator.
2178 Use mips_output_order_conditional_branch. Only accept ordered
2180 (*branch_zero<mode>_inverted): Rename to...
2181 (*branch_order<mode>_inverted): ...this and update as for
2182 *branch_order<mode>.
2183 (*branch_equality<mode>): Accept zero as the second operand to
2184 the equality operator. Use the new mips_output_conditional_branch
2186 (*branch_equality<mode>_inverted): Likewise.
2187 (condjump): New expander.
2188 * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
2190 * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
2191 (bc1any2t, bc1any2f): Likewise.
2192 (single_cc): New expander.
2193 (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
2195 2006-03-09 Richard Sandiford <richard@codesourcery.com>
2197 * doc/md.texi: Update documentation of MIPS constraints.
2198 * config/mips/constraints.md: New file.
2199 * config/mips/mips.md: Include it.
2200 * config/mips/mips.c (mips_char_to_class): Delete.
2201 (override_options): Don't initialize mips_char_to_class.
2202 * config/mips/mips.h (mips_char_to_class): Delete.
2203 (REG_CLASS_FROM_LETTER): Delete.
2204 (CONST_OK_FOR_LETTER_P): Delete.
2205 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2206 (EXTRA_CONSTRAINT_Y): Delete.
2207 (EXTRA_CONSTRAINT_STR): Delete.
2208 (CONSTRAINT_LEN): Delete.
2209 (EXTRA_MEMORY_CONSTRAINT): Delete.
2211 2006-03-09 Diego Novillo <dnovillo@redhat.com>
2213 * tree-cfg.c (move_block_to_fn): Remove the statements from the
2214 original fn's eh regions.
2216 2006-03-09 Eric Botcazou <ebotcazou@adacore.com>
2218 * fold-const.c (build_range_check): Make sure to use a valid type to
2219 apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
2222 (range_predecessor): New static function.
2223 (range_successor): Likewise.
2224 (merge_ranges): Use them to compute predecessors and successors of
2227 2006-03-09 Roger Sayle <roger@eyesopen.com>
2230 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
2231 X op C3, consider whether C3 overflows towards +Inf or -Inf.
2233 2006-03-08 DJ Delorie <dj@redhat.com>
2235 * config/m32c/addsub.md (addqi3): Disparage a0/a1.
2236 (addpsi3): Expand to include memory operands. Remove
2237 reload-specific splits.
2238 * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
2239 (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
2240 (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
2241 (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
2242 (shift1_qi, shift1_hi, insv): New.
2243 * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
2244 (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
2245 cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
2247 * config/m32c/m32c-protos.h: Update as needed.
2248 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
2249 default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
2250 Fail for unrecognized R* constraints.
2251 (m32c_cannot_change_mode_class): Be more picky about pseudos.
2252 (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
2253 (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
2255 (m32c_init_libfuncs): New.
2256 (m32c_legitimate_address_p): Add debug wrapper.
2257 (m32c_rtx_costs): New.
2258 (m32c_address_cost): New.
2259 (conversions): Add 'B' prefix.
2260 (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
2261 operands, or word regnames for QI operands. 'B' prints bit
2263 (m32c_expand_setmemhi): New.
2264 (m32c_expand_movmemhi): New.
2265 (m32c_expand_movstr): New.
2266 (m32c_expand_cmpstr): New.
2267 (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
2268 (m32c_expand_neg_mulpsi3): Handle non-ints.
2269 (m32c_cmp_flg_0): New.
2270 (m32c_expand_movcc): New.
2271 (m32c_expand_insv): New.
2272 (m32c_scc_pattern): New.
2273 * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
2274 a0/a1 out of SIregs.
2275 (STORE_FLAG_VALUE): New.
2276 * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
2279 * config/m32c/mov.md: Make constraints more liberal.
2280 (zero_extendqihi2): Optimize r0/r1 case.
2281 * config/m32c/muldiv.md (mulpsi3): Check for intvals.
2282 * config/m32c/predicates.md (m32c_any_operand): New.
2283 (m32c_nonimmediate_operand): New.
2284 (m32c_hl_operand): New.
2285 (m32c_r3_operand): New.
2288 (memsym_operand): New.
2289 (memimmed_operand): New.
2290 (a_qi_operand): New.
2291 (m32c_eqne_operator): New.
2292 (m32c_1bit8_operand): New.
2293 (m32c_1bit16_operand): New.
2294 (m32c_1mask8_operand): New.
2295 (m32c_1mask16_operand): New.
2296 * config/m32c/blkmov.md: New file.
2297 * config/m32c/t-m32c (MD_FILES): Add blkmov.
2299 2006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
2301 * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
2302 unsigned to fix signed/unsigned comparison issue in
2303 DWARF2_FRAME_REG_OUT.
2304 (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
2305 unsigned comparison issue in DWARF2_FRAME_REG_OUT.
2307 * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
2308 of ptr into the ENABLE_CHECKING section.
2310 2006-03-08 Jeff Law <law@redhat.com>
2312 * tree-vrp.c (infer_value_range): Only count pointer uses
2313 and dereferences if -fdelete-null-pointer-checks is enabled.
2315 * tree-vrp.c (find_assert_locations): Infer value ranges for
2316 single use pointers, but do not create ASSERT_EXPRs for them.
2317 When a non-null range is inferred for a pointer, backwards
2318 propagate that range to other equivalent pointers through the
2321 2006-03-08 Paolo Bonzini <bonzini@gnu.org>
2324 * Makefile.in (dvi, html, install-info): Invoke the corresponding
2325 language hook targets.
2326 * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
2327 objcp/Make-lang.in: Create stub rules for dvi, html, install-info
2328 if language hook targets were missing.
2330 2006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
2332 * tree-ssa-opfinalize.h: Removed.
2333 * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
2335 * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
2336 (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
2337 INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
2338 add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
2339 finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
2340 finalize_ssa_v_must_def_ops): New.
2342 2006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2344 * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
2347 2006-03-07 Geoffrey Keating <geoffk@apple.com>
2349 * varasm.c (assemble_end_function): Say that 'fnname' is unused.
2351 * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
2352 addresses with offsets; reorganize.
2354 * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
2355 (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
2356 (expand_builtin_init_dwarf_reg_sizes): Likewise.
2358 2006-03-08 David Billinghurst <David.Billinghurst@riotinto.com>
2361 * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
2363 2006-03-08 Ben Elliston <bje@au.ibm.com>
2365 * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
2367 2006-03-07 Aldy Hernandez <aldyh@redhat.com>
2370 * doc/passes.texi (Tree-SSA passes): Document omp lowering and
2373 2006-03-07 Richard Guenther <rguenther@suse.de>
2375 PR tree-optimization/26587
2376 * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
2378 2006-03-07 Richard Sandiford <richard@codesourcery.com>
2380 * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
2382 2006-03-07 Richard Sandiford <richard@codesourcery.com>
2384 * hooks.c (hook_bool_mode_rtx_true): New function.
2385 * hooks.h (hook_bool_mode_rtx_true): Declare.
2386 * toplev.c (compile_file): Call output_shared_constant_pool.
2387 * varasm.c (shared_constant_pool): New variable.
2388 (assemble_start_function, assemble_end_function): Remove arguments
2389 from call to output_constant_pool.
2390 (create_constant_pool): New function, split out from...
2391 (init_varasm_status): ...here.
2392 (force_const_mem): Choose between the shared and per-function constant
2393 pools. Set current_function_uses_const_pool when reusing old entries
2394 as well as when creating new ones.
2395 (mark_constant): Ignore data argument.
2396 (mark_constants): Remove pool argument.
2397 (mark_constant_pool): Likewise. Use current_function_uses_const_pool
2398 to decide whether the function uses a constant pool.
2399 (output_constant_pool_contents): New function, split out from...
2400 (output_constant_pool): ...here.
2401 (output_shared_constant_pool): New function.
2402 (init_varasm_once): Initialize shared_constant_pool.
2403 * output.h (output_constant_pool): Delete.
2404 (output_shared_constant_pool): Declare.
2405 * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
2406 * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
2408 2006-03-06 Nick Clifton <nickc@redhat.com>
2410 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
2411 flag_strength_reduce.
2413 2006-03-06 Ben Elliston <bje@au.ibm.com>
2415 * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
2416 x86_64-*-linux* configurations.
2418 * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
2419 (LIBGCC2_WORDS_BIG_ENDIAN): Define.
2421 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
2423 * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
2425 * basic-block.h: Remove the extern for
2426 rediscover_loops_after_threading.
2428 * cfgloop.c (cancel_loop): Make it static.
2429 * cfgloop.h: Remove the prototype for cancel_loop.
2431 * flow.c (recompute_reg_usage): Make it static.
2432 * rtl.h: Remove the prototype for recompute_reg_usage.
2434 * function.c (use_return_register): Make it static.
2435 * function.h: Remove the prototype.
2437 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
2439 * recog.c (volatile_mem_p, validate_change_maybe_volatile):
2441 * recog.h: Remove the prototype for
2442 validate_change_maybe_volatile.
2444 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
2446 * rtlanal.c (replace_reg): Remove.
2447 * rtl.h: Remove the prototype for replace_reg.
2449 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
2451 * regclass.c (reg_scan_update): Remove.
2452 (reg_scan_mark_refs): Remove the last argument.
2453 * rtl.h: Remove the prototype for reg_scan_update.
2455 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
2457 * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
2458 combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
2459 config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
2460 config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
2461 df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
2462 loop-invariant.c, omp-low.c, opts.c, passes.c,
2463 rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
2464 tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
2465 tree-ssa-structalias.c, tree-ssa-threadedge.c,
2466 tree-ssa-threadupdate.c, tree-vect-patterns.c,
2467 tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
2468 unwind-dw2.c: Fix comment typos. Follow spelling conventions.
2470 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
2472 * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
2473 * dwarf2out.h: Remove the prototype for
2474 dwarf2out_add_library_unit_info.
2476 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
2478 * tree.c (add_var_to_bind_expr): Remove.
2479 * tree.h: Remove the prototype for add_var_to_bind_expr.
2481 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
2483 * regclass.c (n_non_fixed_regs): Remove.
2484 (init_reg_sets_1, globalize_reg): Remove all uses of
2486 * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
2488 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
2490 * rtlanal.c (insns_safe_to_move_p): Remove.
2491 * rtl.h: Remove the prototype for insns_safe_to_move_p.
2493 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
2495 * expmed.c (expand_mult_add): Remove.
2496 * expr.h: Remove the prototype for expand_mult_add.
2498 2006-03-04 Jakub Jelinek <jakub@redhat.com>
2500 * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
2501 and REG_SAVED_VAL_EXP constants.
2502 * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
2503 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
2504 Handle regs stored by value.
2505 (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
2506 (execute_cfa_program): Handle DW_CFA_val_offset,
2507 DW_CFA_val_offset_sf and DW_CFA_val_expression.
2508 (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
2509 value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
2510 (uw_install_context_1): Handle target regs stored by value.
2512 2006-03-03 Daniel Berlin <dberlin@dberlin.org>
2514 * tree-sra.c (tree_sra): Return todoflags;
2515 (generate_one_element): Set TODO_update_smt_usage if needed.
2516 (pass_sra): Remove TODO_update_smt_usage.
2517 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
2519 (tree_ssa_forward_propagate_single_use_vars): Return
2520 TODO_update_smt_usage if we need to update SMT usage.
2521 (pass_forwprop): Remove TODO_update_smt_usage.
2523 2006-03-03 Diego Novillo <dnovillo@redhat.com>
2525 * tree-ssa-operands.c: Tidy whitespace. Fix spelling.
2526 (correct_use_link): Remove reference to get_stmt_operands.
2527 (update_stmt_operands): Likewise.
2528 (get_modify_expr_operands): New function factored out of
2529 parse_ssa_operands and get_expr_operands.
2530 Try to create V_MUST_DEFs for LHS by default.
2531 (get_expr_operands) <case MODIFY_EXPR>: Call
2532 get_modify_expr_operands.
2533 <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
2534 <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
2535 (parse_ssa_operands) <case MODIFY_EXPR>: Call
2536 get_modify_expr_operands.
2538 2006-03-03 Kazu Hirata <kazu@codesourcery.com>
2540 * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
2541 * tree-flow.h: Remove the prototype for
2542 referenced_var_lookup_if_exists.
2544 2006-03-03 Steve Ellcey <sje@cup.hp.com>
2546 PR rtl-optimization/26345
2548 * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
2550 2006-03-03 Roger Sayle <roger@eyesopen.com>
2552 PR tree-optimization/26524
2553 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
2554 fold_convert to create a constant of the appropriate type.
2556 2006-03-03 Richard Sandiford <richard@codesourcery.com>
2558 * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2559 SYMBOL_REF_IN_BLOCK_P.
2560 * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
2561 of SYMBOL_FLAG_IN_BLOCK.
2562 * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
2563 instead of SYMBOL_REF_IN_BLOCK_P.
2564 * explow.c (use_anchored_address): Likewise.
2565 * rtl.c (rtx_size): Likewise.
2566 * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
2567 instead of SYMBOL_FLAG_IN_BLOCK.
2568 (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2569 SYMBOL_REF_IN_BLOCK_P.
2570 (assemble_variable): Likewise.
2571 (output_constant_def_contents): Likewise.
2572 (output_constant_pool): Likewise.
2573 (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
2574 instead of SYMBOL_FLAG_IN_BLOCK.
2575 * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2576 SYMBOL_REF_IN_BLOCK_P.
2577 (SYMBOL_REF_BLOCK): Likewise.
2578 (SYMBOL_REF_OFFSET): Likewise.
2579 (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2580 SYMBOL_REF_IN_BLOCK_P.
2581 (SYMBOL_FLAG_IN_BLOCK): Replace with...
2582 (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
2583 (SYMBOL_REF_IN_BLOCK_P): Replace with...
2584 (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
2586 2006-03-03 Jakub Jelinek <jakub@redhat.com>
2588 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
2590 2006-03-02 Roger Sayle <roger@eyesopen.com>
2592 * simplify-rtx.c (simplify_unary_operation): When simplifying
2593 (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
2594 that we perform the right shift in the appropriate mode, and
2595 then extend or truncate the result to requested mode.
2597 2006-03-03 Zdenek Dvorak <dvorakz@suse.cz>
2599 * gengtype.c (main): Handle double_int type.
2600 * tree.h (struct tree_int_cst): Make type of int_cst double_int.
2601 * double-int.c: New file.
2602 * double-int.h: New file.
2603 * system.h: Include doubleint.h.
2604 * Makefile.in (SYSTEM_H): Include double-int.h.
2605 (double-int.o): Add.
2607 2006-03-03 Joseph S. Myers <joseph@codesourcery.com>
2610 * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
2613 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
2615 * tree-vrp.c (remove_range_assertions): Do not update statements
2618 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
2620 * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
2622 * gcse.c (rest_of_handle_gcse): Ditto.
2623 * except.c (gate_handle_eh): Ditto.
2624 * cfgcleanup.c (rest_of_handle_jump2): Ditto.
2625 * basic-block.h (CLEANUP_PRE_LOOP): Remove.
2627 2006-03-02 Eric Christopher <echristo@apple.com>
2629 * config/i386/i386.c (machopic_output_stub): Add indirection to
2632 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
2636 2006-03-02 David S. Miller <davem@sunset.davemloft.net>
2638 Sun Niagara specific optimizations.
2639 * config.gcc: Recognize niagara as target.
2640 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
2641 (TARGET_CPU_niagara): Define.
2642 (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
2643 (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
2644 (CPP_CPU_SPEC): Handle -mcpu=niagara.
2645 (ASM_CPU_SPEC): Likewise.
2646 (PROCESSOR_NIAGARA): New enum entry.
2647 (REGISTER_MOVE_COST): Handle Niagara.
2648 (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
2649 * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
2650 (sparc_override_options): Recognize "niagara", set appropriate
2651 default MASK_* values for it, and align functions to 32-bytes
2652 by default just like ULTRASPARC/ULTRASPARC3.
2653 (sparc_initialize_trampoline): Handle niagara like ultrasparc.
2654 (sparc64_initialize_trampoline): Likewise.
2655 (sparc_use_sched_lookahead): Use zero for niagara.
2656 (sparc_issue_rate): Use one for niagara.
2657 * config/sparc/niagara.md: New file.
2658 * config/sparc/sparc.md: Include it.
2659 * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
2660 ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
2661 when default cpu is niagara.
2662 (CPP_CPU_SPEC): Handle -mcpu=niagara.
2663 (ASM_CPU_SPEC): Likewise.
2664 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
2665 when default cpu is niagara.
2666 (ASM_CPU_SPEC): Handle -mcpu=niagara.
2667 * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
2668 just like v9/ultrasparc/ultrasparc3.
2669 * doc/invoke.texi: Add documentation for "niagara" and improve
2670 existing documentation for ultrasparc variants.
2672 2006-03-02 Diego Novillo <dnovillo@redhat.com>
2674 * tree-ssa-operands.c (update_stmt_operands): Update documentation.
2676 2006-03-02 Richard Sandiford <richard@codesourcery.com>
2678 * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
2679 (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
2680 and say that only one is needed.
2681 * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
2682 * target.h (have_switchable_bss_sections): New hook.
2683 * explow.c (use_anchored_address): Check that the symbol is in a block.
2684 * varasm.c (tls_comm_section, comm_section, lcomm_section)
2685 (bss_noswitch_section): New variables.
2686 (get_unnamed_section): Add SECTION_UNNAMED to the flags.
2687 (get_noswitch_section): New function.
2688 (get_block_for_section): Allow SECT to be null.
2689 (unlikely_text_section_p): Use SECTION_STYLE.
2690 (bss_initializer_p): New function.
2691 (get_variable_section): Move earlier in file. Take a new argument,
2692 prefer_noswitch_p. Move bss checks from assemble_variable to here.
2693 Return one of the new *_sections in such cases.
2694 (get_block_for_decl): New function, extracting some logic from
2695 use_blocks_for_decl_p.
2696 (change_symbol_section): Remove in favor of...
2697 (change_symbol_block): ...this new function.
2698 (use_blocks_for_decl_p): Remove checks now performed by
2700 (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
2701 (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
2702 (emit_local, emit_bss, emit_common): ...these new functions.
2703 Return true if the alignment was honored.
2704 (emit_tls_common): New function.
2705 (asm_emit_uninitialised): Delete.
2706 (assemble_variable_noswitch): New function, split out from...
2707 (assemble_variable): ...here. Don't make decisions about common
2708 variables here. Globalize all public decls that go into non-common
2709 sections. Check whether SYMBOL_REF_BLOCK is null.
2710 (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
2711 (output_constant_pool): Likewise.
2712 (init_varasm_once): Initialize the new section variables.
2713 (have_global_bss_p): New function.
2714 (categorize_decl_for_section): Use bss_initializer_p.
2715 (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
2716 (place_block_symbol): Assert that the symbol must be in a block.
2717 * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
2718 (TARGET_INITIALIZER): Include it.
2719 * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
2720 * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
2721 (SECTION_MACH_DEP): Bump by two.
2722 (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
2723 (unnamed_section): Mention SECTION_UNNAMED in comment.
2724 (named_section): Likewise SECTION_NAMED.
2725 (noswitch_section_callback): New type.
2726 (noswitch_section): New structure.
2727 (section): Add a noswitch_section alternative.
2728 (SECTION_STYLE): New macro.
2729 (tls_comm_section, comm_section, lcomm_section): Declare.
2730 (bss_noswitch_section, have_global_bss_p): Declare.
2731 * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
2732 * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
2734 * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
2735 * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
2738 2006-03-02 Daniel Berlin <dberlin@dberlin.org>
2740 * gcc/tree-vrp.c (execute_vrp): Return value.
2741 * gcc/regrename.c (rest_of_handle_regrename): Ditto.
2742 * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
2743 * gcc/tree-complex.c (tree_lower_complex): Ditto.
2744 (tree_lower_complex_O0): Ditto.
2745 * gcc/tracer.c (rest_of_handle_tracer): Ditto.
2746 * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
2747 * gcc/postreload.c (rest_of_handle_postreload): Ditto.
2748 * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
2749 (execute_tail_calls): Ditto.
2750 * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2751 * gcc/tree.h (init_function_for_compilation): Ditto.
2752 * gcc/ipa-cp.c (ipcp_driver): Ditto.
2753 * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
2754 * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
2755 * gcc/final.c (compute_alignments): Ditto.
2756 (rest_of_handle_final): Ditto.
2757 (rest_of_handle_shorten_branches): Ditto.
2758 (rest_of_clean_state): Ditto.
2759 * gcc/omp-low.c (execute_expand_omp): Ditto.
2760 (execute_lower_omp): Ditto.
2761 * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
2762 * gcc/ipa-reference.c (static_execute): Ditto.
2763 * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
2764 * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
2765 (rest_of_handle_machine_reorg): Ditto.
2766 * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
2767 * gcc/flow.c (recompute_reg_usage): Ditto.
2768 (rest_of_handle_remove_death_notes): Ditto.
2769 (rest_of_handle_life): Ditto.
2770 (rest_of_handle_flow2): Ditto.
2771 * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
2772 * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
2773 (do_ssa_store_ccp): Ditto.
2774 (execute_fold_all_builtins): Ditto.
2775 * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
2776 * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
2777 * gcc/ipa-pure-const.c (static_execute): Ditto.
2778 * gcc/cse.c (rest_of_handle_cse): Ditto.
2779 (rest_of_handle_cse2): Ditto.
2780 * gcc/web.c (rest_of_handle_web): Ditto.
2781 * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
2782 * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
2783 * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
2784 * gcc/tree-nrv.c (tree_nrv): Ditto.
2785 (execute_return_slot_opt): Ditto.
2786 * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
2787 (create_structure_vars): Ditto.
2788 * gcc/loop-init.c (rtl_loop_init): Ditto.
2789 (rtl_loop_done): Ditto.
2790 (rtl_move_loop_invariants): Ditto.
2791 (rtl_unswitch): Ditto.
2792 (rtl_unroll_and_peel_loops): Ditto.
2793 (rtl_doloop): Ditto.
2794 * gcc/gimple-low.c (lower_function_body): Ditto.
2795 (mark_used_blocks): Ditto.
2796 * gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
2797 * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
2798 (cgraph_early_inlining): Ditto.
2799 * gcc/global.c (rest_of_handle_global_alloc): Ditto.
2800 * gcc/jump.c (cleanup_barriers): Ditto.
2801 (purge_line_number_notes): Ditto.
2802 * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
2803 (rest_of_handle_if_after_reload): Ditto.
2804 * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
2805 (tree_ssa_loop_im): Ditto.
2806 (tree_ssa_loop_unswitch): Ditto.
2807 (tree_vectorize): Ditto.
2808 (tree_linear_transform): Ditto.
2809 (tree_ssa_loop_ivcanon): Ditto.
2810 (tree_ssa_empty_loop): Ditto.
2811 (tree_ssa_loop_bounds): Ditto.
2812 (tree_complete_unroll): Ditto.
2813 (tree_ssa_loop_prefetch): Ditto.
2814 (tree_ssa_loop_ivopts): Ditto.
2815 (tree_ssa_loop_done): Ditto.
2816 * gcc/predict.c (tree_estimate_probability): Ditto.
2817 * gcc/recog.c (split_all_insns_noflow): Ditto.
2818 (rest_of_handle_peephole2): Ditto.
2819 (rest_of_handle_split_all_insns): Ditto.
2820 * gcc/tree-eh.c (lower_eh_constructs): Ditto.
2821 * gcc/regmove.c (rest_of_handle_regmove): Ditto.
2822 (rest_of_handle_stack_adjustments): Ditto.
2823 * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
2824 * gcc/function.c (instantiate_virtual_regs): Ditto.
2825 (init_function_for_compilation): Ditto.
2826 (rest_of_handle_check_leaf_regs): Ditto.
2827 * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
2828 (rest_of_handle_gcse): Ditto.
2829 * gcc/ipa-type-escape.c (type_escape_execute): Ditto.
2830 * gcc/alias.c (rest_of_handle_cfg): Ditto.
2831 * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
2832 * gcc/profile.c (rest_of_handle_branch_prob): Ditto.
2833 * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
2834 * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
2835 * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
2836 * gcc/tree-dfa.c (find_referenced_vars): Ditto.
2837 * gcc/except.c (set_nothrow_function_flags): Ditto.
2838 (convert_to_eh_region_ranges): Ditto.
2839 (rest_of_handle_eh): Ditto.
2840 * gcc/emit-rtl.c (unshare_all_rtl): Ditto.
2841 (remove_unnecessary_notes): Ditto.
2842 * gcc/except.h (set_nothrow_function_flags): Ditto.
2843 (convert_to_eh_region_ranges): Ditto.
2844 * gcc/cfgexpand.c (tree_expand_cfg): Ditto.
2845 * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
2846 * gcc/tree-ssa-pre.c (do_pre): Ditto.
2847 (execute_fre): Ditto.
2848 * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
2849 (rest_of_handle_jump2): Ditto.
2850 * gcc/tree-sra.c (tree_sra): Ditto.
2851 * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
2852 (execute_mudflap_function_decls): Ditto.
2853 * gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
2854 (do_store_copy_prop): Ditto.
2855 * gcc/ipa-prop.h (ipcp_driver): Ditto.
2856 * gcc/cfglayout.c (insn_locators_initialize): Ditto.
2857 * gcc/tree-ssa-forwprop.c
2858 (tree_ssa_forward_propagate_single_use_vars): Ditto.
2859 * gcc/cfglayout.h (insn_locators_initialize): Ditto.
2860 * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
2861 * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
2862 (execute_late_warn_uninitialized): Ditto.
2863 * gcc/rtl.h (cleanup_barriers): Ditto.
2864 (split_all_insns_noflow): Ditto.
2865 (purge_line_number_notes): Ditto.
2866 (unshare_all_rtl): Ditto.
2867 (remove_unnecessary_notes): Ditto.
2868 (recompute_reg_usage): Ditto.
2869 (variable_tracking_main): Ditto.
2870 * gcc/integrate.c (emit_initial_value_sets): Ditto.
2871 * gcc/integrate.h (emit_initial_value_sets): Ditto.
2872 * gcc/tree-optimize.c (execute_free_datastructures): Ditto
2873 (execute_free_cfg_annotations): Ditto.
2874 (execute_fixup_cfg): Ditto.
2875 (execute_cleanup_cfg_pre_ipa): Ditto.
2876 (execute_cleanup_cfg_post_optimizing): Ditto.
2877 (execute_init_datastructures): Ditto.
2878 * gcc/tree-object-size.c (compute_object_sizes): Ditto.
2879 * gcc/combine.c (rest_of_handle_combine): Ditto.
2880 * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
2881 * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
2882 (rest_of_handle_reorder_blocks): Ditto.
2883 (rest_of_handle_partition_blocks): Ditto.
2884 * gcc/var-tracking.c (variable_tracking_main): Ditto.
2885 * gcc/tree-profile.c (tree_profiling): Ditto.
2886 * gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
2887 * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
2888 * gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
2889 (rest_of_handle_sched2): Ditto.
2890 * gcc/basic-block.h (free_bb_insn): Ditto.
2891 * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
2892 * gcc/tree-cfg.c (execute_build_cfg): Ditto.
2893 (remove_useless_stmts): Ditto.
2894 (split_critical_edges): Ditto.
2895 (execute_warn_function_return): Ditto.
2896 (execute_warn_function_noreturn): Ditto.
2897 * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
2898 * gcc/cfgrtl.c (free_bb_for_insn): Ditto.
2899 * gcc/passes.c (execute_one_pass): Run additional
2900 todos returned by execute function.
2901 * gcc/tree-pass.h (struct tree_opt_pass): Make execute
2904 2006-03-02 Richard Guenther <rguenther@suse.de>
2906 * tree-ssa-alias.c (find_used_portions): Consider taking
2907 the address as making the variable not write-only.
2909 2006-03-02 Nick Clifton <nickc@redhat.com>
2911 * config.gcc (default_use_cxa_atexit): Extend the description of
2912 this configure variable. Set its default value to "yes" for
2913 Linux, NetBSD and ELF targets on the assumption that they will
2914 use C libraries with the __cxa_atexit function.
2916 2006-03-02 Ben Elliston <bje@au.ibm.com>
2918 * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
2919 parameter as unused to suppress a build warning.
2921 2006-03-02 Ben Elliston <bje@au.ibm.com>
2923 * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
2926 2006-03-01 Roger Sayle <roger@eyesopen.com>
2929 * gthr-posix.h (__gthrw2): Define to take three parameters, the
2930 declared name, the weak reference name, and the typeof name.
2931 (__gthrw): Avoid expanding the declared name suffix.
2932 (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
2934 2006-03-01 Jakub Jelinek <jakub@redhat.com>
2936 * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
2938 (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
2939 DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
2940 DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
2941 DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
2942 DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
2943 (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
2944 (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
2945 DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
2946 (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
2947 DW_DS_leading_separate, DW_DS_trailing_separate): New.
2948 (DW_END_default, DW_END_big, DW_END_little): New.
2949 (DW_END_lo_user, DW_END_hi_user): Define.
2950 (DW_LNE_lo_user, DW_LNE_hi_user): Define.
2951 (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
2952 (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
2955 2006-03-01 Diego Novillo <dnovillo@redhat.com>
2957 * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
2959 * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
2961 (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
2963 * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
2965 * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
2966 to 'symbol_mem_tag'.
2968 * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
2971 2006-03-01 Roger Sayle <roger@eyesopen.com>
2973 * builtins.c (fold_builtin_copysign): Delete unreachable code.
2975 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
2978 * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
2979 MACHO_DYNAMIC_NO_PIC_P.
2980 (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
2982 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
2985 * config/darwin-protos.h (darwin_asm_output_anchor):
2987 * config/darwin-sections.def (cstring_section):
2988 Add SECTION_MERGE to the flags.
2989 (literal4_section): Likewise.
2990 (literal8_section): Likewise.
2991 (objc_selector_refs_section): Likewise.
2992 (objc_cls_refs_section): Likewise.
2993 * config/darwin.c (darwin_asm_output_anchor): New
2995 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
2997 2006-03-01 Daniel Berlin <dberlin@dberlin.org>
2999 Fix PR tree-optimization/26443
3000 * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
3001 to todo and PROP_tmt_usage to properties_destroyed.
3002 * tree-ssa-ccp.c (pass_ccp): Ditto.
3003 (pass_store_ccp): Ditto.
3004 * tree-ssa-dom.c (pass_dominator): Ditto.
3006 2006-03-01 Diego Novillo <dnovillo@redhat.com>
3008 * tree-ssa-operands.c: Cleanup whitespace.
3009 (get_asm_expr_operands): Move before first invocation.
3010 (get_indirect_ref_operands): Likewise.
3011 (get_tmr_operands): Likewise.
3012 (get_call_expr_operands): Likewise.
3013 (append_def): Likewise.
3014 (append_use): Likewise.
3015 (append_v_may_def): Likewise.
3016 (append_v_must_def): Likewise.
3017 (add_call_clobber_ops): Likewise.
3018 (add_call_read_ops): Likewise.
3019 (add_stmt_operand): Likewise.
3020 (add_virtual_operand): Likewise.
3021 (build_ssa_operands): Likewise.
3023 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
3028 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
3029 with a call expr to ...
3030 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
3032 2006-03-01 Diego Novillo <dnovillo@redhat.com>
3034 * tree-vrp.c (extract_range_from_assert): Remove special
3035 handling for types with super-types.
3037 2006-03-01 Ben Elliston <bje@au.ibm.com>
3039 * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
3040 and powerpc64-*-linux* configurations.
3041 * config/t-dfprules: New file.
3043 * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
3044 Compile dfp-bit.c from the source directory using -DWIDTH and
3045 $DFP_CFLAGS to control the compilation of that file, rather than
3046 generating width-specific versions in the build directory.
3047 * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
3048 (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
3050 2006-02-28 Zack Weinberg <zackw@panix.com>
3052 * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
3055 2006-02-28 Eric Christopher <echristo@apple.com>
3057 * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
3058 Set up IN_LIBGCC definition of TARGET_64BIT.
3059 * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
3061 2006-02-28 Roger Sayle <roger@eyesopen.com>
3064 * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
3065 BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these
3066 cases via the construction of "expr != 0".
3068 2006-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
3070 * alias.c (alias_invariant, alias_invariant_size): Remove.
3071 (record_base_value): Remove.
3072 (memrefs_conflict_p): Don't look at alias_invariant.
3073 (end_alias_analysis): Don't free it.
3074 * alias.h (record_base_value): Remove prototype.
3076 2006-02-28 Paolo Bonzini <bonzini@gnu.org>
3077 Adam Nemet <anemet@caviumnetworks.com>
3079 * rtl.h (truncated_to_mode): Declare it.
3080 (struct rtl_hooks): Add reg_truncated_to_mode hook.
3081 * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
3082 (RTL_HOOKS_INITIALIZER): Include it.
3083 * rtlhooks.c (reg_truncated_to_mode_general): New function.
3084 * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
3085 reg_truncated_to_mode.
3086 * rtlanal.c (truncated_to_mode): Define it.
3087 * simplify-rtx.c (simplify_unary_operation_1): Use it.
3089 2006-02-28 Jeff Law <law@redhat.com>
3091 * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
3092 conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
3093 the range allowed by TYPE_PRECISION.
3095 * tree.h (strct phi_arg_d): Remove unused NONZERO field.
3097 2006-02-28 Dorit Nuzman <dorit@il.ibm.com>
3099 PR tree-optimization/26419
3100 * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
3103 2006-02-27 Zack Weinberg <zackw@panix.com>
3105 * doc/md.texi: Fix typo in previous change.
3107 2006-02-27 Kenneth Zadeck <zadeck@naturalbridge.com>
3111 2006-02-27 Zack Weinberg <zackw@panix.com>
3113 * rtl.def (define_constraint, define_register_constraint)
3114 (define_memory_constraint, define_address_constraint): New MD forms.
3115 * gensupport.c (process_rtx): Put define_constraint etc on the
3117 * genpreds.c (process_define_predicate): Adjust comment. Validate
3118 the name, and call validate_exp to validate the expression.
3119 (mark_mode_tests, write_extract_subexp): Can assume correct input.
3120 (write_predicate_expr): Likewise. NAME argument no longer necessary;
3121 all callers changed.
3122 (validate_exp, needs_variable, struct constraint_data)
3123 (constraints_by_letter_table, first_constraint, last_constraint_ptr)
3124 (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
3125 (const_dbl_constraints, constraint_max_namelen)
3126 (have_register_constraints, have_memory_constraints)
3127 (have_address_constraints, have_address_constraints)
3128 (have_extra_constraints, have_const_int_constraints)
3129 (have_const_dbl_constraints, mangle, add_constraint)
3130 (process_define_constraint, process_define_register_constraint)
3131 (write_enum_constraint_num, write_lookup_constraint)
3132 (write_insn_constraint_len, write_regclass_for_constraint)
3133 (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
3134 (write_insn_extra_memory_constraint)
3135 (write_insn_extra_address_constraint)
3136 (write_satisfies_constraint_fns): New.
3137 (write_tm_preds_h): If we have new-style constraint definitions,
3138 prototype the functions generated from them, and define the
3139 old constraint interface (still used by generic code) in terms of
3141 (write_insn_preds_c): If we have new-style constraint definitions,
3142 generate all relevant functions from those definitions.
3143 (main): Handle define_constraint etc.
3144 * genoutput.c (struct constraint_data, indep_constraints)
3145 (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
3146 (mdep_constraint_len): New data structures and functions, defined
3147 #ifdef USE_MD_CONSTRAINTS.
3148 (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
3149 (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
3150 use new logic to validate operand constraints against constraint
3152 (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
3154 * defaults.h: If none of the old-style constraint macros are
3155 defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
3156 old-style macros; and poison REG_CLASS_FROM_LETTER,
3157 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
3159 * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
3160 * doc/md.texi: Document new constraint-definition mechanism and the
3161 C interface it provides. Remove references to old mechanism
3162 elsewhere in the document.
3163 (Machine Constraints): Use pathnames relative to gcc directory,
3164 i.e. config/ARCH/FILE. Change i386 section to refer to
3165 config/i386/predicates.md; update that section to match docstrings.
3166 * doc/tm.texi: Move all documentation of the old constraint-
3167 definition macros to their own section, clearly mark as obsolete.
3169 * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
3170 (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
3172 * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
3173 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
3174 * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
3176 (splits and peepholes): Use satisfies_constraint_*.
3177 * config/i386/i386.c (memory_address_length)
3178 (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
3180 2006-02-27 Daniel Berlin <dberlin@dberlin.org>
3182 * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
3183 scalar operation to be put back into the loop.
3185 2006-02-27 Jakub Jelinek <jakub@redhat.com>
3188 * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
3189 (extract_cie_info): Handle S flag in augmentation string.
3190 (execute_cfa_program): If context->signal_frame, execute also
3191 fs->pc == context->ra instructions.
3192 (uw_frame_state_for): If context->signal_frame, don't subtract one
3193 from context->ra to find FDE.
3194 (uw_update_context_1): Set context->signal_frame to
3196 (_Unwind_GetIPInfo): New function.
3197 * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
3198 * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
3200 * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
3201 * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
3202 * unwind-compat.c (_Unwind_GetIPInfo): New function.
3203 * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
3204 * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
3205 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
3206 * config/i386/linux-unwind.h (x86_fallback_frame_state,
3207 x86_64_fallback_frame_state): Set fs->signal_frame.
3208 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
3209 (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
3210 (frob_update_context): Likewise. Workaround missing S flag in
3211 Linux 2.6.12 - 2.6.16 kernel vDSOs.
3212 * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
3213 Remove the psw_addr + 1 hack.
3215 2006-02-27 Daniel Berlin <dberlin@dberlin.org>
3217 * tree-ssa-structalias.c (get_constraint_for): Move code to deal
3218 with aggregates here.
3219 (find_func_aliases): Remove code for &<aggregate> from here.
3221 2006-02-26 Roger Sayle <roger@eyesopen.com>
3223 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
3224 (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
3225 Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
3228 2006-02-26 Roger Sayle <roger@eyesopen.com>
3231 * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
3233 2006-02-26 Zdenek Dvorak <dvorakz@suse.cz>
3235 * opts.c (decode_options): Do not handle flag_strength_reduce.
3236 (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
3237 and OPT_fstrength_reduce.
3238 * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
3239 flag_prefetch_loop_arrays for being nonzero.
3240 * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
3242 (fprefetch-loop-arrays-rtl): Removed.
3243 (flag_prefetch_loop_arrays): Do not specify the value.
3245 * doc/passes.texi: Update documentation of loop optimizer
3247 * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
3248 -frerun-loop-opt): Remove.
3250 2006-02-26 Richard Guenther <rguenther@suse.de>
3252 PR tree-optimization/26421
3253 * tree-ssa-alias.c (find_used_portions): Don't treat parameters
3254 in function calls that are ADDR_EXPRs as using the whole structure.
3256 2006-02-26 Steven Bosscher <stevenb.gcc@gmail.com>
3258 * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
3259 * tree-pass.h (pass_loop_optimize): Remove.
3260 * passes.c (pass_loop_optimize): Never run it.
3261 * toplev.c (backend_init): Don't call init_loop.
3262 * opts.c (flag_loop_optimize_set): Remove.
3263 (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
3264 (common_handle_option) <OPT_floop_optimize>: Remove. Don't disable
3265 the old RTL loop optimizer when profiling enabled.
3266 * predict.c (tree_estimate_probability): Always strip builtin_expect.
3267 * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
3268 pre-headers for the sake of the old RTL loop optimizer.
3269 * Makefile.in: Remove all references to loop.o.
3271 * doc/invoke.texi: Remove all references to -floop-optimize
3272 and -frerun-loop-opt.
3274 2006-02-26 Zack Weinberg <zackw@panix.com>
3276 * doc/md.texi (Machine Constraints): Refer to all files with paths
3277 relative to gcc directory (i.e. config/CPU/file). Add missing
3278 @table @code ... @end table to M32C subsection.
3280 2006-02-26 Roger Sayle <roger@eyesopen.com>
3282 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
3284 <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
3286 2006-02-26 Roger Sayle <roger@eyesopen.com>
3287 James A. Morrison <phython@gcc.gnu.org>
3290 * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
3291 when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
3292 new constant C2<<C1, or as (X<0) or (X,false) depending upon the
3293 signedness of the shift operation.
3295 2006-02-26 Dorit Nuzman <dorit@il.ibm.com>
3297 PR tree-optimization/26359
3298 * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
3300 2006-02-25 Roger Sayle <roger@eyesopen.com>
3302 * simplify-rtx.c (simplify_relational_operation_1): Simplify
3303 (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y
3304 as X == 0, and some symmetry related transformations.
3305 Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line.
3307 2006-02-25 Roger Sayle <roger@eyesopen.com>
3310 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
3311 and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some
3312 symmetry related transformations. Fold (X^C1) == C2 as
3315 2006-02-25 Juergen Weigert <jw@suse.de>
3316 Richard Guenther <rguenther@suse.de>
3318 * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
3320 2006-02-24 Adam Nemet <anemet@caviumnetworks.com>
3322 * combine.c (gen_lowpart_or_truncate): Call
3323 simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
3325 2006-02-24 Diego Novillo <dnovillo@redhat.com>
3327 * doc/invoke.texi: Move -fopenmp description to "Options for
3329 Remove reference to -lgomp.
3331 2006-02-24 David Edelsohn <edelsohn@gnu.org>
3333 * doc/install.texi: Require GNU tar version 1.14.
3335 2006-02-24 Geoffrey Keating <geoffk@apple.com>
3337 * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
3338 * doc/invoke.texi (C++ Dialect Options): Document
3339 -fno-use-cxa-get-exception-ptr.
3340 * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
3341 * configure: Regenerate.
3342 * c.opt (fuse-cxa-get-exception-ptr): New.
3343 * c-opts.c (c_common_handle_option): Handle
3344 OPT_fuse_cxa_get_exception_ptr.
3345 * c-common.c (flag_use_cxa_atexit): Update documentation.
3346 (flag_use_cxa_get_exception_ptr): New.
3347 * c-common.h (flag_use_cxa_get_exception_ptr): New.
3348 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
3350 (C_COMMON_OVERRIDE_OPTIONS): New.
3352 2006-02-24 Roger Sayle <roger@eyesopen.com>
3355 * combine.c (try_combine): Explicitly check whether GET_CODE is
3356 a SET or a CLOBBER, instead on checking that it isn't a USE.
3358 2006-02-24 Roger Sayle <roger@eyesopen.com>
3360 * fold-const.c (fold_comparison): New subroutine of fold_binary
3361 containing transformations common to both the equality and
3362 ordering relational operators, factored out of fold_binary.
3363 (fold_binary): Separate out the equality operators (EQ_EXPR
3364 and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
3365 LE_EXPR and GE_EXPR), calling fold_comparison to perform the
3366 transformations common to both.
3367 (fold_div_compare): Fix latent bugs in the previously unreachable
3368 LT_EXPR and GE_EXPR cases.
3370 2006-02-24 David Edelsohn <edelsohn@gnu.org>
3372 * config/rs6000/rs6000.c (rs6000_init_builtins): Change
3373 decl libname for clog to __clog on AIX.
3375 * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
3377 2006-02-24 Alan Modra <amodra@bigpond.net.au>
3380 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
3381 output traceback table for thunks. Localise rs6000_stack_info call.
3383 2006-02-23 Roger Sayle <roger@eyesopen.com>
3384 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3386 * gthr-posix.h (__gthrw): Fix typo in comment.
3388 2006-02-23 Geoffrey Keating <geoffk@apple.com>
3390 * doc/cpp.texi (Character sets): Document that we do support
3391 input files to be in any character set.
3393 2006-02-23 Jeff Law <law@redhat.com>
3395 * tree.h (PHI_ARG_NONZERO): Remove.
3396 * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
3397 (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
3398 node to the new node.
3400 PR tree-optimization/26425
3401 * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
3402 min/max, then assume its varying.
3404 2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
3406 PR rtl-optimization/26316
3407 * rtlanal.c (enum may_trap_p_flags): New.
3408 (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore
3409 MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
3410 (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
3411 (may_trap_after_code_motion_p): New function.
3412 * loop-invariant.c (find_identical_invariants): Fix dump formating.
3413 (find_invariant_insn): Use may_trap_after_code_motion_p.
3414 * rtl.h (may_trap_after_code_motion_p): Declare.
3416 2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
3418 * emit-rtl.c (immed_double_const): Cleanup.
3420 2006-02-23 Daniel Berlin <dberlin@dberlin.org>
3422 Fix PR tree-optimization/26376
3423 * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
3426 2006-02-23 Jakub Jelinek <jakub@redhat.com>
3429 * gimplify.c (omp_add_variable): Guard variable size decl test with
3430 DECL_SIZE (decl) check.
3432 2006-02-23 Richard Guenther <rguenther@suse.de>
3435 * tree-ssa-structalias.c (find_func_aliases): Handle complex types
3436 like aggregate types.
3438 2006-02-23 Jakub Jelinek <jakub@redhat.com>
3440 * configure.ac: Add --with{,out}-long-double-128 configure option.
3441 (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
3442 * configure: Rebuilt.
3443 * config.in: Rebuilt.
3444 * doc/install.texi (Options specification): Document
3445 --with-long-double-128.
3447 * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
3448 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
3449 * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
3450 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
3452 2006-02-23 Aldy Hernandez <aldyh@redhat.com>
3454 * config/s390/s390.c (override_options): Handle
3455 TARGET_DEFAULT_LONG_DOUBLE_128.
3457 * config/alpha/alpha.c (override_options): Handle
3458 TARGET_DEFAULT_LONG_DOUBLE_128.
3460 * config/sparc/sparc.c (sparc_override_options): Handle
3461 TARGET_DEFAULT_LONG_DOUBLE_128.
3463 2006-02-22 Daniel Jacobowitz <dan@codesourcery.com>
3465 * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
3466 (real-install-headers-tar, real-install-headers-cpio)
3467 (real-install-headers-cp): New targets.
3469 2006-02-22 Richard Sandiford <richard@codesourcery.com>
3471 * tree.h (variable_section): Delete.
3472 * varasm.c (variable_section): Delete.
3474 2006-02-22 Paolo Bonzini <bonzini@gnu.org>
3476 * install.texi: Add notes on install.texi2html.
3477 (Building in parallel): Do not use footnotes.
3479 2006-02-21 Aldy Hernandez <aldyh@redhat.com>
3482 * doc/install.texi (Configuration): Document --disable-libgomp.
3484 2006-02-21 Geoffrey Keating <geoffk@apple.com>
3486 * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
3488 2006-02-21 Alexandre Oliva <aoliva@redhat.com>
3490 * config/i386/sse.md (vec_extractv2df_1_sse): New.
3491 (vec_extractv2df_0_sse): New.
3493 2006-02-21 Alexandre Oliva <aoliva@redhat.com>
3495 * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
3496 * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
3497 * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
3498 * dwarf2out.c (build_cfa_loc): New offset parameter. Add it
3499 to the result of the expression.
3500 (def_cfa_1): Adjust.
3501 (frame_pointer_cfa_offset): Rename to...
3502 (frame_pointer_fb_offset): ... this. Adjust all uses.
3503 (convert_cfa_to_loc_list): Rename to...
3504 (convert_cfa_to_fb_loc_list): ... this. New offset parameter.
3505 Pass it on to build_cfa_loc.
3506 (compute_frame_pointer_to_cfa_displacement): Rename to...
3507 (compute_frame_pointer_to_fb_displacement): ... this. New
3508 offset parameter. Use it in computation.
3509 (gen_subprogram_die): Compute cfa_fb_offset with the new
3510 macro, and use it to compute the fb loc list and the
3513 2006-02-21 Bernd Schmidt <bernd.schmidt@analog.com>
3515 * config/bfin/predicates.md (cc_operand): Delete predicate. All uses
3516 replaced with register_operand.
3517 * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
3518 non-DREG is expensive.
3519 * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
3520 * config/bfin/bfin.md (movbi): Fix constraints and template for moves
3523 2006-02-21 Joseph S. Myers <joseph@codesourcery.com>
3525 * doc/install.texi2html: Use set -e.
3527 2006-02-21 Richard Sandiford <richard@codesourcery.com>
3529 * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
3530 (ASM_OUTPUT_SHARED_LOCAL): Delete.
3531 * doc/invoke.texi (-fshared-data): Delete.
3532 * common.opt (fshared-data): Delete.
3533 * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
3534 (assemble_static_space): Remove #if 0 code.
3535 * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
3536 (ASM_OUTPUT_SHARED_LOCAL): Poison.
3537 * config/cris/cris.h: Remove FIXME.
3539 2006-02-21 Paolo Bonzini <bonzini@gnu.org>
3541 * doc/sourcebuild.texi (Front End Directory): No more double-colon
3544 2006-02-21 Jakub Jelinek <jakub@redhat.com>
3547 * combine.c (simplify_shift_const_1): Disable nested shifts
3548 optimization for vector shifts.
3550 2006-02-20 Roger Sayle <roger@eyesopen.com>
3552 PR tree-optimization/26361
3553 * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
3554 of unsigned integer types.
3556 2006-02-20 Sebastian Pop <pop@cri.ensmp.fr>
3558 * tree-chrec.c (eq_evolutions_p): New.
3559 * tree-chrec.h (eq_evolutions_p): Declared.
3560 * tree-data-ref.c: Fix formatting.
3561 (datadep_stats, dependence_stats): New.
3563 (print_direction_vector): New.
3564 (dump_data_dependence_relation): Use print_direction_vector.
3565 (object_analysis, create_data_ref): Handle COMPONENT_REF.
3566 (compute_subscript_distance): Static.
3567 (initialize_data_dependence_relation): Static. Get the number
3568 of loops surrounding the references from the callers, and initialize
3569 DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
3570 base_object_differ_p analyzers.
3571 (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
3572 compute_overlap_steps_for_affine_1_2,
3573 analyze_subscript_affine_affine): Count the classified dependences.
3574 Print a message when a test failed.
3575 (can_use_analyze_subscript_affine_affine): New.
3576 (analyze_siv_subscript): Compute the data dependences on symbolic
3577 scevs that verify can_use_analyze_subscript_affine_affine.
3578 (chrec_steps_divide_constant_p): Returns true, false, or unknown.
3579 (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
3580 Handle symbolic scevs.
3581 (analyze_overlapping_iterations): Let symbolic affine scevs to be
3583 (subscript_dependence_tester): Moved...
3584 (build_classic_dist_vector, build_classic_dir_vector): Don't use
3585 lambda_vector_clear on newly allocated vectors. Get nb_loops from
3586 DDR_SIZE_VECT instead of getting it in parameter.
3587 (subscript_dependence_tester): ... here. Take as a parameter
3588 loop_nest_depth. Call build_classic_dist_vector and
3589 build_classic_dir_vector.
3590 (compute_affine_dependence): Update subscript_dependence_tester
3591 parameters. Update datadep_stats counters. Call
3592 compute_subscript_distance.
3593 (compute_self_dependence): Save the dist and dir vectors. Call
3594 compute_subscript_distance.
3595 (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
3596 (compute_all_dependences): Reorder parameters as they were before
3597 conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
3598 compute_subscript_distance. Update the use of
3599 compute_affine_dependence and initialize_data_dependence_relation.
3600 (find_data_references_in_loop): Handle COMPONENT_REF.
3601 (compute_data_dependences_for_loop): Initialize dependence_stats.
3602 Don't call build_classic_dist_vector and build_classic_dir_vector.
3603 Update the parameters of initialize_data_dependence_relation and
3604 compute_all_dependences. Print the statistics from datadep_stats.
3605 (analyze_all_data_dependences): Static. Not used until the pass for
3606 checking the data dependences is contributed.
3607 * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
3608 DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
3609 (initialize_data_dependence_relation, compute_affine_dependence,
3610 analyze_all_data_dependences, compute_subscript_distance): Removed.
3611 (print_direction_vector): New.
3612 * lambda.h (gcd): ... here.
3613 (lambda_vector_gcd): Moved here from gcd_vector.
3614 * lambda-code.c (gcd, gcd_vector): Removed.
3615 (lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
3616 * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
3618 2006-02-20 Diego Novillo <dnovillo@redhat.com>
3620 * ipa-type-escape.c: Tidy some comments and white space.
3621 * tree-ssa-operands.c: Likewise.
3623 2006-02-20 Andrew Pinski <pinskia@physics.uc.edu>
3626 * tree-pretty-print.c (debug_tree_chain): Walk the chains.
3627 (dump_decl_name): Do not walk the decl tree chains.
3628 * tree-pass.h (TDF_CHAIN): Remove.
3630 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3632 * Makefile.in (C): Remove
3634 (.PHONY): Remove C and PROTO
3636 2006-02-20 Roger Sayle <roger@eyesopen.com>
3639 * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
3640 deprecated CHAR_TYPE tree code.
3642 2006-02-20 Paolo Bonzini <bonzini@gnu.org>
3644 * configure.ac (target_list): Add install-info, dvi, html.
3645 * configure: Regenerate.
3647 * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
3648 java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
3649 treelang/Make-lang.in: Do not use double-colon rules.
3651 2006-02-20 Daniel Berlin <dberlin@dberlin.org>
3653 * tree.h (struct tree_memory_tag): Add is_used_alone member.
3654 (TMT_USED_ALONE): New macro.
3655 * tree-pass.h (PROP_tmt_usage): New property.
3656 (TODO_update_tmt_usage): New todo.
3657 * tree-ssa-alias.c (updating_used_alone): New variable.
3658 (recalculate_used_alone): New function.
3659 (compute_may_aliases): Set updating_used_alone, call
3660 recalculate_used_alone.
3661 * tree-sra.c (pass_sra): Note that this pass destroys
3662 PROP_tmt_usage, and add TODO_update_tmt_usage.
3663 * tree-ssa-forwprop.c (pass_forwprop): Ditto.
3664 * tree-flow.h (updating_used_alone): Prototype.
3665 (recalculate_used_alone): Ditto.
3666 * passes.c (execute_todo): Add code to set updating_used_alone,
3667 and call recalculate.
3668 * tree-ssa-operands.c (add_virtual_operand): Only append bare def
3669 for clobber if used alone, and add assert to verify used_alone
3672 2006-02-20 Angel Nunez Mencias <anunez@de.ibm.com>
3674 * config/s390/s390.c (legitimize_pic_address): Assertions checking
3675 for non tls symbols added.
3676 (legitimize_address): Do nothing for PLUS expressions if one of the
3677 addends is a tls symbol reference.
3679 2006-02-20 Paolo Bonzini <bonzini@gnu.org>
3683 * Makefile.in (LDFLAGS): Define from autoconf substitution.
3685 * Makefile.in (BOOTSTRAPPING): New.
3686 (quickstrap): New definition if BOOTSTRAPPING=yes.
3688 * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
3689 * configure.ac: Substitute all_selected_languages with the languages
3690 that were configured. For all the other variables except
3691 lang_specs_files, include all the languages in the tree.
3692 * configure: Regenerate.
3694 * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
3695 if there is one. Run the commands to run fixincludes in the same
3698 * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
3699 * doc/install.texi: Document exact conventions for searching target tools.
3700 Document --with-build-time-tools. Document toplevel bootstrap. Document
3701 something more about building an Ada cross-compiler. Don't list GNU Make
3702 requirements which affect all platforms.
3704 2006-02-19 Roger Sayle <roger@eyesopen.com>
3707 * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
3708 only equivalent if the have both the same mode and precision.
3710 2006-02-20 Ben Elliston <bje@au.ibm.com>
3712 * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
3714 2006-02-19 Roger Sayle <roger@eyesopen.com>
3715 Steven Bosscher <stevenb.gcc@gmail.com>
3717 * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
3718 constant pool references to identify stack mode constants.
3719 * rtlanal.c (constant_pool_constant_p): New predicate to check
3720 whether operand is a floating point constant in the pool.
3721 * rtl.h (constant_pool_constant_p): Prototype here.
3722 * loop.c (scan_loop): Avoid hoisting constants from the constant
3723 pool on STACK_REGS targets.
3724 (load_mems): Likewise.
3725 * loop-invariant.c (get_inv_cost): Make hoisting constant pool
3726 loads into x87 registers expensive in terms of register pressure.
3728 2006-02-19 Roger Sayle <roger@eyesopen.com>
3730 * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
3731 __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
3733 2006-02-19 David Edelsohn <edelsohn@gnu.org>
3735 * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
3736 * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
3738 2006-02-19 Daniel Berlin <dberlin@dberlin.org>
3740 * doc/invoke.texi: Document -fipa-pta.
3741 * common.opt: Add ipa-pta option.
3742 * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
3743 (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
3744 (do_ds_constraint): Ditto.
3745 (get_constraint_for): Only add to referenced_vars if
3746 referenced_vars exists.
3747 (insert_into_field_list): Rewrite to do this unsorted.
3748 (insert_into_field_list_sorted): Rename old insert_into_field_list
3750 (create_function_info_for): Use insert_into_field_list_sorted.
3751 (create_variable_info_for): Rewrite so it uses unsorted version,
3752 since the field list is sorted.
3753 (intra_create_variable_infos): Only add to referenced_vars if
3754 referenced_vars exists.
3755 (ipa_pta_execute): Init heapvars, and delete when done.
3756 * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
3758 2006-02-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3760 * doc/install.texi: Add missing `@samp'.
3762 2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
3764 * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
3767 2006-02-18 Mark Wielaard <mark@klomp.org>
3769 * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
3770 who added new 4.1 features, bug fixes and integration support.
3772 2006-02-18 David Edelsohn <edelsohn@gnu.org>
3775 * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
3778 2006-02-18 Richard Sandiford <richard@codesourcery.com>
3780 * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
3781 * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
3782 (copy_insn_1): Likewise. Don't copy each field individually.
3784 * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
3786 * reload1.c (eliminate_regs): Use shallow_copy_rtx.
3787 * rtl.c (rtx_size): Rename variable to...
3788 (rtx_code_size): ...this.
3789 (rtx_size): New function.
3790 (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
3791 (copy_rtx): Use shallow_copy_rtx. Don't copy each field individually.
3793 (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
3794 * rtl.h (rtx_code_size): New variable.
3795 (rtx_size): Change from a variable to a function.
3796 (RTX_SIZE): Rename to...
3797 (RTX_CODE_SIZE): ...this.
3800 PR tree-optimization/17106
3801 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
3802 (Anchored Addresses): New section.
3803 * doc/invoke.texi (-fsection-anchors): Document.
3804 * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
3805 (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
3806 (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
3807 * hooks.c (hook_bool_mode_rtx_false): New function.
3808 * hooks.h (hook_bool_mode_rtx_false): Declare.
3809 * gengtype.c (create_optional_field): New function.
3810 (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
3811 SYMBOL_REF_IN_BLOCK_P is true.
3812 * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
3813 (min_anchor_offset, max_anchor_offset): Likewise.
3814 (use_anchors_for_symbol_p): New hook.
3815 * toplev.c (compile_file): Call output_object_blocks.
3816 (target_supports_section_anchors_p): New function.
3817 (process_options): Check that -fsection-anchors is only used on
3818 targets that support it and when -funit-at-a-time is in effect.
3819 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
3820 if the decl doesn't have one.
3821 * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
3822 * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
3823 of force_const_mem through use_anchored_address.
3824 (expand_expr_constant): New function.
3825 (expand_expr_addr_expr_1): Call it. Use the same modifier when
3826 calling expand_expr for INDIRECT_REF.
3827 (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
3828 for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant.
3829 * expr.h (use_anchored_address): Declare.
3830 * loop-unroll.c: Don't declare rtx vectors here.
3831 * explow.c: Include output.h.
3832 (validize_mem): Call use_anchored_address.
3833 (use_anchored_address): New function.
3834 * common.opt (-fsection-anchors): New switch.
3835 * varasm.c (object_block_htab, anchor_labelno): New variables.
3836 (hash_section, object_block_entry_eq, object_block_entry_hash)
3837 (use_object_blocks_p, get_block_for_section, create_block_symbol)
3838 (use_blocks_for_decl_p, change_symbol_section): New functions.
3839 (get_variable_section): New function, split out from assemble_variable.
3840 (make_decl_rtl): Create a block symbol if use_object_blocks_p and
3841 use_blocks_for_decl_p say so. Use change_symbol_section if the
3842 symbol has already been created.
3843 (assemble_variable_contents): New function, split out from...
3844 (assemble_variable): ...here. Don't output any code for
3845 block symbols; just pass them to place_block_symbol.
3846 Use get_variable_section and assemble_variable_contents.
3847 (get_constant_alignment, get_constant_section, get_constant_size): New
3848 functions, split from output_constant_def_contents.
3849 (build_constant_desc): Create a block symbol if use_object_blocks_p
3850 says so. Or into SYMBOL_REF_FLAGS.
3851 (assemble_constant_contents): New function, split from...
3852 (output_constant_def_contents): ...here. Don't output any code
3853 for block symbols; just pass them to place_section_symbol.
3854 Use get_constant_section and get_constant_alignment.
3855 (force_const_mem): Create a block symbol if use_object_blocks_p and
3856 use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS.
3857 (output_constant_pool_1): Add an explicit alignment argument.
3858 Don't switch sections here.
3859 (output_constant_pool): Adjust call to output_constant_pool_1.
3860 Switch sections here instead. Don't output anything for block symbols;
3861 just pass them to place_block_symbol.
3862 (init_varasm_once): Initialize object_block_htab.
3863 (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
3864 (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
3865 (place_block_symbol, get_section_anchor, output_object_block)
3866 (output_object_block_htab, output_object_blocks): New functions.
3867 * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
3868 (TARGET_ASM_OUT): Include it.
3869 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
3870 (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
3871 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
3872 (TARGET_INITIALIZER): Include them.
3873 * rtl.c (rtl_check_failed_block_symbol): New function.
3874 * rtl.h: Include vec.h. Declare heap and gc rtx vectors.
3875 (block_symbol, object_block): New structures.
3876 (rtx_def): Add a block_symbol field to the union.
3877 (BLOCK_SYMBOL_CHECK): New macro.
3878 (rtl_check_failed_block_symbol): Declare.
3879 (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
3880 (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
3881 (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
3882 (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
3883 * output.h (output_section_symbols): Declare.
3884 (object_block): Name structure.
3885 (place_section_symbol, get_section_anchor, default_asm_output_anchor)
3886 (default_use_anchors_for_symbol_p): Declare.
3887 * Makefile.in (RTL_BASE_H): Add vec.h.
3888 (explow.o): Depend on output.h.
3889 * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
3890 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
3891 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
3892 (rs6000_use_blocks_for_constant_p): New function.
3894 2006-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3896 * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
3898 2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
3901 * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
3904 2006-02-18 Diego Novillo <dnovillo@redhat.com>
3906 * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
3910 2006-02-18 Jakub Jelinek <jakub@redhat.com>
3913 * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
3914 instead of DECL_REGISTER.
3916 2006-02-18 Olivier Hainque <hainque@adacore.com>
3919 * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
3921 2006-02-18 Joseph S. Myers <joseph@codesourcery.com>
3924 * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
3925 * opth-gen.awk: Handle Var and InverseMask together.
3926 * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
3927 * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
3928 (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
3929 (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
3931 (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
3932 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
3933 * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
3934 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
3935 LINUX_DYNAMIC_LINKER): Define.
3936 (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
3937 * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
3939 * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3940 (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
3941 * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3942 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3943 (TARGET_C99_FUNCTIONS): Don't define.
3944 * config/i386/linux.h (DYNAMIC_LINKER): Rename to
3945 GLIBC_DYNAMIC_LINKER.
3946 (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
3947 * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
3948 GLIBC_DYNAMIC_LINKER64): Define.
3949 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
3950 LINUX_DYNAMIC_LINKER64.
3951 * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3952 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3953 * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
3954 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3955 * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3956 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3957 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
3958 GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
3959 UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
3960 (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
3961 and LINUX_DYNAMIC_LINKER32.
3962 * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3963 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3964 * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
3965 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3966 * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
3968 * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
3969 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
3970 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
3971 CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
3972 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
3973 (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
3974 (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
3975 * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
3976 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
3977 LINUX_DYNAMIC_LINKER): Define.
3978 (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
3979 * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
3980 GLIBC_DYNAMIC_LINKER64): Define.
3981 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
3982 LINUX_DYNAMIC_LINKER64.
3983 * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3984 (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3985 * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
3986 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
3987 LINUX_DYNAMIC_LINKER): Define.
3988 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3989 (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
3990 * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
3991 GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
3992 UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
3993 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
3994 (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
3995 (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
3996 (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
3997 * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3998 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3999 * doc/invoke.texi (-muclibc): Remove caveat about supported
4002 2006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
4004 * doc/cpp.texi (__TIMESTAMP__): Document.
4006 2006-02-17 Roger Sayle <roger@eyesopen.com>
4009 * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
4010 C is one less than the width of X (and related transformations).
4011 * simplify-rtx.c (simplify_unary_operation_1): Transform
4012 (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
4013 depending on STORE_FLAG_VALUE, were C is one less then the
4016 2006-02-17 Daniel Berlin <dberlin@dberlin.org>
4018 Fix PR tree-optimization/26341
4019 * tree-ssa-operands.c (add_virtual_operand): Remove assert
4020 about NAME_MEMORY_TAG's.
4022 2006-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4025 * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
4026 with hardware float support, and software float support. Add fcpy
4027 alternative to hardware patterns. Add alternatives to copy between
4028 general and floating-point registers to the 32-bit pattern.
4029 * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
4030 secondary reload to load a QI or HI mode constant into a floating
4032 * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
4033 * pa64-regs.h (VALID_FP_MODE_P): Likewise.
4035 2006-02-17 Andrew Pinski <pinskia@physics.uc.edu>
4038 * config/rs6000/darwin.md (load_macho_picbase_si): Add
4040 (load_macho_picbase_di): Likewise.
4042 2006-02-16 Jeff Law <law@redhat.com>
4044 * tree-vrp.c (set_value_range_to_nonnegative): New function.
4045 (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
4046 (ssa_name_nonzero_p): Likewise.
4047 (get_value_range): Return NULL if VRP is not running.
4048 (extract_range_from_expr): Fallback to tree_expr_XXX_p if
4049 VRP routines do not discover a range.
4050 (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
4051 * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
4052 * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
4053 (tree_expr_nonnegative_p): Similarly.
4054 * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
4055 (restore_nonzero_vars_to_original_value): Remove.
4056 (unsafe_associative_fp_binop): Remove.
4057 (tree_ssa_dominator_optimize): Remove initialization and
4058 finalization of nonzero_vars and nonzero_vars_stack.
4059 (dom_opt_initialize_block): No longer push marker on
4061 (dom_opt_finalize_block): No longer call
4062 restore_nonzero_vars_to_original_value.
4063 (record_equivalences_from_phis): No longer look for
4064 nonzero PHI arguments.
4065 (cprop_into_successor_phis): No longer propagate nonzero
4066 property into PHI arguments. Lose unused argument. Caller
4068 (record_equivalences_from_stmt): No longer record nonzero
4069 values for SSA_NAMEs.
4070 (lookup_avail_expr): No longer use nonzero_vars.
4072 * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
4073 for sizetype when sizetype is unsigned.
4075 2006-02-16 Denis Nagorny <denis_nagorny@linux.intel.com>
4077 PR rtl-optimization/25603
4078 * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
4079 (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
4080 * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
4081 with new meaning of SETS.
4083 2006-02-16 Joseph S. Myers <joseph@codesourcery.com>
4088 * config/linux.opt: New file.
4089 * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
4090 LINUX_DYNAMIC_LINKER): Define.
4091 (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
4092 * config.gcc (*-*-linux*): Define extra_options.
4093 (*-*-*uclibc*): Define UCLIBC_DEFAULT.
4094 (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
4095 * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
4096 GLIBC_DYNAMIC_LINKER.
4097 * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
4098 (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4099 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
4100 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
4101 * doc/invoke.texi (GNU/Linux Options): New section.
4103 2006-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
4105 * config/sparc/sparc.md (setjmp): Rewrite.
4106 (setjmp_32): Delete.
4107 (setjmp_64): Likewise.
4109 2006-02-16 Daniel Berlin <dberlin@dberlin.org>
4111 * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
4114 2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
4116 * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
4119 2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
4121 PR rtl-optimization/26296
4122 * Makefile.in (loop-invariant.c): Add except.h dependency.
4123 * loop-invariant.c: Include except.h.
4124 (find_invariant_insn): Ignore insns satisfying can_throw_internal.
4126 2005-02-16 Paul Brook <paul@codesourcery.com>
4128 * reload1.c (emit_reload_insns): Invalidate dead input registers used
4131 2006-02-16 Bernd Schmidt <bernd.schmidt@analog.com>
4133 PR rtl-optimization/25636
4134 * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
4135 when deciding whether an insn is an initializing insn.
4137 2006-02-15 Daniel Berlin <dberlin@dberlin.org>
4139 * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
4140 (tree_code_size): Ditto.
4141 * tree.h (struct tree_memory_tag): Remove parent_var.
4142 (struct tree_struct_field_tag): New.
4145 (union tree_node): Add sft member.
4146 * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
4148 (create_sft): Add size and offset argument, set SFT_OFFSET and
4150 (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
4151 * treestruct.def: Add TS_STRUCT_FIELD_TAG.
4152 * tree-flow-inline.h (get_subvar_at): Update for
4153 SFT_OFFSET/SFT_SIZE.
4154 (var_can_have_subvars): Ditto.
4155 (overlap_subvar): Ditto.
4156 * print-tree.c (print_node): Print out interesting things for
4158 * tree-flow.h (struct subvar): Remove offset and size members.
4159 * tree-ssa-operands.c (get_expr_operands): Update for
4160 get_indirect_ref_operands changes.
4161 (get_indirect_ref_operands): Call add_virtual_operand instead of
4162 add_stmt_operand. Only recurse on base var if requested.
4163 (access_can_touch_variable): New function.
4164 (add_stmt_operand): Split virtual operand handling into ...
4165 (add_virtual_operand): Here. Add offset, size, and for_clobber
4166 arguments. Prune alias sets.
4167 (add_call_clobber_ops): Call add_virtual_operand.
4169 2006-02-15 Jakub Jelinek <jakub@redhat.com>
4172 * combine.c (make_extraction): Bail out if ORIG_POS is negative.
4174 * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
4175 than TREE_CODE as index into omp_clause_num_ops array.
4177 2006-02-15 Uttam Pawar <uttamp@us.ibm.com>
4179 PR rtl-optimization/26184
4180 * modulo-sched.c (generate_reg_moves): Free bitmap vector
4182 * modulo-sched.c (sms_schedule): Free g_arr pointer.
4183 * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
4184 must_precede, must_follow and tobe_scheduled.
4187 * opts.c (common_handle_option): Free new_option pointer.
4188 * df-core.c (df_analyze): Free postorder pointer.
4190 2006-02-15 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
4192 * Makefile.in: Fix the examples about the use of stamps
4194 2006-02-15 Michael Matz <matz@suse.de>
4198 * stor-layout.c (layout_decl): Zero-width bitfields aren't
4199 influenced by maximum_field_alignment or DECL_PACKED.
4200 (update_alignment_for_field): Ditto.
4201 (place_field): Ditto.
4202 * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
4205 2006-02-15 Paolo Bonzini <bonzini@gnu.org>
4207 * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
4208 (debug_flow_info): Pass it.
4209 * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
4210 * bb-reorder.c (reorder_basic_blocks): Likewise.
4211 * cfgcleanup.c (rest_of_handle_jump2): Likewise.
4212 * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
4213 * flow.c (life_analysis, recompute_reg_usage): Likewise.
4214 * gcse.c (gcse_main, bypass_jumps): Likewise.
4215 * ifcvt.c (rest_of_handle_if_conversion): Likewise.
4216 * local-alloc.c (rest_of_handle_local_alloc): Likewise.
4217 * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
4218 * profile.c (compute_branch_probabilities, branch_prob): Likewise.
4219 * rtl.h (dump_flow_info): Adjust prototype.
4220 * tracer.c (rest_of_handle_tracer, tracer): Likewise.
4221 * var-tracking.c (variable_tracking_main): Likewise.
4222 * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
4223 * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
4226 2006-02-15 Marcin Dalecki <martin@dalecki.de>
4228 * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
4231 2006-02-14 Zdenek Dvorak <dvorakz@suse.cz>
4233 PR tree-optimization/26209
4234 * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
4235 * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
4237 * tree-cfg.c (replace_uses_by): Do not alter cfg.
4239 2006-02-14 Roger Sayle <roger@eyesopen.com>
4242 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
4243 (X,Y) and the corresponding symmetry related transformations.
4244 (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
4245 (X,Y) and its symmetry related transformations.
4247 2006-02-14 Roger Sayle <roger@eyesopen.com>
4249 * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
4252 2006-02-14 Adam Nemet <anemet@caviumnetworks.com>
4254 * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
4256 2006-02-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4259 * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
4260 support COMDAT group.
4261 * configure: Regenerate.
4263 2006-02-14 Roger Sayle <roger@eyesopen.com>
4268 * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
4270 2006-02-14 Daniel Berlin <dberlin@dberlin.org>
4272 Fix PR tree-optimization/26260
4274 * doc/invoke.texi (max-fields-for-field-sensitive): Document
4276 * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
4277 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
4278 * tree-ssa-structalias.c (create_variable_info_for): Use
4279 MAX_FIELDS_FOR_FIELD_SENSITIVE.
4281 2006-02-14 Zdenek Dvorak <dvorakz@suse.cz>
4283 * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
4285 * tree-ssa-loop-niter.c (number_of_iterations_ne,
4286 number_of_iterations_lt, number_of_iterations_cond): Remember the shape
4287 of the ending condition.
4288 * tree-ssa-loop-manip.c: Include params.h.
4289 (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
4290 tree_unroll_loop): New functions.
4291 * tree-pass.h (pass_loop_prefetch): Declare.
4292 * loop.c (rest_of_handle_loop_optimize): Test for
4293 -fprefetch-loop-arrays-rtl.
4294 * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
4295 * timevar.def (TV_TREE_PREFETCH): New timevar.
4296 * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
4297 pass_loop_prefetch): New.
4298 * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
4299 (cleanup_tree_cfg_loop): Call scev_reset.
4300 * common.opt (fprefetch-loop-arrays-rtl): Add.
4301 * tree-ssa-loop-prefetch.c: New file.
4302 * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
4303 (new_temp_expr_table): Initialize expr_vars.
4304 (free_temp_expr_table): Cleanup expr_vars.
4305 (check_replaceable, find_replaceable_in_bb): Prevent accumulating
4306 expressions from being merged into one.
4307 * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
4308 (struct tree_niter_desc): Add control, bound and cmp fields.
4309 (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
4311 * Makefile.in (tree-ssa-loop-prefetch.o): Add.
4312 (tree-cfgcleanup.o): Add SCEV_H dependency.
4313 (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
4314 * passes.c (init_optimization_passes): Add pass_loop_prefetch.
4316 2006-02-14 Richard Guenther <rguenther@suse.de>
4318 PR tree-optimization/26258
4319 * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
4320 in PHI argument processing.
4322 2006-02-13 Adam Nemet <anemet@caviumnetworks.com>
4324 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
4325 new expression in the requested machine mode.
4327 2006-02-13 Roger Sayle <roger@eyesopen.com>
4329 * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
4330 directly, instead let do_compare_rtx_and_jump handle this for us.
4331 * expr.c (expand_expr_real_1): Likewise.
4332 * dojump.c (do_jump_by_parts_greater_rtx): Make static. Move
4333 before do_jump_by_parts_greater.
4334 (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
4335 * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
4337 2006-02-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4339 * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
4341 2006-02-13 Zdenek Dvorak <dvorakz@suse.cz>
4343 PR rtl-optimization/26235
4344 * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
4345 (invariant_expr_equal_p): Handle 'i' and 'n' formats. Fail on unknown
4348 2006-02-13 Jeff Law <law@redhat.com>
4350 * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
4353 2006-02-13 Jakub Jelinek <jakub@redhat.com>
4356 * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
4357 twice if decl is a builtin. When trying again, call get_callee_fndecl
4358 first to verify it is still a builtin.
4360 2006-02-13 Geoffrey Keating <geoffk@apple.com>
4362 * dwarf2out.c (base_type_die): Don't add AT_name here.
4363 (subrange_type_die): Don't add AT_name here.
4364 (modified_type_die): Rearrange code flow. Do add AT_name here.
4366 2006-02-13 Zdenek Dvorak <dvorakz@suse.cz>
4368 PR rtl-optimization/26247
4369 PR rtl-optimization/26248
4370 * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
4372 2006-02-13 Richard Sandiford <richard@codesourcery.com>
4374 * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
4375 * config/fixtfdi.c: Likewise.
4376 * config/fixunstfdi.c: Likewise.
4377 * config/floatditf.c: Likewise.
4379 2006-02-13 Roger Sayle <roger@eyesopen.com>
4382 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
4383 into (X,C2) if C1 is a subset of the bits of C2. Transform
4384 (X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as
4386 <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
4388 2006-02-13 Josh Conner <jconner@apple.com>
4391 * varasm.c (function_section): Check for section name before
4392 calling select_section on targets that define
4393 USE_SELECT_SECTION_FOR_FUNCTIONS. On other targets, use
4394 unlikely_text_section instead of hot_function_section if
4395 first_function_block_is_cold.
4397 2006-02-13 J"orn Rennecke <joern.rennecke@st.com>
4400 * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
4402 2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
4404 PR rtl-optimization/26222
4405 * function.c (assign_stack_temp_for_type): Do not reuse stack slots
4406 after tree->rtl expansion.
4407 * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
4408 before passing it to emit_move_insn.
4410 2006-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
4412 * doc/invoke.texi (-Write-strings): Document that it is enabled by
4414 * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
4415 Clarify documentation.
4416 * c-common.h (warn_write_strings): Remove.
4417 * c-common.c (warn_write_strings): Likewise.
4418 * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
4421 2006-02-12 Roger Sayle <roger@eyesopen.com>
4424 * dojump.c (do_jump): Call do_compare_rtx_and_jump.
4425 (do_jump_parts_zero_rtx): New function renamed from
4426 do_jump_parts_equality_rtx. Made static. Add a mode argument.
4427 (do_jump_parts_equality_rtx): New function split out from
4428 do_jump_parts_equality. Old implementation renamed as above.
4429 Call do_jump_parts_zero_rtx if either operand is zero.
4430 (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
4431 do all of the heavy lifting.
4432 (do_compare_rtx_and_jump): Handle multi-word comparisons by
4433 calling either do_jump_by_parts_greater_rtx or
4434 do_jump_by_parts_equality_rtx.
4435 * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
4436 * expmed.c (do_cmp_and_jump): Now multi-word optimization has
4437 moved to do_compare_rtx_and_jump, call it directly.
4438 * stmt.c (do_jump_if_equal): Remove static prototype. Add a
4439 mode argument. Call do_compare_rtx_and_jump.
4440 (emit_case_nodes): Update calls to do_jump_if_equal.
4442 2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
4444 PR rtl-optimization/26225
4445 * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
4447 2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
4449 PR rtl-optimization/26232
4450 * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
4452 2006-02-11 Jason Merrill <jason@redhat.com>
4455 * tree-inline.c (declare_return_variable): Just don't use the
4456 modify target if it's a gimple complex reg and the return slot
4459 2006-02-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4461 * doc/contrib.texi: Update my entry.
4463 2006-02-10 Geoffrey Keating <geoffk@apple.com>
4465 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
4467 2006-02-10 Diego Novillo <dnovillo@redhat.com>
4469 * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
4472 2006-02-10 Zdenek Dvorak <dvorakz@suse.cz>
4474 * doc/invoke.texi (-floop-optimize2): Removed.
4475 * toplev.c (process_options): Remove handling of flag_loop_optimize2.
4476 * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
4477 Test flag_branch_on_count_reg only if HAVE_doloop_end.
4478 * common.opt (floop-optimize2): Removed.
4479 (fmove-loop-invariants): Enabled by default.
4481 2006-02-10 Sebastian Pop <pop@cri.ensmp.fr>
4483 * tree-if-conv.c (combine_blocks): Free the result of
4484 get_loop_exit_edges.
4486 2006-02-10 Jeff Law <law@redhat.com>
4488 * fold-const.c (tree_expr_nonzero_p): Fix thinko.
4490 PR tree-optimization/26213
4491 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
4492 loop trying to follow SSA_NAME_VALUE chains.
4494 2006-02-10 Richard Guenther <rguenther@suse.de>
4496 * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
4497 deal with structures that end in implicitly variable sized arrays.
4499 2006-02-09 Zdenek Dvorak <dvorakz@suse.cz>
4501 PR rtl-optimization/24762
4502 * df-scan.c (df_bb_refs_record): Record correct registers defined on
4505 2006-02-09 Zdenek Dvorak <dvorakz@suse.cz>
4507 * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
4508 (struct ivopts_data): Add regs_used field.
4509 (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
4510 (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
4511 instead of loop_data->regs_used;
4512 (free_loop_data): Do not free aux fields for loops.
4513 (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
4514 and tree_ssa_iv_optimize_finalize.
4516 2006-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
4518 * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
4520 2006-02-09 J"orn Rennecke <joern.rennecke@st.com>
4523 * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
4524 computing the effective result type.
4526 2006-02-09 J"orn Rennecke <joern.rennecke@st.com>
4529 * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
4530 (tree_overlaps_hard_reg_set): Declare.
4531 * stmt.c (decl_overlaps_hard_reg_set_p): Now static. Change return
4532 type and signature to match function type expected by walk_tree.
4533 (tree_overlaps_hard_reg_set): New function.
4534 (decl_conflicts_with_clobbers_p): Rename to:
4535 (tree_conflicts_with_clobbers_p). Take HARD_REG_SET * argument.
4536 Use tree_overlaps_hard_reg_set. Changed caller.
4537 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
4538 decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
4539 * cris.c (cris_md_asm_clobbers): Likewise.
4541 2006-02-09 Bernd Schmidt <bernd.schmidt@analog.com>
4543 * reload1.c (emit_input_reload_insns): Delete code that tries to
4544 inherit using find_equiv_reg.
4546 2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
4548 * c-common.h (flag_const_strings): Don't declare.
4549 * c-common.c (flag_const_strings): Remove.
4550 * c.opt (fconst_strings): Remove.
4551 * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
4552 <OPT_Wwrite_strings>: Don't set flag_const_strings.
4553 (c_common_init_options): Don't set flag_const_strings.
4554 * doc/invoke.texi (-fno-const-strings): Remove documentation.
4556 2006-02-09 Richard Earnshaw <richard.earnshaw@arm.com>
4558 * arm.md (tlobits_cbranch): New pattern.
4559 * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
4560 testing a single bit.
4562 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
4565 * tree-ssa-pre.c (create_component_ref_by_pieces):
4566 Handle RETURN_DECL like VAR_DECL.
4568 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
4571 * fold-const.c (fold_indirect_ref_1): Fold
4572 "*(foo *)&complexfoo" to "__real__ complexfoo"
4573 and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
4575 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
4577 * tree-flow-inline.h (var_can_have_subvars):
4578 Volatile variables should not have subvariables.
4580 2006-02-09 Diego Novillo <dnovillo@redhat.com>
4583 * tree-vrp.c (vrp_int_const_binop): Detect overflow when
4584 multiplying unsigned values.
4587 2006-02-09 Eric Botcazou <ebotcazou@libertysurf.fr>
4589 * config/sparc/sparc.c (tls_call_delay): Fix oversight.
4591 2006-02-08 Jason Merrill <jason@redhat.com>
4594 * tree.def: Elaborate on difference from MODIFY_EXPR.
4595 * doc/c-tree.texi (INIT_EXPR): Likewise.
4596 * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
4597 (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
4598 (gimplify_target_expr): Likewise.
4599 (gimplify_cond_expr): Remove target handling.
4600 (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
4601 (gimplify_expr): Clobber it here.
4602 (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
4603 Do return slot optimization if we have an INIT_EXPR.
4606 * tree-inline.c (declare_return_variable): Also clear
4607 DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
4610 * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
4613 * gimplify.c (gimplify_one_sizepos): Fix typo.
4615 2006-02-08 Jeff Law <law@redhat.com>
4617 PR tree-optimization/21417
4618 * tree-ssa-threadedge.c (thread_across_edge): Reject threading
4619 across a backedge if the control statement at the end of the
4620 block is data dependent on other statements in the same block.
4621 (record_temporary_equivalences_from_stmts): Remove over-conservative
4622 test for threading across backedges.
4624 * tree-ssa-dce.c (remove_dead_statement): When removing a dead
4625 control statement, handle all three special cases in the same
4626 manner as they all have the same desired solution. No longer
4627 special case edge flag updating when the post dominator is
4630 2006-02-08 Roger Sayle <roger@eyesopen.com>
4632 * tree.def (CHAR_TYPE): Remove.
4633 * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
4634 * dwarf2out.c (base_type_die, is_base_type): Likewise.
4635 (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
4636 (gen_string_type_die): Delete unreachable function.
4638 * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
4639 * tree.c (build_int_cst_wide, type_contains_placeholder_1,
4640 type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
4641 * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
4642 * builtins.c (type_to_class): Likewise.
4643 * fold-const.c (fold_convert, build_range_check,
4644 merge_ranges): Likewise.
4645 * expr.c (count_type_elements): Likewise.
4646 * c-pretty-print.c (pp_c_type_specifier): Likewise.
4647 * stor-layout.c (layout_type): Likewise.
4648 * ipa-type-escape.c (type_to_consider): Likewise.
4649 * gimplify.c (omp_firstprivatize_type_sizes,
4650 gimplify_type_sizes): Likewise.
4651 * explow.c (promote_mode): Likewise.
4652 * tree-sra.c (is_sra_scalar_type): Likewise.
4653 * varasm.c (output_constant): Likewise.
4654 * tree-inline.c (remap_type_1): Likewise.
4655 * convert.c (convert_to_pointer, convert_to_real,
4656 convert_to_integer, convert_to_complex): Likewise.
4658 2006-02-08 Daniel Berlin <dberlin@dberlin.org>
4660 * df-scan.c (df_def_record_1): A set destination may
4661 be a parallel regardless of mode.
4663 2006-02-08 Roger Sayle <roger@eyesopen.com>
4666 * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
4667 * config/mips/_tilib.c: Remove.
4668 * config/fixtfdi.c: New libgcc source file.
4669 * config/fixunstfdi.c: New source file.
4670 * config/floatditf.c: New source file.
4671 * config/floatunditf.c: New souce file.
4672 * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
4673 files above instead of config/mips/_tilib.c.
4674 * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
4676 2006-02-08 Jeff Law <law@redhat.com>
4678 PR tree-optimization/26169
4679 * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
4682 2006-02-08 Zdenek Dvorak <dvorakz@suse.cz>
4684 * df.h (DF_REG_SIZE): Return the length of the initialized
4687 2006-02-08 Nathan Sidwell <nathan@codesourcery.com>
4689 * gcc/config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
4690 __muldf3): Return a correctly signed zero.
4692 2006-02-08 Paolo Bonzini <bonzini@gnu.org>
4694 * passes.c (register_one_dump_file): Accept the current properties
4695 instead of pass number. Adjust call to dump_register. Remove
4697 (register_dump_files): Now a wrapper around...
4698 (register_dump_files_1): ... this one. Do not modify the pass
4700 (next_pass_1): Cosmetic fix.
4701 (execute_todo): Keep second parameter only. Use curr_properties
4702 instead of fetching it from the pass structure. Check and set
4704 (execute_one_pass): Handle TODO_set_props. Use curr_properties
4705 instead of fetching it from the pass structure. Fix calls to
4706 execute_todo. Update curr_properties and initialize .vcg RTL dump
4707 after running the pass. Reset last_verified.
4708 * tree-dump.c (dump_files): Renumber consecutively. Put .cgraph dump
4710 (FIRST_AUTO_NUMBERED_DUMP): New.
4711 (dump_register): Remove "num" parameter, assign it within the
4713 (get_dump_file_name): Modify template for dumps.
4714 * tree-dump.h (dump_register): Adjust prototype.
4715 * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
4716 (PROP_trees): Add PROP_gimple_lomp.
4717 (TODO_set_props): New.
4718 * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
4719 * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
4720 * cfgexpand.c (pass_expand): Destroy PROP_trees.
4722 2006-02-08 Jakub Jelinek <jakub@redhat.com>
4724 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
4725 (sparc64-*-linux*): Likewise.
4726 * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
4727 * config/sparc/t-linux: New file.
4728 * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
4729 __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
4730 (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
4731 -m32 -mlong-double-128.
4733 * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
4734 * config/alpha/t-linux: New file.
4735 * config/alpha/libgcc-alpha-ldbl.ver: New file.
4737 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
4738 __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
4739 (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
4740 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
4741 __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
4742 (CPP_ARCH32_SPEC): Remove.
4744 2006-02-07 Uttam Pawar <uttamp@us.ibm.com>
4746 PR tree-optimization/26145
4747 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
4750 2006-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4753 * pa.c (attr_length_indirect_call): Don't return length 8 for distances
4754 >= 240000 when generating code for SOM runtime.
4755 (output_indirect_call): Don't use "b,l" instruction for indirect calls
4756 to $$dyncall when generating code for SOM runtime..
4758 2006-02-07 Dirk Mueller <dmueller@suse.com>
4761 * doc/invoke.texi (-Wsequence-point): Update documentation
4762 that -Wsequence-point is implemented for C++ as well.
4764 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
4766 * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
4767 * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
4768 (LIB_SPEC): Likewise.
4769 * doc/invoke.texi (SPARC options): Document -pthread.
4771 2006-02-07 Geoffrey Keating <geoffk@apple.com>
4773 * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
4776 2006-02-07 Roger Sayle <roger@eyesopen.com>
4778 * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
4779 Correct comment describing BOOLEAN_TYPE.
4781 2006-02-07 Dirk Mueller <dmueller@suse.com>
4783 * c.opt: C++ frontend supports -Wdiv-by-zero.
4784 * c-opts.c (c_common_handle_option): Remove dead case.
4786 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
4788 * configure.ac (TLS assembler check): Do not enable TLS by
4789 default on SPARC/Solaris before version 10.
4790 * configure: Regenerate.
4792 2006-02-07 David Edelsohn <edelsohn@gnu.org>
4794 * doc/invoke.texi (xl-compat): Document conversion and support
4797 2006-02-07 Jeff Law <law@redhat.com>
4799 * tree-vrp.c (find_conditional_asserts): Update comments.
4800 (simplify_stmt_for_jump_threading): New.
4801 (identify_jump_threads, finalize_jump_threads): New.
4802 (vrp_finalize): Call identify_jump_threads.
4803 (execute_vrp): Call finalize_jump_threads.
4804 * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
4805 (vrp_element, vrp_data, vrp_element_p): Remove.
4806 (vrp_hash_elt, vrp_variables_stack): Remove.
4807 (vrp_hash, vrp_eq, record_range): Remove.
4808 (simplify_cond_and_lookup_avail_expr): Remove.
4809 (extract_range_from_cond): Remove.
4810 (thread_across_edge): Relocated into tree-ssa-threadedge.c.
4811 (simplify_stmt_for_jump_threading): New.
4812 (dom_thread_across_edge): New wrapper.
4813 (tree_ssa_dominator_optimize): No longer initialize or
4814 finalize any of the VRP datastructures. Remove iteration
4815 step and simplify as a result of removal of iteration step.
4816 (pass_dominator): Perform a cfg cleanup after DOM.
4817 (dom_opt_finalize_block): Use the new common routines
4818 for threading jumps. Simplify stack management slightly.
4819 No longer need to unwind VRP state.
4820 (record_equivalences_from_incoming_edge): No longer record
4822 (eliminate_redundant_computations): No longer call
4823 simplify_cond_and_lookup_avail_expr.
4824 * tree-flow.h (potentially_threadable_block): Prototype.
4825 (thread_across_edge): Likewise.
4826 * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
4827 (tree-ssa-threadedge.o): Add dependencies.
4828 * tree-ssa-threadedge.c: New file.
4829 * passes.c (init_optimization_passes): Merge PHIs before
4830 calling VRP. Run VRP again late in the SSA optimization pipeline.
4832 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
4834 * df-core.c (df_set_blocks): Do not dereference function pointers.
4835 (df_finish1): Likewise.
4836 (df_hybrid_search_forward): Likewise.
4837 (df_hybrid_search_backward): Likewise.
4838 (df_iterative_dataflow): Likewise.
4839 (df_analyze_problem): Likewise.
4840 (df_compact_blocks): Likewise.
4841 (df_dump): Likewise.
4842 * df-scan.c (df_rescan_blocks): Likewise.
4843 (df_record_entry_block_defs): Likewise.
4845 * genconditions.c (write_conditions): Guard the definition of
4846 'insn_conditions' with the check on GCC version.
4847 (write_writer): Guard the traversal 'insn_conditions' with
4848 the check on GCC version.
4850 2006-02-07 Richard Guenther <rguenther@suse.de>
4854 2006-01-30 Richard Guenther <rguenther@suse.de>
4856 * gimplify.c (gimplify_target_expr): Handle easy cases
4857 without creating a temporary.
4859 2006-02-07 Pete Steinmetz <steinmtz@us.ibm.com>
4861 * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
4862 use of float in probability computations. Use edge probabilities
4863 in place of statically computed probabilities.
4864 (min_spec_prob): New static variable.
4865 (schedule_insns): Initialize it.
4866 (GET_SRC_PROB): Removed.
4867 * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
4869 2006-02-07 Alexandre Oliva <aoliva@redhat.com>
4872 * config/ia64/unwind-ia64.c: Revert last change.
4873 * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
4874 (INCOMING_FRAME_SP_OFFSET): Define.
4876 2006-02-06 Roger Sayle <roger@eyesopen.com>
4878 * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
4880 2006-02-07 Ben Elliston <bje@au.ibm.com>
4882 * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
4883 (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
4884 (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
4885 (ix86_return_in_memory): Handle TDmode.
4886 (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
4887 (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
4889 2006-02-06 Richard Sandiford <richard@codesourcery.com>
4891 * reorg.c (dbr_schedule): Use dump_file instead of file.
4893 2006-02-06 Steve Ellcey <sje@cup.hp.com>
4896 * config/ia64/predicates.md (extr_len_operand): New predicate.
4897 * config/ia64/ia64.md (extv): Tighten constraints.
4899 (*tbit_and_2): Ditto.
4900 (*tbit_and_3): Ditto.
4901 (*tbit_or_2): Ditto.
4902 (*tbit_or_3): Ditto.
4906 2006-02-06 Andrew Pinski <pinskia@physics.uc.edu>
4909 * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
4911 2006-02-06 Zdenek Dvorak <dvorakz@suse.cz>
4913 * tree-vrp.c (execute_vrp): Do not pass dump argument to.
4914 loop_optimizer_init and loop_optimizer_finalize
4915 * tree-ssa-sink.c (execute_sink_code): Ditto.
4916 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
4917 * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
4918 tree_ssa_loop_done): Ditto.
4919 * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
4920 * sched-ebb.c: Include output.h.
4921 (schedule_ebbs): Do not use dump argument.
4922 * value-prof.h (struct profile_hooks): Remove profile_dump_file.
4923 * loop.c (loop_dump_stream): Removed.
4924 (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
4926 (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
4927 emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
4928 final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
4929 loop_iterations, strength_reduce, record_biv, record_giv,
4930 final_giv_value, check_final_value, check_ext_dependent_givs,
4931 combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
4932 try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
4933 dump_file instead of loop_dump_stream.
4934 * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
4936 * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
4938 * flow.c (life_analysis, rest_of_handle_life): Ditto.
4939 * haifa-sched.c: Include output.h
4940 (schedule_insns, sched_init): Do not use dump argument.
4941 * mode-switching.c (optimize_mode_switching): Ditto.
4942 * modulo-sched.c (stats_file): Removed.
4943 (print_node_sched_params): Do not call argument dump_file.
4944 (sms_schedule_by_order, loop_canon_p, sms_schedule,
4945 rest_of_handle_sms): Do not use dump argument. Use dump_file instead
4947 * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
4949 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
4950 rtl_loop_init, rtl_loop_done): Ditto.
4951 * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
4952 * predict.c (combine_predictions_for_bb, tree_estimate_probability):
4954 * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
4955 * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
4956 * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
4957 rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
4958 * emit-rtl.c (renumber_insns): Ditto.
4959 * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
4960 expand_gimple_basic_block, tree_expand_cfg): Ditto.
4961 * regclass.c (regclass): Ditto.
4962 * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
4963 remove_ssa_form, rewrite_out_of_ssa): Ditto.
4964 * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
4965 convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
4967 * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
4968 * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
4970 * gcse.c (gcse_file, debug_stderr): Removed.
4971 (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
4972 rest_of_handle_gcse): Do not use dump argument.
4973 (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
4974 one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
4975 pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
4976 compute_code_hoist_vbeinout, compute_code_hoist_data,
4977 one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
4978 compute_store_table, build_store_vectors, insert_insn_start_bb,
4979 insert_store, remove_reachable_equiv_notes, replace_store_insn,
4980 store_motion): Use dump_file instead of gcse_file.
4981 * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
4982 * profile.c (profile_dump_file): Removed.
4983 (branch_prob): Use dump_file instead of profile_dump_file.
4984 * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
4986 * tree-ssa-copy.c (dump_copy_of): Ditto.
4987 * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
4988 dump file to life_analysis.
4989 * bt-load.c (branch_target_load_optimize): Ditto.
4990 * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
4992 * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
4993 regclass, dbr_schedule): Declaration changed.
4994 * sched-int.h (sched_init): Declaration changed.
4995 * tree-profile.c (tree_profile_dump_file): Removed.
4996 (tree_profile_hooks): Removed profile_dump_file hook.
4997 * rtl-profile (rtl_profile_dump_file): Removed.
4998 (rtl_profile_hooks): emoved profile_dump_file hook.
4999 * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
5001 * c-gimplify.c (c_genericize): Do not call local variable dump_file.
5002 * tree-cfg.c (build_tree_cfg): Ditto.
5003 * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
5004 * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
5005 Declaration changed.
5006 * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
5007 life_analysis and schedule_insns.
5008 * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
5010 * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
5012 * config/mips/mips.c (mips_reorg): Ditto.
5013 * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
5016 2006-02-06 Aldy Hernandez <aldyh@redhat.com>
5018 * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
5019 (s390_mangle_fundamental_type): New.
5020 * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
5023 * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
5024 (alpha_mangle_fundamental_type): New.
5025 * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
5028 * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
5030 * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
5032 * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
5033 (sparc_mangle_fundamental_type): New.
5035 2006-02-06 Jakub Jelinek <jakub@redhat.com>
5037 * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
5038 (s390x-*-linux*): Likewise.
5039 * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
5040 * config/s390/t-linux: New file.
5042 2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
5044 * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
5045 sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
5047 2006-02-06 Daniel Berlin <dberlin@dberlin.org>
5049 * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
5050 (ANTIC_SAFE_LOADS): New macro.
5051 (find_or_generate_expression): Add prototype.
5052 (set_contains_value): Allow null set for sake of not always having
5053 to allocate ANTIC_SAFE_LOADS.
5054 (phi_translate): Move placement of AGGREGATE_TYPE_P check.
5055 Allow COMPONENT_REF too.
5056 (valid_in_set): Allow COMPONENT_REF.
5057 Check ANTIC_SAFE_LOADS too.
5058 (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
5059 (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
5061 (can_PRE_operation): Add COMPONENT_REF.
5062 (create_component_ref_by_pieces): New function.
5063 (create_expression_by_pieces): Use create_component_ref_by_pieces.
5064 (insert_aux): Move AGGREGATE_TYPE_P check here.
5065 (compute_avail): Set bb local stmt uids.
5066 (pass_pre): Use TODO_update_ssa_only_virtuals.
5068 2006-02-06 Ben Elliston <bje@au.ibm.com>
5070 * configure.ac: Unconditionally disable decimal float by default.
5071 * configure: Regenerate.
5073 2006-02-06 Ben Elliston <bje@au.ibm.com>
5075 * read-rtl.c (read_name): Terminate reading on EOF.
5077 2006-02-06 Ben Elliston <bje@au.ibm.com>
5079 * dfp.c (decimal_real_arithmetic): Change second argument type
5080 from int to enum tree_code. Do not always return true, but now
5081 return result of any call to decimal_do helper functions.
5082 * dfp.h (decimal_real_arithmetic): Update prototype.
5084 2006-02-05 Eric Botcazou <ebotcazou@libertysurf.fr>
5086 * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
5088 2006-02-05 Andrew Pinski <pinskia@physics.uc.edu>
5091 * tree-cfg.c (cleanup_dead_labels): Also don't remove
5094 2006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
5096 * tree-vrp.c (cfg_loops): Removed.
5097 (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
5098 Use current_loops instead of cfg_loops. Pass flags to
5099 loop_optimizer_init.
5100 * cfgloopmanip.c (fix_loop_structure): Update only available
5102 * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
5103 loop_optimizer_init.
5104 * modulo-sched.c (build_loops_structure): Removed.
5105 (sms_schedule): Use loop_optimizer_init.
5106 * loop-init.c (loop_optimizer_init): Use flags to determine
5107 which properties of loops to prepare.
5108 (rtl_loop_init): Pass flags to loop_optimizer_init.
5109 * tree-ssa-sink.c (execute_sink_code): Ditto.
5110 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
5111 * tree-ssa-pre.c (init_pre): Ditto.
5112 * cfgloop.h (LOOPS_NORMAL): New.
5113 (loop_optimizer_init): Declaration changed.
5115 2006-02-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5117 * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
5118 * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
5120 * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
5122 * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
5124 * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
5125 * pa/t-pa64: Delete quadlib.c rule.
5126 * pa/x-ada: Revert last change.
5127 * pa/t-pa: Revert last change. Delete quadlib.c rule.
5129 2006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
5131 PR rtl-optimization/26087
5132 * rtlanal.c (canonicalize_condition): Do not cross basic block
5135 2006-02-04 Alexandre Oliva <aoliva@redhat.com>
5138 * config/ia64/ia64.c: Include debug.h.
5139 (MAX_ARTIFICIAL_LABEL_BYTES): New.
5140 (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
5141 (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
5142 (process_epilogue, process_set, process_for_unwind_directive):
5143 Output unwind info only if requested. Add CFA info if requested.
5144 Add new arguments as needed. Adjust callers.
5145 * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
5147 (DWARF2_FRAME_INFO): Define to zero.
5148 * config/ia64/unwind-ia64.c: Remove code that compensated for
5149 the CFA offset error fixed above.
5150 * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
5151 * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
5152 (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
5153 -funwind-tables and -fexceptions to enable frame info.
5154 (dwarf2out_frame_init): Define initial CFA even if
5155 DWARF2_UNWIND_INFO is disabled. Call initial_return_save if
5156 DWARF2_UNWIND_INFO is nonzero, not just defined.
5157 (dwarf2out_frame_finish): Output non-EH call frame info only
5158 if DWARF2_FRAME_INFO is nonzero.
5159 (convert_cfa_to_loc_list,
5160 compute_frame_pointer_to_cfa_displacement): Define even if
5161 unwind info is not supported.
5162 (gen_subprogram_die): Use the above unconditionally. Remove
5163 legacy alternate code.
5164 * toplev.c (compile_file): Compile in call to
5165 dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
5166 (lang_dependent_init): Ditto for dwarf2out_frame_init.
5168 2006-02-04 David Edelsohn <edelsohn@gnu.org>
5169 Jakub Jelinek <jakub@redhat.com>
5171 * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
5172 IBM extended float format long double as "g" on powerpc*-linux.
5174 2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5177 * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
5178 * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
5180 2006-02-03 Jason Merrill <jason@redhat.com>
5183 * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
5186 * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
5187 on the return slot if it's an NRV.
5189 2006-02-03 Zdenek Dvorak <dvorakz@suse.cz>
5191 * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
5192 (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
5193 rewrite_use): Do not handle USE_OUTER.
5194 (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
5195 add_iv_outer_candidates, may_replace_final_value,
5196 determine_use_iv_cost_outer, rewrite_use_outer): Removed.
5197 (find_interesting_uses_op): Functionality of
5198 find_interesting_uses_outer_or_nonlin moved here.
5199 (find_interesting_uses_outside): Use find_interesting_uses_op.
5201 2006-02-03 Alan Modra <amodra@bigpond.net.au>
5204 * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
5206 2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
5207 Ulrich Weigand <uweigand@de.ibm.com>
5210 * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
5211 "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
5212 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
5213 * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
5215 (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
5216 (s390_rtx_costs): Use the new fields to calculate rtx costs.
5217 (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
5218 Define secondary reloads for TFmode moves.
5219 (constant_modes): Add TFmode.
5220 (NR_C_MODES): Set to 8.
5221 * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
5223 (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
5224 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
5225 (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
5226 CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
5227 * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
5228 fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
5229 (FPR mode macro): Add TFmode.
5230 (DSF mode macro): New.
5231 (<de>, <dee> mode attributes): Removed.
5232 (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
5233 ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
5234 "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
5235 "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
5236 "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
5237 "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
5238 "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
5239 "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
5240 "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
5241 "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
5242 "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
5243 "*negabs<mode>2", "sqrt<mode>2"):
5244 Changed <de> to <xde>. R constraint replaced by <Rf>.
5245 ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
5247 ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
5248 ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
5249 ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
5251 ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
5252 "extenddftf2", "extendsftf2"): New expanders.
5253 ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
5254 "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
5255 "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
5256 * config/s390/s390.opt (mlong-double-128, mlong-double-64):
5258 * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
5259 * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
5260 __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
5261 __floatditf): Add a GCC_4.1.0 symbol version tag.
5262 * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
5265 2006-02-02 Andrew Pinski <pinskia@physics.uc.edu>
5268 * config/i386/i386.c (ix86_function_ok_for_sibcall):
5269 Use targetm.binds_local_p instead of TREE_PUBLIC.
5271 2006-02-02 Roger Sayle <roger@eyesopen.com>
5273 * tree.h (TYPE_STRING_FLAG): Document that this field may be used
5274 on INTEGER_TYPEs to indicate that it denotes a character type.
5275 * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
5276 signed_char_type_node, unsigned_char_type_node and char_type_node.
5277 * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
5278 INTEGER_TYPE. Use TYPE_STRING_FLAG to decide whether to emit
5279 a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
5281 2006-02-02 Zdenek Dvorak <dvorakz@suse.cz>
5282 Daniel Berlin <dberlin@dberlin.org>
5284 * tree-tailcall.c (arg_needs_copy_p): New function.
5285 (eliminate_tail_call): Use arg_needs_copy_p.
5286 (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
5287 (add_virtual_phis): New function.
5289 2006-02-02 Jakub Jelinek <jakub@redhat.com>
5291 * config/sparc/sparc.c (sparc_output_scratch_registers): Use
5292 #ignore instead of #scratch for %g7 .register directive.
5294 2006-02-02 Andreas Tobler <a.tobler@schweiz.ch>
5296 * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
5299 2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
5301 * flow.c (calculate_global_regs_live): Assert that there aren't any
5304 2006-02-02 Paolo Bonzini <bonzini@gnu.org>
5306 * tree-flow-inline.h (bsi_after_labels): Rewrite, return
5308 * lambda-code.c (perfect_nestify): Use bsi_insert_before on
5309 bsi_after_labels iterator.
5310 * tree-if-conv.c (find_phi_replacement_condition,
5311 replace_phi_with_cond_modify_expr): Likewise.
5312 * tree-scalar-evolution.c (scev_const_prop): Likewise.
5313 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
5315 2006-02-02 Diego Novillo <dnovillo@redhat.com>
5317 * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
5319 2006-02-02 Diego Novillo <dnovillo@redhat.com>
5322 * tree-cfg.c (move_block_to_fn): Clear out the basic block
5323 array after growing it.
5325 2006-02-01 Steve Ellcey <sje@cup.hp.com>
5328 * fold-const.c (fold_checksum_tree): Change type of buf.
5330 2006-02-01 Bernd Schmidt <bernd.schmidt@analog.com>
5332 * reload.c (push_secondary_reload): Initialize t_icode.
5334 2006-02-01 Jakub Jelinek <jakub@redhat.com>
5336 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
5337 -msoft-float -mlong-double-128 only issue a warning, but don't
5338 swich to DFmode long double.
5340 2006-02-01 Hans-Peter Nilsson <hp@axis.com>
5342 * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
5343 has a constant equivalent, iterate over equivalents for arg0,
5344 calling simplify_relational_operation and if there's a result
5345 cheaper than X, apply fold_rtx and return the result.
5347 2006-02-01 Jan Hubicka <jh@suse.cz>
5349 * opts.c (no_unit_at_a_time_default): New global variable.
5350 (decode_options): Use it.
5351 * opts.h (no_unit_at_a_time_default): Declare.
5353 2006-02-01 Paul Brook <paul@codesourcery.com>
5355 * function.c (assign_parm_setup_reg): Use function argument promotion
5357 * expr.c (expand_expr_real_1): Use function argument promotion rules
5360 2006-02-01 Steve Ellcey <sje@cup.hp.com>
5362 * gcc.c (process_command): Change j to 'unsigned int'.
5364 2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
5367 * expr.c (expand_expr_real_1) <case ARRAY_REF>:
5368 Use the corrected index for the character
5369 out of the string constant.
5371 2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
5373 * mode-switching.c (optimize_mode_switching): Fix size
5374 allocated for bb_info[n_entities].
5376 2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
5378 * gcc.c (main): Correct type that is allocated for
5379 explicit_link_files.
5381 2006-01-31 Jakub Jelinek <jakub@redhat.com>
5383 * config/s390/s390.c (init_alignment_context): Set
5384 ALIAS_SET_MEMORY_BARRIER on the MEM.
5385 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
5387 2006-01-31 Uttam Pawar <uttamp@us.ibm.com>
5390 * loop-unroll.c (unroll_loop_runtime_iterations): Free
5392 * tree-ssa-live.c (type_var_init): Allocate bitmap after
5395 2006-01-31 Marcin Dalecki <martin@dalecki.de>
5397 * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
5398 * regrename.c: Ditto.
5399 * tree-ssa-loop-im.c: Ditto.
5400 * tree-dump.c: Ditto.
5401 * tree-complex.c: Ditto.
5402 * genrecog.c: Ditto.
5403 * tree-ssa-threadupdate.c: Ditto.
5405 * java/class.c: Ditto.
5406 * java/jcf-parse.c: Ditto.
5407 * java/resource.c: Ditto.
5408 * java/except.c: Ditto.
5409 * java/jvspec.c: Ditto.
5410 * java/jcf-write.c: Ditto.
5411 * java/jcf-path.c: Ditto.
5412 * java/gjavah.c: Ditto.
5413 * java/zextract.c: Ditto.
5414 * java/jcf-io.c: Ditto.
5415 * java/jcf.h: Ditto.
5416 * java/buffer.c: Ditto.
5417 * java/lang.c: Ditto.
5418 * java/parse-scan.y: Ditto.
5419 * java/lex.c: Ditto.
5420 * java/lex.h: Ditto.
5421 * cfgloopmanip.c: Ditto.
5422 * postreload-gcse.c: Ditto.
5423 * tree-ssa-loop-manip.c: Ditto.
5424 * postreload.c: Ditto.
5425 * tree-ssa-loop-ch.c: Ditto.
5429 * diagnostic.c: Ditto.
5431 * genoutput.c: Ditto.
5433 * cfghooks.c: Ditto.
5434 * cfgloopanal.c: Ditto.
5435 * objc/objc-act.c: Ditto.
5437 * genextract.c: Ditto.
5438 * genautomata.c: Ditto.
5439 * pretty-print.c: Ditto.
5441 * cgraphunit.c: Ditto.
5444 * haifa-sched.c: Ditto.
5445 * dominance.c: Ditto.
5447 * tree-ssa-loop-ivopts.c: Ditto.
5449 * mode-switching.c: Ditto.
5450 * modulo-sched.c: Ditto.
5452 * ipa-pure-const.c: Ditto.
5454 * fix-header.c: Ditto.
5456 * tree-stdarg.c: Ditto.
5457 * ipa-utils.c: Ditto.
5458 * loop-init.c: Ditto.
5459 * ipa-inline.c: Ditto.
5462 * alloc-pool.c: Ditto.
5463 * dwarf2out.c: Ditto.
5465 * genattrtab.c: Ditto.
5466 * tree-ssa-loop-ivcanon.c: Ditto.
5470 * fortran/gfortranspec.c: Ditto.
5472 * local-alloc.c: Ditto.
5473 * langhooks.c: Ditto.
5474 * function.c: Ditto.
5475 * tree-vectorizer.c: Ditto.
5477 * ipa-type-escape.c: Ditto.
5479 * tree-if-conv.c: Ditto.
5482 * tree-data-ref.c: Ditto.
5483 * loop-unroll.c: Ditto.
5484 * treelang/treetree.c: Ditto.
5487 * ggc-common.c: Ditto.
5489 * coverage.c: Ditto.
5491 * tree-cfgcleanup.c: Ditto.
5492 * tree-ssa-pre.c: Ditto.
5493 * cfgcleanup.c: Ditto.
5494 * loop-invariant.c: Ditto.
5496 * ipa-prop.c: Ditto.
5497 * print-tree.c: Ditto.
5498 * conflict.c: Ditto.
5499 * ggc-page.c: Ditto.
5500 * sched-deps.c: Ditto.
5501 * regclass.c: Ditto.
5502 * tree-object-size.c: Ditto.
5504 * bb-reorder.c: Ditto.
5505 * resource.c: Ditto.
5506 * var-tracking.c: Ditto.
5508 * df-problems.c: Ditto.
5509 * reg-stack.c: Ditto.
5512 * sched-rgn.c: Ditto.
5513 * tree-ssa-structalias.c: Ditto.
5514 * tree-ssa-reassoc.c: Ditto.
5515 * config/darwin-c.c: Ditto.
5516 * config/darwin.c: Ditto.
5517 * config/arm/arm.c: Ditto.
5519 * collect2.c: Ditto.
5522 2006-01-31 Nicolas Pitre <nico@cam.org>
5524 * arm.md (smaxsi3): Make aware of smax_m1.
5527 2006-01-31 Nathan Sidwell <nathan@codesourcery.com>
5529 * gcc/config/m68k/lb1sf68.asm: Use moveq to load small constants.
5531 2006-01-31 Richard Guenther <rguenther@suse.de>
5533 * doc/invoke.texi (-msselibm): Document.
5534 * target.h (expand_library_builtin): New target hook.
5535 * builtins.c (expand_builtin): Use expand_library_builtin.
5536 (default_expand_library_builtin): New function.
5537 * gcc.c (LINK_GCC_MATH_SPEC): Define.
5538 (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
5539 (link_gcc_math_spec): Declare.
5540 (static_specs): Add link_gcc_math_spec.
5541 * expr.h (default_expand_library_builtin): Declare.
5542 * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
5543 (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
5544 * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
5545 * config/i386/i386.opt (msselibm): New target option.
5546 * config/i386/i386.c (ix86_builtin_function_variants): New array.
5547 (ix86_init_sse_abi_builtins): New function.
5548 (ix86_expand_library_builtin): Likewise.
5549 (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
5550 (override_options): Handle error conditions wrt -msselibm.
5551 (ix86_builtins): Add function codes for SSE2 ABI builtins.
5552 (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
5553 * doc/extend.texi (__builtin_sse2_*): Document new target specific
5556 2006-01-31 Richard Guenther <rguenther@suse.de>
5557 Paolo Bonzini <bonzini@gnu.org>
5559 * doc/install.texi (--disable-libgcc-math): Document.
5561 2006-01-30 Marcin Dalecki <martin@dalecki.de>
5563 * expr.h (expand_normal): new inline function.
5564 * builtins.c: use it, use EXPAND_NORMAL explicitely.
5566 * dwarf2out.c: use it.
5571 * config/sparc/sparc.c: use it.
5572 * config/i386/i386.c: use it.
5573 * config/rs6000/rs6000.c: use it.
5574 * config/arm/arm.c: use it.
5575 * config/mips/mips.c: use it.
5576 * stmt.c: use it, use EXPAND_NORMAL explicitely.
5578 2006-01-30 Roger Sayle <roger@eyesopen.com>
5580 * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
5581 argv to the appropriate type.
5583 2006-01-30 Zdenek Dvorak <dvorakz@suse.cz>
5585 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
5588 2006-01-30 Ulrich Weigand <uweigand@de.ibm.com>
5591 * config/s390/s390.c (struct machine_function): New flag
5592 decomposed_literal_pool_addresses_ok_p.
5593 (s390_reorg): Set it before final stage of literal pool transforms.
5594 (s390_decompose_address): Only accept displacements of the form
5595 (minus (label_ref ...) (label_ref ...)) if that flag is set.
5597 2006-01-30 Carlos O'Donell <carlos@codesourcery.com>
5599 * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
5600 the comparison routine return.
5602 2006-01-30 Michael Matz <matz@suse.de>
5604 * global.c (find_reg): Only evict for global regs.
5605 Take n_refs into account and dump more info.
5607 2006-01-30 J"orn Rennecke <joern.rennecke@st.com>
5610 * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
5611 (pragma_trap, pragma_nosave_low_regs): Likewise.
5612 (current_function_anonymous_args): Likewise.
5613 (sh_deferred_function_attributes): New variable.
5614 (sh_deferred_function_attributes_tail): Likewise.
5615 (print_operand): For '@', look up trap_exit attribute.
5616 (calc_live_regs): Look up trapa_handler attribute. For trapa
5617 handlers, save/restore fpscr, but don't do any other
5618 interrupt-specific saves.
5619 Don't save r0..r7 if the nosave_low_regs attribute is in effect.
5620 Fix check for partially saved registers to check for SHmedia.
5621 (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
5622 (sh_output_function_epilogue): Don't clear any of the removed
5624 (sh_insert_attributes): Don't check pragma_interrupt.
5625 Insert deferred attributes. Check that interrupt attribute is
5626 present for other attributes that require its presence.
5627 (sh_attribute_table): Add new attributes trapa_handler and
5629 (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5630 Don't check for pragma_interrupt. Don't store argument.
5631 * sh.h (pragma_interrupt, sp_switch): Don't declare.
5632 (sh_deferred_function_attributes): Declare.
5633 (sh_deferred_function_attributes_tail): Likewise.
5634 * sh.md (sp_switch_1): Add operand. Change generator caller.
5635 (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
5636 (*return_i): Don't use when trap_exit attribute is in effect.
5637 (*return_trapa): New insn pattern.
5639 * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
5640 setting c_target_objs and cxx_target_objs.
5641 * t-sh: Add rule for sh-c.o.
5643 2006-01-30 Richard Guenther <rguenther@suse.de>
5646 * gimplify.c (gimplify_target_expr): Handle easy cases
5647 without creating a temporary.
5649 2006-01-30 Nathan Sidwell <nathan@codesourcery.com>
5651 * vec.h (safe_grow): Remove duplicated line.
5653 2006-01-29 Diego Novillo <dnovillo@redhat.com>
5656 * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
5657 (expand_omp): ... here.
5658 (expand_omp_parallel): Only remove barriers for combined
5659 parallel+workshare constructs.
5661 2006-01-29 Eric Botcazou <ebotcazou@adacore.com>
5665 2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
5666 * tree.c (build_qualified_type): Chain the new type to the original
5667 type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
5668 a POINTER_TYPE or a REFERENCE_TYPE respectively.
5669 (build_pointer_type_for_mode): Only return unqualified types.
5670 (build_reference_type_for_mode): Likewise.
5672 2006-01-29 Gabriel Dos Reis <gdr@integgrable-solutions.net>
5674 * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
5675 * Makefile.in (CXX_COMPAT_WARN): Define.
5676 * configure: Regenerate.
5678 2006-01-29 Dorit Nuzman <dorit@il.ibm.com>
5681 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
5684 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
5686 * toplev.c: Fix thinko.
5688 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
5689 Marcin Dalecki <martin@dalecki.de>
5691 * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
5692 (push_srcloc): Use XNEW.
5693 (init_asm_output, default_get_pch_validity): Use XNEWVEC.
5695 2006-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
5697 * df-core.c (df_set_blocks): Deleted all variable.
5699 2006-01-28 Ian Lance Taylor <ian@airs.com>
5701 * cgraphunit.c (cgraph_assemble_pending_functions): Call
5702 cgraph_output_pending_asms.
5704 2006-01-28 Zack Weinberg <zackw@panix.com>
5706 * c.opt: Add -W(no-)overlength-strings.
5707 * doc/invoke.texi: Document it.
5708 * c-opts.c (c_common_handle_option): -pedantic implies
5709 -Woverlength-strings, if not explicitly disabled already.
5710 (c_common_post_options): -Woverlength-strings defaults to off, and
5711 is always off for C++.
5712 * c-common.c (fix_string_type): Issue warning about strings longer
5713 than is portable only if warn_overlength_strings. Rearrange code
5714 a little for clarity.
5715 * configure.in: Check for -Wno-overlength-strings as well before
5716 enabling -pedantic in stage 1.
5717 * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
5718 (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
5720 * genconditions.c (write_header, write_one_condition)
5721 (write_conditions, write_writer): Consolidate very long strings
5722 that were broken up to fit in C89 portable limit. Don't use
5723 printf when fputs will do.
5725 2006-01-28 Adam Nemet <anemet@caviumnetworks.com>
5727 * combine.c (simplify_comparison <AND>): Check
5728 TRULY_NOOP_TRUNCATION before start using a subreg.
5730 * config/mips/mips.md (*branch_zero<mode>,
5731 *branch_zero<mode>_inverted, *branch_equality<mode>,
5732 *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
5733 Remove mode check from comparisons.
5735 2006-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
5737 * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
5739 2006-01-28 Kazu Hirata <kazu@codesourcery.com>
5741 * expmed.c (const_mult_add_overflow_p): Remove.
5742 * expr.h: Remove the prototype for const_mult_add_overflow_p.
5744 * recog.c (validate_replace_rtx_subexp): Remove.
5745 * recog.h: Remove the prototype for
5746 validate_replace_rtx_subexp.
5748 * integrate.h: Remove the prototype for
5749 copy_decl_for_inlining.
5750 * rtl.h: Remove the prototype for mark_constant_function.
5751 * tree-vectorizer.h: Remove the prototype for
5752 vect_strip_conversion.
5754 * modulo-sched.c (create_partial_schedule,
5755 free_partial_schedule, reset_partial_schedule): Make them
5758 * hooks.c (hook_bool_rtx_int_false): Remove.
5759 * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
5761 2006-01-28 David Edelsohn <edelsohn@gnu.org>
5763 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
5764 and -mlong-double-128 are incompatible.
5765 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
5766 * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
5767 (TARGET_LIBGCC2_CFLAGS): Define.
5768 * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
5769 (TARGET_LIBGCC2_CFLAGS): Same.
5770 * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
5772 2006-01-28 Kazu Hirata <kazu@codesourcery.com>
5775 * c-typeck.c (build_binary_op): Perform implicit casts of
5776 operands before shortening them.
5778 * cfgloopmanip.c (split_loop_bb): Remove.
5779 * cfgloop.h: Remove the prototype for split_loop_bb.
5781 * cfgloop.c (flow_loop_outside_edge_p): Remove.
5782 * cfgloop.h: Remove the prototype for
5783 flow_loop_outside_edge_p.
5785 * emit-rtl.c (init_virtual_regs): Make it static.
5786 * function.h: Remove the prototype for init_virtual_regs.
5788 * recog.c (peephole2_optimize): Make it static.
5789 * recog.h: Remove the prototype for peephole2_optimize.
5791 2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
5793 * df-scan.c (df_record_entry_block_defs): Check if
5794 INCOMING_RETURN_ADDR_RTX is defined.
5796 2006-01-27 Daniel Berlin <dberlin@dberlin.org>
5797 Kenneth Zadeck <zadeck@naturalbridge.com>
5799 PR rtl-optimization/24762
5800 * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
5801 * targhooks.c (hook_void_bitmap): New hook prototype.
5802 * targhoohs.h (hook_void_bitmap): Ditto.
5803 * bitmap.h (bitmap_head_def): Moved to coretypes.h.
5804 * coretypes.h (bitmap_head_def): Moved from bitmap.h.
5805 * target.h (live_on_entry): New function pointer.
5806 * df-scan.c (df_all_hard_regs): Removed.
5807 (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
5808 (df_scan_free_internal): Added df->entry_block_defs.
5809 (df_scan_alloc): Ditto.
5810 (df_scan_dump): Ditto.
5811 (df_uses_record): Plumbed flag field properly thru calls.
5812 Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
5813 This part fixes PR24762.
5814 (df_bb_refs_record): Added code to make the frame and arg
5815 pointers live in EH blocks.
5816 (df_refs_record): Added call to df_record_entry_block_defs.
5817 (df_record_entry_block_defs): New function.
5818 * df-core.c: Added comments to describe new artifical defs.
5819 * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
5820 (entry_block_defs): New field in struct df.
5821 (df_all_hard_regs): Deleted.
5822 * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
5823 * df-problems.c (df_ru_bb_local_compute_process_def):
5824 Added code to handle artifical defs in the entry to a function.
5825 (df_ru_bb_local_compute): Ditto.
5826 (df_rd_bb_local_compute_process_def): Ditto.
5827 (df_rd_bb_local_compute): Ditto.
5828 (df_lr_bb_local_compute): Ditto.
5829 (df_ur_bb_local_compute): Ditto.
5830 (df_urec_bb_local_compute): Ditto.
5831 (df_chain_create_bb): Ditto.
5832 (df_ur_local_finalize): Removed entry.
5833 (df_urec_init): Ditto.
5834 (df_urec_local_finalize): Ditto.
5835 (df_ri_bb_compute): Added detection of last use of pseudos.
5836 * Makefile.in (df-scan.o): Updated dependencies.
5837 * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
5838 * config/mips/mips.c (mips_set_live_on_entry): Added.
5839 * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
5841 * dce.c (marked_insn_p): Added code to handle artifical defs.
5843 2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
5845 * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
5847 (_mm_cvtsi128_si64): Likewise.
5848 (_mm_cvtsd_si64): Likewise.
5849 (_mm_cvttsd_si64): Likewise.
5850 (_mm_cvtsi64_sd): Likewise.
5851 (_mm_cvtsi64_si128): Likewise.
5852 * config/i386/mmintrin.h (_m_from_int64): Likewise.
5853 (_mm_cvtsi64_m64): Likewise.
5854 (_m_to_int64): Likewise.
5855 (_mm_cvtm64_si64): Likewise.
5856 * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
5857 (_mm_cvttss_si64): Likewise.
5858 (_mm_cvtsi64_ss): Likewise.
5859 (_mm_cvtss_f32): Likewise.
5861 2006-01-27 Carlos O'Donell <carlos@codesourcery.com>
5863 * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
5864 for pragma redefine_extname.
5866 2006-01-27 Jakub Jelinek <jakub@redhat.com>
5869 * libgcc-std.ver: Add GCC_4.1.0 symbol version.
5870 * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
5871 -mno-minimal-toc to previous content.
5872 (bispecs): Remove goal.
5873 * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
5874 * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
5875 compatibility aliases on powerpc-*-*gnu*.
5876 * config/rs6000/libgcc-ppc-glibc.ver: New file.
5877 * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
5878 libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
5879 (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
5880 (ldblspecs): New goal.
5881 * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
5882 * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
5884 * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
5885 L_sf_to_tf or L_df_to_tf is defined.
5887 2006-01-27 David Edelsohn <edelsohn@gnu.org>
5888 Alan Modra <amodra@bigpond.net.au>
5891 * config/rs6000/linux.h (POWERPC_LINUX): Define.
5892 * config/rs6000/linux64.h (POWERPC_LINUX): Define.
5893 * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
5894 * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
5895 * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
5896 * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
5897 (rs6000_override_options): Initialize rs6000_ieeequad.
5898 Initialize TFmode format to ibm_extended_format if not
5900 (rs6000_handle_option): Accept -mabi= ibmlongdouble and
5902 (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
5903 (rs6000_return_in_memory): Only return IEEEQUAD in memory.
5904 (function_arg_advance): IBM long double passed in two FPRs, not
5906 (function_arg): IBM long double passed in FPRs.
5907 (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
5908 (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
5909 Only multireg GPR aligned.
5910 (rs6000_init_libfuncs): Enable IBM long double functions if not
5912 (rs6000_generate_compare): Use IBM long double compare if not
5914 * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
5915 (TARGET_IEEEQUAD): Define.
5916 (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
5917 not TARGET_IEEEQUAD.
5918 * config/rs6000/rs6000.md: Enable TFmode patterns if
5920 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
5921 * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
5922 and -mlong-double-128 are incompatible.
5923 * doc/invoke.texi (-mabi): Collect options together. Add
5924 ibmlongdouble and ieeelongdouble.
5926 2006-01-27 Richard Sandiford <richard@codesourcery.com>
5928 * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
5930 * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
5931 * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
5932 (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
5933 * rtl.h (rtunion_def): Remove rt_ptr.
5935 (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
5936 (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
5937 * config/i386/winnt.c (i386_pe_mark_dllexport)
5938 (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
5940 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
5942 * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
5944 2006-01-26 Alexandre Oliva <aoliva@redhat.com>
5948 * gthr-dce.h: Do not gthrw-ify pthread_once_init,
5949 pthread_key_delete. From John David Anglin. gthrw-ify
5950 pthread_getunique_np only if it it's not a macro. Delete
5952 (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
5953 __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
5954 __gthread_objc_condition_signal, __gthread_key_delete): Add
5955 "__attribute__ ((__unused__))" to unused arguments.
5956 (__gthread_recursive_mutex_init_function): Add missing return.
5957 * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
5958 gthr-posix95.h: Use macro-based approach for name redirection
5959 on targets missing weakref.
5961 2006-01-26 Zack Weinberg <zackw@panix.com>
5963 * genconditions.c (write_header): In generated code, #ifdef out
5964 all includes and fake declarations, except includes of bconfig.h
5965 and system.h, unless GCC_VERSION >= 3001. Do not include
5966 gensupport.h in any case.
5967 (write_conditions): Generate a definition of struct c_test. Add
5968 a comment to the generated #endif.
5969 (write_one_condition): Escape backslashes in string too.
5970 (write_writer): Generated code must escape backslashes and quote
5971 marks (but not newlines) in the strings it writes.
5972 * Makefile.in (build/gencondmd.o): Update dependencies.
5974 2006-01-26 Steve Ellcey <sje@cup.hp.com>
5977 * Makefile.in (insn-automata.o): Add header file dependencies.
5978 * genautomata.c: Add includes.
5980 2006-01-26 Steve Ellcey <sje@cup.hp.com>
5983 * Makefile.in (insn-automata.o): Add -Wno-error flag.
5985 2006-01-26 Paolo Bonzini <bonzini@gnu.org>
5987 * configure.ac: Expect target tools paths to be passed from the toplevel
5988 and wrap the detection into AS_SET_VAR_IF. Extract side-effects out of
5990 * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
5992 2006-01-26 Alexandre Oliva <aoliva@redhat.com>
5995 * c.opt (Wpointer-sign): Init to -1.
5996 * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
5997 OPT_pedantic, to 0 otherwise.
5998 * doc/invoke.texi: Update.
6000 2006-01-26 Paolo Bonzini <bonzini@gnu.org>
6002 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
6003 constants provided by 80387 instructions in the destination mode.
6005 2006-01-26 Richard Guenther <rguenther@suse.de>
6006 Andrew Pinski <pinskia@physics.uc.edu>
6009 partial PR tree-opt/17064
6010 * tree-ssa-structalias.c (intra_create_variable_infos):
6011 Create heap variables for incoming parameters if
6012 flag_argument_noalias > 1.
6013 (find_what_p_points_to): Look through default defs of
6016 2006-01-26 Jeff Law <law@redhat.com>
6019 * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
6020 with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
6021 within the VR_RANGE, use the VR_RANGE as the result, not the
6023 (adjust_range_with_scev): Reject ranges from SCEV which are out of
6024 bounds for the type.
6026 2006-01-26 Daniel Berlin <dberlin@dberlin.org>
6028 * tree-ssa-alias.c (maybe_create_global_var): Change
6029 subvar walking to an assertion that we don't have subvar'd variables.
6031 2006-01-26 Andrew Pinski <pinskia@physics.uc.edu>
6034 * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
6035 Use a new variable, inner. PARM_DECLs are always non-weak.
6037 2006-01-26 Shantonu Sen <ssen@opendarwin.org>
6039 * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
6042 2006-01-26 Adam Nemet <anemet@caviumnetworks.com>
6044 * config/mips/mips.md (*clear_upper32): New combiner pattern.
6046 2006-01-26 Richard Earnshaw <richard.earnshaw@arm.com>
6048 * arm.md (smaxsi3, sminsi3): Convert to define_expand.
6049 (smax_insn, smin_insn, smax_0, smin_0): New.
6051 2006-01-26 Hans-Peter Nilsson <hp@axis.com>
6054 * config/cris/cris.c (cris_order_for_addsi3): New function.
6055 * config/cris/cris-protos.h: Prototype it.
6056 * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
6057 (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
6058 (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
6059 (split for "op.S1 [rx=rx+i],ry (swapped)")
6060 (split for "op(s|u).S1 [rx=rx+i],ry")
6061 (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
6062 Apply cris_order_for_addsi3 when generating addsi3 insns.
6064 2006-01-25 Diego Novillo <dnovillo@redhat.com>
6066 * tree.h (TREE_RANGE_CHECK): Fix range predicate.
6067 (TREE_BLOCK): Add call to EXPR_CHECK.
6069 2006-01-25 Diego Novillo <dnovillo@redhat.com>
6072 * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
6073 * tree-pretty-print.c (dump_omp_clause): Extract from ...
6074 (dump_omp_clauses): ... here.
6075 (dump_generic_node): Handle OMP_CLAUSE.
6076 * tree.c (omp_clause_num_ops): New.
6077 (omp_clause_code_name): New.
6078 (tree_code_size): Handle OMP_CLAUSE.
6079 (tree_size): Likewise.
6080 (make_node): Document handling of OMP_CLAUSE.
6081 (tree_node_structure): Handle OMP_CLAUSE.
6082 (omp_clause_check_failed): New.
6083 (omp_clause_range_check_failed): New.
6084 (omp_clause_operand_check_failed): New.
6085 (build_omp_clause): New.
6086 (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
6087 * tree.h (enum omp_clause_code): Declare.
6088 (OMP_CLAUSE_SUBCODE_CHECK): Define.
6089 (OMP_CLAUSE_RANGE_CHECK): Define.
6090 (OMP_CLAUSE_ELT_CHECK): Define.
6091 (omp_clause_check_failed): Declare.
6092 (omp_clause_operand_check_failed): Declare.
6093 (omp_clause_range_check_failed): Declare.
6094 (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
6095 (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
6096 (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
6097 (OMP_CLAUSE_LASTPRIVATE): Likewise.
6098 (OMP_CLAUSE_IF_EXPR): Likewise.
6099 (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
6100 (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
6101 (OMP_CLAUSE_REDUCTION_CODE): Likewise.
6102 (OMP_CLAUSE_REDUCTION_INIT): Likewise.
6103 (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
6104 (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
6105 Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
6106 (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
6107 (OMP_CLAUSE_DEFAULT_KIND): Likewise.
6108 (OMP_CLAUSE_CODE): Define.
6109 (OMP_CLAUSE_SET_CODE): Define.
6110 (OMP_CLAUSE_CODE): Define.
6111 (OMP_CLAUSE_OPERAND): Define.
6112 (struct tree_omp_clause): Declare.
6113 (union tree_node): Add field 'omp_clause'.
6114 * treestruct.def (TS_OMP_CLAUSE): Define.
6115 * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
6116 OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
6117 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
6118 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
6119 OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
6120 OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
6121 (OMP_CLAUSE): Define.
6122 * print-tree.c (print_node): Handle OMP_CLAUSE.
6123 * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
6124 * c-typeck.c: Likewise.
6125 * gimplify.c: Likewise.
6126 * c-omp.c: Likewise.
6127 * tree-nested.c: Likewise.
6128 * tree-inline.c: Likewise.
6129 * c-parser.c: Likewise.
6130 * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
6133 2006-01-25 Roger Sayle <roger@eyesopen.com>
6135 PR rtl-optimization/25703
6136 * combine.c (try_combine): Handle zero_extract and strict_low_part
6137 of non-lowpart SUBREGs for constant reg_subword_p set optimization.
6139 2006-01-25 Peter Bergner <bergner@vnet.ibm.com>
6141 * global.c: Fix comment typos.
6143 2006-01-25 Andrew Pinski <pinskia@physics.uc.edu>
6146 * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
6147 Use output_addr_const instead of assemble_name.
6149 2006-01-25 Paolo Bonzini <bonzini@gnu.org>
6151 * Makefile.in (sched-vis.o): Update dependencies.
6152 * haifa-sched.c (sched_finish): Clear current_sched_info.
6153 * cfg.c (dump_bb_info): New, split from dump_flow_info.
6154 (dump_flow_info): Call it.
6155 * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
6157 * basic-block.h (dump_bb_info): Declare.
6158 * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
6159 option, and apply options only for dump files whose TDF_RTL,
6160 TDF_TREE, or TDF_IPA bits match.
6161 * rtl.h: Declare new functions exported from sched-vis.c.
6162 * sched-vis.c: Enable also if scheduling is not used.
6163 (print_value): Print the mode of registers if not inside scheduling.
6164 (print_insn): Make it work outside the scheduler. Beautify the output
6166 (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
6168 2006-01-25 Richard Sandiford <richard@codesourcery.com>
6170 * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
6171 * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
6172 a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
6173 depending on the value of CONSTANT_POOL_ADDRESS_P.
6174 * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
6176 * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
6177 rather than SYMBOL_REF_DECL.
6178 (rtx_constant_pool): Remove const_rtx_sym_htab.
6179 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
6180 (init_varasm_status): Don't initialize const_rtx_sym_htab.
6181 (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
6182 Remove handling of const_rtx_sym_htab.
6183 (find_pool_constant): Delete.
6184 (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
6185 rather than find_pool_constant.
6186 (get_pool_constant_for_function): Delete.
6187 (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
6189 * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
6190 (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
6191 (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
6192 (SYMBOL_REF_CONSTANT): New macro.
6193 (get_pool_constant_for_function): Delete.
6194 * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
6195 rather than SYMBOL_REF_DECL.
6196 (i386_pe_mark_dllimport): Likewise.
6197 * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
6198 rather than SYMBOL_REF_DECL.
6199 * config/darwin.c (machopic_indirect_data_reference): Likewise.
6200 (machopic_indirect_call_target): Likewise.
6202 2006-01-25 Eric Botcazou <ebotcazou@adacore.com>
6204 * flow.c (delete_noop_moves): Add missing EOL to dump message.
6206 2006-01-25 Richard Sandiford <richard@codesourcery.com>
6208 * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
6210 2006-01-25 Kaz Kojima <kkojima@gcc.gnu.org>
6212 * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
6214 2006-01-24 David Daney <ddaney@avtrex.com>
6217 * configure.ac (enable_tls): New enable option.
6218 (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
6219 * configure: Regenerate.
6220 * doc/install.texi (--enable-tls): Document new option.
6221 (--disable-tls): Ditto.
6223 2006-01-24 Richard Henderson <rth@redehat.com>
6225 * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
6226 * alias.c (true_dependence): Respect it.
6227 (canon_true_dependence, write_dependence_p): Likewise.
6228 * builtins.c (get_builtin_sync_mem): Set it.
6230 2006-01-25 Zdenek Dvorak <dvorakz@suse.cz>
6232 * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
6235 2006-01-24 DJ Delorie <dj@redhat.com>
6237 * expmed.c (store_bit_field): Don't arbitrarily deny using insv
6238 for storing constants in single-bit bitfields.
6240 2006-01-25 Ben Elliston <bje@au.ibm.com>
6242 * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
6244 2006-01-24 Andrew Pinski <pinskia@physics.uc.edu>
6247 * tree-ssa-pre.c (phi_translate): Return NULL
6248 for AGGREGATE_TYPE's.
6250 2006-01-24 Zack Weinberg <zackw@panix.com>
6252 * genautomata.c (process_state_for_insn_equiv_partition):
6253 Use xcalloc for insn_arcs_array.
6254 * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
6255 (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
6257 2006-01-24 Richard Henderson <rth@redhat.com>
6259 * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
6262 2006-01-23 Paolo Bonzini <bonzini@gnu.org>
6264 PR rtl-optimization/25890
6265 PR rtl-optimization/25905
6266 * combine.c (expand_compound_operation, expand_field_assignment):
6267 Fail if the bitfield's final position is out of bounds.
6269 2006-01-24 Ian Lance Taylor <ian@airs.com>
6272 * cgraphunit.c (cgraph_output_in_order): Don't clear
6273 cgraph_asm_nodes until after asm strings have been output.
6275 2006-01-23 Adam Nemet <anemet@caviumnetworks.com>
6277 * fix-header.c (read_scan_file): Add new parameter imultilib when
6278 calling register_include_chains.
6280 2006-01-23 Diego Novillo <dnovillo@redhat.com>
6282 * omp-low.c: Update documentation.
6284 2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
6285 Daniel Berlin <dberlin@dberlin.org>
6289 * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
6290 return from the function.
6292 2006-01-22 Zack Weinberg <zackw@panix.com>
6294 * rtl.def (match_code): Add second argument.
6295 * genpreds.c (write_extract_subexp): New function.
6296 (write_match_code): Add path argument. Use write_extract_subexp.
6297 (write_predicate_expr): Pass path to write_match_code.
6298 (mark_mode_tests): MATCH_CODE applied to a subexpression does
6299 not perform a mode test.
6300 * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
6301 a subexpression does not constrain the top-level code set.
6302 * read-rtl.c (read_rtx_variadic): New function.
6303 (read_rtx_1): Use it; allow AND and IOR to be variadic.
6304 * doc/md.texi: Document new notation.
6305 * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
6306 (cmpsi_operand): ... here, using new notation.
6308 2006-01-22 Zack Weinberg <zackw@panix.com>
6310 * varray.c: Remove GENERATOR_FILE #ifdefs.
6312 2006-01-22 Zack Weinberg <zackw@panix.com>
6314 * genautomata.c (output_reserved_units_table): Emit nothing if
6315 description->query_units_num is zero. Remove extra blank line.
6316 (output_cpu_unit_reservation_p): Short circuit
6317 if description->query_units_num is zero.
6319 2006-01-22 Zack Weinberg <zackw@panix.com>
6321 * genattrtab.c: Don't include genattrtab.h. Define ATTR_NONE
6322 and ATTR_SPECIAL (from genattrtab.h). Don't define num_dfa_decls
6323 nor any of the random handful of variables that used to be necessary
6324 when this program was linked with rtlanal.o. Prune set of forward
6325 function declarations.
6326 (struct attr_desc): Remove static_p field.
6327 (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
6328 (check_attr_test, make_internal_attr, make_numeric_value): Make static.
6329 (attr_string): Do not read the character one past the length of
6331 (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
6332 (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
6333 (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
6334 (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
6335 (make_automaton_attrs): New.
6336 (main): Do not call into genautomata. Call local gen_bypass
6337 and gen_insn_reserv as appropriate. Call make_automaton_attrs.
6338 Remove special case for insn_alts.
6339 * genautomata.c: Include gensupport.h; not genattrtab.h nor
6340 varray.h (leftover from previous change). Prune set of forward
6341 function declarations. Remove state_alts fields from all
6342 structures. Remove state_alts_table from struct automaton.
6343 Make everything except main static. Do not maintain num_dfa_decls.
6344 Do not maintain state_alts fields of various structures.
6345 (process_decls): Don't validate condexp for dm_insn_reserv decls.
6346 (add_arc): Remove state_alts argument. All callers updated.
6347 (output_reserved_units_table): Emit #ifdef here...
6348 (output_tables): ...not here. Don't generate state_alts tables.
6349 (expand_automata): Don't generate attributes.
6350 (write_automata): Don't generate state_alts functions.
6351 (main): New function.
6352 (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
6353 (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
6354 (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
6355 (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
6356 (BYPASS_P_FUNC_NAME, output_state_alts_table)
6357 (output_automata_list_state_alts_code, output_internal_state_alts_func)
6358 (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
6359 (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
6361 * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
6362 * genattrtab.h: Delete file.
6363 * Makefile.in (OBJS-common): Add insn-automata.o.
6364 (insn-automata.o): New rule.
6365 (simple_generated_c): Add insn-automata.c.
6366 (build/genattrtab.o, build/genautomata.o): Update dependencies.
6367 (genprogmd): Add automata.
6368 (build/genattrtab): Needs no extra objects nor libraries.
6369 (build/genautomata): Needs build/vec.o and -lm.
6371 2006-01-22 Zack Weinberg <zackw@panix.com>
6373 * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
6374 (output_dfa_max_issue_rate, locked_states_num): Delete.
6375 (struct automaton): Add locked_states field.
6376 (output_dead_lock_vect): Save number of locked states in
6377 automaton->locked_states. If it is zero, don't print anything.
6378 (output_max_insn_queue_index_def): Define max_insn_queue_index const.
6379 (output_internal_dead_lock_func): Only test the dead_lock_vect
6380 for automata that have locked states.
6381 (output_statistics): Always print the number of locked states for
6382 each automaton. Calculate total number of locked states here.
6383 (write_automata): Don't call output_dfa_max_issue_rate.
6384 * genattrtab.c: Define length_unit_log as a const variable.
6385 * genattr.c: Don't emit MAX_DFA_ISSUE_RATE. Declare
6386 max_insn_queue_index const.
6387 * final.c (length_unit_log): Declare const.
6388 * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
6390 2006-01-22 Zack Weinberg <zackw@panix.com>
6392 * genautomata.c: Include vec.h, not varray.h.
6393 Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
6394 VLA_HWINT_ macros. Change vla_hwint_t to a typedef for
6395 VEC(vect_el_t,heap) *. Convert all uses of VLA_* macros to
6396 VEC_* macros operating on appropriately typed vectors, or to
6397 malloced arrays when the size is known in advance. Const-ify
6398 many char* variables and function arguments. No functional changes.
6399 * Makefile.in (build/varray.o): Delete rule.
6400 (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
6401 (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
6403 2006-01-22 Zack Weinberg <zackw@panix.com>
6405 * gensupport.c: Define get_insn_name and record_insn_name here.
6406 (read_md_rtx): Call record_insn_name as appropriate.
6407 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
6408 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
6409 * genpreds.c, genrecog.c: Don't define get_insn_name nor
6411 * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
6412 (BUILD_VARRAY): Delete.
6413 (genprognormal): Rename genprogmd. Fold in all programs from
6414 genprognoprint; also attrtab.
6415 (build/genattrtab): Just mention genautomata.o and varray.o.
6416 Reorganize a bit, add comments to make the categories clearer.
6418 2006-01-22 Zack Weinberg <zackw@panix.com>
6420 * genconditions.c (condition_table, add_condition): Delete.
6421 (write_conditions): Don't emit n_insn_conditions nor
6422 insn_elision_unavailable. Issue the gcc version #ifdef here,
6423 inside the table, with no #else clause ...
6424 (write_header): ...not here.
6425 (write_writer): New function.
6426 (main): Don't initialize condition_table. Use add_c_test.
6428 * gensupport.c (init_md_reader_args_cb): Handle multiple input
6429 files on the command line.
6430 (maybe_eval_c_test): Don't check insn_elision_unavailable.
6431 Return -1 if there is no entry in the table, don't abort.
6432 (add_c_test, traverse_c_tests): New functions.
6433 * gensupport.h (insn_elision_unavailable, insn_conditions)
6434 (n_insn_conditions): Delete declarations.
6435 (add_c_test, traverse_c_tests): Declare.
6436 * read-rtl.c: Include gensupport.h.
6437 (read_conditions): New function.
6438 (read_rtx): If read_rtx_1 returns 0, treat as EOF.
6439 (read_rtx_1): If we get EOF when we were looking for an initial
6440 open paren, return 0. Call read_conditions when appropriate.
6441 * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
6442 dummy-conditions.o. Eliminate references to insn-conditions.o,
6443 or change them to build/gencondmd.o, as appropriate. Remove
6444 insn-constants.h from $(simple_generated_h) and insn-conditions.c
6445 from $(simple_generated_c). For all files remaining in those
6446 two lists, add insn-conditions.md to the generator command line.
6447 Give insn-constants.h/s-constants their own rules. Add rules
6448 for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
6449 (build/read-rtl.o): Depend on gensupport.h.
6450 (genprognormal): Include preds.
6451 (genprogearly): Rename genprognoprint; only difference is now that
6452 they don't link with $(BUILD_PRINT).
6453 * dummy-conditions.c: Delete.
6455 2006-01-22 Zack Weinberg <zackw@panix.com>
6457 * genextract.c: Don't include insn-config.h. Do include vec.h.
6458 Declare vectors of int, char, and locstr.
6459 (locstr): New typedef.
6460 (struct extraction): Make all array fields into bare pointers.
6461 (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
6462 (insn_code_number): Delete.
6463 (accum_extract): New struct.
6464 (VEC_safe_set_locstr, VEC_char_to_string): New functions.
6465 (gen_insn): Take insn_code_number as an argument. Use an
6466 accum_extract structure instead of loading data directly into
6467 a struct extraction, and having to know how big it might get.
6468 (walk_rtx): Operate entirely on an accum_extract structure.
6469 (print_path): Avoid unnecessary use of printf.
6470 (print_header): New function, split out of main. Distinguish
6471 more carefully between an unrecognizable insn and an insn that
6472 has the code number of a define_expand.
6473 (main): Pass insn_code_number to gen_insn. Call print_header
6474 only after parsing. Avoid unnecessary use of printf.
6475 * Makefile.in (build/vec.o): New rule.
6476 (build/genextract): Depend on build/vec.o.
6477 (build/genextract.o): Don't depend on insn-config.h.
6479 2006-01-22 Zack Weinberg <zackw@panix.com>
6481 * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
6482 $(RUN_GEN). Use pattern rules to factor out as much boilerplate as
6483 practical. Eliminate per-generator-program link rules.
6485 2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
6488 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
6489 with a call expr to ...
6490 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
6492 2006-01-23 Richard Guenther <rguenther@suse.de>
6494 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
6495 before make_edge with conditional EDGE_TRUE_VALUE.
6497 2006-01-23 Steven Bosscher <stevenb.gcc@gmail.com>
6498 Jan Hubicka <jh@suse.cz>
6499 Richard Guenther <rguenther@suse.de>
6501 PR rtl-optimization/25654
6502 * cfgexpand.c (aggregate_contains_union_type): New function.
6503 (add_alias_set_conflicts): Call it. Make sure to add conflicts
6504 for structure variables that contain a union type.
6506 2006-01-23 Richard Sandiford <richard@codesourcery.com>
6508 * gengtype.c (new_structure): Return the structure.
6509 (create_option): Add an extra "next" argument.
6510 (create_field): New function.
6511 (adjust_field_rtx_def): Use create_option and create_field.
6512 Remove a now-unnecessary call to find_structure.
6513 (adjust_field_tree_def): Likewise.
6514 (note_yacc_type): Remove an unnecessary call to find_structure.
6515 * gengtype.h (new_structure): Return the structure.
6516 (create_option): Add an extra argument.
6517 * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
6518 (option): Adjust calls to create_option.
6520 2006-01-22 David Edelsohn <edelsohn@gnu.org>
6522 * config/rs6000/aix.h (STACK_BOUNDARY): Define.
6524 2006-01-22 Paul Brook <paul@codesourcery.com>
6525 Peter Barada <peter@the-baradas.com>
6527 * config/m68k/m68k.md: Add Coldfire FPU support.
6528 Define FP mode macro and associated attributes.
6529 Use it for float mode patterns.
6530 * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
6531 (LIBCALL_VALUE): Use m68k_libcall_value.
6532 * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
6533 (m68k_function_value): Ditto.
6534 (emit_move_sequence): Ditto.
6535 * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
6536 * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
6537 * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
6538 (MULTILIB_EXCEPTIONS): Ditto.
6539 * config/m68k/m68k.opt: Add mcfv4e.
6540 * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
6541 (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
6542 (m68k_output_function_prologue): Save ColdFire FPU registers.
6543 (m68k_output_function_epilogue): Restore ColdFire FPU registers.
6544 (force_mode, fp_reg_operand, emit_move_sequence): New functions.
6545 (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
6546 ColdFire FPU registers.
6547 (m68k_libcall_value, m68k_function_value): New functions.
6548 * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
6549 (LIBCALL_VALUE): Use m68k_libcall_value.
6550 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
6551 (MASK_COLDFIRE): Add MASK_CFV4E.
6552 (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
6553 (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
6554 (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
6555 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
6556 (GO_IF_LEGITIMATE_ADDRESS): Use it.
6557 (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
6558 * doc/invoke.tex: Document -mcfv4e on m68k.
6560 2006-01-22 Ranjit Mathew <rmathew@gcc.gnu.org>
6562 * doc/contribute.texi: Change CVS to SVN and update the corresponding
6565 2006-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
6568 * c-opts.c (c_common_handle_option): Don't include
6569 -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
6570 * doc/invoke.texi (C++ Dialect Options): Document that
6571 -Wnon-virtual-dtor is no longer included in -Wall.
6573 2006-01-21 Joseph S. Myers <joseph@codesourcery.com>
6575 * gcov.c (print_version), gcov-dump.c (print_version),
6576 mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
6579 2006-01-21 Kenneth Zadeck <zadeck@naturalbridge.com>
6581 * df-scan.c (problem_SCAN): Added NULL reset function.
6582 (df_scan_reset_blocks): Added code to call reset block function
6583 (df_bb_refs_delete) Fixed comment.
6584 (df_insn_refs_delete): Made tolerant of deleting non existent info
6585 for dataflow problems that need to be reset.
6586 * df-core.c (df_set_blocks): Ditto.
6587 * df.h (struct df_problem): Added reset_fun.
6588 * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
6589 problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
6590 (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
6591 functions to clear out all references to def-use or use-def chains.
6593 2006-01-21 Ben Elliston <bje@au.ibm.com>
6595 * varasm.c (assemble_real): Initialise data array.
6597 2006-01-20 Paul Brook <paul@codesourcery.com>
6599 Merge from csl-arm-branch.
6600 2005-09-21 Kazu Hirata <kazu@codesourcery.com>
6601 * config/arm/arm.md (movdi): Force operands[1] to a register
6602 if we have a non-register source.
6603 (*arm_movdi, *movdf_soft_insn): Require that one of the
6604 operands be a register.
6605 * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
6606 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
6608 2006-01-20 DJ Delorie <dj@redhat.com>
6610 * varasm.c (initialize_constant_valid_p): Allow pointers
6611 initialized from integer constants of lesser precision.
6612 (output_constant): Allow non-int-sized pointer modes to be
6613 initialized from integer constants.
6615 2006-01-20 Joseph S. Myers <joseph@codesourcery.com>
6618 * cppdefault.h (struct default_include): Add multilib flag.
6619 * cppdefault.c (cpp_include_defaults): Set it.
6620 * c.opt (-imultilib): New option.
6621 * c-opts.c (imultilib): New.
6622 (c_common_handle_option): Handle -imultilib.
6623 (c_common_post_options): Likewise.
6624 * c-incpath.c (add_standard_paths, register_include_chains):
6626 * c-incpath.h (register_include_chains): Add extra parameter.
6627 * gcc.c (do_spec_1): Generate -imultilib option.
6628 (The Specs Language): Update %I description.
6629 (process_command): Update copyright notice.
6630 * doc/cppopts.texi (-imultilib): Document.
6631 * doc/invoke.texi (-imultilib): Include in option summary.
6632 (%I): Update specs documentation.
6634 2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
6636 * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
6638 2006-01-20 Richard Sandiford <richard@codesourcery.com>
6640 * stmt.c (case_bit_test_cmp): Stabilize the sort using code
6643 2006-01-20 Richard Guenther <rguenther@suse.de>
6644 Steven Bosscher <stevenb.gcc@gmail.com>
6646 PR rtl-optimization/24626
6647 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
6648 EDGE_TRUE_VALUE if in RTL mode.
6651 2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
6652 * cfgrtl.c (rtl_verify_flow_info_1): Fix.
6654 2006-01-20 Dirk Mueller <dmueller@suse.com>
6657 * c-parser.c (c_parser_if_body): Use build_empty_stmt()
6658 instead of a special NOP marker.
6659 * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
6660 NOP marker handling.
6661 * c-common.h (empty_body_warning): Add forward declaration.
6662 * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
6663 Now uses IS_EMPTY_STMT() instead of special NOP markers.
6665 2006-01-20 Paul Brook <paul@codesourcery.com>
6667 * Makefile.in (lang_checks): Keep going if mkdir fails.
6669 2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
6671 * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
6672 be able to clean out basic block when not necessary.
6673 (df_scan_free): Fixed to properly delete information if df is
6674 unused before calling df_finish.
6675 (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
6676 df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
6678 (df_bb_refs_delete): New function.
6679 (df_refs_delete): Moved per block code to df_bb_refs_delete.
6680 * df-core.c (df_set_blocks): Added code to properly clean out
6681 unused blocks if they are not part of the blocks to consider.
6682 Added additional null check.
6683 (df_compact_blocks): Added basic block parameter to free_bb_fun to
6684 be able to clean out basic block when not necessary
6685 * df.h (df_free_bb_function): Ditto.
6686 (df_bb_refs_delete): New function.
6687 * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
6688 df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
6689 basic block parameter to be able to clean out basic block when not
6691 (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
6692 (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
6693 Fixed to properly delete information if df is unused before
6696 2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
6698 PR rtl-optimization/25799
6699 * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
6700 Corrected confluence operator to remove bits from op2 before oring
6701 with op1 rather than removing bits from op1.
6702 (df_ru_transfer_function): Corrected test on wrong bitmap which
6703 caused infinite loop. Both of these problems were introduced in
6704 the dataflow rewrite.
6706 2006-01-19 DJ Delorie <dj@redhat.com>
6708 * reload1.c (find_reload_regs): Note the details of reload
6709 failures in the dump file.
6710 (spill_failure): Likewise.
6712 2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
6714 * loop-iv.c: Include df.h and hashtab.h.
6715 (enum iv_grd_result): New enum.
6716 (DF_REF_IV, DF_REF_IV_SET): New macros.
6717 (struct biv_entry): New.
6718 (df, bivs): New global variables.
6719 (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
6720 assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
6722 (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
6723 iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
6724 analyzed_for_bivness_p, record_biv): New functions.
6725 (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
6726 get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
6727 iv_analyze, biv_p, iv_analysis_done): Work with df representation of
6729 (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
6731 (iv_number_of_iterations): Use new interface to iv analysis.
6732 * loop-unroll.c: Do not include varray.h.
6733 (analyze_iv_to_split_insn): Use new interface to iv
6735 * loop-unswitch.c (may_unswitch_on): Ditto.
6736 * df.c (df_bitmaps_free): Only work for bbs for that structures are
6738 (df_bb_modify): Realloc tables to the new index.
6739 (df_find_use): New function.
6740 * df.h (df_find_use): Declare.
6741 * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
6743 * cfgloop.h (struct rtx_iv): Remove analysed field.
6744 (iv_get_reaching_def): Removed.
6745 (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
6746 * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
6747 (loop-iv.o): Add df.h and hashtab.h dependency.
6748 * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
6750 2006-01-20 Alan Modra <amodra@bigpond.net.au>
6753 * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
6755 (__floatundisf, __floatundidf): Likewise.
6756 * libgcc2.h (IS_IBM_EXTENDED): Define.
6758 2006-01-19 DJ Delorie <dj@redhat.com>
6760 * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
6762 2006-01-19 Paul Brook <paul@codesourcery.com>
6764 * gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions
6765 as nothrow when unwinding tables are disabled.
6767 2006-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6770 * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
6771 of bit-field" when in system header.
6773 2006-01-19 DJ Delorie <dj@redhat.com>
6775 * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
6776 the 16 bit shift limit of the m16c.
6778 2006-01-19 Andrew Pinski <pinskia@physics.uc.edu>
6781 * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
6782 * config/i386/i386.c (output_set_got): Output the label if we have one
6783 for the TARGET_DEEP_BRANCH_PREDICTION case.
6785 2006-01-19 Jan Hubicka <jh@suse.cz>
6786 H.J. Lu <hongjiu.lu@intel.com>
6787 Evandro Menezes <evandro.menezes@amd.com>
6789 * invoke.texi (generic): Document
6791 * config.gcc: Make x86_64-* and i686-* default to generic tunning.
6792 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
6793 TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
6794 (x86_use_incdec, x86_pad_returns): New variables
6795 (TARGET_CPU_DEFAULT_generic): New constant
6796 (TARGET_CPU_DEFAULT_NAMES): Add generic.
6797 (enum processor_type): Add generic32 and generic64.
6798 * i386.md (cpu attribute): Add generic32/generic64
6799 (movhi splitter): Behave sanely when both partial_reg_dependency and
6800 partial_reg_stall are set.
6801 (K8 splitters): Enable for generic as well.
6802 * predicates.md (incdec_operand): Use TARGET_INCDEC
6803 (aligned_operand): Avoid memory mismatch stalls.
6804 * athlon.md: Enable for generic64, new patterns for 128bit moves.
6805 * ppro.md: Enable for generic32
6806 * i386.c (generic64_cost, generic32_cost): New.
6807 (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
6808 (x86_use_leave): Enable for generic64. (x86_use_sahf,
6809 x86_ext_80387_constants): Enable for generic32. (x86_push_memory,
6810 x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
6811 x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
6812 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
6813 x86_partial_reg_dependency, x86_memory_mismatch_stall,
6814 x86_accumulate_outgoing_args, x86_prologue_using_move,
6815 x86_epilogue_using_move, x86_arch_always_fancy_math_387,
6816 x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
6818 (x86_use_incdec, x86_pad_returns): New.
6819 (override_options): Add generic32 and generic64, translate "generic"
6820 to generic32/generic64 and "i686" to "generic32", refuse
6821 "generic32"/"generic64" as arch target.
6822 (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
6823 (ix86_reorg): Honor PAD_RETURNS.
6825 2006-01-19 Diego Novillo <dnovillo@redhat.com>
6827 * tree-pretty-print.c (dump_generic_node): Handle
6828 OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
6829 * cgraph.c (cgraph_expand_queue): Rename from
6830 cgraph_analyze_queue. Update all users.
6831 * cgraphunit.c (cgraph_assemble_pending_functions): Process
6832 cgraph_expand_queue.
6833 (cgraph_expand_all_functions): Likewise.
6834 (cgraph_finalize_pending_functions): Remove. Update callers.
6836 * tree.h (OMP_DIRECTIVE_P): Define.
6837 (OMP_PARALLEL_FN): Define.
6838 (OMP_PARALLEL_DATA_ARG): Define.
6839 (OMP_SECTIONS_SECTIONS): Define.
6840 * tree-pass.h (pass_expand_omp): Declare.
6841 * omp-low.c (struct omp_region): Declare.
6842 (struct omp_context): Remove fields 'parallel_type',
6843 'parallel_start_ix' and 'parallel_start_additional_args'.
6845 (struct omp_for_data): Rename from struct expand_omp_for_data.
6846 (omp_regions): New static variable.
6847 (root_omp_region): New static variable.
6848 (find_omp_clause): Make static.
6849 (is_in_combined_parallel_ctx): Remove.
6850 (is_combined_parallel): New.
6851 (extract_omp_for_data): Move earlier in the file.
6852 (workshare_safe_to_combine_p): New.
6853 (get_ws_args_for): New.
6854 (determine_parallel_type): Move earlier in the file.
6855 (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
6857 (omp_copy_decl): Likewise.
6858 (create_omp_child_function): Likewise.
6859 (lookup_omp_region): New.
6860 (dump_omp_region): New.
6861 (debug_omp_region): New.
6862 (debug_all_omp_regions): New.
6863 (new_omp_region): New.
6864 (scan_omp_parallel): If parallel_nesting_level > 1, the
6865 directive is nested within another parallel directive.
6866 Set OMP_PARALLEL_FN.
6867 (scan_omp_for): Do not try to handle combined parallel+for
6869 Remove FIXME comment.
6870 (scan_omp_nested): Remove.
6871 (scan_omp_1): Do not call scan_omp_nested when
6872 parallel_nesting_level is > 1.
6873 Do not change the DECL_CONTEXT of local variables found.
6874 (lookup_decl_in_outer_ctx): New.
6875 (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
6876 (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
6877 (lower_reduction_clauses): Rename from expand_reduction_clauses.
6878 (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
6879 If CTX is nested, lookup VAR in the outer context when
6880 building copy assignment.
6881 (lower_send_clauses): Rename from expand_send_clauses.
6882 If CTX is nested, lookup VAR in the outer context when
6883 building copy assignments.
6884 (lower_send_shared_vars): Rename from expand_send_shared_vars.
6885 If CTX is nested, lookup VAR in the outer context when
6886 building copy assignments.
6887 (expand_parallel_call): Rename from build_parallel_call.
6888 Handle combined parallel+workshare cases.
6889 Re-implement to emit code into the CFG.
6891 (expand_omp_parallel): Re-implement to emit code into the CFG.
6892 Call move_sese_region_to_fn to outline the sub-graph
6893 containing the parallel region.
6894 (expand_omp_for_1): Remove.
6895 (expand_omp_for_generic): Re-implement to emit code into the
6897 (expand_omp_for_static_nochunk): Likewise.
6898 (expand_omp_for_static_chunk): Likewise.
6899 (expand_omp_for): Likewise.
6900 (expand_omp_sections): Likewise.
6901 (remove_exit_barriers): New.
6902 (expand_omp_synch): New.
6904 (build_omp_regions_1): New.
6905 (build_omp_regions): New.
6906 (execute_expand_omp): New.
6907 (gate_expand_omp): New.
6908 (pass_expand_omp): Define.
6909 (lower_omp_sections): Rename from expand_omp_sections.
6910 Set OMP_SECTIONS_SECTIONS.
6911 (lower_omp_single_simple): Rename from expand_omp_single_simple.
6912 (lower_omp_single_copy): Rename from expand_omp_single_copy.
6913 (lower_omp_single): Rename from expand_omp_simple.
6914 (lower_omp_master): Rename from expand_omp_master.
6915 (lower_omp_ordered): Rename from expand_omp_ordered.
6916 (lower_omp_critical): Rename from expand_omp_critical.
6917 (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
6918 (lower_omp_for): Re-implement.
6919 (lower_omp_parallel): Re-implement.
6920 (lower_regimplify): Rename from expand_regimplify.
6921 (lower_omp_1): Rename from expand_omp_1.
6922 If there are syntax errors in the program, replace every
6923 OpenMP directive with NOP.
6924 Call lower_omp_* instead of expand_omp_*.
6925 (lower_omp): Rename from expand_omp.
6927 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
6928 * tree-gimple.h (enum omp_parallel_type): Remove.
6929 (gimple_boolify): Declare extern.
6930 (find_omp_clause, determine_parallel_type): Remove.
6932 * gimple-low.c (lower_omp_directive): New.
6933 (lower_stmt): Call it.
6934 (record_vars_into): Move from ...
6935 (record_vars): ... here.
6936 Call record_vars_into with current_function_decl.
6938 * gimplify.c (struct gimplify_ctx): Remove fields
6939 combined_pre_p and combined_ctxp. Update users.
6940 (get_formal_tmp_var): Add documentation.
6941 (gimple_boolify): Make extern.
6942 (gimplify_expr_in_ctx): Remove. Update callers.
6943 (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
6944 will always be a BIND_EXPR.
6945 (gimplify_expr): Handle OMP_RETURN_EXPR.
6946 * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
6947 (OMP_PARALLEL): Add 3 operands.
6948 (OMP_SECTIONS): Add 1 operand.
6949 (OMP_RETURN_EXPR): Define.
6951 * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
6952 (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
6953 * tree-iterator.c (alloc_stmt_list): Assert that we are not
6954 creating a circular free list.
6955 (free_stmt_list): Assert that we are not freeing stmt_list_cache.
6957 * tree-flow.h (move_sese_region_to_fn): Declare.
6958 (record_vars_into): Declare.
6959 * tree-cfg.c (make_omp_sections_edges): New.
6960 (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
6961 OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
6962 OMP_SECTIONS and OMP_SECTION.
6963 (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
6964 (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
6965 (verify_stmt): Do not handle OMP_DIRECTIVE_P.
6966 (gather_blocks_in_sese_region): New.
6967 (struct move_stmt_d): Declare.
6969 (move_block_to_fn): New.
6970 (move_sese_region_to_fn): New.
6972 * passes.c (init_optimization_passes): Schedule
6973 pass_expand_omp after pass_init_datastructures.
6975 * tree-ssa-operands.c (get_expr_operands): Handle
6976 OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
6977 OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
6979 2006-01-19 Jeff Law <law@redhat.com>
6981 * tree-vrp.c (extract_range_from_assert): Refine the result range
6982 if the variable referenced by the ASSERT_EXPR has a range and
6983 either the tentative result range or the previous range is a
6986 2006-01-19 Richard Sandiford <richard@codesourcery.com>
6988 * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
6990 2006-01-19 Jan Hubicka <jh@suse.cz>
6992 * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
6994 2006-01-19 Paolo Bonzini <bonzini@gnu.org>
6996 * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
6997 (expand_compound_operation, expand_field_assignment): Fail if the
6998 bit lengths of an extract operation are out of range.
6999 (make_extraction): Compute wanted_inner_mode based on the position
7000 and length of the extraction. Make it extraction_mode for non-constant
7001 positions, and do not modify offset in that case. When generating a
7002 new MEM, use a mode that can hold the extraction while keeping correct
7003 alignment. Remove code that supported MEMs wrapped by USEs.
7004 (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
7006 2006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
7008 * config/s390/s390.md ("Y", "y"): New mode attribute.
7009 ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
7010 "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
7011 "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
7012 "*addsi3_imm_cc", "*addsi3_carry1_cc",
7013 "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
7014 "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
7015 "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
7016 "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
7017 "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
7018 "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
7019 "addsi3", "subsi3"): Insn patterns removed.
7020 ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
7021 "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
7022 "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
7023 "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
7024 "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
7025 "*sub<mode>3_cconly2"): New insn patterns.
7026 ("addsi3", "subsi3"): New expanders.
7028 2006-01-19 Dorit Nuzman <dorit@il.ibm.com>
7030 * Makefile.in (tree-vect-patterns.o): Add rule for new file.
7031 * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
7032 existing STMT_VINFO_VECTYPE if available.
7033 (vect_mark_relevant): Add special handling for stmts that are
7034 marked as STMT_VINFO_IN_PATTERN_P.
7035 (vect_analyze_loop): Call vect_pattern_recog.
7036 * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
7037 * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
7039 (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
7040 (vect_recog_func_ptr): New function-pointer type.
7041 * tree-vect-patterns.c: New file.
7042 (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
7043 (vect_recog_dot_prod_pattern, vect_pattern_recog):
7044 (vect_pattern_recog_1): New functions.
7045 (vect_pattern_recog_funcs): New array of function pointers.
7047 * tree-vectorizer.h (ternary_op): New enum value.
7048 * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
7049 declaration. Revised documentation. Removed redundant dump prints.
7050 Removed redundant argument. Added support for reduction patterns.
7051 (vectorizable_reduction): Added support for reduction patterns.
7052 (vect_transform_stmt): Added support for patterns.
7054 * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
7055 * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
7056 * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
7057 (expand_widen_pattern_expr): New function.
7058 (init_optabs): Initialize new optabs udot_prod_optab,
7060 * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
7061 (sdot_prod_optab, udot_prod_optab): Define new optabs.
7062 (expand_widen_pattern_expr): New function declaration.
7063 * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
7065 * tree-inline.c (estimate_num_insns_1): Added cases for new
7066 tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
7067 * tree-pretty-print.c (dump_generic_node): Likewise.
7068 (op_prio): Likewise.
7069 (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
7070 * tree-ssa-operands.c (get_expr_operands): Added case for
7072 * tree-vect-patterns.c (widened_name_p): New function.
7073 (vect_recog_dot_prod_pattern): Added function implementation.
7074 * tree-vect-transform.c (get_initial_def_for_reduction): Added
7075 cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
7076 * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
7077 * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
7079 * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
7080 * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
7081 * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
7082 (init_optabs): Initialize new optabs widen_ssum_optab,
7084 * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
7085 (widen_ssum_optab, widen_usum_optab): Define new optabs.
7086 * tree-vect-generic.c: (expand_vector_operations_1): Check type of
7087 use instead of type of def.
7088 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
7089 function implementation.
7090 * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
7091 widen_ssumv8hi): New.
7093 * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
7096 2006-01-19 Richard Sandiford <richard@codesourcery.com>
7099 * c-decl.c (add_flexible_array_elts_to_size): New function.
7100 (finish_decl): Use it.
7102 2006-01-18 Andrew Pinski <pinskia@physics.uc.edu>
7104 * diagnostic.h: Include options.h.
7105 * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
7106 dependancies for diagnostic.h.
7107 * Makefile.in (DIAGNOSTIC_H): Add options.h.
7109 2006-01-16 Daniel Berlin <dberlin@dberlin.org>
7111 * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
7112 (ssa_ro_call_cache_valid): Ditto.
7113 * tree-ssa-alias.c (sort_tags_by_id): New function.
7114 (init_transitive_clobber_worklist): Ditto.
7115 (add_to_worklist): Ditto.
7116 (mark_aliases_call_clobbered): Ditto.
7117 (compute_tag_properties): Ditto.
7118 (set_initial_properties): Ditto.
7119 (compute_call_clobbered): Ditto.
7120 (compute_may_aliases): Call compute_call_clobbered and grouping.
7121 (compute_flow_sensitive_aliasing): Remove clobbering related code.
7122 (compute_flow_insensitive_aliasing): Grouping now happens in our
7124 (setup_pointers_and_addressables): Remove clobbering related code.
7125 (add_may_alias): Ditto.
7126 (replace_may_alias): Ditto.
7127 (get_nmt_for): Ditto.
7128 (create_global_var):
7129 (is_escape_site): Return an escape_type enumeration.
7130 * tree-flow-inline.h (is_call_clobbered): Global var does not
7131 imply call clobbered.
7132 (mark_call_clobbered): Take a reason for marking this. Remove
7133 marking of globalness, and cache invalidation.
7134 (clear_call_clobbered): Remove cache invalidation code.
7135 * tree-dfa.c (dump_variable): If details is on, dump the reason
7137 * tree-outof-ssa.c (create_temp): Copy escape mask from original
7139 * tree-flow.h (struct ptr_info_def): Add escape mask member.
7140 (struct var_ann_d): Ditto.
7141 (enum escape_type): New.
7142 (mark_call_clobbered): Adjust prototype.
7143 * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
7144 are never call clobbered.
7145 Record reasons for escaping.
7146 * tree-ssa-structalias.h (is_escape_site): Update prototype.
7147 * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
7148 (ssa_ro_call_cache_valid): Ditto.
7149 (clobbered_v_may_defs): Ditto.
7150 (clobbered_vuses): Ditto.
7151 (ro_call_vuses): Ditto.
7152 (clobber_stats): New.
7153 (init_ssa_operands): Zero out clobber stats.
7154 (fini_ssa_operands): Print out clobber stats.
7155 (get_call_expr_operands): Pass callee fndecl to
7157 (add_call_clobber_ops): Remove use of cache.
7158 Add use of PURE_CONST information.
7159 (add_call_read_ops): Remove use of cache.
7160 Add use of static not_read information.
7162 2006-01-18 Alexandre Oliva <aoliva@redhat.com>
7164 Introduce TLS descriptors for i386 and x86_64.
7165 * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
7166 (TARGET_ANY_GNU_TLS): New macro.
7167 (enum tls_dialect): Added TLS_DIALECT_GNU2.
7168 (struct machine_function): Add tls_descriptor_call_expanded_p.
7169 (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
7170 (ix86_current_function_calls_tls_descriptor): Likewise.
7171 * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
7172 (override_options): Introduce gnu2 tls dialect.
7173 (ix86_frame_pointer_required): Functions containing TLSCALLs are
7175 (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
7177 (legitimize_tls_address): Adjust logic for GNU2 TLS.
7178 (ix86_init_machine_status): Initialize new field.
7179 (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
7180 (ix86_tls_module_base): New.
7181 * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
7182 * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
7183 (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
7184 (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
7185 (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
7186 (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
7187 (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
7188 (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
7189 * config/i386/predicates.md (tls_modbase_operand): New.
7190 (tp_or_register_operand): New.
7192 2006-01-18 Daniel Berlin <dberlin@dberlin.org>
7194 * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
7195 (look_for_address_of): Ditto.
7196 (ipa_init): Walk the function decls.
7197 (static_execute): Don't set readonly on FUNCTION_DECL's.
7199 2006-01-18 Roger Sayle <roger@eyesopen.com>
7201 * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
7202 for shifts where the source and destination registers are different.
7204 2006-01-18 Paul Brook <paul@codesourcery.com>
7206 Merge from csl-arm-branch.
7207 2005-03-14 Julian Brown <julian@codesourcery.com>
7208 * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
7209 (aeabi_llsl): Likewise.
7210 (ashrdi3): Likewise.
7211 (aeabi_lasr): Likewise.
7212 (lshrdi3): Likewise.
7213 (aeabi_llsr): Likewise.
7214 2005-03-10 Julian Brown <julian@codesourcery.com>
7215 * config.gcc: Disable shared libgcc for SymbianOS.
7216 * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
7218 2006-01-18 DJ Delorie <dj@redhat.com>
7220 * c-pragma.c (handle_pragma_diagnostic): New.
7221 (init_pragma): Register it.
7222 * doc/extend.texi: Document it.
7224 * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
7225 * diagnostic.h (diagnostic_classify_diagnostic): Declare.
7226 (diagnostic_context): Add classify_diagnostic[].
7227 * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
7228 as errors if they're overridden to DK_WARNING.
7229 (diagnostic_initialize): Initialize classify_diagnostic[].
7230 (diagnostic_set_kind_override): New.
7231 (diagnostic_report_diagnostic): Check for kind changes.
7232 * opts.c (common_handle_option): Take lang_mask. Update callers.
7234 * common.opt (Werror=): New.
7235 * doc/invoke.texi: Document -Werror=*
7237 2006-01-18 Jeff Law <law@redhat.com>
7239 * tree-vrp.c (test_for_singularity): Correct test for new
7240 min limit. Use operand_equal_p rather than pointer equality
7241 for testing if new min/max values are equal.
7243 * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
7244 using range information until after propagation and folding.
7246 2006-01-18 Richard Henderson <rth@redhat.com>
7247 Aldy Hernandez <aldyh@redhat.com>
7248 Jakub Jelinek <jakub@redhat.com>
7249 Diego Novillo <dnovillo@redhat.com>
7251 * omp-low.c: New file.
7252 * c-omp.c: New file.
7254 2006-01-18 Richard Henderson <rth@redhat.com>
7255 Jakub Jelinek <jakub@redhat.com>
7256 Diego Novillo <dnovillo@redhat.com>
7258 * doc/invoke.texi: Document -fopenmp.
7259 * tree-dump.h (debug_function): Declare.
7260 * hooks.c (hook_bool_tree_bool_false): New function.
7261 (hook_tree_tree_null): Remove.
7262 (hook_tree_tree_tree_null): New.
7263 * hooks.h: Update to match.
7264 * tree-pretty-print.c (debug_tree_chain): New.
7265 (print_generic_expr): Handle TDF_CHAIN.
7266 (dump_generic_node): Handle BLOCK.
7267 Do not abort with incomplete SWITCH_EXPRs.
7268 Do not dump body of an OpenMP directive if TDF_SLIM is given.
7269 <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
7270 print space after directive name.
7271 <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
7272 Handle OMP_MASTER and OMP_ORDERED.
7273 Handle printing of OMP_BODY just in one place, goto
7274 dump_omp_body in the rest of OMP_* nodes that have
7276 Don't handle clause nodes here. Update omp statements to
7277 use dump_omp_clauses.
7278 Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
7279 OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
7280 OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
7281 GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
7282 GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
7283 GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
7284 Adjust output for GOMP_PARALLEL.
7285 (dump_omp_clauses): New.
7286 (print_declaration): Dump DECL_VALUE_EXPR.
7287 (op_symbol_1): Split out of op_symbol.
7288 (dumping_stmts): Remove. Update all users.
7289 * cgraph.c (cgraph_analyze_queue): New.
7290 (cgraph_add_new_function): New.
7291 * cgraph.h (cgraph_analyze_queue): Declare.
7292 (cgraph_add_new_function): Declare.
7293 (cgraph_lower_function): Remove.
7294 * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
7295 nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
7296 and TYPE_P nodes in its default clause.
7297 (empty_body_p): New.
7298 (tree_range_check_failed): New.
7300 * tree.h (OMP_CLAUSE_REDUCTION_INIT,
7301 OMP_CLAUSE_REDUCTION_MERGE,
7302 OMP_CLAUSE_REDUCTION_PLACEHOLDER,
7303 OMP_CLAUSE_PRIVATE_DEBUG,
7304 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
7305 OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
7306 OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
7307 OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
7308 OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
7309 OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
7310 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
7311 OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
7312 OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
7313 OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
7314 OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
7315 OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
7316 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
7317 OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
7318 (TREE_RANGE_CHECK): New.
7319 (empty_body_p): Declare.
7320 (enum omp_clause_default_kind): New.
7321 (build_string_literal): Declare.
7322 (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
7323 (build5_stat, build5): Declare.
7324 * tree-pass.h (TDF_CHAIN): Define.
7325 * tree-pass.h (PROP_gimple_lomp): Define.
7326 (pass_lower_omp): Declare.
7327 * diagnostic.h (debug_tree_chain): Declare.
7328 * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
7330 (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
7331 * builtins.c (build_string_literal): Make extern.
7332 * gcc.c (include_spec_function): New.
7333 (static_spec_functions): Add it.
7334 (main): Move load of libgomp.spec ...
7335 (LINK_COMMAND_SPEC): ... here.
7336 (link_gomp_spec): New.
7337 (static_specs): Include it.
7338 (LINK_COMMAND_SPEC): Add link_gomp.
7339 (GOMP_SELF_SPECS): New.
7340 (driver_self_specs): Include it.
7341 (switch_matches): Don't mark inline.
7342 (main): Load libgomp.spec.
7343 * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
7344 OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
7345 and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
7346 * tree-gimple.h (enum omp_parallel): Declare.
7347 (determine_parallel_type): Declare.
7348 (omp_firstprivatize_variable): Declare.
7349 (omp_reduction_init): Declare.
7350 (diagnose_omp_structured_block_errors): Declare.
7351 (struct walk_stmt_info): Add want_return_expr.
7352 (struct walk_stmt_info): Add want_bind_expr, want_locations.
7353 (find_omp_clause): Declare.
7354 (insert_field_into_struct): Declare.
7355 (struct walk_stmt_info): Move from tree-nested.c
7356 (walk_stmts): Declare.
7357 * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
7359 * cgraphunit.c (cgraph_lower_function): Make static.
7360 (cgraph_finalize_pending_functions): New.
7361 (cgraph_finalize_function): Call it.
7362 (cgraph_finalize_compilation_unit): Likewise.
7363 * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
7364 BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
7365 (BT_FN_UINT_UINT): New.
7366 (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
7367 DEF_FUNCTION_TYPE_VAR_4): Document.
7368 (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
7369 BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
7370 BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
7371 BT_FN_VOID_OMPFN_PTR_UINT_UINT,
7372 BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
7373 BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
7374 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
7375 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
7376 * builtins.def: Update DEF_BUILTIN comment to include COND argument.
7377 Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
7378 into separate files.
7379 (DEF_GOMP_BUILTIN): New.
7380 (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
7381 BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
7382 BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
7383 BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
7384 BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
7385 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
7386 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
7387 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
7388 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
7389 BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
7390 BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
7391 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
7392 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
7393 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
7394 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
7395 BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
7396 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
7397 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
7398 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
7399 BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
7400 BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
7401 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
7402 BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
7403 BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
7404 BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
7405 BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
7406 * sync-builtins.def: New file, moved from builtins.def.
7407 * omp-builtins.def: New file, moved from builtins.def.
7408 * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
7409 * gimple-low.c (lower_function_body): Clear data.
7410 (lower_stmt): Do not handle COMPOUND_EXPR.
7411 Remove call to print_node_brief.
7412 * c-tree.h (c_finish_omp_clauses): New prototype.
7413 (C_DECL_THREADPRIVATE_P): Define.
7414 (lookup_name_no_remap, c_omp_remap_private): Remove
7415 (c_begin_omp_parallel, c_finish_omp_parallel): Update.
7416 (check_for_loop_decls): Update decl.
7417 (lookup_name_no_remap, c_omp_remap_private): Declare.
7418 (build_indirect_ref, build_modify_expr, pushdecl,
7419 pushdecl_top_level): Move to c-common.h.
7420 * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
7421 before the switch, but just in the 2 places that need it.
7422 * c-decl.c (diagnose_mismatched_decls): Do not check for
7423 mismatched thread-local attributes when OLDDECL is marked
7424 threadprivate and NEWDECL has no thread-local attributes.
7425 (merge_decls): Merge C_DECL_THREADPRIVATE_P.
7426 (c_gimple_diagnostics_recursively): Rename from
7427 c_warn_unused_result_recursively. Invoke
7428 diagnose_omp_structured_block_errors.
7429 (check_for_loop_decls): Return a singular decl found.
7430 * langhooks.c (lhd_omp_predetermined_sharing): Return
7431 OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
7432 (lhd_omp_firstprivatize_type_sizes): New.
7433 (lhd_omp_assignment): New.
7434 (lhd_omp_predetermined_sharing): New.
7435 * langhooks.h (struct gimplify_omp_ctx): Forward declare.
7436 (struct lang_hooks_for_types): Add
7437 omp_firstprivatize_type_sizes, omp_privatize_by_reference,
7438 omp_predetermined_sharing, omp_disregard_value_expr,
7439 omp_private_debug_clause, omp_clause_default_ctor,
7440 omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
7441 (c_finish_omp_clauses): New.
7442 (c_finish_bc_stmt): Diagnose break within omp for.
7443 (c_begin_omp_parallel, c_finish_omp_parallel): New.
7444 (build_unary_op): Return error_mark after reporting
7446 (build_modify_expr): Likewise.
7447 * gimplify.c: Include optabs.h and pointer-set.h.
7448 (enum gimplify_omp_var_data): Declare.
7449 (struct gimplify_omp_ctx): Declare.
7450 (struct gimplify_ctx): Add fields prev_context, combined_pre_p
7452 (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
7453 (push_gimplify_context, pop_gimplify_context): Allow nesting.
7454 (splay_tree_compare_decl_uid): New.
7455 (new_omp_context): New.
7456 (delete_omp_context): New.
7457 (gimple_add_tmp_var): Call omp_add_variable.
7458 (gimplify_bind_expr): Likewise.
7459 (gimplify_var_or_parm_decl): If omp_notice_variable returned
7460 true, disregard DECL_VALUE_EXPR on the decl if any.
7461 (gimplify_expr_in_ctx): New.
7462 (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
7463 omp_add_variable, omp_notice_variable, omp_is_private
7464 gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
7465 gimplify_adjust_omp_clauses, gimplify_omp_parallel
7466 gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
7467 gimplify_omp_atomic_fetch_op, goa_stabilize_expr
7468 gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
7469 gimplify_omp_atomic): New.
7470 (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
7471 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
7472 OMP_CRITICAL and OMP_ATOMIC.
7473 (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
7474 * c-pragma.h (enum pragma_kind): Add
7475 PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
7476 PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
7477 PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
7478 PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
7479 PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
7480 PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
7481 PRAGMA_OMP_THREADPRIVATE.
7482 * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
7483 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
7484 OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
7485 OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
7486 OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
7487 OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
7488 OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
7489 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
7490 OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
7491 * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
7492 * tree-ssa-dce.c (find_control_dependence): Do not assume that
7493 ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
7494 * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
7496 (struct nesting_info): Add field_map,
7497 suppress_expansion, debug_var_chain.
7498 (create_nesting_tree): Initialize them.
7499 (lookup_field_for_decl): Use field_map.
7500 (get_nonlocal_debug_decl, get_local_debug_decl): New.
7501 (convert_local_omp_clauses): New.
7502 (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
7503 (walk_body): Split out of walk_function.
7504 (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
7505 (convert_nonlocal_reference): Handle omp statements.
7506 (convert_local_reference): Likewise.
7507 (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
7508 (unnest_nesting_tree): New.
7509 (lower_nested_functions): Call it.
7510 (insert_field_into_struct): Make extern.
7511 (struct walk_stmt_info): Move to tree-gimple.h.
7512 (walk_stmts): Make extern.
7513 * omp-builtins.def: New file.
7514 * tree-iterator.c (expr_only): Clarify comment.
7515 * c-common.h (pushdecl_top_level, pushdecl,
7516 build_modify_expr, build_indirect_ref,
7517 c_finish_omp_master, c_finish_omp_critical,
7518 c_finish_omp_ordered, c_finish_omp_barrier,
7519 c_finish_omp_atomic, c_finish_omp_flush,
7520 c_finish_omp_for, c_split_parallel_clauses,
7521 omp_clause_default_kind, c_omp_sharing_predetermined,
7522 c_omp_remap_decl): Declare.
7523 * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
7524 (OBJS-common): Add omp-low.o.
7525 (c-omp.o, omp-low.o): Add.
7526 (gimplify.o): Add dependency on $(OPTABS_H).
7527 (GTFILES): Add omp-low.c.
7528 (gt-stringpool.h): Add.
7529 * tree-cfg.c (set_bb_for_stmt): Do not update the
7530 block-to-labels map if we are currently expanding to RTL.
7531 (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
7533 Handle IDENTIFIER_NODE.
7534 (tree_verify_flow_info): Do not ICE when emitting error
7535 messages about invalid labels.
7536 (dump_function_to_file): Reset CFUN before emitting the body
7538 (debug_function): New.
7539 * passes.c (init_optimization_passes): Schedule
7541 * langhooks-def.h (lhd_omp_predetermined_sharing,
7542 lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
7544 (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
7545 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
7546 (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
7547 LANG_HOOKS_OMP_PREDETERMINED_SHARING,
7548 LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
7549 LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
7550 LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
7551 LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
7552 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
7553 LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
7554 (LANG_HOOK_DECLS): Use them.
7556 2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
7557 Richard Henderson <rth@redhat.com>
7558 Jakub Jelinek <jakub@redhat.com>
7559 Diego Novillo <dnovillo@redhat.com>
7561 * c-parser.c (pragma_omp_clause): Define.
7562 (c_parser_declaration_or_fndef): Document OpenMP syntax.
7563 (c_parser_compound_statement): Likewise.
7564 (c_parser_statement): Likewise.
7565 (c_parser_pragma): Handle omp pragmas.
7566 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
7567 OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
7568 (c_parser_omp_clause_name, check_no_duplicate_clause,
7569 c_parser_omp_variable_list,
7570 c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
7571 c_parser_omp_clause_copyprivate,
7572 c_parser_omp_clause_default,
7573 c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
7574 c_parser_omp_clause_lastprivate,
7575 c_parser_omp_clause_nowait,
7576 c_parser_omp_clause_num_threads,
7577 c_parser_omp_clause_ordered, c_parser_omp_clause_private,
7578 c_parser_omp_clause_reduction,
7579 c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
7580 c_parser_omp_all_clauses, c_parser_omp_structured_block,
7581 c_parser_omp_atomic, c_parser_omp_barrier,
7582 c_parser_omp_critical, c_parser_omp_flush,
7583 c_parser_omp_for_loop, c_parser_omp_for,
7584 c_parser_omp_master, c_parser_omp_ordered,
7585 c_parser_omp_sections_scope, c_parser_omp_sections,
7586 c_parser_omp_parallel, c_parser_omp_single,
7587 c_parser_omp_construct, c_parser_omp_threadprivate): New.
7588 * c-pragma.c (init_pragma): Do omp pragma registration here.
7589 * c.opt (fopenmp): New flag.
7591 2006-01-18 Eric Christopher <echristo@apple.com>
7593 * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
7594 * config/darwin.h (GOMP_SELF_SPECS): Define.
7596 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
7598 * rtl.h: Remove the prototype for reg_alloc.
7600 2006-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7603 * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
7604 hppa[12]*-*-hpux11*): Override default shared libgcc version for both
7605 sjlj and dwarf2 exception handling.
7606 * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
7607 Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
7608 * pa/pa.c (function_value): Treat complex and vector types as
7610 (function_arg): Likewise. Only pass scalar floats in the floating
7611 point argument registers.
7612 * pa/t-slibgcc-dwarf-ver: New file.
7613 * pa/t-slibgcc-sjlj-ver: New file.
7614 * pa/t-slibgcc-elf-ver: Delete file.
7616 2006-01-19 Alan Modra <amodra@bigpond.net.au>
7618 * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
7619 unlikely_test_section_p test.
7621 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
7623 * mode-switching.c (optimize_mode_switching): Make it static.
7624 * basic-block.h: Remove the prototype for
7625 optimize_mode_switching.
7627 * modulo-sched.c (sms_schedule): Make it static.
7628 * rtl.h: Remove the prototype for sms_schedule.
7630 * postreload-gcse.c (gcse_after_reload_main): Make it static.
7631 * rtl.h: Remove the prototype for gcse_after_reload_main.
7633 * reg-stack.c (reg_to_stack): Make it static.
7634 * rtl.h: Remove the prototype for reg_to_stack.
7636 * regrename.c (regrename_optimize, copyprop_hardreg_forward):
7638 * rtl.h: Remove the prototypes for regrename_optimize and
7639 copyprop_hardreg_forward.
7641 2006-01-18 Eric Botcazou <ebotcazou@adacore.com>
7643 * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
7644 alpha_split_tmode_pair. Add 'mode' and 'fixup_overlap' arguments.
7645 Test against the appropriate null constant for the mode.
7646 If 'fixup_overlap' is true, swap the operands if they overlap.
7647 (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
7648 * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
7649 alpha_split_tmode_pair and adjust for above change.
7650 * config/alpha/alpha.md (movtf_internal): Adjust call to
7651 alpha_split_tfmode_pair and rely on it to swap the operands.
7652 (movti_internal): New insn and post-reload splitter.
7653 (movti): New expander.
7655 2006-01-18 Philippe De Muyter <phdm@macqel.be>
7657 * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
7660 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
7662 * rtlanal.c (global_reg_mentioned_p_1,
7663 global_reg_mentioned_p): Remove.
7664 * rtl.h: Remove the prototype for global_reg_mentioned_p.
7666 * flow.c (initialize_uninitialized_subregs): Make it static.
7667 * rtl.h: Remove the prototype for
7668 initialize_uninitialized_subregs.
7670 * function.c (instantiate_virtual_regs): Make it static.
7671 * function.h: Remove the prototype for
7672 instantiate_virtual_regs.
7674 * regmove.c (regmove_optimize, combine_stack_adjustments):
7676 * rtl.h: Remove the prototypes for regmove_optimize and
7677 combine_stack_adjustments.
7679 2006-01-17 Roger Sayle <roger@eyesopen.com>
7681 * config/i386/i386.c (COSTS_N_BYTES): New macro.
7682 (size_cost): Encode costs in bytes so that a reg-reg addition is
7683 equivalent to COSTS_N_INSNS(1).
7684 (override_options): Use the size_cost.branch_cost as the default
7685 ix86_branch_cost when optimizing for size.
7687 2006-01-18 Ben Elliston <bje@au.ibm.com>
7689 * Makefile.in (D32PBIT_FUNCS): New.
7690 (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
7691 (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
7692 D64PBIT_FUNCS and D128PBIT_FUNCS.
7693 (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
7694 * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
7696 (decnumber_dep): Define.
7697 * doc/libgcc.texi (Decimal float library routines): New node.
7698 * config/dfp-bit.h, config/dfp-bit.c: New files.
7700 2006-01-18 Ben Elliston <bje@au.ibm.com>
7702 * expr.c (emit_move_change_mode): Always adjust addresses, not
7703 just during reload. Copy replacements only during reload.
7704 (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
7705 emit_move_via_integer.
7707 2006-01-17 Shantonu Sen <ssen@opendarwin.org>
7709 * Makefile.in (check-%, check-consistency): Use $${srcdir}
7710 instead of $(srcdir) and ${srcdir}.
7712 2006-01-17 Richard Earnshaw <rearnsha@arm.com>
7716 * arm.h (struct machine_function): Add pic_reg.
7717 * arm.c (arm_pic_register): Make unsigned.
7718 (arm_override_options): Only set arm_pic_register if
7719 TARGET_SINGLE_PIC_BASE.
7720 (use_return_insn): Only test for a pic register if it is fixed.
7721 (arm_compute_save_reg0_reg12_mask): Likewise.
7722 (thumb_compute_save_reg_mask): Likewise.
7723 (legitimate_pic_operand): Factor out some known invariants.
7724 (legitimize_pic_address): If we don't have a fixed pic register,
7725 then set up a pseudo in the function entry sequence. Handle the
7726 pic base being in a pseudo.
7727 (arm_load_pic_register): Handle the pic register being in a pseudo.
7728 (arm_expand_prologue): Only set up the pic register if it is fixed.
7729 (thumb_expand_prologue): Likewise.
7730 * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
7731 (pic_load_addr_based_insn): Likewise.
7732 (builtin_setjmp_receiver): Don't restore the pic base if it isn't
7735 2006-01-18 Ben Elliston <bje@au.ibm.com>
7737 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
7738 decimal float modes for all floating point registers.
7740 * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
7741 match_code "mem" with match_test "macho_lo_sum_memory_operand".
7743 2006-01-17 Jakub Jelinek <jakub@redhat.com>
7746 * c-typeck.c (build_unary_op): Fold offsetof-like expressions
7747 even when the pointer is not NULL.
7749 2006-01-16 Ian Lance Taylor <ian@airs.com>
7751 * common.opt (ftoplevel-reorder): New option.
7752 * cgraph.c (cgraph_asm_nodes): New global variable.
7753 (cgraph_asm_last_node): New static variable.
7754 (cgraph_order): New global variable.
7755 (cgraph_create_node): Set new order field.
7756 (cgraph_varpool_node): Likewise.
7757 (decide_is_variable_needed): Return true if not
7758 flag_toplevel_reorder.
7759 (cgraph_add_asm_node): New function.
7760 * cgraph.h (struct cgraph_node): Add order field.
7761 (struct cgraph_varpool_node): Add order field.
7762 (struct cgraph_asm_node): Define.
7763 (cgraph_asm_nodes, cgraph_order): Declare.
7764 (cgraph_add_asm_node): Declare.
7765 * cgraphunit.c (cgraph_varpool_assemble_decl): New static
7767 (cgraph_varpool_assemble_pending_decls): Call it.
7768 (cgraph_output_pending_asms): New static function.
7769 (cgraph_finalize_compilation_unit): Call it.
7770 (struct cgraph_order_sort): Define.
7771 (cgraph_output_in_order): New static function.
7772 (cgraph_optimize): Call cgraph_output_pending_asms. Add code for
7773 !flag_toplevel_reorder case.
7774 * c-parser.c: Include "cgraph.h".
7775 (c_parser_asm_definition): Call cgraph_add_asm_node rather than
7777 * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
7778 than -fno-unit-at-a-time.
7779 * doc/invoke.texi (Option Summary): Mention
7780 -fno-toplevel-reorder.
7781 (Optimize Options): Document -fno-toplevel-reorder. Mention it in
7782 -funit-at-a-time documentation.
7784 2006-01-17 Hans-Peter Nilsson <hp@axis.com>
7785 Kazu Hirata <kazu@codesourcery.com>
7787 * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
7789 2006-01-17 Kazu Hirata <kazu@codesourcery.com>
7791 * Makefile.in (FUNCTION_H): New. Use it instead of
7792 function.h throughout the file.
7793 * function.h: Include tree.h.
7795 2006-01-17 Ben Elliston <bje@au.ibm.com>
7797 * recog.c: Separate some functions with whitespace.
7799 2006-01-16 Richard Henderson <rth@redhat.com>
7801 Merge from gomp branch:
7802 * Makefile.in (TREE_INLINE_H): New. Use it as needed.
7803 * tree-inline.h (struct copy_body_data): Move from tree-inline.c
7804 and rename from struct inline_data. Rename callee* to dst*;
7805 caller* to src*; add copy_decl hook, transform_call_graph_edges,
7806 transform_new_cfg, transform_return_to_modify, and
7807 transform_lang_insert_block flags; remove cloning_p, versioning_p,
7809 (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
7810 (copy_decl_for_dup): Remove.
7811 * tree-inline.c (struct inline_data): Move to header.
7812 (insert_decl_map): Export.
7813 (remap_decl): Update for member name changes. Use copy_decl hook.
7814 Allow for replacement to be a non-decl. Remove dead code.
7815 (remap_type_1): Check for existing mapping.
7816 (remap_type): Export.
7817 (remap_decls): Update for member name changes.
7818 (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
7819 (copy_body, setup_one_parameter, declare_return_variable): Likewise.
7820 (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
7821 (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
7822 (tree_function_versioning, build_duplicate_type): Likewise.
7823 (copy_body_r): Likewise. Export.
7824 (copy_decl_for_dup): Split into ...
7825 (copy_decl_for_dup_finish, copy_decl_to_var,
7826 copy_decl_no_change, copy_decl_maybe_to_var): ... these.
7827 (replace_ref_tree, inlining_p): Remove.
7829 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
7831 * ifcvt.c (if_convert): Make it static.
7832 * rtl.h: Remove the prototype for if_convert.
7834 * local-alloc.c (local_alloc): Make it static.
7835 * rtl.h: Remove the prototype for local_alloc.
7837 * loop.c (loop_optimize): Make it static.
7838 * cfgloop.h: Remove the prototype for loop_optimize.
7841 2006-01-16 DJ Delorie <dj@redhat.com>
7843 * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
7846 2006-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7848 * pa.md: Disparage copies between general and floating-point registers
7849 in 32-bit move patterns.
7851 2006-01-16 H.J. Lu <hongjiu.lu@intel.com>
7854 * Makefile.in (check-%): Depend on site.exp instead of
7855 $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
7858 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
7860 * global.c (global_alloc): Make it static.
7861 * rtl.h: Remove the prototype for global_alloc.
7863 2006-01-16 Richard Guenther <rguenther@suse.de>
7865 * tree-ssa-alias.c (struct used_part): Add write_only field.
7866 (get_or_create_used_part_for): Initialize it to true.
7867 (create_overlap_variables_for): Don't create structure variables
7868 for structures that only are written to.
7869 (find_used_portions): Handle MODIFY_EXPR to track whether a
7870 structure is only written to.
7872 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
7874 * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
7876 * basic-block.h: Remove the prototype for
7877 partition_hot_cold_basic_blocks.
7879 2006-01-16 Rafael Ãvila de EspÃ�ndola <rafael.espindola@gmail.com>
7881 * cppspec.c (lang_specific_spec_functions): Remove.
7882 * gcc.c (lookup_spec_function): Use static_spec_functions directly.
7883 * gcc.h (lang_specific_spec_functions): Remove.
7884 * gccspec.c (lang_specific_spec_functions): Remove.
7886 2006-01-16 Paolo Bonzini <bonzini@gnu.org>
7888 * combine.c (record_value_for_reg): Invalidate registers
7890 (record_dead_and_set_regs_1): Likewise, by passing them to
7891 record_value_for_reg.
7892 (record_dead_and_set_regs): Invalidate stores made by a
7893 call. We do not combine across a call, but we still
7894 relied on equivalences.
7896 2006-01-16 Eric Botcazou <ebotcazou@adacore.com>
7898 * tree-vrp.c (extract_range_from_binary_expr): Cope with
7899 vrp_int_const_binop returning non-constant nodes.
7901 2006-01-16 Paul Brook <paul@codesourcery.com>
7903 * config/m68k/m68k.c (output_move_const_into_data_reg):
7904 Output correct mnemonic for mvz and mvs.
7906 2006-01-16 Gabor Loki <loki@gcc.gnu.org>
7908 * rtl-factoring.c: Add sequence abstraction algorithm.
7909 * cfgcleanup.c (outgoing_edges_match): Extra checks.
7910 (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
7912 (block_has_preserve_label): New function.
7913 * common.opt: Register new pass.
7914 * Makefile.in: Ditto.
7916 * timevar.def: Ditto.
7917 * tree-pass.h: Ditto.
7918 * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
7919 * rtl.h (make_jump_insn_raw): Add forward decl.
7920 * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
7922 2006-01-16 Eric Botcazou <ebotcazou@adacore.com>
7923 Roger Sayle <roger@eyesopen.com>
7925 * fold-const.c (fold_minmax): New static function.
7926 (fold_binary) <MIN_EXPR>: Call it.
7927 <MAX_EXPR>: Likewise.
7928 * stor-layout.c (place_field): Use DECL_SIZE consistently
7929 in the computation of the new record size.
7931 2006-01-16 Kazu Hirata <kazu@codesourcery.com>
7933 * cse.c (cse_condition_code_reg): Make it static.
7934 * rtl.h: Remove the prototype for cse_condition_code_reg.
7936 * combine.c (combine_instructions): Make it static.
7937 * rtl.h: Remove the prototype for combine_instructions.
7939 2006-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7942 * tree.c (get_file_function_name_long): Concatenate the first global
7943 object name with a string derived from the input filename of the object
7946 2006-01-16 Ben Elliston <bje@au.ibm.com>
7948 * config/i386/winnt-stubs.c: Update FSF address.
7949 * config/xtensa/ieee754-df.S: Ditto.
7950 * config/xtensa/ieee754-sf.S: Ditto.
7952 2006-01-14 Ian Lance Taylor <ian@airs.com>
7954 * ifcvt.c (noce_init_if_info): New static function, broken out of
7955 noce_process_if_block.
7956 (noce_process_if_block): Call noce_init_if_info.
7957 (check_cond_move_block): New static function.
7958 (cond_move_process_if_block): New static function.
7959 (process_if_block): Call cond_move_process_if_block.
7961 2006-01-15 Kazu Hirata <kazu@codesourcery.com>
7963 * cselib.c (hash_table): Rename to cselib_hash_table.
7964 (cselib_clear_table, discard_useless_values,
7965 remove_useless_values, cselib_lookup_mem, cselib_lookup,
7966 cselib_init, cselib_finish): Adjust uses of hash_table.
7968 2006-01-14 Kazu Hirata <kazu@codesourcery.com>
7970 PR tree-optimization/25485
7971 * tree-vrp.c (extract_range_from_binary_expr): Handle cases
7972 where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
7973 is known to be false and true, respectively.
7975 2006-01-14 Richard Guenther <rguenther@suse.de>
7977 PR tree-optimization/22548
7978 PR tree-optimization/22555
7979 PR tree-optimization/22501
7980 * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
7981 * params.def (salias-max-array-elements): New parameter.
7982 * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
7983 * doc/invoke.texi (salias-max-array-elements): Document.
7984 * tree-flow-inline.h (var_can_have_subvars): We also handle
7986 * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
7988 * tree-ssa-structalias.c (params.h): Include.
7989 (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
7990 (find_func_aliases): Handle multiple constraints from ARRAY_REF.
7991 (get_constraint_for): For ADDR_EXPR operating on something
7992 containing an ARRAY_REF, add all subvars to the solution.
7993 (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
7994 * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
7995 for creating MUST_DEFs.
7996 (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
7998 2006-01-14 Zdenek Dvorak <dvorakz@suse.cz>
8000 * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
8002 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
8003 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
8004 number_of_iterations_le): New functions.
8005 (number_of_iterations_special): Removed.
8006 (number_of_iterations_exit): Do not use number_of_iterations_special.
8007 * tree.c (unsigned_type_for): Always return integer type.
8009 2006-01-14 Steven Bosscher <stevenb.gcc@gmail.com>
8010 Richard Guenther <rguenther@suse.de>
8012 PR rtl-optimization/24257
8013 * gcse.c (find_moveable_store): Only consider a store movable
8014 when the SET_SRC of the insn can be assigned to a register.
8016 2006-01-14 Ian Lance Taylor <ian@airs.com>
8018 * tree.c (tree_not_class_check_failed): New function.
8019 * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
8020 (tree_not_class_check_failed): Declare.
8022 2006-01-13 Ian Lance Taylor <ian@airs.com>
8024 * reload1.c (do_output_reload): Add assertion rejecting a
8027 2006-01-13 Adam Nemet <anemet@caviumnetworks.com>
8029 * combine.c (struct reg_stat): Add new fields truncation_label and
8031 (record_value_for_reg): Reset truncated_to_mode.
8032 (record_truncated_value): New function.
8033 (check_promoted_subreg): Call it. Rename to check_conversions.
8034 (combine_instructions): Rename check_promoted_subreg to
8036 (reg_truncated_to_mode): New function.
8037 (make_extraction): Use it. Check TRULY_NOOP_TRUNCATION.
8038 (gen_lowpart_or_truncate): New function.
8039 (force_to_mode): Use it instead of gen_lowpart.
8041 2006-01-13 Diego Novillo <dnovillo@redhat.com>
8043 * tree-ssa-alias.c (add_type_alias): Fix typo. Test whether
8044 VAR is a tag, not its type tag.
8046 2006-01-13 Alexandre Oliva <aoliva@redhat.com>
8048 * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
8049 alternatives to match style of other entries.
8050 (*vec_extractv2di_1_sse): Likewise. Fix mode attr.
8052 2006-01-13 Daniel Berlin <dberlin@dberlin.org>
8054 PR tree-optimization/25771
8055 * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
8058 2006-01-13 Andrew Pinski <pinskia@physics.uc.edu>
8061 * tree-inline.c (declare_return_variable): If the return variable
8062 was marked as a non gimple complex, set the return slot variable
8063 to be a non gimple comple variable.
8065 2006-01-13 Richard Guenther <rguenther@suse.de>
8067 * builtins.c (expand_builtin_sincos): New function.
8068 (expand_builtin_mathfn_3): Remove dead code, sin and cos
8070 (expand_builtin): Expand sincos using expand_builtin_sincos.
8072 2006-01-12 DJ Delorie <dj@redhat.com>
8074 * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
8075 shift counts, separate SI shifts for m32c vs m16c, pass shift type
8076 so that constant shifts can be split.
8077 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
8078 (m32c_valid_pointer_mode): Make static.
8079 (shift_gen_func_for): New.
8080 (m32c_prepare_shift): Use it. Split large const shifts into
8082 * config/m32c/predicates.md (shiftcount_operand): Allow more
8084 (longshiftcount_operand): New.
8085 * doc/md.texi (Machine Constraints): Document In6.
8087 2006-01-13 Ben Elliston <bje@au.ibm.com>
8089 * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
8090 REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
8093 2006-01-12 Daniel Berlin <dberlin@dberlin.org>
8095 * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
8096 to try to avoid clobbering pieces of structures when we know
8097 something about the whole structure.
8098 * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
8100 2006-01-13 Ben Elliston <bje@au.ibm.com>
8102 * doc/rtl.texi (Insns): Remove statement that libcalls cannot
8103 return in memory, as this is no limitation is no longer present.
8105 2006-01-12 DJ Delorie <dj@redhat.com>
8107 * config/m32c/addsub.md (addhi3): Add two more alternatives, for
8108 mova with fb, and for fb+0 -> An.
8110 * config/m32c/mov.md (peephole2): Fix enabling logic.
8112 * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
8113 DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
8114 DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
8115 FINI_ARRAY_SECTION_ASM_OP): Define.
8117 * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
8119 (m32c_legitimize_reload_address): New logic to reload FB to An.
8120 (m32c_output_reg_push): Add newline.
8121 (m32c_output_reg_pop): Likewise.
8123 2006-01-12 Ulrich Weigand <uweigand@de.ibm.com>
8125 * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
8127 2006-01-11 Andrew Pinski <pinskia@physics.uc.edu>
8129 * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
8131 2006-01-11 Kazu Hirata <kazu@codesourcery.com>
8133 * config/sh/predicates.md (sh_rep_vec): Add parallel to
8136 2006-01-11 Ben Elliston <bje@au.ibm.com>
8138 * rtlanal.c (find_reg_note): Assert insn is not null.
8140 2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
8142 * df-scan.c (df_hard_reg_init): Move declaration of i outside
8145 2006-01-11 Jeff Law <law@redhat.com>
8147 * tree-ssa-threadupdate.c (threaded_edges): New VEC to
8149 (mark_threaded_blocks, register_jump_thread): New functions.
8150 (thread_through_all_blocks): Remove unwanted argument. No
8151 longer rely on e->aux to communicate thread target info.
8152 Call mark_threaded_blocks. Release the threaded_blocks
8153 bitmap and threaded_edges vector when complete.
8154 * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
8155 (threaded_blocks): Remove.
8156 (tree_ssa_dominator_optimize): Remove initialization and
8157 finalization of threaded_blocks. Simplify call to
8158 thread_through_all_blocks.
8159 (thread_across_edge): Call register_jump_thread rather than
8160 storing thread information into e->aux.
8161 (free_all_edge_infos): Simplify now that e->aux is no longer
8162 used to communicate with thread_through_all_blocks.
8163 * tree-flow.h (thread_through_all_blocks): Update prototype.
8164 (register_jump_thread): Prototype.
8166 2006-01-11 Kazu Hirata <kazu@codesourcery.com>
8168 * df-core.c (df_compact_blocks, df_bb_replace): Use
8169 SET_BASIC_BLOCK instead of BASIC_BLOCK.
8171 2006-01-11 Richard Guenther <rguenther@suse.de>
8173 PR tree-optimization/25734
8174 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
8175 stop propagation after successful propagation to the LHS.
8177 2006-01-11 Kazu Hirata <kazu@codesourcery.com>
8179 * basic-block.h (control_flow_graph): Change the type of
8180 x_basic_block_info to VEC(basic_block,gc) *.
8181 (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
8183 (SET_BASIC_BLOCK): New.
8184 * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
8185 instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
8186 * cfgbuild.c (find_basic_blocks): Likewise.
8187 * cfglayout.c (fixup_reorder_chain): Likewise.
8188 * cfgrtl.c (create_basic_block_structure,
8189 rtl_create_basic_block): Likewise.
8190 * ifcvt.c (find_if_case_1): Likewise.
8191 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
8194 2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
8196 * Makefile.in: Removed rotted odf.c entry.
8198 2006-01-11 Hans-Peter Nilsson <hp@axis.com>
8201 * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
8202 ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
8203 ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
8204 output pattern modifier, not %e.
8205 * config/cris/cris.c (cris_op_str): Update comment about pattern
8207 (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
8208 before falling through into...
8209 <case 'E'>: Redefined from old 'e' case.
8211 2006-01-11 Jan Hubicka <jh@suse.cz>
8214 * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
8216 2006-01-11 Jan Hubicka <jh@suse.cz>
8218 * i386.h (TARGET_DECOMPOSE_LEA): Kill.
8219 * i386.c (x86_decompose_lea): Kill.
8220 (ix86_rtx_costs): Kill.
8222 2006-01-11 Jan Hubicka <jh@suse.cz>
8224 * cgraph.c (cgraph_insert_node_to_hashtable): New function.
8225 * cgraph.h (cgraph_node): Add inline_decl.
8226 (cgraph_insert_node_to_hashtable): Declare.
8227 (save_inline_function_body): Declare.
8228 * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
8230 (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
8231 (cgraph_function_versioning): Update call of tree_function_versioning.
8232 (save_inline_function_body): New function.
8233 * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
8234 saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
8235 * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
8236 (cgraph_default_inline_p): Likewise.
8237 (cgraph_decide_inlining_incrementally): Likewise.
8238 * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
8239 (copy_bb): Kill saving; do updating of clones.
8240 (copy_cfg_body): Kill saving.
8241 (initialize_inlined-parameters): Likewise.
8242 (expand_call_inline): Likewise.
8244 (tree_function_versioning): New parameter "update_clones".
8245 (inlining_p): Kill saving.
8246 * tree-inline.h (tree_function_versioning): Update prototype.
8247 * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
8250 2006-01-11 Ian Lance Taylor <ian@airs.com>
8252 * combine.c (struct undo): Remove is_int. Enumify types of undos.
8253 Allow undoing set of machine mode.
8254 (do_SUBST): Use enums instead of is_int.
8255 (do_SUBST_MODE): New function.
8256 (SUBST_MODE): New macro.
8257 (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
8258 reg and trying to replace reg_regno_rtx with a new register.
8259 (undo_all): Use new enums, handle undoing a PUT_MODE change.
8260 (simplify_set): Use SUBST_MODE.
8261 (distribute_notes): Remove code that tried to update reg notes
8262 for regno_reg_rtx changes.
8264 2006-01-11 Paolo Bonzini <bonzini@gnu.org>
8266 PR tree-optimization/23109
8267 PR tree-optimization/23948
8268 PR tree-optimization/24123
8270 * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
8271 * tree-cfg.c (single_noncomplex_succ): New.
8272 * tree-flow.h (single_noncomplex_succ): Declare it.
8273 * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
8274 * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
8275 (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
8276 insert_bb, register_division_in, insert_reciprocals,
8277 replace_reciprocal, free_bb): New.
8278 (execute_cse_reciprocals_1): Rewritten.
8279 (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
8280 Do not commit any edge insertion. Always compute dominators and
8281 create the allocation pool.
8282 * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
8283 * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
8284 * targhooks.c (default_min_divistions_for_recip_mul): New.
8285 * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
8286 * passes.c (init_optimization_passes): Run recip after tree loop
8288 * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
8290 2006-01-11 Danny Berlin <dberlin@dberlin.org>
8291 Kenneth Zadeck <zadeck@naturalbridge.com>
8293 * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
8294 DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
8295 DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
8296 DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
8297 DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
8298 DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
8299 DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
8300 DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
8301 DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
8302 DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
8303 DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
8304 DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
8305 DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
8306 DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
8307 DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
8308 DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
8309 DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
8310 DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
8311 DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
8312 DF_SCAN_POST_ALLOC): New macros.
8313 (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
8314 df_free_bb_function, df_local_compute_function, df_init_function,
8315 df_dataflow_function, df_confluence_function_0,
8316 df_confluence_function_n, df_transfer_function,
8317 df_finalizer_function, df_free_function, df_dump_problem_function,
8318 df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
8319 df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
8320 df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
8321 df_urec_bb_info, ) New types.
8322 (df_invalidated_by_call, df_all_hard_regs, df_state) New public
8324 (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
8325 df_analyze_simple_change_some_blocks,
8326 df_analyze_simple_change_one_block, df_compact_blocks,
8327 df_bb_replace, df_bb_regno_last_use_find,
8328 df_bb_regno_first_def_find, df_bb_regno_last_def_find,
8329 df_insn_regno_def_p, df_find_def, df_find_use,
8330 df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
8331 df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
8332 df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
8333 debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
8334 debug_df_chain, df_get_dependent_problem, df_chain_create,
8335 df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
8336 df_grow_bb_info, df_chain_dump, df_print_bb_index,
8337 df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
8338 df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
8339 df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
8340 df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
8341 df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
8342 df_rescan_blocks, df_ref_create, df_get_artificial_defs,
8343 df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
8344 df_ref_remove, df_insn_refs_delete, df_refs_delete,
8345 df_reorganize_refs, df_set_state, df_hard_reg_init,
8346 df_read_modify_subreg_p) New public functions.
8347 * df-core.c: The core dataflow solver and glue routines for rtl
8349 (df_init, df_add_problem, df_set_blocks, df_finish,
8350 df_hybrid_search_forward, df_hybrid_search_backward,
8351 df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
8352 df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
8353 df_bb_regno_last_use_find, df_bb_regno_first_def_find,
8354 df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
8355 df_reg_defined, df_find_use, df_reg_used, df_dump,
8356 df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
8357 df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
8358 debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
8359 debug_df_useno, reset_df_after_reload): New functions.
8360 * df-scan.c: The scanning fuctions, once in df.c, completely
8361 rewritten so that they now fully model the functionality of
8362 register usage at the backend.
8363 (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
8364 df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
8365 df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
8366 df_grow_insn_info, df_rescan_blocks, df_ref_create,
8367 df_get_artificial_defs, df_get_artificial_uses,
8368 df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
8369 df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
8370 df_refs_delete, df_reorganize_refs, df_set_state,
8371 df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
8372 df_def_record_1, df_defs_record, df_uses_record,
8373 df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
8374 df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
8375 df_record_exit_block_uses, df_hard_reg_init): New functions.
8377 * df-problems.c: Seven concrete dataflow problems that use the
8378 scanning in df-scan.c and are solved by the engine in df-core.c.
8379 (df_get_dependent_problem, df_chain_create, df_chain_unlink,
8380 df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
8381 df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
8382 df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
8383 df_ru_free_bb_info, df_ru_alloc,
8384 df_ru_bb_local_compute_process_def,
8385 df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
8386 df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
8387 df_ru_transfer_function, df_ru_free, df_ru_dump,
8388 df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
8389 df_rd_free_bb_info, df_rd_alloc,
8390 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
8391 df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
8392 df_rd_transfer_function, df_rd_free, df_rd_dump,
8393 df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
8394 df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
8395 df_lr_local_compute, df_lr_init, df_lr_confluence_0,
8396 df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
8397 df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
8398 df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
8399 df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
8400 df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
8401 df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
8402 df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
8403 df_urec_mark_reg_change, df_urec_check_earlyclobber,
8404 df_urec_mark_reg_use_for_earlyclobber,
8405 df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
8406 df_urec_local_compute, df_urec_init, df_urec_local_finalize,
8407 df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
8408 df_urec_dump, df_urec_add_problem, df_chain_alloc,
8409 df_chain_create_bb_process_use, df_chain_create_bb,
8410 df_chain_finalize, df_chain_free, df_chains_dump,
8411 df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
8412 df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
8413 df_reg_lifetime): New functions.
8414 * df.c: Deleted file.
8415 * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
8416 consistent with new df api.
8417 * modulo-sched.c (sms_schedule, rest_of_handle_sms,
8418 rest_of_handle_sms): Ditto.
8419 * web.c (unionfind_union, union_defs, entry_register, web_main):
8421 * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
8422 invariant_expr_equal_p, find_defs, check_dependencies,
8423 find_invariant_insn, find_invariants_to_move, move_invariant_reg,
8424 free_inv_motion_data, move_loop_invariants): Ditto.
8425 * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
8426 Update dependencies.
8427 (odf.c): Added defective entry that was deleted later in day.
8428 * sched-deps.c (sched_analyze_1): Ditto.
8430 2006-01-11 Zdenek Dvorak <dvorakz@suse.cz>
8432 * tree-ssa-operands.c (get_expr_operands): Record addressable
8433 variables directly. Do not call add_stmt_operands for CONST_DECLs
8435 (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
8436 (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
8438 2006-01-11 Ben Elliston <bje@au.ibm.com>
8440 * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
8441 function returns true in the positive case.
8443 2006-01-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8446 * config/pa/pa.md: Create separate 32 and 64-bit move patterns
8447 for SI, DI, SF and DF modes. Add alternatives to copy between
8448 general and floating point registers to the 32-bit patterns.
8449 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
8450 * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
8451 (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
8452 generating 64-bit code.
8453 * config/pa/pa.c (output_move_double): Handle copies between general
8454 and floating registers.
8456 2006-01-10 Stuart Hastings <stuart@apple.com>
8458 * config/i386/i386.md (set_got): Update.
8459 (set_got_labelled): New. (UNSPEC_LD_MPIC): New.
8460 (builtin_setjmp_receiver): Mach-O support.
8461 * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
8462 (GOT_SYMBOL_NAME): Define.
8463 (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
8464 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
8465 * config/i386/i386.c (override_options): Revise for Darwin.
8466 (USE_HIDDEN_LINKONCE): Enable for Mach-O. (ix86_file_end): Mach-O
8467 support. (darwin_x86_file_end): New. (output_set_got): Add label
8468 parameter, revise for Mach-O. (x86_output_mi_thunk): Likewise.
8469 * config/i386/i386-protos.h (output_set_got): Likewise.
8470 * config/darwin.c (machopic_legitimize_pic_address): Update
8473 2006-01-10 Kaz Kojima <kkojima@gcc.gnu.org>
8475 * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
8476 when MODE isn't BLKmode.
8478 2006-01-10 Eric Botcazou <ebotcazou@libertysurf.fr>
8480 PR rtl-optimization/25367
8481 * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
8483 2006-01-10 Hans-Peter Nilsson <hp@axis.com>
8486 * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
8487 for a negative bound.
8489 2006-01-10 Richard Guenther <rguenther@suse.de>
8491 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8492 Never override with anything constraint.
8494 2006-01-10 Jan Beulich <jbeulich@novell.com>
8496 * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
8497 256 bits when optimize_size.
8499 2006-01-10 Jan Beulich <jbeulich@novell.com>
8501 * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
8503 * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
8504 * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
8507 2006-01-10 Ben Elliston <bje@au.ibm.com>
8509 * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
8511 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
8512 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8513 (USE_FP_FOR_ARG): Reject decimal float modes.
8514 (function_arg_advance): Likewise.
8515 (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
8516 (rs6000_handle_altivec_attribute): Do not permit decimal floating
8517 point types in AltiVec vectors.
8518 (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
8519 (rs6000_libcall_value): Likewise.
8521 2006-01-09 Bob Wilson <bob.wilson@acm.org>
8523 * config/xtensa/ieee754-df.S: New file.
8524 * config/xtensa/ieee754-sf.S: New file.
8525 * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
8526 (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
8527 * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
8529 2006-01-09 Kazu Hirata <kazu@codesourcery.com>
8531 * config/sh/predicates.md (binary_float_operator,
8532 binary_logical_operator, commutative_float_operator,
8533 equality_comparison_operator, greater_comparison_operator,
8534 less_comparison_operator, logical_operator,
8535 noncommutative_float_operator, shift_operator,
8536 symbol_ref_operand, unary_float_operator): Remove redundant
8539 2006-01-09 Jeff Law <law@redhat.com>
8541 * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
8542 code to propagate the RHS of a cast into COND_EXPR_COND. Remove
8543 now unused arguments. Callers updated.
8544 (eliminate_redundant_computations): Remove now unused arguments,
8546 (local_fold): Remove, no longer used.
8547 (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
8549 * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
8550 (simplify_cond): New function.
8551 (forward_propagate_into_cond): Call simplify_cond.
8553 2006-01-09 Alexandre Oliva <aoliva@redhat.com>
8555 * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
8556 (*vec_extractv2di_1_sse): New.
8558 2006-01-09 Ben Elliston <bje@au.ibm.com>
8560 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
8562 2006-01-08 Richard Guenther <rguenther@suse.de>
8564 * tree-ssa-structalias.c (get_constraint_for): Remove
8566 (get_constraint_for_component_ref): Likewise.
8567 (do_deref): Likewise.
8568 (get_constraint_for): Likewise.
8569 (do_structure_copy): Likewise.
8570 (handle_ptr_arith): Likewise.
8571 (find_func_aliases): Likewise. Remove unused need_anyoffset
8574 2006-01-08 J"orn Rennecke <joern.rennecke@st.com>
8575 Kaz Kojima <kkojima@gcc.gnu.org>
8577 * config/sh/sh.h (CONST_OK_FOR_K16): Define.
8578 (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
8579 (EXTRA_CONSTRAINT_C16): Remove.
8580 (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
8581 (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
8582 EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
8583 * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
8584 constants of SHmedia. Handle nested constant expressions of
8586 (andcosts): Fix the costs for SHmedia constants.
8587 (sh_rtx_costs): Take account of outer_code for SHmedia constants.
8588 * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
8589 (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
8590 (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
8591 (movv4hi_i, movv2si_i): Likewise.
8592 (movsi_const): Adjust the second operand of ior so to match with
8594 (movdi_const, movdi_const_32bit): Likewise.
8595 (movdi_const_16bit+1): Don't sign-extend LOW.
8596 (movdi_const_16bit+2): Likewise. Remove the zero_extend and truncate
8598 (*double_shori): Fix the split condition. Use GEN_INT instead
8599 of get_int_mode calls. Mask lower 16-bit of the argument of
8601 (sym2GOTPLT): Remove.
8602 (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
8604 * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
8605 instead of EXTRA_CONSTRAINT_C16.
8607 2006-01-07 Ian Lance Taylor <ian@airs.com>
8608 David Edelsohn <edelsohn@gnu.org>
8610 PR rtl-optimization/25662
8611 * optabs.c (simplify_expand_binop): Use simplify_binary_operation
8612 for constant operands instead of simplify_gen_binary.
8613 * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
8614 after trying simplify_binary_operation
8616 2006-01-06 Daniel Berlin <dberlin@dberlin.org>
8618 * tree.c (iterative_hash_expr): Hash decls based on UID.
8620 2006-01-06 Eric Christopher <echristo@apple.com>
8622 * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
8623 (TARGET_UNWIND_EMIT): Fix spelling.
8624 * target.h (gcc_target): Add except_table_label.
8625 * except.c (output_function_exception_table): Use.
8626 * varasm.c (default_emit_except_table_label): New.
8627 * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
8629 (asm_out): Add here.
8630 * output.h (default_emit_except_table_label): Prototype.
8631 * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
8632 * config/darwin.c (darwin_emit_except_table_label): Define.
8633 * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
8635 2006-01-06 Zdenek Dvorak <dvorakz@suse.cz>
8637 PR tree-optimization/18527
8638 * tree-ssa-loop-niter.c (number_of_iterations_cond,
8639 number_of_iterations_special, number_of_iterations_exit):
8640 Move base and step of an iv to a single structure. Add
8641 no_overflow flag, and use it in # of iterations analysis.
8642 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
8643 folded_casts argument.
8644 (simple_iv): Pass base and step in a structure. Set no_overflow
8646 (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
8647 Evaluate expensiveness of computing # of iterations instead of
8648 the final expression.
8649 * tree-scalar-evolution.h (affine_iv): New structure.
8650 (simple_iv): Declaration changed.
8651 * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
8652 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
8653 find_givs_in_stmt): Changed due to simple_iv change.
8655 2006-01-06 Jeff Law <law@redhat.com>
8658 * tree-cfg.c (bsi_replace): Rename final argument from
8659 PRESERVE_EH_INFO to UPDATE_EH_INFO. Fix typo in last
8660 change (stmt -> orig_stmt).
8661 * tree-eh.c (verify_eh_throw_stmt_node): New function.
8662 (bsi_remove): Add new argument. Remove EH information
8664 (verify_eh_throw_table_statements): New function.
8665 (bsi_remove): Add new argument REMOVE_EH_INFO. All callers
8667 * tree-optimize.c (execute_free_cfg_annotations): Verify
8668 the EH throw statement table after removing annotations.
8669 * except.h (verify_eh_throw_table_statements): Prototype.
8670 * tree-flow.h (bsi_remove): Update prototype.
8671 * tree-vrp.c (remove_range_assertions): Add new argument to
8673 * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
8674 * tree-complex.c (expand_complex_div_wide): Likewise.
8675 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
8676 * tree-tailcall.c (eliminate_tailcall): Likewise.
8677 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
8678 * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
8679 * tree-nrv.c (tree_nrv): Likewise.
8680 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
8681 * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
8682 (combine_blocks): Likewise.
8683 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
8684 * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
8685 (cleanup_control_flow): Likewise.
8686 (remove_forwarder_block): Likewise.
8687 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
8688 * tree-sra.c (sra_replace): Likewise.
8689 * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
8690 (forward_propagate_single_use_vars): Likewise.
8691 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
8692 * tree-inline.c (expand_call_inline): Likewise.
8693 * tree-vect-transform.c (vect_transform_loop): Likewise.
8694 * tree-outof-ssa.c (rewrite_trees): Likewise.
8695 * tree-cfg.c (make_goto_expr_edges): Likewise.
8696 (cleanup_dead_labels): Likewise.
8697 (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
8698 (bsi_move_before, bsi_move_after): Likewise.
8699 (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
8700 (tree_redirect_edge_and_branch, tree_split_block): Likewise.
8702 2006-01-06 Andrew Pinski <pinskia@physics.uc.edu>
8705 * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
8707 * tree-flow-inline.h (var_can_have_subvars): Handle complex types
8708 on non gimple variables. Also add checks at the top for decls and
8710 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
8712 * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
8713 and IMAGPART_EXPR for creating MUST_DEFs.
8714 (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
8715 and NAME_MEMORY_TAG separately from the DECLs.
8717 2006-01-06 Richard Guenther <rguenther@suse.de>
8719 * tree-dfa.c (mark_new_vars_to_rename): Create stmt
8720 annotation, if necessary.
8721 * tree-ssa-pre.c (create_expression_by_pieces): Remove
8722 redundant calls to update_stmt.
8723 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
8726 2006-01-05 Richard Henderson <rth@redhat.com>
8728 * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
8730 2006-01-05 Carlos O'Donell <carlos@codesourcery.com>
8732 * c-typeck.c: Update copyright date.
8734 2006-01-05 Carlos O'Donell <carlos@codesourcery.com>
8736 * c-typeck.c (build_c_cast): Always warn when casting
8737 from a pointer to an integer of different size, even if
8738 the node was constant.
8740 2006-01-05 Richard Guenther <rguenther@suse.de>
8742 PR tree-optimization/22555
8743 * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
8744 if one structure field is an array.
8745 * tree-ssa-operands.c (get_expr_operands): Continue scanning
8746 operands even if we found a subvar, but ignore VOPs in this
8748 * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
8750 * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
8752 2006-01-05 Richard Earnshaw <rearnsha@arm.com>
8755 * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
8757 2006-01-05 Richard Guenther <rguenther@suse.de>
8758 Diego Novillo <dnovillo@redhat.com>
8760 * tree-pass.h (TODO_remove_unused_locals): Define.
8761 * gimple-low.c (expand_var_p, remove_useless_vars,
8762 pass_remove_useless_vars): Remove. Update all users.
8763 * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
8764 (remove_unused_locals): New function.
8765 * tree-flow.h (remove_unused_locals): Declare.
8766 * passes.c (execute_todo): Call remove_unused_locals if
8767 TODO_remove_unused_locals is set.
8768 * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
8769 * tree-ssa-dce.c (pass_dce): Likewise.
8770 * tree-outof-ssa.c (pass_del_ssa): Likewise.
8772 2006-01-05 Richard Guenther <rguenther@suse.de>
8774 * tree-flow.h (struct fieldoff): Decompose field to
8775 type, size and decl.
8776 * tree-ssa-alias.c (create_sft): Take type as parameter.
8777 (create_overlap_variables_for): Store type, size and decl
8778 in the fieldoff structure.
8779 * tree-ssa-structalias.c (fieldoff_compare): Adjust users
8781 (push_fields_onto_fieldstack): Likewise.
8782 (create_variable_info_for): Likewise. Use offset for the
8783 SFT name if the decl is not available.
8785 2006-01-04 Paul Brook <paul@codesourcery.com>
8787 * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
8789 2006-01-04 Daniel Berlin <dberlin@dberlin.org>
8791 * lambda-code.c (can_put_in_inner_loop): Relax
8793 (can_put_after_inner_loop): New function.
8794 (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
8795 (perfect_nestify): Change to make copies and modify uses.
8797 2006-01-04 Richard Henderson <rth@redhat.com>
8799 Merge from gomp branch:
8800 * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
8801 via integer constant.
8802 (pragma_lex): Remove.
8803 * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
8804 rather than parsing it.
8805 * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
8806 handle_pragma_extern_prefix): Add %< %> quotes.
8807 (registered_pragmas): New.
8808 (c_register_pragma_1): New.
8809 (c_register_pragma): Use it.
8810 (c_register_pragma_with_expansion): Likewise.
8811 (c_invoke_pragma_handler): New.
8812 (init_pragma): Use cpp_register_deferred_pragma directly for
8814 * c-pragma.h (enum pragma_kind): New.
8815 (pragma_handler): New.
8816 (c_invoke_pragma_handler): Declare.
8817 * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
8819 * c-common.h (c_common_pch_pragma): Update decl.
8820 * Makefile.in (c-parser.o): Update dependencies.
8821 (GTFILES): Add c-pragma.h.
8822 * c-parser.c (struct c_token): Add pragma_kind.
8823 (struct c_parser): Add in_pragma.
8824 (c_lex_one_token): Always initialize keyword and pragma_kind.
8825 Extract data for CPP_PRAGMA.
8826 (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
8827 (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
8828 Don't allow CPP_PRAGMA_EOL if in_pragma.
8829 (c_parser_consume_pragma): New.
8830 (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
8831 (c_parser_skip_to_end_of_parameter): Likewise.
8832 (c_parser_skip_to_end_of_block_or_statement): Likewise.
8833 (c_parser_skip_to_pragma_eol): New.
8834 (c_parser_external_declaration): Handle CPP_PRAGMA.
8835 (c_parser_compound_statement_nostart): Likewise.
8836 (c_parser_statement_after_labels): Likewise.
8837 (c_parser_pragma): New.
8838 (pragma_lex): Likewise.
8839 (c_parser_pragma_pch_preprocess): New.
8840 (c_parser_new): Merge into ...
8841 (c_parse_file): ... here. Call c_parser_pragma_pch_preprocess.
8843 2006-01-04 Jeff Law <law@redhat.com>
8846 * tree-cfg.c (bsi_replace): Remove the original statement
8847 from the EH throw statement table.
8849 2006-01-04 Jakub Jelinek <jakub@redhat.com>
8851 * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
8852 make the prototype extern "C" and add throw ().
8855 * config/i386/i386.md (testqi_ext_3): Ensure len is positive
8856 and pos non-negative and pos + len <= 32.
8857 (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
8858 drop pos + len < HOST_BITS_PER_WIDE_INT test.
8859 (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
8862 * c-common.c (handle_vector_size_attribute): Reject zero vector size
8863 as well as sizes not multiple of component size.
8866 * function.c (instantiate_expr): New function.
8867 (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
8868 walk its DECL_VALUE_EXPR with instantiate_expr.
8870 * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
8871 DW_OP_deref{,_size} if address isn't going to be added.
8873 2006-01-04 Ben Elliston <bje@au.ibm.com>
8875 * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
8876 * config/fp-bit.c: Likewise.
8878 2006-01-03 Daniel Berlin <dberlin@dberlin.org>
8880 * dominance.c: Add comment about why we use DFS numbering
8883 2006-01-03 Jakub Jelinek <jakub@redhat.com>
8884 Richard Henderson <rth@redhat.com>
8886 Merge from gomp-branch:
8887 * varasm.c (assemble_variable): Handle thread-local COMMON data.
8888 * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
8890 2006-01-03 Paolo Bonzini <bonzini@gnu.org>
8892 PR rtl-optimization/25578
8893 * combine.c (combine_simplify_rtx, force_to_mode): Don't
8894 pass a parameter to simplify_shift_const if changing ASHIFTRT
8897 2006-01-03 Adrian Straetling <straetling@de.ibm.com>
8899 * builtins.c (get_builtin_sync_mem): New function.
8900 (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
8901 expand_builtin_lock_test_and_set, expand_builtin_lock_release):
8902 Call get_builtin_sync_mem to generate mem rtx.
8904 2006-01-03 Richard Guenther <rguenther@suse.de>
8907 * stmt.c (add_case_node): Make sure to clear overflow flags
8910 2006-01-03 Jakub Jelinek <jakub@redhat.com>
8912 Merge from gomp-branch.
8913 * config/sparc/sync.md: New file.
8914 * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
8915 UNSPECV_LDSTUB): New constants.
8916 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
8917 * config/sparc/predicates.md (memory_reg_operand): New predicate.
8918 * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
8921 2006-01-03 Roger Sayle <roger@eyesopen.com>
8923 * combine.c (reg_subword_p): New predicate to test whether the
8924 destination of a set refers to a subword/piece of a register.
8925 (try_combine): Generalize the code to merge the setting of a
8926 pseudo to a constant followed by a set of a subword of that
8927 register to a constant.
8929 2006-01-03 Kazu Hirata <kazu@codesourcery.com>
8931 * basic-block.h (control_flow_graph): Change the type of
8932 x_label_to_block_map to VEC(basic_block,gc) *.
8933 * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
8934 set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
8936 * tree-ssa-propagate.c (cfg_blocks): Change the type to
8937 VEC(basic_block,heap) *.
8938 (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
8939 ssa_prop_fini): Adjust the uses of cfg_blocks.
8941 2006-01-03 Steven Bosscher <stevenb.gcc@gmail.com>
8943 * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
8945 * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
8946 hashing trees instead of a pointer hash.
8947 (mem_attrs_htab_eq): Do a deep compare instead of a pointer
8948 compare for MEM_EXPR.
8950 PR rtl-optimization/25130
8951 * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
8952 when comparing MEMs for GCSE
8954 2006-01-03 Ben Elliston <bje@au.ibm.com>
8956 * targhooks.h (default_decimal_float_supported_p): Declare.
8957 * targhooks.c (default_decimal_float_supported_p): Define.
8958 * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
8959 `default_decimal_float_supported_p'.
8960 * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
8962 2006-01-02 Adam Nemet <anemet@caviumnetworks.com>
8964 * combine.c (apply_distributive_law <SUBREG>): Check
8965 TRULY_NOOP_TRUNCATION.
8967 2006-01-02 Geoffrey Keating <geoffk@apple.com>
8969 * dwarf2out.c (have_switched_text_section): Delete.
8970 (have_multiple_function_sections): New.
8971 (have_location_lists): Make 'bool'.
8972 (add_AT_loc_list): Use 'true' not '1'.
8973 (dwarf2out_switch_text_section): Set have_multiple_function_sections.
8974 (output_loc_list): Use have_multiple_function_sections.
8975 (output_ranges): Likewise.
8976 (dwarf2out_begin_function): Set have_multiple_function_sections if
8978 (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
8979 Check function_section rather than DECL_SECTION_NAME.
8980 (dwarf2out_finish): Use have_multiple_function_sections.
8981 Don't clear have_location_lists.
8983 2006-01-02 Eric Botcazou <ebotcazou@adacore.com>
8984 Jan Hubicka <jh@suse.cz>
8986 * cfglayout.c (fixup_reorder_chain): Remove kludge for the
8987 case of conditional jump jumping to the next instruction.
8988 * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
8989 cases of conditional jump jumping to the next instruction.
8991 2006-01-02 Jan Hubicka <jh@suse.cz>
8993 * i386.c (*_cost): Add COSTS_N_INSNS.
8994 (ix86_rtx_costs): Do not use COSTS_N_INSNS.
8996 2006-01-02 Paolo Bonzini <bonzini@gnu.org>
8999 * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
9001 2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
9003 * config/arm/arm.c (all_fpus): Fix comment typo.
9004 * config/darwin.c: Likewise.
9005 * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
9006 * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
9007 * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
9009 2006-01-01 David Edelsohn <edelsohn@gnu.org>
9011 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
9012 (rs6000_split_compare_and_swapqhi): New.
9013 * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
9014 (sync_compare_and_swapqhi_internal): New.
9015 * config/rs6000/rs6000-protos.h: Declare.