OSDN Git Service

* varasm.c (align_variable): New function.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
2
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.
7
8 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
9
10         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
11         machines.
12
13 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
14
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
19         for CONST_INTs.
20         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
21         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
22         V2PDImode.
23         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
24         New predicates.
25         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
26         New constants.
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.
46
47         * doc/rtl.texi (ss_ashift): Improve wording.
48
49 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
50
51         * dwarf2out.c (verify_marks_clear): New.
52         (prune_unused_types): Call verify_marks_clear initially, not
53         prune_unmark_dies.
54
55 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
56
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.
61
62 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
63
64         Revert:
65         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
66         * configure.ac: Completely disregard languages that are not
67         enabled.
68         * configure: Regenerated.
69
70 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
71         Richard Guenther  <rguenther@suse.de>
72
73         PR tree-optimization/27236
74         * tree-inline.c (copy_body_r): Make sure to copy
75         TREE_THIS_VOLATILE flag.
76
77 2006-04-24  Richard Guenther  <rguenther@suse.de>
78
79         PR middle-end/26869
80         * tree-complex.c (update_parameter_components): Don't handle
81         unused parameters which have no default def.
82
83 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
84         Richard Guenther  <rguenther@suse.de>
85
86         PR tree-optimization/27218
87         * tree-inline.c (expand_call_inline): Strip useless type
88         conversions for the return slot address.
89
90 2006-04-24  Richard Guenther  <rguenther@suse.de>
91
92         * cfgloop.h (struct loops): Remove unused field array.  Reorder
93         state after num.
94         (LOOP_PREFETCH): Remove.
95
96 2006-04-24  Richard Guenther  <rguenther@suse.de>
97
98         PR tree-optimization/22525
99         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
100         variable, adjust types of generated expressions.
101
102 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
103
104         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
105         (tree-vect-patterns.o): Likewise.
106         (jump.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.
115         (reorg.o): Likewise.
116         (reg-stack.o): Likewise.
117
118 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
119
120         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
121
122 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
123
124         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
125
126         * configure.ac: Completely disregard languages that are not
127         enabled.
128         * configure: Regenerated.
129
130         PR c++/26534
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.
134
135 2006-04-23  Roger Sayle  <roger@eyesopen.com>
136
137         PR target/21283
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.
140
141 2006-04-23  Roger Sayle  <roger@eyesopen.com>
142
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.
147
148 2006-04-23  Roger Sayle  <roger@eyesopen.com>
149
150         PR target/16641
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.
154
155 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
156
157         * fold-const.c (range_predecessor): Use operand_equal_p
158         as the predicate for equality.
159         (range_successor): Likewise.
160
161 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
162
163         Revert:
164         * config/soft-fp/op-common.h: Fix a typo.
165
166 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
167
168         PR libmudflap/26864
169         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
170         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
171
172 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
173
174         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
175         Fix comment typos.
176         * doc/tm.texi: Fix a typo.
177
178 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
179
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
208         it's already clear.
209         (dwarf2out_finish): Don't call reverse_all_dies.
210
211 2006-04-21  Eric Christopher  <echristo@apple.com>
212
213         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
214         in comments and function names.
215
216 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
217
218         PR c/25875
219         * c-typeck.c (digest_init): Robustify.
220
221         * c-typeck.c (pop_init_level): Simplify.
222
223 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
224
225         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
226
227 2006-04-21  Paul Brook  <paul@codesourcery.com>
228
229         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
230         hardware floating point.
231
232 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
233
234         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
235         NON_FLOAT_REGS.
236
237 2006-04-21  Nick Clifton  <nickc@redhat.com>
238
239         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
240         OPT_EXTRA_PARTS.
241
242 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
243
244         PR target/27230
245         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
246         C++ lang type in traceback table for Objective-C++.
247
248         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
249
250 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
251
252         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
253
254 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
255
256         PR mudflap/26789
257         * tree-mudflap.c (mudflap_finish_file): Skip function when there
258         were errors.  Remove check for erroneous objects.
259
260 2006-04-20  Jeff Law  <law@redhat.com>
261
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.
269
270 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
271
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)).
275
276 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
277
278         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
279         fp regs if the last fp arg doesn't fit in regs.
280
281 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
282
283         PR target/27182
284         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
285         that the last insn has the REG_INC note.
286
287 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
288             Nathan Sidwell  <nathan@codesourcery.com>
289
290         PR c/26774
291         * stor-layout.c (update_alignment_for_field): Do not align
292         ERROR_MARK nodes.
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.
296
297 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
298
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.
303
304 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
305
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.
311
312 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
313
314         * config/s390/s390.md: Add comments with the instructions emitted
315         by an insn pattern if macros are used.
316
317 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
318
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.
322
323 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
324
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.
327
328 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
329
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
339         rs6000/t-fprules.
340         * config/rs6000/sfp-machine.h: New.  Based on glibc.
341         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
342         New.
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.
348
349 2006-04-18  DJ Delorie  <dj@redhat.com>
350
351         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
352
353 2006-04-18  Devang Patel  <dpatel@apple.com>
354
355         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
356
357 2006-04-18  Nick Clifton  <nickc@redhat.com>
358
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.
363
364 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
365
366         * builtins.c (expand_builtin_strcmp): Cover label definition of
367         do_libcall with HAVE_cmpstrnsi.
368
369 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
370
371         * function.c (temp_slots_at_level, max_slot_level): Use VEC
372         instead of VARRAY.
373         * function.h (temp_slot_p): New.
374         (function): Change the type of x_used_temp_slots to
375         VEC(temp_slot_p,gc) *.
376
377 2006-04-18  Nick Clifton  <nickc@redhat.com>
378
379         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
380         flag_strength_reduce.
381
382         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
383
384 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
385
386         PR target/27117
387
388         Partial revert of revision 112637
389         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
390                     Dale Johannesen  <dalej@apple.com>
391
392         PR target/19653
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.
396
397 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
398
399         PR tree-optimization/26821
400         * tree-ssa-math-opts.c (get_constant_one): New.
401         (insert_reciprocals): Use it.
402
403 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
404
405         * dwarf2out.c (free_AT): Delete.
406         (remove_AT): Update string ref counts.
407         (remove_child_TAG): Don't call free_die.
408         (free_die): Delete.
409         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
410         or DW_TAG_GNU_EINCL.
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.
416
417 2006-04-17  Roger Sayle  <roger@eyesopen.com>
418
419         * expr.c (expand_assignment): Optimize away no-op moves where the
420         source and destination are equal and have no side-effects.
421
422 2006-04-17  Richard Guenther  <rguenther@suse.de>
423
424         PR target/26826
425         * reload.c (push_reload): Guard calls to get_secondary_mem
426         for memory subregs.
427
428 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
429
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.
434
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.
440
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.
446
447 2006-04-16  Roger Sayle  <roger@eyesopen.com>
448
449         PR target/26961
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.
452
453 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
454
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
458         mode_rep_extended.
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.
469
470 2006-04-16  Roger Sayle  <roger@eyesopen.com>
471
472         PR middle-end/25474
473         * expr.c (compress_float_constant): Copy the narrow constant into
474         a new pseudo before extending it to its final width.
475
476 2006-04-16  Roger Sayle  <roger@eyesopen.com>
477             Andrew Pinski  <pinskia@gcc.gnu.org>
478             Dale Johannesen  <dalej@apple.com>
479
480         PR target/24076
481         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
482         special case code to implement V8HImode and V16QImode with SSE2.
483
484 2006-04-15  Roger Sayle  <roger@eyesopen.com>
485
486         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
487         trees are constructed with a suitable tree type.
488
489 2006-04-15  Roger Sayle  <roger@eyesopen.com>
490
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.
502
503 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
504
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.
508
509         * tree-ssa-structalias.h (alias_info): Remove num_references.
510
511 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
512
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.
521
522 2006-04-14  Roger Sayle  <roger@eyesopen.com>
523
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.
527
528 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
529
530         PR middle-end/26823
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.
534
535 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
536
537         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
538         of VARRAY.
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.
544
545 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
546             Eric Botcazou  <ebotcazou@libertysurf.fr>
547
548         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
549         register save area.
550
551 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
552
553         PR middle-end/27134
554         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
555         to expand fallback builtin function call.
556
557 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
558
559         PR middle-end/27095
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.
563
564 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
565
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
570         instead of VARRAY.
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
575         instead of VARRAY.
576
577 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
578
579         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
580         defaulting to 100.
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.
587
588 2006-04-13  Richard Henderson  <rth@redhat.com>
589
590         PR libgomp/26651
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
600         instead of ggc.
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.
639         (OMP_CONTINUE): New.
640         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
641         (OMP_SECTIONS_SECTIONS): Remove.
642         (OMP_SECTION_LAST): New.
643         (OMP_RETURN_NOWAIT): New.
644
645 2006-04-13  Roger Sayle  <roger@eyesopen.com>
646
647         * fold-const.c (native_encode_vector, native_interpret_real):
648         Correct obvious mistakes in the previous check-in.
649
650 2006-04-13  Roger Sayle  <roger@eyesopen.com>
651
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
669         VIEW_CONVERT_EXPR.
670
671 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
672             Ulrich Weigand  <uweigand@de.ibm.com>
673
674         PR target/27006
675         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
676         to be even.
677
678 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
679
680         PR target/26459
681         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
682         optimize to lo_sum for DFmode if !TARGET_FPRS.
683
684 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
685
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) *.
692
693 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
694
695         PR target/27060
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):
699         New macros.
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
709         TARGET_SH2.
710
711 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
712
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
716         VARRAY.
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.
721
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
725         VARRAY.
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.
730
731 2006-04-12  Roger Sayle  <roger@eyesopen.com>
732
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.
736
737 2006-04-12  Richard Guenther  <rguenther@suse.de>
738
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.
743
744 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
745
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
749         on stack.
750         (rs6000_arg_partial_bytes): Adjust for above change.
751
752 2006-04-11  Roger Sayle  <roger@eyesopen.com>
753
754         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
755         if it hasn't been initialized by dwarf2out_init.
756
757 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
758
759         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
760         symbolic constants in branch patterns.
761
762 2006-04-11  Roger Sayle  <roger@eyesopen.com>
763
764         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
765
766 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
767
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
771         on the former.
772
773 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
774
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
779         small arrays.
780         (function_value): In 64-bit mode, return objects that require it
781         in FP registers.
782
783 2006-04-11  Roger Sayle  <roger@eyesopen.com>
784
785         * dwarf2out.c (premark_used_types): Remove problematic prototype.
786
787 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
788
789         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
790
791 2006-04-03  Jeff Law  <law@redhat.com>
792
793         PR/27087
794         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
795         alias information too.
796
797 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
798
799         * gcc/Makefile.in (gcc-cross): Add $(exeext) to target name.
800
801 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
802
803         PR/21391
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
814         types hash table.
815
816 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
817
818         PR target/26459
819         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
820         rs6000_explicit_options.float_gprs.
821
822 2006-04-10  Roger Sayle  <roger@eyesopen.com>
823
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.
830
831 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
832
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
840         vecprim.h.
841         * vecprim.h: New.
842
843 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
844
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.
880
881 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
882
883         * doc/install.texi (*-*-solaris2*): Point to the configure page.
884
885 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
886
887         PR debug/27057
888         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
889
890 2006-04-09  Roger Sayle  <roger@eyesopen.com>
891
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.
894
895 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
896
897         * tree-ssa-alias.c (lhs_may_store_to): New function.
898         (recalculate_used_alone): Handle LHS of calls.
899
900 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
901
902         PR target/27034
903         PR target/26508
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.
917
918         PR target/26743
919         PR target/11254
920         PR target/10274
921         * pa.md (cbranch patterns): Revise arguments used in calls to
922         output_cbranch, output_bb and output_bvd.  Add long branch length
923         attributes.
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
936         instruction.
937         (output_bb): Handle long branches.
938         (output_bvb, output_dbra, output_movb, output_parallel_movb,
939         output_parallel_addb): Likewise.
940
941 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
942
943         PR rtl-optimization/27073
944         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
945         not REG_EQUIVs.
946
947 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
948
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.
953
954 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
955
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.
967
968 2006-04-07  DJ Delorie  <dj@redhat.com>
969
970         * config/m32c/m32c.c (m32c_function_arg): Structures are always
971         passed on the stack.
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.
977
978 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
979
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
984         build_int_cst_type.
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.
991
992 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
993
994         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
995         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
996         insn.
997
998 2006-04-07  Jan Hubicka  <jh@suse.cz>
999
1000         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
1001
1002 2006-04-07  Richard Guenther  <rguenther@suse.de>
1003
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.
1008
1009 2006-04-05  Robert Millan  <robertmh@gnu.org>
1010
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
1014         DYNAMIC_LINKER.
1015         * gcc/config/knetbsd-gnu.h:  Ditto.
1016
1017 2006-04-06  Jan Hubicka  <jh@suse.cz>
1018
1019         PR profile/20815
1020         PR profile/26399
1021         * coverage.c (coverage_checksum_string): Reorganize loop to not read
1022         after buffer.
1023
1024 2006-04-06  Mike Stump  <mrs@apple.com>
1025
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.
1031
1032 2006-04-05  DJ Delorie  <dj@redhat.com>
1033
1034         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
1035         vs m32c.
1036
1037 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1038
1039         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
1040         got-relative addressing for anything but SImode.
1041
1042         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
1043         even if the calling function doesn't modify them.
1044
1045 2006-04-05  Richard Guenther  <rguenther@suse.de>
1046
1047         PR tree-optimization/26919
1048         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
1049         to cgraph_estimate_size_after_inlining.
1050
1051 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
1052
1053         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
1054
1055 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
1056
1057         PR tree-optimization/26996
1058         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
1059         VECTOR_TYPE variables.
1060
1061 2006-04-05  Richard Guenther  <rguenther@suse.de>
1062
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.
1067
1068 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
1069
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.
1086
1087 2006-04-04  Eric Christopher  <echristo@apple.com>
1088
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.
1093
1094 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
1095
1096         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
1097         NULL for dso parameter to atexit_common.
1098
1099 2006-04-04  Eric Christopher  <echristo@apple.com>
1100
1101         * config/i386/i386.c (machopic_output_stub): Output \t
1102         between instructions and operands.
1103
1104 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
1105
1106         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
1107         satisfies_constraint_[IL] to explicit tests on value.
1108
1109 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
1110
1111         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1112         set_nb_iterations_in_loop): Use build_int_cst instead of
1113         build_int_cst_type.
1114         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
1115         build_int_cst instead of convert.
1116
1117 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
1118
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
1122         with incoming as 2.
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.
1129
1130 2006-04-04  Roger Sayle  <roger@eyesopen.com>
1131
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):
1136         Likewise.
1137         * tree.c (build_range_type): Likewise.
1138
1139 2006-04-04  Tom Tromey  <tromey@redhat.com>
1140
1141         * doc/install.texi (Prerequisites): Mention jar.
1142
1143 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
1144
1145         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
1146         subsection.
1147
1148 2006-04-04  Matthias Klose  <doko@debian.org>
1149
1150         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
1151
1152 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
1153
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=
1160         documentation.
1161
1162         * doc/extend.texi (Other Builtins): Document that
1163         __builtin_nan is a compile-time constant only when its argument
1164         is valid.
1165
1166 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
1167
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.
1171
1172 2006-04-03  Jeff Law  <law@redhat.com>
1173
1174         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
1175         and operand scanning in some common cases.
1176
1177 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
1178             Dale Johannesen  <dalej@apple.com>
1179
1180         PR target/19653
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
1189         return NO_REGS.
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.
1200
1201 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1202
1203         PR bootstrap/26992
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.
1210
1211 2006-04-02  Roger Sayle  <roger@eyesopen.com>
1212
1213         * builtins.c (dummy_object): Use build_int_cst instead of convert.
1214         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
1215         instead of 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.
1223
1224 2006-04-02  Roger Sayle  <roger@eyesopen.com>
1225
1226         PR middle-end/26977
1227         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
1228         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
1229
1230 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1231
1232         PR tree-optimization/26939
1233         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
1234
1235 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1236
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
1241         add_to_evolution_1.
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
1248         operands.
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.
1262
1263 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1264
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.
1269
1270 2006-04-01  Roger Sayle  <roger@eyesopen.com>
1271             Richard Henderson  <rth@redhat.com>
1272
1273         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
1274         gimple_boolify on the condition before calling gimplify_expr.
1275
1276 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
1277
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.
1283
1284 2006-03-31  Richard Henderson  <rth@redhat.com>
1285
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
1291         a boolean.
1292
1293 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
1294
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.
1301
1302 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1303
1304         * config/sh/linux-atomic.asm: New file.
1305         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
1306
1307 2006-03-31  DJ Delorie  <dj@redhat.com>
1308
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.
1319
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.
1326
1327         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
1328         dest, not src.  Allow other 4-byte modes.
1329
1330 2006-03-30  Denis Chertykov  <denisc@overta.ru>
1331
1332         * doc/md.texi: Refer to avr/constraints.md instead of
1333         avr/avr.h.
1334
1335 2006-03-30  Roger Sayle  <roger@eyesopen.com>
1336
1337         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
1338         signed vs. unsigned comparison failures on some hosts.
1339
1340 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
1341
1342         PR target/26459
1343         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
1344         change to FLOAT_REGS.
1345
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.
1350
1351 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
1352
1353         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
1354         !Zdynamiclib.
1355
1356 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
1357
1358         * Makefile.in: Rename docdir to gcc_docdir.
1359
1360 2006-03-30  Roger Sayle  <roger@eyesopen.com>
1361
1362         PR target/17959
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".
1366
1367 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1368
1369         PR target/26734
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
1376         DEPS_LIST.
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.
1380
1381 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1382
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.
1387
1388 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
1389
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.
1396
1397 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
1398
1399         PR tree-optimization/26830
1400
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.
1405
1406 2006-03-30  Richard Guenther  <rguenther@suse.de>
1407
1408         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
1409         variants with double arguments.
1410
1411 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
1412
1413         * genpreds.c (write_tm_constrs_h): Delete variable p.
1414         * genconditions.c (write_header): Add tm-constrs.h to included
1415         headers.
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.
1420
1421 2006-03-29  Roger Sayle  <roger@eyesopen.com>
1422
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.
1428
1429 2006-03-29  Roger Sayle  <roger@eyesopen.com>
1430
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.
1435
1436 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
1437
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.
1458
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.
1472
1473         * config/i386/i386.c: Include tm-constrs.h.
1474
1475 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
1476
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.
1485
1486 2006-03-29  Paul Brook  <paul@codesourcery.com>
1487
1488         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
1489         (movdf_vfp): Ditto.
1490
1491 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
1492
1493         PR tree-optimization/26859
1494         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
1495         division by zero.
1496         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
1497         for the step after fold_convert.
1498
1499 2006-03-29  Paul Brook  <paul@codesourcery.com>
1500
1501         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
1502         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
1503
1504 2006-03-29  Paul Brook  <paul@codesourcery.com>
1505
1506         PR middle-end/23623
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.
1514
1515 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
1516
1517         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
1518         tmake_file.
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.
1528
1529 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
1530
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
1536         is true.
1537         (loop_only_exit_p): New.
1538         (number_of_iterations_exit): Pass result of loop_only_exit_p to
1539         number_of_iterations_cond.
1540
1541 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
1542
1543         PR tree-optimization/26643
1544         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
1545         bit_field_refs.
1546
1547 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1548
1549         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
1550         (divsi3_i4_int): Likewise.
1551
1552 2006-03-28  Roger Sayle   <roger@eyesopen.com>
1553
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.
1556
1557 2006-03-28  Jeff Law  <law@redhat.com>
1558
1559         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
1560         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
1561
1562 2006-03-28  Roger Sayle  <roger@eyesopen.com>
1563
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.
1568
1569 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1570
1571         Revert my 2006-03-27 patches.
1572
1573 2006-03-28  Roger Sayle  <roger@eyesopen.com>
1574
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.
1578
1579 2006-03-28  Jeff Law  <law@redhat.com>
1580
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.
1585
1586 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
1587
1588         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
1589         from parent_var.
1590
1591 2006-03-27  Roger Sayle  <roger@eyesopen.com>
1592
1593         PR middle-end/22524
1594         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
1595         cast BIT_NOT_EXPR operand to the correct type.
1596
1597 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
1598
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.
1633
1634 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1635
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
1640         to 'int'.
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
1645         DEPS_LIST.
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.
1651
1652 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1653
1654         * haifa-sched.c (Copyright): Update date.
1655         (try_ready): Change condition to restore non-speculative pattern
1656         of the instruction.
1657         (process_insn_depend_be_in_spec): Code to keep probability of the
1658         speculative dependence non-decreasing.
1659
1660 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1661
1662         * regrename.c (replace_oldest_value_addr): Initialize a variable to
1663         shut up the compiler.
1664
1665 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
1666
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.
1671
1672 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
1673             J"orn Rennecke <joern.rennecke@st.com>
1674
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.
1679
1680         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
1681         arguments with ^ and/or [].
1682
1683         * config.gcc (sh-*-*): Add quoting to account for quirk of
1684         Solaris /bin/sh.
1685         Replace == with = in enable_incomplete_targets test.
1686
1687         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
1688         with MASK_LITTLE_ENDIAN.
1689
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.
1693
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*,
1705         m4-200*, and m4a*.
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.
1711
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.
1715
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.
1720
1721 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1722
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.
1729
1730 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
1731
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.
1737
1738 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
1739
1740         PR target/26459
1741         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
1742         peephole removing spe frob_di_df_2.
1743
1744 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
1745
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
1761         dir_from_dist.
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
1782         distance.
1783
1784 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
1785
1786         * simplify-rtx.c (simplify_relational_operation): Call
1787         simplify_relational_operation_1 even if mode is VOIDmode.
1788
1789 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
1790
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.
1805
1806 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
1807             Roger Sayle  <roger@eyesopen.com>
1808
1809         PR middle-end/26717
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
1812         complex operands.
1813
1814 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
1815
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.
1829
1830 2006-03-24  Denis Chertykov  <denisc@overta.ru>
1831
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.
1849
1850 2006-03-24  Jeff Law  <law@redhat.com>
1851
1852         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
1853         directly.  Call mark_new_vars_to_rename slightly earlier.
1854
1855 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
1856
1857         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
1858         (is_cxx): Likewise.
1859         (gen_compile_unit_die): Use new language types for Objective-C and
1860         Objective-C++.
1861         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
1862         DW_LANG_C_plus_plus.
1863
1864         PR 26793
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.
1868
1869 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
1870
1871         * doc/invoke.texi: Document -femit-class-debug-always
1872         * common.opt: Add -femit-class-debug-always.
1873
1874 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1875
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
1883         ADDR_REGNO_P.
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.
1887
1888 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
1889
1890         PR middle-end/26611
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.
1894
1895 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1896
1897         * regrename.c (scan_rtx_address): Initialize a variable to shut up
1898         the compiler.
1899
1900 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
1901
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.
1911
1912 2006-03-24  Jeff Law  <law@redhat.com>
1913
1914         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
1915         around bug in immediate-use iterator.
1916
1917 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
1918
1919         PR target/26607
1920         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
1921         or __LITTLE_ENDIAN__.
1922
1923 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
1924
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.
1938
1939 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1940
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.
1950
1951 2006-03-23  Richard Henderson  <rth@redhat.com>
1952
1953         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
1954         tls symbols.
1955
1956         PR target/26347
1957         * config/alpha/predicates.md (local_symbolic_operand): Reject
1958         weak symbols.
1959
1960 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
1961
1962         PR tree-opt/26795
1963         * tree-ssa-pre.c (create_value_expr_from): Don't reject
1964         expressions which have overflowed constants.
1965
1966 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
1967
1968         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
1969
1970 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
1971
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
1978         create_loop_notes.
1979         * cfgloop.h (create_loop_notes): Declaration removed.
1980
1981 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
1982
1983         * varasm.c (output_constant_pool): Restore fnname and fndecl
1984         arguments.
1985         (assemble_start_function): Adjust call accordingly.
1986         (assemble_end_function): Likewise.
1987
1988 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1989
1990         PR mudflap/26789
1991         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
1992
1993         PR mudflap/26790
1994         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
1995
1996 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1997
1998         PR driver/22600
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.
2006
2007 2006-03-22  Jeff Law  <law@redhat.com>
2008
2009         * loop-unroll.c (analyze_iv_to_split_insn): Handle
2010         iv_analyze_result returning false.
2011
2012 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
2013
2014         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
2015
2016 2006-03-22  Richard Henderson  <rth@redhat.com>
2017
2018         PR middle-end/26084
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
2038         properly.
2039         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
2040         argument.
2041         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
2042         number.
2043
2044 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
2045
2046         * doc/md.texi (-mshared): Mention that -mshared code can be linked
2047         into shared libraries.
2048
2049 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
2050
2051         * doc/md.texi: Refer to i386/constraints.md instead of
2052         i386/predicates.md.
2053         * config/i386/constraints.md: New file, extracted from...
2054         * config/i386/predicates.md: ...here.
2055         * config/i386/i386.md: Include constraints.md.
2056
2057 2006-03-21  Jason Merrill  <jason@redhat.com>
2058
2059         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
2060
2061         PR middle-end/20297
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.
2066
2067 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
2068
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
2098         LOADGP_ABSOLUTE.
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__
2108         definition.
2109         * doc/invoke.texi (-mabicalls): Update documentation.
2110         (-mshared): Document.
2111
2112 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
2113
2114         * config/ia64/unwind-hpux.c: New file.
2115         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
2116
2117 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
2118
2119         PR libgomp/26384
2120         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
2121
2122 2006-03-21  Jeff Law  <law@redhat.com>
2123
2124         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
2125         type conversions of a VR_VARYING source to a wider type.
2126
2127 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2128
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.
2135
2136 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
2137
2138         PR tree-opt/26781
2139         * tree-ssa-pre.c (create_component_ref_by_pieces):
2140         Handle STRING_CST.
2141
2142 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
2143
2144         PR c++/26690
2145         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
2146         return it immediately.
2147
2148 2006-03-21  Michael Matz  <matz@suse.de>
2149
2150         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
2151         New members.
2152         (remove_arc, add_arc): Update num_out_arcs member.
2153         (set_out_arc_insns_equiv_num): Returns nothing instead of number
2154         of out arcs.
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
2160         input.
2161         (partition_equiv_class): Don't track out_arcs_num.
2162         (evaluate_equiv_classes): Call cache_presence on all states and
2163         sort them.
2164
2165 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
2166
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
2171         callers changed.
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
2177         macros.
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
2182         IREGS.
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
2195         classes.
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.
2213
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.
2220
2221 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
2222
2223         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
2224         from V7 to V9 for Solaris 7 and above.
2225
2226 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
2227
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.
2234
2235 2006-03-20  Jeff Law  <law@redhat.com>
2236
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
2240         with phi_only_cprop
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.
2252
2253 2006-03-20  Jason Merrill  <jason@redhat.com>
2254
2255         PR c++/21764
2256         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
2257         (push_visibility, pop_visibility): Likewise.
2258         * c-pragma.h: Declare them.
2259
2260 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2261
2262         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
2263
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.
2267
2268 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
2269
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.
2278
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.
2285
2286 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
2287
2288         PR tree-opt/26629
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.
2295
2296 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
2297
2298         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
2299         is operand of switch, not str[0].
2300
2301 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
2302
2303         * config/rs6000/rs6000.c (rs6000_handle_option): Use
2304         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
2305
2306 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
2307
2308         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
2309         end of insn_extra_address_constraint declaration.
2310
2311 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
2312
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
2316         variables.
2317         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
2318         NO_FP_IN_TOC for -fPIC instead of mask.
2319
2320         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
2321         (BOOT_LDFLAGS): Delete.
2322         (LDFLAGS): Delete.
2323         * config/rs6000/t-aix52: Same.
2324
2325         * config/rs6000/rs6000.md (store_multiple_power): Delete.
2326         (stmsi[345678]_power): New.
2327
2328 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
2329
2330         * config/ia64/ia64.opt: Add empty line to end of file.
2331
2332 2006-03-17  Richard Guenther  <rguenther@suse.de>
2333
2334         PR middle-end/26721
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.
2338
2339 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
2340
2341         * config/rs6000/rs6000.md (strlensi): Emit barrier after
2342         unconditional jump.
2343
2344 2006-03-17  Paul Brook  <paul@codesourcery.com>
2345
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".
2349
2350 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
2351
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.
2357
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
2361         num_mova.
2362         (sh_reorg): Likewise.
2363         Set mode of all insns back to VOIDmode.
2364
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.
2369
2370 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
2371
2372         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
2373         with ATTRIBUTE_UNUSED.
2374
2375 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
2376
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.
2380
2381 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2382
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.
2394         (extv): Likewise.
2395         (movstricthi): Likewise.
2396         (movstrictqi): Likewise.
2397         (rotrsi3): Likewise.
2398         (five unnamed insns): Likewise.
2399
2400 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
2401
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
2427         add_AT_lbl_offset.
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
2434         darwin_file_start.
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,
2440         mark as 'debug'.
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.
2452
2453 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
2454
2455         * config.gcc (tm_defines): Always add to previous value rather
2456         than replacing it.
2457
2458 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
2459
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.
2487
2488 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
2489
2490         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
2491         (mips*-*-linux*): Likewise.
2492
2493 2006-03-16  Roger Sayle  <roger@eyesopen.com>
2494             Daniel Speyer  <dspeyer@wam.umd.edu>
2495
2496         PR middle-end/18259
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.
2501
2502 2006-03-16  Roger Sayle  <roger@eyesopen.com>
2503
2504         PR middle-end/21781
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.
2507
2508 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
2509
2510         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
2511
2512 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2513
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
2534         their checks.
2535         (ia64_variable_issue): Added code to count speculative loads and their
2536         checks.
2537         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
2538         speculative loads.
2539         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
2540         New enumerations.
2541         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
2542         New constants.
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,
2548         chk_a.
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
2556         check loads.
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
2565         constraints.
2566         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
2567         for speculation.
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
2573         for speculation.
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
2581         scheduling.
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.
2588
2589 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2590
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
2600         gcc_target.sched.
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):
2613         New access macros.
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,
2622         sched-ebb.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
2643         data structures.
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
2684         n_insns.
2685         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
2686         Removed.
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
2691         struct sched_info.
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
2711         new fields.
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
2719         to handle EBBs.
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.
2731
2732 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2733
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):
2752         New constants.
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,
2763         update all callers.
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
2772         QUEUE_INDEX.
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
2776         non-null.
2777
2778 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2779
2780         * sched-rgn.c (extend_rgns): New static function.
2781         (find_rgns): Use it.
2782         (gather_region_statistics, print_region_statistics): New static
2783         functions.
2784         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
2785         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
2786
2787 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2788             Andrey Belevantsev <abel@ispras.ru>
2789
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
2795         functions.
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
2800         an INSN_LIST.
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):
2837         New constants.
2838         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
2839         New enums.
2840         * sched-rgn.c (current_sched_info): Initialize flags field.
2841         (schedule_insns): Initialize current_sched_info before the sched_init
2842         call.
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
2848         call.
2849
2850 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2851
2852         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
2853         fs->signal_frame.
2854         (sh_fallback_frame_state): Likewise.
2855
2856 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
2857
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
2865         OS version.
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
2869         of __cxa_atexit.
2870
2871 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2872
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.
2878
2879 2006-03-15  Paul Brook  <paul@codesourcery.com>
2880
2881         * config/arm/arm.c (minipool_pad): New.
2882         (add_minipool_forward_ref): Include pool alignment padding in address
2883         calculation.
2884         (push_minipool_fix): Set minipool_pad.
2885         (minipool_pad): Ditto.
2886
2887 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2888
2889         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
2890         instead of GET_CODE() == MEM and REG_P() instead of
2891         GET_CODE() == REG.
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.
2906
2907 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
2908
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.
2913
2914 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
2915
2916         * config/sh/predicates.md (cache_address_operand): Special.
2917         (ua_address_operand): Likewise.
2918
2919 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
2920
2921         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
2922         loop notes.
2923         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
2924
2925 2006-03-15  Andreas Schwab  <schwab@suse.de>
2926
2927         * gensupport.c (identify_predicable_attribute): Don't free p_false
2928         when it is still in use.
2929
2930 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
2931
2932         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
2933         the default setting here.
2934
2935 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
2936
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.
2940
2941 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
2942
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
2945         VEC(char,heap) *.
2946         (stack_regs_mentioned): Update the uses of
2947         stack_regs_mentioned_data.  Don't access the array beyond its
2948         end.
2949         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
2950         Don't include gt-reg-stack.h.
2951
2952         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
2953         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
2954
2955         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
2956
2957         PR middle-end/26684
2958         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
2959         STACK_REGS.
2960
2961 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2962
2963         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
2964
2965 2006-03-14  Richard Guenther  <rguenther@suse.de>
2966
2967         PR tree-optimization/26672
2968         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
2969         SSA form.
2970
2971 2006-03-14  Richard Guenther  <rguenther@suse.de>
2972
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
2976         the function size.
2977
2978 2006-03-14  Richard Guenther  <rguenther@suse.de>
2979
2980         PR middle-end/26659
2981         * builtins.c (get_pointer_alignment): Prefer alignment
2982         information from decls over that from types.
2983
2984 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
2985
2986         PR target/26657
2987         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
2988
2989 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
2990
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
2995         MASK_SCHED_PROLOG.
2996         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
2997         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
2998
2999 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
3000
3001         PR rtl-optimization/25739
3002         * bt-load.c (augment_live_range): Free tos pointer.
3003
3004         * gensupport.c (identify_predicable_attribute): Free
3005         p_false pointer.
3006         * gcov.c (create_file_names): Free name pointer.
3007
3008 2006-03-13  Roger Sayle  <roger@eyesopen.com>
3009
3010         PR middle-end/26557
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.
3013
3014 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3015
3016         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
3017         is defined.
3018
3019 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
3020
3021         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
3022         (*branch_fp_inverted): Likewise.
3023
3024 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
3025
3026         PR middle-end/25989
3027         * omp-low.c (expand_omp_for_generic): Mark istart0
3028         and iend0 as addressable.
3029
3030 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
3031
3032         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
3033
3034 2006-03-13  Jeff Law  <law@redhat.com>
3035
3036         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
3037         virtual operands are interesting.
3038         (vrp_visit_stmt): Corresponding changes.
3039
3040 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
3041
3042         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
3043         of RETS.
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.
3048
3049         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
3050         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
3051         not if flag_pic.
3052         Lose 'G' modifier for call operand.
3053         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
3054         recognize 'G' modifier.
3055
3056 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
3057
3058         PR middle-end/18859
3059         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
3060         * stmt.c (expand_case): Likewise.
3061
3062 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3063
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.
3067
3068 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3069
3070         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
3071         Removed.
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.
3075
3076 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3077
3078         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
3079         flag_test_coverage out of loop.
3080
3081 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3082
3083         * final.c (shorten_branches): Remove outdated comment, and turn
3084         the if branch that guards it to continue.
3085
3086 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3087
3088         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
3089         * cfgloop.h (struct loop): Remove unused fields.
3090
3091 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
3092
3093         * doc/invoke.texi (-fdump-rtl-loop): Remove.
3094         (-dL, -fdump-rtl-loop2): Update the dump file names
3095
3096         * doc/invoke.texi: Update dump file names.
3097
3098 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
3099
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.
3106
3107         * doc/invoke.texi (-fdump-rtl-bp): Remove.
3108
3109 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
3110
3111         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
3112         * rtl.h (LABEL_NEXTREF): Remove field accessor.
3113
3114 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
3115
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.
3120
3121 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
3122
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
3128         references.
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.
3132
3133 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
3134
3135         * config/mips/mips.c: Remove redundant comment.
3136
3137 2006-03-10  Jason Merrill  <jason@redhat.com>
3138
3139         PR c/26004
3140         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
3141         the target was declared 'register'.
3142
3143 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
3144
3145         * genpreds.c (write_insn_constraint_len): Change definition of
3146         insn_constraint_len to return size_t to match the declaration.
3147
3148 2006-03-10  DJ Delorie  <dj@redhat.com>
3149
3150         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
3151         start at zero.
3152         (m32c_expand_insv): Fix test for an AND mask.
3153
3154 2006-03-10  Richard Guenther  <rguenther@suse.de>
3155
3156         PR middle-end/26565
3157         * builtins.c (get_pointer_alignment): Handle component
3158         references for field alignment.
3159
3160 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
3161
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.
3166
3167 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
3168
3169         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
3170
3171 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
3172
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.
3177
3178 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
3179
3180         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
3181         instead of gen_lowpart.
3182
3183 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
3184
3185         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
3186         interface.
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
3210         comparisons.
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
3216         interface.
3217         (*branch_equality<mode>_inverted): Likewise.
3218         (condjump): New expander.
3219         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
3220         operator.
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.
3225
3226 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
3227
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.
3241
3242 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
3243
3244         * tree-cfg.c (move_block_to_fn): Remove the statements from the
3245         original fn's eh regions.
3246
3247 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
3248
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)"
3251         transformation.
3252
3253         (range_predecessor): New static function.
3254         (range_successor): Likewise.
3255         (merge_ranges): Use them to compute predecessors and successors of
3256         range bounds.
3257
3258 2006-03-09  Roger Sayle  <roger@eyesopen.com>
3259
3260         PR middle-end/26561
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.
3263
3264 2006-03-08  DJ Delorie  <dj@redhat.com>
3265
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,
3277         cond_to_int): New.
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)).
3285         Add Sp constraint.
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
3293         position.
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
3308         code macros.
3309         (no_insn): New.
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.
3317         (ap_operand): New.
3318         (ma_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.
3329
3330 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
3331
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.
3337
3338         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
3339         of ptr into the ENABLE_CHECKING section.
3340
3341 2006-03-08  Jeff Law  <law@redhat.com>
3342
3343         * tree-vrp.c (infer_value_range): Only count pointer uses
3344         and dereferences if -fdelete-null-pointer-checks is enabled.
3345
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
3350         use-def chain.
3351
3352 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
3353
3354         PR bootstrap/26500
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.
3360
3361 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
3362
3363         * tree-ssa-opfinalize.h: Removed.
3364         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
3365         dependency.
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.
3372
3373 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
3374
3375         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
3376         block as parameter.
3377
3378 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
3379
3380         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
3381
3382         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
3383         addresses with offsets; reorganize.
3384
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.
3388
3389 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
3390
3391         PR target/26588
3392         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
3393
3394 2006-03-08  Ben Elliston  <bje@au.ibm.com>
3395
3396         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
3397
3398 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
3399
3400         PR gomp/26238
3401         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
3402         expansion.
3403
3404 2006-03-07  Richard Guenther  <rguenther@suse.de>
3405
3406         PR tree-optimization/26587
3407         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
3408
3409 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
3410
3411         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
3412
3413 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
3414
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