1 2005-08-08 Paolo Bonzini <bonzini@gnu.org>
2 Dale Johannesen <dalej@apple.com>
5 * regclass.c (struct reg_pref): Update documentation.
6 (regclass): Set prefclass to NO_REGS if memory is the best option.
7 (record_reg_classes): Cope with a prefclass set to NO_REGS.
8 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
9 into account. For non-registers, equate an empty preferred
10 reload class to a `!' in the constraint; move the if clause to
11 do so after those that reject the insn.
12 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
14 (find_dummy_reload): Likewise.
15 * doc/tm.texi (Register Classes): Document what it means
16 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
17 * config/i386/i386.c (ix86_preferred_reload_class): Force
18 using SSE registers (and return NO_REGS for floating-point
19 constants) if math is done with SSE.
20 (ix86_preferred_output_reload_class): New.
21 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
22 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
23 * config/i386/i386.md: Remove # register preferences.
25 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
28 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
29 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
31 (instantiate_parameters_1): Convert the operands before calling
32 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
33 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
35 2006-04-02 Roger Sayle <roger@eyesopen.com>
37 * builtins.c (dummy_object): Use build_int_cst instead of convert.
38 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
40 * dojump.c (do_jump): Likewise.
41 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
42 * gimplify.c (gimple_boolify, gimplify_init_constructor,
43 gimplify_boolean_expr): Likewise.
44 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
45 * varasm.c (array_size_for_constructor): Likewise.
46 * tree-object-size.c (compute_object_offset): Likewise.
48 2006-04-02 Roger Sayle <roger@eyesopen.com>
51 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
52 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
54 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
56 PR tree-optimization/26939
57 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
59 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
61 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
62 at_stmt. Convert the type of operands before calling
63 build_polynomial_chrec.
64 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
66 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
67 (instantiate_parameters_1): Convert the type of operands before calling
68 build_polynomial_chrec.
69 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
70 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
71 reset_evolution_in_loop): Insert asserts to check the types of the
73 (chrec_type): Moved...
74 (eq_evolutions_p): Use operand_equal_p.
75 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
76 the types of the operands.
77 (chrec_type): ...here.
78 * tree-data-ref.c (create_data_ref): Convert the operands before
79 calling chrec_replace_initial_condition.
80 (same_access_functions, analyze_subscript_affine_affine,
81 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
82 (compute_subscript_distance, analyze_ziv_subscript,
83 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
84 analyze_miv_subscript): Convert the operands before calling
85 chrec_fold_minus or chrec_fold_plus.
87 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
89 * tree-data-ref.c (compute_all_dependences): Use a pointer to
90 the dependence_relations vector.
91 (compute_data_dependences_for_loop): Adjust call to
92 compute_all_dependences.
94 2006-04-01 Roger Sayle <roger@eyesopen.com>
95 Richard Henderson <rth@redhat.com>
97 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
98 gimple_boolify on the condition before calling gimplify_expr.
100 2006-03-31 Bob Wilson <bob.wilson@acm.org>
102 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
103 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
104 the frame size. Update to use the new macros.
105 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
106 * config/xtensa/ieee754-df.S: Likewise.
108 2006-03-31 Richard Henderson <rth@redhat.com>
110 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
111 (make_edges): ... here. Control fallthru creation with a local
112 variable. Do not play with fake edges.
113 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
114 (make_goto_expr_edges): Don't play with fake edges. Make for_call
117 2006-04-01 Joseph S. Myers <joseph@codesourcery.com>
119 * dwarf2.h (DW64_CIE_ID): Define.
120 * dwarf2out.c (DWARF_CIE_ID): Define.
121 (output_call_frame_info): Output 0xffffffff before standard 8-byte
122 length header. Use DWARF_CIE_ID.
123 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
124 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
126 2006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
128 * config/sh/linux-atomic.asm: New file.
129 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
131 2006-03-31 DJ Delorie <dj@redhat.com>
133 * config/m32c/cond.md: Set condition flags properly throughout.
134 * config/m32c/minmax.md: Likewise.
135 * config/m32c/prologue.md: Likewise.
136 * config/m32c/bitops.md: Likewise.
137 * config/m32c/muldiv.md: Likewise.
138 * config/m32c/mov.md: Likewise.
139 * config/m32c/addsub.md: Likewise.
140 * config/m32c/m32c.md: Likewise.
141 * config/m32c/jump.md: Likewise.
142 * config/m32c/shift.md: Likewise.
144 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
145 conditionally output the pattern for this.
146 * config/m32c/m32c.c (flags_needed_for_conditional): New.
147 (m32c_compare_redundant): New.
148 (m32c_output_compare): New.
149 * config/m32c/m32c-protos.h (m32c_output_compare): New.
151 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
152 dest, not src. Allow other 4-byte modes.
154 2006-03-30 Denis Chertykov <denisc@overta.ru>
156 * doc/md.texi: Refer to avr/constraints.md instead of
159 2006-03-30 Roger Sayle <roger@eyesopen.com>
161 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
162 signed vs. unsigned comparison failures on some hosts.
164 2006-03-31 Alan Modra <amodra@bigpond.net.au>
167 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
168 change to FLOAT_REGS.
170 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
171 (rs6000_override_options): Use it.
172 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
173 only for -mabi=spe/no-spe and -mabi=altivec.
175 2006-03-30 Geoffrey Keating <geoffk@apple.com>
177 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
180 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
182 * Makefile.in: Rename docdir to gcc_docdir.
184 2006-03-30 Roger Sayle <roger@eyesopen.com>
187 * expr.c (emit_group_store): Optimize group stores into a pseudo
188 register by using a paradoxical subreg to initialize the destination
189 if the first or last member of the group specifies a "low part".
191 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
194 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
195 * target.h (struct gcc_target.speculate_insn): Change type of the
196 second parameter to 'int'.
197 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
198 the second operand of the DEPS_LIST.
199 (copy_DEPS_LIST_list): Update reference to the second operand of the
201 * rtl.h (alloc_DEPS_LIST): Update signature.
202 * sched-int.h (ds_t): Change typedef to 'int'.
203 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
205 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
207 * haifa-sched.c (try_ready): Change condition to restore
208 non-speculative pattern of the instruction.
209 (process_insn_depend_be_in_spec): Code to keep probability of the
210 speculative dependence non-decreasing.
212 2006-03-30 Jie Zhang <jie.zhang@analog.com>
214 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
215 (single_move_for_movmem): ... this. Also change all uses.
216 (bfin_expand_strmov): Renamed to...
217 (bfin_expand_movmem): ... this. Also change all uses.
218 * config/bfin/bfin.md (movstrsi): Renamed to...
221 2006-03-30 Paolo Bonzini <bonzini@gnu.org>
223 PR tree-optimization/26830
225 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
226 (copy_prop_visit_stmt): Remove write-only variable ann.
227 (init_copy_prop): Check variable loop depth here. Do not simulate
228 memory-tag and virtual operand PHIs except for store copy prop.
230 2006-03-30 Richard Guenther <rguenther@suse.de>
232 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
233 variants with double arguments.
235 2006-03-29 David Edelsohn <edelsohn@gnu.org>
237 * genpreds.c (write_tm_constrs_h): Delete variable p.
238 * genconditions.c (write_header): Add tm-constrs.h to included
240 * genpeep.c (main): Add toplev.h to included headers.
241 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
242 (build/genpeep.o): Add toplev.h dependency.
243 * config/rs6000/constraints.md: Add "W" constraint.
245 2006-03-29 Roger Sayle <roger@eyesopen.com>
247 * stor-layout.c (mode_for_size_tree): Remove restiction on type
248 sizes by correctly testing whether the size fits a host integer.
249 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
250 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
251 SImode range for the default sizetype and bitsizetype.
253 2006-03-29 Roger Sayle <roger@eyesopen.com>
255 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
256 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
257 quickly if the argument is already of the correct type.
258 Call fold_build1 instead of build1. Tidy up blank lines.
260 2006-03-29 David Edelsohn <edelsohn@gnu.org>
262 * genemit.c (main): Add tm-constrs.h to included headers.
263 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
264 * genpeep.c (main): Add tm-constrs.h to included headers.
265 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
266 (write_tm_constrs_h): this and write complete file.
267 (write_tm_preds_h): Do not emit satisfies_constraint fns.
268 (write_insn_preds_c): Add tm-constrs.h to included headers.
269 (gen_constrs): New variable.
270 (parse_option): Parse "-c".
271 (main): Invoke write_tm_constrs_h.
272 * genrecog.c (write_header): Add tm-constrs.h to included headers.
273 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
274 (object_out_file): Add tm-constrs.h dependency.
276 (insn-output.o): Same.
278 (insn-preds.o): Same.
279 (insn-recog.o): Same.
280 (tm-constsr.h): New target.
281 (s-constrs-h): New target.
283 * config/rs6000/constraints.md: New file.
284 * config/rs6000/rs6000.c: Include tm-constrs.h.
285 (num_insn_constant_wide): Convert to satisfies_constraint.
286 (rs6000_rtx_costs): Convert to satisfies_constraint.
287 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
288 (CONST_OK_FOR_LETTER_P): Delete.
289 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
290 (EXTRA_CONSTRAINT): Delete.
291 (EXTRA_MEMORY_CONSTRAINT): Delete.
292 (EXTRA_ADDRESS_CONSTRAINT): Delete.
293 * config/rs6000/predicates.md: Convert to satisfies_constraint.
294 * config/rs6000/rs6000.md: Include constraints.md. Convert to
295 satisfies_constraint.
297 * config/i386/i386.c: Include tm-constrs.h.
299 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
301 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
302 * tree-data-ref.c (find_data_references_in_loop,
303 compute_data_dependences_for_loop): Use pointers to VEC.
304 (analyze_all_data_dependences): Adjust calls.
305 * tree-data-ref.h (find_data_references_in_loop,
306 compute_data_dependences_for_loop): Adjust declarations.
307 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
308 compute_data_dependences_for_loop.
310 2006-03-29 Paul Brook <paul@codesourcery.com>
312 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
315 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
317 PR tree-optimization/26859
318 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
320 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
321 for the step after fold_convert.
323 2006-03-29 Paul Brook <paul@codesourcery.com>
325 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
326 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
328 2006-03-29 Paul Brook <paul@codesourcery.com>
331 * targhooks.c (default_narrow_bitfield): New fuction.
332 * targhooks.h (default_narrow_bitfield): add prototype.
333 * target.h (gcc_target): Add narrow_volatile_bitfield.
334 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
335 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
336 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
337 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
339 2006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
341 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
343 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
344 (NR_C_MODES): Add TDmode, DDmode and SDmode.
345 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
346 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
347 (s390_function_arg_float): Allow SDmode and DDmode values to be
348 passed in floating point registers.
349 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
350 check with SCALAR_FLOAT_MODE_P.
351 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
353 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
355 PR tree-optimization/25985
356 * tree-ssa-loop-niter.c (number_of_iterations_le,
357 number_of_iterations_ne): Make comments more precise.
358 (number_of_iterations_cond): Add only_exit argument. Use the
359 fact that signed variables do not overflow only when only_exit
361 (loop_only_exit_p): New.
362 (number_of_iterations_exit): Pass result of loop_only_exit_p to
363 number_of_iterations_cond.
365 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
367 PR tree-optimization/26643
368 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
371 2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
373 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
374 (divsi3_i4_int): Likewise.
376 2006-03-28 Roger Sayle <roger@eyesopen.com>
378 * expr.c (emit_group_store): Only create a new pseudo reg if the
379 quantity it needs to hold isn't already a suitable pseudo.
381 2006-03-28 Jeff Law <law@redhat.com>
383 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
384 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
386 2006-03-28 Roger Sayle <roger@eyesopen.com>
388 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
389 the equivalent ~X & Y, and the symmetry related transformations.
390 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
391 ~X & Y, and symmetry related transforms.
393 2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
395 Revert my 2006-03-27 patches.
397 2006-03-28 Roger Sayle <roger@eyesopen.com>
399 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
400 ~(T1)X, when T1 and T2 are integer types of the same precision
401 and (T2)X isn't an extension.
403 2006-03-28 Jeff Law <law@redhat.com>
405 PR tree-optimization/26796
406 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
407 need EH edge cleanups rather than purging them immediately.
408 (eliminate_degenerate_phis): Handle queued EH cleanups.
410 2006-03-28 Daniel Berlin <dberlin@dberlin.org>
412 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
415 2006-03-27 Roger Sayle <roger@eyesopen.com>
418 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
419 cast BIT_NOT_EXPR operand to the correct type.
421 2006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
423 * tree-loop-linear.c: Don't include varray.h.
424 (gather_interchange_stats, try_interchange_loops,
425 linear_transform_loops): Use VEC instead of VARRAY.
426 * lambda-mat.c: Don't include varray.h.
427 * tree-chrec.c: Same.
428 * lambda-trans.c: Same.
429 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
430 VEC instead of VARRAY.
431 * tree-vectorizer.h: Idem.
432 * tree-data-ref.c (dump_data_references,
433 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
434 initialize_data_dependence_relation, finalize_ddr_dependent,
435 compute_all_dependences, find_data_references_in_loop,
436 compute_data_dependences_for_loop, analyze_all_data_dependences,
437 free_dependence_relation, free_dependence_relations,
438 free_data_refs): Idem.
439 * tree-data-ref.h (data_reference_p, subscript_p): New.
440 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
441 VEC instead of VARRAY.
442 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
443 (find_data_references_in_loop, compute_data_dependences_for_loop,
444 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
445 dump_data_dependence_relations, free_dependence_relations,
446 free_data_refs): Adjust declaration.
447 (lambda_transform_legal_p): Move declaration here...
448 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
449 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
450 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
451 vect_analyze_data_refs): Use VEC instead of VARRAY.
452 * lambda.h (lambda_transform_legal_p): ...from here.
453 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
454 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
455 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
456 tree-chrec.o): Don't depend on VARRAY_H.
458 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
460 * rtl.def (Copyright): Update date.
461 (DEPS_LIST): Change type of the second operand to 'int'.
462 * target.h (Copyright): Update date.
463 (struct gcc_target.speculate_insn): Change type of the second parameter
465 * lists.c (Copyright): Update date.
466 (alloc_DEPS_LIST): Change signature. Update reference to the second
467 operand of the DEPS_LIST.
468 (copy_DEPS_LIST_list): Update reference to the second operand of the
470 * rtl.h (Copyright): Update date.
471 (alloc_DEPS_LIST): Update signature.
472 * sched-int.h (Copyright): Update date.
473 (ds_t): Change typedef to 'int'.
474 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
476 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
478 * haifa-sched.c (Copyright): Update date.
479 (try_ready): Change condition to restore non-speculative pattern
481 (process_insn_depend_be_in_spec): Code to keep probability of the
482 speculative dependence non-decreasing.
484 2006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
486 * regrename.c (replace_oldest_value_addr): Initialize a variable to
487 shut up the compiler.
489 2006-03-27 J"orn Rennecke <joern.rennecke@st.com>
491 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
492 to use lib prefix for target.
493 ($(T)libic_invalidate_array_4-200.a): Likewise.
494 ($(T)libic_invalidate_array_4a.a): Likewise.
496 2006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
497 J"orn Rennecke <joern.rennecke@st.com>
499 * superh.opt: New file.
500 * sh.c (boardtype, osruntime): Remove.
501 * superh.h (SUBTARGET_OPTIONS): Remove.
502 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
504 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
505 arguments with ^ and/or [].
507 * config.gcc (sh-*-*): Add quoting to account for quirk of
509 Replace == with = in enable_incomplete_targets test.
511 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
512 with MASK_LITTLE_ENDIAN.
514 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
515 * config/sh/sh.opt: Added to some comments.
516 * config/sh/superh.h: Removed some chaff.
518 * config/sh/sh.opt: Add m4-[1234]00* options.
519 * config/sh/sh.c (sh_handle_option): Likewise.
520 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
521 (ic_invalidate_array_4-100.o): New rule.
522 ($(T)libic_invalidate_array_4-100.a): Likewise.
523 (ic_invalidate_array_4-200.o): Likewise.
524 ($(T)libic_invalidate_array_4-200.a): Likewise.
525 (ic_invalidate_array_4a.o): Likewise.
526 ($(T)libic_invalidate_array_4a.a): Likewise.
527 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
528 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
530 * config/sh/crt1.asm: Merged in profiling code.
531 * config/sh/superh.h (STARTFILE_SPEC): Override.
532 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
533 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
534 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
536 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
537 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
538 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
540 * sh.opt (mpretend-cmove): New option.
541 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
542 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
543 (movsicc): Add TARGET_PRETEND_CMOVE code.
545 2006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
547 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
548 s390_class_max_nregs): New function prototypes.
549 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
550 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
551 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
552 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
554 2006-03-26 Geoffrey Keating <geoffk@apple.com>
556 * dwarf2out.c (add_location_or_const_value_attribute): Call
557 tree_add_const_value_attribute if nothing else works.
558 (reference_to_unused): New.
559 (rtl_for_decl_init): Use reference_to_unused to decide whether
560 to output an initializer.
562 2006-03-27 Alan Modra <amodra@bigpond.net.au>
565 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
566 peephole removing spe frob_di_df_2.
568 2006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
570 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
571 (subscript_dependence_tester_1): Declared.
572 (print_dir_vectors, print_dist_vectors): New.
573 (debug_data_dependence_relation): New.
574 (dump_data_dependence_relation): Print more details.
575 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
576 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
577 (save_dist_v, save_dir_v, add_outer_distances,
578 build_classic_dist_vector_1): New.
579 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
580 Don't test for lambda_vector_lexico_pos.
581 (same_access_functions, add_multivariate_self_dist,
582 add_other_self_distances, dir_from_dist): New.
583 (build_classic_dir_vector): Replace implementation almost identical to
584 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
586 (subscript_dependence_tester_1): New.
587 (subscript_dependence_tester): Handle the lexicographically negative
588 distance vectors by recomputing the dependence relation.
589 (compute_affine_dependence): Remove parameter loop_nest_depth.
590 (compute_self_dependence): Don't call compute_subscript_distance.
591 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
592 Add a parameter for the loop_nest.
593 (find_loop_nest_1, find_loop_nest): New.
594 (compute_data_dependences_for_loop): Compute the loop nest, and give
595 up if the nest is not well formed.
596 * tree-data-ref.h (loop_p): New.
597 (struct data_dependence_relation): Replace size_vect field with
598 loop_nest, a vec of loops.
599 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
600 (DDR_LOOP_NEST): New.
601 (print_dir_vectors, print_dist_vectors,
602 debug_data_dependence_relation): Declared.
603 (index_in_loop_nest): New.
604 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
605 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
608 2006-03-25 Adam Nemet <anemet@caviumnetworks.com>
610 * simplify-rtx.c (simplify_relational_operation): Call
611 simplify_relational_operation_1 even if mode is VOIDmode.
613 2006-03-25 Daniel Berlin <dberlin@dberlin.org>
615 PR tree-optimization/26804
616 * tree.h (DECL_CALL_CLOBBERED): New macro.
617 (tree_decl_common): Add call_clobbered_flag.
618 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
619 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
620 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
621 (mark_non_addressable): Ditto.
622 * tree-ssa.c (verify_call_clobbered): New function.
623 (verify_alias_info): Use it.
624 * tree-pass.h (pass_reset_cc_flags): New prototype.
625 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
626 (reset_cc_flags): New function.
627 * passes.c (init_optimization_passes): Call reset_cc_flags after
628 initializing referenced_vars.
630 2006-03-25 Uros Bizjak <uros@kss-loka.si>
631 Roger Sayle <roger@eyesopen.com>
634 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
635 to 1.0 for non-real operands. Implement A / A optimization for
638 2006-03-25 H.J. Lu <hongjiu.lu@intel.com>
640 * config/i386/i386.c (size_cost): Correct the comment for
641 cost of storing fp registers.
642 (i386_cost): Likewise.
643 (i486_cost): Likewise.
644 (pentium_cost): Likewise.
645 (pentiumpro_cost): Likewise.
647 (athlon_cost): Likewise.
649 (pentium4_cost): Likewise.
650 (nocona_cost): Likewise.
651 (generic64_cost): Likewise.
652 (generic32_cost): Likewise.
654 2006-03-24 Denis Chertykov <denisc@overta.ru>
656 * config/avr/avr-protos.h (extra_constraint): Delete.
657 (extra_constraint_Q): New declaration.
658 * config/avr/constraints.md: New file.
659 * config/avr/avr.md: Include it.
660 (REG_X, REG_Y, REG_Z, REG_W): New constants.
661 (TMP_REGNO, ZERO_REGNO): Likewise.
662 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
663 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
664 (extra_constraint): Delete.
665 (extra_constraint_Q): Test for memory constraint 'Q'.
666 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
667 (REG_CLASS_FROM_LETTER): Delete.
668 (CONST_OK_FOR_LETTER_P): Delete.
669 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
670 (EXTRA_CONSTRAINT): Delete.
672 (ZERO_REGNO): Delete.
674 2006-03-24 Jeff Law <law@redhat.com>
676 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
677 directly. Call mark_new_vars_to_rename slightly earlier.
679 2006-03-24 Geoffrey Keating <geoffk@apple.com>
681 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
683 (gen_compile_unit_die): Use new language types for Objective-C and
685 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
689 * config/t-darwin (crt3.o): Work around bug 26840.
690 * config/darwin-crt3.c: Rewrite.
691 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
693 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
695 * doc/invoke.texi: Document -femit-class-debug-always
696 * common.opt: Add -femit-class-debug-always.
698 2006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
700 * config/s390/s390.c (s390_decompose_address): Allow SImode for
701 index and base register.
702 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
703 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
704 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
705 REGNO_OK_FOR_INDEX_P.
706 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
708 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
709 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
710 REG_OK_FOR_BASE_P): Definitions removed.
712 2006-03-24 Jakub Jelinek <jakub@redhat.com>
715 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
716 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
717 set yet or weren't marked as local yet.
719 2006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
721 * regrename.c (scan_rtx_address): Initialize a variable to shut up
724 2006-03-24 Eric Botcazou <ebotcazou@adacore.com>
726 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
727 (rs6000_legitimate_small_data_p): Delete.
728 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
729 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
730 and make static. Add forward declaration. Update uses.
731 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
732 of offsettable_memref_p.
733 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
734 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
736 2006-03-24 Jeff Law <law@redhat.com>
738 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
739 around bug in immediate-use iterator.
741 2006-03-24 Alan Modra <amodra@bigpond.net.au>
744 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
745 or __LITTLE_ENDIAN__.
747 2006-03-23 J"orn Rennecke <joern.rennecke@st.com>
749 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
750 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
751 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
752 * config/sh/sh.opt (mdiv=): Amend description.
753 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
754 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
755 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
756 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
757 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
758 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
759 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
760 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
761 TARGET_DIVIDE_CALL_FP.
763 2006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
765 * haifa-sched.c (choose_ready): Fix type of the local variable.
766 Move local variables. Add comment.
767 (check_reg_live): Change signature. Make callable from debugger.
768 * sched-int.h (check_reg_live): Update signature.
769 * sched-ebb.c (check_reg_live): Update parameters.
770 * sched-rgn.c (check_reg_live): Ditto.
771 (region_head_or_leaf_p): Check pointer before dereferencing.
772 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
773 before reload on optimization levels below 1.
775 2006-03-23 Richard Henderson <rth@redhat.com>
777 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
781 * config/alpha/predicates.md (local_symbolic_operand): Reject
784 2006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
787 * tree-ssa-pre.c (create_value_expr_from): Don't reject
788 expressions which have overflowed constants.
790 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
792 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
794 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
796 * cfgloopmanip.c (create_loop_notes): Removed.
797 * final.c (final_scan_insn): Do not handle loop notes.
798 * jump.c (squeeze_notes): Ditto.
799 * cfglayout.c (skip_insns_after_block,
800 duplicate_insn_chain): Ditto.
801 * cfgcleanup.c (rest_of_handle_jump2): Do not call
803 * cfgloop.h (create_loop_notes): Declaration removed.
805 2006-03-23 Richard Sandiford <richard@codesourcery.com>
807 * varasm.c (output_constant_pool): Restore fnname and fndecl
809 (assemble_start_function): Adjust call accordingly.
810 (assemble_end_function): Likewise.
812 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
815 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
818 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
820 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
823 * system.h (ICE_EXIT_CODE): New macro.
824 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
825 (diagnostic_action_after_output): Likewise.
826 * gcc.c (fatal_ice): New function.
827 (execute): Use it instead of fatal.
828 (fancy_abort): Likewise.
829 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
831 2006-03-22 Jeff Law <law@redhat.com>
833 * loop-unroll.c (analyze_iv_to_split_insn): Handle
834 iv_analyze_result returning false.
836 2006-03-22 Jie Zhang <jie.zhang@analog.com>
838 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
840 2006-03-22 Richard Henderson <rth@redhat.com>
843 * except.c (duplicate_eh_regions_0): New.
844 (duplicate_eh_region_1): Duplicate the children of the node as
845 well as the node itself. Link them up properly.
846 (duplicate_eh_region_2): Merge into ...
847 (duplicate_eh_regions): ... here. Take copy_region argument, and
848 copy only a sub-tree if asked. Simplify copying and fixup.
849 (eh_region_outer_p): New.
850 * except.h (duplicate_eh_regions): Update decl.
851 (eh_region_outer_p): Declare.
852 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
853 (lower_omp_master): Likewise.
854 (lower_omp_ordered): Likewise.
855 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
856 (move_stmt_r): Use it to remap labels. Handle recursion vs
857 remap_decls_p properly.
858 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
859 (find_outermost_region_in_block): New.
860 (new_label_mapper): New.
861 (move_sese_region_to_fn): Copy eh information to the new function
863 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
865 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
868 2006-03-22 Richard Sandiford <richard@codesourcery.com>
870 * doc/md.texi (-mshared): Mention that -mshared code can be linked
871 into shared libraries.
873 2006-03-22 Richard Sandiford <richard@codesourcery.com>
875 * doc/md.texi: Refer to i386/constraints.md instead of
877 * config/i386/constraints.md: New file, extracted from...
878 * config/i386/predicates.md: ...here.
879 * config/i386/i386.md: Include constraints.md.
881 2006-03-21 Jason Merrill <jason@redhat.com>
883 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
886 * expr.c (init_block_move_fn): Force default visibility.
887 (init_block_clear_fn): Likewise.
888 * builtins.c (expand_builtin_fork_or_exec): Likewise.
889 * targhooks.c (default_external_stack_protect_fail): Likewise.
891 2006-03-21 Richard Sandiford <richard@codesourcery.com>
893 * config/mips/predicates.md (const_call_insn_operand): Allow direct
894 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
895 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
896 Use TARGET_OLDABI instead of !TARGET_NEWABI.
897 (loadgp): Use mips_current_loadgp_style.
898 (loadgp_noshared): New pattern.
899 (sibcall_internal): Use MIPS_CALL.
900 (sibcall_value_internal): Likewise.
901 (sibcall_value_multiple_internal): Likewise.
902 (call_internal): Likewise.
903 (call_value_internal): Likewise.
904 (call_value_multiple_internal): Likewise.
905 (call_split): Use MIPS_CALL and add an 'S' constraint.
906 (call_value_split): Likewise.
907 (call_value_multiple_split): Likewise.
908 * config/mips/mips.opt (-mabicalls): Tweak docstring.
909 (-mshared): New option.
910 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
911 (mips_current_loadgp_style): Declare.
912 * config/mips/mips.c (mips_classify_symbol): Avoid using
913 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
914 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
915 TARGET_ABSOLUTE_ABICALLS.
916 (override_options): Adjust comments. Improve the warning that is
917 issued when -mabicalls and -G are used together.
918 (mips_file_start): Remove comment.
919 (mips_current_loadgp_style): New function.
920 (mips_gnu_local_gp): New variable.
921 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
923 (mips_output_function_prologue): Use mips_current_laodgp_style.
924 (mips_expand_prologue): Call mips_emit_loadgp before emitting
925 the cprestore instruction.
926 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
927 live for TARGET_ABSOLUTE_ABICALLS.
928 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
929 (ASM_SPEC): Pass down -mshared and -mno-shared.
930 (MIPS_CALL): New macro.
931 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
933 * doc/invoke.texi (-mabicalls): Update documentation.
934 (-mshared): Document.
936 2006-03-21 Steve Ellcey <sje@cup.hp.com>
938 * config/ia64/unwind-hpux.c: New file.
939 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
941 2006-03-21 Steve Ellcey <sje@cup.hp.com>
944 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
946 2006-03-21 Jeff Law <law@redhat.com>
948 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
949 type conversions of a VR_VARYING source to a wider type.
951 2006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
953 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
954 tm_file on Solaris 10 and later.
955 (sparc64-*-solaris2*): Likewise.
956 (sparc-*-solaris2*): Likewise.
957 * config/sol26.h: Rename to config/sol2-6.h.
958 * config/sol2-10.h: New file.
960 2006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
963 * tree-ssa-pre.c (create_component_ref_by_pieces):
966 2006-03-21 Jakub Jelinek <jakub@redhat.com>
969 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
970 return it immediately.
972 2006-03-21 Michael Matz <matz@suse.de>
974 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
976 (remove_arc, add_arc): Update num_out_arcs member.
977 (set_out_arc_insns_equiv_num): Returns nothing instead of number
979 (cache_presence): New function.
980 (compare_states_for_equiv): New function.
981 (state_is_differed): Don't take number of outargs, adjust callers.
982 Use new invariant for speeding up.
983 (init_equiv_class): Create initial classes based on sorted
985 (partition_equiv_class): Don't track out_arcs_num.
986 (evaluate_equiv_classes): Call cache_presence on all states and
989 2006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
991 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
992 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
993 (bfin_valid_reg_p): Test for pseudos explicitly and use only
994 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
996 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
997 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
998 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
999 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1000 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
1002 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
1003 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
1004 (REGNO_REG_CLASS): ARGP is in PREGS.
1005 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
1007 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
1008 to deal with those addresses.
1009 * addresses.h: New file.
1010 * caller-save.c: Include "addresses.h".
1011 (init_caller_save): Use new base_reg_class function.
1012 * rtl-factoring.c: Include "addresses.h".
1013 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
1014 * recog.c: Include "addresses.h".
1015 (preprocess_constraints): Use new base_reg_class function.
1016 * regrename.c: Include "addresses.h".
1017 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
1018 functions. Keep track of a new var INDEX_CODE to compute valid
1020 (replace_oldest_value_addr): Likewise.
1021 (replace_oldest_value_mem): Use base_reg_class.
1022 * reload.c: Include "addresses.h".
1023 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
1024 (find_reloads): Use new base_reg_class function.
1025 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
1026 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
1027 all callers and prototype changed.
1028 * reload1.c: Include "addresses.h".
1029 (maybe_fix_stack_asms): Use base_reg_class.
1030 * regclass.c: Include "addresses.h".
1031 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
1032 (init_reg_autoinc): Use new base_reg_class function.
1033 (record_reg_classes): Likewise.
1034 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
1035 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
1036 Use new args to compute necessary class.
1038 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
1039 regrename.o, rtl-factoring.o): Update dependencies.
1040 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
1041 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
1042 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
1043 REG_OK_FOR_INDEX_P): Delete documentation.
1045 2006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
1047 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
1048 from V7 to V9 for Solaris 7 and above.
1050 2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
1052 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
1053 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
1054 argument pointers may not alias any other storage.
1055 * common.opt: Define option -fargument-noalias-anything.
1056 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
1057 alias semantics is specified by flag_argument_noalias > 2.
1059 2006-03-20 Jeff Law <law@redhat.com>
1061 * tree-pass.h (pass_phi_only_copy_prop): Delete.
1062 (pass_phi_only_cprop): Declare.
1063 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
1065 * tree-ssa-dom.c (degenerate_phi_result): New function.
1066 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
1067 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
1068 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
1069 (eliminate_degenerate_phis): Likewise.
1070 (pass_phi_only_cprop): New pass descriptor.
1071 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
1072 support code. Callers updated.
1073 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
1074 (store_copy_prop): Likewise.
1075 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
1077 2006-03-20 Jason Merrill <jason@redhat.com>
1080 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
1081 (push_visibility, pop_visibility): Likewise.
1082 * c-pragma.h: Declare them.
1084 2006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
1086 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
1088 * config/sh/sh.c (find_regmode_weight): Change the type of the first
1089 parameter and use get_ebb_head_tail.
1090 (sh_md_init_global): Adjust uses of find_regmode_weight.
1092 2006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
1094 * function.h (struct function) <x_tail_recursion_reentry>:
1095 Rename to x_stack_check_probe_note.
1096 (tail_recursion_reentry): Rename to stack_check_probe_note.
1097 * function.c: Replace tail_recursion_reentry with
1098 stack_check_probe_note everywhere.
1099 (expand_function_start): Only emit a note for
1100 stack_check_probe_note with -fstack-protect.
1101 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
1103 * emit-rtl.c (remove_unnecessary_notes): Remove.
1104 (pass_remove_unnecessary_notes): Remove.
1105 * rtl.h (remove_unnecessary_notes): Remove prototype.
1106 * final.c (final_start_function): Don't call remove_unnecessary_notes.
1107 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
1108 * passes.c (pass_remove_unnecessary_notes): Don't run it.
1110 2006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
1113 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
1114 (valid_in_set): Handle ARRAY_REF.
1115 Change "if min_variant or VH" to asserts.
1116 (create_component_ref_by_pieces): Handle ARRAY_REF.
1117 (create_expression_by_pieces): Likewise.
1118 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
1120 2006-03-20 David Edelsohn <edelsohn@gnu.org>
1122 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
1123 is operand of switch, not str[0].
1125 2006-03-20 Alan Modra <amodra@bigpond.net.au>
1127 * config/rs6000/rs6000.c (rs6000_handle_option): Use
1128 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
1130 2006-03-19 David Edelsohn <edelsohn@gnu.org>
1132 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
1133 end of insn_extra_address_constraint declaration.
1135 2006-03-19 David Edelsohn <edelsohn@gnu.org>
1137 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
1138 (no-sum-in-toc): Same.
1139 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
1141 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
1142 NO_FP_IN_TOC for -fPIC instead of mask.
1144 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
1145 (BOOT_LDFLAGS): Delete.
1147 * config/rs6000/t-aix52: Same.
1149 * config/rs6000/rs6000.md (store_multiple_power): Delete.
1150 (stmsi[345678]_power): New.
1152 2006-03-17 Steve Ellcey <sje@cup.hp.com>
1154 * config/ia64/ia64.opt: Add empty line to end of file.
1156 2006-03-17 Richard Guenther <rguenther@suse.de>
1159 * builtins.c (get_pointer_alignment): For component style references
1160 adjust alignment to the component type alignment. Make sure
1161 to adjust alignment for component access of constants.
1163 2006-03-17 David Edelsohn <edelsohn@gnu.org>
1165 * config/rs6000/rs6000.md (strlensi): Emit barrier after
1168 2006-03-17 Paul Brook <paul@codesourcery.com>
1170 * doc/install.texi: Docuemnt --with-mode.
1171 * config.gcc: Add --with-mode for arm*-*-*.
1172 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
1174 2006-03-17 J"orn Rennecke <joern.rennecke@st.com>
1176 * sh.c (max_labelno_before_reorg): New variable.
1177 (sh_reorg): Initialize it.
1178 (find_barrier): Check max_labelno_before_reorg before using
1179 label_to_alignment. Take length of explicit alignment insns
1180 into account. When seeing a UNSPECV_CONST_END, return it.
1182 * sh.c (fixup_mova): Set mode of affected label to QImode.
1183 (untangle_mova): New function.
1184 (find_barrier): Use it. Check mode of label before decrementing
1186 (sh_reorg): Likewise.
1187 Set mode of all insns back to VOIDmode.
1189 * sh.c (MOVA_LABELREF): New macro.
1190 (mova_p, fixup_mova, sh_reorg): Use it.
1191 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
1192 ADDR_DIFF_VEC matches mova.
1194 2006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
1196 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
1197 with ATTRIBUTE_UNUSED.
1199 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
1201 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
1202 pointer, instead of assuming it is possible to derive the
1203 correct args size from a call insn.
1205 2006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1207 * rtl.h (CONST_INT_P): Define.
1208 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
1209 instead of GET_CODE(x) == CONST_INT.
1210 (vax_rtx_costs): Likewise.
1211 (vax_output_int_move): Likewise.
1212 (vax_output_int_add): Likewise.
1213 (legitimate_constant_address_p): Likewise.
1214 (index_term_p): Likewise.
1215 * config/vax/vax.h (PRINT_OPERAND): Likewise.
1216 * config/vax/vax.md (and<mode>3): Likewise.
1217 (ashrsi3): Likewise.
1219 (movstricthi): Likewise.
1220 (movstrictqi): Likewise.
1221 (rotrsi3): Likewise.
1222 (five unnamed insns): Likewise.
1224 2006-03-16 Geoffrey Keating <geoffk@apple.com>
1226 * doc/tm.texi (SDB and DWARF): Add extra parameter to
1227 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
1228 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
1229 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
1230 Pass to ASM_OUTPUT_DWARF_OFFSET.
1231 * dwarf2out.c (debug_frame_section): New.
1232 (output_call_frame_info): Use debug_frame_section. Pass it to
1233 dw2_asm_output_offset.
1234 (output_die): Pass appropriate section to dw2_asm_output_offset.
1235 (output_compilation_unit_header): Likewise.
1236 (output_pubnames): Likewise.
1237 (output_aranges): Likewise.
1238 (enum dw_val_class): Break dw_val_class_lbl_offset into
1239 dw_val_class_lineptr and dw_val_class_macptr.
1240 (add_AT_lbl_offset): Delete.
1241 (add_AT_lineptr): New.
1242 (add_AT_macptr): New.
1243 (AT_lbl): Expect a lineptr or macptr.
1244 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
1245 (attr_checksum): Likewise.
1246 (same_dw_val_p): Likewise.
1247 (size_of_die): Likewise.
1248 (value_format): Likewise.
1249 (output_die): Likewise.
1250 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
1252 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
1253 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
1254 * config/darwin-protos.h (darwin_file_start): New.
1255 (darwin_asm_output_dwarf_offset): New.
1256 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
1257 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
1259 * config/darwin.c (darwin_emit_unwind_label): Don't output label
1260 if not EH section; simplify.
1261 (darwin_file_start): New.
1262 (darwin_asm_output_dwarf_offset): New.
1263 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
1265 (DEBUG_INFO_SECTION): Likewise.
1266 (DEBUG_ABBREV_SECTION): Likewise.
1267 (DEBUG_ARANGES_SECTION): Likewise.
1268 (DEBUG_MACINFO_SECTION): Likewise.
1269 (DEBUG_LINE_SECTION): Likewise.
1270 (DEBUG_LOC_SECTION): Likewise.
1271 (DEBUG_PUBNAMES_SECTION): Likewise.
1272 (DEBUG_STR_SECTION): Likewise.
1273 (DEBUG_RANGES_SECTION): Likewise.
1274 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
1275 (ASM_OUTPUT_DWARF_OFFSET): New.
1277 2006-03-16 Joseph S. Myers <joseph@codesourcery.com>
1279 * config.gcc (tm_defines): Always add to previous value rather
1282 2006-03-16 Richard Sandiford <richard@codesourcery.com>
1284 * config/mips/predicates.md (splittable_const_int_operand): New,
1285 split from move_operand.
1286 (splittable_symbolic_operand): New.
1287 (move_operand): Add commentary. Use splittable_const_int_operand.
1288 Inline mips_atomic_symbolic_constant_p.
1289 * config/mips/mips.md: Add combine splitters for handling moves
1290 of splittable_const_int_operands and splittable_symbolic_operands.
1291 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
1292 (mips_split_symbol): Declare.
1293 (mips_move_integer): Declare.
1294 * config/mips/mips.c (mips_split_p): Make global.
1295 (TARGET_MIN_ANCHOR_OFFSET): Override default.
1296 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
1297 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
1298 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
1299 (mips_offset_within_object_p): Handle block symbols.
1300 (mips_atomic_symbolic_constant_p): Delete.
1301 (mips_cannot_force_const_mem): Return false for constants that
1302 mips_legitimize_move can handle.
1303 (mips_use_blocks_for_constant_p): New function.
1304 (mips_split_symbol): Make global.
1305 (mips_move_integer): Likewise. Add a temporary register argument.
1306 (mips_legitimize_const_move): Use splittable_const_int_operand and
1307 splittable_symbolic_operand.
1308 (mips_use_anchors_for_symbol_p): New function.
1309 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
1310 (mips_split_p): Declare.
1312 2006-03-16 Richard Sandiford <richard@codesourcery.com>
1314 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
1315 (mips*-*-linux*): Likewise.
1317 2006-03-16 Roger Sayle <roger@eyesopen.com>
1318 Daniel Speyer <dspeyer@wam.umd.edu>
1321 * tree-dump.c (dump_real): New function.
1322 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
1323 * Makefile.in (REAL_H): New macro for dependencies on real.h.
1324 (tree-dump.o): Add $(REAL_H) to the dependencies.
1326 2006-03-16 Roger Sayle <roger@eyesopen.com>
1329 * real.c (real_from_string): If the mantissa is zero, don't bother
1330 parsing the exponent as the result should always be zero.
1332 2006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
1334 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
1336 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1338 * config/ia64/ia64.c (stops_p): Added explicit initialization.
1339 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
1340 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
1341 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
1342 ia64_sched_finish_global): New static functions to implement
1343 hooks from gcc_target.sched.
1344 (spec_check_no, max_uid, pending_data_specs): New static variables.
1345 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
1346 ia64_spec_check_src_p): New static functions.
1347 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
1348 (TARGET_SCHED_ADJUST_COST): Removed.
1349 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
1350 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
1351 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
1352 TARGET_SCHED_GEN_CHECK,
1353 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
1354 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
1355 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
1356 Fixed to handle speculation checks.
1357 (rtx_needs_barrier): Fixed to handle speculative loads and
1359 (ia64_variable_issue): Added code to count speculative loads and their
1361 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
1363 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
1365 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
1367 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
1368 (ia64_reorg): Reset stops_p to NULL after it is freed.
1369 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
1370 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
1371 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
1373 (data_speculative, control_speculative, check_load): New attributes.
1374 (mov<mode>_advanced, mov<mode>_speculative,
1375 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
1376 zero_extend<mode>di2_speculative,
1377 zero_extend<mode>di2_speculative_advanced): New patterns for
1378 data and control speculative loads.
1379 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
1381 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
1382 New pattern for data and control speculation checks.
1383 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
1384 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
1385 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
1386 Auxiliary definitions for the patterns.
1387 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
1388 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
1390 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
1392 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
1393 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
1394 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
1395 New resource constraints.
1396 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
1398 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
1399 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
1400 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
1401 msched-in-control-spec, msched-ldc, msched-control-ldc,
1402 msched-spec-verbose, msched-prefer-non-data-spec-insns,
1403 msched-prefer-non-control-spec-insns,
1404 msched-count-spec-in-critical-path): New flags to tune speculative
1406 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
1407 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
1408 msched-in-control-spec, msched-ldc, msched-control-ldc,
1409 msched-spec-verbose, msched-prefer-non-data-spec-insns,
1410 msched-prefer-non-control-spec-insns,
1411 msched-count-spec-in-critical-path): Document new flags.
1413 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1415 * target.h (struct spec_info_def): New opaque declaration.
1416 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
1417 speculate_insn, needs_block_p, gen_check,
1418 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
1419 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
1420 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
1421 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
1422 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
1423 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
1425 (TARGET_SCHED): Use new macros.
1426 * rtl.h (copy_DEPS_LIST_list): New prototype.
1427 * sched-int.h (struct sched_info): Change signature of new_ready field,
1428 adjust all initializations. New fields: add_remove_insn,
1429 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
1430 region_head_or_leaf_p.
1431 (struct spec_info_def): New structure declaration.
1432 (spec_info_t): New typedef.
1433 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
1434 recovery_block, orig_pat.
1435 (glat_start, glat_end): New variables declaraions.
1436 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
1438 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
1439 DETACH_LIFE_INFO, USE_GLAT.
1440 (enum SPEC_SCHED_FLAGS): New enumeration.
1441 (NOTE_NOTE_BB_P): New macro.
1442 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
1443 attach_life_info, debug_spec_status, check_reg_live): New functions.
1444 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
1445 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
1447 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
1448 * ddg.c (get_block_head_tail): Adjust all uses.
1449 * modulo-sched.c (get_block_head_tail): Adjust all uses.
1450 (sms_sched_info): Initialize new fields.
1451 (contributes_to_priority): Removed.
1452 * haifa-sched.c (params.h): New include.
1453 (get_block_head_tail): Adjust all uses.
1454 (ISSUE_POINTS): New macro.
1455 (glat_start, glat_end): New global variables.
1456 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
1457 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
1458 old_last_basic_block, before_recovery, current_sched_info_var,
1459 rgn_n_insns, luid): New static variables.
1460 (insn_cost1): New function. Move logic from insn_cost to here.
1461 (find_insn_reg_weight1): New function. Move logic from
1462 find_insn_reg_weight to here.
1463 (reemit_notes, move_insn, max_issue): Change signature.
1464 (move_insn1): Removed.
1465 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
1466 extend_bb): New static functions to support extension of scheduler's
1468 (generate_recovery_code, process_insn_depend_be_in_spec,
1469 begin_speculative_block, add_to_speculative_block,
1470 init_before_recovery, create_recovery_block, create_check_block_twin,
1471 fix_recovery_deps): New static functions to support
1472 generation of recovery code.
1473 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
1474 restore_bb_notes, move_block_after_check, move_succs): New static
1475 functions to support ebb scheduling.
1476 (init_glat, init_glat1, attach_life_info1, free_glat): New static
1477 functions to support handling of register live information.
1478 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
1479 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
1480 add_jump_dependencies): New static functions.
1481 (check_cfg, has_edge_p, check_sched_flags): New static functions for
1482 consistancy checking.
1483 (debug_spec_status): New function to call from debugger.
1484 (priority): Added code to handle speculation checks.
1485 (rank_for_schedule): Added code to distinguish speculative instructions.
1486 (schedule_insn): Added code to handle speculation checks.
1487 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
1488 Fixed to handle ebbs.
1489 (move_insn): Added code to handle ebb scheduling.
1490 (max_issue): Added code to use ISSUE_POINTS of instructions.
1491 (choose_ready): Added code to choose between speculative and
1492 non-speculative instructions.
1493 (schedule_block): Added code to handle ebb scheduling and scheduling of
1494 speculative instructions.
1495 (sched_init): Initialize new variables.
1496 (sched_finish): Free new variables. Print statistics.
1497 (try_ready): Added code to handle speculative instructions.
1498 * lists.c (copy_DEPS_LIST_list): New function.
1499 * sched-deps.c (extend_dependency_caches): New function. Move logic
1500 from create_dependency_caches to here.
1501 (get_dep_weak, ds_merge): Make global.
1502 * genattr.c (main): Code to output prototype for
1503 dfa_clear_single_insn_cache.
1504 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
1505 (output_dfa_clean_insn_cache_func): Code to output
1506 dfa_clear_single_insn_cache function.
1507 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
1509 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
1511 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
1512 New static variables.
1513 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
1514 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
1516 (ebb_sched_info): Initialize new fields.
1517 (get_block_head_tail): Adjust all uses.
1518 (compute_jump_reg_dependencies): Fixed to use glat_start.
1519 (schedule_ebb): Code to remove unreachable last block.
1520 (schedule_ebbs): Added code to update register live information.
1521 * sched-rgn.c (region_sched_info): Initialize new fields.
1522 (get_block_head_tail): Adjust all uses.
1523 (last_was_jump): Removed. Adjust users.
1524 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
1525 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
1526 Implement new hooks.
1527 (check_dead_notes1): New static function.
1528 (struct region): New fields: dont_calc_deps, has_real_ebb.
1529 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
1530 (BB_TO_BLOCK): Fixed to handle EBBs.
1531 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
1532 (ebb_head): New static variable.
1533 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
1534 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
1536 (compute_dom_prob_ps): New assertion.
1537 (check_live_1, update_live_1): Fixed to work with glat_start instead of
1538 global_live_at_start.
1539 (init_ready_list): New assertions.
1540 (can_schedule_ready_p): Split update code to begin_schedule_ready.
1541 (new_ready): Add support for BEGIN_CONTROL speculation.
1542 (schedule_insns): Fixed code that updates register live information
1544 (schedule_region): Fixed to handle EBBs.
1545 (init_regions): Use extend_regions and check_dead_notes1.
1546 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
1547 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
1548 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
1549 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
1550 TARGET_SCHED_GEN_CHECK,
1551 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
1552 TARGET_SCHED_SET_SCHED_FLAGS): Document.
1553 * doc/invoke.texi (max-sched-insn-conflict-delay,
1554 sched-spec-prob-cutoff): Document.
1556 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1558 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
1559 inter_tick, queue_index.
1560 (struct sched_info): Change signature of init_ready_list field.
1561 Adjust all initializations.
1562 (RESOLVED_DEPS): New access macro.
1563 (ready_add): Remove prototype.
1564 (try_ready): Add prototype.
1565 * sched-rgn.c (init_ready_list): Use try_ready.
1566 (schedule_region): Initialize
1567 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
1568 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
1569 (init_ready_list): Use try_ready.
1570 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
1571 * lists.c (remove_list_elem): Remove `static'.
1572 (remove_free_INSN_LIST_elem): New function.
1573 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
1574 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
1575 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
1577 (readyp): New variable.
1578 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
1579 change_queue_index, resolve_dep): New static functions.
1580 (try_ready): New function. Adjust callers in sched-rgn.c and
1581 sched-ebb.c to use it instead of ready_add.
1582 (clock_var): Move at the begining of file.
1583 (rank_for_schedule): Fix typo.
1584 (queue_insn): Add assertion. Handle QUEUE_INDEX.
1585 (ready_lastpos): Enforce assertion.
1586 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
1588 (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
1589 (schedule_insn): Rewrite to use try_ready and resolve_dep.
1590 (queue_to_ready): Use free_INSN_LIST_list.
1591 (early_queue_to_ready): Fix typo.
1592 (schedule_block): Init readyp. Move init_ready_list call after the
1593 initialization of clock_var. Fix error in rejecting insn by
1594 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
1595 that previously corrected INSN_TICKs. Add code for handling
1597 (set_priorities): Fix typo.
1598 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
1599 Clarify comment and code that keeps current_sched_info->next_tail
1602 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1604 * sched-rgn.c (extend_rgns): New static function.
1605 (find_rgns): Use it.
1606 (gather_region_statistics, print_region_statistics): New static
1608 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
1609 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
1611 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1612 Andrey Belevantsev <abel@ispras.ru>
1614 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
1615 * lists.c (unused_deps_list): New variable.
1616 (free_list): Add assertions to verify the proper distinguishing
1617 between INSN_LISTs and DEPS_LISTs.
1618 (find_list_elem, remove_list_elem, remove_list_node): New static
1620 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
1621 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
1622 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
1623 (alloc_INSN_LIST): Assert that the list we're working on is indeed
1625 (free_INSN_LIST_node): Likewise.
1626 * modulo-sched.c (current_sched_info): Initialize flags field.
1627 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
1628 * rtl.def (DEPS_LIST): Define.
1629 * rtl.h: Declare new functions from lists.c.
1630 * sched-deps.c (spec_dependency_cache): New static variable.
1631 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
1632 (add_dependence): Change return type to void. Move the logic to ...
1633 (add_or_update_back_dep_1): ... here. Handle speculative dependencies.
1634 (delete_all_dependences): Add comment about forward_dependency_cache.
1635 Handle spec_dependency_cache. Handle DEPS_LISTs.
1636 (fixup_sched_groups): Clarify the change of priority of output
1637 and anti dependencies.
1638 (sched_analyze_2): Adjust add_dependence calls to create data
1639 speculative dependence.
1640 (add_forward_dependence): Renamed to add_forw_dep, change prototype.
1641 Adjust all callers. Handle DEPS_LISTS.
1642 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
1643 presence of speculation.
1644 (init_dependency_caches, free_dependency_caches):
1645 Handle spec_dependency_cache.
1646 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
1647 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
1648 New static functions.
1649 (add_or_update_back_dep, add_or_update_back_forw_dep,
1650 add_back_forw_dep, delete_back_forw_dep): New functions.
1651 * sched-int.h (ds_t, dw_t): New typedefs.
1652 (struct sched_info): Add new field flags.
1653 (struct haifa_insn_data): Add new bitfield has_internal_dep.
1654 Prototype new sched-deps.c functions.
1655 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
1656 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
1657 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
1658 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
1659 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
1660 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
1662 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
1664 * sched-rgn.c (current_sched_info): Initialize flags field.
1665 (schedule_insns): Initialize current_sched_info before the sched_init
1667 * sched-ebb.c (current_sched_info): Initialize flags field.
1668 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
1669 Call add_or_update_back_dep instead of add_dependence.
1670 Create control speculative dependencies.
1671 (schedule_insns): Initialize current_sched_info before the sched_init
1674 2006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
1676 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
1678 (sh_fallback_frame_state): Likewise.
1680 2006-03-15 Geoffrey Keating <geoffk@apple.com>
1682 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
1683 Do switch on default_use_cxa_atexit.
1684 (powerpc*-*-darwin*): Build crt2.o on powerpc.
1685 * config/darwin-crt3.o: New.
1686 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
1687 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
1688 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
1690 * config/rs6000/t-darwin: Move crt2.o building to here.
1691 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
1692 Mac OS version for using __cxa_get_exception_ptr. Don't test versions
1695 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1697 * config/vax/vax.c (nonindexed_address_p): Change logical negation
1698 from '! xxx' to '!xxx' for coding-style conformance.
1699 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
1700 (EXTRA_CONSTRAINT): Likewise.
1701 * config/vax/vax.md (four unnamed insns): Likewise.
1703 2006-03-15 Paul Brook <paul@codesourcery.com>
1705 * config/arm/arm.c (minipool_pad): New.
1706 (add_minipool_forward_ref): Include pool alignment padding in address
1708 (push_minipool_fix): Set minipool_pad.
1709 (minipool_pad): Ditto.
1711 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1713 * config/vax/vax.c (split_quadword_operands): Use MEM_P()
1714 instead of GET_CODE() == MEM and REG_P() instead of
1716 (print_operand_address): Likewise.
1717 (vax_address_cost): Likewise.
1718 (vax_rtx_costs): Likewise.
1719 (vax_notice_update_cc): Likewise.
1720 (vax_output_int_add): Likewise.
1721 (INDEX_REGISTER_P): Likewise.
1722 (BASE_REGISTER_P): Likewise.
1723 (nonindexed_address_p): Likewise.
1724 (vax_mode_dependent_address_p): Likewise.
1725 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
1726 (PRINT_OPERAND): Likewise.
1727 * config/vax/vax.md (ashlsi3): Likewise.
1728 (ashlsi3): Likewise.
1729 (some more unnamed insns): Likewise.
1731 2006-03-15 Kazu Hirata <kazu@codesourcery.com>
1733 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
1734 iterator-style macro.
1735 (mark_control_dependent_edges_necessary): Update the use of
1736 EXECUTE_IF_CONTROL_DEPENDENT.
1738 2006-03-15 J"orn Rennecke <joern.rennecke@st.com>
1740 * config/sh/predicates.md (cache_address_operand): Special.
1741 (ua_address_operand): Likewise.
1743 2006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
1745 * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
1747 * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
1749 2006-03-15 Andreas Schwab <schwab@suse.de>
1751 * gensupport.c (identify_predicable_attribute): Don't free p_false
1752 when it is still in use.
1754 2006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
1756 * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
1757 the default setting here.
1759 2006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
1761 * tree-pass.h (pass_cfg): Remove.
1762 * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
1763 * passes.c (pass_cfg): Don't run it.
1765 2006-03-14 Kazu Hirata <kazu@codesourcery.com>
1767 * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
1768 * reg-stack.c (stack_regs_mentioned_data): Change the type to
1770 (stack_regs_mentioned): Update the uses of
1771 stack_regs_mentioned_data. Don't access the array beyond its
1773 (reg_to_stack): Update the uses of stack_regs_mentioned_data.
1774 Don't include gt-reg-stack.h.
1776 * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
1777 * system.h (UNALIGNED_WORD_ASM_OP): Poison.
1779 * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
1782 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
1785 2006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1787 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
1789 2006-03-14 Richard Guenther <rguenther@suse.de>
1791 PR tree-optimization/26672
1792 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
1795 2006-03-14 Richard Guenther <rguenther@suse.de>
1797 PR tree-optimization/26667
1798 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
1799 node for the callees. Always allow inlining if it will shrink
1802 2006-03-14 Richard Guenther <rguenther@suse.de>
1805 * builtins.c (get_pointer_alignment): Prefer alignment
1806 information from decls over that from types.
1808 2006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
1811 * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
1813 2006-03-14 Joseph S. Myers <joseph@codesourcery.com>
1815 * config/rs6000/rs6000.opt (mdlmzb): New option.
1816 (msched-prolog, msched-epilog): Use Var not Mask.
1817 * doc/invoke.texi (-mdlmzb): Document.
1818 * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1820 (rs6000_override_options): Enable -mdlmzb for 405 and 440.
1821 * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
1823 2006-03-13 Uttam Pawar <uttamp@us.ibm.com>
1825 PR rtl-optimization/25739
1826 * bt-load.c (augment_live_range): Free tos pointer.
1828 * gensupport.c (identify_predicable_attribute): Free
1830 * gcov.c (create_file_names): Free name pointer.
1832 2006-03-13 Roger Sayle <roger@eyesopen.com>
1835 * stmt.c (emit_case_nodes): Handle the case where the index is a
1836 CONST_INT, where the comparison mode is specified by the index type.
1838 2006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1840 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
1843 2006-03-13 Richard Sandiford <richard@codesourcery.com>
1845 * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
1846 (*branch_fp_inverted): Likewise.
1848 2006-03-13 Jakub Jelinek <jakub@redhat.com>
1851 * omp-low.c (expand_omp_for_generic): Mark istart0
1852 and iend0 as addressable.
1854 2006-03-13 Jie Zhang <jie.zhang@analog.com>
1856 * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
1858 2006-03-13 Jeff Law <law@redhat.com>
1860 * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
1861 virtual operands are interesting.
1862 (vrp_visit_stmt): Corresponding changes.
1864 2006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
1866 * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
1868 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
1869 TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
1870 * config/bfin/crti.S: Use it instead of __PIC__.
1871 * config/bfin/crtn.S: Likewise.
1873 * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
1874 call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
1876 Lose 'G' modifier for call operand.
1877 * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
1878 recognize 'G' modifier.
1880 2006-03-13 Eric Botcazou <ebotcazou@adacore.com>
1883 * gimplify.c (gimplify_switch_expr): Discard empty ranges.
1884 * stmt.c (expand_case): Likewise.
1886 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
1888 PR rtl-optimization/26254
1889 * loop-invariant.c (seq_insns_valid_p): New function.
1890 (move_invariant_reg): Only emit new code if it is valid.
1892 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
1894 * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
1896 (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
1897 (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
1898 (commit_one_edge_insertion): Do not look for loop notes.
1900 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
1902 * jump.c (follow_jumps): Do not check for loop notes. Move check for
1903 flag_test_coverage out of loop.
1905 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
1907 * final.c (shorten_branches): Remove outdated comment, and turn
1908 the if branch that guards it to continue.
1910 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
1912 * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
1913 * cfgloop.h (struct loop): Remove unused fields.
1915 2006-03-13 Kazu Hirata <kazu@codesourcery.com>
1917 * doc/invoke.texi (-fdump-rtl-loop): Remove.
1918 (-dL, -fdump-rtl-loop2): Update the dump file names
1920 * doc/invoke.texi: Update dump file names.
1922 2006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
1924 * predict.c (estimate_probability): Remove.
1925 * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
1926 * basic-block.h (estimate_probability): Remove prototype.
1927 * passes.c (finish_optimization_passes): Dump branch prediction or
1928 profiling heuristics to the .profile tree dump.
1929 (init_optimization_passes): Unqueue pass_branch_prob.
1931 * doc/invoke.texi (-fdump-rtl-bp): Remove.
1933 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
1935 * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
1936 * rtl.h (LABEL_NEXTREF): Remove field accessor.
1938 2006-03-11 Eric Botcazou <ebotcazou@adacore.com>
1940 * function.h (frame_offset_overflow): Declare.
1941 * function.c (frame_offset_overflow): New function.
1942 (assign_stack_local_1): Call it to detect that the offset overflows.
1943 * cfgexpand.c (alloc_stack_frame_space): Likewise.
1945 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
1947 * config/sh/sh.c: Include alloc-pool.h.
1948 (label_ref_list_pool): New alloc pool.
1949 (label_ref_list_t): New type for lists of labels.
1950 (struct pool_node): Make wend a label_ref_list_t.
1951 (add_constant): Use the new type, eradicate LABEL_NEXTREF
1953 (dump_table): Likewise.
1954 (sh_reorg): Set up the alloc pool before using add_constant and
1955 dump_table, and destroy it when finishing.
1957 2006-03-11 Richard Sandiford <richard@codesourcery.com>
1959 * config/mips/mips.c: Remove redundant comment.
1961 2006-03-10 Jason Merrill <jason@redhat.com>
1964 * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
1965 the target was declared 'register'.
1967 2006-03-10 Adam Nemet <anemet@caviumnetworks.com>
1969 * genpreds.c (write_insn_constraint_len): Change definition of
1970 insn_constraint_len to return size_t to match the declaration.
1972 2006-03-10 DJ Delorie <dj@redhat.com>
1974 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
1976 (m32c_expand_insv): Fix test for an AND mask.
1978 2006-03-10 Richard Guenther <rguenther@suse.de>
1981 * builtins.c (get_pointer_alignment): Handle component
1982 references for field alignment.
1984 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
1986 * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
1987 when building with libgloss.
1988 (sh*elf): Implement --without-fp option.
1989 (sh64-superh-linux*): Don't multilib.
1991 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
1993 * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
1995 2006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
1997 * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
1998 Set it when one of the replacement functions returned true.
1999 Return TODO_cleanup_cfg if cfgchanged is true.
2000 (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
2002 2006-03-09 Adam Nemet <anemet@caviumnetworks.com>
2004 * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
2005 instead of gen_lowpart.
2007 2006-03-09 Richard Sandiford <richard@codesourcery.com>
2009 * config/mips/mips-protos.h (mips_output_conditional_branch): Change
2011 (mips_output_order_conditional_branch): Declare.
2012 * config/mips/mips.h (MIPS_BRANCH): New macro.
2013 * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
2014 for the comparison. Use gen_condjump.
2015 (mips_output_conditional_branch): Rework interface to take the
2016 asm templates for a direct branch and the inverse of a direct branch.
2017 (mips_output_order_conditional_branch): New function.
2018 (mips_builtin_branch_and_move): New function.
2019 (mips_expand_builtin_compare): Use it. Use VOIDmode for the
2020 branch condition. Use gen_single_cc as the condition for
2021 __builtin_mips_upper_* or __builtin_mips_lower_*.
2022 (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
2023 Use VOIDmode for the branch condition.
2024 * config/mips/predicates.md (order_operator): New predicate.
2025 * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
2026 (branch_fp): Rename to...
2027 (*branch_fp): ...this. Remove mode from comparison operator.
2028 Use new mips_output_conditional_branch interface.
2029 (branch_fp_inverted): Rename to...
2030 (*branch_fp_inverted): ...this and update as for *branch_fp.
2031 (*branch_zero<mode>): Rename to...
2032 (*branch_order<mode>): ...this. Remove mode from comparison operator.
2033 Use mips_output_order_conditional_branch. Only accept ordered
2035 (*branch_zero<mode>_inverted): Rename to...
2036 (*branch_order<mode>_inverted): ...this and update as for
2037 *branch_order<mode>.
2038 (*branch_equality<mode>): Accept zero as the second operand to
2039 the equality operator. Use the new mips_output_conditional_branch
2041 (*branch_equality<mode>_inverted): Likewise.
2042 (condjump): New expander.
2043 * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
2045 * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
2046 (bc1any2t, bc1any2f): Likewise.
2047 (single_cc): New expander.
2048 (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
2050 2006-03-09 Richard Sandiford <richard@codesourcery.com>
2052 * doc/md.texi: Update documentation of MIPS constraints.
2053 * config/mips/constraints.md: New file.
2054 * config/mips/mips.md: Include it.
2055 * config/mips/mips.c (mips_char_to_class): Delete.
2056 (override_options): Don't initialize mips_char_to_class.
2057 * config/mips/mips.h (mips_char_to_class): Delete.
2058 (REG_CLASS_FROM_LETTER): Delete.
2059 (CONST_OK_FOR_LETTER_P): Delete.
2060 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2061 (EXTRA_CONSTRAINT_Y): Delete.
2062 (EXTRA_CONSTRAINT_STR): Delete.
2063 (CONSTRAINT_LEN): Delete.
2064 (EXTRA_MEMORY_CONSTRAINT): Delete.
2066 2006-03-09 Diego Novillo <dnovillo@redhat.com>
2068 * tree-cfg.c (move_block_to_fn): Remove the statements from the
2069 original fn's eh regions.
2071 2006-03-09 Eric Botcazou <ebotcazou@adacore.com>
2073 * fold-const.c (build_range_check): Make sure to use a valid type to
2074 apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
2077 (range_predecessor): New static function.
2078 (range_successor): Likewise.
2079 (merge_ranges): Use them to compute predecessors and successors of
2082 2006-03-09 Roger Sayle <roger@eyesopen.com>
2085 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
2086 X op C3, consider whether C3 overflows towards +Inf or -Inf.
2088 2006-03-08 DJ Delorie <dj@redhat.com>
2090 * config/m32c/addsub.md (addqi3): Disparage a0/a1.
2091 (addpsi3): Expand to include memory operands. Remove
2092 reload-specific splits.
2093 * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
2094 (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
2095 (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
2096 (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
2097 (shift1_qi, shift1_hi, insv): New.
2098 * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
2099 (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
2100 cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
2102 * config/m32c/m32c-protos.h: Update as needed.
2103 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
2104 default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
2105 Fail for unrecognized R* constraints.
2106 (m32c_cannot_change_mode_class): Be more picky about pseudos.
2107 (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
2108 (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
2110 (m32c_init_libfuncs): New.
2111 (m32c_legitimate_address_p): Add debug wrapper.
2112 (m32c_rtx_costs): New.
2113 (m32c_address_cost): New.
2114 (conversions): Add 'B' prefix.
2115 (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
2116 operands, or word regnames for QI operands. 'B' prints bit
2118 (m32c_expand_setmemhi): New.
2119 (m32c_expand_movmemhi): New.
2120 (m32c_expand_movstr): New.
2121 (m32c_expand_cmpstr): New.
2122 (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
2123 (m32c_expand_neg_mulpsi3): Handle non-ints.
2124 (m32c_cmp_flg_0): New.
2125 (m32c_expand_movcc): New.
2126 (m32c_expand_insv): New.
2127 (m32c_scc_pattern): New.
2128 * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
2129 a0/a1 out of SIregs.
2130 (STORE_FLAG_VALUE): New.
2131 * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
2134 * config/m32c/mov.md: Make constraints more liberal.
2135 (zero_extendqihi2): Optimize r0/r1 case.
2136 * config/m32c/muldiv.md (mulpsi3): Check for intvals.
2137 * config/m32c/predicates.md (m32c_any_operand): New.
2138 (m32c_nonimmediate_operand): New.
2139 (m32c_hl_operand): New.
2140 (m32c_r3_operand): New.
2143 (memsym_operand): New.
2144 (memimmed_operand): New.
2145 (a_qi_operand): New.
2146 (m32c_eqne_operator): New.
2147 (m32c_1bit8_operand): New.
2148 (m32c_1bit16_operand): New.
2149 (m32c_1mask8_operand): New.
2150 (m32c_1mask16_operand): New.
2151 * config/m32c/blkmov.md: New file.
2152 * config/m32c/t-m32c (MD_FILES): Add blkmov.
2154 2006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
2156 * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
2157 unsigned to fix signed/unsigned comparison issue in
2158 DWARF2_FRAME_REG_OUT.
2159 (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
2160 unsigned comparison issue in DWARF2_FRAME_REG_OUT.
2162 * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
2163 of ptr into the ENABLE_CHECKING section.
2165 2006-03-08 Jeff Law <law@redhat.com>
2167 * tree-vrp.c (infer_value_range): Only count pointer uses
2168 and dereferences if -fdelete-null-pointer-checks is enabled.
2170 * tree-vrp.c (find_assert_locations): Infer value ranges for
2171 single use pointers, but do not create ASSERT_EXPRs for them.
2172 When a non-null range is inferred for a pointer, backwards
2173 propagate that range to other equivalent pointers through the
2176 2006-03-08 Paolo Bonzini <bonzini@gnu.org>
2179 * Makefile.in (dvi, html, install-info): Invoke the corresponding
2180 language hook targets.
2181 * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
2182 objcp/Make-lang.in: Create stub rules for dvi, html, install-info
2183 if language hook targets were missing.
2185 2006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
2187 * tree-ssa-opfinalize.h: Removed.
2188 * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
2190 * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
2191 (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
2192 INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
2193 add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
2194 finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
2195 finalize_ssa_v_must_def_ops): New.
2197 2006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2199 * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
2202 2006-03-07 Geoffrey Keating <geoffk@apple.com>
2204 * varasm.c (assemble_end_function): Say that 'fnname' is unused.
2206 * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
2207 addresses with offsets; reorganize.
2209 * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
2210 (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
2211 (expand_builtin_init_dwarf_reg_sizes): Likewise.
2213 2006-03-08 David Billinghurst <David.Billinghurst@riotinto.com>
2216 * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
2218 2006-03-08 Ben Elliston <bje@au.ibm.com>
2220 * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
2222 2006-03-07 Aldy Hernandez <aldyh@redhat.com>
2225 * doc/passes.texi (Tree-SSA passes): Document omp lowering and
2228 2006-03-07 Richard Guenther <rguenther@suse.de>
2230 PR tree-optimization/26587
2231 * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
2233 2006-03-07 Richard Sandiford <richard@codesourcery.com>
2235 * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
2237 2006-03-07 Richard Sandiford <richard@codesourcery.com>
2239 * hooks.c (hook_bool_mode_rtx_true): New function.
2240 * hooks.h (hook_bool_mode_rtx_true): Declare.
2241 * toplev.c (compile_file): Call output_shared_constant_pool.
2242 * varasm.c (shared_constant_pool): New variable.
2243 (assemble_start_function, assemble_end_function): Remove arguments
2244 from call to output_constant_pool.
2245 (create_constant_pool): New function, split out from...
2246 (init_varasm_status): ...here.
2247 (force_const_mem): Choose between the shared and per-function constant
2248 pools. Set current_function_uses_const_pool when reusing old entries
2249 as well as when creating new ones.
2250 (mark_constant): Ignore data argument.
2251 (mark_constants): Remove pool argument.
2252 (mark_constant_pool): Likewise. Use current_function_uses_const_pool
2253 to decide whether the function uses a constant pool.
2254 (output_constant_pool_contents): New function, split out from...
2255 (output_constant_pool): ...here.
2256 (output_shared_constant_pool): New function.
2257 (init_varasm_once): Initialize shared_constant_pool.
2258 * output.h (output_constant_pool): Delete.
2259 (output_shared_constant_pool): Declare.
2260 * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
2261 * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
2263 2006-03-06 Nick Clifton <nickc@redhat.com>
2265 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
2266 flag_strength_reduce.
2268 2006-03-06 Ben Elliston <bje@au.ibm.com>
2270 * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
2271 x86_64-*-linux* configurations.
2273 * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
2274 (LIBGCC2_WORDS_BIG_ENDIAN): Define.
2276 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
2278 * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
2280 * basic-block.h: Remove the extern for
2281 rediscover_loops_after_threading.
2283 * cfgloop.c (cancel_loop): Make it static.
2284 * cfgloop.h: Remove the prototype for cancel_loop.
2286 * flow.c (recompute_reg_usage): Make it static.
2287 * rtl.h: Remove the prototype for recompute_reg_usage.
2289 * function.c (use_return_register): Make it static.
2290 * function.h: Remove the prototype.
2292 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
2294 * recog.c (volatile_mem_p, validate_change_maybe_volatile):
2296 * recog.h: Remove the prototype for
2297 validate_change_maybe_volatile.
2299 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
2301 * rtlanal.c (replace_reg): Remove.
2302 * rtl.h: Remove the prototype for replace_reg.
2304 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
2306 * regclass.c (reg_scan_update): Remove.
2307 (reg_scan_mark_refs): Remove the last argument.
2308 * rtl.h: Remove the prototype for reg_scan_update.
2310 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
2312 * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
2313 combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
2314 config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
2315 config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
2316 df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
2317 loop-invariant.c, omp-low.c, opts.c, passes.c,
2318 rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
2319 tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
2320 tree-ssa-structalias.c, tree-ssa-threadedge.c,
2321 tree-ssa-threadupdate.c, tree-vect-patterns.c,
2322 tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
2323 unwind-dw2.c: Fix comment typos. Follow spelling conventions.
2325 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
2327 * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
2328 * dwarf2out.h: Remove the prototype for
2329 dwarf2out_add_library_unit_info.
2331 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
2333 * tree.c (add_var_to_bind_expr): Remove.
2334 * tree.h: Remove the prototype for add_var_to_bind_expr.
2336 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
2338 * regclass.c (n_non_fixed_regs): Remove.
2339 (init_reg_sets_1, globalize_reg): Remove all uses of
2341 * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
2343 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
2345 * rtlanal.c (insns_safe_to_move_p): Remove.
2346 * rtl.h: Remove the prototype for insns_safe_to_move_p.
2348 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
2350 * expmed.c (expand_mult_add): Remove.
2351 * expr.h: Remove the prototype for expand_mult_add.
2353 2006-03-04 Jakub Jelinek <jakub@redhat.com>
2355 * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
2356 and REG_SAVED_VAL_EXP constants.
2357 * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
2358 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
2359 Handle regs stored by value.
2360 (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
2361 (execute_cfa_program): Handle DW_CFA_val_offset,
2362 DW_CFA_val_offset_sf and DW_CFA_val_expression.
2363 (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
2364 value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
2365 (uw_install_context_1): Handle target regs stored by value.
2367 2006-03-03 Daniel Berlin <dberlin@dberlin.org>
2369 * tree-sra.c (tree_sra): Return todoflags;
2370 (generate_one_element): Set TODO_update_smt_usage if needed.
2371 (pass_sra): Remove TODO_update_smt_usage.
2372 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
2374 (tree_ssa_forward_propagate_single_use_vars): Return
2375 TODO_update_smt_usage if we need to update SMT usage.
2376 (pass_forwprop): Remove TODO_update_smt_usage.
2378 2006-03-03 Diego Novillo <dnovillo@redhat.com>
2380 * tree-ssa-operands.c: Tidy whitespace. Fix spelling.
2381 (correct_use_link): Remove reference to get_stmt_operands.
2382 (update_stmt_operands): Likewise.
2383 (get_modify_expr_operands): New function factored out of
2384 parse_ssa_operands and get_expr_operands.
2385 Try to create V_MUST_DEFs for LHS by default.
2386 (get_expr_operands) <case MODIFY_EXPR>: Call
2387 get_modify_expr_operands.
2388 <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
2389 <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
2390 (parse_ssa_operands) <case MODIFY_EXPR>: Call
2391 get_modify_expr_operands.
2393 2006-03-03 Kazu Hirata <kazu@codesourcery.com>
2395 * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
2396 * tree-flow.h: Remove the prototype for
2397 referenced_var_lookup_if_exists.
2399 2006-03-03 Steve Ellcey <sje@cup.hp.com>
2401 PR rtl-optimization/26345
2403 * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
2405 2006-03-03 Roger Sayle <roger@eyesopen.com>
2407 PR tree-optimization/26524
2408 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
2409 fold_convert to create a constant of the appropriate type.
2411 2006-03-03 Richard Sandiford <richard@codesourcery.com>
2413 * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2414 SYMBOL_REF_IN_BLOCK_P.
2415 * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
2416 of SYMBOL_FLAG_IN_BLOCK.
2417 * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
2418 instead of SYMBOL_REF_IN_BLOCK_P.
2419 * explow.c (use_anchored_address): Likewise.
2420 * rtl.c (rtx_size): Likewise.
2421 * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
2422 instead of SYMBOL_FLAG_IN_BLOCK.
2423 (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2424 SYMBOL_REF_IN_BLOCK_P.
2425 (assemble_variable): Likewise.
2426 (output_constant_def_contents): Likewise.
2427 (output_constant_pool): Likewise.
2428 (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
2429 instead of SYMBOL_FLAG_IN_BLOCK.
2430 * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2431 SYMBOL_REF_IN_BLOCK_P.
2432 (SYMBOL_REF_BLOCK): Likewise.
2433 (SYMBOL_REF_OFFSET): Likewise.
2434 (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2435 SYMBOL_REF_IN_BLOCK_P.
2436 (SYMBOL_FLAG_IN_BLOCK): Replace with...
2437 (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
2438 (SYMBOL_REF_IN_BLOCK_P): Replace with...
2439 (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
2441 2006-03-03 Jakub Jelinek <jakub@redhat.com>
2443 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
2445 2006-03-02 Roger Sayle <roger@eyesopen.com>
2447 * simplify-rtx.c (simplify_unary_operation): When simplifying
2448 (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
2449 that we perform the right shift in the appropriate mode, and
2450 then extend or truncate the result to requested mode.
2452 2006-03-03 Zdenek Dvorak <dvorakz@suse.cz>
2454 * gengtype.c (main): Handle double_int type.
2455 * tree.h (struct tree_int_cst): Make type of int_cst double_int.
2456 * double-int.c: New file.
2457 * double-int.h: New file.
2458 * system.h: Include doubleint.h.
2459 * Makefile.in (SYSTEM_H): Include double-int.h.
2460 (double-int.o): Add.
2462 2006-03-03 Joseph S. Myers <joseph@codesourcery.com>
2465 * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
2468 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
2470 * tree-vrp.c (remove_range_assertions): Do not update statements
2473 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
2475 * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
2477 * gcse.c (rest_of_handle_gcse): Ditto.
2478 * except.c (gate_handle_eh): Ditto.
2479 * cfgcleanup.c (rest_of_handle_jump2): Ditto.
2480 * basic-block.h (CLEANUP_PRE_LOOP): Remove.
2482 2006-03-02 Eric Christopher <echristo@apple.com>
2484 * config/i386/i386.c (machopic_output_stub): Add indirection to
2487 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
2491 2006-03-02 David S. Miller <davem@sunset.davemloft.net>
2493 Sun Niagara specific optimizations.
2494 * config.gcc: Recognize niagara as target.
2495 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
2496 (TARGET_CPU_niagara): Define.
2497 (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
2498 (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
2499 (CPP_CPU_SPEC): Handle -mcpu=niagara.
2500 (ASM_CPU_SPEC): Likewise.
2501 (PROCESSOR_NIAGARA): New enum entry.
2502 (REGISTER_MOVE_COST): Handle Niagara.
2503 (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
2504 * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
2505 (sparc_override_options): Recognize "niagara", set appropriate
2506 default MASK_* values for it, and align functions to 32-bytes
2507 by default just like ULTRASPARC/ULTRASPARC3.
2508 (sparc_initialize_trampoline): Handle niagara like ultrasparc.
2509 (sparc64_initialize_trampoline): Likewise.
2510 (sparc_use_sched_lookahead): Use zero for niagara.
2511 (sparc_issue_rate): Use one for niagara.
2512 * config/sparc/niagara.md: New file.
2513 * config/sparc/sparc.md: Include it.
2514 * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
2515 ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
2516 when default cpu is niagara.
2517 (CPP_CPU_SPEC): Handle -mcpu=niagara.
2518 (ASM_CPU_SPEC): Likewise.
2519 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
2520 when default cpu is niagara.
2521 (ASM_CPU_SPEC): Handle -mcpu=niagara.
2522 * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
2523 just like v9/ultrasparc/ultrasparc3.
2524 * doc/invoke.texi: Add documentation for "niagara" and improve
2525 existing documentation for ultrasparc variants.
2527 2006-03-02 Diego Novillo <dnovillo@redhat.com>
2529 * tree-ssa-operands.c (update_stmt_operands): Update documentation.
2531 2006-03-02 Richard Sandiford <richard@codesourcery.com>
2533 * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
2534 (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
2535 and say that only one is needed.
2536 * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
2537 * target.h (have_switchable_bss_sections): New hook.
2538 * explow.c (use_anchored_address): Check that the symbol is in a block.
2539 * varasm.c (tls_comm_section, comm_section, lcomm_section)
2540 (bss_noswitch_section): New variables.
2541 (get_unnamed_section): Add SECTION_UNNAMED to the flags.
2542 (get_noswitch_section): New function.
2543 (get_block_for_section): Allow SECT to be null.
2544 (unlikely_text_section_p): Use SECTION_STYLE.
2545 (bss_initializer_p): New function.
2546 (get_variable_section): Move earlier in file. Take a new argument,
2547 prefer_noswitch_p. Move bss checks from assemble_variable to here.
2548 Return one of the new *_sections in such cases.
2549 (get_block_for_decl): New function, extracting some logic from
2550 use_blocks_for_decl_p.
2551 (change_symbol_section): Remove in favor of...
2552 (change_symbol_block): ...this new function.
2553 (use_blocks_for_decl_p): Remove checks now performed by
2555 (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
2556 (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
2557 (emit_local, emit_bss, emit_common): ...these new functions.
2558 Return true if the alignment was honored.
2559 (emit_tls_common): New function.
2560 (asm_emit_uninitialised): Delete.
2561 (assemble_variable_noswitch): New function, split out from...
2562 (assemble_variable): ...here. Don't make decisions about common
2563 variables here. Globalize all public decls that go into non-common
2564 sections. Check whether SYMBOL_REF_BLOCK is null.
2565 (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
2566 (output_constant_pool): Likewise.
2567 (init_varasm_once): Initialize the new section variables.
2568 (have_global_bss_p): New function.
2569 (categorize_decl_for_section): Use bss_initializer_p.
2570 (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
2571 (place_block_symbol): Assert that the symbol must be in a block.
2572 * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
2573 (TARGET_INITIALIZER): Include it.
2574 * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
2575 * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
2576 (SECTION_MACH_DEP): Bump by two.
2577 (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
2578 (unnamed_section): Mention SECTION_UNNAMED in comment.
2579 (named_section): Likewise SECTION_NAMED.
2580 (noswitch_section_callback): New type.
2581 (noswitch_section): New structure.
2582 (section): Add a noswitch_section alternative.
2583 (SECTION_STYLE): New macro.
2584 (tls_comm_section, comm_section, lcomm_section): Declare.
2585 (bss_noswitch_section, have_global_bss_p): Declare.
2586 * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
2587 * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
2589 * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
2590 * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
2593 2006-03-02 Daniel Berlin <dberlin@dberlin.org>
2595 * gcc/tree-vrp.c (execute_vrp): Return value.
2596 * gcc/regrename.c (rest_of_handle_regrename): Ditto.
2597 * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
2598 * gcc/tree-complex.c (tree_lower_complex): Ditto.
2599 (tree_lower_complex_O0): Ditto.
2600 * gcc/tracer.c (rest_of_handle_tracer): Ditto.
2601 * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
2602 * gcc/postreload.c (rest_of_handle_postreload): Ditto.
2603 * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
2604 (execute_tail_calls): Ditto.
2605 * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2606 * gcc/tree.h (init_function_for_compilation): Ditto.
2607 * gcc/ipa-cp.c (ipcp_driver): Ditto.
2608 * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
2609 * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
2610 * gcc/final.c (compute_alignments): Ditto.
2611 (rest_of_handle_final): Ditto.
2612 (rest_of_handle_shorten_branches): Ditto.
2613 (rest_of_clean_state): Ditto.
2614 * gcc/omp-low.c (execute_expand_omp): Ditto.
2615 (execute_lower_omp): Ditto.
2616 * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
2617 * gcc/ipa-reference.c (static_execute): Ditto.
2618 * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
2619 * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
2620 (rest_of_handle_machine_reorg): Ditto.
2621 * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
2622 * gcc/flow.c (recompute_reg_usage): Ditto.
2623 (rest_of_handle_remove_death_notes): Ditto.
2624 (rest_of_handle_life): Ditto.
2625 (rest_of_handle_flow2): Ditto.
2626 * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
2627 * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
2628 (do_ssa_store_ccp): Ditto.
2629 (execute_fold_all_builtins): Ditto.
2630 * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
2631 * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
2632 * gcc/ipa-pure-const.c (static_execute): Ditto.
2633 * gcc/cse.c (rest_of_handle_cse): Ditto.
2634 (rest_of_handle_cse2): Ditto.
2635 * gcc/web.c (rest_of_handle_web): Ditto.
2636 * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
2637 * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
2638 * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
2639 * gcc/tree-nrv.c (tree_nrv): Ditto.
2640 (execute_return_slot_opt): Ditto.
2641 * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
2642 (create_structure_vars): Ditto.
2643 * gcc/loop-init.c (rtl_loop_init): Ditto.
2644 (rtl_loop_done): Ditto.
2645 (rtl_move_loop_invariants): Ditto.
2646 (rtl_unswitch): Ditto.
2647 (rtl_unroll_and_peel_loops): Ditto.
2648 (rtl_doloop): Ditto.
2649 * gcc/gimple-low.c (lower_function_body): Ditto.
2650 (mark_used_blocks): Ditto.
2651 * gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
2652 * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
2653 (cgraph_early_inlining): Ditto.
2654 * gcc/global.c (rest_of_handle_global_alloc): Ditto.
2655 * gcc/jump.c (cleanup_barriers): Ditto.
2656 (purge_line_number_notes): Ditto.
2657 * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
2658 (rest_of_handle_if_after_reload): Ditto.
2659 * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
2660 (tree_ssa_loop_im): Ditto.
2661 (tree_ssa_loop_unswitch): Ditto.
2662 (tree_vectorize): Ditto.
2663 (tree_linear_transform): Ditto.
2664 (tree_ssa_loop_ivcanon): Ditto.
2665 (tree_ssa_empty_loop): Ditto.
2666 (tree_ssa_loop_bounds): Ditto.
2667 (tree_complete_unroll): Ditto.
2668 (tree_ssa_loop_prefetch): Ditto.
2669 (tree_ssa_loop_ivopts): Ditto.
2670 (tree_ssa_loop_done): Ditto.
2671 * gcc/predict.c (tree_estimate_probability): Ditto.
2672 * gcc/recog.c (split_all_insns_noflow): Ditto.
2673 (rest_of_handle_peephole2): Ditto.
2674 (rest_of_handle_split_all_insns): Ditto.
2675 * gcc/tree-eh.c (lower_eh_constructs): Ditto.
2676 * gcc/regmove.c (rest_of_handle_regmove): Ditto.
2677 (rest_of_handle_stack_adjustments): Ditto.
2678 * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
2679 * gcc/function.c (instantiate_virtual_regs): Ditto.
2680 (init_function_for_compilation): Ditto.
2681 (rest_of_handle_check_leaf_regs): Ditto.
2682 * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
2683 (rest_of_handle_gcse): Ditto.
2684 * gcc/ipa-type-escape.c (type_escape_execute): Ditto.
2685 * gcc/alias.c (rest_of_handle_cfg): Ditto.
2686 * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
2687 * gcc/profile.c (rest_of_handle_branch_prob): Ditto.
2688 * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
2689 * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
2690 * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
2691 * gcc/tree-dfa.c (find_referenced_vars): Ditto.
2692 * gcc/except.c (set_nothrow_function_flags): Ditto.
2693 (convert_to_eh_region_ranges): Ditto.
2694 (rest_of_handle_eh): Ditto.
2695 * gcc/emit-rtl.c (unshare_all_rtl): Ditto.
2696 (remove_unnecessary_notes): Ditto.
2697 * gcc/except.h (set_nothrow_function_flags): Ditto.
2698 (convert_to_eh_region_ranges): Ditto.
2699 * gcc/cfgexpand.c (tree_expand_cfg): Ditto.
2700 * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
2701 * gcc/tree-ssa-pre.c (do_pre): Ditto.
2702 (execute_fre): Ditto.
2703 * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
2704 (rest_of_handle_jump2): Ditto.
2705 * gcc/tree-sra.c (tree_sra): Ditto.
2706 * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
2707 (execute_mudflap_function_decls): Ditto.
2708 * gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
2709 (do_store_copy_prop): Ditto.
2710 * gcc/ipa-prop.h (ipcp_driver): Ditto.
2711 * gcc/cfglayout.c (insn_locators_initialize): Ditto.
2712 * gcc/tree-ssa-forwprop.c
2713 (tree_ssa_forward_propagate_single_use_vars): Ditto.
2714 * gcc/cfglayout.h (insn_locators_initialize): Ditto.
2715 * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
2716 * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
2717 (execute_late_warn_uninitialized): Ditto.
2718 * gcc/rtl.h (cleanup_barriers): Ditto.
2719 (split_all_insns_noflow): Ditto.
2720 (purge_line_number_notes): Ditto.
2721 (unshare_all_rtl): Ditto.
2722 (remove_unnecessary_notes): Ditto.
2723 (recompute_reg_usage): Ditto.
2724 (variable_tracking_main): Ditto.
2725 * gcc/integrate.c (emit_initial_value_sets): Ditto.
2726 * gcc/integrate.h (emit_initial_value_sets): Ditto.
2727 * gcc/tree-optimize.c (execute_free_datastructures): Ditto
2728 (execute_free_cfg_annotations): Ditto.
2729 (execute_fixup_cfg): Ditto.
2730 (execute_cleanup_cfg_pre_ipa): Ditto.
2731 (execute_cleanup_cfg_post_optimizing): Ditto.
2732 (execute_init_datastructures): Ditto.
2733 * gcc/tree-object-size.c (compute_object_sizes): Ditto.
2734 * gcc/combine.c (rest_of_handle_combine): Ditto.
2735 * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
2736 * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
2737 (rest_of_handle_reorder_blocks): Ditto.
2738 (rest_of_handle_partition_blocks): Ditto.
2739 * gcc/var-tracking.c (variable_tracking_main): Ditto.
2740 * gcc/tree-profile.c (tree_profiling): Ditto.
2741 * gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
2742 * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
2743 * gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
2744 (rest_of_handle_sched2): Ditto.
2745 * gcc/basic-block.h (free_bb_insn): Ditto.
2746 * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
2747 * gcc/tree-cfg.c (execute_build_cfg): Ditto.
2748 (remove_useless_stmts): Ditto.
2749 (split_critical_edges): Ditto.
2750 (execute_warn_function_return): Ditto.
2751 (execute_warn_function_noreturn): Ditto.
2752 * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
2753 * gcc/cfgrtl.c (free_bb_for_insn): Ditto.
2754 * gcc/passes.c (execute_one_pass): Run additional
2755 todos returned by execute function.
2756 * gcc/tree-pass.h (struct tree_opt_pass): Make execute
2759 2006-03-02 Richard Guenther <rguenther@suse.de>
2761 * tree-ssa-alias.c (find_used_portions): Consider taking
2762 the address as making the variable not write-only.
2764 2006-03-02 Nick Clifton <nickc@redhat.com>
2766 * config.gcc (default_use_cxa_atexit): Extend the description of
2767 this configure variable. Set its default value to "yes" for
2768 Linux, NetBSD and ELF targets on the assumption that they will
2769 use C libraries with the __cxa_atexit function.
2771 2006-03-02 Ben Elliston <bje@au.ibm.com>
2773 * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
2774 parameter as unused to suppress a build warning.
2776 2006-03-02 Ben Elliston <bje@au.ibm.com>
2778 * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
2781 2006-03-01 Roger Sayle <roger@eyesopen.com>
2784 * gthr-posix.h (__gthrw2): Define to take three parameters, the
2785 declared name, the weak reference name, and the typeof name.
2786 (__gthrw): Avoid expanding the declared name suffix.
2787 (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
2789 2006-03-01 Jakub Jelinek <jakub@redhat.com>
2791 * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
2793 (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
2794 DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
2795 DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
2796 DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
2797 DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
2798 (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
2799 (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
2800 DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
2801 (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
2802 DW_DS_leading_separate, DW_DS_trailing_separate): New.
2803 (DW_END_default, DW_END_big, DW_END_little): New.
2804 (DW_END_lo_user, DW_END_hi_user): Define.
2805 (DW_LNE_lo_user, DW_LNE_hi_user): Define.
2806 (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
2807 (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
2810 2006-03-01 Diego Novillo <dnovillo@redhat.com>
2812 * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
2814 * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
2816 (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
2818 * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
2820 * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
2821 to 'symbol_mem_tag'.
2823 * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
2826 2006-03-01 Roger Sayle <roger@eyesopen.com>
2828 * builtins.c (fold_builtin_copysign): Delete unreachable code.
2830 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
2833 * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
2834 MACHO_DYNAMIC_NO_PIC_P.
2835 (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
2837 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
2840 * config/darwin-protos.h (darwin_asm_output_anchor):
2842 * config/darwin-sections.def (cstring_section):
2843 Add SECTION_MERGE to the flags.
2844 (literal4_section): Likewise.
2845 (literal8_section): Likewise.
2846 (objc_selector_refs_section): Likewise.
2847 (objc_cls_refs_section): Likewise.
2848 * config/darwin.c (darwin_asm_output_anchor): New
2850 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
2852 2006-03-01 Daniel Berlin <dberlin@dberlin.org>
2854 Fix PR tree-optimization/26443
2855 * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
2856 to todo and PROP_tmt_usage to properties_destroyed.
2857 * tree-ssa-ccp.c (pass_ccp): Ditto.
2858 (pass_store_ccp): Ditto.
2859 * tree-ssa-dom.c (pass_dominator): Ditto.
2861 2006-03-01 Diego Novillo <dnovillo@redhat.com>
2863 * tree-ssa-operands.c: Cleanup whitespace.
2864 (get_asm_expr_operands): Move before first invocation.
2865 (get_indirect_ref_operands): Likewise.
2866 (get_tmr_operands): Likewise.
2867 (get_call_expr_operands): Likewise.
2868 (append_def): Likewise.
2869 (append_use): Likewise.
2870 (append_v_may_def): Likewise.
2871 (append_v_must_def): Likewise.
2872 (add_call_clobber_ops): Likewise.
2873 (add_call_read_ops): Likewise.
2874 (add_stmt_operand): Likewise.
2875 (add_virtual_operand): Likewise.
2876 (build_ssa_operands): Likewise.
2878 2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
2883 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
2884 with a call expr to ...
2885 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
2887 2006-03-01 Diego Novillo <dnovillo@redhat.com>
2889 * tree-vrp.c (extract_range_from_assert): Remove special
2890 handling for types with super-types.
2892 2006-03-01 Ben Elliston <bje@au.ibm.com>
2894 * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
2895 and powerpc64-*-linux* configurations.
2896 * config/t-dfprules: New file.
2898 * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
2899 Compile dfp-bit.c from the source directory using -DWIDTH and
2900 $DFP_CFLAGS to control the compilation of that file, rather than
2901 generating width-specific versions in the build directory.
2902 * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
2903 (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
2905 2006-02-28 Zack Weinberg <zackw@panix.com>
2907 * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
2910 2006-02-28 Eric Christopher <echristo@apple.com>
2912 * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
2913 Set up IN_LIBGCC definition of TARGET_64BIT.
2914 * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
2916 2006-02-28 Roger Sayle <roger@eyesopen.com>
2919 * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
2920 BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these
2921 cases via the construction of "expr != 0".
2923 2006-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
2925 * alias.c (alias_invariant, alias_invariant_size): Remove.
2926 (record_base_value): Remove.
2927 (memrefs_conflict_p): Don't look at alias_invariant.
2928 (end_alias_analysis): Don't free it.
2929 * alias.h (record_base_value): Remove prototype.
2931 2006-02-28 Paolo Bonzini <bonzini@gnu.org>
2932 Adam Nemet <anemet@caviumnetworks.com>
2934 * rtl.h (truncated_to_mode): Declare it.
2935 (struct rtl_hooks): Add reg_truncated_to_mode hook.
2936 * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
2937 (RTL_HOOKS_INITIALIZER): Include it.
2938 * rtlhooks.c (reg_truncated_to_mode_general): New function.
2939 * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
2940 reg_truncated_to_mode.
2941 * rtlanal.c (truncated_to_mode): Define it.
2942 * simplify-rtx.c (simplify_unary_operation_1): Use it.
2944 2006-02-28 Jeff Law <law@redhat.com>
2946 * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
2947 conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
2948 the range allowed by TYPE_PRECISION.
2950 * tree.h (strct phi_arg_d): Remove unused NONZERO field.
2952 2006-02-28 Dorit Nuzman <dorit@il.ibm.com>
2954 PR tree-optimization/26419
2955 * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
2958 2006-02-27 Zack Weinberg <zackw@panix.com>
2960 * doc/md.texi: Fix typo in previous change.
2962 2006-02-27 Kenneth Zadeck <zadeck@naturalbridge.com>
2966 2006-02-27 Zack Weinberg <zackw@panix.com>
2968 * rtl.def (define_constraint, define_register_constraint)
2969 (define_memory_constraint, define_address_constraint): New MD forms.
2970 * gensupport.c (process_rtx): Put define_constraint etc on the
2972 * genpreds.c (process_define_predicate): Adjust comment. Validate
2973 the name, and call validate_exp to validate the expression.
2974 (mark_mode_tests, write_extract_subexp): Can assume correct input.
2975 (write_predicate_expr): Likewise. NAME argument no longer necessary;
2976 all callers changed.
2977 (validate_exp, needs_variable, struct constraint_data)
2978 (constraints_by_letter_table, first_constraint, last_constraint_ptr)
2979 (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
2980 (const_dbl_constraints, constraint_max_namelen)
2981 (have_register_constraints, have_memory_constraints)
2982 (have_address_constraints, have_address_constraints)
2983 (have_extra_constraints, have_const_int_constraints)
2984 (have_const_dbl_constraints, mangle, add_constraint)
2985 (process_define_constraint, process_define_register_constraint)
2986 (write_enum_constraint_num, write_lookup_constraint)
2987 (write_insn_constraint_len, write_regclass_for_constraint)
2988 (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
2989 (write_insn_extra_memory_constraint)
2990 (write_insn_extra_address_constraint)
2991 (write_satisfies_constraint_fns): New.
2992 (write_tm_preds_h): If we have new-style constraint definitions,
2993 prototype the functions generated from them, and define the
2994 old constraint interface (still used by generic code) in terms of
2996 (write_insn_preds_c): If we have new-style constraint definitions,
2997 generate all relevant functions from those definitions.
2998 (main): Handle define_constraint etc.
2999 * genoutput.c (struct constraint_data, indep_constraints)
3000 (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
3001 (mdep_constraint_len): New data structures and functions, defined
3002 #ifdef USE_MD_CONSTRAINTS.
3003 (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
3004 (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
3005 use new logic to validate operand constraints against constraint
3007 (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
3009 * defaults.h: If none of the old-style constraint macros are
3010 defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
3011 old-style macros; and poison REG_CLASS_FROM_LETTER,
3012 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
3014 * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
3015 * doc/md.texi: Document new constraint-definition mechanism and the
3016 C interface it provides. Remove references to old mechanism
3017 elsewhere in the document.
3018 (Machine Constraints): Use pathnames relative to gcc directory,
3019 i.e. config/ARCH/FILE. Change i386 section to refer to
3020 config/i386/predicates.md; update that section to match docstrings.
3021 * doc/tm.texi: Move all documentation of the old constraint-
3022 definition macros to their own section, clearly mark as obsolete.
3024 * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
3025 (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
3027 * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
3028 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
3029 * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
3031 (splits and peepholes): Use satisfies_constraint_*.
3032 * config/i386/i386.c (memory_address_length)
3033 (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
3035 2006-02-27 Daniel Berlin <dberlin@dberlin.org>
3037 * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
3038 scalar operation to be put back into the loop.
3040 2006-02-27 Jakub Jelinek <jakub@redhat.com>
3043 * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
3044 (extract_cie_info): Handle S flag in augmentation string.
3045 (execute_cfa_program): If context->signal_frame, execute also
3046 fs->pc == context->ra instructions.
3047 (uw_frame_state_for): If context->signal_frame, don't subtract one
3048 from context->ra to find FDE.
3049 (uw_update_context_1): Set context->signal_frame to
3051 (_Unwind_GetIPInfo): New function.
3052 * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
3053 * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
3055 * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
3056 * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
3057 * unwind-compat.c (_Unwind_GetIPInfo): New function.
3058 * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
3059 * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
3060 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
3061 * config/i386/linux-unwind.h (x86_fallback_frame_state,
3062 x86_64_fallback_frame_state): Set fs->signal_frame.
3063 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
3064 (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
3065 (frob_update_context): Likewise. Workaround missing S flag in
3066 Linux 2.6.12 - 2.6.16 kernel vDSOs.
3067 * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
3068 Remove the psw_addr + 1 hack.
3070 2006-02-27 Daniel Berlin <dberlin@dberlin.org>
3072 * tree-ssa-structalias.c (get_constraint_for): Move code to deal
3073 with aggregates here.
3074 (find_func_aliases): Remove code for &<aggregate> from here.
3076 2006-02-26 Roger Sayle <roger@eyesopen.com>
3078 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
3079 (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
3080 Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
3083 2006-02-26 Roger Sayle <roger@eyesopen.com>
3086 * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
3088 2006-02-26 Zdenek Dvorak <dvorakz@suse.cz>
3090 * opts.c (decode_options): Do not handle flag_strength_reduce.
3091 (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
3092 and OPT_fstrength_reduce.
3093 * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
3094 flag_prefetch_loop_arrays for being nonzero.
3095 * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
3097 (fprefetch-loop-arrays-rtl): Removed.
3098 (flag_prefetch_loop_arrays): Do not specify the value.
3100 * doc/passes.texi: Update documentation of loop optimizer
3102 * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
3103 -frerun-loop-opt): Remove.
3105 2006-02-26 Richard Guenther <rguenther@suse.de>
3107 PR tree-optimization/26421
3108 * tree-ssa-alias.c (find_used_portions): Don't treat parameters
3109 in function calls that are ADDR_EXPRs as using the whole structure.
3111 2006-02-26 Steven Bosscher <stevenb.gcc@gmail.com>
3113 * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
3114 * tree-pass.h (pass_loop_optimize): Remove.
3115 * passes.c (pass_loop_optimize): Never run it.
3116 * toplev.c (backend_init): Don't call init_loop.
3117 * opts.c (flag_loop_optimize_set): Remove.
3118 (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
3119 (common_handle_option) <OPT_floop_optimize>: Remove. Don't disable
3120 the old RTL loop optimizer when profiling enabled.
3121 * predict.c (tree_estimate_probability): Always strip builtin_expect.
3122 * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
3123 pre-headers for the sake of the old RTL loop optimizer.
3124 * Makefile.in: Remove all references to loop.o.
3126 * doc/invoke.texi: Remove all references to -floop-optimize
3127 and -frerun-loop-opt.
3129 2006-02-26 Zack Weinberg <zackw@panix.com>
3131 * doc/md.texi (Machine Constraints): Refer to all files with paths
3132 relative to gcc directory (i.e. config/CPU/file). Add missing
3133 @table @code ... @end table to M32C subsection.
3135 2006-02-26 Roger Sayle <roger@eyesopen.com>
3137 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
3139 <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
3141 2006-02-26 Roger Sayle <roger@eyesopen.com>
3142 James A. Morrison <phython@gcc.gnu.org>
3145 * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
3146 when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
3147 new constant C2<<C1, or as (X<0) or (X,false) depending upon the
3148 signedness of the shift operation.
3150 2006-02-26 Dorit Nuzman <dorit@il.ibm.com>
3152 PR tree-optimization/26359
3153 * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
3155 2006-02-25 Roger Sayle <roger@eyesopen.com>
3157 * simplify-rtx.c (simplify_relational_operation_1): Simplify
3158 (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y
3159 as X == 0, and some symmetry related transformations.
3160 Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line.
3162 2006-02-25 Roger Sayle <roger@eyesopen.com>
3165 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
3166 and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some
3167 symmetry related transformations. Fold (X^C1) == C2 as
3170 2006-02-25 Juergen Weigert <jw@suse.de>
3171 Richard Guenther <rguenther@suse.de>
3173 * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
3175 2006-02-24 Adam Nemet <anemet@caviumnetworks.com>
3177 * combine.c (gen_lowpart_or_truncate): Call
3178 simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
3180 2006-02-24 Diego Novillo <dnovillo@redhat.com>
3182 * doc/invoke.texi: Move -fopenmp description to "Options for
3184 Remove reference to -lgomp.
3186 2006-02-24 David Edelsohn <edelsohn@gnu.org>
3188 * doc/install.texi: Require GNU tar version 1.14.
3190 2006-02-24 Geoffrey Keating <geoffk@apple.com>
3192 * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
3193 * doc/invoke.texi (C++ Dialect Options): Document
3194 -fno-use-cxa-get-exception-ptr.
3195 * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
3196 * configure: Regenerate.
3197 * c.opt (fuse-cxa-get-exception-ptr): New.
3198 * c-opts.c (c_common_handle_option): Handle
3199 OPT_fuse_cxa_get_exception_ptr.
3200 * c-common.c (flag_use_cxa_atexit): Update documentation.
3201 (flag_use_cxa_get_exception_ptr): New.
3202 * c-common.h (flag_use_cxa_get_exception_ptr): New.
3203 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
3205 (C_COMMON_OVERRIDE_OPTIONS): New.
3207 2006-02-24 Roger Sayle <roger@eyesopen.com>
3210 * combine.c (try_combine): Explicitly check whether GET_CODE is
3211 a SET or a CLOBBER, instead on checking that it isn't a USE.
3213 2006-02-24 Roger Sayle <roger@eyesopen.com>
3215 * fold-const.c (fold_comparison): New subroutine of fold_binary
3216 containing transformations common to both the equality and
3217 ordering relational operators, factored out of fold_binary.
3218 (fold_binary): Separate out the equality operators (EQ_EXPR
3219 and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
3220 LE_EXPR and GE_EXPR), calling fold_comparison to perform the
3221 transformations common to both.
3222 (fold_div_compare): Fix latent bugs in the previously unreachable
3223 LT_EXPR and GE_EXPR cases.
3225 2006-02-24 David Edelsohn <edelsohn@gnu.org>
3227 * config/rs6000/rs6000.c (rs6000_init_builtins): Change
3228 decl libname for clog to __clog on AIX.
3230 * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
3232 2006-02-24 Alan Modra <amodra@bigpond.net.au>
3235 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
3236 output traceback table for thunks. Localise rs6000_stack_info call.
3238 2006-02-23 Roger Sayle <roger@eyesopen.com>
3239 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3241 * gthr-posix.h (__gthrw): Fix typo in comment.
3243 2006-02-23 Geoffrey Keating <geoffk@apple.com>
3245 * doc/cpp.texi (Character sets): Document that we do support
3246 input files to be in any character set.
3248 2006-02-23 Jeff Law <law@redhat.com>
3250 * tree.h (PHI_ARG_NONZERO): Remove.
3251 * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
3252 (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
3253 node to the new node.
3255 PR tree-optimization/26425
3256 * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
3257 min/max, then assume its varying.
3259 2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
3261 PR rtl-optimization/26316
3262 * rtlanal.c (enum may_trap_p_flags): New.
3263 (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore
3264 MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
3265 (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
3266 (may_trap_after_code_motion_p): New function.
3267 * loop-invariant.c (find_identical_invariants): Fix dump formating.
3268 (find_invariant_insn): Use may_trap_after_code_motion_p.
3269 * rtl.h (may_trap_after_code_motion_p): Declare.
3271 2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
3273 * emit-rtl.c (immed_double_const): Cleanup.
3275 2006-02-23 Daniel Berlin <dberlin@dberlin.org>
3277 Fix PR tree-optimization/26376
3278 * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
3281 2006-02-23 Jakub Jelinek <jakub@redhat.com>
3284 * gimplify.c (omp_add_variable): Guard variable size decl test with
3285 DECL_SIZE (decl) check.
3287 2006-02-23 Richard Guenther <rguenther@suse.de>
3290 * tree-ssa-structalias.c (find_func_aliases): Handle complex types
3291 like aggregate types.
3293 2006-02-23 Jakub Jelinek <jakub@redhat.com>
3295 * configure.ac: Add --with{,out}-long-double-128 configure option.
3296 (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
3297 * configure: Rebuilt.
3298 * config.in: Rebuilt.
3299 * doc/install.texi (Options specification): Document
3300 --with-long-double-128.
3302 * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
3303 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
3304 * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
3305 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
3307 2006-02-23 Aldy Hernandez <aldyh@redhat.com>
3309 * config/s390/s390.c (override_options): Handle
3310 TARGET_DEFAULT_LONG_DOUBLE_128.
3312 * config/alpha/alpha.c (override_options): Handle
3313 TARGET_DEFAULT_LONG_DOUBLE_128.
3315 * config/sparc/sparc.c (sparc_override_options): Handle
3316 TARGET_DEFAULT_LONG_DOUBLE_128.
3318 2006-02-22 Daniel Jacobowitz <dan@codesourcery.com>
3320 * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
3321 (real-install-headers-tar, real-install-headers-cpio)
3322 (real-install-headers-cp): New targets.
3324 2006-02-22 Richard Sandiford <richard@codesourcery.com>
3326 * tree.h (variable_section): Delete.
3327 * varasm.c (variable_section): Delete.
3329 2006-02-22 Paolo Bonzini <bonzini@gnu.org>
3331 * install.texi: Add notes on install.texi2html.
3332 (Building in parallel): Do not use footnotes.
3334 2006-02-21 Aldy Hernandez <aldyh@redhat.com>
3337 * doc/install.texi (Configuration): Document --disable-libgomp.
3339 2006-02-21 Geoffrey Keating <geoffk@apple.com>
3341 * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
3343 2006-02-21 Alexandre Oliva <aoliva@redhat.com>
3345 * config/i386/sse.md (vec_extractv2df_1_sse): New.
3346 (vec_extractv2df_0_sse): New.
3348 2006-02-21 Alexandre Oliva <aoliva@redhat.com>
3350 * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
3351 * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
3352 * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
3353 * dwarf2out.c (build_cfa_loc): New offset parameter. Add it
3354 to the result of the expression.
3355 (def_cfa_1): Adjust.
3356 (frame_pointer_cfa_offset): Rename to...
3357 (frame_pointer_fb_offset): ... this. Adjust all uses.
3358 (convert_cfa_to_loc_list): Rename to...
3359 (convert_cfa_to_fb_loc_list): ... this. New offset parameter.
3360 Pass it on to build_cfa_loc.
3361 (compute_frame_pointer_to_cfa_displacement): Rename to...
3362 (compute_frame_pointer_to_fb_displacement): ... this. New
3363 offset parameter. Use it in computation.
3364 (gen_subprogram_die): Compute cfa_fb_offset with the new
3365 macro, and use it to compute the fb loc list and the
3368 2006-02-21 Bernd Schmidt <bernd.schmidt@analog.com>
3370 * config/bfin/predicates.md (cc_operand): Delete predicate. All uses
3371 replaced with register_operand.
3372 * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
3373 non-DREG is expensive.
3374 * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
3375 * config/bfin/bfin.md (movbi): Fix constraints and template for moves
3378 2006-02-21 Joseph S. Myers <joseph@codesourcery.com>
3380 * doc/install.texi2html: Use set -e.
3382 2006-02-21 Richard Sandiford <richard@codesourcery.com>
3384 * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
3385 (ASM_OUTPUT_SHARED_LOCAL): Delete.
3386 * doc/invoke.texi (-fshared-data): Delete.
3387 * common.opt (fshared-data): Delete.
3388 * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
3389 (assemble_static_space): Remove #if 0 code.
3390 * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
3391 (ASM_OUTPUT_SHARED_LOCAL): Poison.
3392 * config/cris/cris.h: Remove FIXME.
3394 2006-02-21 Paolo Bonzini <bonzini@gnu.org>
3396 * doc/sourcebuild.texi (Front End Directory): No more double-colon
3399 2006-02-21 Jakub Jelinek <jakub@redhat.com>
3402 * combine.c (simplify_shift_const_1): Disable nested shifts
3403 optimization for vector shifts.
3405 2006-02-20 Roger Sayle <roger@eyesopen.com>
3407 PR tree-optimization/26361
3408 * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
3409 of unsigned integer types.
3411 2006-02-20 Sebastian Pop <pop@cri.ensmp.fr>
3413 * tree-chrec.c (eq_evolutions_p): New.
3414 * tree-chrec.h (eq_evolutions_p): Declared.
3415 * tree-data-ref.c: Fix formatting.
3416 (datadep_stats, dependence_stats): New.
3418 (print_direction_vector): New.
3419 (dump_data_dependence_relation): Use print_direction_vector.
3420 (object_analysis, create_data_ref): Handle COMPONENT_REF.
3421 (compute_subscript_distance): Static.
3422 (initialize_data_dependence_relation): Static. Get the number
3423 of loops surrounding the references from the callers, and initialize
3424 DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
3425 base_object_differ_p analyzers.
3426 (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
3427 compute_overlap_steps_for_affine_1_2,
3428 analyze_subscript_affine_affine): Count the classified dependences.
3429 Print a message when a test failed.
3430 (can_use_analyze_subscript_affine_affine): New.
3431 (analyze_siv_subscript): Compute the data dependences on symbolic
3432 scevs that verify can_use_analyze_subscript_affine_affine.
3433 (chrec_steps_divide_constant_p): Returns true, false, or unknown.
3434 (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
3435 Handle symbolic scevs.
3436 (analyze_overlapping_iterations): Let symbolic affine scevs to be
3438 (subscript_dependence_tester): Moved...
3439 (build_classic_dist_vector, build_classic_dir_vector): Don't use
3440 lambda_vector_clear on newly allocated vectors. Get nb_loops from
3441 DDR_SIZE_VECT instead of getting it in parameter.
3442 (subscript_dependence_tester): ... here. Take as a parameter
3443 loop_nest_depth. Call build_classic_dist_vector and
3444 build_classic_dir_vector.
3445 (compute_affine_dependence): Update subscript_dependence_tester
3446 parameters. Update datadep_stats counters. Call
3447 compute_subscript_distance.
3448 (compute_self_dependence): Save the dist and dir vectors. Call
3449 compute_subscript_distance.
3450 (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
3451 (compute_all_dependences): Reorder parameters as they were before
3452 conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
3453 compute_subscript_distance. Update the use of
3454 compute_affine_dependence and initialize_data_dependence_relation.
3455 (find_data_references_in_loop): Handle COMPONENT_REF.
3456 (compute_data_dependences_for_loop): Initialize dependence_stats.
3457 Don't call build_classic_dist_vector and build_classic_dir_vector.
3458 Update the parameters of initialize_data_dependence_relation and
3459 compute_all_dependences. Print the statistics from datadep_stats.
3460 (analyze_all_data_dependences): Static. Not used until the pass for
3461 checking the data dependences is contributed.
3462 * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
3463 DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
3464 (initialize_data_dependence_relation, compute_affine_dependence,
3465 analyze_all_data_dependences, compute_subscript_distance): Removed.
3466 (print_direction_vector): New.
3467 * lambda.h (gcd): ... here.
3468 (lambda_vector_gcd): Moved here from gcd_vector.
3469 * lambda-code.c (gcd, gcd_vector): Removed.
3470 (lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
3471 * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
3473 2006-02-20 Diego Novillo <dnovillo@redhat.com>
3475 * ipa-type-escape.c: Tidy some comments and white space.
3476 * tree-ssa-operands.c: Likewise.
3478 2006-02-20 Andrew Pinski <pinskia@physics.uc.edu>
3481 * tree-pretty-print.c (debug_tree_chain): Walk the chains.
3482 (dump_decl_name): Do not walk the decl tree chains.
3483 * tree-pass.h (TDF_CHAIN): Remove.
3485 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3487 * Makefile.in (C): Remove
3489 (.PHONY): Remove C and PROTO
3491 2006-02-20 Roger Sayle <roger@eyesopen.com>
3494 * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
3495 deprecated CHAR_TYPE tree code.
3497 2006-02-20 Paolo Bonzini <bonzini@gnu.org>
3499 * configure.ac (target_list): Add install-info, dvi, html.
3500 * configure: Regenerate.
3502 * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
3503 java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
3504 treelang/Make-lang.in: Do not use double-colon rules.
3506 2006-02-20 Daniel Berlin <dberlin@dberlin.org>
3508 * tree.h (struct tree_memory_tag): Add is_used_alone member.
3509 (TMT_USED_ALONE): New macro.
3510 * tree-pass.h (PROP_tmt_usage): New property.
3511 (TODO_update_tmt_usage): New todo.
3512 * tree-ssa-alias.c (updating_used_alone): New variable.
3513 (recalculate_used_alone): New function.
3514 (compute_may_aliases): Set updating_used_alone, call
3515 recalculate_used_alone.
3516 * tree-sra.c (pass_sra): Note that this pass destroys
3517 PROP_tmt_usage, and add TODO_update_tmt_usage.
3518 * tree-ssa-forwprop.c (pass_forwprop): Ditto.
3519 * tree-flow.h (updating_used_alone): Prototype.
3520 (recalculate_used_alone): Ditto.
3521 * passes.c (execute_todo): Add code to set updating_used_alone,
3522 and call recalculate.
3523 * tree-ssa-operands.c (add_virtual_operand): Only append bare def
3524 for clobber if used alone, and add assert to verify used_alone
3527 2006-02-20 Angel Nunez Mencias <anunez@de.ibm.com>
3529 * config/s390/s390.c (legitimize_pic_address): Assertions checking
3530 for non tls symbols added.
3531 (legitimize_address): Do nothing for PLUS expressions if one of the
3532 addends is a tls symbol reference.
3534 2006-02-20 Paolo Bonzini <bonzini@gnu.org>
3538 * Makefile.in (LDFLAGS): Define from autoconf substitution.
3540 * Makefile.in (BOOTSTRAPPING): New.
3541 (quickstrap): New definition if BOOTSTRAPPING=yes.
3543 * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
3544 * configure.ac: Substitute all_selected_languages with the languages
3545 that were configured. For all the other variables except
3546 lang_specs_files, include all the languages in the tree.
3547 * configure: Regenerate.
3549 * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
3550 if there is one. Run the commands to run fixincludes in the same
3553 * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
3554 * doc/install.texi: Document exact conventions for searching target tools.
3555 Document --with-build-time-tools. Document toplevel bootstrap. Document
3556 something more about building an Ada cross-compiler. Don't list GNU Make
3557 requirements which affect all platforms.
3559 2006-02-19 Roger Sayle <roger@eyesopen.com>
3562 * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
3563 only equivalent if the have both the same mode and precision.
3565 2006-02-20 Ben Elliston <bje@au.ibm.com>
3567 * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
3569 2006-02-19 Roger Sayle <roger@eyesopen.com>
3570 Steven Bosscher <stevenb.gcc@gmail.com>
3572 * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
3573 constant pool references to identify stack mode constants.
3574 * rtlanal.c (constant_pool_constant_p): New predicate to check
3575 whether operand is a floating point constant in the pool.
3576 * rtl.h (constant_pool_constant_p): Prototype here.
3577 * loop.c (scan_loop): Avoid hoisting constants from the constant
3578 pool on STACK_REGS targets.
3579 (load_mems): Likewise.
3580 * loop-invariant.c (get_inv_cost): Make hoisting constant pool
3581 loads into x87 registers expensive in terms of register pressure.
3583 2006-02-19 Roger Sayle <roger@eyesopen.com>
3585 * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
3586 __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
3588 2006-02-19 David Edelsohn <edelsohn@gnu.org>
3590 * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
3591 * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
3593 2006-02-19 Daniel Berlin <dberlin@dberlin.org>
3595 * doc/invoke.texi: Document -fipa-pta.
3596 * common.opt: Add ipa-pta option.
3597 * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
3598 (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
3599 (do_ds_constraint): Ditto.
3600 (get_constraint_for): Only add to referenced_vars if
3601 referenced_vars exists.
3602 (insert_into_field_list): Rewrite to do this unsorted.
3603 (insert_into_field_list_sorted): Rename old insert_into_field_list
3605 (create_function_info_for): Use insert_into_field_list_sorted.
3606 (create_variable_info_for): Rewrite so it uses unsorted version,
3607 since the field list is sorted.
3608 (intra_create_variable_infos): Only add to referenced_vars if
3609 referenced_vars exists.
3610 (ipa_pta_execute): Init heapvars, and delete when done.
3611 * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
3613 2006-02-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3615 * doc/install.texi: Add missing `@samp'.
3617 2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
3619 * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
3622 2006-02-18 Mark Wielaard <mark@klomp.org>
3624 * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
3625 who added new 4.1 features, bug fixes and integration support.
3627 2006-02-18 David Edelsohn <edelsohn@gnu.org>
3630 * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
3633 2006-02-18 Richard Sandiford <richard@codesourcery.com>
3635 * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
3636 * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
3637 (copy_insn_1): Likewise. Don't copy each field individually.
3639 * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
3641 * reload1.c (eliminate_regs): Use shallow_copy_rtx.
3642 * rtl.c (rtx_size): Rename variable to...
3643 (rtx_code_size): ...this.
3644 (rtx_size): New function.
3645 (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
3646 (copy_rtx): Use shallow_copy_rtx. Don't copy each field individually.
3648 (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
3649 * rtl.h (rtx_code_size): New variable.
3650 (rtx_size): Change from a variable to a function.
3651 (RTX_SIZE): Rename to...
3652 (RTX_CODE_SIZE): ...this.
3655 PR tree-optimization/17106
3656 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
3657 (Anchored Addresses): New section.
3658 * doc/invoke.texi (-fsection-anchors): Document.
3659 * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
3660 (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
3661 (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
3662 * hooks.c (hook_bool_mode_rtx_false): New function.
3663 * hooks.h (hook_bool_mode_rtx_false): Declare.
3664 * gengtype.c (create_optional_field): New function.
3665 (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
3666 SYMBOL_REF_IN_BLOCK_P is true.
3667 * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
3668 (min_anchor_offset, max_anchor_offset): Likewise.
3669 (use_anchors_for_symbol_p): New hook.
3670 * toplev.c (compile_file): Call output_object_blocks.
3671 (target_supports_section_anchors_p): New function.
3672 (process_options): Check that -fsection-anchors is only used on
3673 targets that support it and when -funit-at-a-time is in effect.
3674 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
3675 if the decl doesn't have one.
3676 * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
3677 * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
3678 of force_const_mem through use_anchored_address.
3679 (expand_expr_constant): New function.
3680 (expand_expr_addr_expr_1): Call it. Use the same modifier when
3681 calling expand_expr for INDIRECT_REF.
3682 (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
3683 for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant.
3684 * expr.h (use_anchored_address): Declare.
3685 * loop-unroll.c: Don't declare rtx vectors here.
3686 * explow.c: Include output.h.
3687 (validize_mem): Call use_anchored_address.
3688 (use_anchored_address): New function.
3689 * common.opt (-fsection-anchors): New switch.
3690 * varasm.c (object_block_htab, anchor_labelno): New variables.
3691 (hash_section, object_block_entry_eq, object_block_entry_hash)
3692 (use_object_blocks_p, get_block_for_section, create_block_symbol)
3693 (use_blocks_for_decl_p, change_symbol_section): New functions.
3694 (get_variable_section): New function, split out from assemble_variable.
3695 (make_decl_rtl): Create a block symbol if use_object_blocks_p and
3696 use_blocks_for_decl_p say so. Use change_symbol_section if the
3697 symbol has already been created.
3698 (assemble_variable_contents): New function, split out from...
3699 (assemble_variable): ...here. Don't output any code for
3700 block symbols; just pass them to place_block_symbol.
3701 Use get_variable_section and assemble_variable_contents.
3702 (get_constant_alignment, get_constant_section, get_constant_size): New
3703 functions, split from output_constant_def_contents.
3704 (build_constant_desc): Create a block symbol if use_object_blocks_p
3705 says so. Or into SYMBOL_REF_FLAGS.
3706 (assemble_constant_contents): New function, split from...
3707 (output_constant_def_contents): ...here. Don't output any code
3708 for block symbols; just pass them to place_section_symbol.
3709 Use get_constant_section and get_constant_alignment.
3710 (force_const_mem): Create a block symbol if use_object_blocks_p and
3711 use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS.
3712 (output_constant_pool_1): Add an explicit alignment argument.
3713 Don't switch sections here.
3714 (output_constant_pool): Adjust call to output_constant_pool_1.
3715 Switch sections here instead. Don't output anything for block symbols;
3716 just pass them to place_block_symbol.
3717 (init_varasm_once): Initialize object_block_htab.
3718 (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
3719 (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
3720 (place_block_symbol, get_section_anchor, output_object_block)
3721 (output_object_block_htab, output_object_blocks): New functions.
3722 * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
3723 (TARGET_ASM_OUT): Include it.
3724 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
3725 (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
3726 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
3727 (TARGET_INITIALIZER): Include them.
3728 * rtl.c (rtl_check_failed_block_symbol): New function.
3729 * rtl.h: Include vec.h. Declare heap and gc rtx vectors.
3730 (block_symbol, object_block): New structures.
3731 (rtx_def): Add a block_symbol field to the union.
3732 (BLOCK_SYMBOL_CHECK): New macro.
3733 (rtl_check_failed_block_symbol): Declare.
3734 (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
3735 (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
3736 (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
3737 (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
3738 * output.h (output_section_symbols): Declare.
3739 (object_block): Name structure.
3740 (place_section_symbol, get_section_anchor, default_asm_output_anchor)
3741 (default_use_anchors_for_symbol_p): Declare.
3742 * Makefile.in (RTL_BASE_H): Add vec.h.
3743 (explow.o): Depend on output.h.
3744 * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
3745 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
3746 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
3747 (rs6000_use_blocks_for_constant_p): New function.
3749 2006-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3751 * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
3753 2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
3756 * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
3759 2006-02-18 Diego Novillo <dnovillo@redhat.com>
3761 * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
3765 2006-02-18 Jakub Jelinek <jakub@redhat.com>
3768 * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
3769 instead of DECL_REGISTER.
3771 2006-02-18 Olivier Hainque <hainque@adacore.com>
3774 * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
3776 2006-02-18 Joseph S. Myers <joseph@codesourcery.com>
3779 * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
3780 * opth-gen.awk: Handle Var and InverseMask together.
3781 * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
3782 * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
3783 (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
3784 (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
3786 (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
3787 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
3788 * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
3789 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
3790 LINUX_DYNAMIC_LINKER): Define.
3791 (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
3792 * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
3794 * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3795 (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
3796 * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3797 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3798 (TARGET_C99_FUNCTIONS): Don't define.
3799 * config/i386/linux.h (DYNAMIC_LINKER): Rename to
3800 GLIBC_DYNAMIC_LINKER.
3801 (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
3802 * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
3803 GLIBC_DYNAMIC_LINKER64): Define.
3804 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
3805 LINUX_DYNAMIC_LINKER64.
3806 * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3807 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3808 * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
3809 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3810 * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3811 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3812 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
3813 GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
3814 UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
3815 (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
3816 and LINUX_DYNAMIC_LINKER32.
3817 * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3818 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3819 * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
3820 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3821 * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
3823 * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
3824 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
3825 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
3826 CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
3827 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
3828 (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
3829 (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
3830 * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
3831 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
3832 LINUX_DYNAMIC_LINKER): Define.
3833 (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
3834 * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
3835 GLIBC_DYNAMIC_LINKER64): Define.
3836 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
3837 LINUX_DYNAMIC_LINKER64.
3838 * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3839 (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3840 * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
3841 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
3842 LINUX_DYNAMIC_LINKER): Define.
3843 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3844 (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
3845 * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
3846 GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
3847 UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
3848 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
3849 (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
3850 (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
3851 (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
3852 * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3853 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3854 * doc/invoke.texi (-muclibc): Remove caveat about supported
3857 2006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
3859 * doc/cpp.texi (__TIMESTAMP__): Document.
3861 2006-02-17 Roger Sayle <roger@eyesopen.com>
3864 * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
3865 C is one less than the width of X (and related transformations).
3866 * simplify-rtx.c (simplify_unary_operation_1): Transform
3867 (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
3868 depending on STORE_FLAG_VALUE, were C is one less then the
3871 2006-02-17 Daniel Berlin <dberlin@dberlin.org>
3873 Fix PR tree-optimization/26341
3874 * tree-ssa-operands.c (add_virtual_operand): Remove assert
3875 about NAME_MEMORY_TAG's.
3877 2006-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3880 * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
3881 with hardware float support, and software float support. Add fcpy
3882 alternative to hardware patterns. Add alternatives to copy between
3883 general and floating-point registers to the 32-bit pattern.
3884 * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
3885 secondary reload to load a QI or HI mode constant into a floating
3887 * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
3888 * pa64-regs.h (VALID_FP_MODE_P): Likewise.
3890 2006-02-17 Andrew Pinski <pinskia@physics.uc.edu>
3893 * config/rs6000/darwin.md (load_macho_picbase_si): Add
3895 (load_macho_picbase_di): Likewise.
3897 2006-02-16 Jeff Law <law@redhat.com>
3899 * tree-vrp.c (set_value_range_to_nonnegative): New function.
3900 (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
3901 (ssa_name_nonzero_p): Likewise.
3902 (get_value_range): Return NULL if VRP is not running.
3903 (extract_range_from_expr): Fallback to tree_expr_XXX_p if
3904 VRP routines do not discover a range.
3905 (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
3906 * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
3907 * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
3908 (tree_expr_nonnegative_p): Similarly.
3909 * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
3910 (restore_nonzero_vars_to_original_value): Remove.
3911 (unsafe_associative_fp_binop): Remove.
3912 (tree_ssa_dominator_optimize): Remove initialization and
3913 finalization of nonzero_vars and nonzero_vars_stack.
3914 (dom_opt_initialize_block): No longer push marker on
3916 (dom_opt_finalize_block): No longer call
3917 restore_nonzero_vars_to_original_value.
3918 (record_equivalences_from_phis): No longer look for
3919 nonzero PHI arguments.
3920 (cprop_into_successor_phis): No longer propagate nonzero
3921 property into PHI arguments. Lose unused argument. Caller
3923 (record_equivalences_from_stmt): No longer record nonzero
3924 values for SSA_NAMEs.
3925 (lookup_avail_expr): No longer use nonzero_vars.
3927 * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
3928 for sizetype when sizetype is unsigned.
3930 2006-02-16 Denis Nagorny <denis_nagorny@linux.intel.com>
3932 PR rtl-optimization/25603
3933 * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
3934 (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
3935 * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
3936 with new meaning of SETS.
3938 2006-02-16 Joseph S. Myers <joseph@codesourcery.com>
3943 * config/linux.opt: New file.
3944 * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
3945 LINUX_DYNAMIC_LINKER): Define.
3946 (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
3947 * config.gcc (*-*-linux*): Define extra_options.
3948 (*-*-*uclibc*): Define UCLIBC_DEFAULT.
3949 (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
3950 * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
3951 GLIBC_DYNAMIC_LINKER.
3952 * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
3953 (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3954 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3955 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3956 * doc/invoke.texi (GNU/Linux Options): New section.
3958 2006-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
3960 * config/sparc/sparc.md (setjmp): Rewrite.