1 2006-04-25 David Edelsohn <edelsohn@gnu.org>
3 * varasm.c (align_variable): New function.
4 (get_block_for_decl): Apply align_variable to DECL before
5 calculating section information.
6 (assemble_variable): Split out alignment computation.
8 2006-04-25 Andreas Krebbel <krebbel1@de.ibm.com>
10 * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
13 2006-04-25 Bernd Schmidt <bernd.schmidt@analog.com>
15 * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
16 MODE_PARTIAL_INT mode.
17 * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
18 * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
20 (hard_regno_mode_ok): V2PDImode is ok for accumulators.
21 * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
23 * config/bfin/predicates.md (const01_operand, vec_shift_operand):
25 * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
27 (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
28 MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
29 MACFLAG_IH): Likewise.
30 (movstricthi_1): Renamed from "*movstricthi".
31 (load_accumulator, load_accumulator_pair, movsi_insv, insv,
32 ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
33 abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
34 movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
35 movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
36 movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
37 addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
38 sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
39 addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
40 mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
41 ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
42 flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
43 flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
44 flag_macv2hi_parts, flag_macv2hi_parts_acconly,
45 flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
47 * doc/rtl.texi (ss_ashift): Improve wording.
49 2006-04-24 Geoffrey Keating <geoffk@apple.com>
51 * dwarf2out.c (verify_marks_clear): New.
52 (prune_unused_types): Call verify_marks_clear initially, not
55 2006-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
57 * rtl.def (SS_ASHIFT, SS_NEG): New codes.
58 * doc/rtl.texi: Document them.
59 * simplify-rtx.c (simplify_unary_operation,
60 simplify_binary_operation_1): Don't abort when we see them.
62 2006-04-24 Mark Mitchell <mark@codesourcery.com>
65 2006-04-23 Mark Mitchell <mark@codesourcery.com>
66 * configure.ac: Completely disregard languages that are not
68 * configure: Regenerated.
70 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
71 Richard Guenther <rguenther@suse.de>
73 PR tree-optimization/27236
74 * tree-inline.c (copy_body_r): Make sure to copy
75 TREE_THIS_VOLATILE flag.
77 2006-04-24 Richard Guenther <rguenther@suse.de>
80 * tree-complex.c (update_parameter_components): Don't handle
81 unused parameters which have no default def.
83 2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
84 Richard Guenther <rguenther@suse.de>
86 PR tree-optimization/27218
87 * tree-inline.c (expand_call_inline): Strip useless type
88 conversions for the return slot address.
90 2006-04-24 Richard Guenther <rguenther@suse.de>
92 * cfgloop.h (struct loops): Remove unused field array. Reorder
94 (LOOP_PREFETCH): Remove.
96 2006-04-24 Richard Guenther <rguenther@suse.de>
98 PR tree-optimization/22525
99 * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
100 variable, adjust types of generated expressions.
102 2006-04-23 H.J. Lu <hongjiu.lu@intel.com>
104 * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
105 (tree-vect-patterns.o): Likewise.
107 (cselib.o): Likewise.
108 (loop-doloop.o): Likewise.
109 (regclass.o): Likewise.
110 (reload1.o): Likewise.
111 (explow.o): Replace target.h with $(TARGET_H).
112 (ipa-prop.o): Likewise.
113 (ipa-cp.o): Likewise.
114 (ipa-inline.o): Likewise.
116 (reg-stack.o): Likewise.
118 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
120 * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
122 2006-04-23 Mark Mitchell <mark@codesourcery.com>
124 * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
126 * configure.ac: Completely disregard languages that are not
128 * configure: Regenerated.
131 * c-common.h (c_build_bitfield_integer_type): Declare.
132 * c-decl.c (c_build_bitfield_integer_type): Move to ...
133 * c-common.c (c_build_bitfield_integer_type): ... here.
135 2006-04-23 Roger Sayle <roger@eyesopen.com>
138 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
139 a SImode SUBREG of a floating point register after no_new_pseudos.
141 2006-04-23 Roger Sayle <roger@eyesopen.com>
143 * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
144 identify potentially eliminable registers to additionally catch
145 VIRTUAL_INCOMING_ARGS_REGNUM.
146 (addsi3): Update the conditions on when to use addsi_small_int.
148 2006-04-23 Roger Sayle <roger@eyesopen.com>
151 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
152 STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
153 rtx to stack_pointer_rtx or frame_pointer_rtx directly.
155 2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
157 * fold-const.c (range_predecessor): Use operand_equal_p
158 as the predicate for equality.
159 (range_successor): Likewise.
161 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
164 * config/soft-fp/op-common.h: Fix a typo.
166 2006-04-22 Frank Ch. Eigler <fche@redhat.com>
169 * common.opt (flag_mudflap_threads): Overload flag_mudflap.
170 * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
172 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
174 * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
176 * doc/tm.texi: Fix a typo.
178 2006-04-21 Geoffrey Keating <geoffk@apple.com>
180 * dwarf2out.c (struct die_struct): Document that die_sib makes
181 a circular linked list.
182 (FOR_EACH_CHILD): New.
183 (reverse_die_lists): Delete.
184 (reverse_all_dies): Delete.
185 (add_dwarf_attr): Correct documentation.
186 (remove_child_with_prev): New.
187 (remove_child_TAG): Update for change to die_struct, use
188 remove_child_with_prev.
189 (add_child_die): Update for change to die_struct.
190 (splice_child_die): Use remove_child_with_prev and add_child_die.
191 (print_die): Use FOR_EACH_CHILD.
192 (die_checksum): Likewise.
193 (assign_symbol_names): Likewise.
194 (output_location_lists): Likewise.
195 (build_abbrev_table): Likewise.
196 (calc_die_sizes): Likewise.
197 (mark_dies): Likewise.
198 (unmark_dies): Likewise.
199 (unmark_all_dies): Likewise.
200 (output_die): Likewise.
201 (prune_unused_types_mark): Likewise.
202 (prune_unused_types_walk): Likewise.
203 (same_die_p): Update for change to die_struct.
204 (break_out_includes): Likewise.
205 (prune_unused_types_prune): Likewise.
206 (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
207 (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
209 (dwarf2out_finish): Don't call reverse_all_dies.
211 2006-04-21 Eric Christopher <echristo@apple.com>
213 * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
214 in comments and function names.
216 2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
219 * c-typeck.c (digest_init): Robustify.
221 * c-typeck.c (pop_init_level): Simplify.
223 2006-04-21 Steve Ellcey <sje@cup.hp.com>
225 * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
227 2006-04-21 Paul Brook <paul@codesourcery.com>
229 * config/arm/arm.c (arm_override_options): Error on iWMMXt and
230 hardware floating point.
232 2006-04-21 David Edelsohn <edelsohn@gnu.org>
234 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
237 2006-04-21 Nick Clifton <nickc@redhat.com>
239 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
242 2006-04-21 Alan Modra <amodra@bigpond.net.au>
245 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
246 C++ lang type in traceback table for Objective-C++.
248 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
250 2006-04-20 H.J. Lu <hongjiu.lu@intel.com>
252 * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
254 2006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
257 * tree-mudflap.c (mudflap_finish_file): Skip function when there
258 were errors. Remove check for erroneous objects.
260 2006-04-20 Jeff Law <law@redhat.com>
262 PR tree-optimization/26854
263 * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
264 checking for zero or one use.
265 * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
266 * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
267 * tree-ssa-reassoc.c (negate_value): Similarly.
268 (reassociate_bb): Similarly.
270 2006-04-20 Jakub Jelinek <jakub@redhat.com>
272 * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
273 TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
274 than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
276 2006-04-20 Alan Modra <amodra@bigpond.net.au>
278 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
279 fp regs if the last fp arg doesn't fit in regs.
281 2006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
284 * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
285 that the last insn has the REG_INC note.
287 2006-04-19 Carlos O'Donell <carlos@codesourcery.com>
288 Nathan Sidwell <nathan@codesourcery.com>
291 * stor-layout.c (update_alignment_for_field): Do not align
293 (place_union_field): Place union field at the start of the union.
294 (place_field): Move ERROR_MARK check later, and use the current
295 allocation position to maintain monotonicity.
297 2006-04-19 Zdenek Dvorak <dvorakz@suse.cz>
299 * dominance.c: Include timevar.h.
300 (calculate_dominance_info): Use TV_DOMINANCE.
301 * timevar.def (TV_DOMINANCE): New timevar.
302 * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
304 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
306 PR rtl-optimization/14261
307 * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
308 move would be an INSV insn.
309 (noce_process_if_block): Don't optimize if the destination is a
310 ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
312 2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
314 * config/s390/s390.md: Add comments with the instructions emitted
315 by an insn pattern if macros are used.
317 2006-04-19 Alan Modra <amodra@bigpond.net.au>
319 PR rtl-optimization/26026
320 * fold-const.c (fold_binary): Optimize div and mod where the divisor
321 is a known power of two shifted left a variable amount.
323 2006-04-18 Geoffrey Keating <geoffk@apple.com>
325 * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
326 to hash table twice when the debug_str section has SECTION_MERGE.
328 2006-04-18 Joseph S. Myers <joseph@codesourcery.com>
330 * config/soft-fp: New directory. From glibc.
331 * config/soft-fp/t-softfp: New.
332 * config/soft-fp/README: New.
333 * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
334 * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
335 (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
336 (LIBGCC_DEPS): Add $(SFP_MACHINE).
337 * config.gcc: Use rs6000/t-fprules-fpbit or
338 rs6000/t-fprules-softfp and soft-fp/t-softfp together with
340 * config/rs6000/sfp-machine.h: New. Based on glibc.
341 * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
343 * config/rs6000/t-fprules: Remove fp-bit rules.
344 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
345 * config/rs6000/t-linux64: Likewise. Remove duplicates from
346 LIB2FUNCS_EXTRA. Remove fp-bit rules.
347 (softfp_wrap_start, softfp_wrap_end): New.
349 2006-04-18 DJ Delorie <dj@redhat.com>
351 * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
353 2006-04-18 Devang Patel <dpatel@apple.com>
355 * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
357 2006-04-18 Nick Clifton <nickc@redhat.com>
359 * config/sh/t-symbian: Add rule to build sh-c.o
360 * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
361 of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
362 (sh_symbian_encode_section_info): Likewise.
364 2006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
366 * builtins.c (expand_builtin_strcmp): Cover label definition of
367 do_libcall with HAVE_cmpstrnsi.
369 2006-04-18 Kazu Hirata <kazu@codesourcery.com>
371 * function.c (temp_slots_at_level, max_slot_level): Use VEC
373 * function.h (temp_slot_p): New.
374 (function): Change the type of x_used_temp_slots to
375 VEC(temp_slot_p,gc) *.
377 2006-04-18 Nick Clifton <nickc@redhat.com>
379 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
380 flag_strength_reduce.
382 * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
384 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
388 Partial revert of revision 112637
389 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
390 Dale Johannesen <dalej@apple.com>
393 * regclass.c (struct reg_pref): Update documentation.
394 (regclass): Set prefclass to NO_REGS if memory is the best option.
395 (record_reg_classes): Cope with a prefclass set to NO_REGS.
397 2006-04-18 Paolo Bonzini <bonzini@gnu.org>
399 PR tree-optimization/26821
400 * tree-ssa-math-opts.c (get_constant_one): New.
401 (insert_reciprocals): Use it.
403 2006-04-17 Geoffrey Keating <geoffk@apple.com>
405 * dwarf2out.c (free_AT): Delete.
406 (remove_AT): Update string ref counts.
407 (remove_child_TAG): Don't call free_die.
409 (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
411 (prune_unused_types_walk_attribs): Reset string refcounts.
412 (prune_unused_types_update_strings): New.
413 (prune_unused_types_prune): Don't make unnecessary stores. Don't
414 call free_die. Do call prune_unused_types_update_strings.
415 (prune_unused_types): Empty debug_str_hash.
417 2006-04-17 Roger Sayle <roger@eyesopen.com>
419 * expr.c (expand_assignment): Optimize away no-op moves where the
420 source and destination are equal and have no side-effects.
422 2006-04-17 Richard Guenther <rguenther@suse.de>
425 * reload.c (push_reload): Guard calls to get_secondary_mem
428 2006-04-16 Kazu Hirata <kazu@codesourcery.com>
430 * alias.c (reg_base_value, old_reg_base_value): Change the
431 type to VEC(rtx,gc) *.
432 (REG_BASE_VALUE, find_base_value, record_set,
433 init_alias_analysis): Use VEC instead of VARRAY.
435 * alias.c (alias_sets): Change the type to
436 VEC(alias_set_entry,gc) *.
437 (get_alias_set_entry, new_alias_set, record_alias_subset): Use
438 VEC instead of VARRAY.
439 (last_alias_set): Remove.
441 * cgraph.h (cgraph_edge_p): New.
442 Update the prototype of cgraph_function_versioning.
443 * cgraphunit.c (cgraph_copy_node_for_versioning,
444 cgraph_function_versioning): Use VEC instead of VARRAY.
445 * ipa-cp.c (ipcp_insert_stage): Likewise.
447 2006-04-16 Roger Sayle <roger@eyesopen.com>
450 * fold-const.c (fold_ternary): When converting "A ? B : C" into either
451 "A op B" or "A op C", we may need to convert A to the type of B and C.
453 2006-04-16 Adam Nemet <anemet@caviumnetworks.com>
455 * target.h (struct gcc_target): Add mode_rep_extended.
456 * rtlanal.c (num_sign_bit_copies_in_rep): New global.
457 (init_num_sign_bit_copies_in_rep): Initialize it using
459 (truncate_to_mode): Use it.
460 (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
461 * targhooks.h (default_mode_rep_extended): Declare it.
462 * targhooks.c (default_mode_rep_extended): Define it.
463 * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
464 default_mode_rep_extended.
465 (TARGET_INITIALIZER): Include it.
466 * doc/tm.texi (Misc): Document it.
467 * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
468 (mips_truncated_to_mode): New function.
470 2006-04-16 Roger Sayle <roger@eyesopen.com>
473 * expr.c (compress_float_constant): Copy the narrow constant into
474 a new pseudo before extending it to its final width.
476 2006-04-16 Roger Sayle <roger@eyesopen.com>
477 Andrew Pinski <pinskia@gcc.gnu.org>
478 Dale Johannesen <dalej@apple.com>
481 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
482 special case code to implement V8HImode and V16QImode with SSE2.
484 2006-04-15 Roger Sayle <roger@eyesopen.com>
486 * config/i386/i386.c (ix86_va_start): Ensure all integer constant
487 trees are constructed with a suitable tree type.
489 2006-04-15 Roger Sayle <roger@eyesopen.com>
491 * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
492 (integer_onep): Likewise.
493 (integer_all_onesp): Likewise.
494 (integer_pow2p): Likewise.
495 (integer_nonzerop): Likewise.
496 (real_zerop): Likewise.
497 (real_onep): Likewise.
498 (real_twop): Likewise.
499 (real_minus_onep): Likewise.
500 (int_size_in_bytes): Likewise.
501 (host_integerp): Likewise.
503 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
505 * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
506 jump.c, mips-tfile.c, omp-low.c, sched-int.h,
507 tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
509 * tree-ssa-structalias.h (alias_info): Remove num_references.
511 2006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
513 * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
514 (output_bvb patterns): Likewise.
515 * pa.c (output_bb): Use 'bb' insn for long branch case.
516 (output_bvb): Likewise use '{bvb|bb}' for long branch case.
517 (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
518 1. Correct length operand for alternatives 1 and 2.
519 (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
520 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
522 2006-04-14 Roger Sayle <roger@eyesopen.com>
524 * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
525 is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
526 were accidentally reverted by r112959.
528 2006-04-15 Jakub Jelinek <jakub@redhat.com>
531 * except.h (eh_region_outermost): New prototype.
532 * except.c (eh_region_outermost): New function.
533 * tree-cfg.c (find_outermost_region_in_block): Use it.
535 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
537 * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
539 * reload1.c (reg_equiv_memory_loc_varray): Rename to
540 reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
541 (init_reload, reload): Use VEC instead of VARRAY.
542 * reload.h: Update the prototype for
543 reg_equiv_memory_loc_varray.
545 2006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
546 Eric Botcazou <ebotcazou@libertysurf.fr>
548 * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
551 2005-04-13 Uros Bizjak <uros@kss-loka.si>
554 * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
555 to expand fallback builtin function call.
557 2006-04-14 Alan Modra <amodra@bigpond.net.au>
560 * builtins.c: (expand_builtin_memset): Stabilize args before expansion
561 and emit libcall here in case the builtin fails.
562 (expand_builtin_strcmp): Always emit the libcall here on failure.
564 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
566 * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
567 * flow.c (reg_n_info): Change the type to
568 VEC(reg_info_p,heap) *.
569 * regclass.c (allocate_reg_info, free_reg_info): Use VEC
571 * regs.h (reg_info_p): New.
572 (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
573 REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
574 REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
577 2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
579 * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
581 * params.h (MAX_SCHED_READY_INSNS): New macro.
582 * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
583 past MAX_SCHED_READY_INSNS during the first scheduling pass.
584 (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
585 the ready list for 1 cycle during the first scheduling pass.
586 * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
588 2006-04-13 Richard Henderson <rth@redhat.com>
591 * gimple-low.c (lower_omp_directive): Remove dead code.
592 (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
593 * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
594 * omp-low.c (struct omp_region): Move to tree-flow.h.
595 (root_omp_region): Export.
596 (omp_regions, lookup_omp_region): Remove.
597 (determine_parallel_type): Update for struct omp_region changes.
598 (dump_omp_region): Dump regions with block numbers.
599 (new_omp_region): Take type and block instead of stmt; malloc
601 (free_omp_region_1, free_omp_regions): New.
602 (expand_parallel_call): Take entry_stmt as argument; update for
603 changes to omp_region.
604 (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
605 (remove_exit_barriers): New.
606 (expand_omp_parallel): Update for struct omp_region changes.
607 (expand_omp_synch): Likewise.
608 (expand_omp): Likewise.
609 (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
610 (expand_omp_for_static_chunk): Likewise.
611 (expand_omp_for): Likewise.
612 (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
613 (expand_omp_sections): Similarly, with GOMP_sections_end.
614 (expand_omp_single): New.
615 (build_omp_regions_1): Update for OMP_CONTINUE.
616 (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
617 (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
618 OMP_SECTIONS_SECTIONS.
619 (lower_omp_single_simple): Don't emit barrier here.
620 (lower_omp_single_copy): Likewise.
621 (lower_omp_single): Fix bindings, and lower to straightline now.
622 (lower_omp_master, lower_omp_ordered): Likewise.
623 (lower_omp_critical): Likewise.
624 (lower_omp_for): Likewise. Emit OMP_CONTINUE.
625 * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
626 omp edges, free it afterward.
627 (make_omp_sections_edges): Remove.
628 (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
629 (move_stmt_r): Handle OMP_CONTINUE.
630 * tree-flow.h (struct omp_region): Move from omp-low.c. Switch
631 statement pointers to basic blocks. Add type member.
632 (root_omp_region, new_omp_region, free_omp_regions): Declare.
633 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
634 * tree-inline.c (estimate_num_insns_1): Likewise.
635 * tree-pretty-print.c (dump_generic_node): Likewise.
636 * tree-ssa-operands.c (get_expr_operands): Likewise.
637 * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
638 (OMP_RETURN): Rename from OMP_RETURN_EXPR.
640 * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
641 (OMP_SECTIONS_SECTIONS): Remove.
642 (OMP_SECTION_LAST): New.
643 (OMP_RETURN_NOWAIT): New.
645 2006-04-13 Roger Sayle <roger@eyesopen.com>
647 * fold-const.c (native_encode_vector, native_interpret_real):
648 Correct obvious mistakes in the previous check-in.
650 2006-04-13 Roger Sayle <roger@eyesopen.com>
652 * fold-const.c (native_encode_expr): New function to encode
653 the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
654 or VECTOR_CST into a specified buffer.
655 (native_encode_int): New function.
656 (native_encode_real): New function.
657 (native_encode_complex): New function.
658 (native_encode_vector): New function.
659 (native_interpret_expr): Inverse of native_encode_expr to convert
660 a target representation into an INTEGER_CST, REAL_CST etc...
661 (native_interpret_int): New function.
662 (native_interpret_real): New function.
663 (native_interpret_complex): New function.
664 (native_interpret_vector): New function.
665 (fold_view_convert_expr): New function to constant fold/evaluate
666 a VIEW_CONVERT_EXPR of a suitable constant expression.
667 (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
668 Change call of build1 to fold_build1 when constructing a
671 2006-04-13 Paolo Bonzini <bonzini@gnu.org>
672 Ulrich Weigand <uweigand@de.ibm.com>
675 * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
678 2006-04-13 Alan Modra <amodra@bigpond.net.au>
681 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
682 optimize to lo_sum for DFmode if !TARGET_FPRS.
684 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
686 * tree-ssa-alias.c (set_initial_properties, init_alias_info,
687 delete_alias_info, compute_flow_sensitive_aliasing,
688 group_aliases): Use VEC instead of VARRAY.
689 * tree-ssa-structalias.c (update_alias_info): Likewise.
690 * tree-ssa-structalias.h (alias_info): Change the type of
691 processed_ptrs to VEC(tree,heap) *.
693 2006-04-12 J"orn Rennecke <joern.rennecke@st.com>
696 * config/sh/lib1funcs.h: New file, broken out of:
697 * config/sh/lib1funcs.asm.
698 * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
700 * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
701 * config/sh/lib1funcs-Os-4-200.asm: New file.
702 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
703 * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
704 (EXTRA_MULTILIB_PARTS): Include it.
705 ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
706 ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
707 * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
708 * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
711 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
713 * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
714 * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
715 tpa_compact, root_var_init, type_var_init): Use VEC instead of
717 * tree-ssa-live.h: Include vecprim.h.
718 (tree_partition_associator_d): Change the type of
719 first_partition to VEC(int,heap) *.
720 (tpa_first_partition): Use VEC instead of VARRAY.
722 * Makefile.in (GTFILES): Move functions.h after tree.h.
723 * function.c (reset_block_changes, record_block_change,
724 check_block_change, free_block_changes): Use VEC instead of
726 * function.h (function): Change the type of
727 ib_boundaries_block to VEC(tree,gc) *.
728 * tree-inline.c (copy_cfg_body): Initialize
729 ib_boundaries_block to NULL instead of (varray_type) 0.
731 2006-04-12 Roger Sayle <roger@eyesopen.com>
733 * expr.c (emit_group_store): Correct operand order in call to
734 subreg_lowpart_offset. Always create paradoxical SUBREGs with
735 a SUBREG_BYTE of zero.
737 2006-04-12 Richard Guenther <rguenther@suse.de>
739 * profile.c (compute_branch_probabilities): Remove code
740 encapsulated in !ir_type (), which are remanents of the
741 removed RTL profiling code.
742 * rtl-profile.c: Remove.
744 2006-04-12 Alan Modra <amodra@bigpond.net.au>
746 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
747 magic NULL_RTX comment.
748 (function_arg): Store entire fp arg to mem if any part should go
750 (rs6000_arg_partial_bytes): Adjust for above change.
752 2006-04-11 Roger Sayle <roger@eyesopen.com>
754 * dwarf2out.c (output_call_frame_info): Create debug_frame_section
755 if it hasn't been initialized by dwarf2out_init.
757 2006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
759 * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
760 symbolic constants in branch patterns.
762 2006-04-11 Roger Sayle <roger@eyesopen.com>
764 * caller-save.c: #include "addresses.h" after #include "tm_p.h".
766 2006-04-11 Richard Sandiford <richard@codesourcery.com>
768 PR rtl-optimization/27073
769 * gcse.c (try_replace_reg): Revert last change. Continue to search
770 for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
773 2006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
775 * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
776 aggregate types other than record and union types.
777 (function_arg): Likewise.
778 (function_arg_pass_by_reference): In 64-bit mode, return 0 for
780 (function_value): In 64-bit mode, return objects that require it
783 2006-04-11 Roger Sayle <roger@eyesopen.com>
785 * dwarf2out.c (premark_used_types): Remove problematic prototype.
787 2006-04-11 Jakub Jelinek <jakub@redhat.com>
789 * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
791 2006-04-03 Jeff Law <law@redhat.com>
794 * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
795 alias information too.
797 2006-04-10 Mike Frysinger <vapier@gentoo.org>
799 * gcc/Makefile.in (gcc-cross): Add $(exeext) to target name.
801 2006-04-10 Aldy Hernandez <aldyh@redhat.com>
804 * dwarf2out.c (struct die_struct): Add die_perennial_p field.
805 (premark_used_types_helper): New.
806 (premark_used_types): New.
807 (gen_subprogram_die): Call premark_used_types.
808 (prune_unused_types_walk): Do not prune perennial dies.
809 * function.c (used_types_insert): New.
810 * function.h (struct function): Add used_types_hash field.
811 (used_types_insert): Add prototype.
812 * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
813 * c-parser.c (c_parser_cast_expression): Save casted types in used
816 2006-04-11 Mark Mitchell <mark@codesourcery.com>
819 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
820 rs6000_explicit_options.float_gprs.
822 2006-04-10 Roger Sayle <roger@eyesopen.com>
824 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
825 from ix86_expand_vector_init_low_nonzero. Take an additional
826 one_var argument indicating which element is non-zero. Support
827 one_var != 0 for V4SFmode and V4SImode by permuting the result.
828 (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
829 with one_var instead of ix86_expand_vector_init_low_nonzero.
831 2006-04-10 Kazu Hirata <kazu@codesourcery.com>
833 * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
834 tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
835 global.o, cfglayout.o, lambda-code.o, reg-stack.o,
836 build/genextract.o): Depend on vecprim.h.
837 * cfglayout.c, df-problems.c, function.c, genextract.c,
838 global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
839 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
843 2006-04-10 Geoffrey Keating <geoffk@apple.com>
845 * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
846 Declare VECs of this type.
847 (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
848 (remove_children): Delete.
849 (add_dwarf_attr): Use VEC routines.
850 (add_AT_flag): Update for changes to add_dwarf_attr.
851 (add_AT_int): Likewise.
852 (add_AT_unsigned): Likewise.
853 (add_AT_long_long): Likewise.
854 (add_AT_vec): Likewise.
855 (add_AT_string): Likewise.
856 (add_AT_die_ref): Likewise.
857 (add_AT_fde_ref): Likewise.
858 (add_AT_loc): Likewise.
859 (add_AT_loc_list): Likewise.
860 (add_AT_addr): Likewise.
861 (add_AT_lbl_id): Likewise.
862 (add_AT_lineptr): Likewise.
863 (add_AT_macptr): Likewise.
864 (add_AT_offset): Likewise.
865 (add_AT_range_list): Likewise.
866 (get_AT): Use VEC_iterate.
867 (remove_AT): Use VEC_ordered_remove.
868 (free_die): Fold remove_children into here; have it use VEC_iterate.
869 (print_die): Use VEC_iterate on attrs.
870 (reverse_die_lists): Don't reverse attr lists.
871 (die_checksum): Use VEC_iterate on attrs.
872 (same_die_p): Likewise.
873 (output_location_lists): Likewise.
874 (build_abbrev_table): Likewise.
875 (size_of_die): Likewise.
876 (unmark_all_dies): Likewise.
877 (output_abbrev_section): Likewise.
878 (output_die): Likewise.
879 (prune_unused_types_walk_attribs): Likewise.
881 2006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
883 * doc/install.texi (*-*-solaris2*): Point to the configure page.
885 2006-04-10 Jakub Jelinek <jakub@redhat.com>
888 * dwarf2out.c (is_symbol_die): Return true also for namespaces.
890 2006-04-09 Roger Sayle <roger@eyesopen.com>
892 * expr.c (store_constructor): Don't bother clearing target if
893 we're about to assign a vector to it using vec_init_optab.
895 2006-04-10 Daniel Berlin <dberlin@dberlin.org>
897 * tree-ssa-alias.c (lhs_may_store_to): New function.
898 (recalculate_used_alone): Handle LHS of calls.
900 2006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
904 * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
905 * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a.
906 (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here.
907 (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
908 (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
909 (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
910 section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
911 stubs. Add ".align 8" directives before all ".dword" directives.
912 (GTHREAD_USE_WEAK): Revise comment.
913 (TARGET_ATTRIBUTE_WEAK): Define.
914 * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
915 dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
916 * stublib.c: New file.
921 * pa.md (cbranch patterns): Revise arguments used in calls to
922 output_cbranch, output_bb and output_bvd. Add long branch length
924 (fbranch patterns): Handle long branches.
925 (jump): Revise length check. Revise arguments for output_lbranch call.
926 Add long branch length attributes.
927 (decrement_and_branch_until_zero): Add long branch length attributes.
928 (output_movb, output_parallel_addb and output_parallel_movb patterns):
929 Likewise. Revise arguments for output_parallel_addb and
930 output_parallel_movb calls.
931 * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
932 output_parallel_movb and output_parallel_addb): Update prototypes.
933 * pa.c (output_cbranch): Revise arguments. Correct handling of
934 nullification in long branches.
935 (output_lbranch): Add new argument to control extraction of delay
937 (output_bb): Handle long branches.
938 (output_bvb, output_dbra, output_movb, output_parallel_movb,
939 output_parallel_addb): Likewise.
941 2006-04-09 Richard Sandiford <richard@codesourcery.com>
943 PR rtl-optimization/27073
944 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
947 2006-04-08 Daniel Berlin <dberlin@dberlin.org>
949 * tree.h (tree_memory_tag): Add old_used_alone.
950 (SMT_OLD_USED_ALONE): New macro.
951 * tree-ssa-alias.c (recalculate_used_alone): Stop
952 marking things for renaming unnecessarily.
954 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
956 * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
957 config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
958 config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
959 haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
960 sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
961 tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
962 tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
963 spelling convensions.
964 * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
965 doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
966 typos. Follow spelling conventions.
968 2006-04-07 DJ Delorie <dj@redhat.com>
970 * config/m32c/m32c.c (m32c_function_arg): Structures are always
972 (m32c_init_cumulative_args): When a function returns a structure,
973 always pass the pointer to that return area on the stack.
974 (m32c_function_arg_advance): Don't increment the parameter number
975 if we're processing the returned structure pointer.
976 (pushm_info): Reverse order of registers.
978 2006-04-07 Sebastian Pop <pop@cri.ensmp.fr>
980 * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
981 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
982 number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
983 estimate_numbers_of_iterations_loop): Use build_int_cst instead of
985 * tree-chrec.c (chrec_fold_multiply_poly_poly,
986 chrec_fold_multiply): Same.
987 * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
988 force_expr_to_var_cost): Same.
989 * tree-mudflap.c (mf_xform_derefs_1): Same.
990 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
992 2006-04-07 David Edelsohn <edelsohn@gnu.org>
994 * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
995 treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra
998 2006-04-07 Jan Hubicka <jh@suse.cz>
1000 * ipa-inline.c (cgraph_early_inlining): Collect garbage.
1002 2006-04-07 Richard Guenther <rguenther@suse.de>
1004 PR tree-optimization/26135
1005 * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
1006 loads for store copy-prop.
1007 (copy_prop_visit_stmt): Likewise.
1009 2006-04-05 Robert Millan <robertmh@gnu.org>
1011 * gcc/config/i386/linux.h: Add a comment to mark macros that are
1012 being overriden in config/k*bsd-gnu.h.
1013 * gcc/config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
1015 * gcc/config/knetbsd-gnu.h: Ditto.
1017 2006-04-06 Jan Hubicka <jh@suse.cz>
1021 * coverage.c (coverage_checksum_string): Reorganize loop to not read
1024 2006-04-06 Mike Stump <mrs@apple.com>
1026 * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
1027 for HAVE_nonlocal_goto to be consistent.
1028 (expand_builtin_nonlocal_goto): Likewise.
1029 (expand_builtin_strcmp): Use #ifdef instead of #if
1030 for HAVE_cmpstrnsi to be consistent.
1032 2006-04-05 DJ Delorie <dj@redhat.com>
1034 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
1037 2006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
1039 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
1040 got-relative addressing for anything but SImode.
1042 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
1043 even if the calling function doesn't modify them.
1045 2006-04-05 Richard Guenther <rguenther@suse.de>
1047 PR tree-optimization/26919
1048 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
1049 to cgraph_estimate_size_after_inlining.
1051 2006-04-05 Alan Modra <amodra@bigpond.net.au>
1053 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
1055 2006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
1057 PR tree-optimization/26996
1058 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
1059 VECTOR_TYPE variables.
1061 2006-04-05 Richard Guenther <rguenther@suse.de>
1063 PR tree-optimization/26763
1064 * fold-const.c (fold_comparison): Move folding of
1065 PTR + CST CMP PTR + CST ...
1066 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
1068 2006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
1070 * doc/install.texi (Prerequisites): Refine some wording on
1071 bootstrapping and ksh.
1072 Move the version numbers of DejaGnu here from the testing section
1073 and fix casing of names.
1074 Fix markup and clarify wording for autogen requirements.
1075 Refer to GCJ instead of just java.
1076 Refer to SVN instead of CVS.
1077 Describe diffutils as useful instead of necessary.
1078 (Downloading the source): Refer to SVN instead of CVS.
1079 Adjust a link to our web site accordingly.
1080 (Configuration): Fix casing of Bison.
1081 (Building): Refer to SVN instead of CVS.
1082 Fix a sentence on the use of Bison and remove duplicate (and
1083 incorrect) version number of Bison requirement.
1084 Remove one redundant list of packages needed for building.
1085 (Specific): Avoid reference to CVS.
1087 2006-04-04 Eric Christopher <echristo@apple.com>
1089 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
1090 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
1091 (rs6000_handle_struct_attribute): New.
1092 (rs6000_ms_bitfield_layout_p): Ditto.
1094 2006-04-04 Geoffrey Keating <geoffk@apple.com>
1096 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
1097 NULL for dso parameter to atexit_common.
1099 2006-04-04 Eric Christopher <echristo@apple.com>
1101 * config/i386/i386.c (machopic_output_stub): Output \t
1102 between instructions and operands.
1104 2006-04-04 David Edelsohn <edelsohn@gnu.org>
1106 * config/rs6000/rs6000.c (num_insns_constant_wide): Change
1107 satisfies_constraint_[IL] to explicit tests on value.
1109 2006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
1111 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1112 set_nb_iterations_in_loop): Use build_int_cst instead of
1114 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
1115 build_int_cst instead of convert.
1117 2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
1119 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
1120 new value 2 for incoming.
1121 * function.c (expand_function_start): Call struct_value_rtx
1123 * config/sparc/sparc.md: Comment updated_return.
1124 * config/sparc/sparc.opt: Add -mstd-struct-return option.
1125 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
1126 struct return if sparc_std_struct_return and incoming is 2.
1127 (print_operand): Do not adjust return if
1128 sparc_std_struct_return.
1130 2006-04-04 Roger Sayle <roger@eyesopen.com>
1132 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
1133 convert in the middle-end.
1134 * expr.c (store_expr, store_constructor, get_inner_reference,
1135 expand_expr_real_1, string_constant, try_casesi, try_tablejump):
1137 * tree.c (build_range_type): Likewise.
1139 2006-04-04 Tom Tromey <tromey@redhat.com>
1141 * doc/install.texi (Prerequisites): Mention jar.
1143 2006-04-04 Daniel Berlin <dberlin@dberlin.org>
1145 * doc/tree-ssa.texi (Preserving the virtual ssa form): New
1148 2006-04-04 Matthias Klose <doko@debian.org>
1150 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
1152 2006-04-03 Geoffrey Keating <geoffk@apple.com>
1154 * doc/extend.texi (Function Attributes): Rewrite visibility
1155 attribute documentation.
1156 * doc/invoke.texi (C++ Dialect Options): Rewrite
1157 -fvisibility-inlines-hidden documentation to describe something
1158 entirely different, although in practise compatible.
1159 (Code Gen Options): Warn about system headers in -fvisibiltity=
1162 * doc/extend.texi (Other Builtins): Document that
1163 __builtin_nan is a compile-time constant only when its argument
1166 2006-04-03 Adam Nemet <anemet@caviumnetworks.com>
1168 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
1169 trying to remove TRUNCATE check if all bits outside the new mode
1170 are identical to the sign bit.
1172 2006-04-03 Jeff Law <law@redhat.com>
1174 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
1175 and operand scanning in some common cases.
1177 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
1178 Dale Johannesen <dalej@apple.com>
1181 * regclass.c (struct reg_pref): Update documentation.
1182 (regclass): Set prefclass to NO_REGS if memory is the best option.
1183 (record_reg_classes): Cope with a prefclass set to NO_REGS.
1184 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
1185 into account. For non-registers, equate an empty preferred
1186 reload class to a `!' in the constraint; move the if clause to
1187 do so after those that reject the insn.
1188 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
1190 (find_dummy_reload): Likewise.
1191 * doc/tm.texi (Register Classes): Document what it means
1192 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
1193 * config/i386/i386.c (ix86_preferred_reload_class): Force
1194 using SSE registers (and return NO_REGS for floating-point
1195 constants) if math is done with SSE.
1196 (ix86_preferred_output_reload_class): New.
1197 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
1198 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
1199 * config/i386/i386.md: Remove # register preferences.
1201 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
1204 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1205 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
1206 the type of nb_iter.
1207 (instantiate_parameters_1): Convert the operands before calling
1208 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
1209 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
1211 2006-04-02 Roger Sayle <roger@eyesopen.com>
1213 * builtins.c (dummy_object): Use build_int_cst instead of convert.
1214 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
1216 * dojump.c (do_jump): Likewise.
1217 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
1218 * gimplify.c (gimple_boolify, gimplify_init_constructor,
1219 gimplify_boolean_expr): Likewise.
1220 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1221 * varasm.c (array_size_for_constructor): Likewise.
1222 * tree-object-size.c (compute_object_offset): Likewise.
1224 2006-04-02 Roger Sayle <roger@eyesopen.com>
1227 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
1228 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
1230 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
1232 PR tree-optimization/26939
1233 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
1235 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
1237 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
1238 at_stmt. Convert the type of operands before calling
1239 build_polynomial_chrec.
1240 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
1242 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
1243 (instantiate_parameters_1): Convert the type of operands before calling
1244 build_polynomial_chrec.
1245 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
1246 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
1247 reset_evolution_in_loop): Insert asserts to check the types of the
1249 (chrec_type): Moved...
1250 (eq_evolutions_p): Use operand_equal_p.
1251 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
1252 the types of the operands.
1253 (chrec_type): ...here.
1254 * tree-data-ref.c (create_data_ref): Convert the operands before
1255 calling chrec_replace_initial_condition.
1256 (same_access_functions, analyze_subscript_affine_affine,
1257 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
1258 (compute_subscript_distance, analyze_ziv_subscript,
1259 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
1260 analyze_miv_subscript): Convert the operands before calling
1261 chrec_fold_minus or chrec_fold_plus.
1263 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
1265 * tree-data-ref.c (compute_all_dependences): Use a pointer to
1266 the dependence_relations vector.
1267 (compute_data_dependences_for_loop): Adjust call to
1268 compute_all_dependences.
1270 2006-04-01 Roger Sayle <roger@eyesopen.com>
1271 Richard Henderson <rth@redhat.com>
1273 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
1274 gimple_boolify on the condition before calling gimplify_expr.
1276 2006-03-31 Bob Wilson <bob.wilson@acm.org>
1278 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
1279 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
1280 the frame size. Update to use the new macros.
1281 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
1282 * config/xtensa/ieee754-df.S: Likewise.
1284 2006-03-31 Richard Henderson <rth@redhat.com>
1286 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
1287 (make_edges): ... here. Control fallthru creation with a local
1288 variable. Do not play with fake edges.
1289 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
1290 (make_goto_expr_edges): Don't play with fake edges. Make for_call
1293 2006-04-01 Joseph S. Myers <joseph@codesourcery.com>
1295 * dwarf2.h (DW64_CIE_ID): Define.
1296 * dwarf2out.c (DWARF_CIE_ID): Define.
1297 (output_call_frame_info): Output 0xffffffff before standard 8-byte
1298 length header. Use DWARF_CIE_ID.
1299 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
1300 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
1302 2006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
1304 * config/sh/linux-atomic.asm: New file.
1305 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
1307 2006-03-31 DJ Delorie <dj@redhat.com>
1309 * config/m32c/cond.md: Set condition flags properly throughout.
1310 * config/m32c/minmax.md: Likewise.
1311 * config/m32c/prologue.md: Likewise.
1312 * config/m32c/bitops.md: Likewise.
1313 * config/m32c/muldiv.md: Likewise.
1314 * config/m32c/mov.md: Likewise.
1315 * config/m32c/addsub.md: Likewise.
1316 * config/m32c/m32c.md: Likewise.
1317 * config/m32c/jump.md: Likewise.
1318 * config/m32c/shift.md: Likewise.
1320 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
1321 conditionally output the pattern for this.
1322 * config/m32c/m32c.c (flags_needed_for_conditional): New.
1323 (m32c_compare_redundant): New.
1324 (m32c_output_compare): New.
1325 * config/m32c/m32c-protos.h (m32c_output_compare): New.
1327 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
1328 dest, not src. Allow other 4-byte modes.
1330 2006-03-30 Denis Chertykov <denisc@overta.ru>
1332 * doc/md.texi: Refer to avr/constraints.md instead of
1335 2006-03-30 Roger Sayle <roger@eyesopen.com>
1337 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
1338 signed vs. unsigned comparison failures on some hosts.
1340 2006-03-31 Alan Modra <amodra@bigpond.net.au>
1343 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
1344 change to FLOAT_REGS.
1346 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
1347 (rs6000_override_options): Use it.
1348 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
1349 only for -mabi=spe/no-spe and -mabi=altivec.
1351 2006-03-30 Geoffrey Keating <geoffk@apple.com>
1353 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
1356 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
1358 * Makefile.in: Rename docdir to gcc_docdir.
1360 2006-03-30 Roger Sayle <roger@eyesopen.com>
1363 * expr.c (emit_group_store): Optimize group stores into a pseudo
1364 register by using a paradoxical subreg to initialize the destination
1365 if the first or last member of the group specifies a "low part".
1367 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1370 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
1371 * target.h (struct gcc_target.speculate_insn): Change type of the
1372 second parameter to 'int'.
1373 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
1374 the second operand of the DEPS_LIST.
1375 (copy_DEPS_LIST_list): Update reference to the second operand of the
1377 * rtl.h (alloc_DEPS_LIST): Update signature.
1378 * sched-int.h (ds_t): Change typedef to 'int'.
1379 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
1381 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1383 * haifa-sched.c (try_ready): Change condition to restore
1384 non-speculative pattern of the instruction.
1385 (process_insn_depend_be_in_spec): Code to keep probability of the
1386 speculative dependence non-decreasing.
1388 2006-03-30 Jie Zhang <jie.zhang@analog.com>
1390 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
1391 (single_move_for_movmem): ... this. Also change all uses.
1392 (bfin_expand_strmov): Renamed to...
1393 (bfin_expand_movmem): ... this. Also change all uses.
1394 * config/bfin/bfin.md (movstrsi): Renamed to...
1395 (movstrsi): ...this.
1397 2006-03-30 Paolo Bonzini <bonzini@gnu.org>
1399 PR tree-optimization/26830
1401 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
1402 (copy_prop_visit_stmt): Remove write-only variable ann.
1403 (init_copy_prop): Check variable loop depth here. Do not simulate
1404 memory-tag and virtual operand PHIs except for store copy prop.
1406 2006-03-30 Richard Guenther <rguenther@suse.de>
1408 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
1409 variants with double arguments.
1411 2006-03-29 David Edelsohn <edelsohn@gnu.org>
1413 * genpreds.c (write_tm_constrs_h): Delete variable p.
1414 * genconditions.c (write_header): Add tm-constrs.h to included
1416 * genpeep.c (main): Add toplev.h to included headers.
1417 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
1418 (build/genpeep.o): Add toplev.h dependency.
1419 * config/rs6000/constraints.md: Add "W" constraint.
1421 2006-03-29 Roger Sayle <roger@eyesopen.com>
1423 * stor-layout.c (mode_for_size_tree): Remove restiction on type
1424 sizes by correctly testing whether the size fits a host integer.
1425 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
1426 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
1427 SImode range for the default sizetype and bitsizetype.
1429 2006-03-29 Roger Sayle <roger@eyesopen.com>
1431 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
1432 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
1433 quickly if the argument is already of the correct type.
1434 Call fold_build1 instead of build1. Tidy up blank lines.
1436 2006-03-29 David Edelsohn <edelsohn@gnu.org>
1438 * genemit.c (main): Add tm-constrs.h to included headers.
1439 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
1440 * genpeep.c (main): Add tm-constrs.h to included headers.
1441 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
1442 (write_tm_constrs_h): this and write complete file.
1443 (write_tm_preds_h): Do not emit satisfies_constraint fns.
1444 (write_insn_preds_c): Add tm-constrs.h to included headers.
1445 (gen_constrs): New variable.
1446 (parse_option): Parse "-c".
1447 (main): Invoke write_tm_constrs_h.
1448 * genrecog.c (write_header): Add tm-constrs.h to included headers.
1449 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
1450 (object_out_file): Add tm-constrs.h dependency.
1451 (insn-emit.o): Same.
1452 (insn-output.o): Same.
1453 (insn-peep.o): Same.
1454 (insn-preds.o): Same.
1455 (insn-recog.o): Same.
1456 (tm-constsr.h): New target.
1457 (s-constrs-h): New target.
1459 * config/rs6000/constraints.md: New file.
1460 * config/rs6000/rs6000.c: Include tm-constrs.h.
1461 (num_insn_constant_wide): Convert to satisfies_constraint.
1462 (rs6000_rtx_costs): Convert to satisfies_constraint.
1463 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
1464 (CONST_OK_FOR_LETTER_P): Delete.
1465 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1466 (EXTRA_CONSTRAINT): Delete.
1467 (EXTRA_MEMORY_CONSTRAINT): Delete.
1468 (EXTRA_ADDRESS_CONSTRAINT): Delete.
1469 * config/rs6000/predicates.md: Convert to satisfies_constraint.
1470 * config/rs6000/rs6000.md: Include constraints.md. Convert to
1471 satisfies_constraint.
1473 * config/i386/i386.c: Include tm-constrs.h.
1475 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
1477 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
1478 * tree-data-ref.c (find_data_references_in_loop,
1479 compute_data_dependences_for_loop): Use pointers to VEC.
1480 (analyze_all_data_dependences): Adjust calls.
1481 * tree-data-ref.h (find_data_references_in_loop,
1482 compute_data_dependences_for_loop): Adjust declarations.
1483 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
1484 compute_data_dependences_for_loop.
1486 2006-03-29 Paul Brook <paul@codesourcery.com>
1488 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
1491 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
1493 PR tree-optimization/26859
1494 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
1496 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
1497 for the step after fold_convert.
1499 2006-03-29 Paul Brook <paul@codesourcery.com>
1501 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
1502 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
1504 2006-03-29 Paul Brook <paul@codesourcery.com>
1507 * targhooks.c (default_narrow_bitfield): New fuction.
1508 * targhooks.h (default_narrow_bitfield): add prototype.
1509 * target.h (gcc_target): Add narrow_volatile_bitfield.
1510 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
1511 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
1512 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
1513 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
1515 2006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
1517 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
1519 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
1520 (NR_C_MODES): Add TDmode, DDmode and SDmode.
1521 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
1522 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
1523 (s390_function_arg_float): Allow SDmode and DDmode values to be
1524 passed in floating point registers.
1525 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
1526 check with SCALAR_FLOAT_MODE_P.
1527 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
1529 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
1531 PR tree-optimization/25985
1532 * tree-ssa-loop-niter.c (number_of_iterations_le,
1533 number_of_iterations_ne): Make comments more precise.
1534 (number_of_iterations_cond): Add only_exit argument. Use the
1535 fact that signed variables do not overflow only when only_exit
1537 (loop_only_exit_p): New.
1538 (number_of_iterations_exit): Pass result of loop_only_exit_p to
1539 number_of_iterations_cond.
1541 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
1543 PR tree-optimization/26643
1544 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
1547 2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
1549 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
1550 (divsi3_i4_int): Likewise.
1552 2006-03-28 Roger Sayle <roger@eyesopen.com>
1554 * expr.c (emit_group_store): Only create a new pseudo reg if the
1555 quantity it needs to hold isn't already a suitable pseudo.
1557 2006-03-28 Jeff Law <law@redhat.com>
1559 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
1560 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
1562 2006-03-28 Roger Sayle <roger@eyesopen.com>
1564 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
1565 the equivalent ~X & Y, and the symmetry related transformations.
1566 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
1567 ~X & Y, and symmetry related transforms.
1569 2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1571 Revert my 2006-03-27 patches.
1573 2006-03-28 Roger Sayle <roger@eyesopen.com>
1575 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
1576 ~(T1)X, when T1 and T2 are integer types of the same precision
1577 and (T2)X isn't an extension.
1579 2006-03-28 Jeff Law <law@redhat.com>
1581 PR tree-optimization/26796
1582 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
1583 need EH edge cleanups rather than purging them immediately.
1584 (eliminate_degenerate_phis): Handle queued EH cleanups.
1586 2006-03-28 Daniel Berlin <dberlin@dberlin.org>
1588 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
1591 2006-03-27 Roger Sayle <roger@eyesopen.com>
1594 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
1595 cast BIT_NOT_EXPR operand to the correct type.
1597 2006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
1599 * tree-loop-linear.c: Don't include varray.h.
1600 (gather_interchange_stats, try_interchange_loops,
1601 linear_transform_loops): Use VEC instead of VARRAY.
1602 * lambda-mat.c: Don't include varray.h.
1603 * tree-chrec.c: Same.
1604 * lambda-trans.c: Same.
1605 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
1606 VEC instead of VARRAY.
1607 * tree-vectorizer.h: Idem.
1608 * tree-data-ref.c (dump_data_references,
1609 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
1610 initialize_data_dependence_relation, finalize_ddr_dependent,
1611 compute_all_dependences, find_data_references_in_loop,
1612 compute_data_dependences_for_loop, analyze_all_data_dependences,
1613 free_dependence_relation, free_dependence_relations,
1614 free_data_refs): Idem.
1615 * tree-data-ref.h (data_reference_p, subscript_p): New.
1616 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
1617 VEC instead of VARRAY.
1618 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
1619 (find_data_references_in_loop, compute_data_dependences_for_loop,
1620 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
1621 dump_data_dependence_relations, free_dependence_relations,
1622 free_data_refs): Adjust declaration.
1623 (lambda_transform_legal_p): Move declaration here...
1624 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
1625 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
1626 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
1627 vect_analyze_data_refs): Use VEC instead of VARRAY.
1628 * lambda.h (lambda_transform_legal_p): ...from here.
1629 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
1630 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
1631 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
1632 tree-chrec.o): Don't depend on VARRAY_H.
1634 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1636 * rtl.def (Copyright): Update date.
1637 (DEPS_LIST): Change type of the second operand to 'int'.
1638 * target.h (Copyright): Update date.
1639 (struct gcc_target.speculate_insn): Change type of the second parameter
1641 * lists.c (Copyright): Update date.
1642 (alloc_DEPS_LIST): Change signature. Update reference to the second
1643 operand of the DEPS_LIST.
1644 (copy_DEPS_LIST_list): Update reference to the second operand of the
1646 * rtl.h (Copyright): Update date.
1647 (alloc_DEPS_LIST): Update signature.
1648 * sched-int.h (Copyright): Update date.
1649 (ds_t): Change typedef to 'int'.
1650 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
1652 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1654 * haifa-sched.c (Copyright): Update date.
1655 (try_ready): Change condition to restore non-speculative pattern
1657 (process_insn_depend_be_in_spec): Code to keep probability of the
1658 speculative dependence non-decreasing.
1660 2006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
1662 * regrename.c (replace_oldest_value_addr): Initialize a variable to
1663 shut up the compiler.
1665 2006-03-27 J"orn Rennecke <joern.rennecke@st.com>
1667 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
1668 to use lib prefix for target.
1669 ($(T)libic_invalidate_array_4-200.a): Likewise.
1670 ($(T)libic_invalidate_array_4a.a): Likewise.
1672 2006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
1673 J"orn Rennecke <joern.rennecke@st.com>
1675 * superh.opt: New file.
1676 * sh.c (boardtype, osruntime): Remove.
1677 * superh.h (SUBTARGET_OPTIONS): Remove.
1678 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
1680 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
1681 arguments with ^ and/or [].
1683 * config.gcc (sh-*-*): Add quoting to account for quirk of
1685 Replace == with = in enable_incomplete_targets test.
1687 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
1688 with MASK_LITTLE_ENDIAN.
1690 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
1691 * config/sh/sh.opt: Added to some comments.
1692 * config/sh/superh.h: Removed some chaff.
1694 * config/sh/sh.opt: Add m4-[1234]00* options.
1695 * config/sh/sh.c (sh_handle_option): Likewise.
1696 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
1697 (ic_invalidate_array_4-100.o): New rule.
1698 ($(T)libic_invalidate_array_4-100.a): Likewise.
1699 (ic_invalidate_array_4-200.o): Likewise.
1700 ($(T)libic_invalidate_array_4-200.a): Likewise.
1701 (ic_invalidate_array_4a.o): Likewise.
1702 ($(T)libic_invalidate_array_4a.a): Likewise.
1703 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
1704 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
1706 * config/sh/crt1.asm: Merged in profiling code.
1707 * config/sh/superh.h (STARTFILE_SPEC): Override.
1708 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
1709 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
1710 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
1712 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
1713 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
1714 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
1716 * sh.opt (mpretend-cmove): New option.
1717 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
1718 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
1719 (movsicc): Add TARGET_PRETEND_CMOVE code.
1721 2006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
1723 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
1724 s390_class_max_nregs): New function prototypes.
1725 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
1726 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
1727 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
1728 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
1730 2006-03-26 Geoffrey Keating <geoffk@apple.com>
1732 * dwarf2out.c (add_location_or_const_value_attribute): Call
1733 tree_add_const_value_attribute if nothing else works.
1734 (reference_to_unused): New.
1735 (rtl_for_decl_init): Use reference_to_unused to decide whether
1736 to output an initializer.
1738 2006-03-27 Alan Modra <amodra@bigpond.net.au>
1741 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
1742 peephole removing spe frob_di_df_2.
1744 2006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
1746 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
1747 (subscript_dependence_tester_1): Declared.
1748 (print_dir_vectors, print_dist_vectors): New.
1749 (debug_data_dependence_relation): New.
1750 (dump_data_dependence_relation): Print more details.
1751 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
1752 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
1753 (save_dist_v, save_dir_v, add_outer_distances,
1754 build_classic_dist_vector_1): New.
1755 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
1756 Don't test for lambda_vector_lexico_pos.
1757 (same_access_functions, add_multivariate_self_dist,
1758 add_other_self_distances, dir_from_dist): New.
1759 (build_classic_dir_vector): Replace implementation almost identical to
1760 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
1762 (subscript_dependence_tester_1): New.
1763 (subscript_dependence_tester): Handle the lexicographically negative
1764 distance vectors by recomputing the dependence relation.
1765 (compute_affine_dependence): Remove parameter loop_nest_depth.
1766 (compute_self_dependence): Don't call compute_subscript_distance.
1767 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
1768 Add a parameter for the loop_nest.
1769 (find_loop_nest_1, find_loop_nest): New.
1770 (compute_data_dependences_for_loop): Compute the loop nest, and give
1771 up if the nest is not well formed.
1772 * tree-data-ref.h (loop_p): New.
1773 (struct data_dependence_relation): Replace size_vect field with
1774 loop_nest, a vec of loops.
1775 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
1776 (DDR_LOOP_NEST): New.
1777 (print_dir_vectors, print_dist_vectors,
1778 debug_data_dependence_relation): Declared.
1779 (index_in_loop_nest): New.
1780 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
1781 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
1784 2006-03-25 Adam Nemet <anemet@caviumnetworks.com>
1786 * simplify-rtx.c (simplify_relational_operation): Call
1787 simplify_relational_operation_1 even if mode is VOIDmode.
1789 2006-03-25 Daniel Berlin <dberlin@dberlin.org>
1791 PR tree-optimization/26804
1792 * tree.h (DECL_CALL_CLOBBERED): New macro.
1793 (tree_decl_common): Add call_clobbered_flag.
1794 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
1795 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
1796 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
1797 (mark_non_addressable): Ditto.
1798 * tree-ssa.c (verify_call_clobbered): New function.
1799 (verify_alias_info): Use it.
1800 * tree-pass.h (pass_reset_cc_flags): New prototype.
1801 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
1802 (reset_cc_flags): New function.
1803 * passes.c (init_optimization_passes): Call reset_cc_flags after
1804 initializing referenced_vars.
1806 2006-03-25 Uros Bizjak <uros@kss-loka.si>
1807 Roger Sayle <roger@eyesopen.com>
1810 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
1811 to 1.0 for non-real operands. Implement A / A optimization for
1814 2006-03-25 H.J. Lu <hongjiu.lu@intel.com>
1816 * config/i386/i386.c (size_cost): Correct the comment for
1817 cost of storing fp registers.
1818 (i386_cost): Likewise.
1819 (i486_cost): Likewise.
1820 (pentium_cost): Likewise.
1821 (pentiumpro_cost): Likewise.
1822 (k6_cost): Likewise.
1823 (athlon_cost): Likewise.
1824 (k8_cost): Likewise.
1825 (pentium4_cost): Likewise.
1826 (nocona_cost): Likewise.
1827 (generic64_cost): Likewise.
1828 (generic32_cost): Likewise.
1830 2006-03-24 Denis Chertykov <denisc@overta.ru>
1832 * config/avr/avr-protos.h (extra_constraint): Delete.
1833 (extra_constraint_Q): New declaration.
1834 * config/avr/constraints.md: New file.
1835 * config/avr/avr.md: Include it.
1836 (REG_X, REG_Y, REG_Z, REG_W): New constants.
1837 (TMP_REGNO, ZERO_REGNO): Likewise.
1838 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
1839 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
1840 (extra_constraint): Delete.
1841 (extra_constraint_Q): Test for memory constraint 'Q'.
1842 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
1843 (REG_CLASS_FROM_LETTER): Delete.
1844 (CONST_OK_FOR_LETTER_P): Delete.
1845 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1846 (EXTRA_CONSTRAINT): Delete.
1847 (TMP_REGNO): Delete.
1848 (ZERO_REGNO): Delete.
1850 2006-03-24 Jeff Law <law@redhat.com>
1852 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
1853 directly. Call mark_new_vars_to_rename slightly earlier.
1855 2006-03-24 Geoffrey Keating <geoffk@apple.com>
1857 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
1859 (gen_compile_unit_die): Use new language types for Objective-C and
1861 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
1862 DW_LANG_C_plus_plus.
1865 * config/t-darwin (crt3.o): Work around bug 26840.
1866 * config/darwin-crt3.c: Rewrite.
1867 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
1869 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
1871 * doc/invoke.texi: Document -femit-class-debug-always
1872 * common.opt: Add -femit-class-debug-always.
1874 2006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
1876 * config/s390/s390.c (s390_decompose_address): Allow SImode for
1877 index and base register.
1878 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
1879 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
1880 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
1881 REGNO_OK_FOR_INDEX_P.
1882 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
1884 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
1885 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
1886 REG_OK_FOR_BASE_P): Definitions removed.
1888 2006-03-24 Jakub Jelinek <jakub@redhat.com>
1891 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
1892 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
1893 set yet or weren't marked as local yet.
1895 2006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
1897 * regrename.c (scan_rtx_address): Initialize a variable to shut up
1900 2006-03-24 Eric Botcazou <ebotcazou@adacore.com>
1902 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
1903 (rs6000_legitimate_small_data_p): Delete.
1904 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
1905 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
1906 and make static. Add forward declaration. Update uses.
1907 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
1908 of offsettable_memref_p.
1909 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
1910 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
1912 2006-03-24 Jeff Law <law@redhat.com>
1914 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
1915 around bug in immediate-use iterator.
1917 2006-03-24 Alan Modra <amodra@bigpond.net.au>
1920 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
1921 or __LITTLE_ENDIAN__.
1923 2006-03-23 J"orn Rennecke <joern.rennecke@st.com>
1925 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
1926 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
1927 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
1928 * config/sh/sh.opt (mdiv=): Amend description.
1929 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
1930 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
1931 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
1932 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
1933 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
1934 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
1935 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
1936 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
1937 TARGET_DIVIDE_CALL_FP.
1939 2006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1941 * haifa-sched.c (choose_ready): Fix type of the local variable.
1942 Move local variables. Add comment.
1943 (check_reg_live): Change signature. Make callable from debugger.
1944 * sched-int.h (check_reg_live): Update signature.
1945 * sched-ebb.c (check_reg_live): Update parameters.
1946 * sched-rgn.c (check_reg_live): Ditto.
1947 (region_head_or_leaf_p): Check pointer before dereferencing.
1948 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
1949 before reload on optimization levels below 1.
1951 2006-03-23 Richard Henderson <rth@redhat.com>
1953 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
1957 * config/alpha/predicates.md (local_symbolic_operand): Reject
1960 2006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
1963 * tree-ssa-pre.c (create_value_expr_from): Don't reject
1964 expressions which have overflowed constants.
1966 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
1968 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
1970 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
1972 * cfgloopmanip.c (create_loop_notes): Removed.
1973 * final.c (final_scan_insn): Do not handle loop notes.
1974 * jump.c (squeeze_notes): Ditto.
1975 * cfglayout.c (skip_insns_after_block,
1976 duplicate_insn_chain): Ditto.
1977 * cfgcleanup.c (rest_of_handle_jump2): Do not call
1979 * cfgloop.h (create_loop_notes): Declaration removed.
1981 2006-03-23 Richard Sandiford <richard@codesourcery.com>
1983 * varasm.c (output_constant_pool): Restore fnname and fndecl
1985 (assemble_start_function): Adjust call accordingly.
1986 (assemble_end_function): Likewise.
1988 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1991 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
1994 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
1996 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1999 * system.h (ICE_EXIT_CODE): New macro.
2000 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
2001 (diagnostic_action_after_output): Likewise.
2002 * gcc.c (fatal_ice): New function.
2003 (execute): Use it instead of fatal.
2004 (fancy_abort): Likewise.
2005 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
2007 2006-03-22 Jeff Law <law@redhat.com>
2009 * loop-unroll.c (analyze_iv_to_split_insn): Handle
2010 iv_analyze_result returning false.
2012 2006-03-22 Jie Zhang <jie.zhang@analog.com>
2014 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
2016 2006-03-22 Richard Henderson <rth@redhat.com>
2019 * except.c (duplicate_eh_regions_0): New.
2020 (duplicate_eh_region_1): Duplicate the children of the node as
2021 well as the node itself. Link them up properly.
2022 (duplicate_eh_region_2): Merge into ...
2023 (duplicate_eh_regions): ... here. Take copy_region argument, and
2024 copy only a sub-tree if asked. Simplify copying and fixup.
2025 (eh_region_outer_p): New.
2026 * except.h (duplicate_eh_regions): Update decl.
2027 (eh_region_outer_p): Declare.
2028 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
2029 (lower_omp_master): Likewise.
2030 (lower_omp_ordered): Likewise.
2031 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
2032 (move_stmt_r): Use it to remap labels. Handle recursion vs
2033 remap_decls_p properly.
2034 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
2035 (find_outermost_region_in_block): New.
2036 (new_label_mapper): New.
2037 (move_sese_region_to_fn): Copy eh information to the new function
2039 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
2041 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
2044 2006-03-22 Richard Sandiford <richard@codesourcery.com>
2046 * doc/md.texi (-mshared): Mention that -mshared code can be linked
2047 into shared libraries.
2049 2006-03-22 Richard Sandiford <richard@codesourcery.com>
2051 * doc/md.texi: Refer to i386/constraints.md instead of
2053 * config/i386/constraints.md: New file, extracted from...
2054 * config/i386/predicates.md: ...here.
2055 * config/i386/i386.md: Include constraints.md.
2057 2006-03-21 Jason Merrill <jason@redhat.com>
2059 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
2062 * expr.c (init_block_move_fn): Force default visibility.
2063 (init_block_clear_fn): Likewise.
2064 * builtins.c (expand_builtin_fork_or_exec): Likewise.
2065 * targhooks.c (default_external_stack_protect_fail): Likewise.
2067 2006-03-21 Richard Sandiford <richard@codesourcery.com>
2069 * config/mips/predicates.md (const_call_insn_operand): Allow direct
2070 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
2071 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
2072 Use TARGET_OLDABI instead of !TARGET_NEWABI.
2073 (loadgp): Use mips_current_loadgp_style.
2074 (loadgp_noshared): New pattern.
2075 (sibcall_internal): Use MIPS_CALL.
2076 (sibcall_value_internal): Likewise.
2077 (sibcall_value_multiple_internal): Likewise.
2078 (call_internal): Likewise.
2079 (call_value_internal): Likewise.
2080 (call_value_multiple_internal): Likewise.
2081 (call_split): Use MIPS_CALL and add an 'S' constraint.
2082 (call_value_split): Likewise.
2083 (call_value_multiple_split): Likewise.
2084 * config/mips/mips.opt (-mabicalls): Tweak docstring.
2085 (-mshared): New option.
2086 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
2087 (mips_current_loadgp_style): Declare.
2088 * config/mips/mips.c (mips_classify_symbol): Avoid using
2089 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
2090 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
2091 TARGET_ABSOLUTE_ABICALLS.
2092 (override_options): Adjust comments. Improve the warning that is
2093 issued when -mabicalls and -G are used together.
2094 (mips_file_start): Remove comment.
2095 (mips_current_loadgp_style): New function.
2096 (mips_gnu_local_gp): New variable.
2097 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
2099 (mips_output_function_prologue): Use mips_current_laodgp_style.
2100 (mips_expand_prologue): Call mips_emit_loadgp before emitting
2101 the cprestore instruction.
2102 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
2103 live for TARGET_ABSOLUTE_ABICALLS.
2104 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
2105 (ASM_SPEC): Pass down -mshared and -mno-shared.
2106 (MIPS_CALL): New macro.
2107 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
2109 * doc/invoke.texi (-mabicalls): Update documentation.
2110 (-mshared): Document.
2112 2006-03-21 Steve Ellcey <sje@cup.hp.com>
2114 * config/ia64/unwind-hpux.c: New file.
2115 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
2117 2006-03-21 Steve Ellcey <sje@cup.hp.com>
2120 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
2122 2006-03-21 Jeff Law <law@redhat.com>
2124 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
2125 type conversions of a VR_VARYING source to a wider type.
2127 2006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
2129 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
2130 tm_file on Solaris 10 and later.
2131 (sparc64-*-solaris2*): Likewise.
2132 (sparc-*-solaris2*): Likewise.
2133 * config/sol26.h: Rename to config/sol2-6.h.
2134 * config/sol2-10.h: New file.
2136 2006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
2139 * tree-ssa-pre.c (create_component_ref_by_pieces):
2142 2006-03-21 Jakub Jelinek <jakub@redhat.com>
2145 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
2146 return it immediately.
2148 2006-03-21 Michael Matz <matz@suse.de>
2150 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
2152 (remove_arc, add_arc): Update num_out_arcs member.
2153 (set_out_arc_insns_equiv_num): Returns nothing instead of number
2155 (cache_presence): New function.
2156 (compare_states_for_equiv): New function.
2157 (state_is_differed): Don't take number of outargs, adjust callers.
2158 Use new invariant for speeding up.
2159 (init_equiv_class): Create initial classes based on sorted
2161 (partition_equiv_class): Don't track out_arcs_num.
2162 (evaluate_equiv_classes): Call cache_presence on all states and
2165 2006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
2167 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
2168 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
2169 (bfin_valid_reg_p): Test for pseudos explicitly and use only
2170 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
2172 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
2173 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
2174 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
2175 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
2176 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
2178 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
2179 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
2180 (REGNO_REG_CLASS): ARGP is in PREGS.
2181 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
2183 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
2184 to deal with those addresses.
2185 * addresses.h: New file.
2186 * caller-save.c: Include "addresses.h".
2187 (init_caller_save): Use new base_reg_class function.
2188 * rtl-factoring.c: Include "addresses.h".
2189 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
2190 * recog.c: Include "addresses.h".
2191 (preprocess_constraints): Use new base_reg_class function.
2192 * regrename.c: Include "addresses.h".
2193 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
2194 functions. Keep track of a new var INDEX_CODE to compute valid
2196 (replace_oldest_value_addr): Likewise.
2197 (replace_oldest_value_mem): Use base_reg_class.
2198 * reload.c: Include "addresses.h".
2199 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
2200 (find_reloads): Use new base_reg_class function.
2201 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
2202 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
2203 all callers and prototype changed.
2204 * reload1.c: Include "addresses.h".
2205 (maybe_fix_stack_asms): Use base_reg_class.
2206 * regclass.c: Include "addresses.h".
2207 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
2208 (init_reg_autoinc): Use new base_reg_class function.
2209 (record_reg_classes): Likewise.
2210 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
2211 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
2212 Use new args to compute necessary class.
2214 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
2215 regrename.o, rtl-factoring.o): Update dependencies.
2216 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
2217 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
2218 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
2219 REG_OK_FOR_INDEX_P): Delete documentation.
2221 2006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
2223 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
2224 from V7 to V9 for Solaris 7 and above.
2226 2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
2228 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
2229 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
2230 argument pointers may not alias any other storage.
2231 * common.opt: Define option -fargument-noalias-anything.
2232 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
2233 alias semantics is specified by flag_argument_noalias > 2.
2235 2006-03-20 Jeff Law <law@redhat.com>
2237 * tree-pass.h (pass_phi_only_copy_prop): Delete.
2238 (pass_phi_only_cprop): Declare.
2239 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
2241 * tree-ssa-dom.c (degenerate_phi_result): New function.
2242 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
2243 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
2244 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
2245 (eliminate_degenerate_phis): Likewise.
2246 (pass_phi_only_cprop): New pass descriptor.
2247 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
2248 support code. Callers updated.
2249 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
2250 (store_copy_prop): Likewise.
2251 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
2253 2006-03-20 Jason Merrill <jason@redhat.com>
2256 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
2257 (push_visibility, pop_visibility): Likewise.
2258 * c-pragma.h: Declare them.
2260 2006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
2262 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
2264 * config/sh/sh.c (find_regmode_weight): Change the type of the first
2265 parameter and use get_ebb_head_tail.
2266 (sh_md_init_global): Adjust uses of find_regmode_weight.
2268 2006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
2270 * function.h (struct function) <x_tail_recursion_reentry>:
2271 Rename to x_stack_check_probe_note.
2272 (tail_recursion_reentry): Rename to stack_check_probe_note.
2273 * function.c: Replace tail_recursion_reentry with
2274 stack_check_probe_note everywhere.
2275 (expand_function_start): Only emit a note for
2276 stack_check_probe_note with -fstack-protect.
2277 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
2279 * emit-rtl.c (remove_unnecessary_notes): Remove.
2280 (pass_remove_unnecessary_notes): Remove.
2281 * rtl.h (remove_unnecessary_notes): Remove prototype.
2282 * final.c (final_start_function): Don't call remove_unnecessary_notes.
2283 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
2284 * passes.c (pass_remove_unnecessary_notes): Don't run it.
2286 2006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
2289 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
2290 (valid_in_set): Handle ARRAY_REF.
2291 Change "if min_variant or VH" to asserts.
2292 (create_component_ref_by_pieces): Handle ARRAY_REF.
2293 (create_expression_by_pieces): Likewise.
2294 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
2296 2006-03-20 David Edelsohn <edelsohn@gnu.org>
2298 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
2299 is operand of switch, not str[0].
2301 2006-03-20 Alan Modra <amodra@bigpond.net.au>
2303 * config/rs6000/rs6000.c (rs6000_handle_option): Use
2304 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
2306 2006-03-19 David Edelsohn <edelsohn@gnu.org>
2308 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
2309 end of insn_extra_address_constraint declaration.
2311 2006-03-19 David Edelsohn <edelsohn@gnu.org>
2313 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
2314 (no-sum-in-toc): Same.
2315 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
2317 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
2318 NO_FP_IN_TOC for -fPIC instead of mask.
2320 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
2321 (BOOT_LDFLAGS): Delete.
2323 * config/rs6000/t-aix52: Same.
2325 * config/rs6000/rs6000.md (store_multiple_power): Delete.
2326 (stmsi[345678]_power): New.
2328 2006-03-17 Steve Ellcey <sje@cup.hp.com>
2330 * config/ia64/ia64.opt: Add empty line to end of file.
2332 2006-03-17 Richard Guenther <rguenther@suse.de>
2335 * builtins.c (get_pointer_alignment): For component style references
2336 adjust alignment to the component type alignment. Make sure
2337 to adjust alignment for component access of constants.
2339 2006-03-17 David Edelsohn <edelsohn@gnu.org>
2341 * config/rs6000/rs6000.md (strlensi): Emit barrier after
2344 2006-03-17 Paul Brook <paul@codesourcery.com>
2346 * doc/install.texi: Docuemnt --with-mode.
2347 * config.gcc: Add --with-mode for arm*-*-*.
2348 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
2350 2006-03-17 J"orn Rennecke <joern.rennecke@st.com>
2352 * sh.c (max_labelno_before_reorg): New variable.
2353 (sh_reorg): Initialize it.
2354 (find_barrier): Check max_labelno_before_reorg before using
2355 label_to_alignment. Take length of explicit alignment insns
2356 into account. When seeing a UNSPECV_CONST_END, return it.
2358 * sh.c (fixup_mova): Set mode of affected label to QImode.
2359 (untangle_mova): New function.
2360 (find_barrier): Use it. Check mode of label before decrementing
2362 (sh_reorg): Likewise.
2363 Set mode of all insns back to VOIDmode.
2365 * sh.c (MOVA_LABELREF): New macro.
2366 (mova_p, fixup_mova, sh_reorg): Use it.
2367 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
2368 ADDR_DIFF_VEC matches mova.
2370 2006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
2372 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
2373 with ATTRIBUTE_UNUSED.
2375 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
2377 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
2378 pointer, instead of assuming it is possible to derive the
2379 correct args size from a call insn.
2381 2006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2383 * rtl.h (CONST_INT_P): Define.
2384 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
2385 instead of GET_CODE(x) == CONST_INT.
2386 (vax_rtx_costs): Likewise.
2387 (vax_output_int_move): Likewise.
2388 (vax_output_int_add): Likewise.
2389 (legitimate_constant_address_p): Likewise.
2390 (index_term_p): Likewise.
2391 * config/vax/vax.h (PRINT_OPERAND): Likewise.
2392 * config/vax/vax.md (and<mode>3): Likewise.
2393 (ashrsi3): Likewise.
2395 (movstricthi): Likewise.
2396 (movstrictqi): Likewise.
2397 (rotrsi3): Likewise.
2398 (five unnamed insns): Likewise.
2400 2006-03-16 Geoffrey Keating <geoffk@apple.com>
2402 * doc/tm.texi (SDB and DWARF): Add extra parameter to
2403 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
2404 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
2405 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
2406 Pass to ASM_OUTPUT_DWARF_OFFSET.
2407 * dwarf2out.c (debug_frame_section): New.
2408 (output_call_frame_info): Use debug_frame_section. Pass it to
2409 dw2_asm_output_offset.
2410 (output_die): Pass appropriate section to dw2_asm_output_offset.
2411 (output_compilation_unit_header): Likewise.
2412 (output_pubnames): Likewise.
2413 (output_aranges): Likewise.
2414 (enum dw_val_class): Break dw_val_class_lbl_offset into
2415 dw_val_class_lineptr and dw_val_class_macptr.
2416 (add_AT_lbl_offset): Delete.
2417 (add_AT_lineptr): New.
2418 (add_AT_macptr): New.
2419 (AT_lbl): Expect a lineptr or macptr.
2420 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
2421 (attr_checksum): Likewise.
2422 (same_dw_val_p): Likewise.
2423 (size_of_die): Likewise.
2424 (value_format): Likewise.
2425 (output_die): Likewise.
2426 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
2428 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
2429 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
2430 * config/darwin-protos.h (darwin_file_start): New.
2431 (darwin_asm_output_dwarf_offset): New.
2432 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
2433 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
2435 * config/darwin.c (darwin_emit_unwind_label): Don't output label
2436 if not EH section; simplify.
2437 (darwin_file_start): New.
2438 (darwin_asm_output_dwarf_offset): New.
2439 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
2441 (DEBUG_INFO_SECTION): Likewise.
2442 (DEBUG_ABBREV_SECTION): Likewise.
2443 (DEBUG_ARANGES_SECTION): Likewise.
2444 (DEBUG_MACINFO_SECTION): Likewise.
2445 (DEBUG_LINE_SECTION): Likewise.
2446 (DEBUG_LOC_SECTION): Likewise.
2447 (DEBUG_PUBNAMES_SECTION): Likewise.
2448 (DEBUG_STR_SECTION): Likewise.
2449 (DEBUG_RANGES_SECTION): Likewise.
2450 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
2451 (ASM_OUTPUT_DWARF_OFFSET): New.
2453 2006-03-16 Joseph S. Myers <joseph@codesourcery.com>
2455 * config.gcc (tm_defines): Always add to previous value rather
2458 2006-03-16 Richard Sandiford <richard@codesourcery.com>
2460 * config/mips/predicates.md (splittable_const_int_operand): New,
2461 split from move_operand.
2462 (splittable_symbolic_operand): New.
2463 (move_operand): Add commentary. Use splittable_const_int_operand.
2464 Inline mips_atomic_symbolic_constant_p.
2465 * config/mips/mips.md: Add combine splitters for handling moves
2466 of splittable_const_int_operands and splittable_symbolic_operands.
2467 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
2468 (mips_split_symbol): Declare.
2469 (mips_move_integer): Declare.
2470 * config/mips/mips.c (mips_split_p): Make global.
2471 (TARGET_MIN_ANCHOR_OFFSET): Override default.
2472 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
2473 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
2474 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
2475 (mips_offset_within_object_p): Handle block symbols.
2476 (mips_atomic_symbolic_constant_p): Delete.
2477 (mips_cannot_force_const_mem): Return false for constants that
2478 mips_legitimize_move can handle.
2479 (mips_use_blocks_for_constant_p): New function.
2480 (mips_split_symbol): Make global.
2481 (mips_move_integer): Likewise. Add a temporary register argument.
2482 (mips_legitimize_const_move): Use splittable_const_int_operand and
2483 splittable_symbolic_operand.
2484 (mips_use_anchors_for_symbol_p): New function.
2485 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
2486 (mips_split_p): Declare.
2488 2006-03-16 Richard Sandiford <richard@codesourcery.com>
2490 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
2491 (mips*-*-linux*): Likewise.
2493 2006-03-16 Roger Sayle <roger@eyesopen.com>
2494 Daniel Speyer <dspeyer@wam.umd.edu>
2497 * tree-dump.c (dump_real): New function.
2498 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
2499 * Makefile.in (REAL_H): New macro for dependencies on real.h.
2500 (tree-dump.o): Add $(REAL_H) to the dependencies.
2502 2006-03-16 Roger Sayle <roger@eyesopen.com>
2505 * real.c (real_from_string): If the mantissa is zero, don't bother
2506 parsing the exponent as the result should always be zero.
2508 2006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
2510 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
2512 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2514 * config/ia64/ia64.c (stops_p): Added explicit initialization.
2515 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
2516 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
2517 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
2518 ia64_sched_finish_global): New static functions to implement
2519 hooks from gcc_target.sched.
2520 (spec_check_no, max_uid, pending_data_specs): New static variables.
2521 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
2522 ia64_spec_check_src_p): New static functions.
2523 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
2524 (TARGET_SCHED_ADJUST_COST): Removed.
2525 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
2526 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
2527 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
2528 TARGET_SCHED_GEN_CHECK,
2529 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
2530 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
2531 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
2532 Fixed to handle speculation checks.
2533 (rtx_needs_barrier): Fixed to handle speculative loads and
2535 (ia64_variable_issue): Added code to count speculative loads and their
2537 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
2539 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
2541 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
2543 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
2544 (ia64_reorg): Reset stops_p to NULL after it is freed.
2545 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
2546 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
2547 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
2549 (data_speculative, control_speculative, check_load): New attributes.
2550 (mov<mode>_advanced, mov<mode>_speculative,
2551 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
2552 zero_extend<mode>di2_speculative,
2553 zero_extend<mode>di2_speculative_advanced): New patterns for
2554 data and control speculative loads.
2555 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
2557 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
2558 New pattern for data and control speculation checks.
2559 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
2560 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
2561 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
2562 Auxiliary definitions for the patterns.
2563 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
2564 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
2566 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
2568 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
2569 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
2570 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
2571 New resource constraints.
2572 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
2574 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
2575 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
2576 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
2577 msched-in-control-spec, msched-ldc, msched-control-ldc,
2578 msched-spec-verbose, msched-prefer-non-data-spec-insns,
2579 msched-prefer-non-control-spec-insns,
2580 msched-count-spec-in-critical-path): New flags to tune speculative
2582 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
2583 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
2584 msched-in-control-spec, msched-ldc, msched-control-ldc,
2585 msched-spec-verbose, msched-prefer-non-data-spec-insns,
2586 msched-prefer-non-control-spec-insns,
2587 msched-count-spec-in-critical-path): Document new flags.
2589 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2591 * target.h (struct spec_info_def): New opaque declaration.
2592 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
2593 speculate_insn, needs_block_p, gen_check,
2594 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
2595 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
2596 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
2597 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
2598 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
2599 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
2601 (TARGET_SCHED): Use new macros.
2602 * rtl.h (copy_DEPS_LIST_list): New prototype.
2603 * sched-int.h (struct sched_info): Change signature of new_ready field,
2604 adjust all initializations. New fields: add_remove_insn,
2605 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
2606 region_head_or_leaf_p.
2607 (struct spec_info_def): New structure declaration.
2608 (spec_info_t): New typedef.
2609 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
2610 recovery_block, orig_pat.
2611 (glat_start, glat_end): New variables declaraions.
2612 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
2614 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
2615 DETACH_LIFE_INFO, USE_GLAT.
2616 (enum SPEC_SCHED_FLAGS): New enumeration.
2617 (NOTE_NOTE_BB_P): New macro.
2618 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
2619 attach_life_info, debug_spec_status, check_reg_live): New functions.
2620 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
2621 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
2623 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
2624 * ddg.c (get_block_head_tail): Adjust all uses.
2625 * modulo-sched.c (get_block_head_tail): Adjust all uses.
2626 (sms_sched_info): Initialize new fields.
2627 (contributes_to_priority): Removed.
2628 * haifa-sched.c (params.h): New include.
2629 (get_block_head_tail): Adjust all uses.
2630 (ISSUE_POINTS): New macro.
2631 (glat_start, glat_end): New global variables.
2632 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
2633 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
2634 old_last_basic_block, before_recovery, current_sched_info_var,
2635 rgn_n_insns, luid): New static variables.
2636 (insn_cost1): New function. Move logic from insn_cost to here.
2637 (find_insn_reg_weight1): New function. Move logic from
2638 find_insn_reg_weight to here.
2639 (reemit_notes, move_insn, max_issue): Change signature.
2640 (move_insn1): Removed.
2641 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
2642 extend_bb): New static functions to support extension of scheduler's
2644 (generate_recovery_code, process_insn_depend_be_in_spec,
2645 begin_speculative_block, add_to_speculative_block,
2646 init_before_recovery, create_recovery_block, create_check_block_twin,
2647 fix_recovery_deps): New static functions to support
2648 generation of recovery code.
2649 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
2650 restore_bb_notes, move_block_after_check, move_succs): New static
2651 functions to support ebb scheduling.
2652 (init_glat, init_glat1, attach_life_info1, free_glat): New static
2653 functions to support handling of register live information.
2654 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
2655 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
2656 add_jump_dependencies): New static functions.
2657 (check_cfg, has_edge_p, check_sched_flags): New static functions for
2658 consistancy checking.
2659 (debug_spec_status): New function to call from debugger.
2660 (priority): Added code to handle speculation checks.
2661 (rank_for_schedule): Added code to distinguish speculative instructions.
2662 (schedule_insn): Added code to handle speculation checks.
2663 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
2664 Fixed to handle ebbs.
2665 (move_insn): Added code to handle ebb scheduling.
2666 (max_issue): Added code to use ISSUE_POINTS of instructions.
2667 (choose_ready): Added code to choose between speculative and
2668 non-speculative instructions.
2669 (schedule_block): Added code to handle ebb scheduling and scheduling of
2670 speculative instructions.
2671 (sched_init): Initialize new variables.
2672 (sched_finish): Free new variables. Print statistics.
2673 (try_ready): Added code to handle speculative instructions.
2674 * lists.c (copy_DEPS_LIST_list): New function.
2675 * sched-deps.c (extend_dependency_caches): New function. Move logic
2676 from create_dependency_caches to here.
2677 (get_dep_weak, ds_merge): Make global.
2678 * genattr.c (main): Code to output prototype for
2679 dfa_clear_single_insn_cache.
2680 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
2681 (output_dfa_clean_insn_cache_func): Code to output
2682 dfa_clear_single_insn_cache function.
2683 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
2685 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
2687 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
2688 New static variables.
2689 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
2690 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
2692 (ebb_sched_info): Initialize new fields.
2693 (get_block_head_tail): Adjust all uses.
2694 (compute_jump_reg_dependencies): Fixed to use glat_start.
2695 (schedule_ebb): Code to remove unreachable last block.
2696 (schedule_ebbs): Added code to update register live information.
2697 * sched-rgn.c (region_sched_info): Initialize new fields.
2698 (get_block_head_tail): Adjust all uses.
2699 (last_was_jump): Removed. Adjust users.
2700 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
2701 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
2702 Implement new hooks.
2703 (check_dead_notes1): New static function.
2704 (struct region): New fields: dont_calc_deps, has_real_ebb.
2705 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
2706 (BB_TO_BLOCK): Fixed to handle EBBs.
2707 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
2708 (ebb_head): New static variable.
2709 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
2710 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
2712 (compute_dom_prob_ps): New assertion.
2713 (check_live_1, update_live_1): Fixed to work with glat_start instead of
2714 global_live_at_start.
2715 (init_ready_list): New assertions.
2716 (can_schedule_ready_p): Split update code to begin_schedule_ready.
2717 (new_ready): Add support for BEGIN_CONTROL speculation.
2718 (schedule_insns): Fixed code that updates register live information
2720 (schedule_region): Fixed to handle EBBs.
2721 (init_regions): Use extend_regions and check_dead_notes1.
2722 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
2723 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
2724 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
2725 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
2726 TARGET_SCHED_GEN_CHECK,
2727 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
2728 TARGET_SCHED_SET_SCHED_FLAGS): Document.
2729 * doc/invoke.texi (max-sched-insn-conflict-delay,
2730 sched-spec-prob-cutoff): Document.
2732 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2734 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
2735 inter_tick, queue_index.
2736 (struct sched_info): Change signature of init_ready_list field.
2737 Adjust all initializations.
2738 (RESOLVED_DEPS): New access macro.
2739 (ready_add): Remove prototype.
2740 (try_ready): Add prototype.
2741 * sched-rgn.c (init_ready_list): Use try_ready.
2742 (schedule_region): Initialize
2743 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
2744 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
2745 (init_ready_list): Use try_ready.
2746 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
2747 * lists.c (remove_list_elem): Remove `static'.
2748 (remove_free_INSN_LIST_elem): New function.
2749 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
2750 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
2751 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
2753 (readyp): New variable.
2754 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
2755 change_queue_index, resolve_dep): New static functions.
2756 (try_ready): New function. Adjust callers in sched-rgn.c and
2757 sched-ebb.c to use it instead of ready_add.
2758 (clock_var): Move at the begining of file.
2759 (rank_for_schedule): Fix typo.
2760 (queue_insn): Add assertion. Handle QUEUE_INDEX.
2761 (ready_lastpos): Enforce assertion.
2762 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
2764 (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
2765 (schedule_insn): Rewrite to use try_ready and resolve_dep.
2766 (queue_to_ready): Use free_INSN_LIST_list.
2767 (early_queue_to_ready): Fix typo.
2768 (schedule_block): Init readyp. Move init_ready_list call after the
2769 initialization of clock_var. Fix error in rejecting insn by
2770 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
2771 that previously corrected INSN_TICKs. Add code for handling
2773 (set_priorities): Fix typo.
2774 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
2775 Clarify comment and code that keeps current_sched_info->next_tail
2778 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2780 * sched-rgn.c (extend_rgns): New static function.
2781 (find_rgns): Use it.
2782 (gather_region_statistics, print_region_statistics): New static
2784 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
2785 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
2787 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2788 Andrey Belevantsev <abel@ispras.ru>
2790 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
2791 * lists.c (unused_deps_list): New variable.
2792 (free_list): Add assertions to verify the proper distinguishing
2793 between INSN_LISTs and DEPS_LISTs.
2794 (find_list_elem, remove_list_elem, remove_list_node): New static
2796 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
2797 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
2798 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
2799 (alloc_INSN_LIST): Assert that the list we're working on is indeed
2801 (free_INSN_LIST_node): Likewise.
2802 * modulo-sched.c (current_sched_info): Initialize flags field.
2803 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
2804 * rtl.def (DEPS_LIST): Define.
2805 * rtl.h: Declare new functions from lists.c.
2806 * sched-deps.c (spec_dependency_cache): New static variable.
2807 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
2808 (add_dependence): Change return type to void. Move the logic to ...
2809 (add_or_update_back_dep_1): ... here. Handle speculative dependencies.
2810 (delete_all_dependences): Add comment about forward_dependency_cache.
2811 Handle spec_dependency_cache. Handle DEPS_LISTs.
2812 (fixup_sched_groups): Clarify the change of priority of output
2813 and anti dependencies.
2814 (sched_analyze_2): Adjust add_dependence calls to create data
2815 speculative dependence.
2816 (add_forward_dependence): Renamed to add_forw_dep, change prototype.
2817 Adjust all callers. Handle DEPS_LISTS.
2818 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
2819 presence of speculation.
2820 (init_dependency_caches, free_dependency_caches):
2821 Handle spec_dependency_cache.
2822 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
2823 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
2824 New static functions.
2825 (add_or_update_back_dep, add_or_update_back_forw_dep,
2826 add_back_forw_dep, delete_back_forw_dep): New functions.
2827 * sched-int.h (ds_t, dw_t): New typedefs.
2828 (struct sched_info): Add new field flags.
2829 (struct haifa_insn_data): Add new bitfield has_internal_dep.
2830 Prototype new sched-deps.c functions.
2831 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
2832 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
2833 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
2834 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
2835 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
2836 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
2838 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
2840 * sched-rgn.c (current_sched_info): Initialize flags field.
2841 (schedule_insns): Initialize current_sched_info before the sched_init
2843 * sched-ebb.c (current_sched_info): Initialize flags field.
2844 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
2845 Call add_or_update_back_dep instead of add_dependence.
2846 Create control speculative dependencies.
2847 (schedule_insns): Initialize current_sched_info before the sched_init
2850 2006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
2852 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
2854 (sh_fallback_frame_state): Likewise.
2856 2006-03-15 Geoffrey Keating <geoffk@apple.com>
2858 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
2859 Do switch on default_use_cxa_atexit.
2860 (powerpc*-*-darwin*): Build crt2.o on powerpc.
2861 * config/darwin-crt3.o: New.
2862 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
2863 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
2864 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
2866 * config/rs6000/t-darwin: Move crt2.o building to here.
2867 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
2868 Mac OS version for using __cxa_get_exception_ptr. Don't test versions
2871 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2873 * config/vax/vax.c (nonindexed_address_p): Change logical negation
2874 from '! xxx' to '!xxx' for coding-style conformance.
2875 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
2876 (EXTRA_CONSTRAINT): Likewise.
2877 * config/vax/vax.md (four unnamed insns): Likewise.
2879 2006-03-15 Paul Brook <paul@codesourcery.com>
2881 * config/arm/arm.c (minipool_pad): New.
2882 (add_minipool_forward_ref): Include pool alignment padding in address
2884 (push_minipool_fix): Set minipool_pad.
2885 (minipool_pad): Ditto.
2887 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2889 * config/vax/vax.c (split_quadword_operands): Use MEM_P()
2890 instead of GET_CODE() == MEM and REG_P() instead of
2892 (print_operand_address): Likewise.
2893 (vax_address_cost): Likewise.
2894 (vax_rtx_costs): Likewise.
2895 (vax_notice_update_cc): Likewise.
2896 (vax_output_int_add): Likewise.
2897 (INDEX_REGISTER_P): Likewise.
2898 (BASE_REGISTER_P): Likewise.
2899 (nonindexed_address_p): Likewise.
2900 (vax_mode_dependent_address_p): Likewise.
2901 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
2902 (PRINT_OPERAND): Likewise.
2903 * config/vax/vax.md (ashlsi3): Likewise.
2904 (ashlsi3): Likewise.
2905 (some more unnamed insns): Likewise.
2907 2006-03-15 Kazu Hirata <kazu@codesourcery.com>
2909 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
2910 iterator-style macro.
2911 (mark_control_dependent_edges_necessary): Update the use of
2912 EXECUTE_IF_CONTROL_DEPENDENT.
2914 2006-03-15 J"orn Rennecke <joern.rennecke@st.com>
2916 * config/sh/predicates.md (cache_address_operand): Special.
2917 (ua_address_operand): Likewise.
2919 2006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
2921 * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
2923 * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
2925 2006-03-15 Andreas Schwab <schwab@suse.de>
2927 * gensupport.c (identify_predicable_attribute): Don't free p_false
2928 when it is still in use.
2930 2006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
2932 * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
2933 the default setting here.
2935 2006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
2937 * tree-pass.h (pass_cfg): Remove.
2938 * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
2939 * passes.c (pass_cfg): Don't run it.
2941 2006-03-14 Kazu Hirata <kazu@codesourcery.com>
2943 * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
2944 * reg-stack.c (stack_regs_mentioned_data): Change the type to
2946 (stack_regs_mentioned): Update the uses of
2947 stack_regs_mentioned_data. Don't access the array beyond its
2949 (reg_to_stack): Update the uses of stack_regs_mentioned_data.
2950 Don't include gt-reg-stack.h.
2952 * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
2953 * system.h (UNALIGNED_WORD_ASM_OP): Poison.
2955 * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
2958 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
2961 2006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2963 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
2965 2006-03-14 Richard Guenther <rguenther@suse.de>
2967 PR tree-optimization/26672
2968 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
2971 2006-03-14 Richard Guenther <rguenther@suse.de>
2973 PR tree-optimization/26667
2974 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
2975 node for the callees. Always allow inlining if it will shrink
2978 2006-03-14 Richard Guenther <rguenther@suse.de>
2981 * builtins.c (get_pointer_alignment): Prefer alignment
2982 information from decls over that from types.
2984 2006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
2987 * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
2989 2006-03-14 Joseph S. Myers <joseph@codesourcery.com>
2991 * config/rs6000/rs6000.opt (mdlmzb): New option.
2992 (msched-prolog, msched-epilog): Use Var not Mask.
2993 * doc/invoke.texi (-mdlmzb): Document.
2994 * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
2996 (rs6000_override_options): Enable -mdlmzb for 405 and 440.
2997 * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
2999 2006-03-13 Uttam Pawar <uttamp@us.ibm.com>
3001 PR rtl-optimization/25739
3002 * bt-load.c (augment_live_range): Free tos pointer.
3004 * gensupport.c (identify_predicable_attribute): Free
3006 * gcov.c (create_file_names): Free name pointer.
3008 2006-03-13 Roger Sayle <roger@eyesopen.com>
3011 * stmt.c (emit_case_nodes): Handle the case where the index is a
3012 CONST_INT, where the comparison mode is specified by the index type.
3014 2006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3016 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
3019 2006-03-13 Richard Sandiford <richard@codesourcery.com>
3021 * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
3022 (*branch_fp_inverted): Likewise.
3024 2006-03-13 Jakub Jelinek <jakub@redhat.com>
3027 * omp-low.c (expand_omp_for_generic): Mark istart0
3028 and iend0 as addressable.
3030 2006-03-13 Jie Zhang <jie.zhang@analog.com>
3032 * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
3034 2006-03-13 Jeff Law <law@redhat.com>
3036 * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
3037 virtual operands are interesting.
3038 (vrp_visit_stmt): Corresponding changes.
3040 2006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
3042 * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
3044 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
3045 TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
3046 * config/bfin/crti.S: Use it instead of __PIC__.
3047 * config/bfin/crtn.S: Likewise.
3049 * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
3050 call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
3052 Lose 'G' modifier for call operand.
3053 * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
3054 recognize 'G' modifier.
3056 2006-03-13 Eric Botcazou <ebotcazou@adacore.com>
3059 * gimplify.c (gimplify_switch_expr): Discard empty ranges.
3060 * stmt.c (expand_case): Likewise.
3062 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
3064 PR rtl-optimization/26254
3065 * loop-invariant.c (seq_insns_valid_p): New function.
3066 (move_invariant_reg): Only emit new code if it is valid.
3068 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
3070 * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
3072 (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
3073 (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
3074 (commit_one_edge_insertion): Do not look for loop notes.
3076 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
3078 * jump.c (follow_jumps): Do not check for loop notes. Move check for
3079 flag_test_coverage out of loop.
3081 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
3083 * final.c (shorten_branches): Remove outdated comment, and turn
3084 the if branch that guards it to continue.
3086 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
3088 * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
3089 * cfgloop.h (struct loop): Remove unused fields.
3091 2006-03-13 Kazu Hirata <kazu@codesourcery.com>
3093 * doc/invoke.texi (-fdump-rtl-loop): Remove.
3094 (-dL, -fdump-rtl-loop2): Update the dump file names
3096 * doc/invoke.texi: Update dump file names.
3098 2006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
3100 * predict.c (estimate_probability): Remove.
3101 * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
3102 * basic-block.h (estimate_probability): Remove prototype.
3103 * passes.c (finish_optimization_passes): Dump branch prediction or
3104 profiling heuristics to the .profile tree dump.
3105 (init_optimization_passes): Unqueue pass_branch_prob.
3107 * doc/invoke.texi (-fdump-rtl-bp): Remove.
3109 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
3111 * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
3112 * rtl.h (LABEL_NEXTREF): Remove field accessor.
3114 2006-03-11 Eric Botcazou <ebotcazou@adacore.com>
3116 * function.h (frame_offset_overflow): Declare.
3117 * function.c (frame_offset_overflow): New function.
3118 (assign_stack_local_1): Call it to detect that the offset overflows.
3119 * cfgexpand.c (alloc_stack_frame_space): Likewise.
3121 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
3123 * config/sh/sh.c: Include alloc-pool.h.
3124 (label_ref_list_pool): New alloc pool.
3125 (label_ref_list_t): New type for lists of labels.
3126 (struct pool_node): Make wend a label_ref_list_t.
3127 (add_constant): Use the new type, eradicate LABEL_NEXTREF
3129 (dump_table): Likewise.
3130 (sh_reorg): Set up the alloc pool before using add_constant and
3131 dump_table, and destroy it when finishing.
3133 2006-03-11 Richard Sandiford <richard@codesourcery.com>
3135 * config/mips/mips.c: Remove redundant comment.
3137 2006-03-10 Jason Merrill <jason@redhat.com>
3140 * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
3141 the target was declared 'register'.
3143 2006-03-10 Adam Nemet <anemet@caviumnetworks.com>
3145 * genpreds.c (write_insn_constraint_len): Change definition of
3146 insn_constraint_len to return size_t to match the declaration.
3148 2006-03-10 DJ Delorie <dj@redhat.com>
3150 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
3152 (m32c_expand_insv): Fix test for an AND mask.
3154 2006-03-10 Richard Guenther <rguenther@suse.de>
3157 * builtins.c (get_pointer_alignment): Handle component
3158 references for field alignment.
3160 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
3162 * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
3163 when building with libgloss.
3164 (sh*elf): Implement --without-fp option.
3165 (sh64-superh-linux*): Don't multilib.
3167 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
3169 * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
3171 2006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
3173 * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
3174 Set it when one of the replacement functions returned true.
3175 Return TODO_cleanup_cfg if cfgchanged is true.
3176 (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
3178 2006-03-09 Adam Nemet <anemet@caviumnetworks.com>
3180 * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
3181 instead of gen_lowpart.
3183 2006-03-09 Richard Sandiford <richard@codesourcery.com>
3185 * config/mips/mips-protos.h (mips_output_conditional_branch): Change
3187 (mips_output_order_conditional_branch): Declare.
3188 * config/mips/mips.h (MIPS_BRANCH): New macro.
3189 * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
3190 for the comparison. Use gen_condjump.
3191 (mips_output_conditional_branch): Rework interface to take the
3192 asm templates for a direct branch and the inverse of a direct branch.
3193 (mips_output_order_conditional_branch): New function.
3194 (mips_builtin_branch_and_move): New function.
3195 (mips_expand_builtin_compare): Use it. Use VOIDmode for the
3196 branch condition. Use gen_single_cc as the condition for
3197 __builtin_mips_upper_* or __builtin_mips_lower_*.
3198 (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
3199 Use VOIDmode for the branch condition.
3200 * config/mips/predicates.md (order_operator): New predicate.
3201 * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
3202 (branch_fp): Rename to...
3203 (*branch_fp): ...this. Remove mode from comparison operator.
3204 Use new mips_output_conditional_branch interface.
3205 (branch_fp_inverted): Rename to...
3206 (*branch_fp_inverted): ...this and update as for *branch_fp.
3207 (*branch_zero<mode>): Rename to...
3208 (*branch_order<mode>): ...this. Remove mode from comparison operator.
3209 Use mips_output_order_conditional_branch. Only accept ordered
3211 (*branch_zero<mode>_inverted): Rename to...
3212 (*branch_order<mode>_inverted): ...this and update as for
3213 *branch_order<mode>.
3214 (*branch_equality<mode>): Accept zero as the second operand to
3215 the equality operator. Use the new mips_output_conditional_branch
3217 (*branch_equality<mode>_inverted): Likewise.
3218 (condjump): New expander.
3219 * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
3221 * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
3222 (bc1any2t, bc1any2f): Likewise.
3223 (single_cc): New expander.
3224 (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
3226 2006-03-09 Richard Sandiford <richard@codesourcery.com>
3228 * doc/md.texi: Update documentation of MIPS constraints.
3229 * config/mips/constraints.md: New file.
3230 * config/mips/mips.md: Include it.
3231 * config/mips/mips.c (mips_char_to_class): Delete.
3232 (override_options): Don't initialize mips_char_to_class.
3233 * config/mips/mips.h (mips_char_to_class): Delete.
3234 (REG_CLASS_FROM_LETTER): Delete.
3235 (CONST_OK_FOR_LETTER_P): Delete.
3236 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
3237 (EXTRA_CONSTRAINT_Y): Delete.
3238 (EXTRA_CONSTRAINT_STR): Delete.
3239 (CONSTRAINT_LEN): Delete.
3240 (EXTRA_MEMORY_CONSTRAINT): Delete.
3242 2006-03-09 Diego Novillo <dnovillo@redhat.com>
3244 * tree-cfg.c (move_block_to_fn): Remove the statements from the
3245 original fn's eh regions.
3247 2006-03-09 Eric Botcazou <ebotcazou@adacore.com>
3249 * fold-const.c (build_range_check): Make sure to use a valid type to
3250 apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
3253 (range_predecessor): New static function.
3254 (range_successor): Likewise.
3255 (merge_ranges): Use them to compute predecessors and successors of
3258 2006-03-09 Roger Sayle <roger@eyesopen.com>
3261 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
3262 X op C3, consider whether C3 overflows towards +Inf or -Inf.
3264 2006-03-08 DJ Delorie <dj@redhat.com>
3266 * config/m32c/addsub.md (addqi3): Disparage a0/a1.
3267 (addpsi3): Expand to include memory operands. Remove
3268 reload-specific splits.
3269 * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
3270 (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
3271 (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
3272 (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
3273 (shift1_qi, shift1_hi, insv): New.
3274 * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
3275 (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
3276 cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
3278 * config/m32c/m32c-protos.h: Update as needed.
3279 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
3280 default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
3281 Fail for unrecognized R* constraints.
3282 (m32c_cannot_change_mode_class): Be more picky about pseudos.
3283 (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
3284 (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
3286 (m32c_init_libfuncs): New.
3287 (m32c_legitimate_address_p): Add debug wrapper.
3288 (m32c_rtx_costs): New.
3289 (m32c_address_cost): New.
3290 (conversions): Add 'B' prefix.
3291 (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
3292 operands, or word regnames for QI operands. 'B' prints bit
3294 (m32c_expand_setmemhi): New.
3295 (m32c_expand_movmemhi): New.
3296 (m32c_expand_movstr): New.
3297 (m32c_expand_cmpstr): New.
3298 (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
3299 (m32c_expand_neg_mulpsi3): Handle non-ints.
3300 (m32c_cmp_flg_0): New.
3301 (m32c_expand_movcc): New.
3302 (m32c_expand_insv): New.
3303 (m32c_scc_pattern): New.
3304 * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
3305 a0/a1 out of SIregs.
3306 (STORE_FLAG_VALUE): New.
3307 * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
3310 * config/m32c/mov.md: Make constraints more liberal.
3311 (zero_extendqihi2): Optimize r0/r1 case.
3312 * config/m32c/muldiv.md (mulpsi3): Check for intvals.
3313 * config/m32c/predicates.md (m32c_any_operand): New.
3314 (m32c_nonimmediate_operand): New.
3315 (m32c_hl_operand): New.
3316 (m32c_r3_operand): New.
3319 (memsym_operand): New.
3320 (memimmed_operand): New.
3321 (a_qi_operand): New.
3322 (m32c_eqne_operator): New.
3323 (m32c_1bit8_operand): New.
3324 (m32c_1bit16_operand): New.
3325 (m32c_1mask8_operand): New.
3326 (m32c_1mask16_operand): New.
3327 * config/m32c/blkmov.md: New file.
3328 * config/m32c/t-m32c (MD_FILES): Add blkmov.
3330 2006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
3332 * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
3333 unsigned to fix signed/unsigned comparison issue in
3334 DWARF2_FRAME_REG_OUT.
3335 (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
3336 unsigned comparison issue in DWARF2_FRAME_REG_OUT.
3338 * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
3339 of ptr into the ENABLE_CHECKING section.
3341 2006-03-08 Jeff Law <law@redhat.com>
3343 * tree-vrp.c (infer_value_range): Only count pointer uses
3344 and dereferences if -fdelete-null-pointer-checks is enabled.
3346 * tree-vrp.c (find_assert_locations): Infer value ranges for
3347 single use pointers, but do not create ASSERT_EXPRs for them.
3348 When a non-null range is inferred for a pointer, backwards
3349 propagate that range to other equivalent pointers through the
3352 2006-03-08 Paolo Bonzini <bonzini@gnu.org>
3355 * Makefile.in (dvi, html, install-info): Invoke the corresponding
3356 language hook targets.
3357 * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
3358 objcp/Make-lang.in: Create stub rules for dvi, html, install-info
3359 if language hook targets were missing.
3361 2006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
3363 * tree-ssa-opfinalize.h: Removed.
3364 * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
3366 * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
3367 (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
3368 INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
3369 add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
3370 finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
3371 finalize_ssa_v_must_def_ops): New.
3373 2006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com>
3375 * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
3378 2006-03-07 Geoffrey Keating <geoffk@apple.com>
3380 * varasm.c (assemble_end_function): Say that 'fnname' is unused.
3382 * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
3383 addresses with offsets; reorganize.
3385 * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
3386 (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
3387 (expand_builtin_init_dwarf_reg_sizes): Likewise.
3389 2006-03-08 David Billinghurst <David.Billinghurst@riotinto.com>
3392 * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
3394 2006-03-08 Ben Elliston <bje@au.ibm.com>
3396 * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
3398 2006-03-07 Aldy Hernandez <aldyh@redhat.com>
3401 * doc/passes.texi (Tree-SSA passes): Document omp lowering and
3404 2006-03-07 Richard Guenther <rguenther@suse.de>
3406 PR tree-optimization/26587
3407 * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
3409 2006-03-07 Richard Sandiford <richard@codesourcery.com>
3411 * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
3413 2006-03-07 Richard Sandiford <richard@codesourcery.com>
3415 * hooks.c (hook_bool_mode_rtx_true): New function.
3416 * hooks.h (hook_bool_mode_rtx_true): Declare.
3417 * toplev.c (compile_file): Call output_shared_constant_pool.
3418 * varasm.c (shared_constant_pool): New variable.
3419 (assemble_start_function, assemble_end_function): Remove arguments
3420 from call to output_constant_pool.
3421 (create_constant_pool): New function, split out from...
3422 (init_varasm_status): ...here.
3423 (force_const_mem): Choose between the shared and per-function constant
3424 pools. Set current_function_uses_const_pool when reusing old entries
3425 as well as when creating new ones.
3426 (mark_constant): Ignore data argument.
3427 (mark_constants): Remove pool argument.
3428 (mark_constant_pool): Likewise. Use current_function_uses_const_pool