OSDN Git Service

eb38288dd3ba93ac43f366337c841f9c498ac589
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
2
3         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
4         machines.
5
6 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
7
8         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
9         MODE_PARTIAL_INT mode.
10         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
11         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
12         for CONST_INTs.
13         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
14         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
15         V2PDImode.
16         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
17         New predicates.
18         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
19         New constants.
20         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
21         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
22         MACFLAG_IH): Likewise.
23         (movstricthi_1): Renamed from "*movstricthi".
24         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
25         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
26         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
27         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
28         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
29         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
30         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
31         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
32         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
33         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
34         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
35         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
36         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
37         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
38         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
39
40         * doc/rtl.texi (ss_ashift): Improve wording.
41
42 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
43
44         * dwarf2out.c (verify_marks_clear): New.
45         (prune_unused_types): Call verify_marks_clear initially, not
46         prune_unmark_dies.
47
48 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
49
50         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
51         * doc/rtl.texi: Document them.
52         * simplify-rtx.c (simplify_unary_operation,
53         simplify_binary_operation_1): Don't abort when we see them.
54
55 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
56
57         Revert:
58         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
59         * configure.ac: Completely disregard languages that are not
60         enabled.
61         * configure: Regenerated.
62
63 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
64         Richard Guenther  <rguenther@suse.de>
65
66         PR tree-optimization/27236
67         * tree-inline.c (copy_body_r): Make sure to copy
68         TREE_THIS_VOLATILE flag.
69
70 2006-04-24  Richard Guenther  <rguenther@suse.de>
71
72         PR middle-end/26869
73         * tree-complex.c (update_parameter_components): Don't handle
74         unused parameters which have no default def.
75
76 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
77         Richard Guenther  <rguenther@suse.de>
78
79         PR tree-optimization/27218
80         * tree-inline.c (expand_call_inline): Strip useless type
81         conversions for the return slot address.
82
83 2006-04-24  Richard Guenther  <rguenther@suse.de>
84
85         * cfgloop.h (struct loops): Remove unused field array.  Reorder
86         state after num.
87         (LOOP_PREFETCH): Remove.
88
89 2006-04-24  Richard Guenther  <rguenther@suse.de>
90
91         PR tree-optimization/22525
92         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
93         variable, adjust types of generated expressions.
94
95 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
96
97         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
98         (tree-vect-patterns.o): Likewise.
99         (jump.o): Likewise.
100         (cselib.o): Likewise.
101         (loop-doloop.o): Likewise.
102         (regclass.o): Likewise.
103         (reload1.o): Likewise.
104         (explow.o): Replace target.h with $(TARGET_H).
105         (ipa-prop.o): Likewise.
106         (ipa-cp.o): Likewise.
107         (ipa-inline.o): Likewise.
108         (reorg.o): Likewise.
109         (reg-stack.o): Likewise.
110
111 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
112
113         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
114
115 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
116
117         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
118
119         * configure.ac: Completely disregard languages that are not
120         enabled.
121         * configure: Regenerated.
122
123         PR c++/26534
124         * c-common.h (c_build_bitfield_integer_type): Declare.
125         * c-decl.c (c_build_bitfield_integer_type): Move to ...
126         * c-common.c (c_build_bitfield_integer_type): ... here.
127
128 2006-04-23  Roger Sayle  <roger@eyesopen.com>
129
130         PR target/21283
131         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
132         a SImode SUBREG of a floating point register after no_new_pseudos.
133
134 2006-04-23  Roger Sayle  <roger@eyesopen.com>
135
136         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
137         identify potentially eliminable registers to additionally catch
138         VIRTUAL_INCOMING_ARGS_REGNUM.
139         (addsi3): Update the conditions on when to use addsi_small_int.
140
141 2006-04-23  Roger Sayle  <roger@eyesopen.com>
142
143         PR target/16641
144         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
145         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
146         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
147
148 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
149
150         * fold-const.c (range_predecessor): Use operand_equal_p
151         as the predicate for equality.
152         (range_successor): Likewise.
153
154 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
155
156         Revert:
157         * config/soft-fp/op-common.h: Fix a typo.
158
159 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
160
161         PR libmudflap/26864
162         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
163         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
164
165 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
166
167         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
168         Fix comment typos.
169         * doc/tm.texi: Fix a typo.
170
171 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
172
173         * dwarf2out.c (struct die_struct): Document that die_sib makes
174         a circular linked list.
175         (FOR_EACH_CHILD): New.
176         (reverse_die_lists): Delete.
177         (reverse_all_dies): Delete.
178         (add_dwarf_attr): Correct documentation.
179         (remove_child_with_prev): New.
180         (remove_child_TAG): Update for change to die_struct, use
181         remove_child_with_prev.
182         (add_child_die): Update for change to die_struct.
183         (splice_child_die): Use remove_child_with_prev and add_child_die.
184         (print_die): Use FOR_EACH_CHILD.
185         (die_checksum): Likewise.
186         (assign_symbol_names): Likewise.
187         (output_location_lists): Likewise.
188         (build_abbrev_table): Likewise.
189         (calc_die_sizes): Likewise.
190         (mark_dies): Likewise.
191         (unmark_dies): Likewise.
192         (unmark_all_dies): Likewise.
193         (output_die): Likewise.
194         (prune_unused_types_mark): Likewise.
195         (prune_unused_types_walk): Likewise.
196         (same_die_p): Update for change to die_struct.
197         (break_out_includes): Likewise.
198         (prune_unused_types_prune): Likewise.
199         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
200         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
201         it's already clear.
202         (dwarf2out_finish): Don't call reverse_all_dies.
203
204 2006-04-21  Eric Christopher  <echristo@apple.com>
205
206         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
207         in comments and function names.
208
209 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
210
211         PR c/25875
212         * c-typeck.c (digest_init): Robustify.
213
214         * c-typeck.c (pop_init_level): Simplify.
215
216 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
217
218         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
219
220 2006-04-21  Paul Brook  <paul@codesourcery.com>
221
222         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
223         hardware floating point.
224
225 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
226
227         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
228         NON_FLOAT_REGS.
229
230 2006-04-21  Nick Clifton  <nickc@redhat.com>
231
232         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
233         OPT_EXTRA_PARTS.
234
235 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
236
237         PR target/27230
238         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
239         C++ lang type in traceback table for Objective-C++.
240
241         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
242
243 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
244
245         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
246
247 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
248
249         PR mudflap/26789
250         * tree-mudflap.c (mudflap_finish_file): Skip function when there
251         were errors.  Remove check for erroneous objects.
252
253 2006-04-20  Jeff Law  <law@redhat.com>
254
255         PR tree-optimization/26854
256         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
257         checking for zero or one use.
258         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
259         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
260         * tree-ssa-reassoc.c (negate_value): Similarly.
261         (reassociate_bb): Similarly.
262
263 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
264
265         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
266         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
267         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
268
269 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
270
271         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
272         fp regs if the last fp arg doesn't fit in regs.
273
274 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
275
276         PR target/27182
277         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
278         that the last insn has the REG_INC note.
279
280 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
281             Nathan Sidwell  <nathan@codesourcery.com>
282
283         PR c/26774
284         * stor-layout.c (update_alignment_for_field): Do not align
285         ERROR_MARK nodes.
286         (place_union_field): Place union field at the start of the union.
287         (place_field): Move ERROR_MARK check later, and use the current
288         allocation position to maintain monotonicity.
289
290 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
291
292         * dominance.c: Include timevar.h.
293         (calculate_dominance_info): Use TV_DOMINANCE.
294         * timevar.def (TV_DOMINANCE): New timevar.
295         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
296
297 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
298
299         PR rtl-optimization/14261
300         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
301         move would be an INSV insn.
302         (noce_process_if_block): Don't optimize if the destination is a
303         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
304
305 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
306
307         * config/s390/s390.md: Add comments with the instructions emitted
308         by an insn pattern if macros are used.
309
310 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
311
312         PR rtl-optimization/26026
313         * fold-const.c (fold_binary): Optimize div and mod where the divisor
314         is a known power of two shifted left a variable amount.
315
316 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
317
318         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
319         to hash table twice when the debug_str section has SECTION_MERGE.
320
321 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
322
323         * config/soft-fp: New directory.  From glibc.
324         * config/soft-fp/t-softfp: New.
325         * config/soft-fp/README: New.
326         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
327         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
328         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
329         (LIBGCC_DEPS): Add $(SFP_MACHINE).
330         * config.gcc: Use rs6000/t-fprules-fpbit or
331         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
332         rs6000/t-fprules.
333         * config/rs6000/sfp-machine.h: New.  Based on glibc.
334         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
335         New.
336         * config/rs6000/t-fprules: Remove fp-bit rules.
337         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
338         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
339         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
340         (softfp_wrap_start, softfp_wrap_end): New.
341
342 2006-04-18  DJ Delorie  <dj@redhat.com>
343
344         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
345
346 2006-04-18  Devang Patel  <dpatel@apple.com>
347
348         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
349
350 2006-04-18  Nick Clifton  <nickc@redhat.com>
351
352         * config/sh/t-symbian: Add rule to build sh-c.o
353         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
354         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
355         (sh_symbian_encode_section_info): Likewise.
356
357 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
358
359         * builtins.c (expand_builtin_strcmp): Cover label definition of
360         do_libcall with HAVE_cmpstrnsi.
361
362 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
363
364         * function.c (temp_slots_at_level, max_slot_level): Use VEC
365         instead of VARRAY.
366         * function.h (temp_slot_p): New.
367         (function): Change the type of x_used_temp_slots to
368         VEC(temp_slot_p,gc) *.
369
370 2006-04-18  Nick Clifton  <nickc@redhat.com>
371
372         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
373         flag_strength_reduce.
374
375         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
376
377 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
378
379         PR target/27117
380
381         Partial revert of revision 112637
382         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
383                     Dale Johannesen  <dalej@apple.com>
384
385         PR target/19653
386         * regclass.c (struct reg_pref): Update documentation.
387         (regclass): Set prefclass to NO_REGS if memory is the best option.
388         (record_reg_classes): Cope with a prefclass set to NO_REGS.
389
390 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
391
392         PR tree-optimization/26821
393         * tree-ssa-math-opts.c (get_constant_one): New.
394         (insert_reciprocals): Use it.
395
396 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
397
398         * dwarf2out.c (free_AT): Delete.
399         (remove_AT): Update string ref counts.
400         (remove_child_TAG): Don't call free_die.
401         (free_die): Delete.
402         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
403         or DW_TAG_GNU_EINCL.
404         (prune_unused_types_walk_attribs): Reset string refcounts.
405         (prune_unused_types_update_strings): New.
406         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
407         call free_die.  Do call prune_unused_types_update_strings.
408         (prune_unused_types): Empty debug_str_hash.
409
410 2006-04-17  Roger Sayle  <roger@eyesopen.com>
411
412         * expr.c (expand_assignment): Optimize away no-op moves where the
413         source and destination are equal and have no side-effects.
414
415 2006-04-17  Richard Guenther  <rguenther@suse.de>
416
417         PR target/26826
418         * reload.c (push_reload): Guard calls to get_secondary_mem
419         for memory subregs.
420
421 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
422
423         * alias.c (reg_base_value, old_reg_base_value): Change the
424         type to VEC(rtx,gc) *.
425         (REG_BASE_VALUE, find_base_value, record_set,
426         init_alias_analysis): Use VEC instead of VARRAY.
427
428         * alias.c (alias_sets): Change the type to
429         VEC(alias_set_entry,gc) *.
430         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
431         VEC instead of VARRAY.
432         (last_alias_set): Remove.
433
434         * cgraph.h (cgraph_edge_p): New.
435         Update the prototype of cgraph_function_versioning.
436         * cgraphunit.c (cgraph_copy_node_for_versioning,
437         cgraph_function_versioning): Use VEC instead of VARRAY.
438         * ipa-cp.c (ipcp_insert_stage): Likewise.
439
440 2006-04-16  Roger Sayle  <roger@eyesopen.com>
441
442         PR target/26961
443         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
444         "A op B" or "A op C", we may need to convert A to the type of B and C.
445
446 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
447
448         * target.h (struct gcc_target): Add mode_rep_extended.
449         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
450         (init_num_sign_bit_copies_in_rep): Initialize it using
451         mode_rep_extended.
452         (truncate_to_mode): Use it.
453         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
454         * targhooks.h (default_mode_rep_extended): Declare it.
455         * targhooks.c (default_mode_rep_extended): Define it.
456         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
457         default_mode_rep_extended.
458         (TARGET_INITIALIZER): Include it.
459         * doc/tm.texi (Misc): Document it.
460         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
461         (mips_truncated_to_mode): New function.
462
463 2006-04-16  Roger Sayle  <roger@eyesopen.com>
464
465         PR middle-end/25474
466         * expr.c (compress_float_constant): Copy the narrow constant into
467         a new pseudo before extending it to its final width.
468
469 2006-04-16  Roger Sayle  <roger@eyesopen.com>
470             Andrew Pinski  <pinskia@gcc.gnu.org>
471             Dale Johannesen  <dalej@apple.com>
472
473         PR target/24076
474         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
475         special case code to implement V8HImode and V16QImode with SSE2.
476
477 2006-04-15  Roger Sayle  <roger@eyesopen.com>
478
479         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
480         trees are constructed with a suitable tree type.
481
482 2006-04-15  Roger Sayle  <roger@eyesopen.com>
483
484         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
485         (integer_onep): Likewise.
486         (integer_all_onesp): Likewise.
487         (integer_pow2p): Likewise.
488         (integer_nonzerop): Likewise.
489         (real_zerop): Likewise.
490         (real_onep): Likewise.
491         (real_twop): Likewise.
492         (real_minus_onep): Likewise.
493         (int_size_in_bytes): Likewise.
494         (host_integerp): Likewise.
495
496 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
497
498         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
499         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
500         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
501
502         * tree-ssa-structalias.h (alias_info): Remove num_references.
503
504 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
505
506         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
507         (output_bvb patterns): Likewise.
508         * pa.c (output_bb): Use 'bb' insn for long branch case.
509         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
510         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
511         1.  Correct length operand for alternatives 1 and 2.
512         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
513         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
514
515 2006-04-14  Roger Sayle  <roger@eyesopen.com>
516
517         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
518         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
519         were accidentally reverted by r112959.
520
521 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
522
523         PR middle-end/26823
524         * except.h (eh_region_outermost): New prototype.
525         * except.c (eh_region_outermost): New function.
526         * tree-cfg.c (find_outermost_region_in_block): Use it.
527
528 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
529
530         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
531         of VARRAY.
532         * reload1.c (reg_equiv_memory_loc_varray): Rename to
533         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
534         (init_reload, reload): Use VEC instead of VARRAY.
535         * reload.h: Update the prototype for
536         reg_equiv_memory_loc_varray.
537
538 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
539             Eric Botcazou  <ebotcazou@libertysurf.fr>
540
541         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
542         register save area.
543
544 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
545
546         PR middle-end/27134
547         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
548         to expand fallback builtin function call.
549
550 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
551
552         PR middle-end/27095
553         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
554         and emit libcall here in case the builtin fails.
555         (expand_builtin_strcmp): Always emit the libcall here on failure.
556
557 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
558
559         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
560         * flow.c (reg_n_info): Change the type to
561         VEC(reg_info_p,heap) *.
562         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
563         instead of VARRAY.
564         * regs.h (reg_info_p): New.
565         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
566         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
567         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
568         instead of VARRAY.
569
570 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
571
572         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
573         defaulting to 100.
574         * params.h (MAX_SCHED_READY_INSNS): New macro.
575         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
576         past MAX_SCHED_READY_INSNS during the first scheduling pass.
577         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
578         the ready list for 1 cycle during the first scheduling pass.
579         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
580
581 2006-04-13  Richard Henderson  <rth@redhat.com>
582
583         PR libgomp/26651
584         * gimple-low.c (lower_omp_directive): Remove dead code.
585         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
586         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
587         * omp-low.c (struct omp_region): Move to tree-flow.h.
588         (root_omp_region): Export.
589         (omp_regions, lookup_omp_region): Remove.
590         (determine_parallel_type): Update for struct omp_region changes.
591         (dump_omp_region): Dump regions with block numbers.
592         (new_omp_region): Take type and block instead of stmt; malloc
593         instead of ggc.
594         (free_omp_region_1, free_omp_regions): New.
595         (expand_parallel_call): Take entry_stmt as argument; update for
596         changes to omp_region.
597         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
598         (remove_exit_barriers): New.
599         (expand_omp_parallel): Update for struct omp_region changes.
600         (expand_omp_synch): Likewise.
601         (expand_omp): Likewise.
602         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
603         (expand_omp_for_static_chunk): Likewise.
604         (expand_omp_for): Likewise.
605         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
606         (expand_omp_sections): Similarly, with GOMP_sections_end.
607         (expand_omp_single): New.
608         (build_omp_regions_1): Update for OMP_CONTINUE.
609         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
610         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
611         OMP_SECTIONS_SECTIONS.
612         (lower_omp_single_simple): Don't emit barrier here.
613         (lower_omp_single_copy): Likewise.
614         (lower_omp_single): Fix bindings, and lower to straightline now.
615         (lower_omp_master, lower_omp_ordered): Likewise.
616         (lower_omp_critical): Likewise.
617         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
618         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
619         omp edges, free it afterward.
620         (make_omp_sections_edges): Remove.
621         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
622         (move_stmt_r): Handle OMP_CONTINUE.
623         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
624         statement pointers to basic blocks.  Add type member.
625         (root_omp_region, new_omp_region, free_omp_regions): Declare.
626         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
627         * tree-inline.c (estimate_num_insns_1): Likewise.
628         * tree-pretty-print.c (dump_generic_node): Likewise.
629         * tree-ssa-operands.c (get_expr_operands): Likewise.
630         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
631         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
632         (OMP_CONTINUE): New.
633         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
634         (OMP_SECTIONS_SECTIONS): Remove.
635         (OMP_SECTION_LAST): New.
636         (OMP_RETURN_NOWAIT): New.
637
638 2006-04-13  Roger Sayle  <roger@eyesopen.com>
639
640         * fold-const.c (native_encode_vector, native_interpret_real):
641         Correct obvious mistakes in the previous check-in.
642
643 2006-04-13  Roger Sayle  <roger@eyesopen.com>
644
645         * fold-const.c (native_encode_expr): New function to encode
646         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
647         or VECTOR_CST into a specified buffer.
648         (native_encode_int): New function.
649         (native_encode_real): New function.
650         (native_encode_complex): New function.
651         (native_encode_vector): New function.
652         (native_interpret_expr): Inverse of native_encode_expr to convert
653         a target representation into an INTEGER_CST, REAL_CST etc...
654         (native_interpret_int): New function.
655         (native_interpret_real): New function.
656         (native_interpret_complex): New function.
657         (native_interpret_vector): New function.
658         (fold_view_convert_expr): New function to constant fold/evaluate
659         a VIEW_CONVERT_EXPR of a suitable constant expression.
660         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
661         Change call of build1 to fold_build1 when constructing a
662         VIEW_CONVERT_EXPR.
663
664 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
665             Ulrich Weigand  <uweigand@de.ibm.com>
666
667         PR target/27006
668         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
669         to be even.
670
671 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
672
673         PR target/26459
674         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
675         optimize to lo_sum for DFmode if !TARGET_FPRS.
676
677 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
678
679         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
680         delete_alias_info, compute_flow_sensitive_aliasing,
681         group_aliases): Use VEC instead of VARRAY.
682         * tree-ssa-structalias.c (update_alias_info): Likewise.
683         * tree-ssa-structalias.h (alias_info): Change the type of
684         processed_ptrs to VEC(tree,heap) *.
685
686 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
687
688         PR target/27060
689         * config/sh/lib1funcs.h: New file, broken out of:
690         * config/sh/lib1funcs.asm.
691         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
692         New macros.
693         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
694         * config/sh/lib1funcs-Os-4-200.asm: New file.
695         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
696         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
697         (EXTRA_MULTILIB_PARTS): Include it.
698         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
699         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
700         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
701         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
702         TARGET_SH2.
703
704 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
705
706         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
707         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
708         tpa_compact, root_var_init, type_var_init): Use VEC instead of
709         VARRAY.
710         * tree-ssa-live.h: Include vecprim.h.
711         (tree_partition_associator_d): Change the type of
712         first_partition to VEC(int,heap) *.
713         (tpa_first_partition): Use VEC instead of VARRAY.
714
715         * Makefile.in (GTFILES): Move functions.h after tree.h.
716         * function.c (reset_block_changes, record_block_change,
717         check_block_change, free_block_changes): Use VEC instead of
718         VARRAY.
719         * function.h (function): Change the type of
720         ib_boundaries_block to VEC(tree,gc) *.
721         * tree-inline.c (copy_cfg_body): Initialize
722         ib_boundaries_block to NULL instead of (varray_type) 0.
723
724 2006-04-12  Roger Sayle  <roger@eyesopen.com>
725
726         * expr.c (emit_group_store): Correct operand order in call to
727         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
728         a SUBREG_BYTE of zero.
729
730 2006-04-12  Richard Guenther  <rguenther@suse.de>
731
732         * profile.c (compute_branch_probabilities): Remove code
733         encapsulated in !ir_type (), which are remanents of the
734         removed RTL profiling code.
735         * rtl-profile.c: Remove.
736
737 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
738
739         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
740         magic NULL_RTX comment.
741         (function_arg): Store entire fp arg to mem if any part should go
742         on stack.
743         (rs6000_arg_partial_bytes): Adjust for above change.
744
745 2006-04-11  Roger Sayle  <roger@eyesopen.com>
746
747         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
748         if it hasn't been initialized by dwarf2out_init.
749
750 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
751
752         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
753         symbolic constants in branch patterns.
754
755 2006-04-11  Roger Sayle  <roger@eyesopen.com>
756
757         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
758
759 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
760
761         PR rtl-optimization/27073
762         * gcse.c (try_replace_reg): Revert last change.  Continue to search
763         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
764         on the former.
765
766 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
767
768         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
769         aggregate types other than record and union types.
770         (function_arg): Likewise.
771         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
772         small arrays.
773         (function_value): In 64-bit mode, return objects that require it
774         in FP registers.
775
776 2006-04-11  Roger Sayle  <roger@eyesopen.com>
777
778         * dwarf2out.c (premark_used_types): Remove problematic prototype.
779
780 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
781
782         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
783
784 2006-04-03  Jeff Law  <law@redhat.com>
785
786         PR/27087
787         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
788         alias information too.
789
790 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
791
792         * gcc/Makefile.in (gcc-cross): Add $(exeext) to target name.
793
794 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
795
796         PR/21391
797         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
798         (premark_used_types_helper): New.
799         (premark_used_types): New.
800         (gen_subprogram_die): Call premark_used_types.
801         (prune_unused_types_walk): Do not prune perennial dies.
802         * function.c (used_types_insert): New.
803         * function.h (struct function): Add used_types_hash field.
804         (used_types_insert): Add prototype.
805         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
806         * c-parser.c (c_parser_cast_expression): Save casted types in used
807         types hash table.
808
809 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
810
811         PR target/26459
812         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
813         rs6000_explicit_options.float_gprs.
814
815 2006-04-10  Roger Sayle  <roger@eyesopen.com>
816
817         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
818         from ix86_expand_vector_init_low_nonzero.  Take an additional
819         one_var argument indicating which element is non-zero.  Support
820         one_var != 0 for V4SFmode and V4SImode by permuting the result.
821         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
822         with one_var instead of ix86_expand_vector_init_low_nonzero.
823
824 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
825
826         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
827         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
828         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
829         build/genextract.o): Depend on vecprim.h.
830         * cfglayout.c, df-problems.c, function.c, genextract.c,
831         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
832         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
833         vecprim.h.
834         * vecprim.h: New.
835
836 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
837
838         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
839         Declare VECs of this type.
840         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
841         (remove_children): Delete.
842         (add_dwarf_attr): Use VEC routines.
843         (add_AT_flag): Update for changes to add_dwarf_attr.
844         (add_AT_int): Likewise.
845         (add_AT_unsigned): Likewise.
846         (add_AT_long_long): Likewise.
847         (add_AT_vec): Likewise.
848         (add_AT_string): Likewise.
849         (add_AT_die_ref): Likewise.
850         (add_AT_fde_ref): Likewise.
851         (add_AT_loc): Likewise.
852         (add_AT_loc_list): Likewise.
853         (add_AT_addr): Likewise.
854         (add_AT_lbl_id): Likewise.
855         (add_AT_lineptr): Likewise.
856         (add_AT_macptr): Likewise.
857         (add_AT_offset): Likewise.
858         (add_AT_range_list): Likewise.
859         (get_AT): Use VEC_iterate.
860         (remove_AT): Use VEC_ordered_remove.
861         (free_die): Fold remove_children into here; have it use VEC_iterate.
862         (print_die): Use VEC_iterate on attrs.
863         (reverse_die_lists): Don't reverse attr lists.
864         (die_checksum): Use VEC_iterate on attrs.
865         (same_die_p): Likewise.
866         (output_location_lists): Likewise.
867         (build_abbrev_table): Likewise.
868         (size_of_die): Likewise.
869         (unmark_all_dies): Likewise.
870         (output_abbrev_section): Likewise.
871         (output_die): Likewise.
872         (prune_unused_types_walk_attribs): Likewise.
873
874 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
875
876         * doc/install.texi (*-*-solaris2*): Point to the configure page.
877
878 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
879
880         PR debug/27057
881         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
882
883 2006-04-09  Roger Sayle  <roger@eyesopen.com>
884
885         * expr.c (store_constructor): Don't bother clearing target if
886         we're about to assign a vector to it using vec_init_optab.
887
888 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
889
890         * tree-ssa-alias.c (lhs_may_store_to): New function.
891         (recalculate_used_alone): Handle LHS of calls.
892
893 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
894
895         PR target/27034
896         PR target/26508
897         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
898         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
899         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
900         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
901         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
902         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
903         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
904         stubs.  Add ".align 8" directives before all ".dword" directives.
905         (GTHREAD_USE_WEAK): Revise comment.
906         (TARGET_ATTRIBUTE_WEAK): Define.
907         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
908         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
909         * stublib.c: New file.
910
911         PR target/26743
912         PR target/11254
913         PR target/10274
914         * pa.md (cbranch patterns): Revise arguments used in calls to
915         output_cbranch, output_bb and output_bvd.  Add long branch length
916         attributes.
917         (fbranch patterns): Handle long branches.
918         (jump): Revise length check.  Revise arguments for output_lbranch call.
919         Add long branch length attributes.
920         (decrement_and_branch_until_zero): Add long branch length attributes.
921         (output_movb, output_parallel_addb and output_parallel_movb patterns):
922         Likewise.  Revise arguments for output_parallel_addb and
923         output_parallel_movb calls.
924         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
925         output_parallel_movb and output_parallel_addb): Update prototypes.
926         * pa.c (output_cbranch): Revise arguments.  Correct handling of
927         nullification in long branches.
928         (output_lbranch): Add new argument to control extraction of delay
929         instruction.
930         (output_bb): Handle long branches.
931         (output_bvb, output_dbra, output_movb, output_parallel_movb,
932         output_parallel_addb): Likewise.
933
934 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
935
936         PR rtl-optimization/27073
937         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
938         not REG_EQUIVs.
939
940 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
941
942         * tree.h (tree_memory_tag): Add old_used_alone.
943         (SMT_OLD_USED_ALONE): New macro.
944         * tree-ssa-alias.c (recalculate_used_alone): Stop
945         marking things for renaming unnecessarily.
946
947 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
948
949         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
950         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
951         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
952         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
953         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
954         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
955         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
956         spelling convensions.
957         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
958         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
959         typos.  Follow spelling conventions.
960
961 2006-04-07  DJ Delorie  <dj@redhat.com>
962
963         * config/m32c/m32c.c (m32c_function_arg): Structures are always
964         passed on the stack.
965         (m32c_init_cumulative_args): When a function returns a structure,
966         always pass the pointer to that return area on the stack.
967         (m32c_function_arg_advance): Don't increment the parameter number
968         if we're processing the returned structure pointer.
969         (pushm_info): Reverse order of registers.
970
971 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
972
973         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
974         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
975         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
976         estimate_numbers_of_iterations_loop): Use build_int_cst instead of
977         build_int_cst_type.
978         * tree-chrec.c (chrec_fold_multiply_poly_poly,
979         chrec_fold_multiply): Same.
980         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
981         force_expr_to_var_cost): Same.
982         * tree-mudflap.c (mf_xform_derefs_1): Same.
983         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
984
985 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
986
987         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
988         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
989         insn.
990
991 2006-04-07  Jan Hubicka  <jh@suse.cz>
992
993         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
994
995 2006-04-07  Richard Guenther  <rguenther@suse.de>
996
997         PR tree-optimization/26135
998         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
999         loads for store copy-prop.
1000         (copy_prop_visit_stmt): Likewise.
1001
1002 2006-04-05  Robert Millan  <robertmh@gnu.org>
1003
1004         * gcc/config/i386/linux.h:  Add a comment to mark macros that are
1005         being overriden in config/k*bsd-gnu.h.
1006         * gcc/config/kfreebsd-gnu.h:  Redefine GLIBC_DYNAMIC_LINKER instead of
1007         DYNAMIC_LINKER.
1008         * gcc/config/knetbsd-gnu.h:  Ditto.
1009
1010 2006-04-06  Jan Hubicka  <jh@suse.cz>
1011
1012         PR profile/20815
1013         PR profile/26399
1014         * coverage.c (coverage_checksum_string): Reorganize loop to not read
1015         after buffer.
1016
1017 2006-04-06  Mike Stump  <mrs@apple.com>
1018
1019         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
1020         for HAVE_nonlocal_goto to be consistent.
1021         (expand_builtin_nonlocal_goto): Likewise.
1022         (expand_builtin_strcmp): Use #ifdef instead of #if
1023         for HAVE_cmpstrnsi to be consistent.
1024
1025 2006-04-05  DJ Delorie  <dj@redhat.com>
1026
1027         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
1028         vs m32c.
1029
1030 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1031
1032         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
1033         got-relative addressing for anything but SImode.
1034
1035         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
1036         even if the calling function doesn't modify them.
1037
1038 2006-04-05  Richard Guenther  <rguenther@suse.de>
1039
1040         PR tree-optimization/26919
1041         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
1042         to cgraph_estimate_size_after_inlining.
1043
1044 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
1045
1046         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
1047
1048 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
1049
1050         PR tree-optimization/26996
1051         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
1052         VECTOR_TYPE variables.
1053
1054 2006-04-05  Richard Guenther  <rguenther@suse.de>
1055
1056         PR tree-optimization/26763
1057         * fold-const.c (fold_comparison): Move folding of
1058         PTR + CST CMP PTR + CST ...
1059         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
1060
1061 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
1062
1063         * doc/install.texi (Prerequisites): Refine some wording on
1064         bootstrapping and ksh.
1065         Move the version numbers of DejaGnu here from the testing section
1066         and fix casing of names.
1067         Fix markup and clarify wording for autogen requirements.
1068         Refer to GCJ instead of just java.
1069         Refer to SVN instead of CVS.
1070         Describe diffutils as useful instead of necessary.
1071         (Downloading the source): Refer to SVN instead of CVS.
1072         Adjust a link to our web site accordingly.
1073         (Configuration): Fix casing of Bison.
1074         (Building): Refer to SVN instead of CVS.
1075         Fix a sentence on the use of Bison and remove duplicate (and
1076         incorrect) version number of Bison requirement.
1077         Remove one redundant list of packages needed for building.
1078         (Specific): Avoid reference to CVS.
1079
1080 2006-04-04  Eric Christopher  <echristo@apple.com>
1081
1082         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
1083         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
1084         (rs6000_handle_struct_attribute): New.
1085         (rs6000_ms_bitfield_layout_p): Ditto.
1086
1087 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
1088
1089         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
1090         NULL for dso parameter to atexit_common.
1091
1092 2006-04-04  Eric Christopher  <echristo@apple.com>
1093
1094         * config/i386/i386.c (machopic_output_stub): Output \t
1095         between instructions and operands.
1096
1097 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
1098
1099         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
1100         satisfies_constraint_[IL] to explicit tests on value.
1101
1102 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
1103
1104         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1105         set_nb_iterations_in_loop): Use build_int_cst instead of
1106         build_int_cst_type.
1107         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
1108         build_int_cst instead of convert.
1109
1110 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
1111
1112         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
1113         new value 2 for incoming.
1114         * function.c (expand_function_start): Call struct_value_rtx
1115         with incoming as 2.
1116         * config/sparc/sparc.md: Comment updated_return.
1117         * config/sparc/sparc.opt: Add -mstd-struct-return option.
1118         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
1119         struct return if sparc_std_struct_return and incoming is 2.
1120         (print_operand): Do not adjust return if
1121         sparc_std_struct_return.
1122
1123 2006-04-04  Roger Sayle  <roger@eyesopen.com>
1124
1125         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
1126         convert in the middle-end.
1127         * expr.c (store_expr, store_constructor, get_inner_reference,
1128         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
1129         Likewise.
1130         * tree.c (build_range_type): Likewise.
1131
1132 2006-04-04  Tom Tromey  <tromey@redhat.com>
1133
1134         * doc/install.texi (Prerequisites): Mention jar.
1135
1136 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
1137
1138         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
1139         subsection.
1140
1141 2006-04-04  Matthias Klose  <doko@debian.org>
1142
1143         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
1144
1145 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
1146
1147         * doc/extend.texi (Function Attributes): Rewrite visibility
1148         attribute documentation.
1149         * doc/invoke.texi (C++ Dialect Options): Rewrite
1150         -fvisibility-inlines-hidden documentation to describe something
1151         entirely different, although in practise compatible.
1152         (Code Gen Options): Warn about system headers in -fvisibiltity=
1153         documentation.
1154
1155         * doc/extend.texi (Other Builtins): Document that
1156         __builtin_nan is a compile-time constant only when its argument
1157         is valid.
1158
1159 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
1160
1161         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
1162         trying to remove TRUNCATE check if all bits outside the new mode
1163         are identical to the sign bit.
1164
1165 2006-04-03  Jeff Law  <law@redhat.com>
1166
1167         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
1168         and operand scanning in some common cases.
1169
1170 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
1171             Dale Johannesen  <dalej@apple.com>
1172
1173         PR target/19653
1174         * regclass.c (struct reg_pref): Update documentation.
1175         (regclass): Set prefclass to NO_REGS if memory is the best option.
1176         (record_reg_classes): Cope with a prefclass set to NO_REGS.
1177         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
1178         into account.  For non-registers, equate an empty preferred
1179         reload class to a `!' in the constraint; move the if clause to
1180         do so after those that reject the insn.
1181         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
1182         return NO_REGS.
1183         (find_dummy_reload): Likewise.
1184         * doc/tm.texi (Register Classes): Document what it means
1185         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
1186         * config/i386/i386.c (ix86_preferred_reload_class): Force
1187         using SSE registers (and return NO_REGS for floating-point
1188         constants) if math is done with SSE.
1189         (ix86_preferred_output_reload_class): New.
1190         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
1191         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
1192         * config/i386/i386.md: Remove # register preferences.
1193
1194 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1195
1196         PR bootstrap/26992
1197         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1198         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
1199         the type of nb_iter.
1200         (instantiate_parameters_1): Convert the operands before calling
1201         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
1202         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
1203
1204 2006-04-02  Roger Sayle  <roger@eyesopen.com>
1205
1206         * builtins.c (dummy_object): Use build_int_cst instead of convert.
1207         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
1208         instead of convert.
1209         * dojump.c (do_jump): Likewise.
1210         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
1211         * gimplify.c (gimple_boolify, gimplify_init_constructor,
1212         gimplify_boolean_expr): Likewise.
1213         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1214         * varasm.c (array_size_for_constructor): Likewise.
1215         * tree-object-size.c (compute_object_offset): Likewise.
1216
1217 2006-04-02  Roger Sayle  <roger@eyesopen.com>
1218
1219         PR middle-end/26977
1220         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
1221         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
1222
1223 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1224
1225         PR tree-optimization/26939
1226         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
1227
1228 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1229
1230         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
1231         at_stmt.  Convert the type of operands before calling
1232         build_polynomial_chrec.
1233         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
1234         add_to_evolution_1.
1235         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
1236         (instantiate_parameters_1): Convert the type of operands before calling
1237         build_polynomial_chrec.
1238         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
1239         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
1240         reset_evolution_in_loop): Insert asserts to check the types of the
1241         operands.
1242         (chrec_type): Moved...
1243         (eq_evolutions_p): Use operand_equal_p.
1244         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
1245         the types of the operands.
1246         (chrec_type): ...here.
1247         * tree-data-ref.c (create_data_ref): Convert the operands before
1248         calling chrec_replace_initial_condition.
1249         (same_access_functions, analyze_subscript_affine_affine,
1250         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
1251         (compute_subscript_distance, analyze_ziv_subscript,
1252         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
1253         analyze_miv_subscript): Convert the operands before calling
1254         chrec_fold_minus or chrec_fold_plus.
1255
1256 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1257
1258         * tree-data-ref.c (compute_all_dependences): Use a pointer to
1259         the dependence_relations vector.
1260         (compute_data_dependences_for_loop): Adjust call to
1261         compute_all_dependences.
1262
1263 2006-04-01  Roger Sayle  <roger@eyesopen.com>
1264             Richard Henderson  <rth@redhat.com>
1265
1266         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
1267         gimple_boolify on the condition before calling gimplify_expr.
1268
1269 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
1270
1271         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
1272         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
1273         the frame size.  Update to use the new macros.
1274         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
1275         * config/xtensa/ieee754-df.S: Likewise.
1276
1277 2006-03-31  Richard Henderson  <rth@redhat.com>
1278
1279         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
1280         (make_edges): ... here.  Control fallthru creation with a local
1281         variable.  Do not play with fake edges.
1282         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
1283         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
1284         a boolean.
1285
1286 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
1287
1288         * dwarf2.h (DW64_CIE_ID): Define.
1289         * dwarf2out.c (DWARF_CIE_ID): Define.
1290         (output_call_frame_info): Output 0xffffffff before standard 8-byte
1291         length header.  Use DWARF_CIE_ID.
1292         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
1293         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
1294
1295 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1296
1297         * config/sh/linux-atomic.asm: New file.
1298         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
1299
1300 2006-03-31  DJ Delorie  <dj@redhat.com>
1301
1302         * config/m32c/cond.md: Set condition flags properly throughout.
1303         * config/m32c/minmax.md: Likewise.
1304         * config/m32c/prologue.md: Likewise.
1305         * config/m32c/bitops.md: Likewise.
1306         * config/m32c/muldiv.md: Likewise.
1307         * config/m32c/mov.md: Likewise.
1308         * config/m32c/addsub.md: Likewise.
1309         * config/m32c/m32c.md: Likewise.
1310         * config/m32c/jump.md: Likewise.
1311         * config/m32c/shift.md: Likewise.
1312
1313         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
1314         conditionally output the pattern for this.
1315         * config/m32c/m32c.c (flags_needed_for_conditional): New.
1316         (m32c_compare_redundant): New.
1317         (m32c_output_compare): New.
1318         * config/m32c/m32c-protos.h (m32c_output_compare): New.
1319
1320         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
1321         dest, not src.  Allow other 4-byte modes.
1322
1323 2006-03-30  Denis Chertykov  <denisc@overta.ru>
1324
1325         * doc/md.texi: Refer to avr/constraints.md instead of
1326         avr/avr.h.
1327
1328 2006-03-30  Roger Sayle  <roger@eyesopen.com>
1329
1330         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
1331         signed vs. unsigned comparison failures on some hosts.
1332
1333 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
1334
1335         PR target/26459
1336         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
1337         change to FLOAT_REGS.
1338
1339         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
1340         (rs6000_override_options): Use it.
1341         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
1342         only for -mabi=spe/no-spe and -mabi=altivec.
1343
1344 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
1345
1346         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
1347         !Zdynamiclib.
1348
1349 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
1350
1351         * Makefile.in: Rename docdir to gcc_docdir.
1352
1353 2006-03-30  Roger Sayle  <roger@eyesopen.com>
1354
1355         PR target/17959
1356         * expr.c (emit_group_store):  Optimize group stores into a pseudo
1357         register by using a paradoxical subreg to initialize the destination
1358         if the first or last member of the group specifies a "low part".
1359
1360 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1361
1362         PR target/26734
1363         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
1364         * target.h (struct gcc_target.speculate_insn): Change type of the
1365         second parameter to 'int'.
1366         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
1367         the second operand of the DEPS_LIST.
1368         (copy_DEPS_LIST_list): Update reference to the second operand of the
1369         DEPS_LIST.
1370         * rtl.h (alloc_DEPS_LIST): Update signature.
1371         * sched-int.h (ds_t): Change typedef to 'int'.
1372         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
1373
1374 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1375
1376         * haifa-sched.c (try_ready): Change condition to restore
1377         non-speculative pattern of the instruction.
1378         (process_insn_depend_be_in_spec): Code to keep probability of the
1379         speculative dependence non-decreasing.
1380
1381 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
1382
1383         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
1384         (single_move_for_movmem): ... this. Also change all uses.
1385         (bfin_expand_strmov): Renamed to...
1386         (bfin_expand_movmem): ... this. Also change all uses.
1387         * config/bfin/bfin.md (movstrsi): Renamed to...
1388         (movstrsi): ...this.
1389
1390 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
1391
1392         PR tree-optimization/26830
1393
1394         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
1395         (copy_prop_visit_stmt): Remove write-only variable ann.
1396         (init_copy_prop): Check variable loop depth here.  Do not simulate
1397         memory-tag and virtual operand PHIs except for store copy prop.
1398
1399 2006-03-30  Richard Guenther  <rguenther@suse.de>
1400
1401         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
1402         variants with double arguments.
1403
1404 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
1405
1406         * genpreds.c (write_tm_constrs_h): Delete variable p.
1407         * genconditions.c (write_header): Add tm-constrs.h to included
1408         headers.
1409         * genpeep.c (main): Add toplev.h to included headers.
1410         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
1411         (build/genpeep.o): Add toplev.h dependency.
1412         * config/rs6000/constraints.md: Add "W" constraint.
1413
1414 2006-03-29  Roger Sayle  <roger@eyesopen.com>
1415
1416         * stor-layout.c (mode_for_size_tree): Remove restiction on type
1417         sizes by correctly testing whether the size fits a host integer.
1418         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
1419         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
1420         SImode range for the default sizetype and bitsizetype.
1421
1422 2006-03-29  Roger Sayle  <roger@eyesopen.com>
1423
1424         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
1425         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
1426         quickly if the argument is already of the correct type.
1427         Call fold_build1 instead of build1.  Tidy up blank lines.
1428
1429 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
1430
1431         * genemit.c (main): Add tm-constrs.h to included headers.
1432         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
1433         * genpeep.c (main): Add tm-constrs.h to included headers.
1434         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
1435         (write_tm_constrs_h): this and write complete file.
1436         (write_tm_preds_h): Do not emit satisfies_constraint fns.
1437         (write_insn_preds_c): Add tm-constrs.h to included headers.
1438         (gen_constrs): New variable.
1439         (parse_option): Parse "-c".
1440         (main): Invoke write_tm_constrs_h.
1441         * genrecog.c (write_header): Add tm-constrs.h to included headers.
1442         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
1443         (object_out_file): Add tm-constrs.h dependency.
1444         (insn-emit.o): Same.
1445         (insn-output.o): Same.
1446         (insn-peep.o): Same.
1447         (insn-preds.o): Same.
1448         (insn-recog.o): Same.
1449         (tm-constsr.h): New target.
1450         (s-constrs-h): New target.
1451
1452         * config/rs6000/constraints.md: New file.
1453         * config/rs6000/rs6000.c: Include tm-constrs.h.
1454         (num_insn_constant_wide): Convert to satisfies_constraint.
1455         (rs6000_rtx_costs): Convert to satisfies_constraint.
1456         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
1457         (CONST_OK_FOR_LETTER_P): Delete.
1458         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1459         (EXTRA_CONSTRAINT): Delete.
1460         (EXTRA_MEMORY_CONSTRAINT): Delete.
1461         (EXTRA_ADDRESS_CONSTRAINT): Delete.
1462         * config/rs6000/predicates.md: Convert to satisfies_constraint.
1463         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
1464         satisfies_constraint.
1465
1466         * config/i386/i386.c: Include tm-constrs.h.
1467
1468 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
1469
1470         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
1471         * tree-data-ref.c (find_data_references_in_loop,
1472         compute_data_dependences_for_loop): Use pointers to VEC.
1473         (analyze_all_data_dependences): Adjust calls.
1474         * tree-data-ref.h (find_data_references_in_loop,
1475         compute_data_dependences_for_loop): Adjust declarations.
1476         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
1477         compute_data_dependences_for_loop.
1478
1479 2006-03-29  Paul Brook  <paul@codesourcery.com>
1480
1481         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
1482         (movdf_vfp): Ditto.
1483
1484 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
1485
1486         PR tree-optimization/26859
1487         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
1488         division by zero.
1489         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
1490         for the step after fold_convert.
1491
1492 2006-03-29  Paul Brook  <paul@codesourcery.com>
1493
1494         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
1495         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
1496
1497 2006-03-29  Paul Brook  <paul@codesourcery.com>
1498
1499         PR middle-end/23623
1500         * targhooks.c (default_narrow_bitfield): New fuction.
1501         * targhooks.h (default_narrow_bitfield): add prototype.
1502         * target.h (gcc_target): Add narrow_volatile_bitfield.
1503         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
1504         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
1505         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
1506         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
1507
1508 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
1509
1510         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
1511         tmake_file.
1512         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
1513         (NR_C_MODES): Add TDmode, DDmode and SDmode.
1514         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
1515         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
1516         (s390_function_arg_float): Allow SDmode and DDmode values to be
1517         passed in floating point registers.
1518         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
1519         check with SCALAR_FLOAT_MODE_P.
1520         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
1521
1522 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
1523
1524         PR tree-optimization/25985
1525         * tree-ssa-loop-niter.c (number_of_iterations_le,
1526         number_of_iterations_ne): Make comments more precise.
1527         (number_of_iterations_cond): Add only_exit argument.  Use the
1528         fact that signed variables do not overflow only when only_exit
1529         is true.
1530         (loop_only_exit_p): New.
1531         (number_of_iterations_exit): Pass result of loop_only_exit_p to
1532         number_of_iterations_cond.
1533
1534 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
1535
1536         PR tree-optimization/26643
1537         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
1538         bit_field_refs.
1539
1540 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1541
1542         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
1543         (divsi3_i4_int): Likewise.
1544
1545 2006-03-28  Roger Sayle   <roger@eyesopen.com>
1546
1547         * expr.c (emit_group_store): Only create a new pseudo reg if the
1548         quantity it needs to hold isn't already a suitable pseudo.
1549
1550 2006-03-28  Jeff Law  <law@redhat.com>
1551
1552         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
1553         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
1554
1555 2006-03-28  Roger Sayle  <roger@eyesopen.com>
1556
1557         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
1558         the equivalent ~X & Y, and the symmetry related transformations.
1559         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
1560         ~X & Y, and symmetry related transforms.
1561
1562 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1563
1564         Revert my 2006-03-27 patches.
1565
1566 2006-03-28  Roger Sayle  <roger@eyesopen.com>
1567
1568         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
1569         ~(T1)X, when T1 and T2 are integer types of the same precision
1570         and (T2)X isn't an extension.
1571
1572 2006-03-28  Jeff Law  <law@redhat.com>
1573
1574         PR tree-optimization/26796
1575         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
1576         need EH edge cleanups rather than purging them immediately.
1577         (eliminate_degenerate_phis): Handle queued EH cleanups.
1578
1579 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
1580
1581         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
1582         from parent_var.
1583
1584 2006-03-27  Roger Sayle  <roger@eyesopen.com>
1585
1586         PR middle-end/22524
1587         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
1588         cast BIT_NOT_EXPR operand to the correct type.
1589
1590 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
1591
1592         * tree-loop-linear.c: Don't include varray.h.
1593         (gather_interchange_stats, try_interchange_loops,
1594         linear_transform_loops): Use VEC instead of VARRAY.
1595         * lambda-mat.c: Don't include varray.h.
1596         * tree-chrec.c: Same.
1597         * lambda-trans.c: Same.
1598         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
1599         VEC instead of VARRAY.
1600         * tree-vectorizer.h: Idem.
1601         * tree-data-ref.c (dump_data_references,
1602         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
1603         initialize_data_dependence_relation, finalize_ddr_dependent,
1604         compute_all_dependences, find_data_references_in_loop,
1605         compute_data_dependences_for_loop, analyze_all_data_dependences,
1606         free_dependence_relation, free_dependence_relations,
1607         free_data_refs): Idem.
1608         * tree-data-ref.h (data_reference_p, subscript_p): New.
1609         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
1610         VEC instead of VARRAY.
1611         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
1612         (find_data_references_in_loop, compute_data_dependences_for_loop,
1613         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
1614         dump_data_dependence_relations, free_dependence_relations,
1615         free_data_refs): Adjust declaration.
1616         (lambda_transform_legal_p): Move declaration here...
1617         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
1618         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
1619         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
1620         vect_analyze_data_refs): Use VEC instead of VARRAY.
1621         * lambda.h (lambda_transform_legal_p): ...from here.
1622         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
1623         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
1624         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
1625         tree-chrec.o): Don't depend on VARRAY_H.
1626
1627 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1628
1629         * rtl.def (Copyright): Update date.
1630         (DEPS_LIST): Change type of the second operand to 'int'.
1631         * target.h (Copyright): Update date.
1632         (struct gcc_target.speculate_insn): Change type of the second parameter
1633         to 'int'.
1634         * lists.c (Copyright): Update date.
1635         (alloc_DEPS_LIST): Change signature.  Update reference to the second
1636         operand of the DEPS_LIST.
1637         (copy_DEPS_LIST_list): Update reference to the second operand of the
1638         DEPS_LIST.
1639         * rtl.h (Copyright): Update date.
1640         (alloc_DEPS_LIST): Update signature.
1641         * sched-int.h (Copyright): Update date.
1642         (ds_t): Change typedef to 'int'.
1643         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
1644
1645 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1646
1647         * haifa-sched.c (Copyright): Update date.
1648         (try_ready): Change condition to restore non-speculative pattern
1649         of the instruction.
1650         (process_insn_depend_be_in_spec): Code to keep probability of the
1651         speculative dependence non-decreasing.
1652
1653 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1654
1655         * regrename.c (replace_oldest_value_addr): Initialize a variable to
1656         shut up the compiler.
1657
1658 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
1659
1660         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
1661         to use lib prefix for target.
1662         ($(T)libic_invalidate_array_4-200.a): Likewise.
1663         ($(T)libic_invalidate_array_4a.a): Likewise.
1664
1665 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
1666             J"orn Rennecke <joern.rennecke@st.com>
1667
1668         * superh.opt: New file.
1669         * sh.c (boardtype, osruntime): Remove.
1670         * superh.h (SUBTARGET_OPTIONS): Remove.
1671         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
1672
1673         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
1674         arguments with ^ and/or [].
1675
1676         * config.gcc (sh-*-*): Add quoting to account for quirk of
1677         Solaris /bin/sh.
1678         Replace == with = in enable_incomplete_targets test.
1679
1680         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
1681         with MASK_LITTLE_ENDIAN.
1682
1683         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
1684         * config/sh/sh.opt: Added to some comments.
1685         * config/sh/superh.h: Removed some chaff.
1686
1687         * config/sh/sh.opt: Add m4-[1234]00* options.
1688         * config/sh/sh.c (sh_handle_option): Likewise.
1689         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
1690         (ic_invalidate_array_4-100.o): New rule.
1691         ($(T)libic_invalidate_array_4-100.a): Likewise.
1692         (ic_invalidate_array_4-200.o): Likewise.
1693         ($(T)libic_invalidate_array_4-200.a): Likewise.
1694         (ic_invalidate_array_4a.o): Likewise.
1695         ($(T)libic_invalidate_array_4a.a): Likewise.
1696         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
1697         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
1698         m4-200*, and m4a*.
1699         * config/sh/crt1.asm: Merged in profiling code.
1700         * config/sh/superh.h (STARTFILE_SPEC): Override.
1701         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
1702         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
1703         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
1704
1705         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
1706         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
1707         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
1708
1709         * sh.opt (mpretend-cmove): New option.
1710         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
1711         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
1712         (movsicc): Add TARGET_PRETEND_CMOVE code.
1713
1714 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1715
1716         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
1717         s390_class_max_nregs): New function prototypes.
1718         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
1719         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
1720         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
1721         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
1722
1723 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
1724
1725         * dwarf2out.c (add_location_or_const_value_attribute): Call
1726         tree_add_const_value_attribute if nothing else works.
1727         (reference_to_unused): New.
1728         (rtl_for_decl_init): Use reference_to_unused to decide whether
1729         to output an initializer.
1730
1731 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
1732
1733         PR target/26459
1734         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
1735         peephole removing spe frob_di_df_2.
1736
1737 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
1738
1739         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
1740         (subscript_dependence_tester_1): Declared.
1741         (print_dir_vectors, print_dist_vectors): New.
1742         (debug_data_dependence_relation): New.
1743         (dump_data_dependence_relation): Print more details.
1744         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
1745         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
1746         (save_dist_v, save_dir_v, add_outer_distances,
1747         build_classic_dist_vector_1): New.
1748         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
1749         Don't test for lambda_vector_lexico_pos.
1750         (same_access_functions, add_multivariate_self_dist,
1751         add_other_self_distances, dir_from_dist): New.
1752         (build_classic_dir_vector): Replace implementation almost identical to
1753         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
1754         dir_from_dist.
1755         (subscript_dependence_tester_1): New.
1756         (subscript_dependence_tester): Handle the lexicographically negative
1757         distance vectors by recomputing the dependence relation.
1758         (compute_affine_dependence): Remove parameter loop_nest_depth.
1759         (compute_self_dependence): Don't call compute_subscript_distance.
1760         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
1761         Add a parameter for the loop_nest.
1762         (find_loop_nest_1, find_loop_nest): New.
1763         (compute_data_dependences_for_loop): Compute the loop nest, and give
1764         up if the nest is not well formed.
1765         * tree-data-ref.h (loop_p): New.
1766         (struct data_dependence_relation): Replace size_vect field with
1767         loop_nest, a vec of loops.
1768         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
1769         (DDR_LOOP_NEST): New.
1770         (print_dir_vectors, print_dist_vectors,
1771         debug_data_dependence_relation): Declared.
1772         (index_in_loop_nest): New.
1773         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
1774         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
1775         distance.
1776
1777 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
1778
1779         * simplify-rtx.c (simplify_relational_operation): Call
1780         simplify_relational_operation_1 even if mode is VOIDmode.
1781
1782 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
1783
1784         PR tree-optimization/26804
1785         * tree.h (DECL_CALL_CLOBBERED): New macro.
1786         (tree_decl_common): Add call_clobbered_flag.
1787         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
1788         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
1789         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
1790         (mark_non_addressable): Ditto.
1791         * tree-ssa.c (verify_call_clobbered): New function.
1792         (verify_alias_info): Use it.
1793         * tree-pass.h (pass_reset_cc_flags): New prototype.
1794         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
1795         (reset_cc_flags): New function.
1796         * passes.c (init_optimization_passes): Call reset_cc_flags after
1797         initializing referenced_vars.
1798
1799 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
1800             Roger Sayle  <roger@eyesopen.com>
1801
1802         PR middle-end/26717
1803         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
1804         to 1.0 for non-real operands. Implement A / A optimization for
1805         complex operands.
1806
1807 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
1808
1809         * config/i386/i386.c (size_cost): Correct the comment for
1810         cost of storing fp registers.
1811         (i386_cost): Likewise.
1812         (i486_cost): Likewise.
1813         (pentium_cost): Likewise.
1814         (pentiumpro_cost): Likewise.
1815         (k6_cost): Likewise.
1816         (athlon_cost): Likewise.
1817         (k8_cost): Likewise.
1818         (pentium4_cost): Likewise.
1819         (nocona_cost): Likewise.
1820         (generic64_cost): Likewise.
1821         (generic32_cost): Likewise.
1822
1823 2006-03-24  Denis Chertykov  <denisc@overta.ru>
1824
1825         * config/avr/avr-protos.h (extra_constraint): Delete.
1826         (extra_constraint_Q): New declaration.
1827         * config/avr/constraints.md: New file.
1828         * config/avr/avr.md: Include it.
1829         (REG_X, REG_Y, REG_Z, REG_W): New constants.
1830         (TMP_REGNO, ZERO_REGNO): Likewise.
1831         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
1832         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
1833         (extra_constraint): Delete.
1834         (extra_constraint_Q): Test for memory constraint 'Q'.
1835         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
1836         (REG_CLASS_FROM_LETTER): Delete.
1837         (CONST_OK_FOR_LETTER_P): Delete.
1838         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1839         (EXTRA_CONSTRAINT): Delete.
1840         (TMP_REGNO): Delete.
1841         (ZERO_REGNO): Delete.
1842
1843 2006-03-24  Jeff Law  <law@redhat.com>
1844
1845         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
1846         directly.  Call mark_new_vars_to_rename slightly earlier.
1847
1848 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
1849
1850         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
1851         (is_cxx): Likewise.
1852         (gen_compile_unit_die): Use new language types for Objective-C and
1853         Objective-C++.
1854         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
1855         DW_LANG_C_plus_plus.
1856
1857         PR 26793
1858         * config/t-darwin (crt3.o): Work around bug 26840.
1859         * config/darwin-crt3.c: Rewrite.
1860         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
1861
1862 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
1863
1864         * doc/invoke.texi: Document -femit-class-debug-always
1865         * common.opt: Add -femit-class-debug-always.
1866
1867 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1868
1869         * config/s390/s390.c (s390_decompose_address): Allow SImode for
1870         index and base register.
1871         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
1872         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
1873         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
1874         REGNO_OK_FOR_INDEX_P.
1875         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
1876         ADDR_REGNO_P.
1877         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
1878         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
1879         REG_OK_FOR_BASE_P): Definitions removed.
1880
1881 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
1882
1883         PR middle-end/26611
1884         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
1885         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
1886         set yet or weren't marked as local yet.
1887
1888 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1889
1890         * regrename.c (scan_rtx_address): Initialize a variable to shut up
1891         the compiler.
1892
1893 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
1894
1895         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
1896         (rs6000_legitimate_small_data_p): Delete.
1897         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
1898         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
1899         and make static.  Add forward declaration.  Update uses.
1900         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
1901         of offsettable_memref_p.
1902         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
1903         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
1904
1905 2006-03-24  Jeff Law  <law@redhat.com>
1906
1907         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
1908         around bug in immediate-use iterator.
1909
1910 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
1911
1912         PR target/26607
1913         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
1914         or __LITTLE_ENDIAN__.
1915
1916 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
1917
1918         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
1919         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
1920         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
1921         * config/sh/sh.opt (mdiv=): Amend description.
1922         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
1923         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
1924         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
1925         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
1926         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
1927         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
1928         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
1929         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
1930         TARGET_DIVIDE_CALL_FP.
1931
1932 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1933
1934         * haifa-sched.c (choose_ready): Fix type of the local variable.
1935         Move local variables.  Add comment.
1936         (check_reg_live): Change signature.  Make callable from debugger.
1937         * sched-int.h (check_reg_live): Update signature.
1938         * sched-ebb.c (check_reg_live): Update parameters.
1939         * sched-rgn.c (check_reg_live): Ditto.
1940         (region_head_or_leaf_p): Check pointer before dereferencing.
1941         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
1942         before reload on optimization levels below 1.
1943
1944 2006-03-23  Richard Henderson  <rth@redhat.com>
1945
1946         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
1947         tls symbols.
1948
1949         PR target/26347
1950         * config/alpha/predicates.md (local_symbolic_operand): Reject
1951         weak symbols.
1952
1953 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
1954
1955         PR tree-opt/26795
1956         * tree-ssa-pre.c (create_value_expr_from): Don't reject
1957         expressions which have overflowed constants.
1958
1959 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
1960
1961         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
1962
1963 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
1964
1965         * cfgloopmanip.c (create_loop_notes): Removed.
1966         * final.c (final_scan_insn): Do not handle loop notes.
1967         * jump.c (squeeze_notes): Ditto.
1968         * cfglayout.c (skip_insns_after_block,
1969         duplicate_insn_chain): Ditto.
1970         * cfgcleanup.c (rest_of_handle_jump2): Do not call
1971         create_loop_notes.
1972         * cfgloop.h (create_loop_notes): Declaration removed.
1973
1974 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
1975
1976         * varasm.c (output_constant_pool): Restore fnname and fndecl
1977         arguments.
1978         (assemble_start_function): Adjust call accordingly.
1979         (assemble_end_function): Likewise.
1980
1981 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1982
1983         PR mudflap/26789
1984         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
1985
1986         PR mudflap/26790
1987         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
1988
1989 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1990
1991         PR driver/22600
1992         * system.h (ICE_EXIT_CODE): New macro.
1993         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
1994         (diagnostic_action_after_output): Likewise.
1995         * gcc.c (fatal_ice): New function.
1996         (execute): Use it instead of fatal.
1997         (fancy_abort): Likewise.
1998         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
1999
2000 2006-03-22  Jeff Law  <law@redhat.com>
2001
2002         * loop-unroll.c (analyze_iv_to_split_insn): Handle
2003         iv_analyze_result returning false.
2004
2005 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
2006
2007         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
2008
2009 2006-03-22  Richard Henderson  <rth@redhat.com>
2010
2011         PR middle-end/26084
2012         * except.c (duplicate_eh_regions_0): New.
2013         (duplicate_eh_region_1): Duplicate the children of the node as
2014         well as the node itself.  Link them up properly.
2015         (duplicate_eh_region_2): Merge into ...
2016         (duplicate_eh_regions): ... here.  Take copy_region argument, and
2017         copy only a sub-tree if asked.  Simplify copying and fixup.
2018         (eh_region_outer_p): New.
2019         * except.h (duplicate_eh_regions): Update decl.
2020         (eh_region_outer_p): Declare.
2021         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
2022         (lower_omp_master): Likewise.
2023         (lower_omp_ordered): Likewise.
2024         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
2025         (move_stmt_r): Use it to remap labels.  Handle recursion vs
2026         remap_decls_p properly.
2027         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
2028         (find_outermost_region_in_block): New.
2029         (new_label_mapper): New.
2030         (move_sese_region_to_fn): Copy eh information to the new function
2031         properly.
2032         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
2033         argument.
2034         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
2035         number.
2036
2037 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
2038
2039         * doc/md.texi (-mshared): Mention that -mshared code can be linked
2040         into shared libraries.
2041
2042 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
2043
2044         * doc/md.texi: Refer to i386/constraints.md instead of
2045         i386/predicates.md.
2046         * config/i386/constraints.md: New file, extracted from...
2047         * config/i386/predicates.md: ...here.
2048         * config/i386/i386.md: Include constraints.md.
2049
2050 2006-03-21  Jason Merrill  <jason@redhat.com>
2051
2052         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
2053
2054         PR middle-end/20297
2055         * expr.c (init_block_move_fn): Force default visibility.
2056         (init_block_clear_fn): Likewise.
2057         * builtins.c (expand_builtin_fork_or_exec): Likewise.
2058         * targhooks.c (default_external_stack_protect_fail): Likewise.
2059
2060 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
2061
2062         * config/mips/predicates.md (const_call_insn_operand): Allow direct
2063         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
2064         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
2065         Use TARGET_OLDABI instead of !TARGET_NEWABI.
2066         (loadgp): Use mips_current_loadgp_style.
2067         (loadgp_noshared): New pattern.
2068         (sibcall_internal): Use MIPS_CALL.
2069         (sibcall_value_internal): Likewise.
2070         (sibcall_value_multiple_internal): Likewise.
2071         (call_internal): Likewise.
2072         (call_value_internal): Likewise.
2073         (call_value_multiple_internal): Likewise.
2074         (call_split): Use MIPS_CALL and add an 'S' constraint.
2075         (call_value_split): Likewise.
2076         (call_value_multiple_split): Likewise.
2077         * config/mips/mips.opt (-mabicalls): Tweak docstring.
2078         (-mshared): New option.
2079         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
2080         (mips_current_loadgp_style): Declare.
2081         * config/mips/mips.c (mips_classify_symbol): Avoid using
2082         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
2083         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
2084         TARGET_ABSOLUTE_ABICALLS.
2085         (override_options): Adjust comments.  Improve the warning that is
2086         issued when -mabicalls and -G are used together.
2087         (mips_file_start): Remove comment.
2088         (mips_current_loadgp_style): New function.
2089         (mips_gnu_local_gp): New variable.
2090         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
2091         LOADGP_ABSOLUTE.
2092         (mips_output_function_prologue): Use mips_current_laodgp_style.
2093         (mips_expand_prologue): Call mips_emit_loadgp before emitting
2094         the cprestore instruction.
2095         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
2096         live for TARGET_ABSOLUTE_ABICALLS.
2097         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
2098         (ASM_SPEC): Pass down -mshared and -mno-shared.
2099         (MIPS_CALL): New macro.
2100         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
2101         definition.
2102         * doc/invoke.texi (-mabicalls): Update documentation.
2103         (-mshared): Document.
2104
2105 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
2106
2107         * config/ia64/unwind-hpux.c: New file.
2108         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
2109
2110 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
2111
2112         PR libgomp/26384
2113         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
2114
2115 2006-03-21  Jeff Law  <law@redhat.com>
2116
2117         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
2118         type conversions of a VR_VARYING source to a wider type.
2119
2120 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2121
2122         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
2123         tm_file on Solaris 10 and later.
2124         (sparc64-*-solaris2*): Likewise.
2125         (sparc-*-solaris2*): Likewise.
2126         * config/sol26.h: Rename to config/sol2-6.h.
2127         * config/sol2-10.h: New file.
2128
2129 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
2130
2131         PR tree-opt/26781
2132         * tree-ssa-pre.c (create_component_ref_by_pieces):
2133         Handle STRING_CST.
2134
2135 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
2136
2137         PR c++/26690
2138         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
2139         return it immediately.
2140
2141 2006-03-21  Michael Matz  <matz@suse.de>
2142
2143         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
2144         New members.
2145         (remove_arc, add_arc): Update num_out_arcs member.
2146         (set_out_arc_insns_equiv_num): Returns nothing instead of number
2147         of out arcs.
2148         (cache_presence): New function.
2149         (compare_states_for_equiv): New function.
2150         (state_is_differed): Don't take number of outargs, adjust callers.
2151         Use new invariant for speeding up.
2152         (init_equiv_class): Create initial classes based on sorted
2153         input.
2154         (partition_equiv_class): Don't track out_arcs_num.
2155         (evaluate_equiv_classes): Call cache_presence on all states and
2156         sort them.
2157
2158 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
2159
2160         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
2161         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
2162         (bfin_valid_reg_p): Test for pseudos explicitly and use only
2163         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
2164         callers changed.
2165         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
2166         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
2167         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
2168         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
2169         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
2170         macros.
2171         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
2172         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
2173         (REGNO_REG_CLASS): ARGP is in PREGS.
2174         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
2175         IREGS.
2176         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
2177         to deal with those addresses.
2178         * addresses.h: New file.
2179         * caller-save.c: Include "addresses.h".
2180         (init_caller_save): Use new base_reg_class function.
2181         * rtl-factoring.c: Include "addresses.h".
2182         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
2183         * recog.c: Include "addresses.h".
2184         (preprocess_constraints): Use new base_reg_class function.
2185         * regrename.c: Include "addresses.h".
2186         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
2187         functions.  Keep track of a new var INDEX_CODE to compute valid
2188         classes.
2189         (replace_oldest_value_addr): Likewise.
2190         (replace_oldest_value_mem): Use base_reg_class.
2191         * reload.c: Include "addresses.h".
2192         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
2193         (find_reloads): Use new base_reg_class function.
2194         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
2195         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
2196         all callers and prototype changed.
2197         * reload1.c: Include "addresses.h".
2198         (maybe_fix_stack_asms): Use base_reg_class.
2199         * regclass.c: Include "addresses.h".
2200         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
2201         (init_reg_autoinc): Use new base_reg_class function.
2202         (record_reg_classes): Likewise.
2203         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
2204         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
2205         Use new args to compute necessary class.
2206
2207         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
2208         regrename.o, rtl-factoring.o): Update dependencies.
2209         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
2210         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
2211         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
2212         REG_OK_FOR_INDEX_P): Delete documentation.
2213
2214 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
2215
2216         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
2217         from V7 to V9 for Solaris 7 and above.
2218
2219 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
2220
2221         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
2222         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
2223         argument pointers may not alias any other storage.
2224         * common.opt: Define option -fargument-noalias-anything.
2225         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
2226         alias semantics is specified by flag_argument_noalias > 2.
2227
2228 2006-03-20  Jeff Law  <law@redhat.com>
2229
2230         * tree-pass.h (pass_phi_only_copy_prop): Delete.
2231         (pass_phi_only_cprop): Declare.
2232         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
2233         with phi_only_cprop
2234         * tree-ssa-dom.c (degenerate_phi_result): New function.
2235         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
2236         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
2237         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
2238         (eliminate_degenerate_phis): Likewise.
2239         (pass_phi_only_cprop): New pass descriptor.
2240         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
2241         support code.  Callers updated.
2242         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
2243         (store_copy_prop): Likewise.
2244         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
2245
2246 2006-03-20  Jason Merrill  <jason@redhat.com>
2247
2248         PR c++/21764
2249         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
2250         (push_visibility, pop_visibility): Likewise.
2251         * c-pragma.h: Declare them.
2252
2253 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2254
2255         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
2256
2257         * config/sh/sh.c (find_regmode_weight): Change the type of the first
2258         parameter and use get_ebb_head_tail.
2259         (sh_md_init_global): Adjust uses of find_regmode_weight.
2260
2261 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
2262
2263         * function.h (struct function) <x_tail_recursion_reentry>:
2264         Rename to x_stack_check_probe_note.
2265         (tail_recursion_reentry): Rename to stack_check_probe_note.
2266         * function.c: Replace tail_recursion_reentry with
2267         stack_check_probe_note everywhere.
2268         (expand_function_start): Only emit a note for
2269         stack_check_probe_note with -fstack-protect.
2270         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
2271
2272         * emit-rtl.c (remove_unnecessary_notes): Remove.
2273         (pass_remove_unnecessary_notes): Remove.
2274         * rtl.h (remove_unnecessary_notes): Remove prototype.
2275         * final.c (final_start_function): Don't call remove_unnecessary_notes.
2276         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
2277         * passes.c (pass_remove_unnecessary_notes): Don't run it.
2278
2279 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
2280
2281         PR tree-opt/26629
2282         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
2283         (valid_in_set): Handle ARRAY_REF.
2284         Change "if min_variant or VH" to asserts.
2285         (create_component_ref_by_pieces): Handle ARRAY_REF.
2286         (create_expression_by_pieces): Likewise.
2287         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
2288
2289 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
2290
2291         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
2292         is operand of switch, not str[0].
2293
2294 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
2295
2296         * config/rs6000/rs6000.c (rs6000_handle_option): Use
2297         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
2298
2299 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
2300
2301         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
2302         end of insn_extra_address_constraint declaration.
2303
2304 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
2305
2306         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
2307         (no-sum-in-toc): Same.
2308         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
2309         variables.
2310         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
2311         NO_FP_IN_TOC for -fPIC instead of mask.
2312
2313         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
2314         (BOOT_LDFLAGS): Delete.
2315         (LDFLAGS): Delete.
2316         * config/rs6000/t-aix52: Same.
2317
2318         * config/rs6000/rs6000.md (store_multiple_power): Delete.
2319         (stmsi[345678]_power): New.
2320
2321 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
2322
2323         * config/ia64/ia64.opt: Add empty line to end of file.
2324
2325 2006-03-17  Richard Guenther  <rguenther@suse.de>
2326
2327         PR middle-end/26721
2328         * builtins.c (get_pointer_alignment): For component style references
2329         adjust alignment to the component type alignment.  Make sure
2330         to adjust alignment for component access of constants.
2331
2332 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
2333
2334         * config/rs6000/rs6000.md (strlensi): Emit barrier after
2335         unconditional jump.
2336
2337 2006-03-17  Paul Brook  <paul@codesourcery.com>
2338
2339         * doc/install.texi: Docuemnt --with-mode.
2340         * config.gcc: Add --with-mode for arm*-*-*.
2341         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
2342
2343 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
2344
2345         * sh.c (max_labelno_before_reorg): New variable.
2346         (sh_reorg): Initialize it.
2347         (find_barrier): Check max_labelno_before_reorg before using
2348         label_to_alignment.  Take length of explicit alignment insns
2349         into account.  When seeing a UNSPECV_CONST_END, return it.
2350
2351         * sh.c (fixup_mova): Set mode of affected label to QImode.
2352         (untangle_mova): New function.
2353         (find_barrier): Use it.  Check mode of label before decrementing
2354         num_mova.
2355         (sh_reorg): Likewise.
2356         Set mode of all insns back to VOIDmode.
2357
2358         * sh.c (MOVA_LABELREF): New macro.
2359         (mova_p, fixup_mova, sh_reorg): Use it.
2360         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
2361         ADDR_DIFF_VEC matches mova.
2362
2363 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
2364
2365         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
2366         with ATTRIBUTE_UNUSED.
2367
2368 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
2369
2370         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
2371         pointer, instead of assuming it is possible to derive the
2372         correct args size from a call insn.
2373
2374 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2375
2376         * rtl.h (CONST_INT_P): Define.
2377         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
2378         instead of GET_CODE(x) == CONST_INT.
2379         (vax_rtx_costs): Likewise.
2380         (vax_output_int_move): Likewise.
2381         (vax_output_int_add): Likewise.
2382         (legitimate_constant_address_p): Likewise.
2383         (index_term_p): Likewise.
2384         * config/vax/vax.h (PRINT_OPERAND): Likewise.
2385         * config/vax/vax.md (and<mode>3): Likewise.
2386         (ashrsi3): Likewise.
2387         (extv): Likewise.
2388         (movstricthi): Likewise.
2389         (movstrictqi): Likewise.
2390         (rotrsi3): Likewise.
2391         (five unnamed insns): Likewise.
2392
2393 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
2394
2395         * doc/tm.texi (SDB and DWARF): Add extra parameter to
2396         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
2397         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
2398         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
2399         Pass to ASM_OUTPUT_DWARF_OFFSET.
2400         * dwarf2out.c (debug_frame_section): New.
2401         (output_call_frame_info): Use debug_frame_section.  Pass it to
2402         dw2_asm_output_offset.
2403         (output_die): Pass appropriate section to dw2_asm_output_offset.
2404         (output_compilation_unit_header): Likewise.
2405         (output_pubnames): Likewise.
2406         (output_aranges): Likewise.
2407         (enum dw_val_class): Break dw_val_class_lbl_offset into
2408         dw_val_class_lineptr and dw_val_class_macptr.
2409         (add_AT_lbl_offset): Delete.
2410         (add_AT_lineptr): New.
2411         (add_AT_macptr): New.
2412         (AT_lbl): Expect a lineptr or macptr.
2413         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
2414         (attr_checksum): Likewise.
2415         (same_dw_val_p): Likewise.
2416         (size_of_die): Likewise.
2417         (value_format): Likewise.
2418         (output_die): Likewise.
2419         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
2420         add_AT_lbl_offset.
2421         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
2422         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
2423         * config/darwin-protos.h (darwin_file_start): New.
2424         (darwin_asm_output_dwarf_offset): New.
2425         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
2426         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
2427         darwin_file_start.
2428         * config/darwin.c (darwin_emit_unwind_label): Don't output label
2429         if not EH section; simplify.
2430         (darwin_file_start): New.
2431         (darwin_asm_output_dwarf_offset): New.
2432         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
2433         mark as 'debug'.
2434         (DEBUG_INFO_SECTION): Likewise.
2435         (DEBUG_ABBREV_SECTION): Likewise.
2436         (DEBUG_ARANGES_SECTION): Likewise.
2437         (DEBUG_MACINFO_SECTION): Likewise.
2438         (DEBUG_LINE_SECTION): Likewise.
2439         (DEBUG_LOC_SECTION): Likewise.
2440         (DEBUG_PUBNAMES_SECTION): Likewise.
2441         (DEBUG_STR_SECTION): Likewise.
2442         (DEBUG_RANGES_SECTION): Likewise.
2443         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
2444         (ASM_OUTPUT_DWARF_OFFSET): New.
2445
2446 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
2447
2448         * config.gcc (tm_defines): Always add to previous value rather
2449         than replacing it.
2450
2451 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
2452
2453         * config/mips/predicates.md (splittable_const_int_operand): New,
2454         split from move_operand.
2455         (splittable_symbolic_operand): New.
2456         (move_operand): Add commentary.  Use splittable_const_int_operand.
2457         Inline mips_atomic_symbolic_constant_p.
2458         * config/mips/mips.md: Add combine splitters for handling moves
2459         of splittable_const_int_operands and splittable_symbolic_operands.
2460         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
2461         (mips_split_symbol): Declare.
2462         (mips_move_integer): Declare.
2463         * config/mips/mips.c (mips_split_p): Make global.
2464         (TARGET_MIN_ANCHOR_OFFSET): Override default.
2465         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
2466         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
2467         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
2468         (mips_offset_within_object_p): Handle block symbols.
2469         (mips_atomic_symbolic_constant_p): Delete.
2470         (mips_cannot_force_const_mem): Return false for constants that
2471         mips_legitimize_move can handle.
2472         (mips_use_blocks_for_constant_p): New function.
2473         (mips_split_symbol): Make global.
2474         (mips_move_integer): Likewise.  Add a temporary register argument.
2475         (mips_legitimize_const_move): Use splittable_const_int_operand and
2476         splittable_symbolic_operand.
2477         (mips_use_anchors_for_symbol_p): New function.
2478         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
2479         (mips_split_p): Declare.
2480
2481 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
2482
2483         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
2484         (mips*-*-linux*): Likewise.
2485
2486 2006-03-16  Roger Sayle  <roger@eyesopen.com>
2487             Daniel Speyer  <dspeyer@wam.umd.edu>
2488
2489         PR middle-end/18259
2490         * tree-dump.c (dump_real): New function.
2491         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
2492         * Makefile.in (REAL_H): New macro for dependencies on real.h.
2493         (tree-dump.o): Add $(REAL_H) to the dependencies.
2494
2495 2006-03-16  Roger Sayle  <roger@eyesopen.com>
2496
2497         PR middle-end/21781
2498         * real.c (real_from_string): If the mantissa is zero, don't bother
2499         parsing the exponent as the result should always be zero.
2500
2501 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
2502
2503         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
2504
2505 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2506
2507         * config/ia64/ia64.c (stops_p): Added explicit initialization.
2508         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
2509         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
2510         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
2511         ia64_sched_finish_global): New static functions to implement
2512         hooks from gcc_target.sched.
2513         (spec_check_no, max_uid, pending_data_specs): New static variables.
2514         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
2515         ia64_spec_check_src_p): New static functions.
2516         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
2517         (TARGET_SCHED_ADJUST_COST): Removed.
2518         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
2519         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
2520         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
2521         TARGET_SCHED_GEN_CHECK,
2522         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
2523         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
2524         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
2525         Fixed to handle speculation checks.
2526         (rtx_needs_barrier): Fixed to handle speculative loads and
2527         their checks.
2528         (ia64_variable_issue): Added code to count speculative loads and their
2529         checks.
2530         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
2531         speculative loads.
2532         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
2533         New enumerations.
2534         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
2535         New constants.
2536         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
2537         (ia64_reorg): Reset stops_p to NULL after it is freed.
2538         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
2539         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
2540         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
2541         chk_a.
2542         (data_speculative, control_speculative, check_load): New attributes.
2543         (mov<mode>_advanced, mov<mode>_speculative,
2544         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
2545         zero_extend<mode>di2_speculative,
2546         zero_extend<mode>di2_speculative_advanced): New patterns for
2547         data and control speculative loads.
2548         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
2549         check loads.
2550         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
2551         New pattern for data and control speculation checks.
2552         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
2553         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
2554         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
2555         Auxiliary definitions for the patterns.
2556         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
2557         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
2558         constraints.
2559         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
2560         for speculation.
2561         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
2562         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
2563         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
2564         New resource constraints.
2565         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
2566         for speculation.
2567         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
2568         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
2569         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
2570         msched-in-control-spec, msched-ldc, msched-control-ldc,
2571         msched-spec-verbose, msched-prefer-non-data-spec-insns,
2572         msched-prefer-non-control-spec-insns,
2573         msched-count-spec-in-critical-path): New flags to tune speculative
2574         scheduling.
2575         * doc/invoke.texi (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): Document new flags.
2581
2582 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2583
2584         * target.h (struct spec_info_def): New opaque declaration.
2585         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
2586         speculate_insn, needs_block_p, gen_check,
2587         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
2588         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
2589         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
2590         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
2591         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
2592         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
2593         gcc_target.sched.
2594         (TARGET_SCHED): Use new macros.
2595         * rtl.h (copy_DEPS_LIST_list): New prototype.
2596         * sched-int.h (struct sched_info): Change signature of new_ready field,
2597         adjust all initializations. New fields: add_remove_insn,
2598         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
2599         region_head_or_leaf_p.
2600         (struct spec_info_def): New structure declaration.
2601         (spec_info_t): New typedef.
2602         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
2603         recovery_block, orig_pat.
2604         (glat_start, glat_end): New variables declaraions.
2605         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
2606         New access macros.
2607         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
2608         DETACH_LIFE_INFO, USE_GLAT.
2609         (enum SPEC_SCHED_FLAGS): New enumeration.
2610         (NOTE_NOTE_BB_P): New macro.
2611         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
2612         attach_life_info, debug_spec_status, check_reg_live): New functions.
2613         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
2614         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
2615         sched-ebb.c
2616         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
2617         * ddg.c (get_block_head_tail): Adjust all uses.
2618         * modulo-sched.c (get_block_head_tail): Adjust all uses.
2619         (sms_sched_info): Initialize new fields.
2620         (contributes_to_priority): Removed.
2621         * haifa-sched.c (params.h): New include.
2622         (get_block_head_tail): Adjust all uses.
2623         (ISSUE_POINTS): New macro.
2624         (glat_start, glat_end): New global variables.
2625         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
2626         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
2627         old_last_basic_block, before_recovery, current_sched_info_var,
2628         rgn_n_insns, luid): New static variables.
2629         (insn_cost1): New function.  Move logic from insn_cost to here.
2630         (find_insn_reg_weight1): New function.  Move logic from
2631         find_insn_reg_weight to here.
2632         (reemit_notes, move_insn, max_issue): Change signature.
2633         (move_insn1): Removed.
2634         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
2635         extend_bb): New static functions to support extension of scheduler's
2636         data structures.
2637         (generate_recovery_code, process_insn_depend_be_in_spec,
2638         begin_speculative_block, add_to_speculative_block,
2639         init_before_recovery, create_recovery_block, create_check_block_twin,
2640         fix_recovery_deps): New static functions to support
2641         generation of recovery code.
2642         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
2643         restore_bb_notes, move_block_after_check, move_succs): New static
2644         functions to support ebb scheduling.
2645         (init_glat, init_glat1, attach_life_info1, free_glat): New static
2646         functions to support handling of register live information.
2647         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
2648         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
2649         add_jump_dependencies): New static functions.
2650         (check_cfg, has_edge_p, check_sched_flags): New static functions for
2651         consistancy checking.
2652         (debug_spec_status): New function to call from debugger.
2653         (priority): Added code to handle speculation checks.
2654         (rank_for_schedule): Added code to distinguish speculative instructions.
2655         (schedule_insn): Added code to handle speculation checks.
2656         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
2657         Fixed to handle ebbs.
2658         (move_insn): Added code to handle ebb scheduling.
2659         (max_issue): Added code to use ISSUE_POINTS of instructions.
2660         (choose_ready): Added code to choose between speculative and
2661         non-speculative instructions.
2662         (schedule_block): Added code to handle ebb scheduling and scheduling of
2663         speculative instructions.
2664         (sched_init): Initialize new variables.
2665         (sched_finish): Free new variables.  Print statistics.
2666         (try_ready): Added code to handle speculative instructions.
2667         * lists.c (copy_DEPS_LIST_list): New function.
2668         * sched-deps.c (extend_dependency_caches): New function.  Move logic
2669         from create_dependency_caches to here.
2670         (get_dep_weak, ds_merge): Make global.
2671         * genattr.c (main): Code to output prototype for
2672         dfa_clear_single_insn_cache.
2673         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
2674         (output_dfa_clean_insn_cache_func): Code to output
2675         dfa_clear_single_insn_cache function.
2676         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
2677         n_insns.
2678         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
2679         Removed.
2680         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
2681         New static variables.
2682         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
2683         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
2684         struct sched_info.
2685         (ebb_sched_info): Initialize new fields.
2686         (get_block_head_tail): Adjust all uses.
2687         (compute_jump_reg_dependencies): Fixed to use glat_start.
2688         (schedule_ebb): Code to remove unreachable last block.
2689         (schedule_ebbs): Added code to update register live information.
2690         * sched-rgn.c (region_sched_info): Initialize new fields.
2691         (get_block_head_tail): Adjust all uses.
2692         (last_was_jump): Removed.  Adjust users.
2693         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
2694         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
2695         Implement new hooks.
2696         (check_dead_notes1): New static function.
2697         (struct region): New fields: dont_calc_deps, has_real_ebb.
2698         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
2699         (BB_TO_BLOCK): Fixed to handle EBBs.
2700         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
2701         (ebb_head): New static variable.
2702         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
2703         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
2704         new fields.
2705         (compute_dom_prob_ps): New assertion.
2706         (check_live_1, update_live_1): Fixed to work with glat_start instead of
2707         global_live_at_start.
2708         (init_ready_list): New assertions.
2709         (can_schedule_ready_p): Split update code to begin_schedule_ready.
2710         (new_ready): Add support for BEGIN_CONTROL speculation.
2711         (schedule_insns): Fixed code that updates register live information
2712         to handle EBBs.
2713         (schedule_region): Fixed to handle EBBs.
2714         (init_regions): Use extend_regions and check_dead_notes1.
2715         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
2716         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
2717         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
2718         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
2719         TARGET_SCHED_GEN_CHECK,
2720         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
2721         TARGET_SCHED_SET_SCHED_FLAGS): Document.
2722         * doc/invoke.texi (max-sched-insn-conflict-delay,
2723         sched-spec-prob-cutoff): Document.
2724
2725 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2726
2727         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
2728         inter_tick, queue_index.
2729         (struct sched_info): Change signature of init_ready_list field.
2730         Adjust all initializations.
2731         (RESOLVED_DEPS): New access macro.
2732         (ready_add): Remove prototype.
2733         (try_ready): Add prototype.
2734         * sched-rgn.c (init_ready_list): Use try_ready.
2735         (schedule_region): Initialize
2736         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
2737         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
2738         (init_ready_list): Use try_ready.
2739         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
2740         * lists.c (remove_list_elem): Remove `static'.
2741         (remove_free_INSN_LIST_elem): New function.
2742         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
2743         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
2744         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
2745         New constants.
2746         (readyp): New variable.
2747         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
2748         change_queue_index, resolve_dep): New static functions.
2749         (try_ready): New function.  Adjust callers in sched-rgn.c and
2750         sched-ebb.c to use it instead of ready_add.
2751         (clock_var): Move at the begining of file.
2752         (rank_for_schedule): Fix typo.
2753         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
2754         (ready_lastpos): Enforce assertion.
2755         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
2756         update all callers.
2757         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
2758         (schedule_insn): Rewrite to use try_ready and resolve_dep.
2759         (queue_to_ready): Use free_INSN_LIST_list.
2760         (early_queue_to_ready): Fix typo.
2761         (schedule_block): Init readyp.  Move init_ready_list call after the
2762         initialization of clock_var.  Fix error in rejecting insn by
2763         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
2764         that previously corrected INSN_TICKs.  Add code for handling
2765         QUEUE_INDEX.
2766         (set_priorities): Fix typo.
2767         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
2768         Clarify comment and code that keeps current_sched_info->next_tail
2769         non-null.
2770
2771 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2772
2773         * sched-rgn.c (extend_rgns): New static function.
2774         (find_rgns): Use it.
2775         (gather_region_statistics, print_region_statistics): New static
2776         functions.
2777         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
2778         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
2779
2780 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2781             Andrey Belevantsev <abel@ispras.ru>
2782
2783         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
2784         * lists.c (unused_deps_list): New variable.
2785         (free_list): Add assertions to verify the proper distinguishing
2786         between INSN_LISTs and DEPS_LISTs.
2787         (find_list_elem, remove_list_elem, remove_list_node): New static
2788         functions.
2789         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
2790         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
2791         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
2792         (alloc_INSN_LIST): Assert that the list we're working on is indeed
2793         an INSN_LIST.
2794         (free_INSN_LIST_node): Likewise.
2795         * modulo-sched.c (current_sched_info): Initialize flags field.
2796         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
2797         * rtl.def (DEPS_LIST): Define.
2798         * rtl.h: Declare new functions from lists.c.
2799         * sched-deps.c (spec_dependency_cache): New static variable.
2800         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
2801         (add_dependence): Change return type to void.  Move the logic to ...
2802         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
2803         (delete_all_dependences): Add comment about forward_dependency_cache.
2804         Handle spec_dependency_cache.  Handle DEPS_LISTs.
2805         (fixup_sched_groups): Clarify the change of priority of output
2806         and anti dependencies.
2807         (sched_analyze_2): Adjust add_dependence calls to create data
2808         speculative dependence.
2809         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
2810         Adjust all callers.  Handle DEPS_LISTS.
2811         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
2812         presence of speculation.
2813         (init_dependency_caches, free_dependency_caches):
2814         Handle spec_dependency_cache.
2815         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
2816         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
2817         New static functions.
2818         (add_or_update_back_dep, add_or_update_back_forw_dep,
2819         add_back_forw_dep, delete_back_forw_dep): New functions.
2820         * sched-int.h (ds_t, dw_t): New typedefs.
2821         (struct sched_info): Add new field flags.
2822         (struct haifa_insn_data): Add new bitfield has_internal_dep.
2823         Prototype new sched-deps.c functions.
2824         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
2825         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
2826         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
2827         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
2828         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
2829         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
2830         New constants.
2831         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
2832         New enums.
2833         * sched-rgn.c (current_sched_info): Initialize flags field.
2834         (schedule_insns): Initialize current_sched_info before the sched_init
2835         call.
2836         * sched-ebb.c (current_sched_info): Initialize flags field.
2837         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
2838         Call add_or_update_back_dep instead of add_dependence.
2839         Create control speculative dependencies.
2840         (schedule_insns): Initialize current_sched_info before the sched_init
2841         call.
2842
2843 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2844
2845         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
2846         fs->signal_frame.
2847         (sh_fallback_frame_state): Likewise.
2848
2849 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
2850
2851         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
2852         Do switch on default_use_cxa_atexit.
2853         (powerpc*-*-darwin*): Build crt2.o on powerpc.
2854         * config/darwin-crt3.o: New.
2855         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
2856         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
2857         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
2858         OS version.
2859         * config/rs6000/t-darwin: Move crt2.o building to here.
2860         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
2861         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
2862         of __cxa_atexit.
2863
2864 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2865
2866         * config/vax/vax.c (nonindexed_address_p): Change logical negation
2867         from '! xxx' to '!xxx' for coding-style conformance.
2868         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
2869         (EXTRA_CONSTRAINT): Likewise.
2870         * config/vax/vax.md (four unnamed insns): Likewise.
2871
2872 2006-03-15  Paul Brook  <paul@codesourcery.com>
2873
2874         * config/arm/arm.c (minipool_pad): New.
2875         (add_minipool_forward_ref): Include pool alignment padding in address
2876         calculation.
2877         (push_minipool_fix): Set minipool_pad.
2878         (minipool_pad): Ditto.
2879
2880 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2881
2882         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
2883         instead of GET_CODE() == MEM and REG_P() instead of
2884         GET_CODE() == REG.
2885         (print_operand_address): Likewise.
2886         (vax_address_cost): Likewise.
2887         (vax_rtx_costs): Likewise.
2888         (vax_notice_update_cc): Likewise.
2889         (vax_output_int_add): Likewise.
2890         (INDEX_REGISTER_P): Likewise.
2891         (BASE_REGISTER_P): Likewise.
2892         (nonindexed_address_p): Likewise.
2893         (vax_mode_dependent_address_p): Likewise.
2894         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
2895         (PRINT_OPERAND): Likewise.
2896         * config/vax/vax.md (ashlsi3): Likewise.
2897         (ashlsi3): Likewise.
2898         (some more unnamed insns): Likewise.
2899
2900 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
2901
2902         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
2903         iterator-style macro.
2904         (mark_control_dependent_edges_necessary): Update the use of
2905         EXECUTE_IF_CONTROL_DEPENDENT.
2906
2907 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
2908
2909         * config/sh/predicates.md (cache_address_operand): Special.
2910         (ua_address_operand): Likewise.
2911
2912 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
2913
2914         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
2915         loop notes.
2916         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
2917
2918 2006-03-15  Andreas Schwab  <schwab@suse.de>
2919
2920         * gensupport.c (identify_predicable_attribute): Don't free p_false
2921         when it is still in use.
2922
2923 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
2924
2925         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
2926         the default setting here.
2927
2928 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
2929
2930         * tree-pass.h (pass_cfg): Remove.
2931         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
2932         * passes.c (pass_cfg): Don't run it.
2933
2934 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
2935
2936         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
2937         * reg-stack.c (stack_regs_mentioned_data): Change the type to
2938         VEC(char,heap) *.
2939         (stack_regs_mentioned): Update the uses of
2940         stack_regs_mentioned_data.  Don't access the array beyond its
2941         end.
2942         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
2943         Don't include gt-reg-stack.h.
2944
2945         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
2946         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
2947
2948         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
2949
2950         PR middle-end/26684
2951         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
2952         STACK_REGS.
2953
2954 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2955
2956         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
2957
2958 2006-03-14  Richard Guenther  <rguenther@suse.de>
2959
2960         PR tree-optimization/26672
2961         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
2962         SSA form.
2963
2964 2006-03-14  Richard Guenther  <rguenther@suse.de>
2965
2966         PR tree-optimization/26667
2967         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
2968         node for the callees.  Always allow inlining if it will shrink
2969         the function size.
2970
2971 2006-03-14  Richard Guenther  <rguenther@suse.de>
2972
2973         PR middle-end/26659
2974         * builtins.c (get_pointer_alignment): Prefer alignment
2975         information from decls over that from types.
2976
2977 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
2978
2979         PR target/26657
2980         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
2981
2982 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
2983
2984         * config/rs6000/rs6000.opt (mdlmzb): New option.
2985         (msched-prolog, msched-epilog): Use Var not Mask.
2986         * doc/invoke.texi (-mdlmzb): Document.
2987         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
2988         MASK_SCHED_PROLOG.
2989         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
2990         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
2991
2992 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
2993
2994         PR rtl-optimization/25739
2995         * bt-load.c (augment_live_range): Free tos pointer.
2996
2997         * gensupport.c (identify_predicable_attribute): Free
2998         p_false pointer.
2999         * gcov.c (create_file_names): Free name pointer.
3000
3001 2006-03-13  Roger Sayle  <roger@eyesopen.com>
3002
3003         PR middle-end/26557
3004         * stmt.c (emit_case_nodes): Handle the case where the index is a
3005         CONST_INT, where the comparison mode is specified by the index type.
3006
3007 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3008
3009         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
3010         is defined.
3011
3012 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
3013
3014         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
3015         (*branch_fp_inverted): Likewise.
3016
3017 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
3018
3019         PR middle-end/25989
3020         * omp-low.c (expand_omp_for_generic): Mark istart0
3021         and iend0 as addressable.
3022
3023 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
3024
3025         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
3026
3027 2006-03-13  Jeff Law  <law@redhat.com>
3028
3029         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
3030         virtual operands are interesting.
3031         (vrp_visit_stmt): Corresponding changes.
3032
3033 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
3034
3035         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
3036         of RETS.
3037         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
3038         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
3039         * config/bfin/crti.S: Use it instead of __PIC__.
3040         * config/bfin/crtn.S: Likewise.
3041
3042         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
3043         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
3044         not if flag_pic.
3045         Lose 'G' modifier for call operand.
3046         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
3047         recognize 'G' modifier.
3048
3049 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
3050
3051         PR middle-end/18859
3052         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
3053         * stmt.c (expand_case): Likewise.
3054
3055 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3056
3057         PR rtl-optimization/26254
3058         * loop-invariant.c (seq_insns_valid_p): New function.
3059         (move_invariant_reg): Only emit new code if it is valid.
3060
3061 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3062
3063         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
3064         Removed.
3065         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
3066         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
3067         (commit_one_edge_insertion): Do not look for loop notes.
3068
3069 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3070
3071         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
3072         flag_test_coverage out of loop.
3073
3074 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3075
3076         * final.c (shorten_branches): Remove outdated comment, and turn
3077         the if branch that guards it to continue.
3078
3079 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
3080
3081         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
3082         * cfgloop.h (struct loop): Remove unused fields.
3083
3084 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
3085
3086         * doc/invoke.texi (-fdump-rtl-loop): Remove.
3087         (-dL, -fdump-rtl-loop2): Update the dump file names
3088
3089         * doc/invoke.texi: Update dump file names.
3090
3091 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
3092
3093         * predict.c (estimate_probability): Remove.
3094         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
3095         * basic-block.h (estimate_probability): Remove prototype.
3096         * passes.c (finish_optimization_passes): Dump branch prediction or
3097         profiling heuristics to the .profile tree dump.
3098         (init_optimization_passes): Unqueue pass_branch_prob.
3099
3100         * doc/invoke.texi (-fdump-rtl-bp): Remove.
3101
3102 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
3103
3104         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
3105         * rtl.h (LABEL_NEXTREF): Remove field accessor.
3106
3107 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
3108
3109         * function.h (frame_offset_overflow): Declare.
3110         * function.c (frame_offset_overflow): New function.
3111         (assign_stack_local_1): Call it to detect that the offset overflows.
3112         * cfgexpand.c (alloc_stack_frame_space): Likewise.
3113
3114 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
3115
3116         * config/sh/sh.c: Include alloc-pool.h.
3117         (label_ref_list_pool): New alloc pool.
3118         (label_ref_list_t): New type for lists of labels.
3119         (struct pool_node): Make wend a label_ref_list_t.
3120         (add_constant): Use the new type, eradicate LABEL_NEXTREF
3121         references.
3122         (dump_table): Likewise.
3123         (sh_reorg): Set up the alloc pool before using add_constant and
3124         dump_table, and destroy it when finishing.
3125
3126 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
3127
3128         * config/mips/mips.c: Remove redundant comment.
3129
3130 2006-03-10  Jason Merrill  <jason@redhat.com>
3131
3132         PR c/26004
3133         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
3134         the target was declared 'register'.
3135
3136 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
3137
3138         * genpreds.c (write_insn_constraint_len): Change definition of
3139         insn_constraint_len to return size_t to match the declaration.
3140
3141 2006-03-10  DJ Delorie  <dj@redhat.com>
3142
3143         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
3144         start at zero.
3145         (m32c_expand_insv): Fix test for an AND mask.
3146
3147 2006-03-10  Richard Guenther  <rguenther@suse.de>
3148
3149         PR middle-end/26565
3150         * builtins.c (get_pointer_alignment): Handle component
3151         references for field alignment.
3152
3153 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
3154
3155         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
3156         when building with libgloss.
3157         (sh*elf): Implement --without-fp option.
3158         (sh64-superh-linux*): Don't multilib.
3159
3160 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
3161
3162         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
3163
3164 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
3165
3166         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
3167         Set it when one of the replacement functions returned true.
3168         Return TODO_cleanup_cfg if cfgchanged is true.
3169         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
3170
3171 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
3172
3173         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
3174         instead of gen_lowpart.
3175
3176 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
3177
3178         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
3179         interface.
3180         (mips_output_order_conditional_branch): Declare.
3181         * config/mips/mips.h (MIPS_BRANCH): New macro.
3182         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
3183         for the comparison.  Use gen_condjump.
3184         (mips_output_conditional_branch): Rework interface to take the
3185         asm templates for a direct branch and the inverse of a direct branch.
3186         (mips_output_order_conditional_branch): New function.
3187         (mips_builtin_branch_and_move): New function.
3188         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
3189         branch condition.  Use gen_single_cc as the condition for
3190         __builtin_mips_upper_* or __builtin_mips_lower_*.
3191         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
3192         Use VOIDmode for the branch condition.
3193         * config/mips/predicates.md (order_operator): New predicate.
3194         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
3195         (branch_fp): Rename to...
3196         (*branch_fp): ...this.  Remove mode from comparison operator.
3197         Use new mips_output_conditional_branch interface.
3198         (branch_fp_inverted): Rename to...
3199         (*branch_fp_inverted): ...this and update as for *branch_fp.
3200         (*branch_zero<mode>): Rename to...
3201         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
3202         Use mips_output_order_conditional_branch.  Only accept ordered
3203         comparisons.
3204         (*branch_zero<mode>_inverted): Rename to...
3205         (*branch_order<mode>_inverted): ...this and update as for
3206         *branch_order<mode>.
3207         (*branch_equality<mode>): Accept zero as the second operand to
3208         the equality operator.  Use the new mips_output_conditional_branch
3209         interface.
3210         (*branch_equality<mode>_inverted): Likewise.
3211         (condjump): New expander.
3212         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
3213         operator.
3214         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
3215         (bc1any2t, bc1any2f): Likewise.
3216         (single_cc): New expander.
3217         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
3218
3219 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
3220
3221         * doc/md.texi: Update documentation of MIPS constraints.
3222         * config/mips/constraints.md: New file.
3223         * config/mips/mips.md: Include it.
3224         * config/mips/mips.c (mips_char_to_class): Delete.
3225         (override_options): Don't initialize mips_char_to_class.
3226         * config/mips/mips.h (mips_char_to_class): Delete.
3227         (REG_CLASS_FROM_LETTER): Delete.
3228         (CONST_OK_FOR_LETTER_P): Delete.
3229         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
3230         (EXTRA_CONSTRAINT_Y): Delete.
3231         (EXTRA_CONSTRAINT_STR): Delete.
3232         (CONSTRAINT_LEN): Delete.
3233         (EXTRA_MEMORY_CONSTRAINT): Delete.
3234
3235 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
3236
3237         * tree-cfg.c (move_block_to_fn): Remove the statements from the
3238         original fn's eh regions.
3239
3240 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
3241
3242         * fold-const.c (build_range_check): Make sure to use a valid type to
3243         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
3244         transformation.
3245
3246         (range_predecessor): New static function.
3247         (range_successor): Likewise.
3248         (merge_ranges): Use them to compute predecessors and successors of
3249         range bounds.
3250
3251 2006-03-09  Roger Sayle  <roger@eyesopen.com>
3252
3253         PR middle-end/26561
3254         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
3255         X op C3, consider whether C3 overflows towards +Inf or -Inf.
3256
3257 2006-03-08  DJ Delorie  <dj@redhat.com>
3258
3259         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
3260         (addpsi3): Expand to include memory operands.  Remove
3261         reload-specific splits.
3262         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
3263         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
3264         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
3265         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
3266         (shift1_qi, shift1_hi, insv): New.
3267         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
3268         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
3269         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
3270         cond_to_int): New.
3271         * config/m32c/m32c-protos.h: Update as needed.
3272         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
3273         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
3274         Fail for unrecognized R* constraints.
3275         (m32c_cannot_change_mode_class): Be more picky about pseudos.
3276         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
3277         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
3278         Add Sp constraint.
3279         (m32c_init_libfuncs): New.
3280         (m32c_legitimate_address_p): Add debug wrapper.
3281         (m32c_rtx_costs): New.
3282         (m32c_address_cost): New.
3283         (conversions): Add 'B' prefix.
3284         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
3285         operands, or word regnames for QI operands.  'B' prints bit
3286         position.
3287         (m32c_expand_setmemhi): New.
3288         (m32c_expand_movmemhi): New.
3289         (m32c_expand_movstr): New.
3290         (m32c_expand_cmpstr): New.
3291         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
3292         (m32c_expand_neg_mulpsi3): Handle non-ints.
3293         (m32c_cmp_flg_0): New.
3294         (m32c_expand_movcc): New.
3295         (m32c_expand_insv): New.
3296         (m32c_scc_pattern): New.
3297         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
3298         a0/a1 out of SIregs.
3299         (STORE_FLAG_VALUE): New.
3300         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
3301         code macros.
3302         (no_insn): New.
3303         * config/m32c/mov.md: Make constraints more liberal.
3304         (zero_extendqihi2): Optimize r0/r1 case.
3305         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
3306         * config/m32c/predicates.md (m32c_any_operand): New.
3307         (m32c_nonimmediate_operand): New.
3308         (m32c_hl_operand): New.
3309         (m32c_r3_operand): New.
3310         (ap_operand): New.
3311         (ma_operand): New.
3312         (memsym_operand): New.
3313         (memimmed_operand): New.
3314         (a_qi_operand): New.
3315         (m32c_eqne_operator): New.
3316         (m32c_1bit8_operand): New.
3317         (m32c_1bit16_operand): New.
3318         (m32c_1mask8_operand): New.
3319         (m32c_1mask16_operand): New.
3320         * config/m32c/blkmov.md: New file.
3321         * config/m32c/t-m32c (MD_FILES): Add blkmov.
3322
3323 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
3324
3325         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
3326         unsigned to fix signed/unsigned comparison issue in
3327         DWARF2_FRAME_REG_OUT.
3328         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
3329         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
3330
3331         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
3332         of ptr into the ENABLE_CHECKING section.
3333
3334 2006-03-08  Jeff Law  <law@redhat.com>
3335
3336         * tree-vrp.c (infer_value_range): Only count pointer uses
3337         and dereferences if -fdelete-null-pointer-checks is enabled.
3338
3339         * tree-vrp.c (find_assert_locations): Infer value ranges for
3340         single use pointers, but do not create ASSERT_EXPRs for them.
3341         When a non-null range is inferred for a pointer, backwards
3342         propagate that range to other equivalent pointers through the
3343         use-def chain.
3344
3345 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
3346
3347         PR bootstrap/26500
3348         * Makefile.in (dvi, html, install-info): Invoke the corresponding
3349         language hook targets.
3350         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
3351         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
3352         if language hook targets were missing.
3353
3354 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
3355
3356         * tree-ssa-opfinalize.h: Removed.
3357         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
3358         dependency.
3359         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
3360         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
3361         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
3362         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
3363         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
3364         finalize_ssa_v_must_def_ops): New.
3365
3366 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
3367
3368         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
3369         block as parameter.
3370
3371 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
3372
3373         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
3374
3375         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
3376         addresses with offsets; reorganize.
3377
3378         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
3379         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
3380         (expand_builtin_init_dwarf_reg_sizes): Likewise.
3381
3382 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
3383
3384         PR target/26588
3385         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
3386
3387 2006-03-08  Ben Elliston  <bje@au.ibm.com>
3388
3389         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
3390
3391 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
3392
3393         PR gomp/26238
3394         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
3395         expansion.
3396
3397 2006-03-07  Richard Guenther  <rguenther@suse.de>
3398
3399         PR tree-optimization/26587
3400         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
3401
3402 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
3403
3404         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
3405
3406 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
3407
3408         * hooks.c (hook_bool_mode_rtx_true): New function.
3409         * hooks.h (hook_bool_mode_rtx_true): Declare.
3410         * toplev.c (compile_file): Call output_shared_constant_pool.
3411         * varasm.c (shared_constant_pool): New variable.
3412         (assemble_start_function, assemble_end_function): Remove arguments
3413         from call to output_constant_pool.
3414         (create_constant_pool): New function, split out from...
3415         (init_varasm_status): ...here.
3416         (force_const_mem): Choose between the shared and per-function constant
3417         pools.  Set current_function_uses_const_pool when reusing old entries
3418         as well as when creating new ones.
3419         (mark_constant): Ignore data argument.
3420         (mark_constants): Remove pool argument.
3421         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
3422         to decide whether the function uses a constant pool.
3423         (output_constant_pool_contents): New function, split out from...
3424         (output_constant_pool): ...here.
3425         (output_shared_constant_pool): New function.
3426         (init_varasm_once): Initialize shared_constant_pool.
3427         * output.h (output_constant_pool): Delete.
3428         (output_shared_constant_pool): Declare.
3429         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
3430         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
3431
3432 2006-03-06  Nick Clifton  <nickc@redhat.com>
3433
3434         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
3435         flag_strength_reduce.
3436
3437 2006-03-06  Ben Elliston  <bje@au.ibm.com>
3438
3439         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
3440         x86_64-*-linux* configurations.
3441
3442         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
3443         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
3444
3445 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
3446
3447         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
3448         Remove.
3449         * basic-block.h: Remove the extern for
3450         rediscover_loops_after_threading.
3451
3452         * cfgloop.c (cancel_loop): Make it static.
3453         * cfgloop.h: Remove the prototype for cancel_loop.
3454
3455         * flow.c (recompute_reg_usage): Make it static.
3456         * rtl.h: Remove the prototype for recompute_reg_usage.
3457
3458         * function.c (use_return_register): Make it static.
3459         * function.h: Remove the prototype.
3460
3461 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
3462
3463         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
3464         Remove.
3465         * recog.h: Remove the prototype for
3466         validate_change_maybe_volatile.
3467
3468 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
3469
3470         * rtlanal.c (replace_reg): Remove.
3471         * rtl.h: Remove the prototype for replace_reg.
3472
3473 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
3474
3475         * regclass.c (reg_scan_update): Remove.
3476         (reg_scan_mark_refs): Remove the last argument.
3477         * rtl.h: Remove the prototype for reg_scan_update.
3478
3479 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
3480
3481         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
3482         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
3483         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
3484         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
3485         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
3486         loop-invariant.c, omp-low.c, opts.c, passes.c,
3487         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
3488         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
3489         tree-ssa-structalias.c, tree-ssa-threadedge.c,
3490         tree-ssa-threadupdate.c, tree-vect-patterns.c,
3491         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
3492         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
3493
3494 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
3495
3496         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
3497         * dwarf2out.h: Remove the prototype for
3498         dwarf2out_add_library_unit_info.
3499
3500 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
3501
3502         * tree.c (add_var_to_bind_expr): Remove.
3503         * tree.h: Remove the prototype for add_var_to_bind_expr.
3504
3505 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
3506
3507         * regclass.c (n_non_fixed_regs): Remove.
3508         (init_reg_sets_1, globalize_reg): Remove all uses of
3509         n_non_fixed_regs.
3510         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
3511
3512 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
3513
3514         * rtlanal.c (insns_safe_to_move_p): Remove.
3515         * rtl.h: Remove the prototype for insns_safe_to_move_p.
3516
3517 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
3518
3519         * expmed.c (expand_mult_add): Remove.
3520         * expr.h: Remove the prototype for expand_mult_add.
3521
3522 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
3523
3524         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
3525         and REG_SAVED_VAL_EXP constants.
3526         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
3527         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
3528         Handle regs stored by value.
3529         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
3530         (execute_cfa_program): Handle DW_CFA_val_offset,
3531         DW_CFA_val_offset_sf and DW_CFA_val_expression.
3532         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
3533         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
3534         (uw_install_context_1): Handle target regs stored by value.
3535
3536 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
3537
3538         * tree-sra.c (tree_sra): Return todoflags;
3539         (generate_one_element): Set TODO_update_smt_usage if needed.
3540         (pass_sra): Remove TODO_update_smt_usage.
3541         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
3542         parameter.
3543         (tree_ssa_forward_propagate_single_use_vars): Return
3544         TODO_update_smt_usage if we need to update SMT usage.
3545         (pass_forwprop): Remove TODO_update_smt_usage.
3546
3547 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
3548
3549         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
3550         (correct_use_link): Remove reference to get_stmt_operands.
3551         (update_stmt_operands): Likewise.
3552         (get_modify_expr_operands): New function factored out of
3553         parse_ssa_operands and get_expr_operands.
3554         Try to create V_MUST_DEFs for LHS by default.
3555         (get_expr_operands) <case MODIFY_EXPR>: Call
3556         get_modify_expr_operands.
3557         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
3558         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
3559         (parse_ssa_operands) <case MODIFY_EXPR>: Call
3560         get_modify_expr_operands.
3561
3562 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
3563
3564         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
3565         * tree-flow.h: Remove the prototype for
3566         referenced_var_lookup_if_exists.
3567
3568 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
3569
3570         PR rtl-optimization/26345
3571         PR target/19061
3572         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
3573
3574 2006-03-03  Roger Sayle  <roger@eyesopen.com>
3575
3576         PR tree-optimization/26524
3577         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
3578         fold_convert to create a constant of the appropriate type.
3579
3580 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
3581
3582         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
3583         SYMBOL_REF_IN_BLOCK_P.
3584         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
3585         of SYMBOL_FLAG_IN_BLOCK.
3586         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
3587         instead of SYMBOL_REF_IN_BLOCK_P.
3588         * explow.c (use_anchored_address): Likewise.
3589         * rtl.c (rtx_size): Likewise.
3590         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
3591         instead of SYMBOL_FLAG_IN_BLOCK.
3592         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
3593         SYMBOL_REF_IN_BLOCK_P.
3594         (assemble_variable): Likewise.
3595         (output_constant_def_contents): Likewise.
3596         (output_constant_pool): Likewise.
3597         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
3598         instead of SYMBOL_FLAG_IN_BLOCK.
3599         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
3600         SYMBOL_REF_IN_BLOCK_P.
3601         (SYMBOL_REF_BLOCK): Likewise.
3602         (SYMBOL_REF_OFFSET): Likewise.
3603         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
3604         SYMBOL_REF_IN_BLOCK_P.
3605         (SYMBOL_FLAG_IN_BLOCK): Replace with...
3606         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
3607         (SYMBOL_REF_IN_BLOCK_P): Replace with...
3608         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
3609
3610 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
3611
3612         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
3613
3614 2006-03-02  Roger Sayle  <roger@eyesopen.com>
3615
3616         * simplify-rtx.c (simplify_unary_operation): When simplifying
3617         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
3618         that we perform the right shift in the appropriate mode, and
3619         then extend or truncate the result to requested mode.
3620
3621 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
3622
3623         * gengtype.c (main): Handle double_int type.
3624         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
3625         * double-int.c: New file.
3626         * double-int.h: New file.
3627         * system.h: Include doubleint.h.
3628         * Makefile.in (SYSTEM_H): Include double-int.h.
3629         (double-int.o): Add.
3630
3631 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
3632
3633         PR bootstrap/26478
3634         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
3635         copying over it.
3636
3637 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
3638
3639         * tree-vrp.c (remove_range_assertions): Do not update statements
3640         unnecessarily.
3641
3642 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
3643
3644         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
3645         cleanup.
3646         * gcse.c (rest_of_handle_gcse): Ditto.
3647         * except.c (gate_handle_eh): Ditto.
3648         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
3649         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
3650
3651 2006-03-02  Eric Christopher  <echristo@apple.com>
3652
3653         * config/i386/i386.c (machopic_output_stub): Add indirection to
3654         jump.
3655
3656 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
3657
3658         * loop.c: Removed.
3659
3660 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
3661
3662         Sun Niagara specific optimizations.
3663         * config.gcc: Recognize niagara as target.
3664         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
3665         (TARGET_CPU_niagara): Define.
3666         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
3667         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
3668         (CPP_CPU_SPEC): Handle -mcpu=niagara.
3669         (ASM_CPU_SPEC): Likewise.
3670         (PROCESSOR_NIAGARA): New enum entry.
3671         (REGISTER_MOVE_COST): Handle Niagara.
3672         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
3673         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
3674         (sparc_override_options): Recognize "niagara", set appropriate
3675         default MASK_* values for it, and align functions to 32-bytes
3676         by default just like ULTRASPARC/ULTRASPARC3.
3677         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
3678         (sparc64_initialize_trampoline): Likewise.
3679         (sparc_use_sched_lookahead): Use zero for niagara.
3680         (sparc_issue_rate): Use one for niagara.
3681         * config/sparc/niagara.md: New file.
3682         * config/sparc/sparc.md: Include it.
3683         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
3684         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
3685         when default cpu is niagara.
3686         (CPP_CPU_SPEC): Handle -mcpu=niagara.
3687         (ASM_CPU_SPEC): Likewise.
3688         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
3689         when default cpu is niagara.
3690         (ASM_CPU_SPEC): Handle -mcpu=niagara.
3691         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
3692         just like v9/ultrasparc/ultrasparc3.
3693         * doc/invoke.texi: Add documentation for "niagara" and improve
3694         existing documentation for ultrasparc variants.
3695
3696 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
3697
3698         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
3699
3700 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
3701
3702         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
3703         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
3704         and say that only one is needed.
3705         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
3706         * target.h (have_switchable_bss_sections): New hook.
3707         * explow.c (use_anchored_address): Check that the symbol is in a block.
3708         * varasm.c (tls_comm_section, comm_section, lcomm_section)
3709         (bss_noswitch_section): New variables.
3710         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
3711         (get_noswitch_section): New function.
3712         (get_block_for_section): Allow SECT to be null.
3713         (unlikely_text_section_p): Use SECTION_STYLE.
3714         (bss_initializer_p): New function.
3715         (get_variable_section): Move earlier in file.  Take a new argument,
3716         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
3717         Return one of the new *_sections in such cases.
3718         (get_block_for_decl): New function, extracting some logic from
3719         use_blocks_for_decl_p.
3720         (change_symbol_section): Remove in favor of...
3721         (change_symbol_block): ...this new function.
3722         (use_blocks_for_decl_p): Remove checks now performed by
3723         get_block_for_decl.
3724         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
3725         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
3726         (emit_local, emit_bss, emit_common): ...these new functions.
3727         Return true if the alignment was honored.
3728         (emit_tls_common): New function.
3729         (asm_emit_uninitialised): Delete.
3730         (assemble_variable_noswitch): New function, split out from...
3731         (assemble_variable): ...here.  Don't make decisions about common
3732         variables here.  Globalize all public decls that go into non-common
3733         sections.  Check whether SYMBOL_REF_BLOCK is null.
3734         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
3735         (output_constant_pool): Likewise.
3736         (init_varasm_once): Initialize the new section variables.
3737         (have_global_bss_p): New function.
3738         (categorize_decl_for_section): Use bss_initializer_p.
3739         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
3740         (place_block_symbol): Assert that the symbol must be in a block.
3741         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
3742         (TARGET_INITIALIZER): Include it.
3743         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
3744         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
3745         (SECTION_MACH_DEP): Bump by two.
3746         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
3747         (unnamed_section): Mention SECTION_UNNAMED in comment.
3748         (named_section): Likewise SECTION_NAMED.
3749         (noswitch_section_callback): New type.
3750         (noswitch_section): New structure.
3751         (section): Add a noswitch_section alternative.
3752         (SECTION_STYLE): New macro.
3753         (tls_comm_section, comm_section, lcomm_section): Declare.
3754         (bss_noswitch_section, have_global_bss_p): Declare.
3755         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
3756         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
3757         Override.
3758         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
3759         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
3760         Override.
3761
3762 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
3763
3764         * gcc/tree-vrp.c (execute_vrp): Return value.
3765         * gcc/regrename.c (rest_of_handle_regrename): Ditto.
3766         * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
3767         * gcc/tree-complex.c (tree_lower_complex): Ditto.
3768         (tree_lower_complex_O0): Ditto.
3769         * gcc/tracer.c (rest_of_handle_tracer): Ditto.
3770         * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
3771         * gcc/postreload.c (rest_of_handle_postreload): Ditto.
3772         * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
3773         (execute_tail_calls): Ditto.
3774         * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
3775         * gcc/tree.h (init_function_for_compilation): Ditto.
3776         * gcc/ipa-cp.c (ipcp_driver): Ditto.
3777         * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
3778         * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
3779         * gcc/final.c (compute_alignments): Ditto.
3780         (rest_of_handle_final): Ditto.
3781         (rest_of_handle_shorten_branches): Ditto.
3782         (rest_of_clean_state): Ditto.
3783         * gcc/omp-low.c (execute_expand_omp): Ditto.
3784         (execute_lower_omp): Ditto.
3785         * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
3786         * gcc/ipa-reference.c (static_execute): Ditto.
3787         * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
3788         * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
3789         (rest_of_handle_machine_reorg): Ditto.
3790         * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
3791         * gcc/flow.c (recompute_reg_usage): Ditto.
3792         (rest_of_handle_remove_death_notes): Ditto.
3793         (rest_of_handle_life): Ditto.
3794         (rest_of_handle_flow2): Ditto.
3795         * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
3796         * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
3797         (do_ssa_store_ccp): Ditto.
3798         (execute_fold_all_builtins): Ditto.
3799         * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
3800         * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
3801         * gcc/ipa-pure-const.c (static_execute): Ditto.
3802         * gcc/cse.c (rest_of_handle_cse): Ditto.
3803         (rest_of_handle_cse2): Ditto.
3804         * gcc/web.c (rest_of_handle_web): Ditto.
3805         * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
3806         * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
3807         * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
3808         * gcc/tree-nrv.c (tree_nrv): Ditto.
3809         (execute_return_slot_opt): Ditto.
3810         * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
3811         (create_structure_vars): Ditto.
3812         * gcc/loop-init.c (rtl_loop_init): Ditto.
3813         (rtl_loop_done): Ditto.
3814         (rtl_move_loop_invariants): Ditto.
3815         (rtl_unswitch): Ditto.
3816         (rtl_unroll_and_peel_loops): Ditto.
3817         (rtl_doloop): Ditto.
3818         * gcc/gimple-low.c (lower_function_body): Ditto.
3819         (mark_used_blocks): Ditto.
3820         * gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
3821         * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
3822         (cgraph_early_inlining): Ditto.
3823         * gcc/global.c (rest_of_handle_global_alloc): Ditto.
3824         * gcc/jump.c (cleanup_barriers): Ditto.
3825         (purge_line_number_notes): Ditto.
3826         * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
3827         (rest_of_handle_if_after_reload): Ditto.
3828         * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
3829         (tree_ssa_loop_im): Ditto.
3830         (tree_ssa_loop_unswitch): Ditto.
3831         (tree_vectorize): Ditto.
3832         (tree_linear_transform): Ditto.
3833         (tree_ssa_loop_ivcanon): Ditto.
3834         (tree_ssa_empty_loop): Ditto.
3835         (tree_ssa_loop_bounds): Ditto.
3836         (tree_complete_unroll): Ditto.
3837         (tree_ssa_loop_prefetch): Ditto.
3838         (tree_ssa_loop_ivopts): Ditto.
3839         (tree_ssa_loop_done): Ditto.
3840         * gcc/predict.c (tree_estimate_probability): Ditto.
3841         * gcc/recog.c (split_all_insns_noflow): Ditto.
3842         (rest_of_handle_peephole2): Ditto.
3843         (rest_of_handle_split_all_insns): Ditto.
3844         * gcc/tree-eh.c (lower_eh_constructs): Ditto.
3845         * gcc/regmove.c (rest_of_handle_regmove): Ditto.
3846         (rest_of_handle_stack_adjustments): Ditto.
3847         * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
3848         * gcc/function.c (instantiate_virtual_regs): Ditto.
3849         (init_function_for_compilation): Ditto.
3850         (rest_of_handle_check_leaf_regs): Ditto.
3851         * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
3852         (rest_of_handle_gcse): Ditto.
3853         * gcc/ipa-type-escape.c (type_escape_execute): Ditto.
3854         * gcc/alias.c (rest_of_handle_cfg): Ditto.
3855         * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
3856         * gcc/profile.c (rest_of_handle_branch_prob): Ditto.
3857         * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
3858         * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
3859         * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
3860         * gcc/tree-dfa.c (find_referenced_vars): Ditto.
3861         * gcc/except.c (set_nothrow_function_flags): Ditto.
3862         (convert_to_eh_region_ranges): Ditto.
3863         (rest_of_handle_eh): Ditto.
3864         * gcc/emit-rtl.c (unshare_all_rtl): Ditto.
3865         (remove_unnecessary_notes): Ditto.
3866         * gcc/except.h (set_nothrow_function_flags): Ditto.
3867         (convert_to_eh_region_ranges): Ditto.
3868         * gcc/cfgexpand.c (tree_expand_cfg): Ditto.
3869         * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
3870         * gcc/tree-ssa-pre.c (do_pre): Ditto.
3871         (execute_fre): Ditto.
3872         * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
3873         (rest_of_handle_jump2): Ditto.
3874         * gcc/tree-sra.c (tree_sra): Ditto.
3875         * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
3876         (execute_mudflap_function_decls): Ditto.
3877         * gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
3878         (do_store_copy_prop): Ditto.
3879         * gcc/ipa-prop.h (ipcp_driver): Ditto.
3880         * gcc/cfglayout.c (insn_locators_initialize): Ditto.
3881         * gcc/tree-ssa-forwprop.c
3882         (tree_ssa_forward_propagate_single_use_vars): Ditto.
3883         * gcc/cfglayout.h (insn_locators_initialize): Ditto.
3884         * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
3885         * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
3886         (execute_late_warn_uninitialized): Ditto.
3887         * gcc/rtl.h (cleanup_barriers): Ditto.
3888         (split_all_insns_noflow): Ditto.
3889         (purge_line_number_notes): Ditto.
3890         (unshare_all_rtl): Ditto.
3891         (remove_unnecessary_notes): Ditto.
3892         (recompute_reg_usage): Ditto.
3893         (variable_tracking_main): Ditto.
3894         * gcc/integrate.c (emit_initial_value_sets): Ditto.
3895         * gcc/integrate.h (emit_initial_value_sets): Ditto.
3896         * gcc/tree-optimize.c (execute_free_datastructures): Ditto
3897         (execute_free_cfg_annotations): Ditto.
3898         (execute_fixup_cfg): Ditto.
3899         (execute_cleanup_cfg_pre_ipa): Ditto.
3900         (execute_cleanup_cfg_post_optimizing): Ditto.
3901         (execute_init_datastructures): Ditto.
3902         * gcc/tree-object-size.c (compute_object_sizes): Ditto.
3903         * gcc/combine.c (rest_of_handle_combine): Ditto.
3904         * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
3905         * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
3906         (rest_of_handle_reorder_blocks): Ditto.
3907         (rest_of_handle_partition_blocks): Ditto.
3908         * gcc/var-tracking.c (variable_tracking_main): Ditto.
3909         * gcc/tree-profile.c (tree_profiling): Ditto.
3910         * gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
3911         * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
3912         * gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
3913         (rest_of_handle_sched2): Ditto.
3914         * gcc/basic-block.h (free_bb_insn): Ditto.
3915         * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
3916         * gcc/tree-cfg.c (execute_build_cfg): Ditto.
3917         (remove_useless_stmts): Ditto.
3918         (split_critical_edges): Ditto.
3919         (execute_warn_function_return): Ditto.
3920         (execute_warn_function_noreturn): Ditto.
3921         * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
3922         * gcc/cfgrtl.c (free_bb_for_insn): Ditto.
3923         * gcc/passes.c (execute_one_pass): Run additional
3924         todos returned by execute function.
3925         * gcc/tree-pass.h (struct tree_opt_pass): Make execute
3926         return a value.
3927
3928 2006-03-02  Richard Guenther  <rguenther@suse.de>
3929
3930         * tree-ssa-alias.c (find_used_portions): Consider taking
3931         the address as making the variable not write-only.
3932
3933 2006-03-02  Nick Clifton  <nickc@redhat.com>
3934
3935         * config.gcc (default_use_cxa_atexit): Extend the description of
3936         this configure variable.  Set its default value to "yes" for
3937         Linux, NetBSD and ELF targets on the assumption that they will
3938         use C libraries with the __cxa_atexit function.
3939
3940 2006-03-02  Ben Elliston  <bje@au.ibm.com>
3941
3942         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
3943         parameter as unused to suppress a build warning.
3944
3945 2006-03-02  Ben Elliston  <bje@au.ibm.com>
3946
3947         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
3948         config/dfp-bit.c.
3949
3950 2006-03-01  Roger Sayle  <roger@eyesopen.com>
3951
3952         PR other/26489
3953         * gthr-posix.h (__gthrw2): Define to take three parameters, the
3954         declared name, the weak reference name, and the typeof name.
3955         (__gthrw): Avoid expanding the declared name suffix.
3956         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
3957
3958 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
3959
3960         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
3961         from DWARF 3.
3962         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
3963         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
3964         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
3965         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
3966         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
3967         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
3968         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
3969         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
3970         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
3971         DW_DS_leading_separate, DW_DS_trailing_separate): New.
3972         (DW_END_default, DW_END_big, DW_END_little): New.
3973         (DW_END_lo_user, DW_END_hi_user): Define.
3974         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
3975         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
3976         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
3977         DW_LANG_D): New.
3978
3979 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
3980
3981         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
3982         Update all users.
3983         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
3984         Update all users.
3985         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
3986         Update all users.
3987         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
3988         Update all users.
3989         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
3990         to 'symbol_mem_tag'.
3991         Update all users.
3992         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
3993         rename.
3994
3995 2006-03-01  Roger Sayle  <roger@eyesopen.com>
3996
3997         * builtins.c (fold_builtin_copysign): Delete unreachable code.
3998
3999 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
4000
4001