OSDN Git Service

fix changelog entry
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
2             Dale Johannesen  <dalej@apple.com>
3
4         PR target/19653
5         * regclass.c (struct reg_pref): Update documentation.
6         (regclass): Set prefclass to NO_REGS if memory is the best option.
7         (record_reg_classes): Cope with a prefclass set to NO_REGS.
8         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
9         into account.  For non-registers, equate an empty preferred
10         reload class to a `!' in the constraint; move the if clause to
11         do so after those that reject the insn.
12         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
13         return NO_REGS.
14         (find_dummy_reload): Likewise.
15         * doc/tm.texi (Register Classes): Document what it means
16         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
17         * config/i386/i386.c (ix86_preferred_reload_class): Force
18         using SSE registers (and return NO_REGS for floating-point
19         constants) if math is done with SSE.
20         (ix86_preferred_output_reload_class): New.
21         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
22         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
23         * config/i386/i386.md: Remove # register preferences.
24
25 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
26
27         PR bootstrap/26992
28         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
29         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
30         the type of nb_iter.
31         (instantiate_parameters_1): Convert the operands before calling
32         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
33         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
34
35 2006-04-02  Roger Sayle  <roger@eyesopen.com>
36
37         * builtins.c (dummy_object): Use build_int_cst instead of convert.
38         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
39         instead of convert.
40         * dojump.c (do_jump): Likewise.
41         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
42         * gimplify.c (gimple_boolify, gimplify_init_constructor,
43         gimplify_boolean_expr): Likewise.
44         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
45         * varasm.c (array_size_for_constructor): Likewise.
46         * tree-object-size.c (compute_object_offset): Likewise.
47
48 2006-04-02  Roger Sayle  <roger@eyesopen.com>
49
50         PR middle-end/26977
51         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
52         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
53
54 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
55
56         PR tree-optimization/26939
57         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
58
59 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
60
61         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
62         at_stmt.  Convert the type of operands before calling 
63         build_polynomial_chrec.
64         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
65         add_to_evolution_1.
66         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
67         (instantiate_parameters_1): Convert the type of operands before calling 
68         build_polynomial_chrec.
69         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
70         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
71         reset_evolution_in_loop): Insert asserts to check the types of the
72         operands.
73         (chrec_type): Moved...
74         (eq_evolutions_p): Use operand_equal_p.
75         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
76         the types of the operands.
77         (chrec_type): ...here.
78         * tree-data-ref.c (create_data_ref): Convert the operands before
79         calling chrec_replace_initial_condition.
80         (same_access_functions, analyze_subscript_affine_affine,
81         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
82         (compute_subscript_distance, analyze_ziv_subscript,
83         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
84         analyze_miv_subscript): Convert the operands before calling
85         chrec_fold_minus or chrec_fold_plus.
86
87 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
88
89         * tree-data-ref.c (compute_all_dependences): Use a pointer to
90         the dependence_relations vector.
91         (compute_data_dependences_for_loop): Adjust call to
92         compute_all_dependences.
93
94 2006-04-01  Roger Sayle  <roger@eyesopen.com>
95             Richard Henderson  <rth@redhat.com>
96
97         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
98         gimple_boolify on the condition before calling gimplify_expr.
99
100 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
101
102         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
103         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
104         the frame size.  Update to use the new macros.
105         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
106         * config/xtensa/ieee754-df.S: Likewise.
107
108 2006-03-31  Richard Henderson  <rth@redhat.com>
109
110         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
111         (make_edges): ... here.  Control fallthru creation with a local
112         variable.  Do not play with fake edges.
113         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
114         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
115         a boolean.
116
117 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
118
119         * dwarf2.h (DW64_CIE_ID): Define.
120         * dwarf2out.c (DWARF_CIE_ID): Define.
121         (output_call_frame_info): Output 0xffffffff before standard 8-byte
122         length header.  Use DWARF_CIE_ID.
123         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
124         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
125
126 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
127
128         * config/sh/linux-atomic.asm: New file.
129         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
130
131 2006-03-31  DJ Delorie  <dj@redhat.com>
132
133         * config/m32c/cond.md: Set condition flags properly throughout.
134         * config/m32c/minmax.md: Likewise.
135         * config/m32c/prologue.md: Likewise.
136         * config/m32c/bitops.md: Likewise.
137         * config/m32c/muldiv.md: Likewise.
138         * config/m32c/mov.md: Likewise.
139         * config/m32c/addsub.md: Likewise.
140         * config/m32c/m32c.md: Likewise.
141         * config/m32c/jump.md: Likewise.
142         * config/m32c/shift.md: Likewise.
143
144         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
145         conditionally output the pattern for this.
146         * config/m32c/m32c.c (flags_needed_for_conditional): New.
147         (m32c_compare_redundant): New.
148         (m32c_output_compare): New.
149         * config/m32c/m32c-protos.h (m32c_output_compare): New.
150
151         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
152         dest, not src.  Allow other 4-byte modes.
153
154 2006-03-30  Denis Chertykov  <denisc@overta.ru>
155
156         * doc/md.texi: Refer to avr/constraints.md instead of
157         avr/avr.h.
158
159 2006-03-30  Roger Sayle  <roger@eyesopen.com>
160
161         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
162         signed vs. unsigned comparison failures on some hosts.
163
164 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
165
166         PR target/26459
167         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
168         change to FLOAT_REGS.
169
170         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
171         (rs6000_override_options): Use it.
172         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
173         only for -mabi=spe/no-spe and -mabi=altivec.
174
175 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
176
177         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
178         !Zdynamiclib.
179
180 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
181
182         * Makefile.in: Rename docdir to gcc_docdir.
183
184 2006-03-30  Roger Sayle  <roger@eyesopen.com>
185
186         PR target/17959
187         * expr.c (emit_group_store):  Optimize group stores into a pseudo
188         register by using a paradoxical subreg to initialize the destination
189         if the first or last member of the group specifies a "low part".
190
191 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
192
193         PR target/26734
194         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
195         * target.h (struct gcc_target.speculate_insn): Change type of the
196         second parameter to 'int'.
197         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
198         the second operand of the DEPS_LIST.
199         (copy_DEPS_LIST_list): Update reference to the second operand of the
200         DEPS_LIST.
201         * rtl.h (alloc_DEPS_LIST): Update signature.
202         * sched-int.h (ds_t): Change typedef to 'int'.
203         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
204
205 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
206
207         * haifa-sched.c (try_ready): Change condition to restore
208         non-speculative pattern of the instruction.
209         (process_insn_depend_be_in_spec): Code to keep probability of the
210         speculative dependence non-decreasing.
211
212 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
213
214         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
215         (single_move_for_movmem): ... this. Also change all uses.
216         (bfin_expand_strmov): Renamed to...
217         (bfin_expand_movmem): ... this. Also change all uses.
218         * config/bfin/bfin.md (movstrsi): Renamed to...
219         (movstrsi): ...this.
220
221 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
222
223         PR tree-optimization/26830
224
225         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
226         (copy_prop_visit_stmt): Remove write-only variable ann.
227         (init_copy_prop): Check variable loop depth here.  Do not simulate
228         memory-tag and virtual operand PHIs except for store copy prop.
229
230 2006-03-30  Richard Guenther  <rguenther@suse.de>
231
232         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
233         variants with double arguments.
234
235 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
236
237         * genpreds.c (write_tm_constrs_h): Delete variable p.
238         * genconditions.c (write_header): Add tm-constrs.h to included
239         headers.
240         * genpeep.c (main): Add toplev.h to included headers.
241         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
242         (build/genpeep.o): Add toplev.h dependency.
243         * config/rs6000/constraints.md: Add "W" constraint.
244
245 2006-03-29  Roger Sayle  <roger@eyesopen.com>
246
247         * stor-layout.c (mode_for_size_tree): Remove restiction on type
248         sizes by correctly testing whether the size fits a host integer.
249         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
250         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
251         SImode range for the default sizetype and bitsizetype.
252
253 2006-03-29  Roger Sayle  <roger@eyesopen.com>
254
255         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
256         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
257         quickly if the argument is already of the correct type.
258         Call fold_build1 instead of build1.  Tidy up blank lines.
259
260 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
261
262         * genemit.c (main): Add tm-constrs.h to included headers.
263         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
264         * genpeep.c (main): Add tm-constrs.h to included headers.
265         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
266         (write_tm_constrs_h): this and write complete file.
267         (write_tm_preds_h): Do not emit satisfies_constraint fns.
268         (write_insn_preds_c): Add tm-constrs.h to included headers.
269         (gen_constrs): New variable.
270         (parse_option): Parse "-c".
271         (main): Invoke write_tm_constrs_h.
272         * genrecog.c (write_header): Add tm-constrs.h to included headers.
273         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
274         (object_out_file): Add tm-constrs.h dependency.
275         (insn-emit.o): Same.
276         (insn-output.o): Same.
277         (insn-peep.o): Same.
278         (insn-preds.o): Same.
279         (insn-recog.o): Same.
280         (tm-constsr.h): New target.
281         (s-constrs-h): New target.
282
283         * config/rs6000/constraints.md: New file.
284         * config/rs6000/rs6000.c: Include tm-constrs.h.
285         (num_insn_constant_wide): Convert to satisfies_constraint.
286         (rs6000_rtx_costs): Convert to satisfies_constraint.
287         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
288         (CONST_OK_FOR_LETTER_P): Delete.
289         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
290         (EXTRA_CONSTRAINT): Delete.
291         (EXTRA_MEMORY_CONSTRAINT): Delete.
292         (EXTRA_ADDRESS_CONSTRAINT): Delete.
293         * config/rs6000/predicates.md: Convert to satisfies_constraint.
294         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
295         satisfies_constraint.
296
297         * config/i386/i386.c: Include tm-constrs.h.
298
299 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
300
301         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
302         * tree-data-ref.c (find_data_references_in_loop,
303         compute_data_dependences_for_loop): Use pointers to VEC.
304         (analyze_all_data_dependences): Adjust calls.
305         * tree-data-ref.h (find_data_references_in_loop,
306         compute_data_dependences_for_loop): Adjust declarations.
307         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
308         compute_data_dependences_for_loop.
309
310 2006-03-29  Paul Brook  <paul@codesourcery.com>
311
312         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
313         (movdf_vfp): Ditto.
314
315 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
316
317         PR tree-optimization/26859
318         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
319         division by zero.
320         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
321         for the step after fold_convert.
322
323 2006-03-29  Paul Brook  <paul@codesourcery.com>
324
325         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
326         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
327
328 2006-03-29  Paul Brook  <paul@codesourcery.com>
329
330         PR middle-end/23623
331         * targhooks.c (default_narrow_bitfield): New fuction.
332         * targhooks.h (default_narrow_bitfield): add prototype.
333         * target.h (gcc_target): Add narrow_volatile_bitfield.
334         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
335         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
336         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
337         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
338
339 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
340
341         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to 
342         tmake_file.
343         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
344         (NR_C_MODES): Add TDmode, DDmode and SDmode.
345         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
346         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
347         (s390_function_arg_float): Allow SDmode and DDmode values to be
348         passed in floating point registers.
349         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT 
350         check with SCALAR_FLOAT_MODE_P.
351         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
352
353 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
354
355         PR tree-optimization/25985
356         * tree-ssa-loop-niter.c (number_of_iterations_le,
357         number_of_iterations_ne): Make comments more precise.
358         (number_of_iterations_cond): Add only_exit argument.  Use the
359         fact that signed variables do not overflow only when only_exit
360         is true.
361         (loop_only_exit_p): New.
362         (number_of_iterations_exit): Pass result of loop_only_exit_p to
363         number_of_iterations_cond.
364
365 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
366
367         PR tree-optimization/26643
368         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
369         bit_field_refs.
370
371 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
372
373         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
374         (divsi3_i4_int): Likewise.
375
376 2006-03-28  Roger Sayle   <roger@eyesopen.com>
377
378         * expr.c (emit_group_store): Only create a new pseudo reg if the
379         quantity it needs to hold isn't already a suitable pseudo.
380
381 2006-03-28  Jeff Law  <law@redhat.com>
382
383         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
384         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
385
386 2006-03-28  Roger Sayle  <roger@eyesopen.com>
387
388         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
389         the equivalent ~X & Y, and the symmetry related transformations.
390         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as 
391         ~X & Y, and symmetry related transforms.
392
393 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
394
395         Revert my 2006-03-27 patches.
396
397 2006-03-28  Roger Sayle  <roger@eyesopen.com>
398
399         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
400         ~(T1)X, when T1 and T2 are integer types of the same precision
401         and (T2)X isn't an extension.
402
403 2006-03-28  Jeff Law  <law@redhat.com>
404
405         PR tree-optimization/26796
406         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
407         need EH edge cleanups rather than purging them immediately.
408         (eliminate_degenerate_phis): Handle queued EH cleanups.
409
410 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
411
412         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
413         from parent_var.
414
415 2006-03-27  Roger Sayle  <roger@eyesopen.com>
416
417         PR middle-end/22524
418         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
419         cast BIT_NOT_EXPR operand to the correct type.
420
421 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
422
423         * tree-loop-linear.c: Don't include varray.h.
424         (gather_interchange_stats, try_interchange_loops,
425         linear_transform_loops): Use VEC instead of VARRAY.
426         * lambda-mat.c: Don't include varray.h.
427         * tree-chrec.c: Same.
428         * lambda-trans.c: Same.
429         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
430         VEC instead of VARRAY.
431         * tree-vectorizer.h: Idem.
432         * tree-data-ref.c (dump_data_references,
433         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
434         initialize_data_dependence_relation, finalize_ddr_dependent,
435         compute_all_dependences, find_data_references_in_loop,
436         compute_data_dependences_for_loop, analyze_all_data_dependences,
437         free_dependence_relation, free_dependence_relations,
438         free_data_refs): Idem.
439         * tree-data-ref.h (data_reference_p, subscript_p): New.
440         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
441         VEC instead of VARRAY.
442         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
443         (find_data_references_in_loop, compute_data_dependences_for_loop,
444         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
445         dump_data_dependence_relations, free_dependence_relations,
446         free_data_refs): Adjust declaration.
447         (lambda_transform_legal_p): Move declaration here...
448         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
449         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
450         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
451         vect_analyze_data_refs): Use VEC instead of VARRAY.
452         * lambda.h (lambda_transform_legal_p): ...from here.
453         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
454         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
455         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
456         tree-chrec.o): Don't depend on VARRAY_H.
457
458 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
459
460         * rtl.def (Copyright): Update date.
461         (DEPS_LIST): Change type of the second operand to 'int'.
462         * target.h (Copyright): Update date.
463         (struct gcc_target.speculate_insn): Change type of the second parameter
464         to 'int'.
465         * lists.c (Copyright): Update date.
466         (alloc_DEPS_LIST): Change signature.  Update reference to the second
467         operand of the DEPS_LIST.
468         (copy_DEPS_LIST_list): Update reference to the second operand of the
469         DEPS_LIST.
470         * rtl.h (Copyright): Update date.
471         (alloc_DEPS_LIST): Update signature.
472         * sched-int.h (Copyright): Update date.
473         (ds_t): Change typedef to 'int'.
474         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
475
476 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
477
478         * haifa-sched.c (Copyright): Update date.
479         (try_ready): Change condition to restore non-speculative pattern
480         of the instruction.
481         (process_insn_depend_be_in_spec): Code to keep probability of the
482         speculative dependence non-decreasing.
483
484 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
485
486         * regrename.c (replace_oldest_value_addr): Initialize a variable to
487         shut up the compiler.
488
489 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
490
491         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
492         to use lib prefix for target.
493         ($(T)libic_invalidate_array_4-200.a): Likewise.
494         ($(T)libic_invalidate_array_4a.a): Likewise.
495
496 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
497             J"orn Rennecke <joern.rennecke@st.com>
498
499         * superh.opt: New file.
500         * sh.c (boardtype, osruntime): Remove.
501         * superh.h (SUBTARGET_OPTIONS): Remove.
502         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
503
504         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
505         arguments with ^ and/or [].
506
507         * config.gcc (sh-*-*): Add quoting to account for quirk of
508         Solaris /bin/sh.
509         Replace == with = in enable_incomplete_targets test.
510
511         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
512         with MASK_LITTLE_ENDIAN.
513
514         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
515         * config/sh/sh.opt: Added to some comments.
516         * config/sh/superh.h: Removed some chaff.
517
518         * config/sh/sh.opt: Add m4-[1234]00* options.
519         * config/sh/sh.c (sh_handle_option): Likewise.
520         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
521         (ic_invalidate_array_4-100.o): New rule.
522         ($(T)libic_invalidate_array_4-100.a): Likewise.
523         (ic_invalidate_array_4-200.o): Likewise.
524         ($(T)libic_invalidate_array_4-200.a): Likewise.
525         (ic_invalidate_array_4a.o): Likewise.
526         ($(T)libic_invalidate_array_4a.a): Likewise.
527         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
528         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
529         m4-200*, and m4a*.
530         * config/sh/crt1.asm: Merged in profiling code.
531         * config/sh/superh.h (STARTFILE_SPEC): Override.
532         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
533         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
534         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
535
536         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
537         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
538         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
539
540         * sh.opt (mpretend-cmove): New option.
541         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
542         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
543         (movsicc): Add TARGET_PRETEND_CMOVE code.
544
545 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
546
547         * config/s390/s390-protos.h (s390_hard_regno_mode_ok, 
548         s390_class_max_nregs): New function prototypes.
549         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
550         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
551         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
552         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
553
554 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
555
556         * dwarf2out.c (add_location_or_const_value_attribute): Call
557         tree_add_const_value_attribute if nothing else works.
558         (reference_to_unused): New.
559         (rtl_for_decl_init): Use reference_to_unused to decide whether
560         to output an initializer.
561
562 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
563
564         PR target/26459
565         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
566         peephole removing spe frob_di_df_2.
567
568 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
569
570         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
571         (subscript_dependence_tester_1): Declared.
572         (print_dir_vectors, print_dist_vectors): New.
573         (debug_data_dependence_relation): New.
574         (dump_data_dependence_relation): Print more details.
575         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
576         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
577         (save_dist_v, save_dir_v, add_outer_distances,
578         build_classic_dist_vector_1): New.
579         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
580         Don't test for lambda_vector_lexico_pos.
581         (same_access_functions, add_multivariate_self_dist,
582         add_other_self_distances, dir_from_dist): New.
583         (build_classic_dir_vector): Replace implementation almost identical to 
584         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
585         dir_from_dist.
586         (subscript_dependence_tester_1): New.
587         (subscript_dependence_tester): Handle the lexicographically negative
588         distance vectors by recomputing the dependence relation.
589         (compute_affine_dependence): Remove parameter loop_nest_depth.
590         (compute_self_dependence): Don't call compute_subscript_distance.
591         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
592         Add a parameter for the loop_nest.
593         (find_loop_nest_1, find_loop_nest): New.
594         (compute_data_dependences_for_loop): Compute the loop nest, and give
595         up if the nest is not well formed.
596         * tree-data-ref.h (loop_p): New.
597         (struct data_dependence_relation): Replace size_vect field with 
598         loop_nest, a vec of loops.
599         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
600         (DDR_LOOP_NEST): New.
601         (print_dir_vectors, print_dist_vectors,
602         debug_data_dependence_relation): Declared.
603         (index_in_loop_nest): New.
604         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
605         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
606         distance.
607
608 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
609
610         * simplify-rtx.c (simplify_relational_operation): Call
611         simplify_relational_operation_1 even if mode is VOIDmode.
612
613 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
614
615         PR tree-optimization/26804
616         * tree.h (DECL_CALL_CLOBBERED): New macro.
617         (tree_decl_common): Add call_clobbered_flag.
618         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
619         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
620         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
621         (mark_non_addressable): Ditto.
622         * tree-ssa.c (verify_call_clobbered): New function.
623         (verify_alias_info): Use it.
624         * tree-pass.h (pass_reset_cc_flags): New prototype.
625         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
626         (reset_cc_flags): New function.
627         * passes.c (init_optimization_passes): Call reset_cc_flags after
628         initializing referenced_vars.
629
630 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
631             Roger Sayle  <roger@eyesopen.com>
632
633         PR middle-end/26717
634         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
635         to 1.0 for non-real operands. Implement A / A optimization for
636         complex operands.
637
638 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
639
640         * config/i386/i386.c (size_cost): Correct the comment for
641         cost of storing fp registers.
642         (i386_cost): Likewise.
643         (i486_cost): Likewise.
644         (pentium_cost): Likewise.
645         (pentiumpro_cost): Likewise.
646         (k6_cost): Likewise.
647         (athlon_cost): Likewise.
648         (k8_cost): Likewise.
649         (pentium4_cost): Likewise.
650         (nocona_cost): Likewise.
651         (generic64_cost): Likewise.
652         (generic32_cost): Likewise.
653
654 2006-03-24  Denis Chertykov  <denisc@overta.ru>
655
656         * config/avr/avr-protos.h (extra_constraint): Delete.
657         (extra_constraint_Q): New declaration.
658         * config/avr/constraints.md: New file.
659         * config/avr/avr.md: Include it.
660         (REG_X, REG_Y, REG_Z, REG_W): New constants.
661         (TMP_REGNO, ZERO_REGNO): Likewise.
662         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
663         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
664         (extra_constraint): Delete.
665         (extra_constraint_Q): Test for memory constraint 'Q'.
666         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
667         (REG_CLASS_FROM_LETTER): Delete.
668         (CONST_OK_FOR_LETTER_P): Delete.
669         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
670         (EXTRA_CONSTRAINT): Delete.
671         (TMP_REGNO): Delete.
672         (ZERO_REGNO): Delete.
673
674 2006-03-24  Jeff Law  <law@redhat.com>
675
676         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
677         directly.  Call mark_new_vars_to_rename slightly earlier.
678
679 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
680
681         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
682         (is_cxx): Likewise.
683         (gen_compile_unit_die): Use new language types for Objective-C and
684         Objective-C++.
685         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
686         DW_LANG_C_plus_plus.
687
688         PR 26793
689         * config/t-darwin (crt3.o): Work around bug 26840.
690         * config/darwin-crt3.c: Rewrite.
691         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
692
693 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
694
695         * doc/invoke.texi: Document -femit-class-debug-always
696         * common.opt: Add -femit-class-debug-always.
697
698 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
699
700         * config/s390/s390.c (s390_decompose_address): Allow SImode for
701         index and base register.
702         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
703         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
704         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
705         REGNO_OK_FOR_INDEX_P.
706         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
707         ADDR_REGNO_P.
708         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
709         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
710         REG_OK_FOR_BASE_P): Definitions removed.
711
712 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
713
714         PR middle-end/26611
715         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
716         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
717         set yet or weren't marked as local yet.
718
719 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
720
721         * regrename.c (scan_rtx_address): Initialize a variable to shut up
722         the compiler.
723
724 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
725
726         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
727         (rs6000_legitimate_small_data_p): Delete.
728         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
729         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
730         and make static.  Add forward declaration.  Update uses.
731         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
732         of offsettable_memref_p.
733         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
734         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
735
736 2006-03-24  Jeff Law  <law@redhat.com>
737
738         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
739         around bug in immediate-use iterator.
740
741 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
742
743         PR target/26607
744         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
745         or __LITTLE_ENDIAN__.
746
747 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
748
749         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
750         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
751         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
752         * config/sh/sh.opt (mdiv=): Amend description.
753         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
754         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
755         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
756         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
757         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
758         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
759         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
760         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
761         TARGET_DIVIDE_CALL_FP.
762
763 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
764
765         * haifa-sched.c (choose_ready): Fix type of the local variable.
766         Move local variables.  Add comment.
767         (check_reg_live): Change signature.  Make callable from debugger.
768         * sched-int.h (check_reg_live): Update signature.
769         * sched-ebb.c (check_reg_live): Update parameters.
770         * sched-rgn.c (check_reg_live): Ditto.
771         (region_head_or_leaf_p): Check pointer before dereferencing.
772         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
773         before reload on optimization levels below 1.
774
775 2006-03-23  Richard Henderson  <rth@redhat.com>
776
777         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
778         tls symbols.
779
780         PR target/26347
781         * config/alpha/predicates.md (local_symbolic_operand): Reject
782         weak symbols.
783
784 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
785
786         PR tree-opt/26795
787         * tree-ssa-pre.c (create_value_expr_from): Don't reject
788         expressions which have overflowed constants.
789
790 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
791
792         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
793
794 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
795
796         * cfgloopmanip.c (create_loop_notes): Removed.
797         * final.c (final_scan_insn): Do not handle loop notes.
798         * jump.c (squeeze_notes): Ditto.
799         * cfglayout.c (skip_insns_after_block,
800         duplicate_insn_chain): Ditto.
801         * cfgcleanup.c (rest_of_handle_jump2): Do not call
802         create_loop_notes.
803         * cfgloop.h (create_loop_notes): Declaration removed.
804
805 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
806
807         * varasm.c (output_constant_pool): Restore fnname and fndecl
808         arguments.
809         (assemble_start_function): Adjust call accordingly.
810         (assemble_end_function): Likewise.
811
812 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
813
814         PR mudflap/26790
815         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
816
817         PR mudflap/26789
818         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
819
820 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
821
822         PR driver/22600
823         * system.h (ICE_EXIT_CODE): New macro.
824         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
825         (diagnostic_action_after_output): Likewise.
826         * gcc.c (fatal_ice): New function.
827         (execute): Use it instead of fatal.
828         (fancy_abort): Likewise.
829         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
830
831 2006-03-22  Jeff Law  <law@redhat.com>
832
833         * loop-unroll.c (analyze_iv_to_split_insn): Handle
834         iv_analyze_result returning false.
835
836 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
837
838         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
839
840 2006-03-22  Richard Henderson  <rth@redhat.com>
841
842         PR middle-end/26084
843         * except.c (duplicate_eh_regions_0): New.
844         (duplicate_eh_region_1): Duplicate the children of the node as
845         well as the node itself.  Link them up properly.
846         (duplicate_eh_region_2): Merge into ...
847         (duplicate_eh_regions): ... here.  Take copy_region argument, and
848         copy only a sub-tree if asked.  Simplify copying and fixup.
849         (eh_region_outer_p): New.
850         * except.h (duplicate_eh_regions): Update decl.
851         (eh_region_outer_p): Declare.
852         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
853         (lower_omp_master): Likewise.
854         (lower_omp_ordered): Likewise.
855         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
856         (move_stmt_r): Use it to remap labels.  Handle recursion vs
857         remap_decls_p properly.
858         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
859         (find_outermost_region_in_block): New.
860         (new_label_mapper): New.
861         (move_sese_region_to_fn): Copy eh information to the new function
862         properly.
863         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
864         argument.
865         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
866         number.
867
868 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
869
870         * doc/md.texi (-mshared): Mention that -mshared code can be linked
871         into shared libraries.
872
873 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
874
875         * doc/md.texi: Refer to i386/constraints.md instead of
876         i386/predicates.md.
877         * config/i386/constraints.md: New file, extracted from...
878         * config/i386/predicates.md: ...here.
879         * config/i386/i386.md: Include constraints.md.
880
881 2006-03-21  Jason Merrill  <jason@redhat.com>
882
883         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
884
885         PR middle-end/20297
886         * expr.c (init_block_move_fn): Force default visibility.
887         (init_block_clear_fn): Likewise.
888         * builtins.c (expand_builtin_fork_or_exec): Likewise.
889         * targhooks.c (default_external_stack_protect_fail): Likewise.
890
891 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
892
893         * config/mips/predicates.md (const_call_insn_operand): Allow direct
894         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
895         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
896         Use TARGET_OLDABI instead of !TARGET_NEWABI.
897         (loadgp): Use mips_current_loadgp_style.
898         (loadgp_noshared): New pattern.
899         (sibcall_internal): Use MIPS_CALL.
900         (sibcall_value_internal): Likewise.
901         (sibcall_value_multiple_internal): Likewise.
902         (call_internal): Likewise.
903         (call_value_internal): Likewise.
904         (call_value_multiple_internal): Likewise.
905         (call_split): Use MIPS_CALL and add an 'S' constraint.
906         (call_value_split): Likewise.
907         (call_value_multiple_split): Likewise.
908         * config/mips/mips.opt (-mabicalls): Tweak docstring.
909         (-mshared): New option.
910         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
911         (mips_current_loadgp_style): Declare.
912         * config/mips/mips.c (mips_classify_symbol): Avoid using
913         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
914         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
915         TARGET_ABSOLUTE_ABICALLS.
916         (override_options): Adjust comments.  Improve the warning that is
917         issued when -mabicalls and -G are used together.
918         (mips_file_start): Remove comment.
919         (mips_current_loadgp_style): New function.
920         (mips_gnu_local_gp): New variable.
921         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
922         LOADGP_ABSOLUTE.
923         (mips_output_function_prologue): Use mips_current_laodgp_style.
924         (mips_expand_prologue): Call mips_emit_loadgp before emitting
925         the cprestore instruction.
926         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
927         live for TARGET_ABSOLUTE_ABICALLS.
928         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
929         (ASM_SPEC): Pass down -mshared and -mno-shared.
930         (MIPS_CALL): New macro.
931         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
932         definition.
933         * doc/invoke.texi (-mabicalls): Update documentation.
934         (-mshared): Document.
935
936 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
937
938         * config/ia64/unwind-hpux.c: New file.
939         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
940
941 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
942
943         PR libgomp/26384
944         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
945
946 2006-03-21  Jeff Law  <law@redhat.com>
947
948         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
949         type conversions of a VR_VARYING source to a wider type.
950
951 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
952
953         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
954         tm_file on Solaris 10 and later.
955         (sparc64-*-solaris2*): Likewise.
956         (sparc-*-solaris2*): Likewise.
957         * config/sol26.h: Rename to config/sol2-6.h.
958         * config/sol2-10.h: New file.
959
960 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
961
962         PR tree-opt/26781
963         * tree-ssa-pre.c (create_component_ref_by_pieces):
964         Handle STRING_CST.
965
966 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
967
968         PR c++/26690
969         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
970         return it immediately.
971
972 2006-03-21  Michael Matz  <matz@suse.de>
973
974         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
975         New members.
976         (remove_arc, add_arc): Update num_out_arcs member.
977         (set_out_arc_insns_equiv_num): Returns nothing instead of number
978         of out arcs.
979         (cache_presence): New function.
980         (compare_states_for_equiv): New function.
981         (state_is_differed): Don't take number of outargs, adjust callers.
982         Use new invariant for speeding up.
983         (init_equiv_class): Create initial classes based on sorted
984         input.
985         (partition_equiv_class): Don't track out_arcs_num.
986         (evaluate_equiv_classes): Call cache_presence on all states and
987         sort them.
988
989 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
990
991         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
992         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
993         (bfin_valid_reg_p): Test for pseudos explicitly and use only
994         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
995         callers changed.
996         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
997         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
998         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
999         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1000         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
1001         macros.
1002         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
1003         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
1004         (REGNO_REG_CLASS): ARGP is in PREGS.
1005         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
1006         IREGS.
1007         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
1008         to deal with those addresses.
1009         * addresses.h: New file.
1010         * caller-save.c: Include "addresses.h".
1011         (init_caller_save): Use new base_reg_class function.
1012         * rtl-factoring.c: Include "addresses.h".
1013         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
1014         * recog.c: Include "addresses.h".
1015         (preprocess_constraints): Use new base_reg_class function.
1016         * regrename.c: Include "addresses.h".
1017         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
1018         functions.  Keep track of a new var INDEX_CODE to compute valid
1019         classes.
1020         (replace_oldest_value_addr): Likewise.
1021         (replace_oldest_value_mem): Use base_reg_class.
1022         * reload.c: Include "addresses.h".
1023         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
1024         (find_reloads): Use new base_reg_class function.
1025         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
1026         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
1027         all callers and prototype changed.
1028         * reload1.c: Include "addresses.h".
1029         (maybe_fix_stack_asms): Use base_reg_class.
1030         * regclass.c: Include "addresses.h".
1031         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
1032         (init_reg_autoinc): Use new base_reg_class function.
1033         (record_reg_classes): Likewise.
1034         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
1035         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
1036         Use new args to compute necessary class.
1037
1038         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
1039         regrename.o, rtl-factoring.o): Update dependencies.
1040         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
1041         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
1042         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
1043         REG_OK_FOR_INDEX_P): Delete documentation.
1044
1045 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
1046
1047         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
1048         from V7 to V9 for Solaris 7 and above.
1049
1050 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
1051
1052         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
1053         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
1054         argument pointers may not alias any other storage.
1055         * common.opt: Define option -fargument-noalias-anything.
1056         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
1057         alias semantics is specified by flag_argument_noalias > 2.
1058
1059 2006-03-20  Jeff Law  <law@redhat.com>
1060
1061         * tree-pass.h (pass_phi_only_copy_prop): Delete.
1062         (pass_phi_only_cprop): Declare.
1063         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
1064         with phi_only_cprop
1065         * tree-ssa-dom.c (degenerate_phi_result): New function.
1066         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
1067         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
1068         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
1069         (eliminate_degenerate_phis): Likewise.
1070         (pass_phi_only_cprop): New pass descriptor.
1071         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
1072         support code.  Callers updated.
1073         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
1074         (store_copy_prop): Likewise.
1075         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
1076
1077 2006-03-20  Jason Merrill  <jason@redhat.com>
1078
1079         PR c++/21764
1080         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
1081         (push_visibility, pop_visibility): Likewise.
1082         * c-pragma.h: Declare them.
1083
1084 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1085
1086         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
1087
1088         * config/sh/sh.c (find_regmode_weight): Change the type of the first
1089         parameter and use get_ebb_head_tail.
1090         (sh_md_init_global): Adjust uses of find_regmode_weight.
1091
1092 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
1093
1094         * function.h (struct function) <x_tail_recursion_reentry>:
1095         Rename to x_stack_check_probe_note.
1096         (tail_recursion_reentry): Rename to stack_check_probe_note.
1097         * function.c: Replace tail_recursion_reentry with
1098         stack_check_probe_note everywhere.
1099         (expand_function_start): Only emit a note for
1100         stack_check_probe_note with -fstack-protect.
1101         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
1102
1103         * emit-rtl.c (remove_unnecessary_notes): Remove.
1104         (pass_remove_unnecessary_notes): Remove.
1105         * rtl.h (remove_unnecessary_notes): Remove prototype.
1106         * final.c (final_start_function): Don't call remove_unnecessary_notes.
1107         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
1108         * passes.c (pass_remove_unnecessary_notes): Don't run it.
1109
1110 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
1111
1112         PR tree-opt/26629
1113         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
1114         (valid_in_set): Handle ARRAY_REF.
1115         Change "if min_variant or VH" to asserts.
1116         (create_component_ref_by_pieces): Handle ARRAY_REF.
1117         (create_expression_by_pieces): Likewise.
1118         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
1119
1120 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
1121
1122         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
1123         is operand of switch, not str[0].
1124
1125 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
1126
1127         * config/rs6000/rs6000.c (rs6000_handle_option): Use
1128         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
1129
1130 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
1131
1132         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
1133         end of insn_extra_address_constraint declaration.
1134
1135 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
1136
1137         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
1138         (no-sum-in-toc): Same.
1139         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
1140         variables.
1141         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
1142         NO_FP_IN_TOC for -fPIC instead of mask.
1143
1144         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
1145         (BOOT_LDFLAGS): Delete.
1146         (LDFLAGS): Delete.
1147         * config/rs6000/t-aix52: Same.
1148
1149         * config/rs6000/rs6000.md (store_multiple_power): Delete.
1150         (stmsi[345678]_power): New.
1151
1152 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
1153
1154         * config/ia64/ia64.opt: Add empty line to end of file.
1155
1156 2006-03-17  Richard Guenther  <rguenther@suse.de>
1157
1158         PR middle-end/26721
1159         * builtins.c (get_pointer_alignment): For component style references
1160         adjust alignment to the component type alignment.  Make sure
1161         to adjust alignment for component access of constants.
1162
1163 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
1164
1165         * config/rs6000/rs6000.md (strlensi): Emit barrier after
1166         unconditional jump.
1167
1168 2006-03-17  Paul Brook  <paul@codesourcery.com>
1169
1170         * doc/install.texi: Docuemnt --with-mode.
1171         * config.gcc: Add --with-mode for arm*-*-*.
1172         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
1173
1174 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
1175
1176         * sh.c (max_labelno_before_reorg): New variable.
1177         (sh_reorg): Initialize it.
1178         (find_barrier): Check max_labelno_before_reorg before using
1179         label_to_alignment.  Take length of explicit alignment insns
1180         into account.  When seeing a UNSPECV_CONST_END, return it.
1181
1182         * sh.c (fixup_mova): Set mode of affected label to QImode.
1183         (untangle_mova): New function.
1184         (find_barrier): Use it.  Check mode of label before decrementing
1185         num_mova.
1186         (sh_reorg): Likewise.
1187         Set mode of all insns back to VOIDmode.
1188
1189         * sh.c (MOVA_LABELREF): New macro.
1190         (mova_p, fixup_mova, sh_reorg): Use it.
1191         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
1192         ADDR_DIFF_VEC matches mova.
1193
1194 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
1195
1196         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
1197         with ATTRIBUTE_UNUSED.
1198
1199 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
1200
1201         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
1202         pointer, instead of assuming it is possible to derive the
1203         correct args size from a call insn.
1204
1205 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1206
1207         * rtl.h (CONST_INT_P): Define.
1208         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
1209         instead of GET_CODE(x) == CONST_INT.
1210         (vax_rtx_costs): Likewise.
1211         (vax_output_int_move): Likewise.
1212         (vax_output_int_add): Likewise.
1213         (legitimate_constant_address_p): Likewise.
1214         (index_term_p): Likewise.
1215         * config/vax/vax.h (PRINT_OPERAND): Likewise.
1216         * config/vax/vax.md (and<mode>3): Likewise.
1217         (ashrsi3): Likewise.
1218         (extv): Likewise.
1219         (movstricthi): Likewise.
1220         (movstrictqi): Likewise.
1221         (rotrsi3): Likewise.
1222         (five unnamed insns): Likewise.
1223
1224 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
1225
1226         * doc/tm.texi (SDB and DWARF): Add extra parameter to
1227         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
1228         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
1229         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
1230         Pass to ASM_OUTPUT_DWARF_OFFSET.
1231         * dwarf2out.c (debug_frame_section): New.
1232         (output_call_frame_info): Use debug_frame_section.  Pass it to
1233         dw2_asm_output_offset.
1234         (output_die): Pass appropriate section to dw2_asm_output_offset.
1235         (output_compilation_unit_header): Likewise.
1236         (output_pubnames): Likewise.
1237         (output_aranges): Likewise.
1238         (enum dw_val_class): Break dw_val_class_lbl_offset into
1239         dw_val_class_lineptr and dw_val_class_macptr.
1240         (add_AT_lbl_offset): Delete.
1241         (add_AT_lineptr): New.
1242         (add_AT_macptr): New.
1243         (AT_lbl): Expect a lineptr or macptr.
1244         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
1245         (attr_checksum): Likewise.
1246         (same_dw_val_p): Likewise.
1247         (size_of_die): Likewise.
1248         (value_format): Likewise.
1249         (output_die): Likewise.
1250         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
1251         add_AT_lbl_offset.
1252         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
1253         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
1254         * config/darwin-protos.h (darwin_file_start): New.
1255         (darwin_asm_output_dwarf_offset): New.
1256         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
1257         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
1258         darwin_file_start.
1259         * config/darwin.c (darwin_emit_unwind_label): Don't output label
1260         if not EH section; simplify.
1261         (darwin_file_start): New.
1262         (darwin_asm_output_dwarf_offset): New.
1263         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
1264         mark as 'debug'.
1265         (DEBUG_INFO_SECTION): Likewise.
1266         (DEBUG_ABBREV_SECTION): Likewise.
1267         (DEBUG_ARANGES_SECTION): Likewise.
1268         (DEBUG_MACINFO_SECTION): Likewise.
1269         (DEBUG_LINE_SECTION): Likewise.
1270         (DEBUG_LOC_SECTION): Likewise.
1271         (DEBUG_PUBNAMES_SECTION): Likewise.
1272         (DEBUG_STR_SECTION): Likewise.
1273         (DEBUG_RANGES_SECTION): Likewise.
1274         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
1275         (ASM_OUTPUT_DWARF_OFFSET): New.
1276
1277 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
1278
1279         * config.gcc (tm_defines): Always add to previous value rather
1280         than replacing it.
1281
1282 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
1283
1284         * config/mips/predicates.md (splittable_const_int_operand): New,
1285         split from move_operand.
1286         (splittable_symbolic_operand): New.
1287         (move_operand): Add commentary.  Use splittable_const_int_operand.
1288         Inline mips_atomic_symbolic_constant_p.
1289         * config/mips/mips.md: Add combine splitters for handling moves
1290         of splittable_const_int_operands and splittable_symbolic_operands.
1291         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
1292         (mips_split_symbol): Declare.
1293         (mips_move_integer): Declare.
1294         * config/mips/mips.c (mips_split_p): Make global.
1295         (TARGET_MIN_ANCHOR_OFFSET): Override default.
1296         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
1297         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
1298         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
1299         (mips_offset_within_object_p): Handle block symbols.
1300         (mips_atomic_symbolic_constant_p): Delete.
1301         (mips_cannot_force_const_mem): Return false for constants that
1302         mips_legitimize_move can handle.
1303         (mips_use_blocks_for_constant_p): New function.
1304         (mips_split_symbol): Make global.
1305         (mips_move_integer): Likewise.  Add a temporary register argument.
1306         (mips_legitimize_const_move): Use splittable_const_int_operand and
1307         splittable_symbolic_operand.
1308         (mips_use_anchors_for_symbol_p): New function.
1309         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
1310         (mips_split_p): Declare.  
1311
1312 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
1313
1314         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
1315         (mips*-*-linux*): Likewise.
1316
1317 2006-03-16  Roger Sayle  <roger@eyesopen.com>
1318             Daniel Speyer  <dspeyer@wam.umd.edu>
1319
1320         PR middle-end/18259
1321         * tree-dump.c (dump_real): New function.
1322         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
1323         * Makefile.in (REAL_H): New macro for dependencies on real.h.
1324         (tree-dump.o): Add $(REAL_H) to the dependencies.
1325
1326 2006-03-16  Roger Sayle  <roger@eyesopen.com>
1327
1328         PR middle-end/21781
1329         * real.c (real_from_string): If the mantissa is zero, don't bother
1330         parsing the exponent as the result should always be zero.
1331
1332 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
1333
1334         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
1335
1336 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1337
1338         * config/ia64/ia64.c (stops_p): Added explicit initialization.
1339         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
1340         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
1341         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
1342         ia64_sched_finish_global): New static functions to implement
1343         hooks from gcc_target.sched.
1344         (spec_check_no, max_uid, pending_data_specs): New static variables.
1345         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
1346         ia64_spec_check_src_p): New static functions.
1347         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
1348         (TARGET_SCHED_ADJUST_COST): Removed.
1349         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
1350         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
1351         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
1352         TARGET_SCHED_GEN_CHECK,
1353         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
1354         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
1355         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
1356         Fixed to handle speculation checks.
1357         (rtx_needs_barrier): Fixed to handle speculative loads and
1358         their checks.
1359         (ia64_variable_issue): Added code to count speculative loads and their
1360         checks.
1361         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
1362         speculative loads.
1363         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
1364         New enumerations.
1365         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
1366         New constants.
1367         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
1368         (ia64_reorg): Reset stops_p to NULL after it is freed.
1369         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
1370         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
1371         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
1372         chk_a.
1373         (data_speculative, control_speculative, check_load): New attributes.
1374         (mov<mode>_advanced, mov<mode>_speculative,
1375         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
1376         zero_extend<mode>di2_speculative,
1377         zero_extend<mode>di2_speculative_advanced): New patterns for
1378         data and control speculative loads.
1379         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
1380         check loads.
1381         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
1382         New pattern for data and control speculation checks.
1383         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
1384         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
1385         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
1386         Auxiliary definitions for the patterns.
1387         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
1388         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
1389         constraints.
1390         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
1391         for speculation.
1392         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
1393         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
1394         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
1395         New resource constraints.
1396         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
1397         for speculation.
1398         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
1399         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
1400         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
1401         msched-in-control-spec, msched-ldc, msched-control-ldc,
1402         msched-spec-verbose, msched-prefer-non-data-spec-insns,
1403         msched-prefer-non-control-spec-insns,
1404         msched-count-spec-in-critical-path): New flags to tune speculative
1405         scheduling.
1406         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
1407         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
1408         msched-in-control-spec, msched-ldc, msched-control-ldc,
1409         msched-spec-verbose, msched-prefer-non-data-spec-insns,
1410         msched-prefer-non-control-spec-insns,
1411         msched-count-spec-in-critical-path): Document new flags.
1412
1413 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1414
1415         * target.h (struct spec_info_def): New opaque declaration.
1416         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
1417         speculate_insn, needs_block_p, gen_check,
1418         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
1419         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
1420         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
1421         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
1422         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
1423         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
1424         gcc_target.sched.
1425         (TARGET_SCHED): Use new macros.
1426         * rtl.h (copy_DEPS_LIST_list): New prototype.
1427         * sched-int.h (struct sched_info): Change signature of new_ready field,
1428         adjust all initializations. New fields: add_remove_insn,
1429         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
1430         region_head_or_leaf_p.
1431         (struct spec_info_def): New structure declaration.
1432         (spec_info_t): New typedef.
1433         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
1434         recovery_block, orig_pat.
1435         (glat_start, glat_end): New variables declaraions.
1436         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
1437         New access macros.
1438         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
1439         DETACH_LIFE_INFO, USE_GLAT.
1440         (enum SPEC_SCHED_FLAGS): New enumeration.
1441         (NOTE_NOTE_BB_P): New macro.
1442         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
1443         attach_life_info, debug_spec_status, check_reg_live): New functions.
1444         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
1445         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
1446         sched-ebb.c
1447         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
1448         * ddg.c (get_block_head_tail): Adjust all uses.
1449         * modulo-sched.c (get_block_head_tail): Adjust all uses.
1450         (sms_sched_info): Initialize new fields.
1451         (contributes_to_priority): Removed.
1452         * haifa-sched.c (params.h): New include.
1453         (get_block_head_tail): Adjust all uses.
1454         (ISSUE_POINTS): New macro.
1455         (glat_start, glat_end): New global variables.
1456         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
1457         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
1458         old_last_basic_block, before_recovery, current_sched_info_var,
1459         rgn_n_insns, luid): New static variables.
1460         (insn_cost1): New function.  Move logic from insn_cost to here.
1461         (find_insn_reg_weight1): New function.  Move logic from
1462         find_insn_reg_weight to here.
1463         (reemit_notes, move_insn, max_issue): Change signature.
1464         (move_insn1): Removed.
1465         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
1466         extend_bb): New static functions to support extension of scheduler's
1467         data structures.
1468         (generate_recovery_code, process_insn_depend_be_in_spec,
1469         begin_speculative_block, add_to_speculative_block,
1470         init_before_recovery, create_recovery_block, create_check_block_twin,
1471         fix_recovery_deps): New static functions to support
1472         generation of recovery code.
1473         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
1474         restore_bb_notes, move_block_after_check, move_succs): New static
1475         functions to support ebb scheduling.
1476         (init_glat, init_glat1, attach_life_info1, free_glat): New static
1477         functions to support handling of register live information.
1478         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
1479         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
1480         add_jump_dependencies): New static functions.
1481         (check_cfg, has_edge_p, check_sched_flags): New static functions for
1482         consistancy checking.
1483         (debug_spec_status): New function to call from debugger.
1484         (priority): Added code to handle speculation checks.
1485         (rank_for_schedule): Added code to distinguish speculative instructions.
1486         (schedule_insn): Added code to handle speculation checks.
1487         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
1488         Fixed to handle ebbs.
1489         (move_insn): Added code to handle ebb scheduling.
1490         (max_issue): Added code to use ISSUE_POINTS of instructions.
1491         (choose_ready): Added code to choose between speculative and
1492         non-speculative instructions.
1493         (schedule_block): Added code to handle ebb scheduling and scheduling of
1494         speculative instructions.
1495         (sched_init): Initialize new variables.
1496         (sched_finish): Free new variables.  Print statistics.
1497         (try_ready): Added code to handle speculative instructions.
1498         * lists.c (copy_DEPS_LIST_list): New function.
1499         * sched-deps.c (extend_dependency_caches): New function.  Move logic
1500         from create_dependency_caches to here.
1501         (get_dep_weak, ds_merge): Make global.
1502         * genattr.c (main): Code to output prototype for
1503         dfa_clear_single_insn_cache.
1504         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
1505         (output_dfa_clean_insn_cache_func): Code to output
1506         dfa_clear_single_insn_cache function.
1507         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
1508         n_insns.
1509         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
1510         Removed.
1511         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
1512         New static variables.
1513         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
1514         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
1515         struct sched_info.
1516         (ebb_sched_info): Initialize new fields.
1517         (get_block_head_tail): Adjust all uses.
1518         (compute_jump_reg_dependencies): Fixed to use glat_start.
1519         (schedule_ebb): Code to remove unreachable last block.
1520         (schedule_ebbs): Added code to update register live information.
1521         * sched-rgn.c (region_sched_info): Initialize new fields.
1522         (get_block_head_tail): Adjust all uses.
1523         (last_was_jump): Removed.  Adjust users.
1524         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
1525         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
1526         Implement new hooks.
1527         (check_dead_notes1): New static function.
1528         (struct region): New fields: dont_calc_deps, has_real_ebb.
1529         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
1530         (BB_TO_BLOCK): Fixed to handle EBBs.
1531         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
1532         (ebb_head): New static variable.
1533         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
1534         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
1535         new fields.
1536         (compute_dom_prob_ps): New assertion.
1537         (check_live_1, update_live_1): Fixed to work with glat_start instead of
1538         global_live_at_start.
1539         (init_ready_list): New assertions.
1540         (can_schedule_ready_p): Split update code to begin_schedule_ready.
1541         (new_ready): Add support for BEGIN_CONTROL speculation.
1542         (schedule_insns): Fixed code that updates register live information
1543         to handle EBBs.
1544         (schedule_region): Fixed to handle EBBs.
1545         (init_regions): Use extend_regions and check_dead_notes1.
1546         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
1547         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
1548         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
1549         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
1550         TARGET_SCHED_GEN_CHECK,
1551         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
1552         TARGET_SCHED_SET_SCHED_FLAGS): Document.
1553         * doc/invoke.texi (max-sched-insn-conflict-delay,
1554         sched-spec-prob-cutoff): Document.
1555
1556 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1557
1558         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
1559         inter_tick, queue_index.
1560         (struct sched_info): Change signature of init_ready_list field.
1561         Adjust all initializations.
1562         (RESOLVED_DEPS): New access macro.
1563         (ready_add): Remove prototype.
1564         (try_ready): Add prototype.
1565         * sched-rgn.c (init_ready_list): Use try_ready.
1566         (schedule_region): Initialize
1567         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
1568         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
1569         (init_ready_list): Use try_ready.
1570         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
1571         * lists.c (remove_list_elem): Remove `static'.
1572         (remove_free_INSN_LIST_elem): New function.
1573         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
1574         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
1575         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
1576         New constants.
1577         (readyp): New variable.
1578         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
1579         change_queue_index, resolve_dep): New static functions.
1580         (try_ready): New function.  Adjust callers in sched-rgn.c and
1581         sched-ebb.c to use it instead of ready_add.
1582         (clock_var): Move at the begining of file.
1583         (rank_for_schedule): Fix typo.
1584         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
1585         (ready_lastpos): Enforce assertion.
1586         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
1587         update all callers.
1588         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
1589         (schedule_insn): Rewrite to use try_ready and resolve_dep.
1590         (queue_to_ready): Use free_INSN_LIST_list.
1591         (early_queue_to_ready): Fix typo.
1592         (schedule_block): Init readyp.  Move init_ready_list call after the
1593         initialization of clock_var.  Fix error in rejecting insn by
1594         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
1595         that previously corrected INSN_TICKs.  Add code for handling
1596         QUEUE_INDEX.
1597         (set_priorities): Fix typo.
1598         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
1599         Clarify comment and code that keeps current_sched_info->next_tail
1600         non-null.
1601
1602 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1603
1604         * sched-rgn.c (extend_rgns): New static function.
1605         (find_rgns): Use it.
1606         (gather_region_statistics, print_region_statistics): New static
1607         functions.
1608         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
1609         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
1610
1611 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1612             Andrey Belevantsev <abel@ispras.ru>
1613
1614         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
1615         * lists.c (unused_deps_list): New variable.
1616         (free_list): Add assertions to verify the proper distinguishing 
1617         between INSN_LISTs and DEPS_LISTs.
1618         (find_list_elem, remove_list_elem, remove_list_node): New static
1619         functions.
1620         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
1621         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
1622         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
1623         (alloc_INSN_LIST): Assert that the list we're working on is indeed
1624         an INSN_LIST.
1625         (free_INSN_LIST_node): Likewise.
1626         * modulo-sched.c (current_sched_info): Initialize flags field.
1627         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
1628         * rtl.def (DEPS_LIST): Define.
1629         * rtl.h: Declare new functions from lists.c.
1630         * sched-deps.c (spec_dependency_cache): New static variable.
1631         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
1632         (add_dependence): Change return type to void.  Move the logic to ...
1633         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
1634         (delete_all_dependences): Add comment about forward_dependency_cache.
1635         Handle spec_dependency_cache.  Handle DEPS_LISTs.
1636         (fixup_sched_groups): Clarify the change of priority of output
1637         and anti dependencies.
1638         (sched_analyze_2): Adjust add_dependence calls to create data
1639         speculative dependence.
1640         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
1641         Adjust all callers.  Handle DEPS_LISTS.
1642         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
1643         presence of speculation.
1644         (init_dependency_caches, free_dependency_caches):
1645         Handle spec_dependency_cache.
1646         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
1647         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
1648         New static functions.
1649         (add_or_update_back_dep, add_or_update_back_forw_dep,
1650         add_back_forw_dep, delete_back_forw_dep): New functions.
1651         * sched-int.h (ds_t, dw_t): New typedefs.
1652         (struct sched_info): Add new field flags.
1653         (struct haifa_insn_data): Add new bitfield has_internal_dep.
1654         Prototype new sched-deps.c functions.
1655         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
1656         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
1657         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
1658         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
1659         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
1660         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
1661         New constants.
1662         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
1663         New enums.
1664         * sched-rgn.c (current_sched_info): Initialize flags field.
1665         (schedule_insns): Initialize current_sched_info before the sched_init
1666         call.
1667         * sched-ebb.c (current_sched_info): Initialize flags field.
1668         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
1669         Call add_or_update_back_dep instead of add_dependence.
1670         Create control speculative dependencies.
1671         (schedule_insns): Initialize current_sched_info before the sched_init
1672         call.
1673
1674 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
1675
1676         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
1677         fs->signal_frame.
1678         (sh_fallback_frame_state): Likewise.
1679
1680 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
1681
1682         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
1683         Do switch on default_use_cxa_atexit.
1684         (powerpc*-*-darwin*): Build crt2.o on powerpc.
1685         * config/darwin-crt3.o: New.
1686         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
1687         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
1688         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
1689         OS version.
1690         * config/rs6000/t-darwin: Move crt2.o building to here.
1691         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
1692         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
1693         of __cxa_atexit.
1694
1695 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1696
1697         * config/vax/vax.c (nonindexed_address_p): Change logical negation
1698         from '! xxx' to '!xxx' for coding-style conformance.
1699         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
1700         (EXTRA_CONSTRAINT): Likewise.
1701         * config/vax/vax.md (four unnamed insns): Likewise.
1702         
1703 2006-03-15  Paul Brook  <paul@codesourcery.com>
1704
1705         * config/arm/arm.c (minipool_pad): New.
1706         (add_minipool_forward_ref): Include pool alignment padding in address
1707         calculation.
1708         (push_minipool_fix): Set minipool_pad.
1709         (minipool_pad): Ditto.
1710
1711 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1712
1713         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
1714         instead of GET_CODE() == MEM and REG_P() instead of
1715         GET_CODE() == REG.
1716         (print_operand_address): Likewise.
1717         (vax_address_cost): Likewise.
1718         (vax_rtx_costs): Likewise.
1719         (vax_notice_update_cc): Likewise.
1720         (vax_output_int_add): Likewise.
1721         (INDEX_REGISTER_P): Likewise.
1722         (BASE_REGISTER_P): Likewise.
1723         (nonindexed_address_p): Likewise.
1724         (vax_mode_dependent_address_p): Likewise.
1725         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
1726         (PRINT_OPERAND): Likewise.
1727         * config/vax/vax.md (ashlsi3): Likewise.
1728         (ashlsi3): Likewise.
1729         (some more unnamed insns): Likewise.
1730
1731 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
1732
1733         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
1734         iterator-style macro.
1735         (mark_control_dependent_edges_necessary): Update the use of
1736         EXECUTE_IF_CONTROL_DEPENDENT.
1737
1738 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
1739
1740         * config/sh/predicates.md (cache_address_operand): Special.
1741         (ua_address_operand): Likewise.
1742
1743 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
1744
1745         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
1746         loop notes.
1747         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
1748
1749 2006-03-15  Andreas Schwab  <schwab@suse.de>
1750
1751         * gensupport.c (identify_predicable_attribute): Don't free p_false
1752         when it is still in use.
1753
1754 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
1755
1756         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
1757         the default setting here.
1758
1759 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
1760
1761         * tree-pass.h (pass_cfg): Remove.
1762         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
1763         * passes.c (pass_cfg): Don't run it.
1764
1765 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
1766
1767         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
1768         * reg-stack.c (stack_regs_mentioned_data): Change the type to
1769         VEC(char,heap) *.
1770         (stack_regs_mentioned): Update the uses of
1771         stack_regs_mentioned_data.  Don't access the array beyond its
1772         end.
1773         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
1774         Don't include gt-reg-stack.h.
1775
1776         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
1777         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
1778
1779         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
1780
1781         PR middle-end/26684
1782         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
1783         STACK_REGS.
1784
1785 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1786
1787         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
1788
1789 2006-03-14  Richard Guenther  <rguenther@suse.de>
1790
1791         PR tree-optimization/26672
1792         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
1793         SSA form.
1794
1795 2006-03-14  Richard Guenther  <rguenther@suse.de>
1796
1797         PR tree-optimization/26667
1798         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
1799         node for the callees.  Always allow inlining if it will shrink
1800         the function size.
1801
1802 2006-03-14  Richard Guenther  <rguenther@suse.de>
1803
1804         PR middle-end/26659
1805         * builtins.c (get_pointer_alignment): Prefer alignment
1806         information from decls over that from types.
1807
1808 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
1809
1810         PR target/26657
1811         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
1812
1813 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
1814
1815         * config/rs6000/rs6000.opt (mdlmzb): New option.
1816         (msched-prolog, msched-epilog): Use Var not Mask.
1817         * doc/invoke.texi (-mdlmzb): Document.
1818         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1819         MASK_SCHED_PROLOG.
1820         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
1821         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
1822
1823 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
1824
1825         PR rtl-optimization/25739
1826         * bt-load.c (augment_live_range): Free tos pointer.
1827
1828         * gensupport.c (identify_predicable_attribute): Free
1829         p_false pointer.
1830         * gcov.c (create_file_names): Free name pointer.
1831
1832 2006-03-13  Roger Sayle  <roger@eyesopen.com>
1833
1834         PR middle-end/26557
1835         * stmt.c (emit_case_nodes): Handle the case where the index is a
1836         CONST_INT, where the comparison mode is specified by the index type.
1837
1838 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1839
1840         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
1841         is defined.
1842
1843 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
1844
1845         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
1846         (*branch_fp_inverted): Likewise.
1847
1848 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
1849
1850         PR middle-end/25989
1851         * omp-low.c (expand_omp_for_generic): Mark istart0
1852         and iend0 as addressable.
1853
1854 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
1855
1856         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
1857
1858 2006-03-13  Jeff Law  <law@redhat.com>
1859
1860         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
1861         virtual operands are interesting.
1862         (vrp_visit_stmt): Corresponding changes.
1863
1864 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1865
1866         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
1867         of RETS.
1868         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
1869         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
1870         * config/bfin/crti.S: Use it instead of __PIC__.
1871         * config/bfin/crtn.S: Likewise.
1872
1873         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
1874         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
1875         not if flag_pic.
1876         Lose 'G' modifier for call operand.
1877         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
1878         recognize 'G' modifier.
1879
1880 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
1881
1882         PR middle-end/18859
1883         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
1884         * stmt.c (expand_case): Likewise.
1885
1886 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
1887
1888         PR rtl-optimization/26254
1889         * loop-invariant.c (seq_insns_valid_p): New function.
1890         (move_invariant_reg): Only emit new code if it is valid.
1891
1892 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
1893
1894         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
1895         Removed.
1896         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
1897         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
1898         (commit_one_edge_insertion): Do not look for loop notes.
1899
1900 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
1901
1902         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
1903         flag_test_coverage out of loop.
1904
1905 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
1906
1907         * final.c (shorten_branches): Remove outdated comment, and turn
1908         the if branch that guards it to continue.
1909
1910 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
1911
1912         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
1913         * cfgloop.h (struct loop): Remove unused fields.
1914
1915 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
1916
1917         * doc/invoke.texi (-fdump-rtl-loop): Remove.
1918         (-dL, -fdump-rtl-loop2): Update the dump file names 
1919
1920         * doc/invoke.texi: Update dump file names.
1921
1922 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
1923
1924         * predict.c (estimate_probability): Remove.
1925         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
1926         * basic-block.h (estimate_probability): Remove prototype.
1927         * passes.c (finish_optimization_passes): Dump branch prediction or
1928         profiling heuristics to the .profile tree dump.
1929         (init_optimization_passes): Unqueue pass_branch_prob.
1930
1931         * doc/invoke.texi (-fdump-rtl-bp): Remove.
1932
1933 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
1934
1935         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
1936         * rtl.h (LABEL_NEXTREF): Remove field accessor.
1937
1938 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
1939
1940         * function.h (frame_offset_overflow): Declare.
1941         * function.c (frame_offset_overflow): New function.
1942         (assign_stack_local_1): Call it to detect that the offset overflows.
1943         * cfgexpand.c (alloc_stack_frame_space): Likewise.
1944
1945 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
1946
1947         * config/sh/sh.c: Include alloc-pool.h.
1948         (label_ref_list_pool): New alloc pool.
1949         (label_ref_list_t): New type for lists of labels.
1950         (struct pool_node): Make wend a label_ref_list_t.
1951         (add_constant): Use the new type, eradicate LABEL_NEXTREF
1952         references.
1953         (dump_table): Likewise.
1954         (sh_reorg): Set up the alloc pool before using add_constant and
1955         dump_table, and destroy it when finishing.
1956
1957 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
1958
1959         * config/mips/mips.c: Remove redundant comment.
1960
1961 2006-03-10  Jason Merrill  <jason@redhat.com>
1962
1963         PR c/26004
1964         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if 
1965         the target was declared 'register'.
1966
1967 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
1968
1969         * genpreds.c (write_insn_constraint_len): Change definition of
1970         insn_constraint_len to return size_t to match the declaration.
1971
1972 2006-03-10  DJ Delorie  <dj@redhat.com>
1973
1974         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
1975         start at zero.
1976         (m32c_expand_insv): Fix test for an AND mask.
1977
1978 2006-03-10  Richard Guenther  <rguenther@suse.de>
1979
1980         PR middle-end/26565
1981         * builtins.c (get_pointer_alignment): Handle component
1982         references for field alignment.
1983
1984 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
1985
1986         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
1987         when building with libgloss.
1988         (sh*elf): Implement --without-fp option.
1989         (sh64-superh-linux*): Don't multilib. 
1990
1991 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
1992
1993         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
1994
1995 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
1996
1997         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
1998         Set it when one of the replacement functions returned true.
1999         Return TODO_cleanup_cfg if cfgchanged is true.
2000         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
2001
2002 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
2003
2004         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
2005         instead of gen_lowpart.
2006
2007 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
2008
2009         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
2010         interface.
2011         (mips_output_order_conditional_branch): Declare.
2012         * config/mips/mips.h (MIPS_BRANCH): New macro.
2013         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
2014         for the comparison.  Use gen_condjump.
2015         (mips_output_conditional_branch): Rework interface to take the
2016         asm templates for a direct branch and the inverse of a direct branch.
2017         (mips_output_order_conditional_branch): New function.
2018         (mips_builtin_branch_and_move): New function.
2019         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
2020         branch condition.  Use gen_single_cc as the condition for
2021         __builtin_mips_upper_* or __builtin_mips_lower_*.
2022         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
2023         Use VOIDmode for the branch condition.
2024         * config/mips/predicates.md (order_operator): New predicate.
2025         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
2026         (branch_fp): Rename to...
2027         (*branch_fp): ...this.  Remove mode from comparison operator.
2028         Use new mips_output_conditional_branch interface.
2029         (branch_fp_inverted): Rename to...
2030         (*branch_fp_inverted): ...this and update as for *branch_fp.
2031         (*branch_zero<mode>): Rename to...
2032         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
2033         Use mips_output_order_conditional_branch.  Only accept ordered
2034         comparisons.  
2035         (*branch_zero<mode>_inverted): Rename to...
2036         (*branch_order<mode>_inverted): ...this and update as for
2037         *branch_order<mode>.
2038         (*branch_equality<mode>): Accept zero as the second operand to
2039         the equality operator.  Use the new mips_output_conditional_branch
2040         interface.
2041         (*branch_equality<mode>_inverted): Likewise.
2042         (condjump): New expander.
2043         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
2044         operator.
2045         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
2046         (bc1any2t, bc1any2f): Likewise.
2047         (single_cc): New expander.
2048         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
2049
2050 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
2051
2052         * doc/md.texi: Update documentation of MIPS constraints.
2053         * config/mips/constraints.md: New file.
2054         * config/mips/mips.md: Include it.
2055         * config/mips/mips.c (mips_char_to_class): Delete.
2056         (override_options): Don't initialize mips_char_to_class.
2057         * config/mips/mips.h (mips_char_to_class): Delete.
2058         (REG_CLASS_FROM_LETTER): Delete.
2059         (CONST_OK_FOR_LETTER_P): Delete.
2060         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2061         (EXTRA_CONSTRAINT_Y): Delete.
2062         (EXTRA_CONSTRAINT_STR): Delete.
2063         (CONSTRAINT_LEN): Delete.
2064         (EXTRA_MEMORY_CONSTRAINT): Delete.
2065
2066 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
2067
2068         * tree-cfg.c (move_block_to_fn): Remove the statements from the
2069         original fn's eh regions.
2070
2071 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
2072
2073         * fold-const.c (build_range_check): Make sure to use a valid type to
2074         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
2075         transformation.
2076
2077         (range_predecessor): New static function.
2078         (range_successor): Likewise.
2079         (merge_ranges): Use them to compute predecessors and successors of
2080         range bounds.
2081
2082 2006-03-09  Roger Sayle  <roger@eyesopen.com>
2083
2084         PR middle-end/26561
2085         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
2086         X op C3, consider whether C3 overflows towards +Inf or -Inf.
2087
2088 2006-03-08  DJ Delorie  <dj@redhat.com>
2089
2090         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
2091         (addpsi3): Expand to include memory operands.  Remove
2092         reload-specific splits.
2093         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
2094         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
2095         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
2096         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
2097         (shift1_qi, shift1_hi, insv): New.
2098         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
2099         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
2100         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
2101         cond_to_int): New.
2102         * config/m32c/m32c-protos.h: Update as needed.
2103         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
2104         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
2105         Fail for unrecognized R* constraints.
2106         (m32c_cannot_change_mode_class): Be more picky about pseudos.
2107         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
2108         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
2109         Add Sp constraint.
2110         (m32c_init_libfuncs): New.
2111         (m32c_legitimate_address_p): Add debug wrapper.
2112         (m32c_rtx_costs): New.
2113         (m32c_address_cost): New.
2114         (conversions): Add 'B' prefix.
2115         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
2116         operands, or word regnames for QI operands.  'B' prints bit
2117         position.
2118         (m32c_expand_setmemhi): New.
2119         (m32c_expand_movmemhi): New.
2120         (m32c_expand_movstr): New.
2121         (m32c_expand_cmpstr): New.
2122         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
2123         (m32c_expand_neg_mulpsi3): Handle non-ints.
2124         (m32c_cmp_flg_0): New.
2125         (m32c_expand_movcc): New.
2126         (m32c_expand_insv): New.
2127         (m32c_scc_pattern): New.
2128         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
2129         a0/a1 out of SIregs.
2130         (STORE_FLAG_VALUE): New.
2131         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
2132         code macros.
2133         (no_insn): New.
2134         * config/m32c/mov.md: Make constraints more liberal.
2135         (zero_extendqihi2): Optimize r0/r1 case.
2136         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
2137         * config/m32c/predicates.md (m32c_any_operand): New.
2138         (m32c_nonimmediate_operand): New.
2139         (m32c_hl_operand): New.
2140         (m32c_r3_operand): New.
2141         (ap_operand): New.
2142         (ma_operand): New.
2143         (memsym_operand): New.
2144         (memimmed_operand): New.
2145         (a_qi_operand): New.
2146         (m32c_eqne_operator): New.
2147         (m32c_1bit8_operand): New.
2148         (m32c_1bit16_operand): New.
2149         (m32c_1mask8_operand): New.
2150         (m32c_1mask16_operand): New.
2151         * config/m32c/blkmov.md: New file.
2152         * config/m32c/t-m32c (MD_FILES): Add blkmov.
2153
2154 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
2155
2156         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
2157         unsigned to fix signed/unsigned comparison issue in
2158         DWARF2_FRAME_REG_OUT.
2159         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
2160         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
2161
2162         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
2163         of ptr into the ENABLE_CHECKING section.
2164
2165 2006-03-08  Jeff Law  <law@redhat.com>
2166
2167         * tree-vrp.c (infer_value_range): Only count pointer uses
2168         and dereferences if -fdelete-null-pointer-checks is enabled.
2169
2170         * tree-vrp.c (find_assert_locations): Infer value ranges for
2171         single use pointers, but do not create ASSERT_EXPRs for them.
2172         When a non-null range is inferred for a pointer, backwards
2173         propagate that range to other equivalent pointers through the
2174         use-def chain.
2175
2176 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
2177
2178         PR bootstrap/26500
2179         * Makefile.in (dvi, html, install-info): Invoke the corresponding
2180         language hook targets.
2181         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
2182         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
2183         if language hook targets were missing.
2184
2185 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
2186
2187         * tree-ssa-opfinalize.h: Removed.
2188         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
2189         dependency.
2190         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
2191         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
2192         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
2193         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
2194         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
2195         finalize_ssa_v_must_def_ops): New.
2196
2197 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
2198
2199         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
2200         block as parameter.
2201
2202 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
2203
2204         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
2205
2206         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
2207         addresses with offsets; reorganize.
2208
2209         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
2210         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
2211         (expand_builtin_init_dwarf_reg_sizes): Likewise.
2212
2213 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
2214
2215         PR target/26588
2216         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
2217
2218 2006-03-08  Ben Elliston  <bje@au.ibm.com>
2219
2220         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
2221
2222 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
2223
2224         PR gomp/26238
2225         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
2226         expansion.
2227
2228 2006-03-07  Richard Guenther  <rguenther@suse.de>
2229
2230         PR tree-optimization/26587
2231         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
2232
2233 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
2234
2235         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
2236
2237 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
2238
2239         * hooks.c (hook_bool_mode_rtx_true): New function.
2240         * hooks.h (hook_bool_mode_rtx_true): Declare.
2241         * toplev.c (compile_file): Call output_shared_constant_pool.
2242         * varasm.c (shared_constant_pool): New variable.
2243         (assemble_start_function, assemble_end_function): Remove arguments
2244         from call to output_constant_pool.
2245         (create_constant_pool): New function, split out from...
2246         (init_varasm_status): ...here.
2247         (force_const_mem): Choose between the shared and per-function constant
2248         pools.  Set current_function_uses_const_pool when reusing old entries
2249         as well as when creating new ones.
2250         (mark_constant): Ignore data argument.
2251         (mark_constants): Remove pool argument.
2252         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
2253         to decide whether the function uses a constant pool.
2254         (output_constant_pool_contents): New function, split out from...
2255         (output_constant_pool): ...here.
2256         (output_shared_constant_pool): New function.
2257         (init_varasm_once): Initialize shared_constant_pool.
2258         * output.h (output_constant_pool): Delete.
2259         (output_shared_constant_pool): Declare.
2260         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
2261         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
2262
2263 2006-03-06  Nick Clifton  <nickc@redhat.com>
2264
2265         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
2266         flag_strength_reduce.
2267
2268 2006-03-06  Ben Elliston  <bje@au.ibm.com>
2269
2270         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
2271         x86_64-*-linux* configurations.
2272
2273         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
2274         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
2275
2276 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
2277
2278         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
2279         Remove.
2280         * basic-block.h: Remove the extern for
2281         rediscover_loops_after_threading.
2282
2283         * cfgloop.c (cancel_loop): Make it static.
2284         * cfgloop.h: Remove the prototype for cancel_loop.
2285
2286         * flow.c (recompute_reg_usage): Make it static.
2287         * rtl.h: Remove the prototype for recompute_reg_usage.
2288
2289         * function.c (use_return_register): Make it static.
2290         * function.h: Remove the prototype.
2291
2292 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
2293
2294         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
2295         Remove.
2296         * recog.h: Remove the prototype for
2297         validate_change_maybe_volatile.
2298
2299 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
2300
2301         * rtlanal.c (replace_reg): Remove.
2302         * rtl.h: Remove the prototype for replace_reg.
2303
2304 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
2305
2306         * regclass.c (reg_scan_update): Remove.
2307         (reg_scan_mark_refs): Remove the last argument.
2308         * rtl.h: Remove the prototype for reg_scan_update.
2309
2310 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
2311
2312         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
2313         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
2314         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
2315         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
2316         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
2317         loop-invariant.c, omp-low.c, opts.c, passes.c,
2318         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
2319         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
2320         tree-ssa-structalias.c, tree-ssa-threadedge.c,
2321         tree-ssa-threadupdate.c, tree-vect-patterns.c,
2322         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
2323         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
2324
2325 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
2326
2327         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
2328         * dwarf2out.h: Remove the prototype for
2329         dwarf2out_add_library_unit_info.
2330
2331 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
2332
2333         * tree.c (add_var_to_bind_expr): Remove.
2334         * tree.h: Remove the prototype for add_var_to_bind_expr.
2335
2336 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
2337
2338         * regclass.c (n_non_fixed_regs): Remove.
2339         (init_reg_sets_1, globalize_reg): Remove all uses of
2340         n_non_fixed_regs.
2341         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
2342
2343 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
2344
2345         * rtlanal.c (insns_safe_to_move_p): Remove.
2346         * rtl.h: Remove the prototype for insns_safe_to_move_p.
2347
2348 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
2349
2350         * expmed.c (expand_mult_add): Remove.
2351         * expr.h: Remove the prototype for expand_mult_add.
2352
2353 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
2354
2355         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
2356         and REG_SAVED_VAL_EXP constants.
2357         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
2358         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
2359         Handle regs stored by value.
2360         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
2361         (execute_cfa_program): Handle DW_CFA_val_offset,
2362         DW_CFA_val_offset_sf and DW_CFA_val_expression.
2363         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
2364         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
2365         (uw_install_context_1): Handle target regs stored by value.
2366
2367 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
2368
2369         * tree-sra.c (tree_sra): Return todoflags;
2370         (generate_one_element): Set TODO_update_smt_usage if needed.
2371         (pass_sra): Remove TODO_update_smt_usage.
2372         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
2373         parameter.
2374         (tree_ssa_forward_propagate_single_use_vars): Return
2375         TODO_update_smt_usage if we need to update SMT usage.
2376         (pass_forwprop): Remove TODO_update_smt_usage.
2377         
2378 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
2379
2380         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
2381         (correct_use_link): Remove reference to get_stmt_operands.
2382         (update_stmt_operands): Likewise.
2383         (get_modify_expr_operands): New function factored out of
2384         parse_ssa_operands and get_expr_operands.
2385         Try to create V_MUST_DEFs for LHS by default.
2386         (get_expr_operands) <case MODIFY_EXPR>: Call
2387         get_modify_expr_operands.
2388         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
2389         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
2390         (parse_ssa_operands) <case MODIFY_EXPR>: Call
2391         get_modify_expr_operands.
2392
2393 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
2394
2395         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
2396         * tree-flow.h: Remove the prototype for
2397         referenced_var_lookup_if_exists.
2398
2399 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
2400
2401         PR rtl-optimization/26345
2402         PR target/19061
2403         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
2404
2405 2006-03-03  Roger Sayle  <roger@eyesopen.com>
2406
2407         PR tree-optimization/26524
2408         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
2409         fold_convert to create a constant of the appropriate type.
2410
2411 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
2412
2413         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2414         SYMBOL_REF_IN_BLOCK_P.
2415         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
2416         of SYMBOL_FLAG_IN_BLOCK.
2417         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
2418         instead of SYMBOL_REF_IN_BLOCK_P.
2419         * explow.c (use_anchored_address): Likewise.
2420         * rtl.c (rtx_size): Likewise.
2421         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
2422         instead of SYMBOL_FLAG_IN_BLOCK.
2423         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2424         SYMBOL_REF_IN_BLOCK_P.
2425         (assemble_variable): Likewise.
2426         (output_constant_def_contents): Likewise.
2427         (output_constant_pool): Likewise.
2428         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
2429         instead of SYMBOL_FLAG_IN_BLOCK.
2430         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2431         SYMBOL_REF_IN_BLOCK_P.
2432         (SYMBOL_REF_BLOCK): Likewise.
2433         (SYMBOL_REF_OFFSET): Likewise.
2434         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
2435         SYMBOL_REF_IN_BLOCK_P.
2436         (SYMBOL_FLAG_IN_BLOCK): Replace with...
2437         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
2438         (SYMBOL_REF_IN_BLOCK_P): Replace with...
2439         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
2440
2441 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
2442
2443         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
2444
2445 2006-03-02  Roger Sayle  <roger@eyesopen.com>
2446
2447         * simplify-rtx.c (simplify_unary_operation): When simplifying
2448         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
2449         that we perform the right shift in the appropriate mode, and
2450         then extend or truncate the result to requested mode.
2451
2452 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
2453
2454         * gengtype.c (main): Handle double_int type.
2455         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
2456         * double-int.c: New file.
2457         * double-int.h: New file.
2458         * system.h: Include doubleint.h.
2459         * Makefile.in (SYSTEM_H): Include double-int.h.
2460         (double-int.o): Add.
2461
2462 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
2463
2464         PR bootstrap/26478
2465         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
2466         copying over it.
2467
2468 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
2469
2470         * tree-vrp.c (remove_range_assertions): Do not update statements
2471         unnecessarily.
2472
2473 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
2474
2475         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
2476         cleanup.
2477         * gcse.c (rest_of_handle_gcse): Ditto.
2478         * except.c (gate_handle_eh): Ditto.
2479         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
2480         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
2481
2482 2006-03-02  Eric Christopher  <echristo@apple.com>
2483
2484         * config/i386/i386.c (machopic_output_stub): Add indirection to
2485         jump.
2486
2487 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
2488
2489         * loop.c: Removed.
2490
2491 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
2492
2493         Sun Niagara specific optimizations.
2494         * config.gcc: Recognize niagara as target.
2495         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
2496         (TARGET_CPU_niagara): Define.
2497         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
2498         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
2499         (CPP_CPU_SPEC): Handle -mcpu=niagara.
2500         (ASM_CPU_SPEC): Likewise.
2501         (PROCESSOR_NIAGARA): New enum entry.
2502         (REGISTER_MOVE_COST): Handle Niagara.
2503         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
2504         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
2505         (sparc_override_options): Recognize "niagara", set appropriate
2506         default MASK_* values for it, and align functions to 32-bytes
2507         by default just like ULTRASPARC/ULTRASPARC3.
2508         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
2509         (sparc64_initialize_trampoline): Likewise.
2510         (sparc_use_sched_lookahead): Use zero for niagara.
2511         (sparc_issue_rate): Use one for niagara.
2512         * config/sparc/niagara.md: New file.
2513         * config/sparc/sparc.md: Include it.
2514         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
2515         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
2516         when default cpu is niagara.
2517         (CPP_CPU_SPEC): Handle -mcpu=niagara.
2518         (ASM_CPU_SPEC): Likewise.
2519         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
2520         when default cpu is niagara.
2521         (ASM_CPU_SPEC): Handle -mcpu=niagara.
2522         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
2523         just like v9/ultrasparc/ultrasparc3.
2524         * doc/invoke.texi: Add documentation for "niagara" and improve
2525         existing documentation for ultrasparc variants.
2526
2527 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
2528
2529         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
2530
2531 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
2532
2533         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
2534         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
2535         and say that only one is needed.
2536         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
2537         * target.h (have_switchable_bss_sections): New hook.
2538         * explow.c (use_anchored_address): Check that the symbol is in a block.
2539         * varasm.c (tls_comm_section, comm_section, lcomm_section)
2540         (bss_noswitch_section): New variables.
2541         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
2542         (get_noswitch_section): New function.
2543         (get_block_for_section): Allow SECT to be null.
2544         (unlikely_text_section_p): Use SECTION_STYLE.
2545         (bss_initializer_p): New function.
2546         (get_variable_section): Move earlier in file.  Take a new argument,
2547         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
2548         Return one of the new *_sections in such cases.
2549         (get_block_for_decl): New function, extracting some logic from
2550         use_blocks_for_decl_p.
2551         (change_symbol_section): Remove in favor of...
2552         (change_symbol_block): ...this new function.
2553         (use_blocks_for_decl_p): Remove checks now performed by
2554         get_block_for_decl.
2555         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
2556         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
2557         (emit_local, emit_bss, emit_common): ...these new functions.
2558         Return true if the alignment was honored.
2559         (emit_tls_common): New function.
2560         (asm_emit_uninitialised): Delete.
2561         (assemble_variable_noswitch): New function, split out from...
2562         (assemble_variable): ...here.  Don't make decisions about common
2563         variables here.  Globalize all public decls that go into non-common
2564         sections.  Check whether SYMBOL_REF_BLOCK is null.
2565         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
2566         (output_constant_pool): Likewise.
2567         (init_varasm_once): Initialize the new section variables.
2568         (have_global_bss_p): New function.
2569         (categorize_decl_for_section): Use bss_initializer_p.
2570         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
2571         (place_block_symbol): Assert that the symbol must be in a block.
2572         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
2573         (TARGET_INITIALIZER): Include it.
2574         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
2575         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
2576         (SECTION_MACH_DEP): Bump by two.
2577         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
2578         (unnamed_section): Mention SECTION_UNNAMED in comment.
2579         (named_section): Likewise SECTION_NAMED.
2580         (noswitch_section_callback): New type.
2581         (noswitch_section): New structure.
2582         (section): Add a noswitch_section alternative.
2583         (SECTION_STYLE): New macro.
2584         (tls_comm_section, comm_section, lcomm_section): Declare.
2585         (bss_noswitch_section, have_global_bss_p): Declare.
2586         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
2587         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
2588         Override.
2589         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
2590         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
2591         Override.
2592
2593 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
2594
2595         * gcc/tree-vrp.c (execute_vrp): Return value.
2596         * gcc/regrename.c (rest_of_handle_regrename): Ditto.
2597         * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
2598         * gcc/tree-complex.c (tree_lower_complex): Ditto.
2599         (tree_lower_complex_O0): Ditto.
2600         * gcc/tracer.c (rest_of_handle_tracer): Ditto.
2601         * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
2602         * gcc/postreload.c (rest_of_handle_postreload): Ditto.
2603         * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
2604         (execute_tail_calls): Ditto.
2605         * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2606         * gcc/tree.h (init_function_for_compilation): Ditto.
2607         * gcc/ipa-cp.c (ipcp_driver): Ditto.
2608         * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
2609         * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
2610         * gcc/final.c (compute_alignments): Ditto.
2611         (rest_of_handle_final): Ditto.
2612         (rest_of_handle_shorten_branches): Ditto.
2613         (rest_of_clean_state): Ditto.
2614         * gcc/omp-low.c (execute_expand_omp): Ditto.
2615         (execute_lower_omp): Ditto.
2616         * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
2617         * gcc/ipa-reference.c (static_execute): Ditto.
2618         * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
2619         * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
2620         (rest_of_handle_machine_reorg): Ditto.
2621         * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
2622         * gcc/flow.c (recompute_reg_usage): Ditto.
2623         (rest_of_handle_remove_death_notes): Ditto.
2624         (rest_of_handle_life): Ditto.
2625         (rest_of_handle_flow2): Ditto.
2626         * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
2627         * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
2628         (do_ssa_store_ccp): Ditto.
2629         (execute_fold_all_builtins): Ditto.
2630         * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
2631         * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
2632         * gcc/ipa-pure-const.c (static_execute): Ditto.
2633         * gcc/cse.c (rest_of_handle_cse): Ditto.
2634         (rest_of_handle_cse2): Ditto.
2635         * gcc/web.c (rest_of_handle_web): Ditto.
2636         * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
2637         * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
2638         * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
2639         * gcc/tree-nrv.c (tree_nrv): Ditto.
2640         (execute_return_slot_opt): Ditto.
2641         * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
2642         (create_structure_vars): Ditto.
2643         * gcc/loop-init.c (rtl_loop_init): Ditto.
2644         (rtl_loop_done): Ditto.
2645         (rtl_move_loop_invariants): Ditto.
2646         (rtl_unswitch): Ditto.
2647         (rtl_unroll_and_peel_loops): Ditto.
2648         (rtl_doloop): Ditto.
2649         * gcc/gimple-low.c (lower_function_body): Ditto.
2650         (mark_used_blocks): Ditto.
2651         * gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
2652         * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
2653         (cgraph_early_inlining): Ditto.
2654         * gcc/global.c (rest_of_handle_global_alloc): Ditto.
2655         * gcc/jump.c (cleanup_barriers): Ditto.
2656         (purge_line_number_notes): Ditto.
2657         * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
2658         (rest_of_handle_if_after_reload): Ditto.
2659         * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
2660         (tree_ssa_loop_im): Ditto.
2661         (tree_ssa_loop_unswitch): Ditto.
2662         (tree_vectorize): Ditto.
2663         (tree_linear_transform): Ditto.
2664         (tree_ssa_loop_ivcanon): Ditto.
2665         (tree_ssa_empty_loop): Ditto.
2666         (tree_ssa_loop_bounds): Ditto.
2667         (tree_complete_unroll): Ditto.
2668         (tree_ssa_loop_prefetch): Ditto.
2669         (tree_ssa_loop_ivopts): Ditto.
2670         (tree_ssa_loop_done): Ditto.
2671         * gcc/predict.c (tree_estimate_probability): Ditto.
2672         * gcc/recog.c (split_all_insns_noflow): Ditto.
2673         (rest_of_handle_peephole2): Ditto.
2674         (rest_of_handle_split_all_insns): Ditto.
2675         * gcc/tree-eh.c (lower_eh_constructs): Ditto.
2676         * gcc/regmove.c (rest_of_handle_regmove): Ditto.
2677         (rest_of_handle_stack_adjustments): Ditto.
2678         * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
2679         * gcc/function.c (instantiate_virtual_regs): Ditto.
2680         (init_function_for_compilation): Ditto.
2681         (rest_of_handle_check_leaf_regs): Ditto.
2682         * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
2683         (rest_of_handle_gcse): Ditto.
2684         * gcc/ipa-type-escape.c (type_escape_execute): Ditto.
2685         * gcc/alias.c (rest_of_handle_cfg): Ditto.
2686         * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
2687         * gcc/profile.c (rest_of_handle_branch_prob): Ditto.
2688         * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
2689         * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
2690         * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
2691         * gcc/tree-dfa.c (find_referenced_vars): Ditto.
2692         * gcc/except.c (set_nothrow_function_flags): Ditto.
2693         (convert_to_eh_region_ranges): Ditto.
2694         (rest_of_handle_eh): Ditto.
2695         * gcc/emit-rtl.c (unshare_all_rtl): Ditto.
2696         (remove_unnecessary_notes): Ditto.
2697         * gcc/except.h (set_nothrow_function_flags): Ditto.
2698         (convert_to_eh_region_ranges): Ditto.
2699         * gcc/cfgexpand.c (tree_expand_cfg): Ditto.
2700         * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
2701         * gcc/tree-ssa-pre.c (do_pre): Ditto.
2702         (execute_fre): Ditto.
2703         * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
2704         (rest_of_handle_jump2): Ditto.
2705         * gcc/tree-sra.c (tree_sra): Ditto.
2706         * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
2707         (execute_mudflap_function_decls): Ditto.
2708         * gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
2709         (do_store_copy_prop): Ditto.
2710         * gcc/ipa-prop.h (ipcp_driver): Ditto.
2711         * gcc/cfglayout.c (insn_locators_initialize): Ditto.
2712         * gcc/tree-ssa-forwprop.c
2713         (tree_ssa_forward_propagate_single_use_vars): Ditto.
2714         * gcc/cfglayout.h (insn_locators_initialize): Ditto.
2715         * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
2716         * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
2717         (execute_late_warn_uninitialized): Ditto.
2718         * gcc/rtl.h (cleanup_barriers): Ditto.
2719         (split_all_insns_noflow): Ditto.
2720         (purge_line_number_notes): Ditto.
2721         (unshare_all_rtl): Ditto.
2722         (remove_unnecessary_notes): Ditto.
2723         (recompute_reg_usage): Ditto.
2724         (variable_tracking_main): Ditto.
2725         * gcc/integrate.c (emit_initial_value_sets): Ditto.
2726         * gcc/integrate.h (emit_initial_value_sets): Ditto.
2727         * gcc/tree-optimize.c (execute_free_datastructures): Ditto
2728         (execute_free_cfg_annotations): Ditto.
2729         (execute_fixup_cfg): Ditto.
2730         (execute_cleanup_cfg_pre_ipa): Ditto.
2731         (execute_cleanup_cfg_post_optimizing): Ditto.
2732         (execute_init_datastructures): Ditto.
2733         * gcc/tree-object-size.c (compute_object_sizes): Ditto.
2734         * gcc/combine.c (rest_of_handle_combine): Ditto.
2735         * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
2736         * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
2737         (rest_of_handle_reorder_blocks): Ditto.
2738         (rest_of_handle_partition_blocks): Ditto.
2739         * gcc/var-tracking.c (variable_tracking_main): Ditto.
2740         * gcc/tree-profile.c (tree_profiling): Ditto.
2741         * gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
2742         * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
2743         * gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
2744         (rest_of_handle_sched2): Ditto.
2745         * gcc/basic-block.h (free_bb_insn): Ditto.
2746         * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
2747         * gcc/tree-cfg.c (execute_build_cfg): Ditto.
2748         (remove_useless_stmts): Ditto.
2749         (split_critical_edges): Ditto.
2750         (execute_warn_function_return): Ditto.
2751         (execute_warn_function_noreturn): Ditto.
2752         * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
2753         * gcc/cfgrtl.c (free_bb_for_insn): Ditto.
2754         * gcc/passes.c (execute_one_pass): Run additional
2755         todos returned by execute function.
2756         * gcc/tree-pass.h (struct tree_opt_pass): Make execute
2757         return a value.
2758
2759 2006-03-02  Richard Guenther  <rguenther@suse.de>
2760
2761         * tree-ssa-alias.c (find_used_portions): Consider taking
2762         the address as making the variable not write-only.
2763
2764 2006-03-02  Nick Clifton  <nickc@redhat.com>
2765
2766         * config.gcc (default_use_cxa_atexit): Extend the description of
2767         this configure variable.  Set its default value to "yes" for
2768         Linux, NetBSD and ELF targets on the assumption that they will
2769         use C libraries with the __cxa_atexit function.
2770
2771 2006-03-02  Ben Elliston  <bje@au.ibm.com>
2772
2773         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
2774         parameter as unused to suppress a build warning.
2775
2776 2006-03-02  Ben Elliston  <bje@au.ibm.com>
2777
2778         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
2779         config/dfp-bit.c.
2780
2781 2006-03-01  Roger Sayle  <roger@eyesopen.com>
2782
2783         PR other/26489
2784         * gthr-posix.h (__gthrw2): Define to take three parameters, the
2785         declared name, the weak reference name, and the typeof name.
2786         (__gthrw): Avoid expanding the declared name suffix.
2787         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
2788
2789 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
2790
2791         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
2792         from DWARF 3.
2793         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
2794         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
2795         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
2796         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
2797         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
2798         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
2799         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
2800         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
2801         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
2802         DW_DS_leading_separate, DW_DS_trailing_separate): New.
2803         (DW_END_default, DW_END_big, DW_END_little): New.
2804         (DW_END_lo_user, DW_END_hi_user): Define.
2805         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
2806         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
2807         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
2808         DW_LANG_D): New.
2809
2810 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
2811
2812         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
2813         Update all users.
2814         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
2815         Update all users.
2816         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
2817         Update all users.
2818         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
2819         Update all users.
2820         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
2821         to 'symbol_mem_tag'.
2822         Update all users.
2823         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
2824         rename.
2825
2826 2006-03-01  Roger Sayle  <roger@eyesopen.com>
2827
2828         * builtins.c (fold_builtin_copysign): Delete unreachable code.
2829
2830 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
2831
2832         PR target/25761
2833         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
2834         MACHO_DYNAMIC_NO_PIC_P.
2835         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
2836
2837 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
2838
2839         PR target/26389
2840         * config/darwin-protos.h (darwin_asm_output_anchor):
2841         Declare.
2842         * config/darwin-sections.def (cstring_section):
2843         Add SECTION_MERGE to the flags.
2844         (literal4_section): Likewise.
2845         (literal8_section): Likewise.
2846         (objc_selector_refs_section): Likewise.
2847         (objc_cls_refs_section): Likewise.
2848         * config/darwin.c (darwin_asm_output_anchor): New
2849         function.
2850         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
2851
2852 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
2853
2854         Fix PR tree-optimization/26443
2855         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
2856         to todo and PROP_tmt_usage to properties_destroyed.
2857         * tree-ssa-ccp.c (pass_ccp): Ditto.
2858         (pass_store_ccp): Ditto.
2859         * tree-ssa-dom.c (pass_dominator): Ditto.
2860
2861 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
2862
2863         * tree-ssa-operands.c: Cleanup whitespace.
2864         (get_asm_expr_operands): Move before first invocation.
2865         (get_indirect_ref_operands): Likewise.
2866         (get_tmr_operands): Likewise.
2867         (get_call_expr_operands): Likewise.
2868         (append_def): Likewise.
2869         (append_use): Likewise.
2870         (append_v_may_def): Likewise.
2871         (append_v_must_def): Likewise.
2872         (add_call_clobber_ops): Likewise.
2873         (add_call_read_ops): Likewise.
2874         (add_stmt_operand): Likewise.
2875         (add_virtual_operand): Likewise.
2876         (build_ssa_operands): Likewise.
2877
2878 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
2879
2880         PR middle-end/26022
2881         Revert:
2882         PR middle-end/24437
2883         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
2884         with a call expr to ...
2885         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
2886
2887 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
2888
2889         * tree-vrp.c (extract_range_from_assert): Remove special
2890         handling for types with super-types.
2891
2892 2006-03-01  Ben Elliston  <bje@au.ibm.com>
2893
2894         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
2895         and powerpc64-*-linux* configurations.
2896         * config/t-dfprules: New file.
2897
2898         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
2899         Compile dfp-bit.c from the source directory using -DWIDTH and
2900         $DFP_CFLAGS to control the compilation of that file, rather than
2901         generating width-specific versions in the build directory.
2902         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
2903         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
2904
2905 2006-02-28  Zack Weinberg  <zackw@panix.com>
2906
2907         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
2908         continues to work.
2909
2910 2006-02-28  Eric Christopher  <echristo@apple.com>
2911
2912         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
2913         Set up IN_LIBGCC definition of TARGET_64BIT.
2914         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
2915
2916 2006-02-28  Roger Sayle  <roger@eyesopen.com>
2917
2918         PR middle-end/14752
2919         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
2920         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
2921         cases via the construction of "expr != 0".
2922
2923 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
2924
2925         * alias.c (alias_invariant, alias_invariant_size): Remove.
2926         (record_base_value): Remove.
2927         (memrefs_conflict_p): Don't look at alias_invariant.
2928         (end_alias_analysis): Don't free it.
2929         * alias.h (record_base_value): Remove prototype.
2930
2931 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
2932             Adam Nemet  <anemet@caviumnetworks.com>
2933
2934         * rtl.h (truncated_to_mode): Declare it.
2935         (struct rtl_hooks): Add reg_truncated_to_mode hook.
2936         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
2937         (RTL_HOOKS_INITIALIZER): Include it.
2938         * rtlhooks.c (reg_truncated_to_mode_general): New function.
2939         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
2940         reg_truncated_to_mode.
2941         * rtlanal.c (truncated_to_mode): Define it.
2942         * simplify-rtx.c (simplify_unary_operation_1): Use it.
2943
2944 2006-02-28  Jeff Law  <law@redhat.com>
2945
2946         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
2947         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
2948         the range allowed by TYPE_PRECISION.
2949
2950         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
2951
2952 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
2953
2954         PR tree-optimization/26419
2955         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
2956         values of n.
2957
2958 2006-02-27  Zack Weinberg  <zackw@panix.com>
2959
2960         * doc/md.texi: Fix typo in previous change.
2961
2962 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
2963
2964         * df.c: Remove.
2965
2966 2006-02-27  Zack Weinberg  <zackw@panix.com>
2967
2968         * rtl.def (define_constraint, define_register_constraint)
2969         (define_memory_constraint, define_address_constraint): New MD forms.
2970         * gensupport.c (process_rtx): Put define_constraint etc on the
2971         predicate queue.
2972         * genpreds.c (process_define_predicate): Adjust comment.  Validate
2973         the name, and call validate_exp to validate the expression.
2974         (mark_mode_tests, write_extract_subexp): Can assume correct input.
2975         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
2976         all callers changed.
2977         (validate_exp, needs_variable, struct constraint_data)
2978         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
2979         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
2980         (const_dbl_constraints, constraint_max_namelen)
2981         (have_register_constraints, have_memory_constraints)
2982         (have_address_constraints, have_address_constraints)
2983         (have_extra_constraints, have_const_int_constraints)
2984         (have_const_dbl_constraints, mangle, add_constraint)
2985         (process_define_constraint, process_define_register_constraint)
2986         (write_enum_constraint_num, write_lookup_constraint)
2987         (write_insn_constraint_len, write_regclass_for_constraint)
2988         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
2989         (write_insn_extra_memory_constraint)
2990         (write_insn_extra_address_constraint)
2991         (write_satisfies_constraint_fns): New.
2992         (write_tm_preds_h): If we have new-style constraint definitions,
2993         prototype the functions generated from them, and define the
2994         old constraint interface (still used by generic code) in terms of
2995         those functions.
2996         (write_insn_preds_c): If we have new-style constraint definitions,
2997         generate all relevant functions from those definitions.
2998         (main): Handle define_constraint etc.
2999         * genoutput.c (struct constraint_data, indep_constraints)
3000         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
3001         (mdep_constraint_len): New data structures and functions, defined
3002         #ifdef USE_MD_CONSTRAINTS.
3003         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
3004         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
3005         use new logic to validate operand constraints against constraint
3006         definitions.
3007         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
3008         defined.
3009         * defaults.h: If none of the old-style constraint macros are
3010         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
3011         old-style macros; and poison REG_CLASS_FROM_LETTER,
3012         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
3013         EXTRA_CONSTRAINT.
3014         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
3015         * doc/md.texi: Document new constraint-definition mechanism and the
3016         C interface it provides.  Remove references to old mechanism
3017         elsewhere in the document.
3018         (Machine Constraints): Use pathnames relative to gcc directory,
3019         i.e. config/ARCH/FILE.  Change i386 section to refer to
3020         config/i386/predicates.md; update that section to match docstrings.
3021         * doc/tm.texi: Move all documentation of the old constraint-
3022         definition macros to their own section, clearly mark as obsolete.
3023
3024         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
3025         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
3026         definitions.
3027         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
3028         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
3029         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
3030         constraint strings.
3031         (splits and peepholes): Use satisfies_constraint_*.
3032         * config/i386/i386.c (memory_address_length)
3033         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
3034
3035 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
3036
3037         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
3038         scalar operation to be put back into the loop.
3039
3040 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
3041
3042         PR other/26208
3043         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
3044         (extract_cie_info): Handle S flag in augmentation string.
3045         (execute_cfa_program): If context->signal_frame, execute also
3046         fs->pc == context->ra instructions.
3047         (uw_frame_state_for): If context->signal_frame, don't subtract one
3048         from context->ra to find FDE.
3049         (uw_update_context_1): Set context->signal_frame to
3050         fs->signal_frame.
3051         (_Unwind_GetIPInfo): New function.
3052         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
3053         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
3054         of _Unwind_GetIP.
3055         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
3056         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
3057         * unwind-compat.c (_Unwind_GetIPInfo): New function.
3058         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
3059         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
3060         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
3061         * config/i386/linux-unwind.h (x86_fallback_frame_state,
3062         x86_64_fallback_frame_state): Set fs->signal_frame.
3063         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
3064         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
3065         (frob_update_context): Likewise.  Workaround missing S flag in
3066         Linux 2.6.12 - 2.6.16 kernel vDSOs.
3067         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
3068         Remove the psw_addr + 1 hack.
3069
3070 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
3071
3072         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
3073         with aggregates here.
3074         (find_func_aliases): Remove code for &<aggregate> from here.
3075
3076 2006-02-26  Roger Sayle  <roger@eyesopen.com>
3077
3078         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (~X & C) eq/ne 0 as
3079         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
3080         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
3081         as (X & C) ne/eq 0.
3082
3083 2006-02-26  Roger Sayle  <roger@eyesopen.com>
3084
3085         PR middle-end/19983
3086         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
3087
3088 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
3089
3090         * opts.c (decode_options): Do not handle flag_strength_reduce.
3091         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
3092         and OPT_fstrength_reduce.
3093         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
3094         flag_prefetch_loop_arrays for being nonzero.
3095         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
3096         no-ops.
3097         (fprefetch-loop-arrays-rtl): Removed.
3098         (flag_prefetch_loop_arrays): Do not specify the value.
3099
3100         * doc/passes.texi: Update documentation of loop optimizer
3101         passes.
3102         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
3103         -frerun-loop-opt): Remove.
3104
3105 2006-02-26  Richard Guenther  <rguenther@suse.de>
3106
3107         PR tree-optimization/26421
3108         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
3109         in function calls that are ADDR_EXPRs as using the whole structure.
3110
3111 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
3112
3113         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
3114         * tree-pass.h (pass_loop_optimize): Remove.
3115         * passes.c (pass_loop_optimize): Never run it.
3116         * toplev.c (backend_init): Don't call init_loop.
3117         * opts.c (flag_loop_optimize_set): Remove.
3118         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
3119         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
3120         the old RTL loop optimizer when profiling enabled.
3121         * predict.c (tree_estimate_probability): Always strip builtin_expect.
3122         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
3123         pre-headers for the sake of the old RTL loop optimizer.
3124         * Makefile.in: Remove all references to loop.o.
3125
3126         * doc/invoke.texi: Remove all references to -floop-optimize
3127         and -frerun-loop-opt.
3128
3129 2006-02-26  Zack Weinberg  <zackw@panix.com>
3130
3131         * doc/md.texi (Machine Constraints): Refer to all files with paths
3132         relative to gcc directory (i.e. config/CPU/file).  Add missing
3133         @table @code ... @end table to M32C subsection.
3134
3135 2006-02-26  Roger Sayle  <roger@eyesopen.com>
3136
3137         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
3138         (X & 1) == 0.
3139         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
3140
3141 2006-02-26  Roger Sayle  <roger@eyesopen.com>
3142             James A. Morrison  <phython@gcc.gnu.org>
3143
3144         PR middle-end/21137
3145         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold ((X>>C1)&C2) eq/ne 0,
3146         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
3147         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
3148         signedness of the shift operation.
3149
3150 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
3151
3152         PR tree-optimization/26359
3153         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
3154
3155 2006-02-25  Roger Sayle  <roger@eyesopen.com>
3156
3157         * simplify-rtx.c (simplify_relational_operation_1):  Simplify
3158         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
3159         as X == 0, and some symmetry related transformations.
3160         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
3161
3162 2006-02-25  Roger Sayle  <roger@eyesopen.com>
3163
3164         PR middle-end/23673
3165         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (X^Y) == 0 as X == Y
3166         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
3167         symmetry related transformations.  Fold (X^C1) == C2 as
3168         X == (C1^C2).
3169
3170 2006-02-25  Juergen Weigert  <jw@suse.de>
3171         Richard Guenther  <rguenther@suse.de>
3172
3173         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
3174
3175 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
3176
3177         * combine.c (gen_lowpart_or_truncate): Call
3178         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
3179
3180 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
3181
3182         * doc/invoke.texi: Move -fopenmp description to "Options for
3183         Code Generation".
3184         Remove reference to -lgomp.
3185
3186 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
3187
3188         * doc/install.texi: Require GNU tar version 1.14.
3189
3190 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
3191
3192         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
3193         * doc/invoke.texi (C++ Dialect Options): Document
3194         -fno-use-cxa-get-exception-ptr.
3195         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
3196         * configure: Regenerate.
3197         * c.opt (fuse-cxa-get-exception-ptr): New.
3198         * c-opts.c (c_common_handle_option): Handle
3199         OPT_fuse_cxa_get_exception_ptr.
3200         * c-common.c (flag_use_cxa_atexit): Update documentation.
3201         (flag_use_cxa_get_exception_ptr): New.
3202         * c-common.h (flag_use_cxa_get_exception_ptr): New.
3203         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
3204         documentation.
3205         (C_COMMON_OVERRIDE_OPTIONS): New.
3206
3207 2006-02-24  Roger Sayle  <roger@eyesopen.com>
3208
3209         PR middle-end/24952
3210         * combine.c (try_combine): Explicitly check whether GET_CODE is
3211         a SET or a CLOBBER, instead on checking that it isn't a USE.
3212
3213 2006-02-24  Roger Sayle  <roger@eyesopen.com>
3214
3215         * fold-const.c (fold_comparison): New subroutine of fold_binary
3216         containing transformations common to both the equality and
3217         ordering relational operators, factored out of fold_binary.
3218         (fold_binary): Separate out the equality operators (EQ_EXPR
3219         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
3220         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
3221         transformations common to both.
3222         (fold_div_compare): Fix latent bugs in the previously unreachable
3223         LT_EXPR and GE_EXPR cases.
3224
3225 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
3226
3227         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
3228         decl libname for clog to __clog on AIX.
3229
3230         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
3231
3232 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
3233
3234         PR target/26453
3235         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
3236         output traceback table for thunks.  Localise rs6000_stack_info call.
3237
3238 2006-02-23  Roger Sayle  <roger@eyesopen.com>
3239             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3240
3241         * gthr-posix.h (__gthrw): Fix typo in comment.
3242
3243 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
3244
3245         * doc/cpp.texi (Character sets): Document that we do support
3246         input files to be in any character set.
3247
3248 2006-02-23  Jeff Law  <law@redhat.com>
3249
3250         * tree.h (PHI_ARG_NONZERO): Remove.
3251         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
3252         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
3253         node to the new node.
3254
3255         PR tree-optimization/26425
3256         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
3257         min/max, then assume its varying.
3258
3259 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
3260
3261         PR rtl-optimization/26316
3262         * rtlanal.c (enum may_trap_p_flags): New.
3263         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
3264         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
3265         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
3266         (may_trap_after_code_motion_p): New function.
3267         * loop-invariant.c (find_identical_invariants): Fix dump formating.
3268         (find_invariant_insn): Use may_trap_after_code_motion_p.
3269         * rtl.h (may_trap_after_code_motion_p): Declare.
3270
3271 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
3272
3273         * emit-rtl.c (immed_double_const): Cleanup.
3274
3275 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
3276
3277         Fix PR tree-optimization/26376
3278         * tree-ssa-structalias.c (find_func_aliases):  Use get_id_for_tree,
3279         remove assert.
3280
3281 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
3282
3283         PR middle-end/26412
3284         * gimplify.c (omp_add_variable): Guard variable size decl test with
3285         DECL_SIZE (decl) check.
3286
3287 2006-02-23  Richard Guenther  <rguenther@suse.de>
3288
3289         PR middle-end/26439
3290         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
3291         like aggregate types.
3292
3293 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
3294
3295         * configure.ac: Add --with{,out}-long-double-128 configure option.
3296         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
3297         * configure: Rebuilt.
3298         * config.in: Rebuilt.
3299         * doc/install.texi (Options specification): Document
3300         --with-long-double-128.
3301
3302         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
3303         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
3304         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
3305         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
3306
3307 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
3308
3309         * config/s390/s390.c (override_options): Handle
3310         TARGET_DEFAULT_LONG_DOUBLE_128.
3311
3312         * config/alpha/alpha.c (override_options): Handle
3313         TARGET_DEFAULT_LONG_DOUBLE_128.
3314
3315         * config/sparc/sparc.c (sparc_override_options): Handle
3316         TARGET_DEFAULT_LONG_DOUBLE_128.
3317
3318 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
3319
3320         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
3321         (real-install-headers-tar, real-install-headers-cpio)
3322         (real-install-headers-cp): New targets.
3323
3324 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
3325
3326         * tree.h (variable_section): Delete.
3327         * varasm.c (variable_section): Delete.
3328
3329 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
3330
3331         * install.texi: Add notes on install.texi2html.
3332         (Building in parallel): Do not use footnotes.
3333
3334 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
3335
3336         PR libgomp/26234
3337         * doc/install.texi (Configuration): Document --disable-libgomp.
3338
3339 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
3340
3341         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
3342
3343 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
3344
3345         * config/i386/sse.md (vec_extractv2df_1_sse): New.
3346         (vec_extractv2df_0_sse): New.
3347
3348 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
3349
3350         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
3351         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
3352         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
3353         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
3354         to the result of the expression.
3355         (def_cfa_1): Adjust.
3356         (frame_pointer_cfa_offset): Rename to...
3357         (frame_pointer_fb_offset): ... this.  Adjust all uses.
3358         (convert_cfa_to_loc_list): Rename to...
3359         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
3360         Pass it on to build_cfa_loc.
3361         (compute_frame_pointer_to_cfa_displacement): Rename to...
3362         (compute_frame_pointer_to_fb_displacement): ... this.  New
3363         offset parameter.  Use it in computation.
3364         (gen_subprogram_die): Compute cfa_fb_offset with the new
3365         macro, and use it to compute the fb loc list and the
3366         displacement.
3367
3368 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
3369
3370         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
3371         replaced with register_operand.
3372         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
3373         non-DREG is expensive.
3374         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
3375         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
3376         involving memory.
3377
3378 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
3379
3380         * doc/install.texi2html: Use set -e.
3381
3382 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
3383
3384         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
3385         (ASM_OUTPUT_SHARED_LOCAL): Delete.
3386         * doc/invoke.texi (-fshared-data): Delete.
3387         * common.opt (fshared-data): Delete.
3388         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
3389         (assemble_static_space): Remove #if 0 code.
3390         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
3391         (ASM_OUTPUT_SHARED_LOCAL): Poison.
3392         * config/cris/cris.h: Remove FIXME.
3393
3394 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
3395
3396         * doc/sourcebuild.texi (Front End Directory): No more double-colon
3397         hooks.
3398
3399 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
3400
3401         PR middle-end/26379
3402         * combine.c (simplify_shift_const_1): Disable nested shifts