OSDN Git Service

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